usr/src/grub/grub-0.97/stage2/disk_inode.h
author William Kucharski <William.Kucharski@Sun.COM>
Fri, 07 Nov 2008 21:36:41 -0700
changeset 8044 b3af80bbf173
parent 0 usr/src/grub/grub-0.95/stage2/disk_inode.h@68f95e015346
permissions -rw-r--r--
6731552 GRUB should have the ability to overlay a logo on the graphical splash screen 6762035 GRUB needs to understand new ext3 256 Byte inodes 6762243 GRUB should be updated to version 0.97
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
 * Copyright (c) 1982, 1989 The Regents of the University of California.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    28
 * All rights reserved.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    29
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    30
 * Redistribution and use in source and binary forms are permitted
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    31
 * provided that the above copyright notice and this paragraph are
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    32
 * duplicated in all such forms and that any documentation,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    33
 * advertising materials, and other materials related to such
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    34
 * distribution and use acknowledge that the software was developed
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    35
 * by the University of California, Berkeley.  The name of the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    36
 * University may not be used to endorse or promote products derived
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    37
 * from this software without specific prior written permission.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    38
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    39
 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    40
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    41
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    42
 *	@(#)inode.h	7.5 (Berkeley) 7/3/89
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    43
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    44
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    45
#ifndef	_BOOT_UFS_DISK_INODE_H_
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    46
#define	_BOOT_UFS_DISK_INODE_H_
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
 * The I node is the focus of all file activity in the BSD Fast File System.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    50
 * There is a unique inode allocated for each active file,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    51
 * each current directory, each mounted-on file, text file, and the root.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    52
 * An inode is 'named' by its dev/inumber pair. (iget/iget.c)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    53
 * Data in icommon is read in from permanent inode on volume.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    54
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    55
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    56
#define	FFS_NDADDR	12	/* direct addresses in inode */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    57
#define	FFS_NIADDR	3	/* indirect addresses in inode */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    58
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    59
#define	FFS_MAX_FASTLINK_SIZE	((FFS_NDADDR + FFS_NIADDR) \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    60
				 * sizeof (mach_daddr_t))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    61
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    62
struct icommon
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    63
  {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    64
    u_short ic_mode;		/*  0: mode and type of file */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    65
    short ic_nlink;		/*  2: number of links to file */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    66
    mach_uid_t ic_uid;		/*  4: owner's user id */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    67
    mach_gid_t ic_gid;		/*  6: owner's group id */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    68
    quad ic_size;		/*  8: number of bytes in file */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    69
    mach_time_t ic_atime;	/* 16: time last accessed */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    70
    int ic_atspare;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    71
    mach_time_t ic_mtime;	/* 24: time last modified */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    72
    int ic_mtspare;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    73
    mach_time_t ic_ctime;	/* 32: last time inode changed */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    74
    int ic_ctspare;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    75
    union
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    76
      {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    77
	struct
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    78
	  {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    79
	    mach_daddr_t Mb_db[FFS_NDADDR];	/* 40: disk block addresses */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    80
	    mach_daddr_t Mb_ib[FFS_NIADDR];	/* 88: indirect blocks */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    81
	  }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    82
	ic_Mb;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    83
	char ic_Msymlink[FFS_MAX_FASTLINK_SIZE];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    84
	/* 40: symbolic link name */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    85
      }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    86
    ic_Mun;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    87
#define	ic_db		ic_Mun.ic_Mb.Mb_db
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    88
#define	ic_ib		ic_Mun.ic_Mb.Mb_ib
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    89
#define	ic_symlink	ic_Mun.ic_Msymlink
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    90
    int ic_flags;		/* 100: status, currently unused */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    91
    int ic_blocks;		/* 104: blocks actually held */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    92
    int ic_gen;			/* 108: generation number */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    93
    int ic_spare[4];		/* 112: reserved, currently unused */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    94
  };
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
 *	Same structure, but on disk.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    98
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    99
struct dinode
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   100
  {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   101
    union
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   102
      {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   103
	struct icommon di_com;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   104
	char di_char[128];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   105
      }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   106
    di_un;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   107
  };
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   108
#define	di_ic	di_un.di_com
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   109
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   110
#endif /* _BOOT_UFS_DISK_INODE_H_ */