hid_device
struct hid_device *hd = NULL;
struct hid_device *hd = NULL;
struct hid_device *hd = NULL;
hid_sdp_query(bdaddr_t const *local, struct hid_device *hd, int32_t *error)
struct hid_device hd;
static int32_t hid_sdp_query (bdaddr_t const *local, struct hid_device *hd, int32_t *error);
LIST_ENTRY(hid_device) next; /* link to the next */
typedef struct hid_device hid_device_t;
typedef struct hid_device * hid_device_p;
void print_hid_device (hid_device_p hid_device, FILE *f);
hid_device_p hid_device;
hid_device = get_hid_device(&s->bdaddr);
assert(hid_device != NULL);
for (d = hid_start_parse(hid_device->desc, 1 << hid_input, -1);
if (hid_device->keyboard && s->srv->uinput) {
if (hid_device->keyboard) {
if (!hid_device->battery_power)
if (MAGIC_MOUSE(hid_device) && s->ctx) {
if (hid_device->keyboard) {
if (hid_device->mouse && s->srv->uinput &&
hid_device_p hid_device = get_hid_device(&s->bdaddr);
if (hid_device && MAGIC_MOUSE(hid_device)) {
hid_device_p hid_device;
hid_device = get_hid_device(&s->bdaddr);
assert(hid_device != NULL);
for (d = hid_start_parse(hid_device->desc, 1 << hid_output, -1);
if (found && s->srv->uinput && hid_device->keyboard)
hid_device = (hid_device_t *) calloc(1, sizeof(*hid_device));
if (hid_device == NULL) {
hid_device->new_device = 1;
if (check_hid_device(hid_device))
LIST_INSERT_HEAD(&hid_devices,hid_device,next);
free_hid_device(hid_device);
hid_device = NULL;
memcpy(&hid_device->bdaddr, &$2, sizeof(hid_device->bdaddr));
if (hid_device->name != NULL) {
free(hid_device->name);
hid_device->name = NULL;
hid_device->name = strdup($2);
if (hid_device->name == NULL) {
hid_device->vendor_id = $2;
hid_device->product_id = $2;
hid_device->version = $2;
hid_device->control_psm = $2;
hid_device->interrupt_psm = $2;
hid_device->reconnect_initiate = 1;
hid_device->reconnect_initiate = 0;
hid_device->battery_power = 1;
hid_device->battery_power = 0;
hid_device->normally_connectable = 1;
hid_device->normally_connectable = 0;
if (hid_device->desc != NULL)
hid_dispose_report_desc(hid_device->desc);
hid_device->desc = hid_use_report_desc((unsigned char *) buffer, hid_descriptor_size);
if (hid_device->desc == NULL) {
static int32_t check_hid_device(hid_device_p hid_device);
static void free_hid_device (hid_device_p hid_device);
static hid_device_t *hid_device = NULL;
static LIST_HEAD(, hid_device) hid_devices;