在init.rc启动脚本中
on early-init
start ueventd
就会调用ueventd,其源码位于system/core/init/ueventd.c,主函数int ueventd_main(int argc, char **argv),其中用到以下结构
parser.h
//定义三个宏 #define T_EOF 0 #define T_TEXT 1 #define T_NEWLINE 2 struct parse_state { char *ptr; //读指针 char *text; int line; int nexttoken; //下一个标识符 void *context; void (*parse_line)(struct parse_state *state, int nargs, char **args); //读取行函数 const char *filename; };
system/core/init/ueventd.c
int ueventd_main(int argc, char **argv) { struct pollfd ufd; int nr; char tmp[32]; open_devnull_stdio(); log_init(); INFO("start