⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 affs_fs_i.h

📁 ARM 嵌入式 系统 设计与实例开发 实验教材 二源码
💻 H
字号:
#ifndef _AFFS_FS_I#define _AFFS_FS_I#include <linux/a.out.h>// move this to linux/coda.h!!!#include <linux/time.h>#define AFFS_CACHE_SIZE		PAGE_SIZE//#define AFFS_CACHE_SIZE		(4*4)#define AFFS_MAX_PREALLOC	32#define AFFS_LC_SIZE		(AFFS_CACHE_SIZE/sizeof(u32)/2)#define AFFS_AC_SIZE		(AFFS_CACHE_SIZE/sizeof(struct affs_ext_key)/2)#define AFFS_AC_MASK		(AFFS_AC_SIZE-1)struct affs_ext_key {	u32	ext;				/* idx of the extended block */	u32	key;				/* block number */};/* * affs fs inode data in memory */struct affs_inode_info {	u32	 i_opencnt;	struct semaphore i_link_lock;		/* Protects internal inode access. */	struct semaphore i_ext_lock;		/* Protects internal inode access. */#define i_hash_lock i_ext_lock	u32	 i_blkcnt;			/* block count */	u32	 i_extcnt;			/* extended block count */	u32	*i_lc;				/* linear cache of extended blocks */	u32	 i_lc_size;	u32	 i_lc_shift;	u32	 i_lc_mask;	struct affs_ext_key *i_ac;		/* associative cache of extended blocks */	u32	 i_ext_last;			/* last accessed extended block */	struct buffer_head *i_ext_bh;		/* bh of last extended block */	unsigned long mmu_private;	u32	 i_protect;			/* unused attribute bits */	u32	 i_lastalloc;			/* last allocated block */	int	 i_pa_cnt;			/* number of preallocated blocks */#if 0	s32	 i_original;			/* if != 0, this is the key of the original */	u32	 i_data[AFFS_MAX_PREALLOC];	/* preallocated blocks */	int	 i_cache_users;			/* Cache cannot be freed while > 0 */	unsigned char i_hlink;			/* This is a fake */	unsigned char i_pad;	s32	 i_parent;			/* parent ino */#endif};/* short cut to get to the affs specific inode data */#define AFFS_INODE	(&inode->u.affs_i)#define AFFS_DIR	(&dir->u.affs_i)#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -