Monado OpenXR Runtime

Prober code interfacing to libudev. More...

#include "util/u_misc.h"
#include "p_prober.h"
#include <stdio.h>
#include <assert.h>
#include <string.h>
#include <libudev.h>
#include <inttypes.h>
#include <linux/hidraw.h>
Include dependency graph for p_udev.c:

Macros

#define HIDRAW_BUS_USB   3
 
#define HIDRAW_BUS_BLUETOOTH   5
 
#define HIDRAW_BUS_I2C_MAYBE_QUESTION_MARK   24
 

Functions

static void p_udev_enumerate_usb (struct prober *p, struct udev *udev)
 
static void p_udev_add_usb (struct prober_device *pdev, uint8_t dev_class, const char *product, const char *manufacturer, const char *serial, const char *path)
 
static void p_udev_enumerate_v4l2 (struct prober *p, struct udev *udev)
 
static void p_udev_add_v4l (struct prober_device *pdev, uint32_t v4l_index, uint32_t usb_iface, const char *path)
 
static void p_udev_enumerate_hidraw (struct prober *p, struct udev *udev)
 
static void p_udev_add_hidraw (struct prober_device *pdev, uint32_t interface, const char *path)
 
static int p_udev_get_interface_number (struct udev_device *raw_dev, uint16_t *interface_number)
 
static int p_udev_get_and_parse_uevent (struct udev_device *raw_dev, uint32_t *out_bus_type, uint16_t *out_vendor_id, uint16_t *out_product_id, char(*out_product_name)[64], uint64_t *out_bluetooth_serial)
 
static int p_udev_get_usb_hid_address (struct udev_device *raw_dev, uint32_t bus_type, uint8_t *out_dev_class, uint16_t *out_usb_bus, uint16_t *out_usb_addr)
 
static int p_udev_try_usb_relation_get_address (struct udev_device *raw_dev, uint8_t *out_dev_class, uint16_t *out_vendor_id, uint16_t *out_product_id, uint16_t *out_usb_bus, uint16_t *out_usb_addr, struct udev_device **out_usb_device)
 
static int p_udev_get_vendor_id_product (struct udev_device *usb_device_dev, uint16_t *vendor_id, uint16_t *product_id)
 
static int p_udev_get_usb_device_info (struct udev_device *usb_device_dev, uint8_t *out_dev_class, uint16_t *vendor_id, uint16_t *product_id, uint16_t *usb_bus, uint16_t *usb_addr)
 
static int p_udev_get_usb_device_address_path (struct udev_device *usb_dev, uint16_t *out_usb_bus, uint16_t *out_usb_addr)
 
static int p_udev_get_usb_device_address_sysfs (struct udev_device *usb_dev, uint16_t *out_usb_bus, uint16_t *out_usb_addr)
 
static int p_udev_get_sysattr_u16_base16 (struct udev_device *dev, const char *name, uint16_t *out_value)
 
static int p_udev_get_sysattr_u32_base10 (struct udev_device *dev, const char *name, uint32_t *out_value)
 
static XRT_MAYBE_UNUSED void p_udev_dump_device (struct udev_device *udev_dev, const char *name)
 
int p_udev_probe (struct prober *p)
 

Detailed Description

Prober code interfacing to libudev.

Author
Jakob Bornecrantz jakob.nosp@m.@col.nosp@m.labor.nosp@m.a.co.nosp@m.m