android logger 简要分析 (kernel 3.0.0)
来源:互联网 发布:捕鱼达人机器数据 编辑:程序博客网 时间:2024/05/16 01:45
1 路径:
drivers/staging/android/logger.c
drivers/staging/android/logger.h
2 创建的设备节点(在drivers/staging/android/logger.h定义):
dev/log_events /* system/hardware events */
dev/log_radio /* radio-related messages */
dev/log_main /* everything else */
dev/log_system /* system/framework messages */
3 查看 static int __init logger_init(void)函数:
593 static int __init logger_init(void)
594 {
595 int ret;
596
597 ret = init_log(&log_main);
598 if (unlikely(ret))
599 goto out;
600
601 ret = init_log(&log_events);
602 if (unlikely(ret))
603 goto out;
604
605 ret = init_log(&log_radio);
606 if (unlikely(ret))
607 goto out;
608
609 ret = init_log(&log_system);
610 if (unlikely(ret))
611 goto out;
612
613 out:
614 return ret;
615 }
其中参数“log_main” 是有 DEFINE_LOGGER_DEVICE(log_main, LOGGER_LOG_MAIN, 64*1024)定义的。
同时可参考如下宏声明:
535 /*
536 * Defines a log structure with name 'NAME' and a size of 'SIZE' bytes, which
537 * must be a power of two, greater than LOGGER_ENTRY_MAX_LEN, and less than
538 * LONG_MAX minus LOGGER_ENTRY_MAX_LEN.
539 */
540 #define DEFINE_LOGGER_DEVICE(VAR, NAME, SIZE) \
541 static unsigned char _buf_ ## VAR[SIZE]; \
542 static struct logger_log VAR = { \
543 .buffer = _buf_ ## VAR, \
544 .misc = { \
545 .minor = MISC_DYNAMIC_MINOR, \
546 .name = NAME, \
547 .fops = &logger_fops, \
548 .parent = NULL, \
549 }, \
550 .wq = __WAIT_QUEUE_HEAD_INITIALIZER(VAR .wq), \
551 .readers = LIST_HEAD_INIT(VAR .readers), \
552 .mutex = __MUTEX_INITIALIZER(VAR .mutex), \
553 .w_off = 0, \
554 .head = 0, \
555 .size = SIZE, \
556 };
注意:misc注册的fop结构体。
- android logger 简要分析 (kernel 3.0.0)
- Android的logger机制分析
- 【Android消息机制】简要分析(一)
- Android源代码简要分析
- Android源代码简要分析
- Android源代码简要分析
- Android源代码简要分析
- Android源代码简要分析
- Android源代码简要分析
- android SensorManager简要分析
- Android adb简要分析
- Android wifi简要分析
- Android Wifi简要分析
- Android wifi 简要分析
- Android AsyncTask简要分析
- Android wifi简要分析
- Android系统简要分析
- Android wifi简要分析
- 控制台界面控制(十):读取鼠标操作
- System.gc()与Object.finalize()的区别
- 软件开发工具理论篇
- 三个自然数的积为1986,和为338,求这三个自然数
- hibernate ID生成策略
- android logger 简要分析 (kernel 3.0.0)
- chcon命令
- 过河问题
- 静下心来写算法(之简单排序算法)
- 连连看
- 创新基金:创业者融资的“营养餐”
- 游戏道具出现概率的算法
- 想得要周到
- JavaScript必知必会小结(《JQuery实战》)