uevent 事件上报demo

来源:互联网 发布:生化危机游戏 知乎 编辑:程序博客网 时间:2024/05/16 07:18

1.驱动上报

diff --git a/kernel/msm-3.18/drivers/input/touchscreen/ft8006u/focaltech_core.c b/kernel/msm-3.18/drivers/input/touchscreen/ft8006u/focaltech_core.cindex 990e636..8fbdb8c 100644--- a/kernel/msm-3.18/drivers/input/touchscreen/ft8006u/focaltech_core.c+++ b/kernel/msm-3.18/drivers/input/touchscreen/ft8006u/focaltech_core.c@@ -1336,6 +1336,7 @@ static struct platform_device hwinfo_device= {    .id = -1, };//zhengwu add+ /***************************************************************************** *  Name: fts_ts_probe *  Brief:@@ -1349,6 +1350,7 @@ static int fts_ts_probe(struct i2c_client *client, const struct i2c_device_id *i     struct fts_ts_data *data;     struct input_dev *input_dev;     int err;+     FTS_FUNC_ENTER();     /* 1. Get Platform data */     if (client->dev.of_node)@@ -1615,6 +1617,10 @@ static int fts_ts_suspend(struct device *dev) {     struct fts_ts_data *data = dev_get_drvdata(dev);     int retval = 0;+        char *env[] = { "XXXX=iwlwifi", "XXXXXXX=error_dump", NULL };++     kobject_uevent_env(&dev->kobj, KOBJ_CHANGE,env);+     printk("zch---kobj name = %s\n",dev->kobj.name);     FTS_FUNC_ENTER();     if (data->suspended)

2.上报打印

diff --git a/kernel/msm-3.18/lib/kobject_uevent.c b/kernel/msm-3.18/lib/kobject_uevent.cindex 9ebf9e2..5f3fd35 100644--- a/kernel/msm-3.18/lib/kobject_uevent.c+++ b/kernel/msm-3.18/lib/kobject_uevent.c@@ -247,12 +247,25 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,    if (retval)        goto exit;++if( strcmp(  kobj->name ,"3-0038") ==0)+{++    printk( "zch--------ACTION=%s,DEVPATH=%s,SUBSYSTEM=%s\n", action_string,devpath,subsystem);+}+    /* keys passed in from the caller */    if (envp_ext) {        for (i = 0; envp_ext[i]; i++) {            retval = add_uevent_var(env, "%s", envp_ext[i]);+                      +            if (retval)                goto exit;+                      if( strcmp(  kobj->name ,"3-0038") ==0)+                                {+                                    printk("zch--- %s \n",envp_ext[i]);+                                }        }    }

3.vold接收事件

diff --git a/system/vold/NetlinkHandler.cpp b/system/vold/NetlinkHandler.cppindex ecda2a0..73fa962 100644--- a/system/vold/NetlinkHandler.cpp+++ b/system/vold/NetlinkHandler.cpp@@ -54,4 +54,25 @@ void NetlinkHandler::onEvent(NetlinkEvent *evt) {     if (!strcmp(subsys, "block")) {         vm->handleBlockEvent(evt);     }++/*++01-02 21:54:20.440     0     0 I         : zch--------ACTION=change,DEVPATH=/devices/soc/78b7000.i2c/i2c-3/3-0038,SUBSYSTEM=i2c+01-02 21:54:20.440     0     0 I         : zch--- XXXX=iwlwifi+01-02 21:54:20.441     0     0 I         : zch--- XXXXXXX=error_dump+01-02 21:54:20.442     0     0 I         : zch---kobj name = 3-0038+++*/+++if (!strcmp(subsys, "i2c")) {++    const char *myargs1 = evt->findParam("XXXX")?evt->findParam("XXXX"):"";+     const char * myargs2 = evt->findParam("XXXXXXX")?evt->findParam("XXXXXXX"):"";+        SLOGE("zch---myargs1=%s",myargs1);+   SLOGE("zch---myargs2=%s",myargs2);++       +    }   }
原创粉丝点击