const.h

Go to the documentation of this file.
00001 /* Tables sizes */
00002 #define V1_NR_DZONES       7    /* # direct zone numbers in a V1 inode */
00003 #define V1_NR_TZONES       9    /* total # zone numbers in a V1 inode */
00004 #define V2_NR_DZONES       7    /* # direct zone numbers in a V2 inode */
00005 #define V2_NR_TZONES      10    /* total # zone numbers in a V2 inode */
00006 
00007 #define NR_FILPS         256    /* # slots in filp table */
00008 #define NR_INODES        256    /* # slots in "in core" inode table */
00009 #define NR_SUPERS         12    /* # slots in super block table */
00010 #define NR_LOCKS           8    /* # slots in the file locking table */
00011 
00012 /* The type of sizeof may be (unsigned) long.  Use the following macro for
00013  * taking the sizes of small objects so that there are no surprises like
00014  * (small) long constants being passed to routines expecting an int.
00015  */
00016 #define usizeof(t) ((unsigned) sizeof(t))
00017 
00018 /* File system types. */
00019 #define SUPER_MAGIC   0x137F    /* magic number contained in super-block */
00020 #define SUPER_REV     0x7F13    /* magic # when 68000 disk read on PC or vv */
00021 #define SUPER_V2      0x2468    /* magic # for V2 file systems */
00022 #define SUPER_V2_REV  0x6824    /* V2 magic written on PC, read on 68K or vv */
00023 #define SUPER_V3      0x4d5a    /* magic # for V3 file systems */
00024 
00025 #define V1                 1    /* version number of V1 file systems */ 
00026 #define V2                 2    /* version number of V2 file systems */ 
00027 #define V3                 3    /* version number of V3 file systems */ 
00028 
00029 /* Miscellaneous constants */
00030 #define SU_UID   ((uid_t) 0)    /* super_user's uid_t */
00031 #define SERVERS_UID ((uid_t) 11) /* who may do FSSIGNON */
00032 #define SYS_UID  ((uid_t) 0)    /* uid_t for processes MM and INIT */
00033 #define SYS_GID  ((gid_t) 0)    /* gid_t for processes MM and INIT */
00034 #define NORMAL             0    /* forces get_block to do disk read */
00035 #define NO_READ            1    /* prevents get_block from doing disk read */
00036 #define PREFETCH           2    /* tells get_block not to read or mark dev */
00037 
00038 #define XPIPE   (-NR_TASKS-1)   /* used in fp_task when susp'd on pipe */
00039 #define XLOCK   (-NR_TASKS-2)   /* used in fp_task when susp'd on lock */
00040 #define XPOPEN  (-NR_TASKS-3)   /* used in fp_task when susp'd on pipe open */
00041 #define XSELECT (-NR_TASKS-4)   /* used in fp_task when susp'd on select */
00042 
00043 #define NO_BIT   ((bit_t) 0)    /* returned by alloc_bit() to signal failure */
00044 
00045 #define DUP_MASK        0100    /* mask to distinguish dup2 from dup */
00046 
00047 #define LOOK_UP            0 /* tells search_dir to lookup string */
00048 #define ENTER              1 /* tells search_dir to make dir entry */
00049 #define DELETE             2 /* tells search_dir to delete entry */
00050 #define IS_EMPTY           3 /* tells search_dir to ret. OK or ENOTEMPTY */  
00051 
00052 /* write_map() args */
00053 #define WMAP_FREE       (1 << 0)
00054 
00055 #define PATH_TRANSPARENT 000   /* parse_path stops at final object */
00056 #define PATH_PENULTIMATE 001   /* parse_path stops at last but one name */
00057 #define PATH_OPAQUE      002   /* parse_path stops at final name */
00058 #define PATH_NONSYMBOLIC 004   /* parse_path scans final name if symbolic */
00059 #define PATH_STRIPDOT    010   /* parse_path strips /. from path */
00060 #define EAT_PATH         PATH_TRANSPARENT
00061 #define EAT_PATH_OPAQUE  PATH_OPAQUE 
00062 #define LAST_DIR         PATH_PENULTIMATE
00063 #define LAST_DIR_NOTDOT  PATH_PENULTIMATE | PATH_STRIPDOT
00064 #define LAST_DIR_EATSYM  PATH_NONSYMBOLIC
00065 #define SYMLOOP         16
00066 
00067 #define CLEAN              0    /* disk and memory copies identical */
00068 #define DIRTY              1    /* disk and memory copies differ */
00069 #define ATIME            002    /* set if atime field needs updating */
00070 #define CTIME            004    /* set if ctime field needs updating */
00071 #define MTIME            010    /* set if mtime field needs updating */
00072 
00073 #define BYTE_SWAP          0    /* tells conv2/conv4 to swap bytes */
00074 
00075 #define END_OF_FILE   (-104)    /* eof detected */
00076 
00077 #define ROOT_INODE         1            /* inode number for root directory */
00078 #define BOOT_BLOCK  ((block_t) 0)       /* block number of boot block */
00079 #define SUPER_BLOCK_BYTES (1024)        /* bytes offset */
00080 #define START_BLOCK     2               /* first block of FS (not counting SB) */
00081 
00082 #define DIR_ENTRY_SIZE       usizeof (struct direct)  /* # bytes/dir entry   */
00083 #define NR_DIR_ENTRIES(b)   ((b)/DIR_ENTRY_SIZE)  /* # dir entries/blk   */
00084 #define SUPER_SIZE      usizeof (struct super_block)  /* super_block size    */
00085 #define PIPE_SIZE(b)          (V1_NR_DZONES*(b))  /* pipe size in bytes  */
00086 
00087 #define FS_BITMAP_CHUNKS(b) ((b)/usizeof (bitchunk_t))/* # map chunks/blk   */
00088 #define FS_BITCHUNK_BITS                (usizeof(bitchunk_t) * CHAR_BIT)
00089 #define FS_BITS_PER_BLOCK(b)    (FS_BITMAP_CHUNKS(b) * FS_BITCHUNK_BITS)
00090 
00091 /* Derived sizes pertaining to the V1 file system. */
00092 #define V1_ZONE_NUM_SIZE           usizeof (zone1_t)  /* # bytes in V1 zone  */
00093 #define V1_INODE_SIZE             usizeof (d1_inode)  /* bytes in V1 dsk ino */
00094 
00095 /* # zones/indir block */
00096 #define V1_INDIRECTS (_STATIC_BLOCK_SIZE/V1_ZONE_NUM_SIZE)  
00097 
00098 /* # V1 dsk inodes/blk */
00099 #define V1_INODES_PER_BLOCK (_STATIC_BLOCK_SIZE/V1_INODE_SIZE)
00100 
00101 /* Derived sizes pertaining to the V2 file system. */
00102 #define V2_ZONE_NUM_SIZE            usizeof (zone_t)  /* # bytes in V2 zone  */
00103 #define V2_INODE_SIZE             usizeof (d2_inode)  /* bytes in V2 dsk ino */
00104 #define V2_INDIRECTS(b)   ((b)/V2_ZONE_NUM_SIZE)  /* # zones/indir block */
00105 #define V2_INODES_PER_BLOCK(b) ((b)/V2_INODE_SIZE)/* # V2 dsk inodes/blk */

Generated on Fri Apr 14 22:56:42 2006 for minix by  doxygen 1.4.6