Diff between 0a8202cc7b710d20b1a8706715e3a6cc8a88d375 and 67f1aa11161b9e00ef4d3e26e97e112093e19bfe

Changed Files

File Additions Deletions Status
monitor/control.c +10 -9 modified
monitor/l2cap.c +78 -72 modified
monitor/ll.c +16 -15 modified
monitor/lmp.c +6 -5 modified
monitor/packet.c +132 -108 modified

Full Patch

diff --git a/monitor/control.c b/monitor/control.c
index 756e97e..3ca56c7 100644
--- a/monitor/control.c
+++ b/monitor/control.c
@@ -40,6 +40,7 @@
 #include "lib/hci.h"
 #include "lib/mgmt.h"
 
+#include "src/shared/util.h"
 #include "mainloop.h"
 #include "display.h"
 #include "packet.h"
@@ -224,7 +225,7 @@ static void mgmt_device_connected(uint16_t len, const void *buf)
 		return;
 	}
 
-	flags = btohl(ev->flags);
+	flags = le32_to_cpu(ev->flags);
 	ba2str(&ev->addr.bdaddr, str);
 
 	printf("@ Device Connected: %s (%d) flags 0x%4.4x\n",
@@ -382,7 +383,7 @@ static void mgmt_device_found(uint16_t len, const void *buf)
 		return;
 	}
 
-	flags = btohl(ev->flags);
+	flags = le32_to_cpu(ev->flags);
 	ba2str(&ev->addr.bdaddr, str);
 
 	printf("@ Device Found: %s (%d) rssi %d flags 0x%4.4x\n",
@@ -484,7 +485,7 @@ static void mgmt_passkey_notify(uint16_t len, const void *buf)
 
 	ba2str(&ev->addr.bdaddr, str);
 
-	passkey = btohl(ev->passkey);
+	passkey = le32_to_cpu(ev->passkey);
 
 	printf("@ Passkey Notify: %s (%d) passkey %06u entered %u\n",
 				str, ev->addr.type, passkey, ev->entered);
@@ -617,9 +618,9 @@ static void data_callback(int fd, uint32_t events, void *user_data)
 			}
 		}
 
