zoukankan      html  css  js  c++  java
  • linux kernel 从cmdline 提取值

     1 // 从cmdline 提取 rootfsname= 的值到 val_buf                                         
     2 char val_buf[64];
     3 #define ROOTFS_CMDLINE "rootfsname="
     4 
     5 static void __init gluebi_read_cmdline (void)
     6 {
     7     rootfsmtd_ptr = strstr(saved_command_line, ROOTFS_CMDLINE);
     8     if (rootfsmtd_ptr) {
     9         sscanf(rootfsmtd_ptr, ROOTFS_CMDLINE"%s", val_buf);
    10         printk("Gluebi: Found kernel commandline option 'rootfsname=%s'
    ", val_buf);
    11     }   
    12 }
     1 // drivers/acpi/sysfs.c
     2 static int param_get_trace_state(char *buffer, struct kernel_param *kp)
     3 {
     4     if (!acpi_gbl_trace_method_name)
     5         return sprintf(buffer, "disable");
     6     else {
     7         if (acpi_gbl_trace_flags & 1)
     8             return sprintf(buffer, "1");
     9         else
    10             return sprintf(buffer, "enable");
    11     }
    12     return 0;
    13 }
    14 static int param_set_trace_state(const char *val, struct kernel_param *kp)
    15 {
    16     int result = 0;
    17 
    18     if (!strncmp(val, "enable", sizeof("enable") - 1)) {
    19         result = acpi_debug_trace(trace_method_name, trace_debug_level,
    20                       trace_debug_layer, 0);
    21         if (result)
    22             result = -EBUSY;
    23         goto exit;
    24     }
    25 
    26     if (!strncmp(val, "disable", sizeof("disable") - 1)) {
    27         int name = 0;
    28         result = acpi_debug_trace((char *)&name, trace_debug_level,
    29                       trace_debug_layer, 0);
    30         if (result)
    31             result = -EBUSY;
    32         goto exit;
    33     }
    34 
    35     if (!strncmp(val, "1", 1)) {
    36         result = acpi_debug_trace(trace_method_name, trace_debug_level,
    37                       trace_debug_layer, 1);
    38         if (result)
    39             result = -EBUSY;
    40         goto exit;
    41     }
    42 
    43     result = -EINVAL;
    44 exit:
    45     return result;
    46 }
    47                                                                                     
    48 // 设置 从cmdline 分析到 trace_state 参数 调用param_set_trace_state, 将值传给 buffer
    49 module_param_call(trace_state, param_set_trace_state, NULL, NULL, 0);
    1 // init/main.c
    2 
    3 static int __init set_reset_devices(char *str)
    4 {
    5     reset_devices = 1;
    6     return 1;
    7 }
    8 
    9 __setup("reset_devices", set_reset_devices);
  • 相关阅读:
    使用 Eclipse 平台共享代码
    给定一个整数数组,其中元素的取值范围为0到10000,求其中出现次数最多的数
    学习
    eclipse优化
    约瑟夫环
    propedit插件
    OData 11 入门:实现一个简单的OData服务
    OData 14 OData语法(上)
    CLR via C# 读书笔记 54 在使用非托管资源情况下的GC
    面试:等车时间
  • 原文地址:https://www.cnblogs.com/listenerln/p/10292165.html
Copyright © 2011-2022 走看看