1 /* 2 * Mach Operating System 3 * Copyright (c) 1991,1990 Carnegie Mellon University 4 * All Rights Reserved. 5 * 6 * Permission to use, copy, modify and distribute this software and its 7 * documentation is hereby granted, provided that both the copyright 8 * notice and this permission notice appear in all copies of the 9 * software, derivative works or modified versions, and any portions 10 * thereof, and that both notices appear in supporting documentation. 11 * 12 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 13 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR 14 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 15 * 16 * Carnegie Mellon requests users of this software to return to 17 * 18 * Software Distribution Coordinator or Software.Distribution (at) CS.CMU.EDU 19 * School of Computer Science 20 * Carnegie Mellon University 21 * Pittsburgh PA 15213-3890 22 * 23 * any improvements or extensions that they make and grant Carnegie Mellon 24 * the rights to redistribute these changes. 25 */ 26 /* 27 * Common definitions for Berkeley Fast File System. 28 */ 29 30 /* 31 * Compatibility definitions for disk IO. 32 */ 33 34 /* 35 * Disk devices do all IO in 512-byte blocks. 36 */ 37 #define DEV_BSIZE 512 38 39 /* 40 * Conversion between bytes and disk blocks. 41 */ 42 #define btodb(byte_offset) ((byte_offset) >> 9) 43 #define dbtob(block_number) ((block_number) << 9) 44 45 /* 46 * Compatibility definitions for old type names. 47 */ 48 49 typedef unsigned char u_char; /* unsigned char */ 50 typedef unsigned short u_short; /* unsigned short */ 51 typedef unsigned int u_int; /* unsigned int */ 52 53 typedef struct _quad_ 54 { 55 unsigned int val[2]; /* 2 int values make... */ 56 } 57 quad; /* an 8-byte item */ 58 59 typedef unsigned int mach_time_t; /* an unsigned int */ 60 typedef unsigned int mach_daddr_t; /* an unsigned int */ 61 typedef unsigned int mach_off_t; /* another unsigned int */ 62 63 typedef unsigned short mach_uid_t; 64 typedef unsigned short mach_gid_t; 65 typedef unsigned int mach_ino_t; 66 67 #define NBBY 8 68 69 /* 70 * The file system is made out of blocks of at most MAXBSIZE units, 71 * with smaller units (fragments) only in the last direct block. 72 * MAXBSIZE primarily determines the size of buffers in the buffer 73 * pool. It may be made larger without any effect on existing 74 * file systems; however, making it smaller may make some file 75 * systems unmountable. 76 * 77 * Note that the disk devices are assumed to have DEV_BSIZE "sectors" 78 * and that fragments must be some multiple of this size. 79 */ 80 #define MAXBSIZE 8192 81 #define MAXFRAG 8 82 83 /* 84 * MAXPATHLEN defines the longest permissible path length 85 * after expanding symbolic links. 86 * 87 * MAXSYMLINKS defines the maximum number of symbolic links 88 * that may be expanded in a path name. It should be set 89 * high enough to allow all legitimate uses, but halt infinite 90 * loops reasonably quickly. 91 */ 92 93 #define MAXPATHLEN 1024 94 #define MAXSYMLINKS 8 95