Bluetooth: Use __packed instead of the deprecated PACK_STRUCT

The PACK_STRUCT macro will be removed soon and __packed is what all
code should use. Convert all the usages in Bluetooth code.

Change-Id: Id5c724566565f67fa8167b61398c508194ece89b
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This commit is contained in:
Johan Hedberg 2015-06-04 11:20:48 +07:00 committed by Anas Nashif
commit 451b105978
6 changed files with 84 additions and 84 deletions

View file

@ -86,7 +86,7 @@ struct bt_eir {
uint8_t len; uint8_t len;
uint8_t type; uint8_t type;
uint8_t data[29]; uint8_t data[29];
} PACK_STRUCT; } __packed;
int bt_start_advertising(uint8_t type, const struct bt_eir *ad, int bt_start_advertising(uint8_t type, const struct bt_eir *ad,
const struct bt_eir *sd); const struct bt_eir *sd);

View file

@ -75,19 +75,19 @@ typedef struct {
struct bt_hci_evt_hdr { struct bt_hci_evt_hdr {
uint8_t evt; uint8_t evt;
uint8_t len; uint8_t len;
} PACK_STRUCT; } __packed;
#define bt_acl_handle(h) ((h) & 0x0fff) #define bt_acl_handle(h) ((h) & 0x0fff)
struct bt_hci_acl_hdr { struct bt_hci_acl_hdr {
uint16_t handle; uint16_t handle;
uint16_t len; uint16_t len;
} PACK_STRUCT; } __packed;
struct bt_hci_cmd_hdr { struct bt_hci_cmd_hdr {
uint16_t opcode; uint16_t opcode;
uint8_t param_len; uint8_t param_len;
} PACK_STRUCT; } __packed;
/* LMP features */ /* LMP features */
#define BT_LMP_NO_BREDR 0x20 #define BT_LMP_NO_BREDR 0x20
@ -107,7 +107,7 @@ struct bt_hci_cmd_hdr {
#define BT_HCI_OP_SET_EVENT_MASK BT_OP(BT_OGF_BASEBAND, 0x0001) #define BT_HCI_OP_SET_EVENT_MASK BT_OP(BT_OGF_BASEBAND, 0x0001)
struct bt_hci_cp_set_event_mask { struct bt_hci_cp_set_event_mask {
uint8_t events[8]; uint8_t events[8];
} PACK_STRUCT; } __packed;
#define BT_HCI_OP_RESET BT_OP(BT_OGF_BASEBAND, 0x0003) #define BT_HCI_OP_RESET BT_OP(BT_OGF_BASEBAND, 0x0003)
@ -119,24 +119,24 @@ struct bt_hci_cp_host_buffer_size {
uint8_t sco_mtu; uint8_t sco_mtu;
uint16_t acl_pkts; uint16_t acl_pkts;
uint16_t sco_pkts; uint16_t sco_pkts;
} PACK_STRUCT; } __packed;
struct bt_hci_handle_count { struct bt_hci_handle_count {
uint16_t handle; uint16_t handle;
uint16_t count; uint16_t count;
} PACK_STRUCT; } __packed;
#define BT_HCI_OP_HOST_NUM_COMPLETED_PACKETS BT_OP(BT_OGF_BASEBAND, 0x0035) #define BT_HCI_OP_HOST_NUM_COMPLETED_PACKETS BT_OP(BT_OGF_BASEBAND, 0x0035)
struct bt_hci_cp_host_num_completed_packets { struct bt_hci_cp_host_num_completed_packets {
uint8_t num_handles; uint8_t num_handles;
struct bt_hci_handle_count h[0]; struct bt_hci_handle_count h[0];
} PACK_STRUCT; } __packed;
#define BT_HCI_OP_LE_WRITE_LE_HOST_SUPP BT_OP(BT_OGF_BASEBAND, 0x006d) #define BT_HCI_OP_LE_WRITE_LE_HOST_SUPP BT_OP(BT_OGF_BASEBAND, 0x006d)
struct bt_hci_cp_write_le_host_supp { struct bt_hci_cp_write_le_host_supp {
uint8_t le; uint8_t le;
uint8_t simul; uint8_t simul;
} PACK_STRUCT; } __packed;
#define BT_HCI_OP_READ_LOCAL_VERSION_INFO BT_OP(BT_OGF_INFO, 0x0001) #define BT_HCI_OP_READ_LOCAL_VERSION_INFO BT_OP(BT_OGF_INFO, 0x0001)
struct bt_hci_rp_read_local_version_info { struct bt_hci_rp_read_local_version_info {
@ -146,13 +146,13 @@ struct bt_hci_rp_read_local_version_info {
uint8_t lmp_version; uint8_t lmp_version;
uint16_t manufacturer; uint16_t manufacturer;
uint16_t lmp_subversion; uint16_t lmp_subversion;
} PACK_STRUCT; } __packed;
#define BT_HCI_OP_READ_LOCAL_FEATURES BT_OP(BT_OGF_INFO, 0x0003) #define BT_HCI_OP_READ_LOCAL_FEATURES BT_OP(BT_OGF_INFO, 0x0003)
struct bt_hci_rp_read_local_features { struct bt_hci_rp_read_local_features {
uint8_t status; uint8_t status;
uint8_t features[8]; uint8_t features[8];
} PACK_STRUCT; } __packed;
#define BT_HCI_OP_READ_BUFFER_SIZE BT_OP(BT_OGF_INFO, 0x0005) #define BT_HCI_OP_READ_BUFFER_SIZE BT_OP(BT_OGF_INFO, 0x0005)
struct bt_hci_rp_read_buffer_size { struct bt_hci_rp_read_buffer_size {
@ -161,26 +161,26 @@ struct bt_hci_rp_read_buffer_size {
uint8_t sco_max_len; uint8_t sco_max_len;
uint16_t acl_max_num; uint16_t acl_max_num;
uint16_t sco_max_num; uint16_t sco_max_num;
} PACK_STRUCT; } __packed;
#define BT_HCI_OP_READ_BD_ADDR BT_OP(BT_OGF_INFO, 0x0009) #define BT_HCI_OP_READ_BD_ADDR BT_OP(BT_OGF_INFO, 0x0009)
struct bt_hci_rp_read_bd_addr { struct bt_hci_rp_read_bd_addr {
uint8_t status; uint8_t status;
bt_addr_t bdaddr; bt_addr_t bdaddr;
} PACK_STRUCT; } __packed;
#define BT_HCI_OP_LE_READ_BUFFER_SIZE BT_OP(BT_OGF_LE, 0x0002) #define BT_HCI_OP_LE_READ_BUFFER_SIZE BT_OP(BT_OGF_LE, 0x0002)
struct bt_hci_rp_le_read_buffer_size { struct bt_hci_rp_le_read_buffer_size {
uint8_t status; uint8_t status;
uint16_t le_max_len; uint16_t le_max_len;
uint8_t le_max_num; uint8_t le_max_num;
} PACK_STRUCT; } __packed;
#define BT_HCI_OP_LE_READ_LOCAL_FEATURES BT_OP(BT_OGF_LE, 0x0003) #define BT_HCI_OP_LE_READ_LOCAL_FEATURES BT_OP(BT_OGF_LE, 0x0003)
struct bt_hci_rp_le_read_local_features { struct bt_hci_rp_le_read_local_features {
uint8_t status; uint8_t status;
uint8_t features[8]; uint8_t features[8];
} PACK_STRUCT; } __packed;
/* Advertising types */ /* Advertising types */
#define BT_LE_ADV_IND 0x00 #define BT_LE_ADV_IND 0x00
@ -199,24 +199,24 @@ struct bt_hci_cp_le_set_adv_parameters {
bt_addr_le_t direct_addr; bt_addr_le_t direct_addr;
uint8_t channel_map; uint8_t channel_map;
uint8_t filter_policy; uint8_t filter_policy;
} PACK_STRUCT; } __packed;
#define BT_HCI_OP_LE_SET_ADV_DATA BT_OP(BT_OGF_LE, 0x0008) #define BT_HCI_OP_LE_SET_ADV_DATA BT_OP(BT_OGF_LE, 0x0008)
struct bt_hci_cp_le_set_adv_data { struct bt_hci_cp_le_set_adv_data {
uint8_t len; uint8_t len;
uint8_t data[31]; uint8_t data[31];
} PACK_STRUCT; } __packed;
#define BT_HCI_OP_LE_SET_SCAN_RSP_DATA BT_OP(BT_OGF_LE, 0x0009) #define BT_HCI_OP_LE_SET_SCAN_RSP_DATA BT_OP(BT_OGF_LE, 0x0009)
struct bt_hci_cp_le_set_scan_rsp_data { struct bt_hci_cp_le_set_scan_rsp_data {
uint8_t len; uint8_t len;
uint8_t data[31]; uint8_t data[31];
} PACK_STRUCT; } __packed;
#define BT_HCI_OP_LE_SET_ADV_ENABLE BT_OP(BT_OGF_LE, 0x000a) #define BT_HCI_OP_LE_SET_ADV_ENABLE BT_OP(BT_OGF_LE, 0x000a)
struct bt_hci_cp_le_set_adv_enable { struct bt_hci_cp_le_set_adv_enable {
uint8_t enable; uint8_t enable;
} PACK_STRUCT; } __packed;
/* Scan types */ /* Scan types */
#define BT_HCI_OP_LE_SET_SCAN_PARAMS BT_OP(BT_OGF_LE, 0x000b) #define BT_HCI_OP_LE_SET_SCAN_PARAMS BT_OP(BT_OGF_LE, 0x000b)
@ -229,7 +229,7 @@ struct bt_hci_cp_le_set_scan_params {
uint16_t window; uint16_t window;
uint8_t addr_type; uint8_t addr_type;
uint8_t filter_policy; uint8_t filter_policy;
} PACK_STRUCT; } __packed;
#define BT_HCI_OP_LE_SET_SCAN_ENABLE BT_OP(BT_OGF_LE, 0x000c) #define BT_HCI_OP_LE_SET_SCAN_ENABLE BT_OP(BT_OGF_LE, 0x000c)
#define BT_LE_SCAN_DISABLE 0x00 #define BT_LE_SCAN_DISABLE 0x00
@ -240,34 +240,34 @@ struct bt_hci_cp_le_set_scan_params {
struct bt_hci_cp_le_set_scan_enable { struct bt_hci_cp_le_set_scan_enable {
uint8_t enable; uint8_t enable;
uint8_t filter_dup; uint8_t filter_dup;
} PACK_STRUCT; } __packed;
#define BT_HCI_OP_LE_ENCRYPT BT_OP(BT_OGF_LE, 0x0017) #define BT_HCI_OP_LE_ENCRYPT BT_OP(BT_OGF_LE, 0x0017)
struct bt_hci_cp_le_encrypt { struct bt_hci_cp_le_encrypt {
uint8_t key[16]; uint8_t key[16];
uint8_t plaintext[16]; uint8_t plaintext[16];
} PACK_STRUCT; } __packed;
struct bt_hci_rp_le_encrypt { struct bt_hci_rp_le_encrypt {
uint8_t status; uint8_t status;
uint8_t enc_data[16]; uint8_t enc_data[16];
} PACK_STRUCT; } __packed;
#define BT_HCI_OP_LE_RAND BT_OP(BT_OGF_LE, 0x0018) #define BT_HCI_OP_LE_RAND BT_OP(BT_OGF_LE, 0x0018)
struct bt_hci_rp_le_rand { struct bt_hci_rp_le_rand {
uint8_t status; uint8_t status;
uint8_t rand[8]; uint8_t rand[8];
} PACK_STRUCT; } __packed;
#define BT_HCI_OP_LE_LTK_REQ_REPLY BT_OP(BT_OGF_LE, 0x001a) #define BT_HCI_OP_LE_LTK_REQ_REPLY BT_OP(BT_OGF_LE, 0x001a)
struct bt_hci_cp_le_ltk_req_reply { struct bt_hci_cp_le_ltk_req_reply {
uint16_t handle; uint16_t handle;
uint8_t ltk[16]; uint8_t ltk[16];
} PACK_STRUCT; } __packed;
#define BT_HCI_OP_LE_LTK_REQ_NEG_REPLY BT_OP(BT_OGF_LE, 0x001b) #define BT_HCI_OP_LE_LTK_REQ_NEG_REPLY BT_OP(BT_OGF_LE, 0x001b)
struct bt_hci_cp_le_ltk_req_neg_reply { struct bt_hci_cp_le_ltk_req_neg_reply {
uint16_t handle; uint16_t handle;
} PACK_STRUCT; } __packed;
/* Event definitions */ /* Event definitions */
@ -276,44 +276,44 @@ struct bt_hci_evt_disconn_complete {
uint8_t status; uint8_t status;
uint16_t handle; uint16_t handle;
uint8_t reason; uint8_t reason;
} PACK_STRUCT; } __packed;
#define BT_HCI_EVT_ENCRYPT_CHANGE 0x08 #define BT_HCI_EVT_ENCRYPT_CHANGE 0x08
struct bt_hci_evt_encrypt_change { struct bt_hci_evt_encrypt_change {
uint8_t status; uint8_t status;
uint16_t handle; uint16_t handle;
uint8_t encrypt; uint8_t encrypt;
} PACK_STRUCT; } __packed;
#define BT_HCI_EVT_CMD_COMPLETE 0x0e #define BT_HCI_EVT_CMD_COMPLETE 0x0e
struct hci_evt_cmd_complete { struct hci_evt_cmd_complete {
uint8_t ncmd; uint8_t ncmd;
uint16_t opcode; uint16_t opcode;
} PACK_STRUCT; } __packed;
#define BT_HCI_EVT_CMD_STATUS 0x0f #define BT_HCI_EVT_CMD_STATUS 0x0f
struct bt_hci_evt_cmd_status { struct bt_hci_evt_cmd_status {
uint8_t status; uint8_t status;
uint8_t ncmd; uint8_t ncmd;
uint16_t opcode; uint16_t opcode;
} PACK_STRUCT; } __packed;
#define BT_HCI_EVT_NUM_COMPLETED_PACKETS 0x13 #define BT_HCI_EVT_NUM_COMPLETED_PACKETS 0x13
struct bt_hci_evt_num_completed_packets { struct bt_hci_evt_num_completed_packets {
uint8_t num_handles; uint8_t num_handles;
struct bt_hci_handle_count h[0]; struct bt_hci_handle_count h[0];
} PACK_STRUCT; } __packed;
#define BT_HCI_EVT_ENCRYPT_KEY_REFRESH_COMPLETE 0x30 #define BT_HCI_EVT_ENCRYPT_KEY_REFRESH_COMPLETE 0x30
struct bt_hci_evt_encrypt_key_refresh_complete { struct bt_hci_evt_encrypt_key_refresh_complete {
uint8_t status; uint8_t status;
uint16_t handle; uint16_t handle;
} PACK_STRUCT; } __packed;
#define BT_HCI_EVT_LE_META_EVENT 0x3e #define BT_HCI_EVT_LE_META_EVENT 0x3e
struct bt_hci_evt_le_meta_event { struct bt_hci_evt_le_meta_event {
uint8_t subevent; uint8_t subevent;
} PACK_STRUCT; } __packed;
#define BT_HCI_EVT_LE_CONN_COMPLETE 0x01 #define BT_HCI_EVT_LE_CONN_COMPLETE 0x01
struct bt_hci_evt_le_conn_complete { struct bt_hci_evt_le_conn_complete {
@ -325,7 +325,7 @@ struct bt_hci_evt_le_conn_complete {
uint16_t latency; uint16_t latency;
uint16_t supv_timeout; uint16_t supv_timeout;
uint8_t clock_accuracy; uint8_t clock_accuracy;
} PACK_STRUCT; } __packed;
#define BT_HCI_EVT_LE_ADVERTISING_REPORT 0x02 #define BT_HCI_EVT_LE_ADVERTISING_REPORT 0x02
struct bt_hci_ev_le_advertising_info { struct bt_hci_ev_le_advertising_info {
@ -333,13 +333,13 @@ struct bt_hci_ev_le_advertising_info {
bt_addr_le_t addr; bt_addr_le_t addr;
uint8_t length; uint8_t length;
uint8_t data[0]; uint8_t data[0];
} PACK_STRUCT; } __packed;
#define BT_HCI_EVT_LE_LTK_REQUEST 0x05 #define BT_HCI_EVT_LE_LTK_REQUEST 0x05
struct bt_hci_evt_le_ltk_request { struct bt_hci_evt_le_ltk_request {
uint16_t handle; uint16_t handle;
uint64_t rand; uint64_t rand;
uint16_t ediv; uint16_t ediv;
} PACK_STRUCT; } __packed;
#endif /* __BT_HCI_H */ #endif /* __BT_HCI_H */

View file

@ -35,7 +35,7 @@
struct bt_att_hdr { struct bt_att_hdr {
uint8_t code; uint8_t code;
} PACK_STRUCT; } __packed;
/* Error codes for Error response PDU */ /* Error codes for Error response PDU */
#define BT_ATT_ERR_INVALID_HANDLE 0x01 #define BT_ATT_ERR_INVALID_HANDLE 0x01
@ -61,24 +61,24 @@ struct bt_att_error_rsp {
uint8_t request; uint8_t request;
uint16_t handle; uint16_t handle;
uint8_t error; uint8_t error;
} PACK_STRUCT; } __packed;
#define BT_ATT_OP_MTU_REQ 0x02 #define BT_ATT_OP_MTU_REQ 0x02
struct bt_att_exchange_mtu_req { struct bt_att_exchange_mtu_req {
uint16_t mtu; uint16_t mtu;
} PACK_STRUCT; } __packed;
#define BT_ATT_OP_MTU_RSP 0x03 #define BT_ATT_OP_MTU_RSP 0x03
struct bt_att_exchange_mtu_rsp { struct bt_att_exchange_mtu_rsp {
uint16_t mtu; uint16_t mtu;
} PACK_STRUCT; } __packed;
/* Find Information Request */ /* Find Information Request */
#define BT_ATT_OP_FIND_INFO_REQ 0x04 #define BT_ATT_OP_FIND_INFO_REQ 0x04
struct bt_att_find_info_req { struct bt_att_find_info_req {
uint16_t start_handle; uint16_t start_handle;
uint16_t end_handle; uint16_t end_handle;
} PACK_STRUCT; } __packed;
/* Format field values for BT_ATT_OP_FIND_INFO_RSP */ /* Format field values for BT_ATT_OP_FIND_INFO_RSP */
#define BT_ATT_INFO_16 0x01 #define BT_ATT_INFO_16 0x01
@ -87,19 +87,19 @@ struct bt_att_find_info_req {
struct bt_att_info_16 { struct bt_att_info_16 {
uint16_t handle; uint16_t handle;
uint16_t uuid; uint16_t uuid;
} PACK_STRUCT; } __packed;
struct bt_att_info_128 { struct bt_att_info_128 {
uint16_t handle; uint16_t handle;
uint8_t uuid[16]; uint8_t uuid[16];
} PACK_STRUCT; } __packed;
/* Find Information Response */ /* Find Information Response */
#define BT_ATT_OP_FIND_INFO_RSP 0x05 #define BT_ATT_OP_FIND_INFO_RSP 0x05
struct bt_att_find_info_rsp { struct bt_att_find_info_rsp {
uint8_t format; uint8_t format;
uint8_t info[0]; uint8_t info[0];
} PACK_STRUCT; } __packed;
/* Find By Type Value Request */ /* Find By Type Value Request */
#define BT_ATT_OP_FIND_TYPE_REQ 0x06 #define BT_ATT_OP_FIND_TYPE_REQ 0x06
@ -108,18 +108,18 @@ struct bt_att_find_type_req {
uint16_t end_handle; uint16_t end_handle;
uint16_t type; uint16_t type;
uint8_t value[0]; uint8_t value[0];
} PACK_STRUCT; } __packed;
struct bt_att_handle_group { struct bt_att_handle_group {
uint16_t start_handle; uint16_t start_handle;
uint16_t end_handle; uint16_t end_handle;
} PACK_STRUCT; } __packed;
/* Find By Type Value Response */ /* Find By Type Value Response */
#define BT_ATT_OP_FIND_TYPE_RSP 0x07 #define BT_ATT_OP_FIND_TYPE_RSP 0x07
struct bt_att_find_type_rsp { struct bt_att_find_type_rsp {
struct bt_att_handle_group list[0]; struct bt_att_handle_group list[0];
} PACK_STRUCT; } __packed;
/* Read By Type Request */ /* Read By Type Request */
#define BT_ATT_OP_READ_TYPE_REQ 0x08 #define BT_ATT_OP_READ_TYPE_REQ 0x08
@ -127,44 +127,44 @@ struct bt_att_read_type_req {
uint16_t start_handle; uint16_t start_handle;
uint16_t end_handle; uint16_t end_handle;
uint8_t uuid[0]; uint8_t uuid[0];
} PACK_STRUCT; } __packed;
struct bt_att_data { struct bt_att_data {
uint16_t handle; uint16_t handle;
uint8_t value[0]; uint8_t value[0];
} PACK_STRUCT; } __packed;
/* Read By Type Response */ /* Read By Type Response */
#define BT_ATT_OP_READ_TYPE_RSP 0x09 #define BT_ATT_OP_READ_TYPE_RSP 0x09
struct bt_att_read_type_rsp { struct bt_att_read_type_rsp {
uint8_t len; uint8_t len;
struct bt_att_data data[0]; struct bt_att_data data[0];
} PACK_STRUCT; } __packed;
/* Read Request */ /* Read Request */
#define BT_ATT_OP_READ_REQ 0x0a #define BT_ATT_OP_READ_REQ 0x0a
struct bt_att_read_req { struct bt_att_read_req {
uint16_t handle; uint16_t handle;
} PACK_STRUCT; } __packed;
/* Read Response */ /* Read Response */
#define BT_ATT_OP_READ_RSP 0x0b #define BT_ATT_OP_READ_RSP 0x0b
struct bt_att_read_rsp { struct bt_att_read_rsp {
uint8_t value[0]; uint8_t value[0];
} PACK_STRUCT; } __packed;
/* Read Blob Request */ /* Read Blob Request */
#define BT_ATT_OP_READ_BLOB_REQ 0x0c #define BT_ATT_OP_READ_BLOB_REQ 0x0c
struct bt_att_read_blob_req { struct bt_att_read_blob_req {
uint16_t handle; uint16_t handle;
uint16_t offset; uint16_t offset;
} PACK_STRUCT; } __packed;
/* Read Blob Response */ /* Read Blob Response */
#define BT_ATT_OP_READ_BLOB_RSP 0x0d #define BT_ATT_OP_READ_BLOB_RSP 0x0d
struct bt_att_read_blob_rsp { struct bt_att_read_blob_rsp {
uint8_t value[0]; uint8_t value[0];
} PACK_STRUCT; } __packed;
/* Read Multiple Request */ /* Read Multiple Request */
#define BT_ATT_OP_READ_MULT_REQ 0x0e #define BT_ATT_OP_READ_MULT_REQ 0x0e
@ -172,13 +172,13 @@ struct bt_att_read_mult_req {
uint16_t handle1; uint16_t handle1;
uint16_t handle2; uint16_t handle2;
uint16_t handles[0]; uint16_t handles[0];
} PACK_STRUCT; } __packed;
/* Read Multiple Respose */ /* Read Multiple Respose */
#define BT_ATT_OP_READ_MULT_RSP 0x0f #define BT_ATT_OP_READ_MULT_RSP 0x0f
struct bt_att_read_mult_rsp { struct bt_att_read_mult_rsp {
uint8_t value[0]; uint8_t value[0];
} PACK_STRUCT; } __packed;
/* Read by Group Type Request */ /* Read by Group Type Request */
#define BT_ATT_OP_READ_GROUP_REQ 0x10 #define BT_ATT_OP_READ_GROUP_REQ 0x10
@ -186,27 +186,27 @@ struct bt_att_read_group_req {
uint16_t start_handle; uint16_t start_handle;
uint16_t end_handle; uint16_t end_handle;
uint8_t uuid[0]; uint8_t uuid[0];
} PACK_STRUCT; } __packed;
struct bt_att_group_data { struct bt_att_group_data {
uint16_t start_handle; uint16_t start_handle;
uint16_t end_handle; uint16_t end_handle;
uint8_t value[0]; uint8_t value[0];
} PACK_STRUCT; } __packed;
/* Read by Group Type Response */ /* Read by Group Type Response */
#define BT_ATT_OP_READ_GROUP_RSP 0x11 #define BT_ATT_OP_READ_GROUP_RSP 0x11
struct bt_att_read_group_rsp { struct bt_att_read_group_rsp {
uint8_t len; uint8_t len;
struct bt_att_group_data data[0]; struct bt_att_group_data data[0];
} PACK_STRUCT; } __packed;
/* Write Request */ /* Write Request */
#define BT_ATT_OP_WRITE_REQ 0x12 #define BT_ATT_OP_WRITE_REQ 0x12
struct bt_att_write_req { struct bt_att_write_req {
uint16_t handle; uint16_t handle;
uint8_t value[0]; uint8_t value[0];
} PACK_STRUCT; } __packed;
/* Write Response */ /* Write Response */
#define BT_ATT_OP_WRITE_RSP 0x13 #define BT_ATT_OP_WRITE_RSP 0x13
@ -217,7 +217,7 @@ struct bt_att_prepare_write_req {
uint16_t handle; uint16_t handle;
uint16_t offset; uint16_t offset;
uint8_t value[0]; uint8_t value[0];
} PACK_STRUCT; } __packed;
/* Prepare Write Respond */ /* Prepare Write Respond */
#define BT_ATT_OP_PREPARE_WRITE_RSP 0x17 #define BT_ATT_OP_PREPARE_WRITE_RSP 0x17
@ -225,7 +225,7 @@ struct bt_att_prepare_write_rsp {
uint16_t handle; uint16_t handle;
uint16_t offset; uint16_t offset;
uint8_t value[0]; uint8_t value[0];
} PACK_STRUCT; } __packed;
/* Execute Write Request */ /* Execute Write Request */
#define BT_ATT_FLAG_CANCEL 0x00 #define BT_ATT_FLAG_CANCEL 0x00
@ -234,7 +234,7 @@ struct bt_att_prepare_write_rsp {
#define BT_ATT_OP_EXEC_WRITE_REQ 0x18 #define BT_ATT_OP_EXEC_WRITE_REQ 0x18
struct bt_att_exec_write_req { struct bt_att_exec_write_req {
uint8_t flags; uint8_t flags;
} PACK_STRUCT; } __packed;
/* Execute Write Response */ /* Execute Write Response */
#define BT_ATT_OP_EXEC_WRITE_RSP 0x19 #define BT_ATT_OP_EXEC_WRITE_RSP 0x19
@ -244,35 +244,35 @@ struct bt_att_exec_write_req {
struct bt_att_notify { struct bt_att_notify {
uint16_t handle; uint16_t handle;
uint8_t value[0]; uint8_t value[0];
} PACK_STRUCT; } __packed;
/* Handle Value Indication */ /* Handle Value Indication */
#define BT_ATT_OP_INDICATE 0x1d #define BT_ATT_OP_INDICATE 0x1d
struct bt_att_indicate { struct bt_att_indicate {
uint16_t handle; uint16_t handle;
uint8_t value[0]; uint8_t value[0];
} PACK_STRUCT; } __packed;
/* Handle Value Confirm */ /* Handle Value Confirm */
#define BT_ATT_OP_CONFIRM 0x1f #define BT_ATT_OP_CONFIRM 0x1f
struct bt_att_signature { struct bt_att_signature {
uint8_t value[12]; uint8_t value[12];
} PACK_STRUCT; } __packed;
/* Write Command */ /* Write Command */
#define BT_ATT_OP_WRITE_CMD 0x52 #define BT_ATT_OP_WRITE_CMD 0x52
struct bt_att_write_cmd { struct bt_att_write_cmd {
uint16_t handle; uint16_t handle;
uint8_t value[0]; uint8_t value[0];
} PACK_STRUCT; } __packed;
/* Signed Write Command */ /* Signed Write Command */
#define BT_ATT_OP_SIGNED_WRITE_CMD 0xd2 #define BT_ATT_OP_SIGNED_WRITE_CMD 0xd2
struct bt_att_signed_write_cmd { struct bt_att_signed_write_cmd {
uint16_t handle; uint16_t handle;
uint8_t value[0]; uint8_t value[0];
} PACK_STRUCT; } __packed;
void bt_att_init(); void bt_att_init();
struct bt_buf *bt_att_create_pdu(struct bt_conn *conn, uint8_t op, size_t len); struct bt_buf *bt_att_create_pdu(struct bt_conn *conn, uint8_t op, size_t len);

View file

@ -105,7 +105,7 @@ struct gatt_incl {
uint16_t uuid16; uint16_t uuid16;
uint8_t uuid[16]; uint8_t uuid[16];
}; };
} PACK_STRUCT; } __packed;
int bt_gatt_attr_read_include(const bt_addr_le_t *peer, int bt_gatt_attr_read_include(const bt_addr_le_t *peer,
const struct bt_gatt_attr *attr, const struct bt_gatt_attr *attr,
@ -137,7 +137,7 @@ struct gatt_chrc {
uint16_t uuid16; uint16_t uuid16;
uint8_t uuid[16]; uint8_t uuid[16];
}; };
} PACK_STRUCT; } __packed;
int bt_gatt_attr_read_chrc(const bt_addr_le_t *peer, int bt_gatt_attr_read_chrc(const bt_addr_le_t *peer,
const struct bt_gatt_attr *attr, void *buf, const struct bt_gatt_attr *attr, void *buf,

View file

@ -37,13 +37,13 @@
struct bt_l2cap_hdr { struct bt_l2cap_hdr {
uint16_t len; uint16_t len;
uint16_t cid; uint16_t cid;
} PACK_STRUCT; } __packed;
struct bt_l2cap_sig_hdr { struct bt_l2cap_sig_hdr {
uint8_t code; uint8_t code;
uint8_t ident; uint8_t ident;
uint16_t len; uint16_t len;
} PACK_STRUCT; } __packed;
#define BT_L2CAP_REJ_NOT_UNDERSTOOD 0x0000 #define BT_L2CAP_REJ_NOT_UNDERSTOOD 0x0000
#define BT_L2CAP_REJ_MTU_EXCEEDED 0x0001 #define BT_L2CAP_REJ_MTU_EXCEEDED 0x0001
@ -53,7 +53,7 @@ struct bt_l2cap_sig_hdr {
struct bt_l2cap_cmd_reject { struct bt_l2cap_cmd_reject {
uint16_t reason; uint16_t reason;
uint8_t data[0]; uint8_t data[0];
} PACK_STRUCT; } __packed;
#define BT_L2CAP_CONN_PARAM_REQ 0x12 #define BT_L2CAP_CONN_PARAM_REQ 0x12
struct bt_l2cap_conn_param_req { struct bt_l2cap_conn_param_req {
@ -61,12 +61,12 @@ struct bt_l2cap_conn_param_req {
uint16_t max_interval; uint16_t max_interval;
uint16_t latency; uint16_t latency;
uint16_t timeout; uint16_t timeout;
} PACK_STRUCT; } __packed;
#define BT_L2CAP_CONN_PARAM_RSP 0x13 #define BT_L2CAP_CONN_PARAM_RSP 0x13
struct bt_l2cap_conn_param_rsp { struct bt_l2cap_conn_param_rsp {
uint16_t result; uint16_t result;
} PACK_STRUCT; } __packed;
struct bt_l2cap_chan { struct bt_l2cap_chan {
uint16_t cid; uint16_t cid;

View file

@ -35,7 +35,7 @@
struct bt_smp_hdr { struct bt_smp_hdr {
uint8_t code; uint8_t code;
} PACK_STRUCT; } __packed;
#define BT_SMP_ERR_PASSKEY_ENTRY_FAILED 0x01 #define BT_SMP_ERR_PASSKEY_ENTRY_FAILED 0x01
#define BT_SMP_ERR_OOB_NOT_AVAIL 0x02 #define BT_SMP_ERR_OOB_NOT_AVAIL 0x02
@ -88,43 +88,43 @@ struct bt_smp_pairing {
uint8_t max_key_size; uint8_t max_key_size;
uint8_t init_key_dist; uint8_t init_key_dist;
uint8_t resp_key_dist; uint8_t resp_key_dist;
} PACK_STRUCT; } __packed;
#define BT_SMP_CMD_PAIRING_CONFIRM 0x03 #define BT_SMP_CMD_PAIRING_CONFIRM 0x03
struct bt_smp_pairing_confirm { struct bt_smp_pairing_confirm {
uint8_t val[16]; uint8_t val[16];
} PACK_STRUCT; } __packed;
#define BT_SMP_CMD_PAIRING_RANDOM 0x04 #define BT_SMP_CMD_PAIRING_RANDOM 0x04
struct bt_smp_pairing_random { struct bt_smp_pairing_random {
uint8_t val[16]; uint8_t val[16];
} PACK_STRUCT; } __packed;
#define BT_SMP_CMD_PAIRING_FAIL 0x05 #define BT_SMP_CMD_PAIRING_FAIL 0x05
struct bt_smp_pairing_fail { struct bt_smp_pairing_fail {
uint8_t reason; uint8_t reason;
} PACK_STRUCT; } __packed;
#define BT_SMP_CMD_ENCRYPT_INFO 0x06 #define BT_SMP_CMD_ENCRYPT_INFO 0x06
struct bt_smp_encrypt_info { struct bt_smp_encrypt_info {
uint8_t ltk[16]; uint8_t ltk[16];
} PACK_STRUCT; } __packed;
#define BT_SMP_CMD_MASTER_IDENT 0x07 #define BT_SMP_CMD_MASTER_IDENT 0x07
struct bt_smp_master_ident { struct bt_smp_master_ident {
uint16_t ediv; uint16_t ediv;
uint64_t rand; uint64_t rand;
} PACK_STRUCT; } __packed;
#define BT_SMP_CMD_IDENT_INFO 0x08 #define BT_SMP_CMD_IDENT_INFO 0x08
struct bt_smp_ident_info { struct bt_smp_ident_info {
uint8_t irk[16]; uint8_t irk[16];
} PACK_STRUCT; } __packed;
#define BT_SMP_CMD_IDENT_ADDR_INFO 0x09 #define BT_SMP_CMD_IDENT_ADDR_INFO 0x09
struct bt_smp_ident_addr_info { struct bt_smp_ident_addr_info {
bt_addr_le_t addr; bt_addr_le_t addr;
} PACK_STRUCT; } __packed;
bool bt_smp_irk_matches(const uint8_t irk[16], const bt_addr_t *addr); bool bt_smp_irk_matches(const uint8_t irk[16], const bt_addr_t *addr);