gems-kernel/source/THIRDPARTY/xnu/bsd/sys/disktab.h
2024-06-03 11:29:39 -05:00

109 lines
4.4 KiB
C

/*
* Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
*
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
*
* This file contains Original Code and/or Modifications of Original Code
* as defined in and that are subject to the Apple Public Source License
* Version 2.0 (the 'License'). You may not use this file except in
* compliance with the License. The rights granted to you under the License
* may not be used to create, or enable the creation or redistribution of,
* unlawful or unlicensed copies of an Apple operating system, or to
* circumvent, violate, or enable the circumvention or violation of, any
* terms of an Apple operating system software license agreement.
*
* Please obtain a copy of the License at
* http://www.opensource.apple.com/apsl/ and read it before using this file.
*
* The Original Code and all software distributed under the License are
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
* Please see the License for the specific language governing rights and
* limitations under the License.
*
* @APPLE_OSREFERENCE_LICENSE_HEADER_END@
*/
/*
* HISTORY:
* 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 d_boot0_blkno to indicate logical block number
* of "block 0" boot. This blkno is in d_secsize sectors.
* Added d_bootfile to indicate the default operating system
* image to be booted by the blk 0 boot.
* Changed d_name and d_type to be char arrays rather than ptrs
* so they are part of label. This limits length of info in
* /etc/disktab, sorry.
*/
#ifndef _SYS_DISKTAB_
#define _SYS_DISKTAB_
#include <sys/appleapiopts.h>
#ifdef __APPLE_API_OBSOLETE
/*
* Disk description table, see disktab(5)
*/
#ifndef KERNEL
#define DISKTAB "/etc/disktab"
#endif /* !KERNEL */
#define MAXDNMLEN 24 // drive name length
#define MAXMPTLEN 16 // mount point length
#define MAXFSTLEN 8 // file system type length
#define MAXTYPLEN 24 // drive type length
#define NBOOTS 2 // # of boot blocks
#define MAXBFLEN 24 // bootfile name length
#define MAXHNLEN 32 // host name length
#define NPART 8 // # of partitions
typedef struct partition {
int p_base; /* base sector# of partition */
int p_size; /* #sectors in partition */
short p_bsize; /* block size in bytes */
short p_fsize; /* frag size in bytes */
char p_opt; /* 's'pace/'t'ime optimization pref */
short p_cpg; /* cylinders per group */
short p_density; /* bytes per inode density */
char p_minfree; /* minfree (%) */
char p_newfs; /* run newfs during init */
char p_mountpt[MAXMPTLEN];/* mount point */
char p_automnt; /* auto-mount when inserted */
char p_type[MAXFSTLEN];/* file system type */
} partition_t;
typedef struct disktab {
char d_name[MAXDNMLEN]; /* drive name */
char d_type[MAXTYPLEN]; /* drive type */
int d_secsize; /* sector size in bytes */
int d_ntracks; /* # tracks/cylinder */
int d_nsectors; /* # sectors/track */
int d_ncylinders; /* # cylinders */
int d_rpm; /* revolutions/minute */
short d_front; /* size of front porch (sectors) */
short d_back; /* size of back porch (sectors) */
short d_ngroups; /* number of alt groups */
short d_ag_size; /* alt group size (sectors) */
short d_ag_alts; /* alternate sectors / alt group */
short d_ag_off; /* sector offset to first alternate */
int d_boot0_blkno[NBOOTS]; /* "blk 0" boot locations */
char d_bootfile[MAXBFLEN]; /* default bootfile */
char d_hostname[MAXHNLEN]; /* host name */
char d_rootpartition; /* root partition e.g. 'a' */
char d_rwpartition; /* r/w partition e.g. 'b' */
partition_t d_partitions[NPART];
} disktab_t;
#ifndef KERNEL
struct disktab *getdiskbyname(), *getdiskbydev();
#endif /* !KERNEL */
#endif /* __APPLE_API_OBSOLETE */
#endif /* _SYS_DISKTAB_ */