From 9fd51e9b0ad33a89a83fdbbb66bd20d85f7893fb Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Fri, 4 Feb 2000 03:21:18 +0000 Subject: Import of Linux 2.2.12 subset (ipv4 stack and related) --- pfinet/linux-src/include/linux/efs_fs_i.h | 68 +++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 pfinet/linux-src/include/linux/efs_fs_i.h (limited to 'pfinet/linux-src/include/linux/efs_fs_i.h') diff --git a/pfinet/linux-src/include/linux/efs_fs_i.h b/pfinet/linux-src/include/linux/efs_fs_i.h new file mode 100644 index 00000000..453d706c --- /dev/null +++ b/pfinet/linux-src/include/linux/efs_fs_i.h @@ -0,0 +1,68 @@ +/* + * efs_fs_i.h + * + * Copyright (c) 1999 Al Smith + * + * Portions derived from IRIX header files (c) 1988 Silicon Graphics + */ + +#ifndef __EFS_FS_I_H__ +#define __EFS_FS_I_H__ + +typedef int32_t efs_block_t; +typedef uint32_t efs_ino_t; + +#define EFS_DIRECTEXTENTS 12 + +/* + * layout of an extent, in memory and on disk. 8 bytes exactly. + */ +typedef union extent_u { + unsigned char raw[8]; + struct extent_s { + unsigned int ex_magic:8; /* magic # (zero) */ + unsigned int ex_bn:24; /* basic block */ + unsigned int ex_length:8; /* numblocks in this extent */ + unsigned int ex_offset:24; /* logical offset into file */ + } cooked; +} efs_extent; + +typedef struct edevs { + short odev; + short dev_filler; /* force ndev to start */ + unsigned int ndev; /* on a 32-bit boundary */ +} efs_devs; + +/* + * extent based filesystem inode as it appears on disk. The efs inode + * is exactly 128 bytes long. + */ +struct efs_dinode { + u_short di_mode; /* mode and type of file */ + short di_nlink; /* number of links to file */ + u_short di_uid; /* owner's user id */ + u_short di_gid; /* owner's group id */ + int32_t di_size; /* number of bytes in file */ + int32_t di_atime; /* time last accessed */ + int32_t di_mtime; /* time last modified */ + int32_t di_ctime; /* time created */ + uint32_t di_gen; /* generation number */ + short di_numextents; /* # of extents */ + u_char di_version; /* version of inode */ + u_char di_spare; /* spare - used by AFS */ + union di_addr { + efs_extent di_extents[EFS_DIRECTEXTENTS]; + efs_devs di_dev; /* device for IFCHR/IFBLK */ + } di_u; +}; + +/* efs inode storage in memory */ +struct efs_inode_info { + int numextents; + int lastextent; + + efs_extent extents[EFS_DIRECTEXTENTS]; +}; + +#endif /* __EFS_FS_I_H__ */ + -- cgit v1.2.3