diff options
Diffstat (limited to 'libc/kernel/common/linux/efs_fs_i.h')
-rw-r--r-- | libc/kernel/common/linux/efs_fs_i.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/libc/kernel/common/linux/efs_fs_i.h b/libc/kernel/common/linux/efs_fs_i.h new file mode 100644 index 0000000..6d88d28 --- /dev/null +++ b/libc/kernel/common/linux/efs_fs_i.h @@ -0,0 +1,63 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + **************************************************************************** + ****************************************************************************/ +#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 + +typedef union extent_u { + unsigned char raw[8]; + struct extent_s { + unsigned int ex_magic:8; + unsigned int ex_bn:24; + unsigned int ex_length:8; + unsigned int ex_offset:24; + } cooked; +} efs_extent; + +typedef struct edevs { + __be16 odev; + __be32 ndev; +} efs_devs; + +struct efs_dinode { + __be16 di_mode; + __be16 di_nlink; + __be16 di_uid; + __be16 di_gid; + __be32 di_size; + __be32 di_atime; + __be32 di_mtime; + __be32 di_ctime; + __be32 di_gen; + __be16 di_numextents; + u_char di_version; + u_char di_spare; + union di_addr { + efs_extent di_extents[EFS_DIRECTEXTENTS]; + efs_devs di_dev; + } di_u; +}; + +struct efs_inode_info { + int numextents; + int lastextent; + + efs_extent extents[EFS_DIRECTEXTENTS]; + struct inode vfs_inode; +}; + +#endif + |