2 * ----------------------------------------------------------------------------
3 * "THE BEER-WARE LICENSE" (Revision 42):
4 * <phk@FreeBSD.ORG> wrote this file. As long as you retain this notice you
5 * can do whatever you want with this stuff. If we meet some day, and you think
6 * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
7 * ----------------------------------------------------------------------------
16 #include <sys/ioccom.h>
20 #include <sys/queue.h>
25 struct cdevsw *d_devsw;
28 /* These four fields must be valid while opened */
34 struct diskslices *d_slice;
35 struct disklabel *d_label;
36 LIST_ENTRY(disk) d_list;
40 #define DISKFLAG_LOCK 0x1
41 #define DISKFLAG_WANTED 0x2
43 dev_t disk_create(int unit, struct disk *disk, int flags, struct cdevsw *cdevsw, struct cdevsw *diskdevsw);
44 void disk_destroy(dev_t dev);
45 struct disk *disk_enumerate(struct disk *disk);
46 void disk_err(struct bio *bp, const char *what, int blkdone, int nl);
47 void disk_invalidate(struct disk *disk);
51 #define DIOCGSECTORSIZE _IOR('d', 128, u_int)
53 * Get the sectorsize of the device in bytes. The sectorsize is the
54 * smallest unit of data which can be transfered from this device.
55 * Usually this is a power of two but it may not be. (ie: CDROM audio)
58 #define DIOCGMEDIASIZE _IOR('d', 129, off_t) /* Get media size in bytes */
60 * Get the size of the entire device in bytes. This should be a
61 * multiple of the sectorsize.
64 #define DIOCGFWSECTORS _IOR('d', 130, u_int) /* Get firmware sectorcount */
66 * Get the firmwares notion of number of sectors per track. This
67 * value is mostly used for compatibility with various ill designed
68 * disk label formats. Don't use it unless you have to.
71 #define DIOCGFWHEADS _IOR('d', 131, u_int) /* Get firmware headcount */
73 * Get the firmwares notion of number of heads per cylinder. This
74 * value is mostly used for compatibility with various ill designed
75 * disk label formats. Don't use it unless you have to.
78 #define DIOCSKERNELDUMP _IOW('d', 133, u_int) /* Set/Clear kernel dumps */
80 * Enable/Disable (the argument is boolean) the device for kernel
84 #define DIOCGFRONTSTUFF _IOR('d', 134, off_t)
86 * Many disk formats have some amount of space reserved at the
87 * start of the disk to hold bootblocks, various disklabels and
88 * similar stuff. This ioctl returns the number of such bytes
89 * which may apply to the device.
92 #endif /* _SYS_DISK_H_ */