-		opcode = btohs(hdr.opcode);
-		index  = btohs(hdr.index);
-		pktlen = btohs(hdr.len);
+		opcode = le16_to_cpu(hdr.opcode);
+		index  = le16_to_cpu(hdr.index);
+		pktlen = le16_to_cpu(hdr.len);
 
 		switch (data->channel) {
 		case HCI_CHANNEL_CONTROL:
@@ -713,11 +714,11 @@ static void client_callback(int fd, uint32_t events, void *user_data)
 
 	if (data->offset > MGMT_HDR_SIZE) {
 		struct mgmt_hdr *hdr = (struct mgmt_hdr *) data->buf;
-		uint16_t pktlen = btohs(hdr->len);
+		uint16_t pktlen = le16_to_cpu(hdr->len);
 
 		if (data->offset > pktlen + MGMT_HDR_SIZE) {
-			uint16_t opcode = btohs(hdr->opcode);
-			uint16_t index = btohs(hdr->index);
+			uint16_t opcode = le16_to_cpu(hdr->opcode);
+			uint16_t index = le16_to_cpu(hdr->index);
 
 			packet_monitor(NULL, index, opcode,
 					data->buf + MGMT_HDR_SIZE, pktlen);
diff --git a/monitor/l2cap.c b/monitor/l2cap.c
index c215882..60696bc 100644
--- a/monitor/l2cap.c
+++ b/monitor/l2cap.c
@@ -28,10 +28,12 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <inttypes.h>
 
 #include <bluetooth/bluetooth.h>
 
+#include "src/shared/util.h"
 #include "bt.h"
 #include "packet.h"
 #include "display.h"
@@ -271,19 +273,19 @@ static void clear_fragment_buffer(uint16_t index)
 
 static void print_psm(uint16_t psm)
 {
-	print_field("PSM: %d (0x%4.4x)", btohs(psm), btohs(psm));
+	print_field("PSM: %d (0x%4.4x)", le16_to_cpu(psm), le16_to_cpu(psm));
 }
 
 static void print_cid(const char *type, uint16_t cid)
 {
-	print_field("%s CID: %d", type, btohs(cid));
+	print_field("%s CID: %d", type, le16_to_cpu(cid));
 }
 
 static void print_reject_reason(uint16_t reason)
 {
 	const char *str;
 
-	switch (btohs(reason)) {
+	switch (le16_to_cpu(reason)) {
 	case 0x0000:
 		str = "Command not understood";
 		break;
@@ -298,14 +300,14 @@ static void print_reject_reason(uint16_t reason)
 		break;
 	}
 
-	print_field("Reason: %s (0x%4.4x)", str, btohs(reason));
+	print_field("Reason: %s (0x%4.4x)", str, le16_to_cpu(reason));
 }
 
 static void print_conn_result(uint16_t result)
 {
 	const char *str;
 
-	switch (btohs(result)) {
+	switch (le16_to_cpu(result)) {
 	case 0x0000:
 		str = "Connection successful";
 		break;
@@ -332,14 +334,14 @@ static void print_conn_result(uint16_t result)
 		break;
 	}
 
-	print_field("Result: %s (0x%4.4x)", str, btohs(result));
+	print_field("Result: %s (0x%4.4x)", str, le16_to_cpu(result));
 }
 
 static void print_conn_status(uint16_t status)
 {
         const char *str;
 
-	switch (btohs(status)) {
+	switch (le16_to_cpu(status)) {
 	case 0x0000:
 		str = "No further information available";
 		break;
@@ -354,26 +356,26 @@ static void print_conn_status(uint16_t status)
 		break;
 	}
 
-	print_field("Status: %s (0x%4.4x)", str, btohs(status));
+	print_field("Status: %s (0x%4.4x)", str, le16_to_cpu(status));
 }
 
 static void print_config_flags(uint16_t flags)
 {
 	const char *str;
 
-	if (btohs(flags) & 0x0001)
+	if (le16_to_cpu(flags) & 0x0001)
 		str = " (continuation)";
 	else
 		str = "";
 
-	print_field("Flags: 0x%4.4x%s", btohs(flags), str);
+	print_field("Flags: 0x%4.4x%s", le16_to_cpu(flags), str);
 }
 
 static void print_config_result(uint16_t result)
 {
 	const char *str;
 
-	switch (btohs(result)) {
+	switch (le16_to_cpu(result)) {
 	case 0x0000:
 		str = "Success";
 		break;
@@ -397,7 +399,7 @@ static void print_config_result(uint16_t result)
 		break;
 	}
 
-	print_field("Result: %s (0x%4.4x)", str, btohs(result));
+	print_field("Result: %s (0x%4.4x)", str, le16_to_cpu(result));
 }
 
 static struct {
@@ -587,7 +589,7 @@ static void print_info_type(uint16_t type)
 {
 	const char *str;
 
-	switch (btohs(type)) {
+	switch (le16_to_cpu(type)) {
 	case 0x0001:
 		str = "Connectionless MTU";
 		break;
@@ -602,14 +604,14 @@ static void print_info_type(uint16_t type)
 		break;
 	}
 
-	print_field("Type: %s (0x%4.4x)", str, btohs(type));
+	print_field("Type: %s (0x%4.4x)", str, le16_to_cpu(type));
 }
 
 static void print_info_result(uint16_t result)
 {
 	const char *str;
 
-	switch (btohs(result)) {
+	switch (le16_to_cpu(result)) {
 	case 0x0000:
 		str = "Success";
 		break;
@@ -621,7 +623,7 @@ static void print_info_result(uint16_t result)
 		break;
 	}
 
-	print_field("Result: %s (0x%4.4x)", str, btohs(result));
+	print_field("Result: %s (0x%4.4x)", str, le16_to_cpu(result));
 }
 
 static struct {
@@ -697,7 +699,7 @@ static void print_move_result(uint16_t result)
 {
 	const char *str;
 
-	switch (btohs(result)) {
+	switch (le16_to_cpu(result)) {
 	case 0x0000:
 		str = "Move success";
 		break;
@@ -724,14 +726,14 @@ static void print_move_result(uint16_t result)
 		break;
 	}
 
-	print_field("Result: %s (0x%4.4x)", str, btohs(result));
+	print_field("Result: %s (0x%4.4x)", str, le16_to_cpu(result));
 }
 
 static void print_move_cfm_result(uint16_t result)
 {
 	const char *str;
 
-	switch (btohs(result)) {
+	switch (le16_to_cpu(result)) {
 	case 0x0000:
 		str = "Move success - both sides succeed";
 		break;
@@ -743,14 +745,14 @@ static void print_move_cfm_result(uint16_t result)
 		break;
 	}
 
-	print_field("Result: %s (0x%4.4x)", str, btohs(result));
+	print_field("Result: %s (0x%4.4x)", str, le16_to_cpu(result));
 }
 
 static void print_conn_param_result(uint16_t result)
 {
 	const char *str;
 
-	switch (btohs(result)) {
+	switch (le16_to_cpu(result)) {
 	case 0x0000:
 		str = "Connection Parameters accepted";
 		break;
@@ -762,7 +764,7 @@ static void print_conn_param_result(uint16_t result)
 		break;
 	}
 
-	print_field("Result: %s (0x%4.4x)", str, btohs(result));
+	print_field("Result: %s (0x%4.4x)", str, le16_to_cpu(result));
 }
 
 static void sig_cmd_reject(const struct l2cap_frame *frame)
@@ -777,7 +779,7 @@ static void sig_cmd_reject(const struct l2cap_frame *frame)
 	data += sizeof(*pdu);
 	size -= sizeof(*pdu);
 
-	switch (btohs(pdu->reason)) {
+	switch (le16_to_cpu(pdu->reason)) {
 	case 0x0000:
 		if (size != 0) {
 			print_text(COLOR_ERROR, "invalid data size");
@@ -801,8 +803,8 @@ static void sig_cmd_reject(const struct l2cap_frame *frame)
 		}
 		dcid = bt_get_le16(data);
 		scid = bt_get_le16(data + 2);
-		print_cid("Destination", htobs(dcid));
-		print_cid("Source", htobs(scid));
+		print_cid("Destination", cpu_to_le16(dcid));
+		print_cid("Source", cpu_to_le16(scid));
 		break;
 	default:
 		packet_hexdump(data, size);
@@ -817,7 +819,7 @@ static void sig_conn_req(const struct l2cap_frame *frame)
 	print_psm(pdu->psm);
 	print_cid("Source", pdu->scid);
 
-	assign_scid(frame, btohs(pdu->scid), btohs(pdu->psm), 0);
+	assign_scid(frame, le16_to_cpu(pdu->scid), le16_to_cpu(pdu->psm), 0);
 }
 
 static void sig_conn_rsp(const struct l2cap_frame *frame)
@@ -829,7 +831,7 @@ static void sig_conn_rsp(const struct l2cap_frame *frame)
 	print_conn_result(pdu->result);
 	print_conn_status(pdu->status);
 
-	assign_dcid(frame, btohs(pdu->dcid), btohs(pdu->scid));
+	assign_dcid(frame, le16_to_cpu(pdu->dcid), le16_to_cpu(pdu->scid));
 }
 
 static void sig_config_req(const struct l2cap_frame *frame)
@@ -838,7 +840,7 @@ static void sig_config_req(const struct l2cap_frame *frame)
 
 	print_cid("Destination", pdu->dcid);
 	print_config_flags(pdu->flags);
-	print_config_options(frame, 4, btohs(pdu->dcid), false);
+	print_config_options(frame, 4, le16_to_cpu(pdu->dcid), false);
 }
 
 static void sig_config_rsp(const struct l2cap_frame *frame)
@@ -848,7 +850,7 @@ static void sig_config_rsp(const struct l2cap_frame *frame)
 	print_cid("Source", pdu->scid);
 	print_config_flags(pdu->flags);
 	print_config_result(pdu->result);
-	print_config_options(frame, 6, btohs(pdu->scid), true);
+	print_config_options(frame, 6, le16_to_cpu(pdu->scid), true);
 }
 
 static void sig_disconn_req(const struct l2cap_frame *frame)
@@ -866,7 +868,7 @@ static void sig_disconn_rsp(const struct l2cap_frame *frame)
 	print_cid("Destination", pdu->dcid);
 	print_cid("Source", pdu->scid);
 
-	release_scid(frame, btohs(pdu->scid));
+	release_scid(frame, le16_to_cpu(pdu->scid));
 }
 
 static void sig_echo_req(const struct l2cap_frame *frame)
@@ -898,7 +900,7 @@ static void sig_info_rsp(const struct l2cap_frame *frame)
 	data += sizeof(*pdu);
 	size -= sizeof(*pdu);
 
-	if (btohs(pdu->result) != 0x0000) {
+	if (le16_to_cpu(pdu->result) != 0x0000) {
 		if (size > 0) {
 			print_text(COLOR_ERROR, "invalid data size");
 			packet_hexdump(data, size);
@@ -906,7 +908,7 @@ static void sig_info_rsp(const struct l2cap_frame *frame)
 		return;
 	}
 
-	switch (btohs(pdu->type)) {
+	switch (le16_to_cpu(pdu->type)) {
 	case 0x0001:
 		if (size != 2) {
 			print_text(COLOR_ERROR, "invalid data size");
@@ -945,7 +947,8 @@ static void sig_create_chan_req(const struct l2cap_frame *frame)
 	print_cid("Source", pdu->scid);
 	print_field("Controller ID: %d", pdu->ctrlid);
 
-	assign_scid(frame, btohs(pdu->scid), btohs(pdu->psm), pdu->ctrlid);
+	assign_scid(frame, le16_to_cpu(pdu->scid), le16_to_cpu(pdu->psm),
+								pdu->ctrlid);
 }
 
 static void sig_create_chan_rsp(const struct l2cap_frame *frame)
@@ -957,7 +960,7 @@ static void sig_create_chan_rsp(const struct l2cap_frame *frame)
 	print_conn_result(pdu->result);
 	print_conn_status(pdu->status);
 
-	assign_dcid(frame, btohs(pdu->dcid), btohs(pdu->scid));
+	assign_dcid(frame, le16_to_cpu(pdu->dcid), le16_to_cpu(pdu->scid));
 }
 
 static void sig_move_chan_req(const struct l2cap_frame *frame)
@@ -995,10 +998,10 @@ static void sig_conn_param_req(const struct l2cap_frame *frame)
 {
 	const struct bt_l2cap_pdu_conn_param_req *pdu = frame->data;
 
-	print_field("Min interval: %d", btohs(pdu->min_interval));
-	print_field("Max interval: %d", btohs(pdu->max_interval));
-	print_field("Slave latency: %d", btohs(pdu->latency));
-	print_field("Timeout multiplier: %d", btohs(pdu->timeout));
+	print_field("Min interval: %d", le16_to_cpu(pdu->min_interval));
+	print_field("Max interval: %d", le16_to_cpu(pdu->max_interval));
+	print_field("Slave latency: %d", le16_to_cpu(pdu->latency));
+	print_field("Timeout multiplier: %d", le16_to_cpu(pdu->timeout));
 }
 
 static void sig_conn_param_rsp(const struct l2cap_frame *frame)
@@ -1014,11 +1017,11 @@ static void sig_le_conn_req(const struct l2cap_frame *frame)
 
 	print_psm(pdu->psm);
 	print_cid("Source", pdu->scid);
-	print_field("MTU: %u", btohs(pdu->mtu));
-	print_field("MPS: %u", btohs(pdu->mps));
-	print_field("Credits: %u", btohs(pdu->credits));
+	print_field("MTU: %u", le16_to_cpu(pdu->mtu));
+	print_field("MPS: %u", le16_to_cpu(pdu->mps));
+	print_field("Credits: %u", le16_to_cpu(pdu->credits));
 
-	assign_scid(frame, btohs(pdu->scid), btohs(pdu->psm), 0);
+	assign_scid(frame, le16_to_cpu(pdu->scid), le16_to_cpu(pdu->psm), 0);
 }
 
 static void sig_le_conn_rsp(const struct l2cap_frame *frame)
@@ -1026,12 +1029,12 @@ static void sig_le_conn_rsp(const struct l2cap_frame *frame)
 	const struct bt_l2cap_pdu_le_conn_rsp *pdu = frame->data;
 
 	print_cid("Destination", pdu->dcid);
-	print_field("MTU: %u", btohs(pdu->mtu));
-	print_field("MPS: %u", btohs(pdu->mps));
-	print_field("Credits: %u", btohs(pdu->credits));
+	print_field("MTU: %u", le16_to_cpu(pdu->mtu));
+	print_field("MPS: %u", le16_to_cpu(pdu->mps));
+	print_field("Credits: %u", le16_to_cpu(pdu->credits));
 	print_conn_result(pdu->result);
 
-	/*assign_dcid(frame, btohs(pdu->dcid), btohs(pdu->scid));*/
+	/*assign_dcid(frame, le16_to_cpu(pdu->dcid), le16_to_cpu(pdu->scid));*/
 }
 
 static void sig_le_flowctl_creds(const struct l2cap_frame *frame)
@@ -1039,7 +1042,7 @@ static void sig_le_flowctl_creds(const struct l2cap_frame *frame)
 	const struct bt_l2cap_pdu_le_flowctl_creds *pdu = frame->data;
 
 	print_cid("Source", pdu->cid);
-	print_field("Credits: %u", btohs(pdu->credits));
+	print_field("Credits: %u", le16_to_cpu(pdu->credits));
 }
 
 struct sig_opcode_data {
@@ -1126,7 +1129,7 @@ static void bredr_sig_packet(uint16_t index, bool in, uint16_t handle,
 			return;
 		}
 
-		len = btohs(hdr->len);
+		len = le16_to_cpu(hdr->len);
 
 		data += 4;
 		size -= 4;
@@ -1214,7 +1217,7 @@ static void le_sig_packet(uint16_t index, bool in, uint16_t handle,
 		return;
 	}
 
-	len = btohs(hdr->len);
+	len = le16_to_cpu(hdr->len);
 
 	data += 4;
 	size -= 4;
@@ -1286,7 +1289,7 @@ static void connless_packet(uint16_t index, bool in, uint16_t handle,
 		return;
 	}
 
-	psm = btohs(hdr->psm);
+	psm = le16_to_cpu(hdr->psm);
 
 	data += 2;
 	size -= 2;
@@ -1364,23 +1367,25 @@ static void amp_cmd_reject(const struct l2cap_frame *frame)
 {
 	const struct bt_l2cap_amp_cmd_reject *pdu = frame->data;
 
-	print_field("Reason: 0x%4.4x", btohs(pdu->reason));
+	print_field("Reason: 0x%4.4x", le16_to_cpu(pdu->reason));
 }
 
 static void amp_discover_req(const struct l2cap_frame *frame)
 {
 	const struct bt_l2cap_amp_discover_req *pdu = frame->data;
 
-	print_field("MTU/MPS size: %d", btohs(pdu->size));
-	print_field("Extended feature mask: 0x%4.4x", btohs(pdu->features));
+	print_field("MTU/MPS size: %d", le16_to_cpu(pdu->size));
+	print_field("Extended feature mask: 0x%4.4x",
+					le16_to_cpu(pdu->features));
 }
 
 static void amp_discover_rsp(const struct l2cap_frame *frame)
 {
 	const struct bt_l2cap_amp_discover_rsp *pdu = frame->data;
 
-	print_field("MTU/MPS size: %d", btohs(pdu->size));
-	print_field("Extended feature mask: 0x%4.4x", btohs(pdu->features));
+	print_field("MTU/MPS size: %d", le16_to_cpu(pdu->size));
+	print_field("Extended feature mask: 0x%4.4x",
+					le16_to_cpu(pdu->features));
 
 	print_controller_list(frame->data + 4, frame->size - 4);
 }
@@ -1422,12 +1427,13 @@ static void amp_get_info_rsp(const struct l2cap_frame *frame)
 
 	print_field("Status: %s (0x%2.2x)", str, pdu->status);
 
-	print_field("Total bandwidth: %d kbps", btohl(pdu->total_bw));
-	print_field("Max guaranteed bandwidth: %d kbps", btohl(pdu->max_bw));
-	print_field("Min latency: %d", btohl(pdu->min_latency));
+	print_field("Total bandwidth: %d kbps", le32_to_cpu(pdu->total_bw));
+	print_field("Max guaranteed bandwidth: %d kbps",
+						le32_to_cpu(pdu->max_bw));
+	print_field("Min latency: %d", le32_to_cpu(pdu->min_latency));
 
-	print_field("PAL capabilities: 0x%4.4x", btohs(pdu->pal_cap));
-	print_field("Max ASSOC length: %d", btohs(pdu->max_assoc_len));
+	print_field("PAL capabilities: 0x%4.4x", le16_to_cpu(pdu->pal_cap));
+	print_field("Max ASSOC length: %d", le16_to_cpu(pdu->max_assoc_len));
 }
 
 static void amp_get_assoc_req(const struct l2cap_frame *frame)
@@ -1840,7 +1846,7 @@ static void att_error_response(const struct l2cap_frame *frame)
 
 	print_field("%s (0x%2.2x)", att_opcode_to_str(pdu->request),
 							pdu->request);
-	print_field("Handle: 0x%4.4x", btohs(pdu->handle));
+	print_field("Handle: 0x%4.4x", le16_to_cpu(pdu->handle));
 	print_field("Error: %s (0x%2.2x)", str, pdu->error);
 }
 
@@ -1848,14 +1854,14 @@ static void att_exchange_mtu_req(const struct l2cap_frame *frame)
 {
 	const struct bt_l2cap_att_exchange_mtu_req *pdu = frame->data;
 
-	print_field("Client RX MTU: %d", btohs(pdu->mtu));
+	print_field("Client RX MTU: %d", le16_to_cpu(pdu->mtu));
 }
 
 static void att_exchange_mtu_rsp(const struct l2cap_frame *frame)
 {
 	const struct bt_l2cap_att_exchange_mtu_rsp *pdu = frame->data;
 
-	print_field("Server RX MTU: %d", btohs(pdu->mtu));
+	print_field("Server RX MTU: %d", le16_to_cpu(pdu->mtu));
 }
 
 static void att_find_info_req(const struct l2cap_frame *frame)
@@ -1959,7 +1965,7 @@ static void att_read_req(const struct l2cap_frame *frame)
 {
 	const struct bt_l2cap_att_read_req *pdu = frame->data;
 
-	print_field("Handle: 0x%4.4x", btohs(pdu->handle));
+	print_field("Handle: 0x%4.4x", le16_to_cpu(pdu->handle));
 }
 
 static void att_read_rsp(const struct l2cap_frame *frame)
@@ -2052,7 +2058,7 @@ static void att_handle_value_notify(const struct l2cap_frame *frame)
 {
 	const struct bt_l2cap_att_handle_value_notify *pdu = frame->data;
 
-	print_field("Handle: 0x%4.4x", btohs(pdu->handle));
+	print_field("Handle: 0x%4.4x", le16_to_cpu(pdu->handle));
 	print_hex_field("  Data", frame->data + 2, frame->size - 2);
 }
 
@@ -2060,7 +2066,7 @@ static void att_handle_value_ind(const struct l2cap_frame *frame)
 {
 	const struct bt_l2cap_att_handle_value_ind *pdu = frame->data;
 
-	print_field("Handle: 0x%4.4x", btohs(pdu->handle));
+	print_field("Handle: 0x%4.4x", le16_to_cpu(pdu->handle));
 	print_hex_field("  Data", frame->data + 2, frame->size - 2);
 }
 
@@ -2432,8 +2438,8 @@ static void smp_master_ident(const struct l2cap_frame *frame)
 {
 	const struct bt_l2cap_smp_master_ident *pdu = frame->data;
 
-	print_field("EDIV: 0x%4.4x", btohs(pdu->ediv));
-	print_field("Rand: 0x%16.16" PRIx64, btohll(pdu->rand));
+	print_field("EDIV: 0x%4.4x", le16_to_cpu(pdu->ediv));
+	print_field("Rand: 0x%16.16" PRIx64, le64_to_cpu(pdu->rand));
 }
 
 static void smp_ident_info(const struct l2cap_frame *frame)
@@ -2640,8 +2646,8 @@ void l2cap_packet(uint16_t index, bool in, uint16_t handle, uint8_t flags,
 			return;
 		}
 
-		len = btohs(hdr->len);
-		cid = btohs(hdr->cid);
+		len = le16_to_cpu(hdr->len);
+		cid = le16_to_cpu(hdr->cid);
 
 		data += sizeof(*hdr);
 		size -= sizeof(*hdr);
@@ -2715,8 +2721,8 @@ void l2cap_packet(uint16_t index, bool in, uint16_t handle, uint8_t flags,
 			return;
 		}
 
-		len = btohs(hdr->len);
-		cid = btohs(hdr->cid);
+		len = le16_to_cpu(hdr->len);
+		cid = le16_to_cpu(hdr->cid);
 
 		data += sizeof(*hdr);
 		size -= sizeof(*hdr);
diff --git a/monitor/ll.c b/monitor/ll.c
index 25a1b7d..6aaa32a 100644
--- a/monitor/ll.c
+++ b/monitor/ll.c
@@ -30,6 +30,7 @@
 
 #include <bluetooth/bluetooth.h>
 
+#include "src/shared/util.h"
 #include "display.h"
 #include "packet.h"
 #include "crc.h"
@@ -328,7 +329,7 @@ void ll_packet(uint16_t frequency, const void *data, uint8_t size)
 		return;
 	}
 
-	access_addr = btohl(hdr->access_addr);
+	access_addr = le32_to_cpu(hdr->access_addr);
 
 	pdu_data = data + sizeof(*hdr);
 	pdu_len = size - sizeof(*hdr) - 3;
@@ -380,11 +381,11 @@ static void conn_update_req(const void *data, uint8_t size)
 	const struct bt_ll_conn_update_req *pdu = data;
 
 	print_field("Transmit window size: %u", pdu->win_size);
-	print_field("Transmit window offset: %u", btohs(pdu->win_offset));
-	print_field("Connection interval: %u", btohs(pdu->interval));
-	print_field("Connection slave latency: %u", btohs(pdu->latency));
-	print_field("Connection supervision timeout: %u", btohs(pdu->timeout));;
-	print_field("Connection instant: %u", btohs(pdu->instant));
+	print_field("Transmit window offset: %u", le16_to_cpu(pdu->win_offset));
+	print_field("Connection interval: %u", le16_to_cpu(pdu->interval));
+	print_field("Connection slave latency: %u", le16_to_cpu(pdu->latency));
+	print_field("Connection supervision timeout: %u", le16_to_cpu(pdu->timeout));
+	print_field("Connection instant: %u", le16_to_cpu(pdu->instant));
 }
 
 static void channel_map_req(const void *data, uint8_t size)
@@ -392,7 +393,7 @@ static void channel_map_req(const void *data, uint8_t size)
 	const struct bt_ll_channel_map_req *pdu = data;
 
 	packet_print_channel_map_ll(pdu->map);
-	print_field("Connection instant: %u", btohs(pdu->instant));
+	print_field("Connection instant: %u", le16_to_cpu(pdu->instant));
 }
 
 static void terminate_ind(const void *data, uint8_t size)
@@ -406,18 +407,18 @@ static void enc_req(const void *data, uint8_t size)
 {
 	const struct bt_ll_enc_req *pdu = data;
 
-	print_field("Rand: 0x%16.16" PRIx64, btohll(pdu->rand));
-	print_field("EDIV: 0x%4.4x", btohs(pdu->ediv));
-	print_field("SKD (master): 0x%16.16" PRIx64, btohll(pdu->skd));
-	print_field("IV (master): 0x%8.8x", btohl(pdu->iv));
+	print_field("Rand: 0x%16.16" PRIx64, le64_to_cpu(pdu->rand));
+	print_field("EDIV: 0x%4.4x", le16_to_cpu(pdu->ediv));
+	print_field("SKD (master): 0x%16.16" PRIx64, le64_to_cpu(pdu->skd));
+	print_field("IV (master): 0x%8.8x", le32_to_cpu(pdu->iv));
 }
 
 static void enc_rsp(const void *data, uint8_t size)
 {
 	const struct bt_ll_enc_rsp *pdu = data;
 
-	print_field("SKD (slave): 0x%16.16" PRIx64, btohll(pdu->skd));
-	print_field("IV (slave): 0x%8.8x", btohl(pdu->iv));
+	print_field("SKD (slave): 0x%16.16" PRIx64, le64_to_cpu(pdu->skd));
+	print_field("IV (slave): 0x%8.8x", le32_to_cpu(pdu->iv));
 }
 
 static const char *opcode_to_string(uint8_t opcode);
@@ -449,8 +450,8 @@ static void version_ind(const void *data, uint8_t size)
 	const struct bt_ll_version_ind *pdu = data;
 
 	packet_print_version("Version", pdu->version,
-				"Subversion", btohs(pdu->subversion));
-	packet_print_company("Company", btohs(pdu->company));
+				"Subversion", le16_to_cpu(pdu->subversion));
+	packet_print_company("Company", le16_to_cpu(pdu->company));
 }
 
 static void reject_ind(const void *data, uint8_t size)
diff --git a/monitor/lmp.c b/monitor/lmp.c
index 250c8f1..33ef49c 100644
--- a/monitor/lmp.c
+++ b/monitor/lmp.c
@@ -30,6 +30,7 @@
 
 #include <bluetooth/bluetooth.h>
 
+#include "src/shared/util.h"
 #include "display.h"
 #include "packet.h"
 #include "bt.h"
@@ -157,8 +158,8 @@ static void version_req(const void *data, uint8_t size)
 	const struct bt_lmp_version_req *pdu = data;
 
 	packet_print_version("Version", pdu->version,
-				"Subversion", btohs(pdu->subversion));
-	packet_print_company("Company", btohs(pdu->company));
+				"Subversion", le16_to_cpu(pdu->subversion));
+	packet_print_company("Company", le16_to_cpu(pdu->company));
 }
 
 static void version_res(const void *data, uint8_t size)
@@ -166,8 +167,8 @@ static void version_res(const void *data, uint8_t size)
 	const struct bt_lmp_version_res *pdu = data;
 
 	packet_print_version("Version", pdu->version,
-				"Subversion", btohs(pdu->subversion));
-	packet_print_company("Company", btohs(pdu->company));
+				"Subversion", le16_to_cpu(pdu->subversion));
+	packet_print_company("Company", le16_to_cpu(pdu->company));
 }
 
 static void features_req(const void *data, uint8_t size)
@@ -272,7 +273,7 @@ static void set_afh(const void *data, uint8_t size)
 	const struct bt_lmp_set_afh *pdu = data;
 	const char *str;
 
-	print_field("Instant: %u", htobl(pdu->instant));
+	print_field("Instant: %u", le32_to_cpu(pdu->instant));
 
 	switch (pdu->mode) {
 	case 0x00:
diff --git a/monitor/packet.c b/monitor/packet.c
index 636000c..cff3a79 100644
--- a/monitor/packet.c
+++ b/monitor/packet.c
@@ -41,6 +41,7 @@
 #include <bluetooth/hci.h>
 #include <bluetooth/hci_lib.h>
 
+#include "src/shared/util.h"
 #include "display.h"
 #include "bt.h"
 #include "ll.h"
@@ -487,7 +488,7 @@ static void print_lt_addr(uint8_t lt_addr)
 
 static void print_handle(uint16_t handle)
 {
-	print_field("Handle: %d", btohs(handle));
+	print_field("Handle: %d", le16_to_cpu(handle));
 }
 
 static void print_phy_handle(uint8_t phy_handle)
@@ -519,12 +520,12 @@ static void print_pkt_type(uint16_t pkt_type)
 	uint16_t mask;
 	int i;
 
-	print_field("Packet type: 0x%4.4x", btohs(pkt_type));
+	print_field("Packet type: 0x%4.4x", le16_to_cpu(pkt_type));
 
-	mask = btohs(pkt_type);
+	mask = le16_to_cpu(pkt_type);
 
 	for (i = 0; pkt_type_table[i].str; i++) {
-		if (btohs(pkt_type) & (1 << pkt_type_table[i].bit)) {
+		if (le16_to_cpu(pkt_type) & (1 << pkt_type_table[i].bit)) {
 			print_field("  %s", pkt_type_table[i].str);
 			mask &= ~(1 << pkt_type_table[i].bit);
 		}
@@ -557,12 +558,12 @@ static void print_pkt_type_sco(uint16_t pkt_type)
 	uint16_t mask;
 	int i;
 
-	print_field("Packet type: 0x%4.4x", btohs(pkt_type));
+	print_field("Packet type: 0x%4.4x", le16_to_cpu(pkt_type));
 
-	mask = btohs(pkt_type);
+	mask = le16_to_cpu(pkt_type);
 
 	for (i = 0; pkt_type_sco_table[i].str; i++) {
-		if (btohs(pkt_type) & (1 << pkt_type_sco_table[i].bit)) {
+		if (le16_to_cpu(pkt_type) & (1 << pkt_type_sco_table[i].bit)) {
 			print_field("  %s", pkt_type_sco_table[i].str);
 			mask &= ~(1 << pkt_type_sco_table[i].bit);
 		}
@@ -935,12 +936,12 @@ static void print_host_flow_control(uint8_t enable)
 
 static void print_voice_setting(uint16_t setting)
 {
-	uint8_t input_coding = (btohs(setting) & 0x0300) >> 8;
-	uint8_t input_data_format = (btohs(setting) & 0xc0) >> 6;
-	uint8_t air_coding_format = btohs(setting) & 0x0003;
+	uint8_t input_coding = (le16_to_cpu(setting) & 0x0300) >> 8;
+	uint8_t input_data_format = (le16_to_cpu(setting) & 0xc0) >> 6;
+	uint8_t air_coding_format = le16_to_cpu(setting) & 0x0003;
 	const char *str;
 
-	print_field("Setting: 0x%4.4x", btohs(setting));
+	print_field("Setting: 0x%4.4x", le16_to_cpu(setting));
 
 	switch (input_coding) {
 	case 0x00:
@@ -981,9 +982,9 @@ static void print_voice_setting(uint16_t setting)
 
 	if (input_coding == 0x00) {
 		print_field("  Input Sample Size: %s",
-				btohs(setting) & 0x20 ? "16-bit" : "8-bit");
+			le16_to_cpu(setting) & 0x20 ? "16-bit" : "8-bit");
 		print_field("  # of bits padding at MSB: %d",
-						(btohs(setting) & 0x1c) >> 2);
+					(le16_to_cpu(setting) & 0x1c) >> 2);
 	}
 
 	switch (air_coding_format) {
@@ -1059,7 +1060,7 @@ static void print_scan_enable(uint8_t scan_enable)
 
 static void print_link_policy(uint16_t link_policy)
 {
-	uint16_t policy = btohs(link_policy);
+	uint16_t policy = le16_to_cpu(link_policy);
 
 	print_field("Link policy: 0x%4.4x", policy);
 
@@ -1242,7 +1243,7 @@ static void print_secure_conn_support(uint8_t support)
 static void print_auth_payload_timeout(uint16_t timeout)
 {
 	print_field("Timeout: %d msec (0x%4.4x)",
-					btohs(timeout) * 10, btohs(timeout));
+			le16_to_cpu(timeout) * 10, le16_to_cpu(timeout));
 }
 
 static void print_pscan_rep_mode(uint8_t pscan_rep_mode)
@@ -1317,12 +1318,12 @@ static void print_pscan_mode(uint8_t pscan_mode)
 
 static void print_clock_offset(uint16_t clock_offset)
 {
-	print_field("Clock offset: 0x%4.4x", btohs(clock_offset));
+	print_field("Clock offset: 0x%4.4x", le16_to_cpu(clock_offset));
 }
 
 static void print_clock(uint32_t clock)
 {
-	print_field("Clock: 0x%8.8x", btohl(clock));
+	print_field("Clock: 0x%8.8x", le32_to_cpu(clock));
 }
 
 static void print_clock_type(uint8_t type)
@@ -1346,11 +1347,13 @@ static void print_clock_type(uint8_t type)
 
 static void print_clock_accuracy(uint16_t accuracy)
 {
-	if (btohs(accuracy) == 0xffff)
-		print_field("Accuracy: Unknown (0x%4.4x)", btohs(accuracy));
+	if (le16_to_cpu(accuracy) == 0xffff)
+		print_field("Accuracy: Unknown (0x%4.4x)",
+						le16_to_cpu(accuracy));
 	else
 		print_field("Accuracy: %.4f msec (0x%4.4x)",
-				btohs(accuracy) * 0.3125, btohs(accuracy));
+						le16_to_cpu(accuracy) * 0.3125,
+						le16_to_cpu(accuracy));
 }
 
 static void print_lpo_allowed(uint8_t lpo_allowed)
@@ -1429,7 +1432,7 @@ static void print_encr_mode_change(uint8_t encr_mode, uint16_t handle)
 	const char *str;
 	uint8_t conn_type;
 
-	conn_type = get_type(btohs(handle));
+	conn_type = get_type(le16_to_cpu(handle));
 
 	switch (encr_mode) {
 	case 0x00:
@@ -1615,7 +1618,7 @@ static void print_randomizer_p256(const uint8_t *randomizer)
 
 static void print_passkey(uint32_t passkey)
 {
-	print_field("Passkey: %06d", btohl(passkey));
+	print_field("Passkey: %06d", le32_to_cpu(passkey));
 }
 
 static void print_io_capability(uint8_t capability)
@@ -1905,13 +1908,13 @@ static void print_rssi(int8_t rssi)
 static void print_slot_625(const char *label, uint16_t value)
 {
 	 print_field("%s: %.3f msec (0x%4.4x)", label,
-					btohs(value) * 0.625, btohs(value));
+				le16_to_cpu(value) * 0.625, le16_to_cpu(value));
 }
 
 static void print_slot_125(const char *label, uint16_t value)
 {
 	print_field("%s: %.2f msec (0x%4.4x)", label,
-					btohs(value) * 1.25, btohs(value));
+				le16_to_cpu(value) * 1.25, le16_to_cpu(value));
 }
 
 static void print_timeout(uint16_t timeout)
@@ -2070,13 +2073,13 @@ void packet_print_version(const char *label, uint8_t version,
 static void print_hci_version(uint8_t version, uint16_t revision)
 {
 	packet_print_version("HCI version", version,
-				"Revision", btohs(revision));
+				"Revision", le16_to_cpu(revision));
 }
 
 static void print_lmp_version(uint8_t version, uint16_t subversion)
 {
 	packet_print_version("LMP version", version,
-				"Subversion", btohs(subversion));
+				"Subversion", le16_to_cpu(subversion));
 }
 
 static void print_pal_version(uint8_t version, uint16_t subversion)
@@ -2093,7 +2096,9 @@ static void print_pal_version(uint8_t version, uint16_t subversion)
 	}
 
 	print_field("PAL version: %s (0x%2.2x) - Subversion %d (0x%4.4x)",
-			str, version, btohs(subversion), btohs(subversion));
+						str, version,
+						le16_to_cpu(subversion),
+						le16_to_cpu(subversion));
 }
 
 void packet_print_company(const char *label, uint16_t company)
@@ -2103,7 +2108,7 @@ void packet_print_company(const char *label, uint16_t company)
 
 static void print_manufacturer(uint16_t manufacturer)
 {
-	packet_print_company("Manufacturer", btohs(manufacturer));
+	packet_print_company("Manufacturer", le16_to_cpu(manufacturer));
 }
 
 static const char *get_supported_command(int bit);
@@ -3437,7 +3442,7 @@ static void read_lmp_handle_rsp(const void *data, uint8_t size)
 	print_status(rsp->status);
 	print_handle(rsp->handle);
 	print_field("LMP handle: %d", rsp->lmp_handle);
-	print_field("Reserved: %d", btohl(rsp->reserved));
+	print_field("Reserved: %d", le32_to_cpu(rsp->reserved));
 }
 
 static void setup_sync_conn_cmd(const void *data, uint8_t size)
