国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

reboot reason的客制化

2019-11-09 16:56:01
字體:
來源:轉載
供稿:網友
kernel的reboot系統調用實現如下:SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd,        void __user *, arg){    struct pid_namespace *pid_ns = task_active_pid_ns(current);    char buffer[256];    int ret = 0;    mutex_lock(&reboot_mutex);    switch (cmd) {    case linux_REBOOT_CMD_RESTART:        kernel_restart(NULL);        break;    case LINUX_REBOOT_CMD_RESTART2:        ret = strncpy_from_user(&buffer[0], arg, sizeof(buffer) - 1);        if (ret < 0) {            ret = -EFAULT;            break;        }        buffer[sizeof(buffer) - 1] = '/0';        kernel_restart(buffer);        break;}可以看到reboot的restart command其實有兩個,一個直接調用kernel_restart重啟系統,一個LINUX_REBOOT_CMD_RESTART2,則可以帶一個reason,也就是說這次是為什么重啟,這就為客制化提供了機會,在真正reboot 實現的時候,可以把這個reason也就是buffer中的字符串存起來,這樣就可以告訴driver是為什么重啟了.driver 可以針對不通的reason做不同的處理.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永仁县| 遂川县| 商河县| 龙州县| 波密县| 天全县| 九江县| 涿州市| 岗巴县| 保德县| 庆云县| 太白县| 富裕县| 沂源县| 瓦房店市| 平顶山市| 昭平县| 冷水江市| 伊金霍洛旗| 额敏县| 洪江市| 吉安市| 永丰县| 堆龙德庆县| 华池县| 禹州市| 北川| 闽清县| 红安县| 共和县| 阿鲁科尔沁旗| 修文县| 达尔| 延庆县| 德化县| 西乌| 巧家县| 耒阳市| 大丰市| 大方县| 曲沃县|