1 /** @file
2  *  @brief Bluetooth Mesh Profile APIs.
3  */
4 
5 /*
6  * Copyright (c) 2017 Intel Corporation
7  *
8  * SPDX-License-Identifier: Apache-2.0
9  */
10 #ifndef _MESH_EVENT_H_
11 #define _MESH_EVENT_H_
12 
13 typedef enum {
14     BT_MESH_MODEL_EVT_PROV_START = 0x00,
15     BT_MESH_MODEL_EVT_PROV_DATA,
16 
17     BT_MESH_MODEL_EVT_APPKEY_ADD,
18     BT_MESH_MODEL_EVT_APPKEY_UPDATE,
19     BT_MESH_MODEL_EVT_APPKEY_DEL,
20     BT_MESH_MODEL_EVT_APPKEY_BIND_STATUS,
21     BT_MESH_MODEL_EVT_APPKEY_STATUS,
22 
23     BT_MESH_MODEL_EVT_NETKEY_ADD,
24     BT_MESH_MODEL_EVT_NETKEY_UPDATE,
25     BT_MESH_MODEL_EVT_NETKEY_DEL,
26     BT_MESH_MODEL_EVT_NETKEY_STATUS,
27     BT_MESH_MODEL_EVT_NET_KRP_STATUS,
28 
29     BT_MESH_MODEL_EVT_SEQ_UPDATE,
30 
31     BT_MESH_MODEL_EVT_COMP_DATA_STATUS,
32     BT_MESH_MODEL_EVT_BEACON_STATUS,
33     BT_MESH_MODEL_EVT_TTL_STATUS,
34     BT_MESH_MODEL_EVT_FRIEND_STATUS,
35     BT_MESH_MODEL_EVT_PROXY_STATUS,
36     BT_MESH_MODEL_EVT_RELAY_STATUS,
37 
38     BT_MESH_MODEL_EVT_PUB_STATUS,
39     BT_MESH_MODEL_EVT_SUB_STATUS,
40 
41     BT_MESH_MODEL_EVT_SUB_ADD,
42     BT_MESH_MODEL_EVT_SUB_DEL,
43     BT_MESH_MODEL_EVT_SUB_LIST,
44     BT_MESH_MODEL_EVT_SUB_LIST_VND,
45 
46     BT_MESH_MODEL_EVT_HB_SUB_STATUS,
47     BT_MESH_MODEL_EVT_HB_PUB_STATUS,
48 /*[Genie begin] add by wenbing.cwb at 2021-01-21*/
49 #ifdef CONFIG_BT_MESH_CTRL_RELAY
50     BT_MESH_MODEL_EVT_CTRL_RELAY_STATUS,
51 #endif
52 /*[Genie end] add by wenbing.cwb at 2021-01-21*/
53     BT_MESH_MODEL_EVT_NODE_RESET_OP,
54     BT_MESH_MODEL_EVT_NODE_RESET_STATUS,
55 
56     BT_MESH_MODEL_EVT_RPL_IS_FULL,
57 } mesh_model_event_e;
58 
59 typedef struct {
60     uint16_t source_addr;
61     void *user_data;
62 } bt_mesh_model_evt_t;
63 
64 typedef void (*mesh_model_evt_cb)(mesh_model_event_e event, void *p_arg);
65 
66 int bt_mesh_event_init(void);
67 
68 int bt_mesh_event_register(mesh_model_evt_cb event_cb);
69 
70 mesh_model_evt_cb bt_mesh_event_get_cb_func(void);
71 
72 
73 #endif /* _GENIE_MESH_API_H_ */
74