struct ubus_event_hadler结构体定义
时间: 2023-07-08 21:05:04 浏览: 302
`struct ubus_event_handler` 结构体定义在 OpenWrt 操作系统的 ubus 库中,用于处理 ubus 事件。
具体定义如下:
```c
struct ubus_event_handler {
struct ubus_object *obj;
const char *event;
ubus_event_handler_t cb;
struct list_head list;
};
```
其中,各字段含义如下:
- `struct ubus_object *obj`:指向该事件处理器所属的 ubus 对象。
- `const char *event`:指定该事件处理器要处理的事件名。
- `ubus_event_handler_t cb`:指定事件回调函数,该函数会在事件发生时被调用。
- `struct list_head list`:用于将事件处理器链接到 ubus 对象的处理器列表中。
需要注意的是,`ubus_event_handler_t` 是一个回调函数类型,定义如下:
```c
typedef void (*ubus_event_handler_t)(struct ubus_context *ctx,
struct ubus_event_handler *ev,
const char *type,
struct blob_attr *msg);
```
该回调函数会在事件发生时被调用,传递以下参数:
- `struct ubus_context *ctx`:指向 ubus 上下文的指针。
- `struct ubus_event_handler *ev`:指向当前事件处理器的指针。
- `const char *type`:指定事件类型。
- `struct blob_attr *msg`:指向事件消息的指针,可以使用 ubus_msg_get_*() 函数解析该消息。
阅读全文