日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Linux 核心--16.Linux數(shù)據(jù)結(jié)構(gòu)( 三 )


struct inode * f_inode;
struct file_operations * f_op;
unsigned long f_version;
void *private_data;/* needed for tty driver, and maybe others */
};

files_struct
描敘被某進程打開的所有文件 。

struct files_struct {
int count;
fd_set close_on_exec;
fd_set open_fds;
struct file * fd[NR_OPEN];
};

fs_struct

struct fs_struct {
int count;
unsigned short umask;
struct inode * root, * pwd;
};

gendisk
包含關(guān)于某個硬盤的信息 。用于磁盤初始化與分區(qū)檢查時 。

struct hd_struct {
long start_sect;
long nr_sects;
};

struct gendisk {
int major; /* major number of driver */
const char *major_name;/* name of major driver */
int minor_shift; /* number of times minor is shifted to
get real minor */
int max_p; /* maximum partitions per device */
int max_nr;/* maximum number of real devices */

void (*init)(struct gendisk *);
 /* Initialization called before we
do our thing */
struct hd_struct *part;/* partition table */
int *sizes;/* device size in blocks, copied to
blk_size[] */
int nr_real; /* number of real devices */

void *real_devices;/* internal use */
struct gendisk *next;
};

inode
此VFS inode結(jié)構(gòu)描敘磁盤上一個文件或目錄的信息 。

struct inode {
kdev_t i_dev;
unsigned longi_ino;
umode_ti_mode;
nlink_ti_nlink;
uid_ti_uid;
gid_ti_gid;
kdev_t i_rdev;
off_ti_size;
time_t i_atime;
time_t i_mtime;
time_t i_ctime;
unsigned longi_blksize;
unsigned longi_blocks;
unsigned longi_version;
unsigned longi_nrpages;
struct semaphore i_sem;
struct inode_operations*i_op;
struct super_block *i_sb;
struct wait_queue*i_wait;
struct file_lock *i_flock;
struct vm_area_struct*i_mmap;
struct page*i_pages;
struct dquot *i_dquot[MAXQUOTAS];
struct inode *i_next, *i_prev;
struct inode *i_hash_next, *i_hash_prev;
struct inode *i_bound_to, *i_bound_by;
struct inode *i_mount;
unsigned short i_count;
unsigned short i_flags;
unsigned chari_lock;
unsigned chari_dirt;
unsigned chari_pipe;
unsigned chari_sock;
unsigned chari_seek;
unsigned chari_update;
unsigned short i_writecount;
union {
struct pipe_inode_info pipe_i;
struct minix_inode_infominix_i;
struct ext_inode_infoext_i;
struct ext2_inode_info ext2_i;
struct hpfs_inode_info hpfs_i;
struct msdos_inode_infomsdos_i;
struct umsdos_inode_info umsdos_i;
struct iso_inode_infoisofs_i;
struct nfs_inode_infonfs_i;
struct xiafs_inode_infoxiafs_i;
struct sysv_inode_info sysv_i;
struct affs_inode_info affs_i;
struct ufs_inode_infoufs_i;
struct socketsocket_i;
void *generic_ip;
} u;
};

ipc_perm
此結(jié)構(gòu)描敘對一個系統(tǒng)V IPC對象的存取權(quán)限 。

struct ipc_perm
{
key_tkey;
ushort uid; /* owner euid and egid */
ushort gid;
ushort cuid;/* creator euid and egid */
ushort cgid;
ushort mode;/* access modes see mode flags below */
ushort seq; /* sequence number */
};

irqaction
用來描敘系統(tǒng)的中斷處理過程 。

struct irqaction {
void (*handler)(int, void *, struct pt_regs *);
unsigned long flags;
unsigned long mask;
const char *name;
void *dev_id;
struct irqaction *next;
};

linux_binfmt
用來表示可被Linux理解的二進制文件格式 。

struct linux_binfmt {

推薦閱讀