/* * xpram.h -- definitions for the char module * *********/ #include #include #include /* 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);