int bt_send(struct net_buf *buf) { BT_DBG("buf %p len %u", buf, buf->len); bt_monitor_send(bt_monitor_opcode(buf), buf->data, buf->len); return bt_dev.drv->send(buf); }
int bt_recv(struct net_buf *buf) { BT_DBG("buf %p len %u", buf, buf->len); bt_monitor_send(bt_monitor_opcode(buf), buf->data, buf->len); /* Queue to RAW rx queue */ net_buf_put(raw_rx, buf); return 0; }
void bt_monitor_new_index(uint8_t type, uint8_t bus, bt_addr_t *addr, const char *name) { struct bt_monitor_new_index pkt; pkt.type = type; pkt.bus = bus; memcpy(pkt.bdaddr, addr, 6); strncpy(pkt.name, name, sizeof(pkt.name) - 1); pkt.name[sizeof(pkt.name) - 1] = '\0'; bt_monitor_send(BT_MONITOR_NEW_INDEX, &pkt, sizeof(pkt)); }
static int monitor_console_out(int c) { static char buf[128]; static size_t len; int key; key = irq_lock(); if (c != '\n' && len < sizeof(buf) - 1) { buf[len++] = c; irq_unlock(key); return c; } buf[len++] = '\0'; bt_monitor_send(BT_MONITOR_SYSTEM_NOTE, buf, len); len = 0; irq_unlock(key); return c; }
static int monitor_console_out(int c) { static char buf[128]; static size_t len; if (atomic_test_and_set_bit(&flags, BT_CONSOLE_BUSY)) { return c; } if (c != '\n' && len < sizeof(buf) - 1) { buf[len++] = c; atomic_clear_bit(&flags, BT_CONSOLE_BUSY); return c; } buf[len++] = '\0'; bt_monitor_send(BT_MONITOR_SYSTEM_NOTE, buf, len); len = 0; atomic_clear_bit(&flags, BT_CONSOLE_BUSY); return c; }