@@ -3445,9 +3450,9 @@ static void setup_sync_conn_cmd(const void *data, uint8_t size)
 	const struct bt_hci_cmd_setup_sync_conn *cmd = data;
 
 	print_handle(cmd->handle);
-	print_field("Transmit bandwidth: %d", btohl(cmd->tx_bandwidth));
-	print_field("Receive bandwidth: %d", btohl(cmd->rx_bandwidth));
-	print_field("Max latency: %d", btohs(cmd->max_latency));
+	print_field("Transmit bandwidth: %d", le32_to_cpu(cmd->tx_bandwidth));
+	print_field("Receive bandwidth: %d", le32_to_cpu(cmd->rx_bandwidth));
+	print_field("Max latency: %d", le16_to_cpu(cmd->max_latency));
 	print_voice_setting(cmd->voice_setting);
 	print_retransmission_effort(cmd->retrans_effort);
 	print_pkt_type_sco(cmd->pkt_type);
@@ -3458,9 +3463,9 @@ static void accept_sync_conn_request_cmd(const void *data, uint8_t size)
 	const struct bt_hci_cmd_accept_sync_conn_request *cmd = data;
 
 	print_bdaddr(cmd->bdaddr);
-	print_field("Transmit bandwidth: %d", btohl(cmd->tx_bandwidth));
-	print_field("Receive bandwidth: %d", btohl(cmd->rx_bandwidth));
-	print_field("Max latency: %d", btohs(cmd->max_latency));
+	print_field("Transmit bandwidth: %d", le32_to_cpu(cmd->tx_bandwidth));
+	print_field("Receive bandwidth: %d", le32_to_cpu(cmd->rx_bandwidth));
+	print_field("Max latency: %d", le16_to_cpu(cmd->max_latency));
 	print_voice_setting(cmd->voice_setting);
 	print_retransmission_effort(cmd->retrans_effort);
 	print_pkt_type_sco(cmd->pkt_type);
