usr/src/grub/grub-0.97/stage2/defs.h
author Christopher Siden <chris.siden@delphix.com>
Mon, 21 May 2012 12:11:39 -0700
changeset 13700 2889e2596bd6
parent 8044 b3af80bbf173
permissions -rw-r--r--
2619 asynchronous destruction of ZFS file systems 2747 SPA versioning with zfs feature flags Reviewed by: Matt Ahrens <[email protected]> Reviewed by: George Wilson <[email protected]> Reviewed by: Richard Lowe <[email protected]> Reviewed by: Dan Kruchinin <[email protected]> Approved by: Eric Schrock <[email protected]>
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     1
/* 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     2
 * Mach Operating System
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     3
 * Copyright (c) 1991,1990 Carnegie Mellon University
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     4
 * All Rights Reserved.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     5
 * 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     6
 * Permission to use, copy, modify and distribute this software and its
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     7
 * documentation is hereby granted, provided that both the copyright
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     8
 * notice and this permission notice appear in all copies of the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     9
 * software, derivative works or modified versions, and any portions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    10
 * thereof, and that both notices appear in supporting documentation.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    11
 * 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    12
 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    13
 * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    14
 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    15
 * 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    16
 * Carnegie Mellon requests users of this software to return to
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    17
 * 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    18
 *  Software Distribution Coordinator  or  [email protected]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    19
 *  School of Computer Science
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    20
 *  Carnegie Mellon University
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    21
 *  Pittsburgh PA 15213-3890
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    22
 * 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    23
 * any improvements or extensions that they make and grant Carnegie Mellon
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    24
 * the rights to redistribute these changes.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    25
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    26
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    27
 * Common definitions for Berkeley Fast File System.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    28
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    29
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    30
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    31
 * Compatibility definitions for disk IO.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    32
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    33
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    34
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    35
 * Disk devices do all IO in 512-byte blocks.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    36
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    37
#define	DEV_BSIZE	512
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    38
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    39
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    40
 * Conversion between bytes and disk blocks.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    41
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    42
#define	btodb(byte_offset)	((byte_offset) >> 9)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    43
#define	dbtob(block_number)	((block_number) << 9)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    44
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    45
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    46
 * Compatibility definitions for old type names.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    47
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    48
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    49
typedef unsigned char u_char;	/* unsigned char */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    50
typedef unsigned short u_short;	/* unsigned short */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    51
typedef unsigned int u_int;	/* unsigned int */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    52
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    53
#if !defined(__sun) || !defined(GRUB_UTIL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    54
typedef struct _quad_
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    55
  {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    56
    unsigned int val[2];	/* 2 int values make... */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    57
  }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    58
quad;				/* an 8-byte item */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    59
#endif /* !__sun || !GRUB_UTIL */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    60
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    61
typedef unsigned int mach_time_t;	/* an unsigned int */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    62
typedef unsigned int mach_daddr_t;	/* an unsigned int */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    63
typedef unsigned int mach_off_t;	/* another unsigned int */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    65
typedef unsigned short mach_uid_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    66
typedef unsigned short mach_gid_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    67
typedef unsigned int mach_ino_t;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    68
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    69
#ifndef NBBY
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    70
#define	NBBY	8
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    71
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    72
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    73
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    74
 * The file system is made out of blocks of at most MAXBSIZE units,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    75
 * with smaller units (fragments) only in the last direct block.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    76
 * MAXBSIZE primarily determines the size of buffers in the buffer
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    77
 * pool.  It may be made larger without any effect on existing
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    78
 * file systems; however, making it smaller may make some file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    79
 * systems unmountable.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    80
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    81
 * Note that the disk devices are assumed to have DEV_BSIZE "sectors"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    82
 * and that fragments must be some multiple of this size.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    83
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    84
#define	MAXBSIZE	8192
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    85
#define	MAXFRAG		8
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    86
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    87
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    88
 * MAXPATHLEN defines the longest permissible path length
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    89
 * after expanding symbolic links.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    90
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    91
 * MAXSYMLINKS defines the maximum number of symbolic links
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    92
 * that may be expanded in a path name.  It should be set
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    93
 * high enough to allow all legitimate uses, but halt infinite
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    94
 * loops reasonably quickly.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    95
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    96
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    97
#define	MAXPATHLEN	1024
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    98
#define	MAXSYMLINKS	8