Esempio n. 1
0
static void smp_cmd_ident_addr_info_dump(int level, struct frame *frm)
{
	uint8_t type = p_get_u8(frm);
	char addr[18];

	p_indent(level, frm);
	p_ba2str((bdaddr_t *) frm, addr);
	printf("bdaddr %s (%s)\n", addr, type == 0x00 ? "Public" : "Random");
}
Esempio n. 2
0
static inline void bdaddr_dump(int level, char *str, struct frame *frm)
{
	char addr[18];

	p_ba2str(frm->ptr, addr);

	p_indent(level, frm);
	printf("%s: bdaddr %s\n", str, addr);
}
Esempio n. 3
0
void csr_dump(int level, struct frame *frm)
{
	uint8_t desc, cid, type;
	uint16_t handle, master, addr;

	desc = CSR_U8(frm);

	cid = desc & 0x3f;

	switch (cid) {
	case 2:
		bccmd_dump(level, frm);
		break;

	case 20:
		type = CSR_U8(frm);

		if (!p_filter(FILT_LMP)) {
			switch (type) {
			case 0x0f:
				frm->handle =  ((uint8_t *) frm->ptr)[17];
				frm->master = 0;
				frm->len--;
				lmp_dump(level, frm);
				return;
			case 0x10:
				frm->handle = ((uint8_t *) frm->ptr)[17];
				frm->master = 1;
				frm->len--;
				lmp_dump(level, frm);
				return;
			case 0x12:
				handle = CSR_U16(frm);
				master = CSR_U16(frm);
				addr = CSR_U16(frm);
				p_indent(level, frm);
				printf("FHS: handle %d addr %d (%s)\n", handle,
					addr, master ? "master" : "slave");
				if (!master) {
					char addr[18];
					p_ba2str((bdaddr_t *) frm->ptr, addr);
					p_indent(level + 1, frm);
					printf("bdaddr %s class "
						"0x%2.2x%2.2x%2.2x\n", addr,
						((uint8_t *) frm->ptr)[8],
						((uint8_t *) frm->ptr)[7],
						((uint8_t *) frm->ptr)[6]);
				}
				return;
			case 0x7b:
				p_indent(level, frm);
				printf("LMP(r): duplicate (same SEQN)\n");
				return;
			}
		}

		p_indent(level, frm);
		printf("CSR: Debug (type 0x%2.2x)\n", type);
		raw_dump(level, frm);
		break;

	default:
		p_indent(level, frm);
		printf("CSR: %s (channel %d)%s\n", cid2str(cid), cid, frag2str(desc));
		raw_dump(level, frm);
		break;
	}
}