@@ -3664,8 +3669,9 @@ static void set_slave_broadcast_receive_cmd(const void *data, uint8_t size)
 	print_bdaddr(cmd->bdaddr);
 	print_lt_addr(cmd->lt_addr);
 	print_interval(cmd->interval);
-	print_field("Offset: 0x%8.8x", btohl(cmd->offset));
-	print_field("Next broadcast instant: 0x%4.4x", btohs(cmd->instant));
+	print_field("Offset: 0x%8.8x", le32_to_cpu(cmd->offset));
+	print_field("Next broadcast instant: 0x%4.4x",
+					le16_to_cpu(cmd->instant));
 	print_slot_625("Supervision timeout", cmd->timeout);
 	print_field("Remote timing accuracy: %d ppm", cmd->accuracy);
 	print_field("Skip: 0x%2.2x", cmd->skip);
@@ -3755,10 +3761,10 @@ static void qos_setup_cmd(const void *data, uint8_t size)
 
 	print_service_type(cmd->service_type);
 
-	print_field("Token rate: %d", btohl(cmd->token_rate));
-	print_field("Peak bandwidth: %d", btohl(cmd->peak_bandwidth));
-	print_field("Latency: %d", btohl(cmd->latency));
-	print_field("Delay variation: %d", btohl(cmd->delay_variation));
+	print_field("Token rate: %d", le32_to_cpu(cmd->token_rate));
+	print_field("Peak bandwidth: %d", le32_to_cpu(cmd->peak_bandwidth));
+	print_field("Latency: %d", le32_to_cpu(cmd->latency));
+	print_field("Delay variation: %d", le32_to_cpu(cmd->delay_variation));
 }
 
 static void role_discovery_cmd(const void *data, uint8_t size)
