|  | /* | 
|  | * Mach Operating System | 
|  | * Copyright (c) 1991,1990 Carnegie Mellon University | 
|  | * All Rights Reserved. | 
|  | * | 
|  | * Permission to use, copy, modify and distribute this software and its | 
|  | * documentation is hereby granted, provided that both the copyright | 
|  | * notice and this permission notice appear in all copies of the | 
|  | * software, derivative works or modified versions, and any portions | 
|  | * thereof, and that both notices appear in supporting documentation. | 
|  | * | 
|  | * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" | 
|  | * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR | 
|  | * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. | 
|  | * | 
|  | * Carnegie Mellon requests users of this software to return to | 
|  | * | 
|  | *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU | 
|  | *  School of Computer Science | 
|  | *  Carnegie Mellon University | 
|  | *  Pittsburgh PA 15213-3890 | 
|  | * | 
|  | * any improvements or extensions that they make and grant Carnegie Mellon | 
|  | * the rights to redistribute these changes. | 
|  | */ | 
|  | /* | 
|  | * Common definitions for Berkeley Fast File System. | 
|  | */ | 
|  |  | 
|  | /* | 
|  | * Compatibility definitions for disk IO. | 
|  | */ | 
|  |  | 
|  | /* | 
|  | * Disk devices do all IO in 512-byte blocks. | 
|  | */ | 
|  | #define	DEV_BSIZE	512 | 
|  |  | 
|  | /* | 
|  | * Conversion between bytes and disk blocks. | 
|  | */ | 
|  | #define	btodb(byte_offset)	((byte_offset) >> 9) | 
|  | #define	dbtob(block_number)	((block_number) << 9) | 
|  |  | 
|  | /* | 
|  | * Compatibility definitions for old type names. | 
|  | */ | 
|  |  | 
|  | typedef unsigned char u_char;	/* unsigned char */ | 
|  | typedef unsigned short u_short;	/* unsigned short */ | 
|  | typedef unsigned int u_int;	/* unsigned int */ | 
|  |  | 
|  | typedef struct _quad_ | 
|  | { | 
|  | unsigned int val[2];	/* 2 int values make... */ | 
|  | } | 
|  | quad;				/* an 8-byte item */ | 
|  |  | 
|  | typedef unsigned int mach_time_t;	/* an unsigned int */ | 
|  | typedef unsigned int mach_daddr_t;	/* an unsigned int */ | 
|  | typedef unsigned int mach_off_t;	/* another unsigned int */ | 
|  |  | 
|  | typedef unsigned short mach_uid_t; | 
|  | typedef unsigned short mach_gid_t; | 
|  | typedef unsigned int mach_ino_t; | 
|  |  | 
|  | #define	NBBY	8 | 
|  |  | 
|  | /* | 
|  | * The file system is made out of blocks of at most MAXBSIZE units, | 
|  | * with smaller units (fragments) only in the last direct block. | 
|  | * MAXBSIZE primarily determines the size of buffers in the buffer | 
|  | * pool.  It may be made larger without any effect on existing | 
|  | * file systems; however, making it smaller may make some file | 
|  | * systems unmountable. | 
|  | * | 
|  | * Note that the disk devices are assumed to have DEV_BSIZE "sectors" | 
|  | * and that fragments must be some multiple of this size. | 
|  | */ | 
|  | #define	MAXBSIZE	8192 | 
|  | #define	MAXFRAG		8 | 
|  |  | 
|  | /* | 
|  | * MAXPATHLEN defines the longest permissible path length | 
|  | * after expanding symbolic links. | 
|  | * | 
|  | * MAXSYMLINKS defines the maximum number of symbolic links | 
|  | * that may be expanded in a path name.  It should be set | 
|  | * high enough to allow all legitimate uses, but halt infinite | 
|  | * loops reasonably quickly. | 
|  | */ | 
|  |  | 
|  | #define	MAXPATHLEN	1024 | 
|  | #define	MAXSYMLINKS	8 |