home *** CD-ROM | disk | FTP | other *** search
- /* @(#)disk.h 1.0 08/29/87 (c) 1987 NeXT */
-
- /*
- * HISTORY
- * 28-Mar-92 Doug Mitchell
- * Moved disk_label struct to <bsd/dev/disk_label.h>.
- *
- * 22-May-91 Gregg Kellogg (gk) at NeXT
- * Split out public interface.
- *
- * 20-Jul-90 Doug Mitchell
- * Added DKIOCSFORMAT, DKIOCGFORMAT
- *
- * 16-Apr-90 Doug Mitchell at NeXT
- * Added DKIOCPANELPRT.
- *
- * 25-Mar-90 John Seamons (jks) at NeXT
- * Removed obsolete DKIOCNOTIFY and DKIOCINSERT.
- *
- * 23-Mar-90 Doug Mitchell
- * Added DKIOCEJECT.
- *
- * 14-Feb-90 Doug Mitchell at NeXT
- * Added DKIOCMNOTIFY.
- *
- * 16-Mar-88 John Seamons (jks) at NeXT
- * Cleaned up to support standard disk label definitions.
- *
- * 24-Feb-88 Mike DeMoney (mike) at NeXT
- * Added defines for dl_bootfile and dl_boot0_blkno.
- * Reduced NBAD to allow for these entries in disktab.
- *
- * 29-Aug-87 John Seamons (jks) at NeXT
- * Created.
- *
- */
-
- #ifndef _BSD_DEV_DISK_
- #define _BSD_DEV_DISK_
-
- #import <mach/machine/vm_types.h>
- #import <mach/machine/boolean.h>
- #import <sys/types.h>
- #import <sys/ioctl.h>
- #import <sys/time.h>
- #import <bsd/dev/disk_label.h>
-
- #define DR_CMDSIZE 32
- #define DR_ERRSIZE 32
-
- struct disk_req {
- int dr_bcount; /* byte count for data transfers */
- caddr_t dr_addr; /* memory addr for data transfers */
- struct timeval dr_exec_time; /* execution time of operation */
-
- /*
- * interpretation of cmdblk and errblk is driver specific.
- */
- char dr_cmdblk[DR_CMDSIZE];
- char dr_errblk[DR_ERRSIZE];
- };
-
- struct sdc_wire {
- vm_offset_t start, end;
- boolean_t new_pageable;
- };
-
-
- #define BAD_BLK_OFF 4 /* offset of bad blk tbl from label */
- #define NBAD_BLK (12 * 1024 / sizeof (int))
-
- struct bad_block { /* bad block table, sized to be 12KB */
- int bad_blk[NBAD_BLK];
- };
-
- /*
- * sector bitmap states (2 bits per sector)
- */
- #define SB_UNTESTED 0 /* must be zero */
- #define SB_BAD 1
- #define SB_WRITTEN 2
- #define SB_ERASED 3
-
- struct drive_info { /* info about drive hardware */
- char di_name[MAXDNMLEN]; /* drive type name */
- int di_label_blkno[NLABELS];/* label loc'ns in DEVICE SECTORS */
- int di_devblklen; /* device sector size */
- int di_maxbcount; /* max bytes per transfer request */
- };
-
- #define DS_STATSIZE 32
-
- struct disk_stats {
- int s_ecccnt; /* avg ECC corrections per sector */
- int s_maxecc; /* max ECC corrections observed */
-
- /*
- * interpretation of s_stats is driver specific
- */
- char s_stats[DS_STATSIZE];
- };
-
- #define DKIOCGLABEL _IO('d', 0) // read label
- #define DKIOCSLABEL _IO('d', 1) // write label
- #define DKIOCGBITMAP _IO('d', 2) // read bitmap
- #define DKIOCSBITMAP _IO('d', 3) // write bitmap
- #define DKIOCREQ _IOWR('d', 4, struct disk_req) // cmd request
- #define DKIOCINFO _IOR('d', 5, struct drive_info) // get drive info
- #define DKIOCZSTATS _IO('d',7) // zero statistics
- #define DKIOCGSTATS _IO('d', 8) // get statistics
- #define DKIOCRESET _IO('d', 9) // reset disk
- #define DKIOCGFLAGS _IOR('d', 11, int) // get driver flags
- #define DKIOCSFLAGS _IOW('d', 12, int) // set driver flags
- #define DKIOCSDCWIRE _IOW('d', 14, struct sdc_wire) // sdc wire memory
- #define DKIOCSDCLOCK _IO('d', 15) // sdc lock
- #define DKIOCSDCUNLOCK _IO('d', 16) // sdc unlock
- #define DKIOCGFREEVOL _IOR('d', 17, int) // get free volume #
- #define DKIOCGBBT _IO('d', 18) // read bad blk tbl
- #define DKIOCSBBT _IO('d', 19) // write bad blk tbl
- #define DKIOCMNOTIFY _IOW('d', 20, int) // message on insert
- #define DKIOCEJECT _IO('d', 21) // eject disk
- #define DKIOCPANELPRT _IOW('d', 22, int) // register Panel
- // Request port
- #define DKIOCSFORMAT _IOW('d', 23, int) // set 'Formatted' flag
- #define DKIOCGFORMAT _IOR('d', 23, int) // get 'Formatted' flag
- #define DKIOCBLKSIZE _IOR('d', 24, int) // device sector size
- #define DKIOCNUMBLKS _IOR('d', 25, int) // number of sectors
- #define DKIOCCHECKINSERT _IO('d',26) // manually poll removable
- // media drive
- #define DKIOCCANCELAUTOMOUNT _IOW('d',27, dev_t) // cancel automount request
- #endif _BSD_DEV_DISK_
-
-