@@ -3842,10 +3848,11 @@ static void flow_spec_cmd(const void *data, uint8_t size)
 	print_flow_direction(cmd->direction);
 	print_service_type(cmd->service_type);
 
-	print_field("Token rate: %d", btohl(cmd->token_rate));
-	print_field("Token bucket size: %d", btohl(cmd->token_bucket_size));
-	print_field("Peak bandwidth: %d", btohl(cmd->peak_bandwidth));
-	print_field("Access latency: %d", btohl(cmd->access_latency));
+	print_field("Token rate: %d", le32_to_cpu(cmd->token_rate));
+	print_field("Token bucket size: %d",
+					le32_to_cpu(cmd->token_bucket_size));
+	print_field("Peak bandwidth: %d", le32_to_cpu(cmd->peak_bandwidth));
+	print_field("Access latency: %d", le32_to_cpu(cmd->access_latency));
 }
 
 static void sniff_subrating_cmd(const void *data, uint8_t size)
@@ -4000,8 +4007,8 @@ static void read_stored_link_key_rsp(const void *data, uint8_t size)
 	const struct bt_hci_rsp_read_stored_link_key *rsp = data;
 
 	print_status(rsp->status);
-	print_field("Max num keys: %d", btohs(rsp->max_num_keys));
-	print_field("Num keys: %d", btohs(rsp->num_keys));
+	print_field("Max num keys: %d", le16_to_cpu(rsp->max_num_keys));
+	print_field("Num keys: %d", le16_to_cpu(rsp->num_keys));
 }
 
 static void write_stored_link_key_cmd(const void *data, uint8_t size)
