国产探花免费观看_亚洲丰满少妇自慰呻吟_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做不同的處理.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 政和县| 弥渡县| 盐山县| 泾川县| 中江县| 海盐县| 久治县| 米易县| 淳化县| 浦城县| 达拉特旗| 子洲县| 大英县| 普洱| 鄢陵县| 靖远县| 鞍山市| 察隅县| 织金县| 利津县| 丽水市| 都安| 芜湖县| 西贡区| 孝义市| 栾川县| 驻马店市| 观塘区| 静宁县| 呼图壁县| 平度市| 广州市| 汉源县| 文成县| 呼和浩特市| 郎溪县| 新宁县| 凤翔县| 镇坪县| 怀集县| 永新县|