亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fs.h

?? linux完全注釋的源代碼。內核版本為0.11的linux kernel。
?? H
字號:
/** This file has definitions for some important file table* structures etc.*//** 本文件含有某些重要文件表結構的定義等。*/#ifndef _FS_H#define _FS_H#include <sys/types.h>		// 類型頭文件。定義了基本的系統數據類型。/* devices are as follows: (same as minix, so we can use the minix* file system. These are major numbers.)** 0 - unused (nodev)* 1 - /dev/mem* 2 - /dev/fd* 3 - /dev/hd* 4 - /dev/ttyx* 5 - /dev/tty* 6 - /dev/lp* 7 - unnamed pipes*//** 系統所含的設備如下:(與minix 系統的一樣,所以我們可以使用minix 的* 文件系統。以下這些是主設備號。)** 0 - 沒有用到(nodev)* 1 - /dev/mem 內存設備。* 2 - /dev/fd 軟盤設備。* 3 - /dev/hd 硬盤設備。* 4 - /dev/ttyx tty 串行終端設備。* 5 - /dev/tty tty 終端設備。* 6 - /dev/lp 打印設備。* 7 - unnamed pipes 沒有命名的管道。*/#define IS_SEEKABLE(x) ((x)>=1 && (x)<=3)	// 是否是可以尋找定位的設備。#define READ 0#define WRITE 1#define READA 2			/* read-ahead - don't pause */#define WRITEA 3		/* "write-ahead" - silly, but somewhat useful */void buffer_init (long buffer_end);#define MAJOR(a) (((unsigned)(a))>>8)	// 取高字節(主設備號)。#define MINOR(a) ((a)&0xff)	// 取低字節(次設備號)。#define NAME_LEN 14		// 名字長度值。#define ROOT_INO 1		// 根i 節點。#define I_MAP_SLOTS 8		// i 節點位圖槽數。#define Z_MAP_SLOTS 8		// 邏輯塊(區段塊)位圖槽數。#define SUPER_MAGIC 0x137F	// 文件系統魔數。#define NR_OPEN 20		// 打開文件數。#define NR_INODE 32#define NR_FILE 64#define NR_SUPER 8#define NR_HASH 307#define NR_BUFFERS nr_buffers#define BLOCK_SIZE 1024		// 數據塊長度。#define BLOCK_SIZE_BITS 10	// 數據塊長度所占比特位數。#ifndef NULL#define NULL 0#endif// 每個邏輯塊可存放的i 節點數。#define INODES_PER_BLOCK ((BLOCK_SIZE)/(sizeof (struct d_inode)))// 每個邏輯塊可存放的目錄項數。#define DIR_ENTRIES_PER_BLOCK ((BLOCK_SIZE)/(sizeof (struct dir_entry)))// 管道頭、管道尾、管道大小、管道空?、管道滿?、管道頭指針遞增。#define PIPE_HEAD(inode) ((inode).i_zone[0])#define PIPE_TAIL(inode) ((inode).i_zone[1])#define PIPE_SIZE(inode) ((PIPE_HEAD(inode)-PIPE_TAIL(inode))&(PAGE_SIZE-1))#define PIPE_EMPTY(inode) (PIPE_HEAD(inode)==PIPE_TAIL(inode))#define PIPE_FULL(inode) (PIPE_SIZE(inode)==(PAGE_SIZE-1))//#define INC_PIPE(head) \//__asm__( "incl %0\n\tandl $4095,%0":: "m" (head))
#define INC_PIPE(head) _INC_PIPE(&(head))extern _inline void _INC_PIPE(unsigned long *head) {
	_asm mov ebx,head
	_asm inc dword ptr [ebx]
	_asm and dword ptr [ebx],4095
}
typedef char buffer_block[BLOCK_SIZE];	// 塊緩沖區。// 緩沖區頭數據結構。(極為重要!!!)// 在程序中常用bh 來表示buffer_head 類型的縮寫。struct buffer_head{  char *b_data;			/* pointer to data block (1024 bytes) *///指針。  unsigned long b_blocknr;	/* block number */// 塊號。  unsigned short b_dev;		/* device (0 = free) */// 數據源的設備號。  unsigned char b_uptodate;	// 更新標志:表示數據是否已更新。  unsigned char b_dirt;		/* 0-clean,1-dirty *///修改標志:0 未修改,1 已修改.  unsigned char b_count;	/* users using this block */// 使用的用戶數。  unsigned char b_lock;		/* 0 - ok, 1 -locked */// 緩沖區是否被鎖定。  struct task_struct *b_wait;	// 指向等待該緩沖區解鎖的任務。  struct buffer_head *b_prev;	// hash 隊列上前一塊(這四個指針用于緩沖區的管理)。  struct buffer_head *b_next;	// hash 隊列上下一塊。  struct buffer_head *b_prev_free;	// 空閑表上前一塊。  struct buffer_head *b_next_free;	// 空閑表上下一塊。};// 磁盤上的索引節點(i 節點)數據結構。struct d_inode{  unsigned short i_mode;	// 文件類型和屬性(rwx 位)。  unsigned short i_uid;		// 用戶id(文件擁有者標識符)。  unsigned long i_size;		// 文件大小(字節數)。  unsigned long i_time;		// 修改時間(自1970.1.1:0 算起,秒)。  unsigned char i_gid;		// 組id(文件擁有者所在的組)。  unsigned char i_nlinks;	// 鏈接數(多少個文件目錄項指向該i 節點)。  unsigned short i_zone[9];	// 直接(0-6)、間接(7)或雙重間接(8)邏輯塊號。// zone 是區的意思,可譯成區段,或邏輯塊。};// 這是在內存中的i 節點結構。前7 項與d_inode 完全一樣。struct m_inode{  unsigned short i_mode;	// 文件類型和屬性(rwx 位)。  unsigned short i_uid;		// 用戶id(文件擁有者標識符)。  unsigned long i_size;		// 文件大小(字節數)。  unsigned long i_mtime;	// 修改時間(自1970.1.1:0 算起,秒)。  unsigned char i_gid;		// 組id(文件擁有者所在的組)。  unsigned char i_nlinks;	// 文件目錄項鏈接數。  unsigned short i_zone[9];	// 直接(0-6)、間接(7)或雙重間接(8)邏輯塊號。/* these are in memory also */  struct task_struct *i_wait;	// 等待該i 節點的進程。  unsigned long i_atime;	// 最后訪問時間。  unsigned long i_ctime;	// i 節點自身修改時間。  unsigned short i_dev;		// i 節點所在的設備號。  unsigned short i_num;		// i 節點號。  unsigned short i_count;	// i 節點被使用的次數,0 表示該i 節點空閑。  unsigned char i_lock;		// 鎖定標志。  unsigned char i_dirt;		// 已修改(臟)標志。  unsigned char i_pipe;		// 管道標志。  unsigned char i_mount;	// 安裝標志。  unsigned char i_seek;		// 搜尋標志(lseek 時)。  unsigned char i_update;	// 更新標志。};// 文件結構(用于在文件句柄與i 節點之間建立關系)struct file{  unsigned short f_mode;	// 文件操作模式(RW 位)  unsigned short f_flags;	// 文件打開和控制的標志。  unsigned short f_count;	// 對應文件句柄(文件描述符)數。  struct m_inode *f_inode;	// 指向對應i 節點。  off_t f_pos;			// 文件位置(讀寫偏移值)。};// 內存中磁盤超級塊結構。struct super_block{  unsigned short s_ninodes;	// 節點數。  unsigned short s_nzones;	// 邏輯塊數。  unsigned short s_imap_blocks;	// i 節點位圖所占用的數據塊數。  unsigned short s_zmap_blocks;	// 邏輯塊位圖所占用的數據塊數。  unsigned short s_firstdatazone;	// 第一個數據邏輯塊號。  unsigned short s_log_zone_size;	// log(數據塊數/邏輯塊)。(以2 為底)。  unsigned long s_max_size;	// 文件最大長度。  unsigned short s_magic;	// 文件系統魔數。/* These are only in memory */  struct buffer_head *s_imap[8];	// i 節點位圖緩沖塊指針數組(占用8 塊,可表示64M)。  struct buffer_head *s_zmap[8];	// 邏輯塊位圖緩沖塊指針數組(占用8 塊)。  unsigned short s_dev;		// 超級塊所在的設備號。  struct m_inode *s_isup;	// 被安裝的文件系統根目錄的i 節點。(isup-super i)  struct m_inode *s_imount;	// 被安裝到的i 節點。  unsigned long s_time;		// 修改時間。  struct task_struct *s_wait;	// 等待該超級塊的進程。  unsigned char s_lock;		// 被鎖定標志。  unsigned char s_rd_only;	// 只讀標志。  unsigned char s_dirt;		// 已修改(臟)標志。};// 磁盤上超級塊結構。上面125-132 行完全一樣。struct d_super_block{  unsigned short s_ninodes;	// 節點數。  unsigned short s_nzones;	// 邏輯塊數。  unsigned short s_imap_blocks;	// i 節點位圖所占用的數據塊數。  unsigned short s_zmap_blocks;	// 邏輯塊位圖所占用的數據塊數。  unsigned short s_firstdatazone;	// 第一個數據邏輯塊。  unsigned short s_log_zone_size;	// log(數據塊數/邏輯塊)。(以2 為底)。  unsigned long s_max_size;	// 文件最大長度。  unsigned short s_magic;	// 文件系統魔數。};// 文件目錄項結構。struct dir_entry{  unsigned short inode;		// i 節點。  char name[NAME_LEN];		// 文件名。};extern struct m_inode inode_table[NR_INODE];	// 定義i 節點表數組(32 項)。extern struct file file_table[NR_FILE];	// 文件表數組(64 項)。extern struct super_block super_block[NR_SUPER];	// 超級塊數組(8 項)。extern struct buffer_head *start_buffer;	// 緩沖區起始內存位置。extern int nr_buffers;		// 緩沖塊數。//// 磁盤操作函數原型。// 檢測驅動器中軟盤是否改變。extern void check_disk_change (int dev);// 檢測指定軟驅中軟盤更換情況。如果軟盤更換了則返回1,否則返回0。extern int floppy_change (unsigned int nr);// 設置啟動指定驅動器所需等待的時間(設置等待定時器)。extern int ticks_to_floppy_on (unsigned int dev);// 啟動指定驅動器。extern void floppy_on (unsigned int dev);// 關閉指定的軟盤驅動器。extern void floppy_off (unsigned int dev);//// 以下是文件系統操作管理用的函數原型。// 將i 節點指定的文件截為0。extern void truncate (struct m_inode *inode);// 刷新i 節點信息。extern void sync_inodes (void);// 等待指定的i 節點。extern void wait_on (struct m_inode *inode);// 邏輯塊(區段,磁盤塊)位圖操作。取數據塊block 在設備上對應的邏輯塊號。extern int bmap (struct m_inode *inode, int block);// 創建數據塊block 在設備上對應的邏輯塊,并返回在設備上的邏輯塊號。extern int create_block (struct m_inode *inode, int block);// 獲取指定路徑名的i 節點號。extern struct m_inode *namei (const char *pathname);// 根據路徑名為打開文件操作作準備。extern int open_namei (const char *pathname, int flag, int mode,		       struct m_inode **res_inode);// 釋放一個i 節點(回寫入設備)。extern void iput (struct m_inode *inode);// 從設備讀取指定節點號的一個i 節點。extern struct m_inode *iget (int dev, int nr);// 從i 節點表(inode_table)中獲取一個空閑i 節點項。extern struct m_inode *get_empty_inode (void);// 獲取(申請一)管道節點。返回為i 節點指針(如果是NULL 則失敗)。extern struct m_inode *get_pipe_inode (void);// 在哈希表中查找指定的數據塊。返回找到塊的緩沖頭指針。extern struct buffer_head *get_hash_table (int dev, int block);// 從設備讀取指定塊(首先會在hash 表中查找)。extern struct buffer_head *getblk (int dev, int block);// 讀/寫數據塊。extern void ll_rw_block (int rw, struct buffer_head *bh);// 釋放指定緩沖塊。extern void brelse (struct buffer_head *buf);// 讀取指定的數據塊。extern struct buffer_head *bread (int dev, int block);// 讀4 塊緩沖區到指定地址的內存中。extern void bread_page (unsigned long addr, int dev, int b[4]);// 讀取頭一個指定的數據塊,并標記后續將要讀的塊。extern struct buffer_head *breada (int dev, int block, ...);// 向設備dev 申請一個磁盤塊(區段,邏輯塊)。返回邏輯塊號extern int new_block (int dev);// 釋放設備數據區中的邏輯塊(區段,磁盤塊)block。復位指定邏輯塊block 的邏輯塊位圖比特位。extern void free_block (int dev, int block);// 為設備dev 建立一個新i 節點,返回i 節點號。extern struct m_inode *new_inode (int dev);// 釋放一個i 節點(刪除文件時)。extern void free_inode (struct m_inode *inode);// 刷新指定設備緩沖區。extern int sync_dev (int dev);// 讀取指定設備的超級塊。extern struct super_block *get_super (int dev);extern int ROOT_DEV;// 安裝根文件系統。extern void mount_root (void);#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产激情一区二区三区蜜月 | 久久影院视频免费| 欧美性色黄大片| 成人动漫在线一区| 国产成人福利片| 国产福利一区在线观看| 国产精品性做久久久久久| 激情都市一区二区| 国产成人在线视频网址| 国产成人综合在线播放| 国产资源在线一区| 国产二区国产一区在线观看| 国产精品一区二区在线看| 国产成人亚洲综合a∨猫咪| 成人毛片老司机大片| 99久久综合99久久综合网站| 99re这里只有精品6| 一本到一区二区三区| 欧美剧情片在线观看| 欧美欧美午夜aⅴ在线观看| 51精品秘密在线观看| 精品少妇一区二区三区在线视频| 欧美成人精品3d动漫h| 久久久91精品国产一区二区精品 | 99精品1区2区| 色女孩综合影院| 欧美一级生活片| 欧美激情在线免费观看| 亚洲日本电影在线| 日本女优在线视频一区二区| 极品少妇xxxx精品少妇偷拍| 国产麻豆日韩欧美久久| 91国偷自产一区二区开放时间| 欧美日韩一本到| 国产日韩欧美不卡在线| 亚洲五码中文字幕| 国产精品亚洲а∨天堂免在线| 在线观看91视频| 国产日韩欧美激情| 午夜精品福利久久久| 国产高清精品网站| 欧美年轻男男videosbes| 久久久久久久久久久99999| 亚洲精品日韩一| 精品一区二区三区在线观看| 91亚洲资源网| 久久女同互慰一区二区三区| 亚洲综合久久久久| 丰满岳乱妇一区二区三区| 在线播放欧美女士性生活| 国产精品久久久久久久久免费丝袜| 亚洲国产日韩av| 成人性生交大合| 日韩久久久久久| 亚洲午夜久久久久久久久电影网| 国产精品亚洲人在线观看| 欧美老肥妇做.爰bbww视频| 成人免费在线视频| 国产精品综合网| 欧美一区二区三区视频| 亚洲最大成人综合| www.欧美日韩| 中文字幕精品一区二区精品绿巨人 | 欧美私人免费视频| 中文字幕日韩一区| 高清不卡一二三区| 精品国产91久久久久久久妲己 | 免费在线观看精品| 欧美网站大全在线观看| 亚洲精品水蜜桃| 99re这里只有精品视频首页| 亚洲国产精品av| 国产呦精品一区二区三区网站| 7777精品久久久大香线蕉| 亚洲一区二区在线视频| 在线亚洲+欧美+日本专区| 国产精品久久久久久久裸模| 成人免费看视频| 国产精品青草久久| 成人h精品动漫一区二区三区| 国产欧美日韩麻豆91| 国产suv精品一区二区883| 久久久精品天堂| 国产成人在线看| 欧美经典三级视频一区二区三区| 国产精品小仙女| 国产精品国产三级国产普通话蜜臀 | 欧美在线免费观看视频| 亚洲一线二线三线视频| 欧美日免费三级在线| 亚洲国产精品久久一线不卡| 欧美丰满少妇xxxxx高潮对白| 无吗不卡中文字幕| 精品国产伦一区二区三区观看体验 | 日本怡春院一区二区| 欧美一级黄色大片| 国产呦萝稀缺另类资源| 国产精品不卡在线观看| 在线一区二区观看| 日本不卡一区二区三区高清视频| 日韩一级片在线播放| 高清不卡在线观看av| 亚洲精品视频在线| 欧美人成免费网站| 国产91精品在线观看| 一区二区成人在线观看| 欧美一级久久久久久久大片| 成人精品高清在线| 天堂久久久久va久久久久| 精品处破学生在线二十三| 97精品电影院| 久久国产精品第一页| 国产精品每日更新| 日韩欧美视频一区| 成人av资源站| 日本不卡免费在线视频| 国产精品伦理在线| 欧美一三区三区四区免费在线看| 福利91精品一区二区三区| 亚洲国产精品综合小说图片区| 亚洲精品在线三区| 在线一区二区三区四区五区 | 91麻豆精品91久久久久同性| 国产精品69毛片高清亚洲| 一个色在线综合| 国产精品久久久久影院老司| 日韩一级大片在线观看| 91啪亚洲精品| 国产成人免费视频一区| 视频一区视频二区中文字幕| 国产精品免费视频观看| 欧美mv和日韩mv国产网站| 精品视频资源站| 一本一道久久a久久精品综合蜜臀| 美女尤物国产一区| 一区二区三区不卡在线观看 | 一区二区三区欧美在线观看| 国产丝袜在线精品| 精品剧情在线观看| 日韩欧美成人一区二区| 在线综合视频播放| 欧美色图第一页| 一本大道久久a久久精二百| 成人午夜av影视| 国产成人综合精品三级| 国产综合一区二区| 加勒比av一区二区| 精品中文字幕一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲成人免费观看| 亚洲成av人综合在线观看| 亚洲一区二区三区美女| 一区二区三区四区高清精品免费观看| 最新热久久免费视频| 国产精品久久久爽爽爽麻豆色哟哟 | 欧美大黄免费观看| 欧美一区二区视频免费观看| 6080日韩午夜伦伦午夜伦| 欧美日韩dvd在线观看| 欧美日韩免费观看一区二区三区| 在线亚洲人成电影网站色www| 在线观看网站黄不卡| 欧美日韩精品综合在线| 在线电影一区二区三区| 日韩一区二区三区视频在线观看| 欧美福利电影网| 欧美一区2区视频在线观看| 日韩精品专区在线影院观看| 久久久久久免费| 成人免费小视频| 一区二区三区欧美在线观看| 午夜精品久久久久久久| 久久精品国产亚洲5555| 国产精品一区二区黑丝| av一本久道久久综合久久鬼色| 一本色道亚洲精品aⅴ| 欧美日韩激情在线| 久久亚洲一区二区三区明星换脸 | 午夜精品在线看| 精品一区二区久久| www.日韩av| 宅男噜噜噜66一区二区66| 久久免费午夜影院| 亚洲一区免费视频| 激情久久久久久久久久久久久久久久| 成人av影视在线观看| 欧美日韩国产综合一区二区三区| 欧美大片日本大片免费观看| 亚洲视频一区二区在线| 美女视频黄 久久| 91日韩一区二区三区| 日韩午夜激情av| 国产精品无人区| 免费观看30秒视频久久| 99久久精品费精品国产一区二区| 欧美疯狂做受xxxx富婆| 成人免费小视频| 国产精品一区2区| 欧美精品在线观看一区二区| 日韩一区有码在线|