@@ -4034,7 +4041,7 @@ static void delete_stored_link_key_rsp(const void *data, uint8_t size)
 	const struct bt_hci_rsp_delete_stored_link_key *rsp = data;
 
 	print_status(rsp->status);
-	print_field("Num keys: %d", btohs(rsp->num_keys));
+	print_field("Num keys: %d", le16_to_cpu(rsp->num_keys));
 }
 
 static void write_local_name_cmd(const void *data, uint8_t size)
@@ -4297,9 +4304,11 @@ static void host_buffer_size_cmd(const void *data, uint8_t size)
 	const struct bt_hci_cmd_host_buffer_size *cmd = data;
 
 	print_field("ACL MTU: %-4d ACL max packet: %d",
-				btohs(cmd->acl_mtu), btohs(cmd->acl_max_pkt));
+					le16_to_cpu(cmd->acl_mtu),
+					le16_to_cpu(cmd->acl_max_pkt));
 	print_field("SCO MTU: %-4d SCO max packet: %d",
-				cmd->sco_mtu, btohs(cmd->sco_max_pkt));
+					cmd->sco_mtu,
+					le16_to_cpu(cmd->sco_max_pkt));
 }
 
 static void read_link_supv_timeout_cmd(const void *data, uint8_t size)
@@ -4703,7 +4712,8 @@ static void read_sync_train_params_rsp(const void *data, uint8_t size)
 	print_status(rsp->status);
 	print_interval(rsp->interval);
 	print_field("Timeout: %.3f msec (0x%8.8x)",
-			btohl(rsp->timeout) * 0.625, btohl(rsp->timeout));
+					le32_to_cpu(rsp->timeout) * 0.625,
+					le32_to_cpu(rsp->timeout));
 	print_field("Service Data: 0x%2.2x", rsp->service_data);
 }
 
@@ -4714,7 +4724,8 @@ static void write_sync_train_params_cmd(const void *data, uint8_t size)
 	print_slot_625("Min interval", cmd->min_interval);
 	print_slot_625("Max interval", cmd->max_interval);
 	print_field("Timeout: %.3f msec (0x%8.8x)",
-			btohl(cmd->timeout) * 0.625, btohl(cmd->timeout));
+					le32_to_cpu(cmd->timeout) * 0.625,
+					le32_to_cpu(cmd->timeout));
 	print_field("Service Data: 0x%2.2x", cmd->service_data);
 }
 
@@ -4841,9 +4852,11 @@ static void read_buffer_size_rsp(const void *data, uint8_t size)
 
 	print_status(rsp->status);
 	print_field("ACL MTU: %-4d ACL max packet: %d",
-				btohs(rsp->acl_mtu), btohs(rsp->acl_max_pkt));
+					le16_to_cpu(rsp->acl_mtu),
+					le16_to_cpu(rsp->acl_max_pkt));
 	print_field("SCO MTU: %-4d SCO max packet: %d",
-				rsp->sco_mtu, btohs(rsp->sco_max_pkt));
+					rsp->sco_mtu,
+					le16_to_cpu(rsp->sco_max_pkt));
 }
 
 static void read_country_code_rsp(const void *data, uint8_t size)
@@ -4881,9 +4894,9 @@ static void read_data_block_size_rsp(const void *data, uint8_t size)
 	const struct bt_hci_rsp_read_data_block_size *rsp = data;
 
 	print_status(rsp->status);
-	print_field("Max ACL length: %d", btohs(rsp->max_acl_len));
-	print_field("Block length: %d", btohs(rsp->block_len));
-	print_field("Num blocks: %d", btohs(rsp->num_blocks));
+	print_field("Max ACL length: %d", le16_to_cpu(rsp->max_acl_len));
+	print_field("Block length: %d", le16_to_cpu(rsp->block_len));
+	print_field("Num blocks: %d", le16_to_cpu(rsp->num_blocks));
 }
 
 static void read_failed_contact_counter_cmd(const void *data, uint8_t size)
@@ -4899,7 +4912,7 @@ static void read_failed_contact_counter_rsp(const void *data, uint8_t size)
 
 	print_status(rsp->status);
 	print_handle(rsp->handle);
-	print_field("Counter: %u", htobs(rsp->counter));
+	print_field("Counter: %u", le16_to_cpu(rsp->counter));
 }
 
 static void reset_failed_contact_counter_cmd(const void *data, uint8_t size)
@@ -5008,10 +5021,11 @@ static void read_local_amp_info_rsp(const void *data, uint8_t size)
 	print_status(rsp->status);
 	print_amp_status(rsp->amp_status);
 
