diff options
author | Thomas Bushnell <thomas@gnu.org> | 1997-02-25 21:28:37 +0000 |
---|---|---|
committer | Thomas Bushnell <thomas@gnu.org> | 1997-02-25 21:28:37 +0000 |
commit | f07a4c844da9f0ecae5bbee1ab94be56505f26f7 (patch) | |
tree | 12b07c7e578fc1a5f53dbfde2632408491ff2a70 /i386/include/mach/i386/disk.h |
Initial source
Diffstat (limited to 'i386/include/mach/i386/disk.h')
-rw-r--r-- | i386/include/mach/i386/disk.h | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/i386/include/mach/i386/disk.h b/i386/include/mach/i386/disk.h new file mode 100644 index 0000000..40ed4fa --- /dev/null +++ b/i386/include/mach/i386/disk.h @@ -0,0 +1,120 @@ +/* + * Mach Operating System + * Copyright (c) 1991,1990,1989 Carnegie Mellon University + * All Rights Reserved. + * + * Permission to use, copy, modify and distribute this software and its + * documentation is hereby granted, provided that both the copyright + * notice and this permission notice appear in all copies of the + * software, derivative works or modified versions, and any portions + * thereof, and that both notices appear in supporting documentation. + * + * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" + * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR + * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + * + * Carnegie Mellon requests users of this software to return to + * + * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU + * School of Computer Science + * Carnegie Mellon University + * Pittsburgh PA 15213-3890 + * + * any improvements or extensions that they make and grant Carnegie Mellon + * the rights to redistribute these changes. + */ +/* + Copyright 1988, 1989 by Intel Corporation, Santa Clara, California. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and +its documentation for any purpose and without fee is hereby +granted, provided that the above copyright notice appears in all +copies and that both the copyright notice and this permission notice +appear in supporting documentation, and that the name of Intel +not be used in advertising or publicity pertaining to distribution +of the software without specific, written prior permission. + +INTEL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, +IN NO EVENT SHALL INTEL BE LIABLE FOR ANY SPECIAL, INDIRECT, OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT, +NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +/* + * disk.h + */ + +#if defined(__linux__) || defined(__masix__) +#define PART_DISK 4 /* partition number for entire disk */ +#else +#define PART_DISK 2 /* partition number for entire disk */ +#endif + + +/* driver ioctl() commands */ + +#define V_CONFIG _IOW('v',1,union io_arg)/* Configure Drive */ +#define V_REMOUNT _IO('v',2) /* Remount Drive */ +#define V_ADDBAD _IOW('v',3,union io_arg)/* Add Bad Sector */ +#define V_GETPARMS _IOR('v',4,struct disk_parms) /* Get drive/partition parameters */ +#define V_FORMAT _IOW('v',5,union io_arg)/* Format track(s) */ +#define V_PDLOC _IOR('v',6,int) /* Ask driver where pdinfo is on disk */ + +#define V_ABS _IOW('v',9,int) /* set a sector for an absolute addr */ +#define V_RDABS _IOW('v',10,struct absio)/* Read a sector at an absolute addr */ +#define V_WRABS _IOW('v',11,struct absio)/* Write a sector to absolute addr */ +#define V_VERIFY _IOWR('v',12,union vfy_io)/* Read verify sector(s) */ +#define V_XFORMAT _IO('v',13) /* Selectively mark sectors as bad */ +#define V_SETPARMS _IOW('v',14,int) /* Set drivers parameters */ + + +/* + * Data structure for the V_VERIFY ioctl + */ +union vfy_io { + struct { + long abs_sec; /* absolute sector number */ + u_short num_sec; /* number of sectors to verify */ + u_short time_flg; /* flag to indicate time the ops */ + }vfy_in; + struct { + long deltatime; /* duration of operation */ + u_short err_code; /* reason for failure */ + }vfy_out; +}; + + +/* data structure returned by the Get Parameters ioctl: */ +struct disk_parms { +/*00*/ char dp_type; /* Disk type (see below) */ + u_char dp_heads; /* Number of heads */ + u_short dp_cyls; /* Number of cylinders */ +/*04*/ u_char dp_sectors; /* Number of sectors/track */ + u_short dp_secsiz; /* Number of bytes/sector */ + /* for this partition: */ +/*08*/ u_short dp_ptag; /* Partition tag */ + u_short dp_pflag; /* Partition flag */ +/*0c*/ long dp_pstartsec; /* Starting absolute sector number */ +/*10*/ long dp_pnumsec; /* Number of sectors */ +/*14*/ u_char dp_dosheads; /* Number of heads */ + u_short dp_doscyls; /* Number of cylinders */ +/*18*/ u_char dp_dossectors; /* Number of sectors/track */ +}; + +/* Disk types for disk_parms.dp_type: */ +#define DPT_WINI 1 /* Winchester disk */ +#define DPT_FLOPPY 2 /* Floppy */ +#define DPT_OTHER 3 /* Other type of disk */ +#define DPT_NOTDISK 0 /* Not a disk device */ + +/* Data structure for V_RDABS/V_WRABS ioctl's */ +struct absio { + long abs_sec; /* Absolute sector number (from 0) */ + char *abs_buf; /* Sector buffer */ +}; + |