Revision c227f099 hw/bt.h
b/hw/bt.h | ||
---|---|---|
26 | 26 |
/* BD Address */ |
27 | 27 |
typedef struct { |
28 | 28 |
uint8_t b[6]; |
29 |
} __attribute__((packed)) a_bdaddr;
|
|
29 |
} __attribute__((packed)) bdaddr_t;
|
|
30 | 30 |
|
31 |
#define BDADDR_ANY (&(a_bdaddr) {{0, 0, 0, 0, 0, 0}})
|
|
32 |
#define BDADDR_ALL (&(a_bdaddr) {{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}})
|
|
33 |
#define BDADDR_LOCAL (&(a_bdaddr) {{0, 0, 0, 0xff, 0xff, 0xff}})
|
|
31 |
#define BDADDR_ANY (&(bdaddr_t) {{0, 0, 0, 0, 0, 0}})
|
|
32 |
#define BDADDR_ALL (&(bdaddr_t) {{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}})
|
|
33 |
#define BDADDR_LOCAL (&(bdaddr_t) {{0, 0, 0, 0xff, 0xff, 0xff}})
|
|
34 | 34 |
|
35 | 35 |
/* Copy, swap, convert BD Address */ |
36 |
static inline int bacmp(const a_bdaddr *ba1, const a_bdaddr *ba2)
|
|
36 |
static inline int bacmp(const bdaddr_t *ba1, const bdaddr_t *ba2)
|
|
37 | 37 |
{ |
38 |
return memcmp(ba1, ba2, sizeof(a_bdaddr));
|
|
38 |
return memcmp(ba1, ba2, sizeof(bdaddr_t));
|
|
39 | 39 |
} |
40 |
static inline void bacpy(a_bdaddr *dst, const a_bdaddr *src)
|
|
40 |
static inline void bacpy(bdaddr_t *dst, const bdaddr_t *src)
|
|
41 | 41 |
{ |
42 |
memcpy(dst, src, sizeof(a_bdaddr));
|
|
42 |
memcpy(dst, src, sizeof(bdaddr_t));
|
|
43 | 43 |
} |
44 | 44 |
|
45 | 45 |
#define BAINIT(orig) { .b = { \ |
... | ... | |
71 | 71 |
|
72 | 72 |
struct bt_device_s { |
73 | 73 |
int lt_addr; |
74 |
a_bdaddr bd_addr;
|
|
74 |
bdaddr_t bd_addr;
|
|
75 | 75 |
int mtu; |
76 | 76 |
int setup; |
77 | 77 |
struct bt_scatternet_s *net; |
... | ... | |
451 | 451 |
|
452 | 452 |
typedef struct { |
453 | 453 |
uint8_t status; |
454 |
a_bdaddr bdaddr;
|
|
454 |
bdaddr_t bdaddr;
|
|
455 | 455 |
} __attribute__ ((packed)) status_bdaddr_rp; |
456 | 456 |
#define STATUS_BDADDR_RP_SIZE 7 |
457 | 457 |
|
... | ... | |
471 | 471 |
|
472 | 472 |
#define OCF_CREATE_CONN 0x0005 |
473 | 473 |
typedef struct { |
474 |
a_bdaddr bdaddr;
|
|
474 |
bdaddr_t bdaddr;
|
|
475 | 475 |
uint16_t pkt_type; |
476 | 476 |
uint8_t pscan_rep_mode; |
477 | 477 |
uint8_t pscan_mode; |
... | ... | |
497 | 497 |
#define OCF_CREATE_CONN_CANCEL 0x0008 |
498 | 498 |
typedef struct { |
499 | 499 |
uint8_t status; |
500 |
a_bdaddr bdaddr;
|
|
500 |
bdaddr_t bdaddr;
|
|
501 | 501 |
} __attribute__ ((packed)) create_conn_cancel_cp; |
502 | 502 |
#define CREATE_CONN_CANCEL_CP_SIZE 6 |
503 | 503 |
|
504 | 504 |
typedef struct { |
505 | 505 |
uint8_t status; |
506 |
a_bdaddr bdaddr;
|
|
506 |
bdaddr_t bdaddr;
|
|
507 | 507 |
} __attribute__ ((packed)) create_conn_cancel_rp; |
508 | 508 |
#define CREATE_CONN_CANCEL_RP_SIZE 7 |
509 | 509 |
|
510 | 510 |
#define OCF_ACCEPT_CONN_REQ 0x0009 |
511 | 511 |
typedef struct { |
512 |
a_bdaddr bdaddr;
|
|
512 |
bdaddr_t bdaddr;
|
|
513 | 513 |
uint8_t role; |
514 | 514 |
} __attribute__ ((packed)) accept_conn_req_cp; |
515 | 515 |
#define ACCEPT_CONN_REQ_CP_SIZE 7 |
516 | 516 |
|
517 | 517 |
#define OCF_REJECT_CONN_REQ 0x000A |
518 | 518 |
typedef struct { |
519 |
a_bdaddr bdaddr;
|
|
519 |
bdaddr_t bdaddr;
|
|
520 | 520 |
uint8_t reason; |
521 | 521 |
} __attribute__ ((packed)) reject_conn_req_cp; |
522 | 522 |
#define REJECT_CONN_REQ_CP_SIZE 7 |
523 | 523 |
|
524 | 524 |
#define OCF_LINK_KEY_REPLY 0x000B |
525 | 525 |
typedef struct { |
526 |
a_bdaddr bdaddr;
|
|
526 |
bdaddr_t bdaddr;
|
|
527 | 527 |
uint8_t link_key[16]; |
528 | 528 |
} __attribute__ ((packed)) link_key_reply_cp; |
529 | 529 |
#define LINK_KEY_REPLY_CP_SIZE 22 |
... | ... | |
532 | 532 |
|
533 | 533 |
#define OCF_PIN_CODE_REPLY 0x000D |
534 | 534 |
typedef struct { |
535 |
a_bdaddr bdaddr;
|
|
535 |
bdaddr_t bdaddr;
|
|
536 | 536 |
uint8_t pin_len; |
537 | 537 |
uint8_t pin_code[16]; |
538 | 538 |
} __attribute__ ((packed)) pin_code_reply_cp; |
... | ... | |
574 | 574 |
|
575 | 575 |
#define OCF_REMOTE_NAME_REQ 0x0019 |
576 | 576 |
typedef struct { |
577 |
a_bdaddr bdaddr;
|
|
577 |
bdaddr_t bdaddr;
|
|
578 | 578 |
uint8_t pscan_rep_mode; |
579 | 579 |
uint8_t pscan_mode; |
580 | 580 |
uint16_t clock_offset; |
... | ... | |
583 | 583 |
|
584 | 584 |
#define OCF_REMOTE_NAME_REQ_CANCEL 0x001A |
585 | 585 |
typedef struct { |
586 |
a_bdaddr bdaddr;
|
|
586 |
bdaddr_t bdaddr;
|
|
587 | 587 |
} __attribute__ ((packed)) remote_name_req_cancel_cp; |
588 | 588 |
#define REMOTE_NAME_REQ_CANCEL_CP_SIZE 6 |
589 | 589 |
|
590 | 590 |
typedef struct { |
591 | 591 |
uint8_t status; |
592 |
a_bdaddr bdaddr;
|
|
592 |
bdaddr_t bdaddr;
|
|
593 | 593 |
} __attribute__ ((packed)) remote_name_req_cancel_rp; |
594 | 594 |
#define REMOTE_NAME_REQ_CANCEL_RP_SIZE 7 |
595 | 595 |
|
... | ... | |
646 | 646 |
|
647 | 647 |
#define OCF_ACCEPT_SYNC_CONN_REQ 0x0029 |
648 | 648 |
typedef struct { |
649 |
a_bdaddr bdaddr;
|
|
649 |
bdaddr_t bdaddr;
|
|
650 | 650 |
uint32_t tx_bandwith; |
651 | 651 |
uint32_t rx_bandwith; |
652 | 652 |
uint16_t max_latency; |
... | ... | |
658 | 658 |
|
659 | 659 |
#define OCF_REJECT_SYNC_CONN_REQ 0x002A |
660 | 660 |
typedef struct { |
661 |
a_bdaddr bdaddr;
|
|
661 |
bdaddr_t bdaddr;
|
|
662 | 662 |
uint8_t reason; |
663 | 663 |
} __attribute__ ((packed)) reject_sync_conn_req_cp; |
664 | 664 |
#define REJECT_SYNC_CONN_REQ_CP_SIZE 7 |
... | ... | |
734 | 734 |
|
735 | 735 |
#define OCF_SWITCH_ROLE 0x000B |
736 | 736 |
typedef struct { |
737 |
a_bdaddr bdaddr;
|
|
737 |
bdaddr_t bdaddr;
|
|
738 | 738 |
uint8_t role; |
739 | 739 |
} __attribute__ ((packed)) switch_role_cp; |
740 | 740 |
#define SWITCH_ROLE_CP_SIZE 7 |
... | ... | |
847 | 847 |
|
848 | 848 |
#define OCF_READ_STORED_LINK_KEY 0x000D |
849 | 849 |
typedef struct { |
850 |
a_bdaddr bdaddr;
|
|
850 |
bdaddr_t bdaddr;
|
|
851 | 851 |
uint8_t read_all; |
852 | 852 |
} __attribute__ ((packed)) read_stored_link_key_cp; |
853 | 853 |
#define READ_STORED_LINK_KEY_CP_SIZE 7 |
... | ... | |
872 | 872 |
|
873 | 873 |
#define OCF_DELETE_STORED_LINK_KEY 0x0012 |
874 | 874 |
typedef struct { |
875 |
a_bdaddr bdaddr;
|
|
875 |
bdaddr_t bdaddr;
|
|
876 | 876 |
uint8_t delete_all; |
877 | 877 |
} __attribute__ ((packed)) delete_stored_link_key_cp; |
878 | 878 |
#define DELETE_STORED_LINK_KEY_CP_SIZE 7 |
... | ... | |
1238 | 1238 |
#define OCF_READ_BD_ADDR 0x0009 |
1239 | 1239 |
typedef struct { |
1240 | 1240 |
uint8_t status; |
1241 |
a_bdaddr bdaddr;
|
|
1241 |
bdaddr_t bdaddr;
|
|
1242 | 1242 |
} __attribute__ ((packed)) read_bd_addr_rp; |
1243 | 1243 |
#define READ_BD_ADDR_RP_SIZE 7 |
1244 | 1244 |
|
... | ... | |
1317 | 1317 |
#define EVT_INQUIRY_RESULT 0x02 |
1318 | 1318 |
typedef struct { |
1319 | 1319 |
uint8_t num_responses; |
1320 |
a_bdaddr bdaddr;
|
|
1320 |
bdaddr_t bdaddr;
|
|
1321 | 1321 |
uint8_t pscan_rep_mode; |
1322 | 1322 |
uint8_t pscan_period_mode; |
1323 | 1323 |
uint8_t pscan_mode; |
... | ... | |
1330 | 1330 |
typedef struct { |
1331 | 1331 |
uint8_t status; |
1332 | 1332 |
uint16_t handle; |
1333 |
a_bdaddr bdaddr;
|
|
1333 |
bdaddr_t bdaddr;
|
|
1334 | 1334 |
uint8_t link_type; |
1335 | 1335 |
uint8_t encr_mode; |
1336 | 1336 |
} __attribute__ ((packed)) evt_conn_complete; |
... | ... | |
1338 | 1338 |
|
1339 | 1339 |
#define EVT_CONN_REQUEST 0x04 |
1340 | 1340 |
typedef struct { |
1341 |
a_bdaddr bdaddr;
|
|
1341 |
bdaddr_t bdaddr;
|
|
1342 | 1342 |
uint8_t dev_class[3]; |
1343 | 1343 |
uint8_t link_type; |
1344 | 1344 |
} __attribute__ ((packed)) evt_conn_request; |
... | ... | |
1362 | 1362 |
#define EVT_REMOTE_NAME_REQ_COMPLETE 0x07 |
1363 | 1363 |
typedef struct { |
1364 | 1364 |
uint8_t status; |
1365 |
a_bdaddr bdaddr;
|
|
1365 |
bdaddr_t bdaddr;
|
|
1366 | 1366 |
char name[248]; |
1367 | 1367 |
} __attribute__ ((packed)) evt_remote_name_req_complete; |
1368 | 1368 |
#define EVT_REMOTE_NAME_REQ_COMPLETE_SIZE 255 |
... | ... | |
1447 | 1447 |
#define EVT_ROLE_CHANGE 0x12 |
1448 | 1448 |
typedef struct { |
1449 | 1449 |
uint8_t status; |
1450 |
a_bdaddr bdaddr;
|
|
1450 |
bdaddr_t bdaddr;
|
|
1451 | 1451 |
uint8_t role; |
1452 | 1452 |
} __attribute__ ((packed)) evt_role_change; |
1453 | 1453 |
#define EVT_ROLE_CHANGE_SIZE 8 |
... | ... | |
1480 | 1480 |
|
1481 | 1481 |
#define EVT_PIN_CODE_REQ 0x16 |
1482 | 1482 |
typedef struct { |
1483 |
a_bdaddr bdaddr;
|
|
1483 |
bdaddr_t bdaddr;
|
|
1484 | 1484 |
} __attribute__ ((packed)) evt_pin_code_req; |
1485 | 1485 |
#define EVT_PIN_CODE_REQ_SIZE 6 |
1486 | 1486 |
|
1487 | 1487 |
#define EVT_LINK_KEY_REQ 0x17 |
1488 | 1488 |
typedef struct { |
1489 |
a_bdaddr bdaddr;
|
|
1489 |
bdaddr_t bdaddr;
|
|
1490 | 1490 |
} __attribute__ ((packed)) evt_link_key_req; |
1491 | 1491 |
#define EVT_LINK_KEY_REQ_SIZE 6 |
1492 | 1492 |
|
1493 | 1493 |
#define EVT_LINK_KEY_NOTIFY 0x18 |
1494 | 1494 |
typedef struct { |
1495 |
a_bdaddr bdaddr;
|
|
1495 |
bdaddr_t bdaddr;
|
|
1496 | 1496 |
uint8_t link_key[16]; |
1497 | 1497 |
uint8_t key_type; |
1498 | 1498 |
} __attribute__ ((packed)) evt_link_key_notify; |
... | ... | |
1537 | 1537 |
|
1538 | 1538 |
#define EVT_PSCAN_REP_MODE_CHANGE 0x20 |
1539 | 1539 |
typedef struct { |
1540 |
a_bdaddr bdaddr;
|
|
1540 |
bdaddr_t bdaddr;
|
|
1541 | 1541 |
uint8_t pscan_rep_mode; |
1542 | 1542 |
} __attribute__ ((packed)) evt_pscan_rep_mode_change; |
1543 | 1543 |
#define EVT_PSCAN_REP_MODE_CHANGE_SIZE 7 |
... | ... | |
1555 | 1555 |
#define EVT_INQUIRY_RESULT_WITH_RSSI 0x22 |
1556 | 1556 |
typedef struct { |
1557 | 1557 |
uint8_t num_responses; |
1558 |
a_bdaddr bdaddr;
|
|
1558 |
bdaddr_t bdaddr;
|
|
1559 | 1559 |
uint8_t pscan_rep_mode; |
1560 | 1560 |
uint8_t pscan_period_mode; |
1561 | 1561 |
uint8_t dev_class[3]; |
... | ... | |
1565 | 1565 |
#define INQUIRY_INFO_WITH_RSSI_SIZE 15 |
1566 | 1566 |
typedef struct { |
1567 | 1567 |
uint8_t num_responses; |
1568 |
a_bdaddr bdaddr;
|
|
1568 |
bdaddr_t bdaddr;
|
|
1569 | 1569 |
uint8_t pscan_rep_mode; |
1570 | 1570 |
uint8_t pscan_period_mode; |
1571 | 1571 |
uint8_t pscan_mode; |
... | ... | |
1589 | 1589 |
typedef struct { |
1590 | 1590 |
uint8_t status; |
1591 | 1591 |
uint16_t handle; |
1592 |
a_bdaddr bdaddr;
|
|
1592 |
bdaddr_t bdaddr;
|
|
1593 | 1593 |
uint8_t link_type; |
1594 | 1594 |
uint8_t trans_interval; |
1595 | 1595 |
uint8_t retrans_window; |
... | ... | |
1623 | 1623 |
|
1624 | 1624 |
#define EVT_EXTENDED_INQUIRY_RESULT 0x2F |
1625 | 1625 |
typedef struct { |
1626 |
a_bdaddr bdaddr;
|
|
1626 |
bdaddr_t bdaddr;
|
|
1627 | 1627 |
uint8_t pscan_rep_mode; |
1628 | 1628 |
uint8_t pscan_period_mode; |
1629 | 1629 |
uint8_t dev_class[3]; |
Also available in: Unified diff