-	print_field("Total bandwidth: %d kbps", btohl(rsp->total_bw));
-	print_field("Max guaranteed bandwidth: %d kbps", btohl(rsp->max_bw));
-	print_field("Min latency: %d", btohl(rsp->min_latency));
-	print_field("Max PDU size: %d", btohl(rsp->max_pdu));
+	print_field("Total bandwidth: %d kbps", le32_to_cpu(rsp->total_bw));
+	print_field("Max guaranteed bandwidth: %d kbps",
+						le32_to_cpu(rsp->max_bw));
+	print_field("Min latency: %d", le32_to_cpu(rsp->min_latency));
+	print_field("Max PDU size: %d", le32_to_cpu(rsp->max_pdu));
 
 	switch (rsp->amp_type) {
 	case 0x00:
@@ -5027,10 +5041,11 @@ static void read_local_amp_info_rsp(const void *data, uint8_t size)
 
 	print_field("Controller type: %s (0x%2.2x)", str, rsp->amp_type);
 
-	print_field("PAL capabilities: 0x%4.4x", btohs(rsp->pal_cap));
-	print_field("Max ASSOC length: %d", btohs(rsp->max_assoc_len));
-	print_field("Max flush timeout: %d", btohl(rsp->max_flush_to));
-	print_field("Best effort flush timeout: %d", btohl(rsp->be_flush_to));
+	print_field("PAL capabilities: 0x%4.4x", le16_to_cpu(rsp->pal_cap));
+	print_field("Max ASSOC length: %d", le16_to_cpu(rsp->max_assoc_len));
+	print_field("Max flush timeout: %d", le32_to_cpu(rsp->max_flush_to));
+	print_field("Best effort flush timeout: %d",
+					le32_to_cpu(rsp->be_flush_to));
 }
 
 static void read_local_amp_assoc_cmd(const void *data, uint8_t size)
@@ -5038,8 +5053,8 @@ static void read_local_amp_assoc_cmd(const void *data, uint8_t size)
 	const struct bt_hci_cmd_read_local_amp_assoc *cmd = data;
 
 	print_phy_handle(cmd->phy_handle);
-	print_field("Length so far: %d", btohs(cmd->len_so_far));
-	print_field("Max ASSOC length: %d", btohs(cmd->max_assoc_len));
+	print_field("Length so far: %d", le16_to_cpu(cmd->len_so_far));
+	print_field("Max ASSOC length: %d", le16_to_cpu(cmd->max_assoc_len));
 }
 
 static void read_local_amp_assoc_rsp(const void *data, uint8_t size)
@@ -5048,7 +5063,8 @@ static void read_local_amp_assoc_rsp(const void *data, uint8_t size)
 
 	print_status(rsp->status);
 	print_phy_handle(rsp->phy_handle);
-	print_field("Remaining ASSOC length: %d", btohs(rsp->remain_assoc_len));
+	print_field("Remaining ASSOC length: %d",
+					le16_to_cpu(rsp->remain_assoc_len));
 
 	packet_hexdump(data + 4, size - 4);
 }
@@ -5058,8 +5074,9 @@ static void write_remote_amp_assoc_cmd(const void *data, uint8_t size)
 	const struct bt_hci_cmd_write_remote_amp_assoc *cmd = data;
 
 	print_phy_handle(cmd->phy_handle);
-	print_field("Length so far: %d", btohs(cmd->len_so_far));
-	print_field("Remaining ASSOC length: %d", btohs(cmd->remain_assoc_len));
+	print_field("Length so far: %d", le16_to_cpu(cmd->len_so_far));
+	print_field("Remaining ASSOC length: %d",
+					le16_to_cpu(cmd->remain_assoc_len));
 
 	packet_hexdump(data + 5, size - 5);
 }
@@ -5117,7 +5134,7 @@ static void le_read_buffer_size_rsp(const void *data, uint8_t size)
 	const struct bt_hci_rsp_le_read_buffer_size *rsp = data;
 
 	print_status(rsp->status);
-	print_field("Data packet length: %d", btohs(rsp->le_mtu));
+	print_field("Data packet length: %d", le16_to_cpu(rsp->le_mtu));
 	print_field("Num data packets: %d", rsp->le_max_pkt);
 }
 
@@ -5369,9 +5386,10 @@ static void le_create_conn_cmd(const void *data, uint8_t size)
 
 	print_slot_125("Min connection interval", cmd->min_interval);
 	print_slot_125("Max connection interval", cmd->max_interval);
-	print_field("Connection latency: 0x%4.4x", btohs(cmd->latency));
+	print_field("Connection latency: 0x%4.4x", le16_to_cpu(cmd->latency));
 	print_field("Supervision timeout: %d msec (0x%4.4x)",
-		btohs(cmd->supv_timeout) * 10, btohs(cmd->supv_timeout));
+					le16_to_cpu(cmd->supv_timeout) * 10,
+					le16_to_cpu(cmd->supv_timeout));
 	print_slot_625("Min connection length", cmd->min_length);
 	print_slot_625("Max connection length", cmd->max_length);
 }
@@ -5407,9 +5425,10 @@ static void le_conn_update_cmd(const void *data, uint8_t size)
 	print_handle(cmd->handle);
 	print_slot_125("Min connection interval", cmd->min_interval);
 	print_slot_125("Max connection interval", cmd->max_interval);
-	print_field("Connection latency: 0x%4.4x", btohs(cmd->latency));
+	print_field("Connection latency: 0x%4.4x", le16_to_cpu(cmd->latency));
 	print_field("Supervision timeout: %d msec (0x%4.4x)",
-		btohs(cmd->supv_timeout) * 10, btohs(cmd->supv_timeout));
+					le16_to_cpu(cmd->supv_timeout) * 10,
+					le16_to_cpu(cmd->supv_timeout));
 	print_slot_625("Min connection length", cmd->min_length);
 	print_slot_625("Max connection length", cmd->max_length);
 }
@@ -5475,7 +5494,7 @@ static void le_start_encrypt_cmd(const void *data, uint8_t size)
 	print_handle(cmd->handle);
 	print_random_number(cmd->number);
 	print_field("Encryption diversifier: 0x%4.4x",
-					btohs(cmd->diversifier));
+					le16_to_cpu(cmd->diversifier));
 	print_key("Long term key", cmd->ltk);
 }
 
@@ -5541,7 +5560,7 @@ static void le_test_end_rsp(const void *data, uint8_t size)
 	const struct bt_hci_rsp_le_test_end *rsp = data;
 
 	print_status(rsp->status);
-	print_field("Number of packets: %d", btohs(rsp->num_packets));
+	print_field("Number of packets: %d", le16_to_cpu(rsp->num_packets));
 }
 
 struct opcode_data {
@@ -6218,7 +6237,7 @@ static void conn_complete_evt(const void *data, uint8_t size)
 	print_encr_mode(evt->encr_mode);
 
 	if (evt->status == 0x00)
-		assign_handle(btohs(evt->handle), 0x00);
+		assign_handle(le16_to_cpu(evt->handle), 0x00);
 }
 
 static void conn_request_evt(const void *data, uint8_t size)
@@ -6239,7 +6258,7 @@ static void disconnect_complete_evt(const void *data, uint8_t size)
 	print_reason(evt->reason);
 
 	if (evt->status == 0x00)
-		release_handle(btohs(evt->handle));
+		release_handle(le16_to_cpu(evt->handle));
 }
 
 static void auth_complete_evt(const void *data, uint8_t size)
@@ -6314,16 +6333,16 @@ static void qos_setup_complete_evt(const void *data, uint8_t size)
 
 	print_service_type(evt->service_type);
 
