home *** CD-ROM | disk | FTP | other *** search
/ H4CK3R 4 / hacker04 / 04_HACK04.ISO / darwin / darwinx86.iso / usr / include / sys / disktab.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-09-30  |  3.5 KB  |  98 lines

  1. /*
  2.  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
  3.  *
  4.  * @APPLE_LICENSE_HEADER_START@
  5.  * 
  6.  * The contents of this file constitute Original Code as defined in and
  7.  * are subject to the Apple Public Source License Version 1.1 (the
  8.  * "License").  You may not use this file except in compliance with the
  9.  * License.  Please obtain a copy of the License at
  10.  * http://www.apple.com/publicsource and read it before using this file.
  11.  * 
  12.  * This Original Code and all software distributed under the License are
  13.  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  14.  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  15.  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
  16.  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
  17.  * License for the specific language governing rights and limitations
  18.  * under the License.
  19.  * 
  20.  * @APPLE_LICENSE_HEADER_END@
  21.  */
  22. /*
  23.  * HISTORY:
  24.  * 16-Mar-88  John Seamons (jks) at NeXT
  25.  *    Cleaned up to support standard disk label definitions.
  26.  *
  27.  * 24-Feb-88  Mike DeMoney (mike) at NeXT
  28.  *    Added d_boot0_blkno to indicate logical block number
  29.  *    of "block 0" boot.  This blkno is in d_secsize sectors.
  30.  *    Added d_bootfile to indicate the default operating system
  31.  *    image to be booted by the blk 0 boot.
  32.  *    Changed d_name and d_type to be char arrays rather than ptrs
  33.  *    so they are part of label.  This limits length of info in
  34.  *    /etc/disktab, sorry.
  35.  */
  36.  
  37. #ifndef    _SYS_DISKTAB_
  38. #define _SYS_DISKTAB_
  39.  
  40. /*
  41.  * Disk description table, see disktab(5)
  42.  */
  43. #ifndef KERNEL
  44. #define    DISKTAB        "/etc/disktab"
  45. #endif    /* !KERNEL */
  46.  
  47. #define    MAXDNMLEN    24    // drive name length
  48. #define    MAXMPTLEN    16    // mount point length
  49. #define    MAXFSTLEN    8    // file system type length
  50. #define    MAXTYPLEN    24    // drive type length
  51. #define    NBOOTS        2    // # of boot blocks
  52. #define    MAXBFLEN     24    // bootfile name length
  53. #define    MAXHNLEN     32    // host name length
  54. #define    NPART        8    // # of partitions
  55.  
  56. typedef struct partition {
  57.     int    p_base;        /* base sector# of partition */
  58.     int    p_size;        /* #sectors in partition */
  59.     short    p_bsize;    /* block size in bytes */
  60.     short    p_fsize;    /* frag size in bytes */
  61.     char    p_opt;        /* 's'pace/'t'ime optimization pref */
  62.     short    p_cpg;        /* cylinders per group */
  63.     short    p_density;    /* bytes per inode density */
  64.     char    p_minfree;    /* minfree (%) */
  65.     char    p_newfs;    /* run newfs during init */
  66.     char    p_mountpt[MAXMPTLEN];/* mount point */
  67.     char    p_automnt;    /* auto-mount when inserted */
  68.     char    p_type[MAXFSTLEN];/* file system type */
  69. } partition_t;
  70.  
  71. typedef struct disktab {
  72.     char    d_name[MAXDNMLEN];    /* drive name */
  73.     char    d_type[MAXTYPLEN];    /* drive type */
  74.     int    d_secsize;        /* sector size in bytes */
  75.     int    d_ntracks;        /* # tracks/cylinder */
  76.     int    d_nsectors;        /* # sectors/track */
  77.     int    d_ncylinders;        /* # cylinders */
  78.     int    d_rpm;            /* revolutions/minute */
  79.     short    d_front;        /* size of front porch (sectors) */
  80.     short    d_back;            /* size of back porch (sectors) */
  81.     short    d_ngroups;        /* number of alt groups */
  82.     short    d_ag_size;        /* alt group size (sectors) */
  83.     short    d_ag_alts;        /* alternate sectors / alt group */
  84.     short    d_ag_off;        /* sector offset to first alternate */
  85.     int    d_boot0_blkno[NBOOTS];    /* "blk 0" boot locations */
  86.     char    d_bootfile[MAXBFLEN];    /* default bootfile */
  87.     char    d_hostname[MAXHNLEN];    /* host name */
  88.     char    d_rootpartition;    /* root partition e.g. 'a' */
  89.     char    d_rwpartition;        /* r/w partition e.g. 'b' */
  90.     partition_t d_partitions[NPART];
  91. } disktab_t;
  92.  
  93. #ifndef KERNEL
  94. struct    disktab *getdiskbyname(), *getdiskbydev();
  95. #endif    /* !KERNEL */
  96.  
  97. #endif    /* _SYS_DISKTAB_ */
  98.