switch (type) {
case 0x01:
print_field(" MTU: %d",
- bt_get_le16(data + consumed + 2));
+ get_le16(data + consumed + 2));
break;
case 0x02:
print_field(" Flush timeout: %d",
- bt_get_le16(data + consumed + 2));
+ get_le16(data + consumed + 2));
break;
case 0x03:
switch (data[consumed + 3]) {
print_field(" TX window size: %d", data[consumed + 3]);
print_field(" Max transmit: %d", data[consumed + 4]);
print_field(" Retransmission timeout: %d",
- bt_get_le16(data + consumed + 5));
+ get_le16(data + consumed + 5));
print_field(" Monitor timeout: %d",
- bt_get_le16(data + consumed + 7));
+ get_le16(data + consumed + 7));
print_field(" Maximum PDU size: %d",
- bt_get_le16(data + consumed + 9));
+ get_le16(data + consumed + 9));
break;
case 0x05:
switch (data[consumed + 2]) {
print_field(" Service type: %s (0x%2.2x)",
str, data[consumed + 3]);
print_field(" Maximum SDU size: 0x%4.4x",
- bt_get_le16(data + consumed + 4));
+ get_le16(data + consumed + 4));
print_field(" SDU inter-arrival time: 0x%8.8x",
bt_get_le32(data + consumed + 6));
print_field(" Access latency: 0x%8.8x",
break;
case 0x07:
print_field(" Max window size: %d",
- bt_get_le16(data + consumed + 2));
+ get_le16(data + consumed + 2));
break;
default:
packet_hexdump(data + consumed + 2, len);
packet_hexdump(data, size);
break;
}
- print_field("MTU: %d", bt_get_le16(data));
+ print_field("MTU: %d", get_le16(data));
break;
case 0x0002:
if (size != 4) {
packet_hexdump(data, size);
break;
}
- dcid = bt_get_le16(data);
- scid = bt_get_le16(data + 2);
+ dcid = get_le16(data);
+ scid = get_le16(data + 2);
print_cid("Destination", cpu_to_le16(dcid));
print_cid("Source", cpu_to_le16(scid));
break;
packet_hexdump(data, size);
break;
}
- print_field("MTU: %d", bt_get_le16(data));
+ print_field("MTU: %d", get_le16(data));
break;
case 0x0002:
if (size != 4) {
return;
}
- control = bt_get_le16(data);
- fcs = bt_get_le16(data + size - 2);
+ control = get_le16(data);
+ fcs = get_le16(data + size - 2);
print_indent(6, COLOR_CYAN, "Channel:", "", COLOR_OFF,
" %d dlen %d control 0x%4.4x fcs 0x%4.4x",
opcode = *((const uint8_t *) (data + 2));
ident = *((const uint8_t *) (data + 3));
- len = bt_get_le16(data + 4);
+ len = get_le16(data + 4);
if (len != size - 8) {
print_text(COLOR_ERROR, "invalid manager packet size");
switch (size) {
case 2:
- str = uuid16_to_str(bt_get_le16(data));
- print_field("%s: %s (0x%4.4x)", label, str, bt_get_le16(data));
+ str = uuid16_to_str(get_le16(data));
+ print_field("%s: %s (0x%4.4x)", label, str, get_le16(data));
break;
case 4:
str = uuid32_to_str(bt_get_le32(data));
str = uuid128_to_str(data);
print_field("%s: %s (%8.8x-%4.4x-%4.4x-%4.4x-%8.8x%4.4x)",
label, str,
- bt_get_le32(data + 12), bt_get_le16(data + 10),
- bt_get_le16(data + 8), bt_get_le16(data + 6),
- bt_get_le32(data + 2), bt_get_le16(data + 0));
+ bt_get_le32(data + 12), get_le16(data + 10),
+ get_le16(data + 8), get_le16(data + 6),
+ bt_get_le32(data + 2), get_le16(data + 0));
break;
default:
packet_hexdump(data, size);
static void print_handle_range(const char *label, const void *data)
{
print_field("%s: 0x%4.4x-0x%4.4x", label,
- bt_get_le16(data), bt_get_le16(data + 2));
+ get_le16(data), get_le16(data + 2));
}
static void print_data_list(const char *label, uint8_t length,
print_field("%s: %u entr%s", label, count, count == 1 ? "y" : "ies");
while (size >= length) {
- print_field("Handle: 0x%4.4x", bt_get_le16(data));
+ print_field("Handle: 0x%4.4x", get_le16(data));
print_hex_field("Value", data + 2, length - 2);
data += length;
break;
}
print_field(" Properties: 0x%2.2x", *((uint8_t *) data));
- print_field(" Handle: 0x%2.2x", bt_get_le16(data + 1));
+ print_field(" Handle: 0x%2.2x", get_le16(data + 1));
print_uuid(" UUID", data + 3, len - 3);
break;
default:
static uint16_t print_info_data_16(const uint16_t *data, uint16_t len)
{
while (len >= 4) {
- print_field("Handle: 0x%4.4x", bt_get_le16(data));
+ print_field("Handle: 0x%4.4x", get_le16(data));
print_uuid("UUID", data + 2, 2);
data += 4;
len -= 4;
static uint16_t print_info_data_128(const uint16_t *data, uint16_t len)
{
while (len >= 18) {
- print_field("Handle: 0x%4.4x", bt_get_le16(data));
+ print_field("Handle: 0x%4.4x", get_le16(data));
print_uuid("UUID", data + 2, 16);
data += 18;
len -= 18;
print_handle_range("Handle range", frame->data);
- type = bt_get_le16(frame->data + 4);
+ type = get_le16(frame->data + 4);
print_attribute_info(type, frame->data + 6, frame->size - 6);
}
static void att_read_blob_req(const struct l2cap_frame *frame)
{
- print_field("Handle: 0x%4.4x", bt_get_le16(frame->data));
- print_field("Offset: 0x%4.4x", bt_get_le16(frame->data + 2));
+ print_field("Handle: 0x%4.4x", get_le16(frame->data));
+ print_field("Offset: 0x%4.4x", get_le16(frame->data + 2));
}
static void att_read_blob_rsp(const struct l2cap_frame *frame)
for (i = 0; i < count; i++)
print_field("Handle: 0x%4.4x",
- bt_get_le16(frame->data + (i * 2)));
+ get_le16(frame->data + (i * 2)));
}
static void att_read_group_type_req(const struct l2cap_frame *frame)
static void att_write_req(const struct l2cap_frame *frame)
{
- print_field("Handle: 0x%4.4x", bt_get_le16(frame->data));
+ print_field("Handle: 0x%4.4x", get_le16(frame->data));
print_hex_field(" Data", frame->data + 2, frame->size - 2);
}
static void att_prepare_write_req(const struct l2cap_frame *frame)
{
- print_field("Handle: 0x%4.4x", bt_get_le16(frame->data));
- print_field("Offset: 0x%4.4x", bt_get_le16(frame->data + 2));
+ print_field("Handle: 0x%4.4x", get_le16(frame->data));
+ print_field("Offset: 0x%4.4x", get_le16(frame->data + 2));
print_hex_field(" Data", frame->data + 4, frame->size - 4);
}
static void att_prepare_write_rsp(const struct l2cap_frame *frame)
{
- print_field("Handle: 0x%4.4x", bt_get_le16(frame->data));
- print_field("Offset: 0x%4.4x", bt_get_le16(frame->data + 2));
+ print_field("Handle: 0x%4.4x", get_le16(frame->data));
+ print_field("Offset: 0x%4.4x", get_le16(frame->data + 2));
print_hex_field(" Data", frame->data + 4, frame->size - 4);
}
static void att_write_command(const struct l2cap_frame *frame)
{
- print_field("Handle: 0x%4.4x", bt_get_le16(frame->data));
+ print_field("Handle: 0x%4.4x", get_le16(frame->data));
print_hex_field(" Data", frame->data + 2, frame->size - 2);
}
print_field("%s flow spec: 0x%2.2x", label, data[0]);
print_field(" Service type: %s (0x%2.2x)", str, data[1]);
- print_field(" Maximum SDU size: 0x%4.4x", bt_get_le16(data + 2));
+ print_field(" Maximum SDU size: 0x%4.4x", get_le16(data + 2));
print_field(" SDU inter-arrival time: 0x%8.8x", bt_get_le32(data + 4));
print_field(" Access latency: 0x%8.8x", bt_get_le32(data + 8));
print_field(" Flush timeout: 0x%8.8x", bt_get_le32(data + 12));
uuid = data + 2;
print_field(" iBeacon: %8.8x-%4.4x-%4.4x-%4.4x-%8.8x%4.4x",
- bt_get_le32(&uuid[12]), bt_get_le16(&uuid[10]),
- bt_get_le16(&uuid[8]), bt_get_le16(&uuid[6]),
- bt_get_le32(&uuid[2]), bt_get_le16(&uuid[0]));
+ bt_get_le32(&uuid[12]), get_le16(&uuid[10]),
+ get_le16(&uuid[8]), get_le16(&uuid[6]),
+ bt_get_le32(&uuid[2]), get_le16(&uuid[0]));
- major = bt_get_le16(data + 18);
- minor = bt_get_le16(data + 20);
+ major = get_le16(data + 18);
+ minor = get_le16(data + 20);
print_field(" Version: %u.%u", major, minor);
tx_power = *(int8_t *) (data + 22);
static void print_manufacturer_data(const void *data, uint8_t data_len)
{
- uint16_t company = bt_get_le16(data);
+ uint16_t company = get_le16(data);
packet_print_company("Company", company);
if (data_len < 8)
return;
- source = bt_get_le16(data);
- vendor = bt_get_le16(data + 2);
- product = bt_get_le16(data + 4);
- version = bt_get_le16(data + 6);
+ source = get_le16(data);
+ vendor = get_le16(data + 2);
+ product = get_le16(data + 4);
+ version = get_le16(data + 6);
switch (source) {
case 0x0001:
print_field("%s: %u entr%s", label, count, count == 1 ? "y" : "ies");
for (i = 0; i < count; i++) {
- uint16_t uuid = bt_get_le16(data + (i * 2));
+ uint16_t uuid = get_le16(data + (i * 2));
print_field(" %s (0x%4.4x)", uuid16_to_str(uuid), uuid);
}
}
const uint8_t *uuid = data + (i * 16);
print_field(" %8.8x-%4.4x-%4.4x-%4.4x-%8.8x%4.4x",
- bt_get_le32(&uuid[12]), bt_get_le16(&uuid[10]),
- bt_get_le16(&uuid[8]), bt_get_le16(&uuid[6]),
- bt_get_le32(&uuid[2]), bt_get_le16(&uuid[0]));
+ bt_get_le32(&uuid[12]), get_le16(&uuid[10]),
+ get_le16(&uuid[8]), get_le16(&uuid[6]),
+ bt_get_le32(&uuid[2]), get_le16(&uuid[0]));
}
}
if (data_len < 4)
break;
print_field("Slave Conn. Interval: 0x%4.4x - 0x%4.4x",
- bt_get_le16(&data[0]),
- bt_get_le16(&data[2]));
+ get_le16(&data[0]),
+ get_le16(&data[2]));
break;
case BT_EIR_SERVICE_UUID16:
if (data_len < 2)
break;
sprintf(label, "Service Data (UUID 0x%4.4x)",
- bt_get_le16(&data[0]));
+ get_le16(&data[0]));
print_hex_field(label, &data[2], data_len - 2);
break;
case BT_EIR_GAP_APPEARANCE:
if (data_len < 2)
break;
- print_appearance(bt_get_le16(data));
+ print_appearance(get_le16(data));
break;
case BT_EIR_SSP_HASH_P256:
service.type = SDP_UUID16;
for (i = 0; i < len / 2; i++, uuid16++) {
- service.value.uuid16 = bt_get_le16(uuid16);
+ service.value.uuid16 = get_le16(uuid16);
uuid_str = bt_uuid2string(&service);
if (!uuid_str)
case EIR_GAP_APPEARANCE:
if (data_len < 2)
break;
- eir->appearance = bt_get_le16(data);
+ eir->appearance = get_le16(data);
break;
case EIR_SSP_HASH:
if (eir_len < EIR_OOB_MIN)
return -1;
- if (eir_len != bt_get_le16(eir_data))
+ if (eir_len != get_le16(eir_data))
return -1;
eir_data += sizeof(uint16_t);
return;
}
- eir_len = bt_get_le16(&ev->eir_len);
+ eir_len = get_le16(&ev->eir_len);
if (len != sizeof(*ev) + eir_len) {
fprintf(stderr, "Invalid connected event length "
"(%u bytes, eir_len %u bytes)\n", len, eir_len);
flags = btohl(ev->flags);
- eir_len = bt_get_le16(&ev->eir_len);
+ eir_len = get_le16(&ev->eir_len);
if (len != sizeof(*ev) + eir_len) {
fprintf(stderr, "dev_found: expected %zu bytes, got %u bytes\n",
sizeof(*ev) + eir_len, len);
}
printf("MGMT Version %u, revision %u\n", rp->version,
- bt_get_le16(&rp->revision));
+ get_le16(&rp->revision));
done:
mainloop_quit();
goto done;
}
- num_commands = bt_get_le16(&rp->num_commands);
- num_events = bt_get_le16(&rp->num_events);
+ num_commands = get_le16(&rp->num_commands);
+ num_events = get_le16(&rp->num_events);
expected_len = sizeof(*rp) + num_commands * sizeof(uint16_t) +
num_events * sizeof(uint16_t);
printf("%u commands:\n", num_commands);
for (i = 0; i < num_commands; i++) {
- uint16_t op = bt_get_le16(opcode++);
+ uint16_t op = get_le16(opcode++);
printf("\t%s (0x%04x)\n", mgmt_opstr(op), op);
}
printf("%u events:\n", num_events);
for (i = 0; i < num_events; i++) {
- uint16_t ev = bt_get_le16(opcode++);
+ uint16_t ev = get_le16(opcode++);
printf("\t%s (0x%04x)\n", mgmt_evstr(ev), ev);
}
ba2str(&rp->bdaddr, addr);
printf("hci%u:\taddr %s version %u manufacturer %u"
" class 0x%02x%02x%02x\n", index,
- addr, rp->version, bt_get_le16(&rp->manufacturer),
+ addr, rp->version, get_le16(&rp->manufacturer),
rp->dev_class[2], rp->dev_class[1], rp->dev_class[0]);
printf("\tsupported settings: ");
goto done;
}
- count = bt_get_le16(&rp->num_controllers);
+ count = get_le16(&rp->num_controllers);
if (len < sizeof(*rp) + count * sizeof(uint16_t)) {
fprintf(stderr,
uint16_t index;
void *data;
- index = bt_get_le16(&rp->index[i]);
+ index = get_le16(&rp->index[i]);
if (monitor)
printf("hci%u ", index);
goto done;
}
- count = bt_get_le16(&rp->conn_count);
+ count = get_le16(&rp->conn_count);
if (len != sizeof(*rp) + count * sizeof(struct mgmt_addr_info)) {
fprintf(stderr, "Invalid get_connections length "
" (count=%u, len=%u)\n", count, len);
#include <bluetooth/hci_lib.h>
#include "src/textfile.h"
+#include "src/shared/util.h"
#include "tools/csr.h"
static struct hci_dev_info di;
printf("\t%s service classes:",
type == 0x02 ? "Shortened" : "Complete");
for (i = 0; i < (len - 1) / 2; i++) {
- uint16_t val = bt_get_le16((ptr + (i * 2)));
+ uint16_t val = get_le16((ptr + (i * 2)));
printf(" 0x%4.4x", val);
}
printf("\n");
seq++;
/* Check length */
- l = bt_get_le16(buf + 4);
+ l = get_le16(buf + 4);
if (len != l) {
syslog(LOG_INFO, "size missmatch: %d -> %d", len, l);
continue;
#include "lib/hci.h"
#include "lib/hci_lib.h"
#include "lib/amp.h"
+#include "src/shared/util.h"
static uint16_t manufacturer = DEFAULT_COMPID;
type == 0x02 ? "Shortened" : "Complete");
for (i = 0; i < len / 2; i++)
- printf(" 0x%4.4x", bt_get_le16(data + i * 2));
+ printf(" 0x%4.4x", get_le16(data + i * 2));
printf("\n");
break;
#include "lib/hci.h"
#include "lib/a2mp.h"
#include "lib/amp.h"
+#include "src/shared/util.h"
typedef struct {
uint16_t handle;
case 1:
return *ptr;
case 2:
- return bt_get_le16(ptr);
+ return get_le16(ptr);
case 4:
return bt_get_le32(ptr);
}
uint16_t rto, mto, mps;
txwin = *((uint8_t *) (ptr + 1));
maxtrans = *((uint8_t *) (ptr + 2));
- rto = bt_get_le16(ptr + 3);
- mto = bt_get_le16(ptr + 5);
- mps = bt_get_le16(ptr + 7);
+ rto = get_le16(ptr + 3);
+ mto = get_le16(ptr + 5);
+ mps = get_le16(ptr + 7);
printf(", TxWin %d, MaxTx %d, RTo %d, MTo %d, MPS %d",
txwin, maxtrans, rto, mto, mps);
}
printf(" %s", sar2str(sar));
if (sar == L2CAP_SAR_START) {
uint16_t len;
- len = bt_get_le16(frm->ptr);
+ len = get_le16(frm->ptr);
frm->ptr += L2CAP_SDULEN_SIZE;
frm->len -= L2CAP_SDULEN_SIZE;
printf(" (len %d)", len);
printf(" %s", sar2str(sar));
if (sar == L2CAP_SAR_START) {
uint16_t len;
- len = bt_get_le16(frm->ptr);
+ len = get_le16(frm->ptr);
frm->ptr += L2CAP_SDULEN_SIZE;
frm->len -= L2CAP_SDULEN_SIZE;
printf(" (len %d)", len);
do {
len -= 2;
- mask = bt_get_le16(octet);
+ mask = get_le16(octet);
printf(" 0x%4.4x", mask);
extension = octet[1] & 0x80;
do {
len -= 2;
- mask = bt_get_le16(octet);
+ mask = get_le16(octet);
printf(" 0x%4.4x", mask);
extension = octet[1] & 0x80;
if (p_filter(FILT_L2CAP))
return;
- psm = bt_get_le16(frm->ptr);
+ psm = get_le16(frm->ptr);
frm->ptr += 2;
frm->len -= 2;
frm->ptr += 2;
frm->len -= 4;
}
- fcs = bt_get_le16(frm->ptr + frm->len);
+ fcs = get_le16(frm->ptr + frm->len);
}
if (!p_filter(FILT_L2CAP)) {