-	print_field("Token rate: %d", btohl(evt->token_rate));
-	print_field("Peak bandwidth: %d", btohl(evt->peak_bandwidth));
-	print_field("Latency: %d", btohl(evt->latency));
-	print_field("Delay variation: %d", btohl(evt->delay_variation));
+	print_field("Token rate: %d", le32_to_cpu(evt->token_rate));
+	print_field("Peak bandwidth: %d", le32_to_cpu(evt->peak_bandwidth));
+	print_field("Latency: %d", le32_to_cpu(evt->latency));
+	print_field("Delay variation: %d", le32_to_cpu(evt->delay_variation));
 }
 
 static void cmd_complete_evt(const void *data, uint8_t size)
 {
 	const struct bt_hci_evt_cmd_complete *evt = data;
-	uint16_t opcode = btohs(evt->opcode);
+	uint16_t opcode = le16_to_cpu(evt->opcode);
 	uint16_t ogf = cmd_opcode_ogf(opcode);
 	uint16_t ocf = cmd_opcode_ocf(opcode);
 	const struct opcode_data *opcode_data = NULL;
@@ -6383,7 +6402,7 @@ static void cmd_complete_evt(const void *data, uint8_t size)
 static void cmd_status_evt(const void *data, uint8_t size)
 {
 	const struct bt_hci_evt_cmd_status *evt = data;
-	uint16_t opcode = btohs(evt->opcode);
+	uint16_t opcode = le16_to_cpu(evt->opcode);
 	uint16_t ogf = cmd_opcode_ogf(opcode);
 	uint16_t ocf = cmd_opcode_ocf(opcode);
 	const struct opcode_data *opcode_data = NULL;
@@ -6440,7 +6459,7 @@ static void num_completed_packets_evt(const void *data, uint8_t size)
 
 	print_field("Num handles: %d", evt->num_handles);
 	print_handle(evt->handle);
-	print_field("Count: %d", btohs(evt->count));
+	print_field("Count: %d", le16_to_cpu(evt->count));
 
 	if (size > sizeof(*evt))
 		packet_hexdump(data + sizeof(*evt), size - sizeof(*evt));
@@ -6560,10 +6579,11 @@ static void flow_spec_complete_evt(const void *data, uint8_t size)
 	print_flow_direction(evt->direction);
 	print_service_type(evt->service_type);
 
-	print_field("Token rate: %d", btohl(evt->token_rate));
-	print_field("Token bucket size: %d", btohl(evt->token_bucket_size));
-	print_field("Peak bandwidth: %d", btohl(evt->peak_bandwidth));
-	print_field("Access latency: %d", btohl(evt->access_latency));
+	print_field("Token rate: %d", le32_to_cpu(evt->token_rate));
+	print_field("Token bucket size: %d",
+					le32_to_cpu(evt->token_bucket_size));
+	print_field("Peak bandwidth: %d", le32_to_cpu(evt->peak_bandwidth));
+	print_field("Access latency: %d", le32_to_cpu(evt->access_latency));
 }
 
 static void inquiry_result_with_rssi_evt(const void *data, uint8_t size)
@@ -6602,8 +6622,8 @@ static void sync_conn_complete_evt(const void *data, uint8_t size)
 	print_link_type(evt->link_type);
 	print_field("Transmission interval: 0x%2.2x", evt->tx_interval);
 	print_field("Retransmission window: 0x%2.2x", evt->retrans_window);
-	print_field("RX packet length: %d", btohs(evt->rx_pkt_len));
-	print_field("TX packet length: %d", btohs(evt->tx_pkt_len));
+	print_field("RX packet length: %d", le16_to_cpu(evt->rx_pkt_len));
+	print_field("TX packet length: %d", le16_to_cpu(evt->tx_pkt_len));
 	print_air_mode(evt->air_mode);
 }
 
@@ -6615,8 +6635,8 @@ static void sync_conn_changed_evt(const void *data, uint8_t size)
 	print_handle(evt->handle);
 	print_field("Transmission interval: 0x%2.2x", evt->tx_interval);
 	print_field("Retransmission window: 0x%2.2x", evt->retrans_window);
-	print_field("RX packet length: %d", btohs(evt->rx_pkt_len));
-	print_field("TX packet length: %d", btohs(evt->tx_pkt_len));
+	print_field("RX packet length: %d", le16_to_cpu(evt->rx_pkt_len));
+	print_field("TX packet length: %d", le16_to_cpu(evt->tx_pkt_len));
 }
 
 static void sniff_subrating_evt(const void *data, uint8_t size)
@@ -6855,7 +6875,8 @@ static void num_completed_data_blocks_evt(const void *data, uint8_t size)
 {
 	const struct bt_hci_evt_num_completed_data_blocks *evt = data;
 
-	print_field("Total num data blocks: %d", btohs(evt->total_num_blocks));
+	print_field("Total num data blocks: %d",
+				le16_to_cpu(evt->total_num_blocks));
 	print_field("Num handles: %d", evt->num_handles);
 	print_handle(evt->handle);
 	print_field("Num packets: %d", evt->num_packets);
@@ -6895,10 +6916,11 @@ static void sync_train_received_evt(const void *data, uint8_t size)
 
 	print_status(evt->status);
 	print_bdaddr(evt->bdaddr);
-	print_field("Offset: 0x%8.8x", btohl(evt->offset));
+	print_field("Offset: 0x%8.8x", le32_to_cpu(evt->offset));
 	print_channel_map(evt->map);
 	print_lt_addr(evt->lt_addr);
-	print_field("Next broadcast instant: 0x%4.4x", btohs(evt->instant));
+	print_field("Next broadcast instant: 0x%4.4x",
+					le16_to_cpu(evt->instant));
 	print_interval(evt->interval);
 	print_field("Service Data: 0x%2.2x", evt->service_data);
 }
@@ -6909,8 +6931,8 @@ static void slave_broadcast_receive_evt(const void *data, uint8_t size)
 
 	print_bdaddr(evt->bdaddr);
 	print_lt_addr(evt->lt_addr);
-	print_field("Clock: 0x%8.8x", btohl(evt->clock));
-	print_field("Offset: 0x%8.8x", btohl(evt->offset));
+	print_field("Clock: 0x%8.8x", le32_to_cpu(evt->clock));
+	print_field("Offset: 0x%8.8x", le32_to_cpu(evt->offset));
 	print_field("Receive status: 0x%2.2x", evt->status);
 	print_broadcast_fragment(evt->fragment);
 	print_field("Length: %d", evt->length);
@@ -6976,11 +6998,12 @@ static void le_conn_complete_evt(const void *data, uint8_t size)
 	print_slot_125("Connection interval", evt->interval);
 	print_slot_125("Connection latency", evt->latency);
 	print_field("Supervision timeout: %d msec (0x%4.4x)",
-		btohs(evt->supv_timeout) * 10, btohs(evt->supv_timeout));
+					le16_to_cpu(evt->supv_timeout) * 10,
+					le16_to_cpu(evt->supv_timeout));
 	print_field("Master clock accuracy: 0x%2.2x", evt->clock_accuracy);
 
 	if (evt->status == 0x00)
-		assign_handle(btohs(evt->handle), 0x01);
+		assign_handle(le16_to_cpu(evt->handle), 0x01);
 }
 
 static void le_adv_report_evt(const void *data, uint8_t size)
@@ -7042,7 +7065,8 @@ static void le_conn_update_complete_evt(const void *data, uint8_t size)
 	print_slot_125("Connection interval", evt->interval);
 	print_slot_125("Connection latency", evt->latency);
 	print_field("Supervision timeout: %d msec (0x%4.4x)",
-		btohs(evt->supv_timeout) * 10, btohs(evt->supv_timeout));
+					le16_to_cpu(evt->supv_timeout) * 10,
+					le16_to_cpu(evt->supv_timeout));
 }
 
 static void le_remote_features_complete_evt(const void *data, uint8_t size)
@@ -7061,7 +7085,7 @@ static void le_long_term_key_request_evt(const void *data, uint8_t size)
 	print_handle(evt->handle);
 	print_random_number(evt->number);
 	print_field("Encryption diversifier: 0x%4.4x",
-					btohs(evt->diversifier));
+					le16_to_cpu(evt->diversifier));
 }
 
 struct subevent_data {
@@ -7326,7 +7350,7 @@ void packet_hci_command(struct timeval *tv, uint16_t index,
 					const void *data, uint16_t size)
 {
 	const hci_command_hdr *hdr = data;
-	uint16_t opcode = btohs(hdr->opcode);
+	uint16_t opcode = le16_to_cpu(hdr->opcode);
 	uint16_t ogf = cmd_opcode_ogf(opcode);
 	uint16_t ocf = cmd_opcode_ocf(opcode);
 	const struct opcode_data *opcode_data = NULL;
@@ -7459,8 +7483,8 @@ void packet_hci_acldata(struct timeval *tv, uint16_t index, bool in,
 					const void *data, uint16_t size)
 {
 	const struct bt_hci_acl_hdr *hdr = data;
-	uint16_t handle = btohs(hdr->handle);
-	uint16_t dlen = btohs(hdr->dlen);
+	uint16_t handle = le16_to_cpu(hdr->handle);
+	uint16_t dlen = le16_to_cpu(hdr->dlen);
 	uint8_t flags = acl_flags(handle);
 	char handle_str[16], extra_str[32];
 
@@ -7502,7 +7526,7 @@ void packet_hci_scodata(struct timeval *tv, uint16_t index, bool in,
 					const void *data, uint16_t size)
 {
 	const hci_sco_hdr *hdr = data;
-	uint16_t handle = btohs(hdr->handle);
+	uint16_t handle = le16_to_cpu(hdr->handle);
 	uint8_t flags = acl_flags(handle);
 	char handle_str[16], extra_str[32];