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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fs.h

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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美视频一区在线观看| 久久综合久久99| 欧美美女网站色| 在线综合视频播放| 久久久久久久久久久久电影| 欧美国产日本视频| 亚洲一区二区精品视频| 精品一区二区在线视频| 国产呦萝稀缺另类资源| 99久久免费视频.com| 在线成人小视频| 国产亚洲精品精华液| 亚洲主播在线观看| 国产精品1区2区| 欧美日韩情趣电影| 国产喂奶挤奶一区二区三区| 一卡二卡三卡日韩欧美| 国产中文字幕精品| 91国产免费观看| 久久精品欧美一区二区三区不卡| 自拍视频在线观看一区二区| 青青草伊人久久| 成人不卡免费av| 日韩三级视频在线观看| 自拍偷拍国产亚洲| 美女视频第一区二区三区免费观看网站| 久久99精品国产.久久久久| 国模娜娜一区二区三区| 欧美日韩久久一区| 国产精品美女久久久久久 | 国产亚洲视频系列| 日韩av午夜在线观看| www.亚洲激情.com| 精品成人免费观看| 日韩av网站在线观看| 在线观看av一区二区| 精品国产一区二区三区忘忧草 | 久久国产人妖系列| 欧美三级三级三级| 亚洲丝袜美腿综合| 国产91对白在线观看九色| 日韩一级精品视频在线观看| 伊人色综合久久天天人手人婷| 国产成人日日夜夜| www国产精品av| 美女高潮久久久| 99久久精品国产网站| 久久久精品免费网站| 麻豆一区二区三| 在线成人高清不卡| 婷婷国产在线综合| 欧美日本乱大交xxxxx| 亚洲国产日韩在线一区模特| 国产99久久久精品| 欧美激情中文字幕一区二区| 国产精品自拍一区| 久久久综合激的五月天| 精品亚洲成a人| 久久尤物电影视频在线观看| 久久97超碰国产精品超碰| 91精品婷婷国产综合久久| 日韩综合一区二区| 欧美一级国产精品| 九色综合国产一区二区三区| 日韩一区二区在线免费观看| 日韩精品视频网站| 欧美精品一区二区三区在线播放| 激情五月婷婷综合| 国产日产欧美一区| 91色porny在线视频| 国产精品久久久久久久浪潮网站| 成人妖精视频yjsp地址| 日韩毛片一二三区| 日本丶国产丶欧美色综合| 亚洲第一在线综合网站| 日韩一区二区在线观看视频播放| 亚洲精品福利视频网站| 在线看国产日韩| 日本三级亚洲精品| 国产无一区二区| 99re视频这里只有精品| 香蕉成人啪国产精品视频综合网| 欧美电影在哪看比较好| 国产suv精品一区二区三区| 亚洲欧美日韩在线| 777亚洲妇女| 国产盗摄女厕一区二区三区| 亚洲视频你懂的| 91精品国产91久久久久久一区二区| 亚洲福利一区二区| 久久综合久久综合亚洲| 色婷婷国产精品久久包臀 | 久久精品夜夜夜夜久久| 91麻豆国产福利精品| 日韩高清在线不卡| 国产精品久久久久天堂| 欧美日韩国产经典色站一区二区三区| 精品一二线国产| 日韩毛片高清在线播放| 日韩午夜激情av| 91亚洲精品一区二区乱码| 黑人巨大精品欧美一区| 国产欧美日韩在线视频| 欧美日韩日日骚| 成人激情动漫在线观看| 麻豆免费看一区二区三区| 中文字幕视频一区二区三区久| 日韩一区二区免费电影| 91蜜桃视频在线| 国产一区二三区好的| 天天综合色天天| 国产精品久久久久久久岛一牛影视| 在线不卡欧美精品一区二区三区| jiyouzz国产精品久久| 美国欧美日韩国产在线播放| 亚洲精品视频免费看| 国产亚洲精品免费| 日韩精品在线一区二区| 91精品国模一区二区三区| 欧美高清性hdvideosex| 欧美精品丝袜中出| 欧美一区二区在线免费播放| 欧美老年两性高潮| 在线播放欧美女士性生活| 欧美老人xxxx18| 日韩美女天天操| 精品1区2区在线观看| 久久这里都是精品| 中文字幕精品综合| 亚洲美女视频在线观看| 亚洲乱码国产乱码精品精小说 | 欧美午夜精品久久久| 在线视频国产一区| 欧美日韩高清一区二区不卡 | av亚洲精华国产精华精华| 99国产欧美另类久久久精品| 色偷偷一区二区三区| 欧美日韩视频不卡| 精品国产乱码久久久久久影片| 久久综合狠狠综合| 国产精品久久一卡二卡| 一区二区三区四区视频精品免费| 亚洲成年人网站在线观看| 蜜臀精品一区二区三区在线观看| 激情亚洲综合在线| 91麻豆精品秘密| 日韩午夜精品电影| 欧美国产国产综合| 亚洲成人中文在线| 国产麻豆成人传媒免费观看| 成人久久视频在线观看| 欧洲视频一区二区| 精品福利视频一区二区三区| 国产精品久久久久三级| 天使萌一区二区三区免费观看| 韩国毛片一区二区三区| 一本色道久久综合亚洲91| 91精品啪在线观看国产60岁| 欧美国产一区视频在线观看| 亚洲成人第一页| 粉嫩av一区二区三区| 7777精品久久久大香线蕉 | 欧美电影免费观看高清完整版在线| 国产欧美日韩精品一区| 日韩精品三区四区| 北条麻妃国产九九精品视频| 欧美色网一区二区| 国产精品情趣视频| 日本sm残虐另类| 91视频在线观看| 久久精品人人做人人综合 | 亚洲不卡av一区二区三区| 国产一区二区在线免费观看| 欧美在线观看视频在线| 国产亚洲精久久久久久| 午夜视频久久久久久| www.亚洲精品| 国产日产亚洲精品系列| 日本色综合中文字幕| 欧美亚洲禁片免费| 亚洲欧美一区二区在线观看| 久久av中文字幕片| 555www色欧美视频| 亚洲综合色自拍一区| 97久久人人超碰| 国产欧美1区2区3区| 久久99国产精品尤物| 7878成人国产在线观看| 亚洲国产精品一区二区www| 99re热这里只有精品免费视频| 久久九九国产精品| 国产精品一级黄| 精品1区2区在线观看| 久久国产生活片100| 欧美一区日韩一区| 亚洲成在线观看| 欧美日韩一区不卡| 亚洲一卡二卡三卡四卡无卡久久 | 看电影不卡的网站| 91精品国产综合久久国产大片|