disklabel.h revision 199767f8919635c4928607450d9e0abb932109ce
/*-
* Copyright (c) 1987, 1988, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)disklabel.h 8.2 (Berkeley) 7/10/94
* $FreeBSD$
*/
#ifndef _SYS_DISKLABEL_H_
#define _SYS_DISKLABEL_H_
#ifndef _KERNEL
#endif
/*
* Disk description table, see disktab(5)
*/
#define _PATH_DISKTAB "/etc/disktab"
/*
* Each disk has a label which includes information about the hardware
* disk geometry, filesystem partitions, and drive specific information.
* The label is in block 0 or 1, possibly offset from the beginning
* to leave room for a bootstrap, etc.
*/
/* XXX these should be defined per controller (or drive) elsewhere, not here! */
defined(__powerpc__) || defined(__mips__)
#define LABELOFFSET 0 /* offset of label in sector */
#endif
#ifndef MAXPARTITIONS
#define MAXPARTITIONS 8
#endif
/* Size of bootblock area in sector-size neutral bytes */
#define BBSIZE 8192
struct disklabel {
/* disk geometry: */
/*
* Spares (bad sector replacements) below are not counted in
* d_nsectors or d_secpercyl. Spare sectors are assumed to
* be physical sectors which occupy space at the end of each
*/
/*
* Alternate cylinders include maintenance, replacement, configuration
* description areas, etc.
*/
/* hardware characteristics: */
/*
* d_interleave, d_trackskew and d_cylskew describe perturbations
* in the media format used to compensate for a slow controller.
* Interleave is physical sector interleave, set up by the
* formatter or controller when formatting. When interleaving is
* in use, logically adjacent sectors are not physically
* contiguous, but instead are separated by some number of
* sectors. It is specified as the ratio of physical sectors
* traversed per logical sector. Thus an interleave of 1:1
* implies contiguous layout, while 2:1 implies that logical
* sector 0 is separated by one sector from logical sector 1.
* d_trackskew is the offset of sector 0 on track N relative to
* sector 0 on track N-1 on the same cylinder. Finally, d_cylskew
* is the offset of sector 0 on cylinder N relative to sector 0
* on cylinder N-1.
*/
#define NDDATA 5
#define NSPARE 5
/* filesystem and partition information: */
struct partition { /* the partition table */
};
#ifdef CTASSERT
#endif
{
return (sum);
}
/* d_type values: */
#ifdef DKTYPENAMES
static const char *dktypenames[] = {
"unknown",
"SMD",
"MSCP",
"old DEC",
"SCSI",
"ESDI",
"ST506",
"HP-IB",
"HP-FL",
"type 9",
"floppy",
"CCD",
"Vinum",
"DOC2K",
"Raid",
"?",
"jfs",
};
#endif
/*
* Filesystem type and version.
* Used to interpret other filesystem-specific
* per-partition information.
*/
#define FS_UNUSED 0 /* unused */
#ifdef FSTYPENAMES
static const char *fstypenames[] = {
"unused",
"swap",
"Version 6",
"Version 7",
"System V",
"4.1BSD",
"Eighth Edition",
"4.2BSD",
"MSDOS",
"4.4LFS",
"unknown",
"HPFS",
"ISO9660",
"boot",
"vinum",
"raid",
"Filecore",
"EXT2FS",
"NTFS",
"?",
"ccd",
"jfs",
"HAMMER",
"HAMMER2",
"UDF",
"?",
"EFS",
"ZFS",
"?",
"?",
"nandfs",
};
#endif
/*
* flags shared by various drives:
*/
/*
*/
/*
* bytestring.
*/
#ifndef _KERNEL
struct disklabel *getdiskbyname(const char *);
#endif
#endif /* !_SYS_DISKLABEL_H_ */