struct linux_binfmt * next;
long *use_count;
int (*load_binary)(struct linux_binprm *, structpt_regs * regs);
int (*load_shlib)(int fd);
int (*core_dump)(long signr, struct pt_regs * regs);
};
mem_map_t
用來保存每個物理頁面的信息 。
typedef struct page {
/* these must be first (free area handling) */
struct page*next;
struct page*prev;
struct inode *inode;
unsigned longoffset;
struct page*next_hash;
atomic_t count;
unsigned flags; /* atomic flags, some possibly
updated asynchronously */
unsigned dirty:16,
age:8;
struct wait_queue*wait;
struct page*prev_hash;
struct buffer_head *buffers;
unsigned longswap_unlock_entry;
unsigned longmap_nr;/* page->map_nr == page - mem_map */
} mem_map_t;
mm_struct
用來描敘某任務(wù)或進程的虛擬內(nèi)存 。
struct mm_struct {
int count;
pgd_t * pgd;
unsigned long context;
unsigned long start_code, end_code, start_data, end_data;
unsigned long start_brk, brk, start_stack, start_mmap;
unsigned long arg_start, arg_end, env_start, env_end;
unsigned long rss, total_vm, locked_vm;
unsigned long def_flags;
struct vm_area_struct * mmap;
struct vm_area_struct * mmap_avl;
struct semaphore mmap_sem;
};
pci_bus
表示系統(tǒng)中的一個PCI總線 。
struct pci_bus {
struct pci_bus*parent; /* parent bus this bridge is on */
struct pci_bus*children; /* chain of P2P bridges on this bus */
struct pci_bus*next; /* chain of all PCI buses */
struct pci_dev*self; /* bridge device as seen by parent */
struct pci_dev*devices;/* devices behind this bridge */
void*sysdata;/* hook for sys-specific extension */
unsigned charnumber; /* bus number */
unsigned charprimary;/* number of primary bridge */
unsigned charsecondary;/* number of secondary bridge */
unsigned charsubordinate;/* max number of subordinate buses */
};
pci_dev
表示系統(tǒng)中的每個PCI設(shè)備,包括PCI-PCI和PCI-PCI橋接器 。
/*
* There is one pci_dev structure for each slot-number/function-number
* combination:
*/
struct pci_dev {
struct pci_bus*bus;/* bus this device is on */
struct pci_dev*sibling;/* next device on this bus */
struct pci_dev*next; /* chain of all devices */
void*sysdata;/* hook for sys-specific extension */
unsigned intdevfn; /* encoded device & function index */
unsigned shortvendor;
unsigned shortdevice;
unsigned intclass; /* 3 bytes: (base,sub,prog-if) */
unsigned intmaster : 1;/* set if device is master capable */
/*
* In theory, the irq level can be read from configuration
* space and all would be fine.However, old PCI chips don"t
* support these registers and return 0 instead.For example,
* the Vision864-P rev 0 chip can uses INTA, but returns 0 in
* the interrupt line and pin registers.pci_init()
* initializes this field with the value at PCI_INTERRUPT_LINE
* and it is the job of pcibios_fixup() to change it if
* necessary.The field must not be 0 unless the device
* cannot generate interrupts at all.
*/
unsigned charirq;/* irq generated by this device */
};
request
被用來向系統(tǒng)的塊設(shè)備發(fā)送請求 。它總是向buffer cache讀出或?qū)懭霐?shù)據(jù)塊 。
推薦閱讀
- Linux 核心--17.關(guān)于Linux的Web與FTP站點 --18.作者簡介
- Linux 核心--13.Linux動態(tài)模塊
- Linux 核心--14.處理器
- Linux 核心--15.Linux內(nèi)核資源
- Linux 核心--12.Linux內(nèi)核機制
- Linux 核心--11.網(wǎng)絡(luò)
- Linux 核心--10.文件系統(tǒng)
- 諾基亞將在更多產(chǎn)品上采用Linux操作系統(tǒng)
- 蛤蟆皮的功效與作用 蛤蟆皮的功效
- Linux 核心--7.PCI設(shè)備
