ReactOS  0.4.15-dev-509-g96a357b
disklabel.h
Go to the documentation of this file.
1 /* $NetBSD: disklabel.h,v 1.88 2003/11/14 12:07:42 lukem Exp $ */
2 
3 /*
4  * Copyright (c) 1987, 1988, 1993
5  * The Regents of the University of California. All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  * 3. Neither the name of the University nor the names of its contributors
16  * may be used to endorse or promote products derived from this software
17  * without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
20  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
23  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29  * SUCH DAMAGE.
30  *
31  * @(#)disklabel.h 8.2 (Berkeley) 7/10/94
32  */
33 
34 #ifndef _SYS_DISKLABEL_H_
35 #define _SYS_DISKLABEL_H_
36 
37 #include "type.h"
38 
39 /*
40  * We need <machine/types.h> for __HAVE_OLD_DISKLABEL
41  */
42 #if 0 /* XXX ffsdrv */
43 #ifndef _LOCORE
44 #include <sys/types.h>
45 #endif
46 #endif
47 
48 /* sys/arch/i386/include/type.h XXX ffsdrv */
49 #define __HAVE_OLD_DISKLABEL
50 
51 /*
52  * Each disk has a label which includes information about the hardware
53  * disk geometry, filesystem partitions, and drive specific information.
54  * The location of the label, as well as the number of partitions the
55  * label can describe and the number of the "whole disk" (raw)
56  * paritition are machine dependent.
57  */
58 #if 0 /* XXX ffsdrv */
59 #include <machine/disklabel.h>
60 #endif
61 
62 /* arch/i386/include/disklabel.h */
63 #define LABELSECTOR 1 /* sector containing label */
64 #define LABELOFFSET 0 /* offset of label in sector */
65 #define MAXPARTITIONS 16 /* number of partitions */
66 #define OLDMAXPARTITIONS 8 /* number of partitions before 1.6 */
67 #define RAW_PART 3 /* raw partition: XX?d (XXX) */
68 
69 /*
70  * We use the highest bit of the minor number for the partition number.
71  * This maintains backward compatibility with device nodes created before
72  * MAXPARTITIONS was increased.
73  */
74 #define __I386_MAXDISKS ((1 << 20) / MAXPARTITIONS)
75 #define DISKUNIT(dev) ((minor(dev) / OLDMAXPARTITIONS) % __I386_MAXDISKS)
76 #define DISKPART(dev) ((minor(dev) % OLDMAXPARTITIONS) + \
77  ((minor(dev) / (__I386_MAXDISKS * OLDMAXPARTITIONS)) * OLDMAXPARTITIONS))
78 #define DISKMINOR(unit, part) \
79  (((unit) * OLDMAXPARTITIONS) + ((part) % OLDMAXPARTITIONS) + \
80  ((part) / OLDMAXPARTITIONS) * (__I386_MAXDISKS * OLDMAXPARTITIONS))
81 
82 /* Pull in MBR partition definitions. */
83 #include "bootblock.h"
84 
85 /* end of arch/i386/include/disklabel.h */
86 
87 
88 /*
89  * The absolute maximum number of disk partitions allowed.
90  * This is the maximum value of MAXPARTITIONS for which 'struct disklabel'
91  * is <= DEV_BSIZE bytes long. If MAXPARTITIONS is greater than this, beware.
92  */
93 #define MAXMAXPARTITIONS 22
94 #if MAXPARTITIONS > MAXMAXPARTITIONS
95 #warning beware: MAXPARTITIONS bigger than MAXMAXPARTITIONS
96 #endif
97 
98 /*
99  * Ports can switch their MAXPARTITIONS once, as follows:
100  *
101  * - define OLDMAXPARTITIONS in <machine/disklabel.h> as the old number
102  * - define MAXPARTITIONS as the new number
103  * - define DISKUNIT, DISKPART and DISKMINOR macros in <machine/disklabel.h>
104  * as appropriate for the port (see the i386 one for an example).
105  * - define __HAVE_OLD_DISKLABEL in <machine/types.h>
106  */
107 
108 #if defined(_KERNEL) && defined(__HAVE_OLD_DISKLABEL) && \
109  (MAXPARTITIONS < OLDMAXPARTITIONS)
110 #error "can only grow disklabel size"
111 #endif
112 
113 
114 /*
115  * Translate between device numbers and major/disk unit/disk partition.
116  */
117 #ifndef __HAVE_OLD_DISKLABEL
118 #define DISKUNIT(dev) (minor(dev) / MAXPARTITIONS)
119 #define DISKPART(dev) (minor(dev) % MAXPARTITIONS)
120 #define DISKMINOR(unit, part) \
121  (((unit) * MAXPARTITIONS) + (part))
122 #endif
123 #define MAKEDISKDEV(maj, unit, part) \
124  (makedev((maj), DISKMINOR((unit), (part))))
125 
126 #define DISKMAGIC ((u_int32_t)0x82564557) /* The disk magic number */
127 
128 #ifndef _LOCORE
129 struct disklabel {
130  u_int32_t d_magic; /* the magic number */
131  u_int16_t d_type; /* drive type */
132  u_int16_t d_subtype; /* controller/d_type specific */
133  char d_typename[16]; /* type name, e.g. "eagle" */
134 
135  /*
136  * d_packname contains the pack identifier and is returned when
137  * the disklabel is read off the disk or in-core copy.
138  * d_boot0 and d_boot1 are the (optional) names of the
139  * primary (block 0) and secondary (block 1-15) bootstraps
140  * as found in /usr/mdec. These are returned when using
141  * getdiskbyname(3) to retrieve the values from /etc/disktab.
142  */
143  union {
144  char un_d_packname[16]; /* pack identifier */
145  struct {
146  char *un_d_boot0; /* primary bootstrap name */
147  char *un_d_boot1; /* secondary bootstrap name */
148  } un_b;
149  } d_un;
150 #define d_packname d_un.un_d_packname
151 #define d_boot0 d_un.un_b.un_d_boot0
152 #define d_boot1 d_un.un_b.un_d_boot1
153 
154  /* disk geometry: */
155  u_int32_t d_secsize; /* # of bytes per sector */
156  u_int32_t d_nsectors; /* # of data sectors per track */
157  u_int32_t d_ntracks; /* # of tracks per cylinder */
158  u_int32_t d_ncylinders; /* # of data cylinders per unit */
159  u_int32_t d_secpercyl; /* # of data sectors per cylinder */
160  u_int32_t d_secperunit; /* # of data sectors per unit */
161 
162  /*
163  * Spares (bad sector replacements) below are not counted in
164  * d_nsectors or d_secpercyl. Spare sectors are assumed to
165  * be physical sectors which occupy space at the end of each
166  * track and/or cylinder.
167  */
168  u_int16_t d_sparespertrack; /* # of spare sectors per track */
169  u_int16_t d_sparespercyl; /* # of spare sectors per cylinder */
170  /*
171  * Alternative cylinders include maintenance, replacement,
172  * configuration description areas, etc.
173  */
174  u_int32_t d_acylinders; /* # of alt. cylinders per unit */
175 
176  /* hardware characteristics: */
177  /*
178  * d_interleave, d_trackskew and d_cylskew describe perturbations
179  * in the media format used to compensate for a slow controller.
180  * Interleave is physical sector interleave, set up by the
181  * formatter or controller when formatting. When interleaving is
182  * in use, logically adjacent sectors are not physically
183  * contiguous, but instead are separated by some number of
184  * sectors. It is specified as the ratio of physical sectors
185  * traversed per logical sector. Thus an interleave of 1:1
186  * implies contiguous layout, while 2:1 implies that logical
187  * sector 0 is separated by one sector from logical sector 1.
188  * d_trackskew is the offset of sector 0 on track N relative to
189  * sector 0 on track N-1 on the same cylinder. Finally, d_cylskew
190  * is the offset of sector 0 on cylinder N relative to sector 0
191  * on cylinder N-1.
192  */
193  u_int16_t d_rpm; /* rotational speed */
194  u_int16_t d_interleave; /* hardware sector interleave */
195  u_int16_t d_trackskew; /* sector 0 skew, per track */
196  u_int16_t d_cylskew; /* sector 0 skew, per cylinder */
197  u_int32_t d_headswitch; /* head switch time, usec */
198  u_int32_t d_trkseek; /* track-to-track seek, usec */
199  u_int32_t d_flags; /* generic flags */
200 #define NDDATA 5
201  u_int32_t d_drivedata[NDDATA]; /* drive-type specific information */
202 #define NSPARE 5
203  u_int32_t d_spare[NSPARE]; /* reserved for future use */
204  u_int32_t d_magic2; /* the magic number (again) */
205  u_int16_t d_checksum; /* xor of data incl. partitions */
206 
207  /* filesystem and partition information: */
208  u_int16_t d_npartitions; /* number of partitions in following */
209  u_int32_t d_bbsize; /* size of boot area at sn0, bytes */
210  u_int32_t d_sbsize; /* max size of fs superblock, bytes */
211  struct partition { /* the partition table */
212  u_int32_t p_size; /* number of sectors in partition */
213  u_int32_t p_offset; /* starting sector */
214  union {
215  u_int32_t fsize; /* FFS, ADOS:
216  filesystem basic fragment size */
217  u_int32_t cdsession; /* ISO9660: session offset */
218  } __partition_u2;
219 #define p_fsize __partition_u2.fsize
220 #define p_cdsession __partition_u2.cdsession
221  u_int8_t p_fstype; /* filesystem type, see below */
222  u_int8_t p_frag; /* filesystem fragments per block */
223  union {
224  u_int16_t cpg; /* UFS: FS cylinders per group */
225  u_int16_t sgs; /* LFS: FS segment shift */
226  } __partition_u1;
227 #define p_cpg __partition_u1.cpg
228 #define p_sgs __partition_u1.sgs
229  } d_partitions[MAXPARTITIONS]; /* actually may be more */
230 };
231 
232 #ifdef __HAVE_OLD_DISKLABEL
233 /*
234  * Same as above, but with OLDMAXPARTITIONS partitions. For use in
235  * the old DIOC* ioctl calls.
236  */
237 struct olddisklabel {
241  char d_typename[16];
242  union {
243  char un_d_packname[16];
244  struct {
245  char *un_d_boot0;
246  char *un_d_boot1;
247  } un_b;
248  } d_un;
272  struct opartition {
275  union {
278  } __partition_u2;
281  union {
284  } __partition_u1;
286 };
287 #endif /* __HAVE_OLD_DISKLABEL */
288 #else /* _LOCORE */
289  /*
290  * offsets for asm boot files.
291  */
292  .set d_secsize,40
293  .set d_nsectors,44
294  .set d_ntracks,48
295  .set d_ncylinders,52
296  .set d_secpercyl,56
297  .set d_secperunit,60
298  .set d_end_,276 /* size of disk label */
299 #endif /* _LOCORE */
300 
301 /* d_type values: */
302 #define DTYPE_SMD 1 /* SMD, XSMD; VAX hp/up */
303 #define DTYPE_MSCP 2 /* MSCP */
304 #define DTYPE_DEC 3 /* other DEC (rk, rl) */
305 #define DTYPE_SCSI 4 /* SCSI */
306 #define DTYPE_ESDI 5 /* ESDI interface */
307 #define DTYPE_ST506 6 /* ST506 etc. */
308 #define DTYPE_HPIB 7 /* CS/80 on HP-IB */
309 #define DTYPE_HPFL 8 /* HP Fiber-link */
310 #define DTYPE_FLOPPY 10 /* floppy */
311 #define DTYPE_CCD 11 /* concatenated disk device */
312 #define DTYPE_VND 12 /* vnode pseudo-disk */
313 #define DTYPE_ATAPI 13 /* ATAPI */
314 #define DTYPE_RAID 14 /* RAIDframe */
315 #define DTYPE_LD 15 /* logical disk */
316 #define DTYPE_JFS2 16 /* IBM JFS2 */
317 #define DTYPE_CGD 17 /* cryptographic pseudo-disk */
318 #define DTYPE_VINUM 18 /* vinum volume */
319 
320 #ifdef DKTYPENAMES
321 static const char *const dktypenames[] = {
322  "unknown",
323  "SMD",
324  "MSCP",
325  "old DEC",
326  "SCSI",
327  "ESDI",
328  "ST506",
329  "HP-IB",
330  "HP-FL",
331  "type 9",
332  "floppy",
333  "ccd",
334  "vnd",
335  "ATAPI",
336  "RAID",
337  "ld",
338  "jfs",
339  "cgd",
340  "vinum",
341  NULL
342 };
343 #define DKMAXTYPES (sizeof(dktypenames) / sizeof(dktypenames[0]) - 1)
344 #endif
345 
346 /*
347  * Filesystem type and version.
348  * Used to interpret other filesystem-specific
349  * per-partition information.
350  *
351  * These are used only for COMPAT_09 support.
352  */
353 #define FS_UNUSED 0 /* unused */
354 #define FS_SWAP 1 /* swap */
355 #define FS_V6 2 /* Sixth Edition */
356 #define FS_V7 3 /* Seventh Edition */
357 #define FS_SYSV 4 /* System V */
358 #define FS_V71K 5 /* V7 with 1K blocks (4.1, 2.9) */
359 #define FS_V8 6 /* Eighth Edition, 4K blocks */
360 #define FS_BSDFFS 7 /* 4.2BSD fast file system */
361 #define FS_MSDOS 8 /* MSDOS file system */
362 #define FS_BSDLFS 9 /* 4.4BSD log-structured file system */
363 #define FS_OTHER 10 /* in use, but unknown/unsupported */
364 #define FS_HPFS 11 /* OS/2 high-performance file system */
365 #define FS_ISO9660 12 /* ISO 9660, normally CD-ROM */
366 #define FS_BOOT 13 /* partition contains bootstrap */
367 #define FS_ADOS 14 /* AmigaDOS fast file system */
368 #define FS_HFS 15 /* Macintosh HFS */
369 #define FS_FILECORE 16 /* Acorn Filecore Filing System */
370 #define FS_EX2FS 17 /* Linux Extended 2 file system */
371 #define FS_NTFS 18 /* Windows/NT file system */
372 #define FS_RAID 19 /* RAIDframe component */
373 #define FS_CCD 20 /* concatenated disk component */
374 #define FS_JFS2 21 /* IBM JFS2 */
375 #define FS_APPLEUFS 22 /* Apple UFS */
376 /* XXX this is not the same as FreeBSD. How to solve? */
377 #define FS_VINUM 23 /* Vinum */
378 
379 /* Adjust the FSMAXTYPES def below if you add something after APPLEUFS */
380 
381 #ifdef FSTYPENAMES
382 static const char *const fstypenames[] = {
383  "unused",
384  "swap",
385  "Version 6",
386  "Version 7",
387  "System V",
388  "4.1BSD",
389  "Eighth Edition",
390  "4.2BSD",
391  "MSDOS",
392  "4.4LFS",
393  "unknown",
394  "HPFS",
395  "ISO9660",
396  "boot",
397  "ADOS",
398  "HFS",
399  "FILECORE",
400  "Linux Ext2",
401  "NTFS",
402  "RAID",
403  "ccd",
404  "jfs",
405  "Apple UFS",
406  "vinum",
407  NULL
408 };
409 #define FSMAXTYPES (sizeof(fstypenames) / sizeof(fstypenames[0]) - 1)
410 #else
411 #define FSMAXTYPES (FS_VINUM + 1)
412 #endif
413 
414 #ifdef FSCKNAMES
415 /* These are the names MOUNT_XXX from <sys/mount.h> */
416 static const char *const fscknames[] = {
417  NULL, /* unused */
418  NULL, /* swap */
419  NULL, /* Version 6 */
420  NULL, /* Version 7 */
421  NULL, /* System V */
422  NULL, /* 4.1BSD */
423  NULL, /* Eighth edition */
424  "ffs", /* 4.2BSD */
425  "msdos", /* MSDOS */
426  "lfs", /* 4.4LFS */
427  NULL, /* unknown */
428  NULL, /* HPFS */
429  NULL, /* ISO9660 */
430  NULL, /* boot */
431  NULL, /* ADOS */
432  NULL, /* HFS */
433  NULL, /* FILECORE */
434  "ext2fs", /* Linux Ext2 */
435  NULL, /* Windows/NT */
436  NULL, /* RAID Component */
437  NULL, /* concatenated disk component */
438  NULL, /* IBM JFS2 */
439  "ffs", /* Apple UFS */
440  NULL /* NULL */
441 };
442 #define FSMAXNAMES (sizeof(fscknames) / sizeof(fscknames[0]) - 1)
443 
444 #endif
445 
446 #ifdef MOUNTNAMES
447 /* These are the names MOUNT_XXX from <sys/mount.h> */
448 static const char *const mountnames[] = {
449  NULL, /* unused */
450  NULL, /* swap */
451  NULL, /* Version 6 */
452  NULL, /* Version 7 */
453  NULL, /* System V */
454  NULL, /* 4.1BSD */
455  NULL, /* Eighth edition */
456  "ffs", /* 4.2BSD */
457  "msdos", /* MSDOS */
458  "lfs", /* 4.4LFS */
459  NULL, /* unknown */
460  NULL, /* HPFS */
461  "cd9660", /* ISO9660 */
462  NULL, /* boot */
463  "ados", /* ADOS */
464  NULL, /* HFS */
465  "filecore", /* FILECORE */
466  "ext2fs", /* Linux Ext2 */
467  "ntfs", /* Windows/NT */
468  NULL, /* RAID Component */
469  NULL, /* concatenated disk component */
470  NULL, /* IBM JFS2 */
471  "ffs", /* Apple UFS */
472  NULL /* NULL */
473 };
474 #define FSMAXMOUNTNAMES (sizeof(mountnames) / sizeof(mountnames[0]) - 1)
475 
476 #endif
477 
478 /*
479  * flags shared by various drives:
480  */
481 #define D_REMOVABLE 0x01 /* removable media */
482 #define D_ECC 0x02 /* supports ECC */
483 #define D_BADSECT 0x04 /* supports bad sector forw. */
484 #define D_RAMDISK 0x08 /* disk emulator */
485 #define D_CHAIN 0x10 /* can do back-back transfers */
486 
487 /*
488  * Drive data for SMD.
489  */
490 #define d_smdflags d_drivedata[0]
491 #define D_SSE 0x1 /* supports skip sectoring */
492 #define d_mindist d_drivedata[1]
493 #define d_maxdist d_drivedata[2]
494 #define d_sdist d_drivedata[3]
495 
496 /*
497  * Drive data for ST506.
498  */
499 #define d_precompcyl d_drivedata[0]
500 #define d_gap3 d_drivedata[1] /* used only when formatting */
501 
502 /*
503  * Drive data for SCSI.
504  */
505 #define d_blind d_drivedata[0]
506 
507 #ifndef _LOCORE
508 /*
509  * Structure used to perform a format or other raw operation,
510  * returning data and/or register values. Register identification
511  * and format are device- and driver-dependent. Currently unused.
512  */
513 struct format_op {
514  char *df_buf;
515  int df_count; /* value-result */
517  int df_reg[8]; /* result */
518 };
519 
520 /*
521  * Structure used internally to retrieve information about a partition
522  * on a disk.
523  */
524 struct partinfo {
526  struct partition *part;
527 };
528 
529 #ifdef _KERNEL
530 
531 struct disk;
532 
533 void diskerr __P((const struct buf *, const char *, const char *, int,
534  int, const struct disklabel *));
535 u_int dkcksum __P((struct disklabel *));
536 int setdisklabel __P((struct disklabel *, struct disklabel *, u_long,
537  struct cpu_disklabel *));
538 const char *readdisklabel __P((dev_t, void (*)(struct buf *),
539  struct disklabel *, struct cpu_disklabel *));
540 int writedisklabel __P((dev_t, void (*)(struct buf *), struct disklabel *,
541  struct cpu_disklabel *));
542 int bounds_check_with_label __P((struct disk *, struct buf *, int));
543 int bounds_check_with_mediasize __P((struct buf *, int, u_int64_t));
544 #endif
545 #endif /* _LOCORE */
546 
547 #if !defined(_KERNEL) && !defined(_LOCORE)
548 
549 #if 0 /* XXX ffsdrv */
550 #include <sys/cdefs.h>
551 #endif
552 
553 #endif
554 
555 #endif /* !_SYS_DISKLABEL_H_ */
u_int32_t d_magic2
Definition: disklabel.h:204
u_int16_t d_type
Definition: disklabel.h:131
u_int16_t d_subtype
Definition: disklabel.h:132
u_int32_t d_ncylinders
Definition: disklabel.h:252
u_int32_t d_headswitch
Definition: disklabel.h:262
char * un_d_boot0
Definition: disklabel.h:245
union disklabel::@727 d_un
unsigned long u_long
Definition: linux.h:269
u_int16_t d_sparespercyl
Definition: disklabel.h:169
u_int16_t d_subtype
Definition: disklabel.h:240
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
u_int16_t d_interleave
Definition: disklabel.h:194
u_int16_t d_sparespertrack
Definition: disklabel.h:255
u_int16_t d_sparespercyl
Definition: disklabel.h:256
u_int16_t d_npartitions
Definition: disklabel.h:208
char d_typename[16]
Definition: disklabel.h:241
u_int16_t d_interleave
Definition: disklabel.h:259
u_int32_t d_spare[NSPARE]
Definition: disklabel.h:203
u_int32_t d_trkseek
Definition: disklabel.h:198
u_int32_t d_bbsize
Definition: disklabel.h:270
char * un_d_boot1
Definition: disklabel.h:246
u_int32_t d_nsectors
Definition: disklabel.h:250
u_int16_t d_trackskew
Definition: disklabel.h:195
char * df_buf
Definition: disklabel.h:514
u_int16_t d_cylskew
Definition: disklabel.h:261
u_int32_t d_headswitch
Definition: disklabel.h:197
u_int16_t d_rpm
Definition: disklabel.h:193
union olddisklabel::opartition::@733 __partition_u2
u_int16_t d_checksum
Definition: disklabel.h:268
u_int32_t d_drivedata[NDDATA]
Definition: disklabel.h:265
unsigned char u_int8_t
Definition: rosdhcp.h:33
u_int32_t d_sbsize
Definition: disklabel.h:210
struct disklabel * disklab
Definition: disklabel.h:525
u_int16_t d_rpm
Definition: disklabel.h:258
smooth NULL
Definition: ftsmooth.c:416
UINT64 u_int64_t
Definition: types.h:76
u_int32_t d_drivedata[NDDATA]
Definition: disklabel.h:201
u_int16_t d_type
Definition: disklabel.h:239
u_int32_t d_spare[NSPARE]
Definition: disklabel.h:266
u_int32_t d_flags
Definition: disklabel.h:264
struct olddisklabel::@731::@732 un_b
int df_reg[8]
Definition: disklabel.h:517
u_int32_t cdsession
Definition: disklabel.h:217
u_int32_t d_secperunit
Definition: disklabel.h:254
struct partition * part
Definition: disklabel.h:526
u_int32_t d_secpercyl
Definition: disklabel.h:159
#define MAXPARTITIONS
Definition: disklabel.h:65
struct olddisklabel::opartition d_partitions[OLDMAXPARTITIONS]
u_int32_t d_ntracks
Definition: disklabel.h:157
u_int16_t d_trackskew
Definition: disklabel.h:260
#define NDDATA
Definition: disklabel.h:200
unsigned short u_int16_t
Definition: rosdhcp.h:34
u_int16_t d_cylskew
Definition: disklabel.h:196
u_int16_t d_sparespertrack
Definition: disklabel.h:168
u_int32_t p_offset
Definition: disklabel.h:213
unsigned int u_int32_t
Definition: rosdhcp.h:35
union olddisklabel::@731 d_un
u_int32_t d_flags
Definition: disklabel.h:199
u_int32_t d_bbsize
Definition: disklabel.h:209
__int64 daddr_t
Definition: type.h:22
char d_typename[16]
Definition: disklabel.h:133
char * un_d_boot0
Definition: disklabel.h:146
_STLP_MOVE_TO_STD_NAMESPACE _ForwardIter partition(_ForwardIter __first, _ForwardIter __last, _Predicate __pred)
Definition: _algo.c:738
u_int32_t d_magic
Definition: disklabel.h:130
u_int32_t d_secperunit
Definition: disklabel.h:160
u_int32_t d_secsize
Definition: disklabel.h:249
u_int32_t d_ncylinders
Definition: disklabel.h:158
__kernel_dev_t dev_t
Definition: linux.h:197
UINT32 u_int
Definition: types.h:82
u_int32_t d_secsize
Definition: disklabel.h:155
char un_d_packname[16]
Definition: disklabel.h:144
#define NSPARE
Definition: disklabel.h:202
u_int32_t d_magic
Definition: disklabel.h:238
daddr_t df_startblk
Definition: disklabel.h:516
u_int32_t d_acylinders
Definition: disklabel.h:174
union olddisklabel::opartition::@734 __partition_u1
char un_d_packname[16]
Definition: disklabel.h:243
u_int32_t d_secpercyl
Definition: disklabel.h:253
int df_count
Definition: disklabel.h:515
u_int16_t d_checksum
Definition: disklabel.h:205
struct disklabel::@727::@728 un_b
u_int32_t d_nsectors
Definition: disklabel.h:156
u_int32_t d_magic2
Definition: disklabel.h:267
struct disklabel::partition d_partitions[MAXPARTITIONS]
u_int32_t d_trkseek
Definition: disklabel.h:263
u_int32_t d_sbsize
Definition: disklabel.h:271
#define __P(x)
Definition: various.h:10
union disklabel::partition::@729 __partition_u2
#define OLDMAXPARTITIONS
Definition: disklabel.h:66
u_int16_t d_npartitions
Definition: disklabel.h:269
char * un_d_boot1
Definition: disklabel.h:147
union disklabel::partition::@730 __partition_u1
u_int32_t d_acylinders
Definition: disklabel.h:257
u_int32_t d_ntracks
Definition: disklabel.h:251