~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/linux/efs_fs_i.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * efs_fs_i.h
  3  *
  4  * Copyright (c) 1999 Al Smith
  5  *
  6  * Portions derived from IRIX header files (c) 1988 Silicon Graphics
  7  */
  8 
  9 #ifndef __EFS_FS_I_H__
 10 #define __EFS_FS_I_H__
 11 
 12 typedef int32_t         efs_block_t;
 13 typedef uint32_t        efs_ino_t;
 14 
 15 #define EFS_DIRECTEXTENTS       12
 16 
 17 /*
 18  * layout of an extent, in memory and on disk. 8 bytes exactly.
 19  */
 20 typedef union extent_u {
 21         unsigned char raw[8];
 22         struct extent_s {
 23                 unsigned int    ex_magic:8;     /* magic # (zero) */
 24                 unsigned int    ex_bn:24;       /* basic block */
 25                 unsigned int    ex_length:8;    /* numblocks in this extent */
 26                 unsigned int    ex_offset:24;   /* logical offset into file */
 27         } cooked;
 28 } efs_extent;
 29 
 30 typedef struct edevs {
 31         short           odev;
 32         unsigned int    ndev;
 33 } efs_devs;
 34 
 35 /*
 36  * extent based filesystem inode as it appears on disk.  The efs inode
 37  * is exactly 128 bytes long.
 38  */
 39 struct  efs_dinode {
 40         u_short         di_mode;        /* mode and type of file */
 41         short           di_nlink;       /* number of links to file */
 42         u_short         di_uid;         /* owner's user id */
 43         u_short         di_gid;         /* owner's group id */
 44         int32_t         di_size;        /* number of bytes in file */
 45         int32_t         di_atime;       /* time last accessed */
 46         int32_t         di_mtime;       /* time last modified */
 47         int32_t         di_ctime;       /* time created */
 48         uint32_t        di_gen;         /* generation number */
 49         short           di_numextents;  /* # of extents */
 50         u_char          di_version;     /* version of inode */
 51         u_char          di_spare;       /* spare - used by AFS */
 52         union di_addr {
 53                 efs_extent      di_extents[EFS_DIRECTEXTENTS];
 54                 efs_devs        di_dev; /* device for IFCHR/IFBLK */
 55         } di_u;
 56 };
 57 
 58 /* efs inode storage in memory */
 59 struct efs_inode_info {
 60         int             numextents;
 61         int             lastextent;
 62 
 63         efs_extent      extents[EFS_DIRECTEXTENTS];
 64 };
 65 
 66 #endif  /* __EFS_FS_I_H__ */
 67 
 68 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.