2 * Copyright (c) 2015 -2016 Samsung Electronics Co., Ltd All Rights Reserved.
4 * Contact: Anupam Roy <anupam.r@samsung.com>
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
21 #ifndef _BT_HAL_MSG_H_
22 #define _BT_HAL_MSG_H_
24 #define HAL_MINIMUM_EVENT 0x81
25 /*TODO: More events to be added in subsequent patches */
27 /* HAL Global Macros */
28 #define HAL_POWER_OFF 0x00
29 #define HAL_POWER_ON 0x01
31 #define HAL_PROP_ADAPTER_NAME 0x01
32 #define HAL_PROP_ADAPTER_ADDR 0x02
33 #define HAL_PROP_ADAPTER_UUIDS 0x03
34 #define HAL_PROP_ADAPTER_CLASS 0x04
35 #define HAL_PROP_ADAPTER_TYPE 0x05
36 #define HAL_PROP_ADAPTER_SERVICE_REC 0x06
37 #define HAL_PROP_ADAPTER_SCAN_MODE 0x07
38 #define HAL_PROP_ADAPTER_BONDED_DEVICES 0x08
39 #define HAL_PROP_ADAPTER_DISC_TIMEOUT 0x09
42 #define HAL_PROP_DEVICE_NAME 0x01
43 #define HAL_PROP_DEVICE_ADDR 0x02
44 #define HAL_PROP_DEVICE_UUIDS 0x03
45 #define HAL_PROP_DEVICE_CLASS 0x04
46 #define HAL_PROP_DEVICE_TYPE 0x05
47 #define HAL_PROP_DEVICE_SERVICE_REC 0x06
49 /* Tizen specific HAL Adapter and Device property types.
50 These properties have to added to HAL bt_property_type_t enums */
52 struct hal_prop_device_service_rec {
57 } __attribute__((packed));
59 #define HAL_PROP_DEVICE_FRIENDLY_NAME 0x0a
60 #define HAL_PROP_DEVICE_RSSI 0x0b
61 #define HAL_PROP_DEVICE_VERSION_INFO 0x0c
63 * Tizen specific HAL Adapter and Device property types.
64 * These properties have to added to HAL bt_property_type_t enums
66 #define HAL_PROP_DEVICE_PAIRED 0x0d
67 #define HAL_PROP_DEVICE_CONNECTED 0x0e
68 #define HAL_PROP_DEVICE_TRUSTED 0x0f
69 #define HAL_PROP_ADAPTER_PAIRABLE 0x10
70 #define HAL_PROP_ADAPTER_PAIRABLE_TIMEOUT 0x11
71 #define HAL_PROP_ADAPTER_VERSION 0x12
72 #define HAL_PROP_ADAPTER_IPSP_INITIALIZED 0x13
73 #define HAL_PROP_ADAPTER_MODALIAS 0x14
75 #define HAL_PROP_DEVICE_MANUFACTURER_DATA_LEN 0x15
76 #define HAL_PROP_DEVICE_MANUFACTURER_DATA 0x16
77 #define HAL_PROP_DEVICE_BLE_ADV_DATA 0x17
78 #define HAL_PROP_ADAPTER_LOCAL_LE_FEAT 0x18
79 #define HAL_PROP_DEVICE_IS_ALIAS_SET 0x19
80 #define HAL_PROP_ADAPTER_LE_DISCOVERY_STARTED 0x1a
81 #define HAL_PROP_ADAPTER_LE_DISCOVERY_STOPPED 0x1b
82 #define HAL_PROP_ADAPTER_A2DP_ROLE 0x1c
84 struct hal_prop_device_info {
87 uint16_t manufacturer;
88 } __attribute__((packed));
90 #define HAL_PROP_DEVICE_TIMESTAMP 0xFF
92 #define HAL_EV_ADAPTER_STATE_CHANGED 0x00
93 struct hal_ev_adapter_state_changed {
95 } __attribute__((packed));
102 } __attribute__((packed));
104 #define HAL_EV_ADAPTER_PROPS_CHANGED 0x01
105 struct hal_ev_adapter_props_changed {
108 struct hal_property props[0];
109 } __attribute__((packed));
111 #define HAL_EV_ADAPTER_PROFILE_CONNECTED_DEVICES 0x02
112 struct hal_ev_adapter_profile_connected_devices {
114 uint8_t bdaddr_list[10][6];
115 } __attribute__((packed));
117 #define HAL_DISCOVERY_STATE_STOPPED 0x00
118 #define HAL_DISCOVERY_STATE_STARTED 0x01
120 #define HAL_EV_DISCOVERY_STATE_CHANGED 0x85
121 struct hal_ev_discovery_state_changed {
123 } __attribute__((packed));
125 #define HAL_EV_REMOTE_DEVICE_PROPS 0x83
126 struct hal_ev_remote_device_props {
130 struct hal_property props[0];
131 } __attribute__((packed));
133 #define HAL_EV_DEVICE_FOUND 0x84
134 struct hal_ev_device_found {
136 struct hal_property props[0];
137 } __attribute__((packed));
140 /* Device callbacks */
141 #define HAL_EV_PIN_REQUEST 0x86
142 struct hal_ev_pin_request {
145 uint32_t class_of_dev;
146 } __attribute__((packed));
148 #define HAL_EV_SSP_REQUEST 0x87
149 struct hal_ev_ssp_request {
152 uint32_t class_of_dev;
153 uint8_t pairing_variant;
155 } __attribute__((packed));
157 #define HAL_BOND_STATE_NONE 0
158 #define HAL_BOND_STATE_BONDING 1
159 #define HAL_BOND_STATE_BONDED 2
161 #define HAL_EV_BOND_STATE_CHANGED 0x88
162 struct hal_ev_bond_state_changed {
166 } __attribute__((packed));
168 #define HAL_EV_AUTHORIZE_REQUEST 0x89
169 struct hal_ev_authorize_request {
172 } __attribute__((packed));
175 #define HAL_EV_SOCK_AUTHORIZE_REQUEST 0x90
176 struct hal_ev_sock_conn_auth {
182 } __attribute__((packed));
183 #endif //TIZEN_BT_HAL
185 #define HAL_ACL_STATE_CONNECTED 0x00
186 #define HAL_ACL_STATE_DISCONNECTED 0x01
188 #define HAL_EV_ACL_STATE_CHANGED 0x8A
189 struct hal_ev_acl_state_changed {
190 uint8_t status; /* Error code */
192 uint8_t state; /* Link state */
193 } __attribute__((packed));
195 #define HAL_DEVICE_TRUSTED 0x00
196 #define HAL_DEVICE_UNTRUSTED 0x01
198 #define HAL_EV_DEVICE_TRUST_CHANGED 0x8B
199 struct hal_ev_device_trust_state_changed {
202 } __attribute__((packed));
204 #define BT_TRANSPORT_UNKNOWN 0x00
205 #define BT_TRANSPORT_BR_EDR 0x01
206 #define BT_TRANSPORT_LE 0x02
208 /* HID host events */
209 #define HAL_HIDHOST_STATE_CONNECTED 0x00
210 #define HAL_HIDHOST_STATE_CONNECTING 0x01
211 #define HAL_HIDHOST_STATE_DISCONNECTED 0x02
212 #define HAL_HIDHOST_STATE_DISCONNECTING 0x03
213 #define HAL_HIDHOST_STATE_NO_HID 0x07
214 #define HAL_HIDHOST_STATE_FAILED 0x08
215 #define HAL_HIDHOST_STATE_UNKNOWN 0x09
217 /* HID device events */
218 #define HAL_HIDDEVICE_STATE_CONNECTED 0x00
219 #define HAL_HIDDEVICE_STATE_DISCONNECTED 0x01
221 #define HAL_EV_HIDHOST_CONN_STATE 0x81
222 struct hal_ev_hidhost_conn_state {
225 } __attribute__((packed));
227 #define HAL_EV_HIDHOST_INFO 0x82
228 struct hal_ev_hidhost_info {
239 } __attribute__((packed));
241 #define HAL_EV_HIDHOST_PROTO_MODE 0x83
242 struct hal_ev_hidhost_proto_mode {
246 } __attribute__((packed));
248 #define HAL_EV_HIDHOST_IDLE_TIME 0x84
249 struct hal_ev_hidhost_idle_time {
253 } __attribute__((packed));
255 #define HAL_EV_HIDHOST_GET_REPORT 0x85
256 struct hal_ev_hidhost_get_report {
261 } __attribute__((packed));
263 #define HAL_EV_HIDHOST_VIRTUAL_UNPLUG 0x86
264 struct hal_ev_hidhost_virtual_unplug {
267 } __attribute__((packed));
269 #define HAL_EV_HIDHOST_HANDSHAKE 0x87
270 struct hal_ev_hidhost_handshake {
273 } __attribute__((packed));
275 #define HAL_EV_HIDDEVICE_CONN_STATE 0x88
276 struct hal_ev_hiddevice_conn_state {
279 } __attribute__((packed));
281 /* Bluetooth Socket HAL events */
282 struct hal_ev_sock_connect {
287 } __attribute__((packed));
289 /* A2DP (AV) Headers */
290 #define HAL_EV_A2DP_STATE_DISCONNECTED 0x00
291 #define HAL_EV_A2DP_STATE_CONNECTING 0x01
292 #define HAL_EV_A2DP_STATE_CONNECTED 0x02
293 #define HAL_EV_A2DP_STATE_DISCONNECTING 0x03
295 #define HAL_EV_A2DP_CONN_STATE 0x8C
296 struct hal_ev_a2dp_conn_state {
299 } __attribute__((packed));
301 #define HAL_AUDIO_SUSPEND 0x00
302 #define HAL_AUDIO_STOPPED 0x01
303 #define HAL_AUDIO_STARTED 0x02
305 #define HAL_EV_A2DP_AUDIO_STATE 0x8D
306 struct hal_ev_a2dp_audio_state {
309 } __attribute__((packed));
311 #define HAL_EV_A2DP_AUDIO_CONFIG 0x8E
312 struct hal_ev_a2dp_audio_config {
314 uint32_t sample_rate;
315 uint8_t channel_count;
316 } __attribute__((packed));
318 /* A2DP Sink Role connection*/
319 #define HAL_EV_A2DP_SOURCE_CONN_STATE 0x8F
321 /* HandsFree Headers */
322 #define HAL_EV_HANDSFREE_CONN_STATE_DISCONNECTED 0x00
323 #define HAL_EV_HANDSFREE_CONN_STATE_CONNECTING 0x01
324 #define HAL_EV_HANDSFREE_CONN_STATE_CONNECTED 0x02
325 #define HAL_EV_HANDSFREE_CONN_STATE_SLC_CONNECTED 0x03
326 #define HAL_EV_HANDSFREE_CONN_STATE_DISCONNECTING 0x04
328 #define HAL_EV_HANDSFREE_CONN_STATE 0x91
329 struct hal_ev_handsfree_conn_state {
332 } __attribute__((packed));
334 #define HAL_EV_HANDSFREE_AUDIO_STATE_DISCONNECTED 0x00
335 #define HAL_EV_HANDSFREE_AUDIO_STATE_CONNECTING 0x01
336 #define HAL_EV_HANDSFREE_AUDIO_STATE_CONNECTED 0x02
337 #define HAL_EV_HANDSFREE_AUDIO_STATE_DISCONNECTING 0x04
339 #define HAL_EV_HANDSFREE_AUDIO_STATE 0x92
340 struct hal_ev_handsfree_audio_state {
343 } __attribute__((packed));
346 #define HAL_EV_HDP_APP_REG_STATE 0x93
347 struct hal_ev_hdp_app_reg_state {
350 } __attribute__((packed));
352 #define HAL_EV_HDP_CONN_STATE 0x94
353 struct hal_ev_hdp_conn_state {
358 uint8_t channel_state;
360 } __attribute__((packed));
362 /* AVRCP Controller Role HAL Events */
363 #define HAL_EV_AVRCP_CTRL_CONN_STATE 0x95
364 #define HAL_AVRCP_CTRL_STATE_DISCONNECTED 0x00
365 #define HAL_AVRCP_CTRL_STATE_CONNECTED 0x01
366 struct hal_ev_avrcp_ctrl_conn_state {
369 } __attribute__((packed));
371 #define HAL_EV_AVRCP_CTRL_PASS_THROUGH_RSP 0x96
372 struct hal_ev_pass_cmd_rsp {
376 } __attribute__((packed));
378 #define HAL_EV_AVRCP_CTRL_SET_PLAYER_APP_SETTING_RSP 0x97
379 #define HAL_AVRCP_PLAYER_APP_SETTING_REJECTED 0x00
380 #define HAL_AVRCP_PLAYER_APP_SETTING_ACCEPTED 0x01
381 struct hal_ev_set_player_app_setting_rsp {
384 } __attribute__((packed));
386 #define HAL_EV_AVRCP_CTRL_PLAYER_APP_SETTING_CHANGED 0x98
387 #define HAL_MAX_APP_SETTINGS 8
388 #define HAL_PLAYER_ATTR_EQUALIZER 0x01
389 #define HAL_PLAYER_ATTR_REPEAT 0x02
390 #define HAL_PLAYER_ATTR_SHUFFLE 0x03
391 #define HAL_PLAYER_ATTR_SCAN 0x04
392 struct hal_ev_player_setting {
395 uint8_t attr_ids[HAL_MAX_APP_SETTINGS];
396 uint8_t attr_values[HAL_MAX_APP_SETTINGS];
397 } __attribute__((packed));
399 #define HAL_EV_AVRCP_CTRL_TRACK_CHANGED 0x99
400 #define HAL_MAX_ATTR_STR_LEN 100
401 #define HAL_MAX_ATTR_NUM 10
402 #define HAL_MEDIA_ATTR_ID_INVALID -1
403 #define HAL_MEDIA_ATTR_ID_TITLE 0x00000001
404 #define HAL_MEDIA_ATTR_ID_ARTIST 0x00000002
405 #define HAL_MEDIA_ATTR_ID_ALBUM 0x00000003
406 #define HAL_MEDIA_ATTR_ID_TRACK_NUM 0x00000004
407 #define HAL_MEDIA_ATTR_ID_NUM_TRACKS 0x00000005
408 #define HAL_MEDIA_ATTR_ID_GENRE 0x00000006
409 #define HAL_MEDIA_ATTR_ID_PLAYING_TIME 0x00000007
410 struct hal_attr_val {
412 uint8_t text[HAL_MAX_ATTR_STR_LEN];
413 } __attribute__((packed));
415 struct hal_ev_track_changed {
418 struct hal_attr_val attr[HAL_MAX_ATTR_NUM];
419 } __attribute__((packed));
421 #define HAL_EV_AVRCP_CTRL_PLAY_POSITION_CHANGED 0xA0
422 struct hal_ev_play_position {
426 } __attribute__((packed));
428 #define HAL_EV_AVRCP_CTRL_PLAY_STATUS_CHANGED 0xA1
429 #define HAL_PLAYSTATE_STOPPED 0x00 /* Stopped */
430 #define HAL_PLAYSTATE_PLAYING 0x01 /* Playing */
431 #define HAL_PLAYSTATE_PAUSED 0x02 /* Paused */
432 #define HAL_PLAYSTATE_FWD_SEEK 0x03 /* Fwd Seek*/
433 #define HAL_PLAYSTATE_REV_SEEK 0x04 /* Rev Seek*/
434 #define HAL_PLAYSTATE_ERROR 0xFF /* Error */
435 struct hal_ev_play_status_changed {
438 } __attribute__((packed));
440 /* AVRCP TG events */
442 #define HAL_EV_AVRCP_TG_CONN_STATE 0xA2
443 #define HAL_EV_AVRCP_TG_DELAY_CHANGE 0xF1
444 #define HAL_EV_AVRCP_TG_VOLUME_CHANGE 0xF2
446 #define HAL_AVRCP_TG_STATE_DISCONNECTED 0x00
447 #define HAL_AVRCP_TG_STATE_CONNECTED 0x01
448 struct hal_ev_avrcp_tg_conn_state{
451 } __attribute__((packed));
453 struct hal_ev_avrcp_tg_delay_changed{
456 } __attribute__((packed));
458 struct hal_ev_avrcp_tg_volume_changed{
461 } __attribute__((packed));
463 #endif /* TIZEN_BT_HAL */
465 #define HAL_EV_AVRCP_TG_SET_PLAYER_PROPERTY 0xA3
467 #define HAL_AVRCP_TG_PLAYER_PROP_EQUALIZER 0x00
468 #define HAL_AVRCP_TG_PLAYER_PROP_REPEAT 0x01
469 #define HAL_AVRCP_TG_PLAYER_PROP_SHUFFLE 0x02
470 #define HAL_AVRCP_TG_PLAYER_PROP_SCAN 0x03
471 struct hal_ev_avrcp_tg_player_property {
474 } __attribute__((packed));
477 #define HAL_EV_SERVER_INSTANCE_INITIALIZED 0xA4
478 struct hal_ev_server_instance_registered {
480 uint32_t server_instance;
481 uint8_t app_uuid[16];
482 } __attribute__((packed));
484 #define HAL_EV_MULTI_ADV_DATA_SET 0xA5
485 struct hal_ev_multi_adv_data_set {
487 uint8_t server_instance;
488 } __attribute__((packed));
490 #define HAL_EV_MULTI_ADV_ENABLE 0xA6
491 struct hal_ev_multi_adv_enable {
493 uint32_t server_instance;
494 } __attribute__((packed));
496 #define HAL_EV_MULTI_ADV_DISABLE 0xA7
497 struct hal_ev_multi_adv_disable {
499 uint32_t server_instance;
500 } __attribute__((packed));
502 #define HAL_EV_MULTI_ADV_UPDATE 0xA8
503 struct hal_ev_multi_adv_update {
505 uint32_t server_instance;
506 } __attribute__((packed));
508 #define HAL_EV_LEGACY_ADV_ENABLE 0xA9
509 struct hal_ev_legacy_adv_status {
511 uint32_t server_instance;
512 } __attribute__((packed));
514 #define HAL_EV_GATT_CLIENT_REGISTERED 0xAA
515 struct hal_ev_gatt_client_registered {
518 uint8_t app_uuid[16];
519 } __attribute__((packed));
521 #define HAL_EV_GATT_CLIENT_SCAN_RESULT 0xAC
522 struct hal_ev_gatt_client_scan_result {
530 uint8_t secondary_phy;
531 uint8_t advertising_sid;
533 uint16_t periodic_adv_int;
536 } __attribute__((packed));
538 #define HAL_EV_GATT_SERVICE_ADDED 0xAD
539 struct hal_ev_gatt_service_added {
541 uint32_t server_instance;
543 uint8_t svc_uuid[16];
544 uint32_t service_handle;
545 } __attribute__((packed));
547 #define HAL_EV_GATT_CHAR_ADDED 0xAE
548 struct hal_ev_gatt_char_added {
550 uint32_t server_instance;
551 uint32_t service_handle;
552 uint32_t char_handle;
553 uint8_t char_uuid[16];
554 } __attribute__((packed));
556 #define HAL_EV_GATT_DESC_ADDED 0xAF
557 struct hal_ev_gatt_desc_added {
559 uint32_t server_instance;
560 uint32_t service_handle;
561 uint32_t desc_handle;
562 uint8_t desc_uuid[16];
563 } __attribute__((packed));
565 #define HAL_EV_GATT_SERVICE_STARTED 0xB0
566 struct hal_ev_gatt_service_started {
568 uint32_t server_instance;
569 uint32_t service_handle;
570 } __attribute__((packed));
572 #define HAL_EV_GATT_SERVICE_DELETED 0xB1
573 struct hal_ev_gatt_service_deleted {
575 uint32_t server_instance;
576 uint32_t service_handle;
577 } __attribute__((packed));
579 #define HAL_EV_GATT_SERVER_CONNECTED 0xB2
580 struct hal_ev_gatt_server_connected {
582 uint32_t server_instance;
585 } __attribute__((packed));
587 #define HAL_EV_GATT_READ_REQUESTED 0xB3
588 struct hal_ev_gatt_server_read_req {
595 } __attribute__((packed));
597 #define HAL_EV_GATT_WRITE_REQUESTED 0xB4
598 struct hal_ev_gatt_server_write_req {
608 } __attribute__((packed));
610 #define HAL_EV_GATT_INDICATE_CFM 0xB5
611 struct hal_ev_gatt_server_indicate_cfm {
616 } __attribute__((packed));
619 #define HAL_EV_GATT_NOTIFICATION_CHANGE 0xB6
620 struct hal_ev_gatt_server_notifcation_change {
626 } __attribute__((packed));
628 #define HAL_EV_LE_STATE_CHANGED 0xB7
629 struct hal_ev_le_state_changed {
631 } __attribute__((packed));
632 #endif /* TIZEN_BT_HAL */
634 #define HAL_LE_STATE_CONNECTED 0x00
635 #define HAL_LE_STATE_DISCONNECTED 0x01
637 #define HAL_EV_LE_CONN_STATE_CHANGED 0xB8
638 struct hal_ev_le_conn_state_changed {
642 } __attribute__((packed));
644 #define HAL_EV_DEVICE_TRUSTED_PROFILES_CHANGED 0xB9
645 struct hal_ev_device_trusted_profiles_changed {
648 } __attribute__((packed));
650 #define HAL_RSSI_MONITORING_ENABLED 0x00
651 #define HAL_RSSI_MONITORING_DISABLED 0x01
653 #define HAL_EV_RSSI_MONITOR_STATE_CHANGED 0xBA
654 struct hal_ev_rssi_monitor_state_changed {
658 } __attribute__((packed));
660 #define HAL_EV_RSSI_ALERT_RECIEVED 0xBB
661 struct hal_ev_rssi_alert_recieved {
666 } __attribute__((packed));
668 #define HAL_EV_RAW_RSSI_RECIEVED 0xBC
669 struct hal_ev_raw_rssi_recieved {
673 } __attribute__((packed));
675 #define HAL_EV_GATT_CLIENT_CONNECTED 0xBD
676 #define HAL_EV_GATT_CLIENT_DISCONNECTED 0xBE
677 struct hal_ev_gatt_client_connected {
682 } __attribute__((packed));
684 #define HAL_EV_GATT_CLIENT_SEARCH_RESULT 0xBF
685 struct hal_ev_gatt_client_search_result {
691 } __attribute__((packed));
693 #define HAL_EV_GATT_CLIENT_SEARCH_COMPLETE 0xC0
694 struct hal_ev_gatt_client_search_complete {
697 } __attribute__((packed));
699 #define HAL_EV_GATT_CLIENT_CHARAC_SEARCH_RESULT 0xC1
700 struct hal_ev_gatt_client_char_search_result {
705 uint8_t svc_uuid[16];
706 uint8_t char_uuid[16];
710 } __attribute__((packed));
712 #define HAL_EV_GATT_CLIENT_DESC_SEARCH_RESULT 0XC2
713 struct hal_ev_gatt_client_desc_search_result {
718 uint8_t svc_uuid[16];
719 uint8_t char_uuid[16];
720 uint8_t desc_uuid[16];
721 uint32_t char_handle;
723 uint32_t desc_handle;
724 } __attribute__((packed));
726 #define HAL_EV_GATT_CLIENT_READ_CHARAC 0XC3
727 #define HAL_EV_GATT_CLIENT_READ_DESC 0XC4
728 struct hal_ev_gatt_client_read_data {
733 uint8_t svc_uuid[16];
734 uint8_t char_uuid[16];
735 uint8_t desc_uuid[16];
738 uint32_t char_handle;
740 uint32_t desc_handle;
741 } __attribute__((packed));
743 #define HAL_EV_GATT_CLIENT_WRITE_CHARAC 0XC5
744 #define HAL_EV_GATT_CLIENT_WRITE_DESC 0XC6
745 struct hal_ev_gatt_client_write_result {
750 uint8_t svc_uuid[16];
751 uint8_t char_uuid[16];
752 uint8_t desc_uuid[16];
753 uint32_t char_handle;
755 uint32_t desc_handle;
756 } __attribute__((packed));
758 #define HAL_EV_GATT_CLIENT_WATCH_NOTIFICATION 0XC7
759 struct hal_ev_gatt_client_watch_notification {
765 uint8_t svc_uuid[16];
766 uint8_t char_uuid[16];
767 uint32_t char_handle;
769 } __attribute__((packed));
771 #define HAL_EV_GATT_ACQUIRE_WRITE 0XC8
772 struct hal_ev_gatt_acquire_write {
776 uint8_t svc_uuid[16];
777 uint8_t char_uuid[16];
778 } __attribute__((packed));
780 #define HAL_EV_GATT_SERVER_ACQUIRE_WRITE_RES 0XC9
781 struct hal_ev_gatt_server_acquire_write_res {
787 } __attribute__((packed));
789 #define HAL_EV_GATT_SERVER_ACQUIRE_NOTIFY_RES 0XCA
790 struct hal_ev_gatt_server_acquire_notify {
797 } __attribute__((packed));
799 #define HAL_EV_GATT_CLIENT_NOTIFY_CHANGED_VALUE 0XCB
800 struct hal_ev_gatt_client_notify_changed_value {
807 uint8_t svc_uuid[16];
808 uint8_t char_uuid[16];
810 uint32_t char_handle;
812 } __attribute__((packed));
814 #define HAL_EV_GATT_SERVER_MTU_CHANGED 0XCC
815 struct hal_ev_gatt_server_mtu_changed {
818 } __attribute__((packed));
820 /* HF Client Headers */
821 #define HAL_EV_HF_CLIENT_CONN_STATE_DISCONNECTED 0x00
822 #define HAL_EV_HF_CLIENT_CONN_STATE_CONNECTING 0x01
823 #define HAL_EV_HF_CLIENT_CONN_STATE_CONNECTED 0x02
824 #define HAL_EV_HF_CLIENT_CONN_STATE_SLC_CONNECTED 0x03
825 #define HAL_EV_HF_CLIENT_CONN_STATE_DISCONNECTING 0x04
827 #define HAL_EV_HF_CLIENT_CONN_STATE 0xCD
828 struct hal_ev_hf_client_conn_state {
831 } __attribute__((packed));
833 #define HAL_EV_DBFW_PLUS_INFO_RECIEVED 0xCE
834 struct hal_ev_dbfw_plus_info_recieved {
838 } __attribute__((packed));
840 #define HAL_EV_GATT_CLIENT_SERVICE_CHANGED 0xCF
841 struct hal_ev_gatt_client_service_changed {
847 } __attribute__((packed));
849 #define HAL_EV_GATT_CLIENT_MTU_EXCHANGE_COMPLETED 0xD0
850 struct hal_ev_gatt_client_mtu_exchange_completed {
854 } __attribute__((packed));
856 #define HAL_CONTROLLER_ERROR_HW_ERROR 0x00
857 #define HAL_CONTROLLER_ERROR_TX_TIMEOUT 0x01
859 #define HAL_EV_CONTROLLER_ERROR_RECIEVED 0xD1
860 struct hal_ev_controller_error_recieved {
862 } __attribute__((packed));
865 /* MESH HAL events */
866 #define HAL_EV_MESH_NETWORK_ATTACHED 0xD2
867 struct hal_ev_mesh_network_attached {
872 } __attribute__((packed));
874 #define HAL_MESH_SCAN_STATE_STOPPED 0x00
875 #define HAL_MESH_SCAN_STATE_STARTED 0x01
877 #define HAL_EV_MESH_SCAN_STATE_CHANGED 0xD3
878 struct hal_ev_mesh_scan_state_changed {
881 uint8_t net_uuid[16];
882 } __attribute__((packed));
885 #define HAL_EV_MESH_SCAN_FINISHED 0xD4
886 struct hal_ev_mesh_scan_finished {
888 uint8_t net_uuid[16];
889 } __attribute__((packed));
892 #define HAL_EV_MESH_SCAN_RESULT 0xD5
893 struct hal_ev_mesh_scan_result {
896 uint8_t net_uuid[16];
897 uint8_t dev_uuid[16];
900 } __attribute__((packed));
902 #define HAL_EV_MESH_PROVISIONING_STATUS 0xD6
903 struct hal_ev_mesh_provision_status {
905 uint8_t net_uuid[16];
906 uint8_t dev_uuid[16];
907 } __attribute__((packed));
909 #define HAL_EV_MESH_PROVISIONING_FINISHED 0xD7
910 struct hal_ev_mesh_provision_finished {
913 uint8_t net_uuid[16];
916 uint8_t dev_uuid[16];
917 } __attribute__((packed));
919 #define HAL_EV_MESH_PROVISIONING_DATA_REQUEST 0xD8
920 struct hal_ev_mesh_provision_data_request {
921 uint8_t net_uuid[16];
923 } __attribute__((packed));
925 #define HAL_EV_MESH_AUTHENTICATION_REQUEST 0xD9
926 struct hal_ev_mesh_authentication_request {
927 uint8_t net_uuid[16];
930 } __attribute__((packed));
933 #define HAL_MESH_KEY_ADD 0x00
934 #define HAL_MESH_KEY_UPDATE 0x01
935 #define HAL_MESH_KEY_DELETE 0x02
937 #define HAL_EV_MESH_NETKEY_EXECUTE_EVENT 0xDA
938 struct hal_ev_mesh_netkey_execute_event {
941 uint8_t net_uuid[16];
943 } __attribute__((packed));
945 #define HAL_EV_MESH_APPKEY_EXECUTE_EVENT 0xDB
946 struct hal_ev_mesh_appkey_execute_event {
949 uint8_t net_uuid[16];
952 } __attribute__((packed));
954 #define HAL_EV_MESH_DEVKEY_MESSAGE_EVENT 0xDC
955 struct hal_ev_mesh_devkey_message_event {
956 uint8_t net_uuid[16];
957 uint16_t source_addr;
958 uint8_t is_remote_devkey;
962 } __attribute__((packed));
964 #define HAL_EV_MESH_MESSAGE_EVENT 0xDD
965 struct hal_ev_mesh_message_event {
966 uint8_t net_uuid[16];
968 uint16_t source_addr;
973 } __attribute__((packed));
975 #define HAL_EV_MESH_NETWORK_DESTROYED 0xDE
976 struct hal_ev_mesh_network_destroyed {
980 } __attribute__((packed));
982 #define HAL_EV_MESH_NETWORK_PROXY_ADDED 0xDF
983 struct hal_ev_mesh_network_proxy_added {
987 } __attribute__((packed));
990 #endif //_BT_HAL_MSG_H_