自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux APM在ARM中具體實(shí)現(xiàn)初始化

運(yùn)維 系統(tǒng)運(yùn)維
由于Linux APM系統(tǒng)中沒有bios設(shè)備, 所以只能為APM系統(tǒng)創(chuàng)建一個(gè)虛擬的字符設(shè)備與用戶空間進(jìn)行通訊. 即在APM中實(shí)現(xiàn)一個(gè)misc設(shè)備,實(shí)質(zhì)上也是一個(gè)字符設(shè)備

misc設(shè)備的主設(shè)備號(hào)是10, 而Linux 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

在Linux APM-emulation.c中:
 

  1. /*  
  2. * The apm_bios device is one of the misc char devices.  
  3. * This is its minor number.  
  4. */  
  5. #define Linux APM_MINOR_DEV 134  

 

這個(gè)Linux APM_bios設(shè)備通過ioctl系統(tǒng)調(diào)用和用戶空間進(jìn)行通訊, 即當(dāng)用戶進(jìn)程通過ioctl發(fā)來suspend命令時(shí), 它就傳給內(nèi)核, 使系統(tǒng)進(jìn)入suspend狀態(tài).

1,初始化
 

  1. static int __init apm_init(void)  
  2. {  
  3. int ret;  
  4. if (apm_disabled) {  
  5. printk(KERN_NOTICE "apm: disabled on user request.\n");  
  6. return -ENODEV;  
  7. }  

 

//創(chuàng)建一個(gè)線程, 用于處理事件隊(duì)列, 工作函數(shù)是kapmd
 

  1. kapmd_tsk = kthread_create(kapmd, NULL, "kapmd");  
  2. if (IS_ERR(kapmd_tsk)) {  
  3. ret = PTR_ERR(kapmd_tsk);  
  4. kapmd_tsk = NULL;  
  5. goto out;  
  6. }  
  7. wake_up_process(kapmd_tsk);  

 

//通過proc,向用戶空間輸出Linux APM信息
 

  1. #ifdef CONFIG_PROC_FS  
  2. proc_create("apm", 0, NULL, &apm_proc_fops);  
  3. #endif 

//注冊(cè)misc設(shè)備
 

  1. ret = misc_register(&apm_device);  
  2. if (ret)  
  3. goto out_stop;  
  4. ret = register_pm_notifier(&apm_notif_block);  
  5. if (ret)  
  6. goto out_unregister;  
  7. return 0;  
  8. out_unregister:  
  9. misc_deregister(&apm_device);  
  10. out_stop:  
  11. remove_proc_entry("apm", NULL);  
  12. kthread_stop(kapmd_tsk);  
  13. out:  
  14. return ret;  
  15. }  

 

【編輯推薦】

  1. Linux 查看磁盤空間實(shí)現(xiàn)代碼介紹
  2. Linux操作系統(tǒng)需要微軟的十大幫助
  3. 探尋Linux到底需要多低的配置
  4. Linux測(cè)試工具tcpdump監(jiān)視TCP/IP連接命令介紹
  5. Linux流量控制實(shí)例應(yīng)用介紹

 

責(zé)任編輯:chenqingxiang 來源: IT實(shí)驗(yàn)室
相關(guān)推薦

2009-08-31 10:38:34

C#變量初始化

2019-11-04 13:50:36

Java數(shù)組編程語(yǔ)言

2010-06-21 10:49:24

Linux APM

2009-09-07 09:24:26

2011-03-16 10:52:20

2011-06-17 15:29:44

C#對(duì)象初始化器集合初始化器

2023-07-13 09:13:18

Docker容器

2011-08-16 14:54:12

iphone開發(fā)APP

2011-03-31 16:46:10

LinuxMySQL

2023-11-12 23:08:17

C++初始化

2010-02-24 15:41:19

Linux Light

2010-08-20 16:02:45

Cassandra集群

2010-02-01 14:21:24

C++初始化列表

2022-03-30 08:19:12

JavaGroovy

2010-01-05 15:35:21

.NET Framew

2022-03-21 09:50:50

JavaGroovy映射Map

2010-03-11 19:25:35

Python環(huán)境

2022-11-15 20:48:41

Linux

2023-10-06 20:57:52

C++聚合成員

2010-01-13 18:01:43

VB.NET數(shù)組初始化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)