Linux APM注冊(cè)結(jié)構(gòu)代碼解析
由于Linux APM系統(tǒng)中沒(méi)有bios設(shè)備, 所以只能為L(zhǎng)inux APM系統(tǒng)創(chuàng)建一個(gè)虛擬的字符設(shè)備與用戶空間進(jìn)行通訊. 即在Linux APM中實(shí)現(xiàn)一個(gè)misc設(shè)備,實(shí)質(zhì)上也是一個(gè)字符設(shè)備, misc設(shè)備的主設(shè)備號(hào)是10, 而apm_bios作為個(gè)misc設(shè)備, 次設(shè)備號(hào)是134。
Linux2.6.30.10內(nèi)核的/drivers/char/apm-emulation.c提供了Linux APM_bios的驅(qū)動(dòng)模型,也就是系統(tǒng)進(jìn)入睡眠的入口函數(shù),更早的版本的接口文件為:arch/arm/kernel/apm.c
//注冊(cè)結(jié)構(gòu)為:
- static struct file_operations apm_bios_fops = {
- .owner = THIS_MODULE,
- .read = apm_read,
- .poll = apm_poll,
- .ioctl = apm_ioctl,
- .open = apm_open,
- .release = apm_release,
- };
- static struct miscdevice apm_device = {
- .minor = APM_MINOR_DEV,
- .name = "apm_bios",
- .fops = &apm_bios_fops
- };
這樣就我們就可以像對(duì)一般的設(shè)備文件一樣,讀取Linux APM_bios的相關(guān)信息了。
【編輯推薦】
- Linux 查看磁盤空間實(shí)現(xiàn)代碼介紹
- Linux操作系統(tǒng)需要微軟的十大幫助
- 探尋Linux到底需要多低的配置
- Linux測(cè)試工具tcpdump監(jiān)視TCP/IP連接命令介紹
- Linux流量控制實(shí)例應(yīng)用介紹