OpenAFS
OpenAFS distributed network file system
|
00001 /* 00002 * Copyright 2000, International Business Machines Corporation and others. 00003 * All Rights Reserved. 00004 * 00005 * This software has been released under the terms of the IBM Public 00006 * License. For details, see the LICENSE file in the top-level source 00007 * directory or online at http://www.openafs.org/dl/license10.html 00008 */ 00009 00010 /* 00011 * Inode information required for IRIX servers and salvager. 00012 */ 00013 #ifndef _OSI_INODE_H_ 00014 #define _OSI_INODE_H_ 00015 00016 #define BAD_IGET -1000 00017 00018 /* chown can't set the high bit - used for XFS based filesystem */ 00019 #define XFS_VICEMAGIC 0x74fa1cb6 00020 00021 /* These exist because HP requires more work to extract uid. */ 00022 #define DI_VICEP3(p) ( (p)->di_vicep3 ) 00023 #define I_VICE3(p) ( (p)->i_vicep3 ) 00024 00025 00026 /* 00027 * We use the 12 8-bit unused ex_magic fields! 00028 * Plus 2 values of di_version 00029 * di_version = 0 - current EFS 00030 * 1 - AFS INODESPECIAL 00031 * 2 - AFS inode 00032 * AFS inode: 00033 * magic[0-3] - VOLid 00034 * magic[4-6] - vnode number (24 bits) 00035 * magic[7-9] - disk uniqifier 00036 * magic[10-11]+di_spare - data version 00037 * 00038 * INODESPECIAL: 00039 * magic[0-3] - VOLid 00040 * magic[4-7] - parent 00041 * magic[8] - type 00042 */ 00043 #define SGI_UNIQMASK 0xffffff 00044 #define SGI_DATAMASK 0xffffff 00045 #define SGI_DISKMASK 0xffffff 00046 00047 /* we hang this struct off of the incore inode */ 00048 struct afsparms { 00049 afs_int32 vicep1; 00050 afs_int32 vicep2; 00051 afs_int32 vicep3; 00052 afs_int32 vicep4; 00053 }; 00054 00055 #define dmag(p,n) ((p)->di_u.di_extents[n].ex_magic) 00056 00057 #endif /* _OSI_INODE_H_ */