diff options
author | Roland McGrath <roland@gnu.org> | 2000-02-04 03:21:18 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2000-02-04 03:21:18 +0000 |
commit | 9fd51e9b0ad33a89a83fdbbb66bd20d85f7893fb (patch) | |
tree | 8845b79f170028cb4380045c50277bbf075b5b7d /pfinet/linux-src/include/linux/affs_fs_i.h | |
download | hurd-9fd51e9b0ad33a89a83fdbbb66bd20d85f7893fb.tar.gz hurd-9fd51e9b0ad33a89a83fdbbb66bd20d85f7893fb.tar.bz2 hurd-9fd51e9b0ad33a89a83fdbbb66bd20d85f7893fb.zip |
Import of Linux 2.2.12 subset (ipv4 stack and related)
Diffstat (limited to 'pfinet/linux-src/include/linux/affs_fs_i.h')
-rw-r--r-- | pfinet/linux-src/include/linux/affs_fs_i.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/pfinet/linux-src/include/linux/affs_fs_i.h b/pfinet/linux-src/include/linux/affs_fs_i.h new file mode 100644 index 00000000..beeabb0d --- /dev/null +++ b/pfinet/linux-src/include/linux/affs_fs_i.h @@ -0,0 +1,47 @@ +#ifndef _AFFS_FS_I +#define _AFFS_FS_I + +#include <linux/a.out.h> +#include <linux/time.h> + +#define AFFS_MAX_PREALLOC 16 /* MUST be a power of 2 */ +#define AFFS_KCSIZE 73 /* Allows for 1 extension block at 512 byte-blocks */ + +struct key_cache { + struct timeval kc_lru_time; /* Last time this cache was used */ + s32 kc_first; /* First cached key */ + s32 kc_last; /* Last cached key */ + s32 kc_this_key; /* Key of extension block this data block keys are from */ + int kc_this_seq; /* Sequence number of this extension block */ + s32 kc_next_key; /* Key of next extension block */ + s32 kc_keys[AFFS_KCSIZE]; /* Key cache */ +}; + +#define EC_SIZE (PAGE_SIZE - 4 * sizeof(struct key_cache) - 4) / 4 + +struct ext_cache { + struct key_cache kc[4]; /* The 4 key caches */ + s32 ec[EC_SIZE]; /* Keys of assorted extension blocks */ + int max_ext; /* Index of last known extension block */ +}; + +/* + * affs fs inode data in memory + */ +struct affs_inode_info { + u32 i_protect; /* unused attribute bits */ + s32 i_parent; /* parent ino */ + s32 i_original; /* if != 0, this is the key of the original */ + s32 i_data[AFFS_MAX_PREALLOC]; /* preallocated blocks */ + struct ext_cache *i_ec; /* Cache gets allocated dynamically */ + int i_cache_users; /* Cache cannot be freed while > 0 */ + int i_lastblock; /* last allocated block */ + short i_pa_cnt; /* number of preallocated blocks */ + short i_pa_next; /* Index of next block in i_data[] */ + short i_pa_last; /* Index of next free slot in i_data[] */ + short i_zone; /* write zone */ + unsigned char i_hlink; /* This is a fake */ + unsigned char i_pad; +}; + +#endif |