patch-2.4.2 linux/drivers/s390/block/xpram.h

Next file: linux/drivers/s390/ccwcache.c
Previous file: linux/drivers/s390/block/xpram.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.1/linux/drivers/s390/block/xpram.h linux/drivers/s390/block/xpram.h
@@ -0,0 +1,70 @@
+
+/*
+ * xpram.h -- definitions for the char module
+ *
+ *********/
+
+
+#include <linux/ioctl.h>
+#include <asm/atomic.h>
+#include <linux/major.h>
+
+/* version dependencies have been confined to a separate file */
+
+/*
+ * Macros to help debugging
+ */
+
+#define XPRAM_NAME "xpram"  /* name of device/module */
+#define XPRAM_DEVICE_NAME_PREFIX "slram" /* Prefix device name for major 35 */
+#define XPRAM_DEVS 1        /* one partition */
+#define XPRAM_RAHEAD 8      /* no real read ahead */
+#define XPRAM_PGSIZE 4096   /* page size of (expanded) mememory pages
+                             * according to S/390 architecture
+                             */
+#define XPRAM_BLKSIZE XPRAM_PGSIZE  /* must be equalt to page size ! */
+#define XPRAM_HARDSECT XPRAM_PGSIZE /* FIXME -- we have to deal with both
+                                     * this hard sect size and in some cases
+                                     * hard coded 512 bytes which I call
+                                     * soft sects:
+                                     */
+#define XPRAM_SOFTSECT 512
+#define XPRAM_MAX_DEVS 32   /* maximal number of devices (partitions) */
+#define XPRAM_MAX_DEVS1 33  /* maximal number of devices (partitions) +1 */
+
+/* The following macros depend on the sizes above */
+
+#define XPRAM_KB_IN_PG 4                     /* 4 kBs per page */
+#define XPRAM_KB_IN_PG_ORDER 2               /* 2^? kBs per page */
+
+/* Eventhough XPRAM_HARDSECT is set to 4k some data structures use hard
+ * coded 512 byte sa sector size
+ */
+#define XPRAM_SEC2KB(x) ((x >> 1) + (x & 1)) /* modifier used to compute size 
+                                                in kB from number of sectors */
+#define XPRAM_SEC_IN_PG 8                    /* 8 sectors per page */
+#define XPRAM_SEC_IN_PG_ORDER 3              /* 2^? sectors per page */
+
+#define XPRAM_UNUSED 40                     /* unused space between devices, 
+                                             * in kB, i.e.
+                                             * must be a multiple of 4
+                                             */
+/*
+ * The xpram device is removable: if it is left closed for more than
+ * half a minute, it is removed. Thus use a usage count and a
+ * kernel timer
+ */
+
+typedef struct Xpram_Dev {
+   int            size;   /* size in KB not in Byte - RB - */
+   atomic_t       usage;
+   char *         device_name;   /* device name prefix in devfs */
+   devfs_handle_t devfs_entry;   /* handle needed to unregister dev from devfs */
+   u8 *data;
+}              Xpram_Dev;
+
+/* 2.2: void xpram_setup (char *, int *); */
+/* begin 2.3 */
+int xpram_setup (char *);
+/* end 2.3 */
+int xpram_init(void);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)