diff options
| author | gwr <gwr@NetBSD.org> | 1995-10-08 23:30:57 +0000 |
|---|---|---|
| committer | gwr <gwr@NetBSD.org> | 1995-10-08 23:30:57 +0000 |
| commit | 9a79c5a0435d0128ace890a5719d3e216cb00aef (patch) | |
| tree | 47b98893f7263a19675461994a225718a9507691 /sys/dev/ramdisk.h | |
| parent | 03cd2cc0b339f57abbac7b5f4c56f7f5c9e544b5 (diff) | |
Machine-independent RAM-disk driver.
Diffstat (limited to 'sys/dev/ramdisk.h')
| -rw-r--r-- | sys/dev/ramdisk.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/sys/dev/ramdisk.h b/sys/dev/ramdisk.h new file mode 100644 index 00000000000..a055ad85a38 --- /dev/null +++ b/sys/dev/ramdisk.h @@ -0,0 +1,59 @@ + +/* + * RAM-disk ioctl functions: + */ + +#include <sys/ioccom.h> + +struct rd_conf { + caddr_t rd_addr; + size_t rd_size; + int rd_type; +}; + +#define RD_GETCONF _IOR('r', 0, struct rd_conf) /* get unit config */ +#define RD_SETCONF _IOW('r', 1, struct rd_conf) /* set unit config */ + +/* + * There are three configurations supported for each unit, + * reflected in the value of the rd_type field: + */ +#define RD_UNCONFIGURED 0 +/* + * Not yet configured. Open returns ENXIO. + */ +#define RD_KMEM_FIXED 1 +/* + * Disk image resident in kernel (patched in or loaded). + * Requires that the function: rd_set_kmem() is called to + * attach the (initialized) kernel memory to be used by the + * device. This can be called by an "open hook" if this + * driver is compiled with the RD_OPEN_HOOK option. + * No attempt will be made to free this memory. + */ +#define RD_KMEM_ALLOCATED 2 +/* + * Small, wired-down chunk of kernel memory obtained from + * kmem_alloc(). The allocation is performed by an ioctl + * call on the "control" unit (regular unit + 16) + */ +#define RD_UMEM_SERVER 3 +/* + * Indirect access to user-space of a user-level server. + * (Like the MFS hack, but better! 8^) Device operates + * only while the server has the control device open and + * continues to service I/O requests. The process that + * does this setconf will become the I/O server. + * Support for this configuration type is optional: + * option RAMDISK_SERVER + */ + +#ifdef _KERNEL +/* + * If the option RAMDISK_HOOKS is on, then these functions are + * called by the ramdisk driver to allow machine-dependent to + * configure and/or load each ramdisk unit. + */ +extern void rd_attach_hook __P((int unit, struct rd_conf *)); +extern void rd_open_hook __P((int unit, struct rd_conf *)); +#endif |
