⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbip_common.h

📁 linux virtual usb host source
💻 H
字号:
/* * Copyright (C) 2005-2007 Takahiro Hirofuchi */#ifndef _USBIP_COMMON_H#define _USBIP_COMMON_H#include <unistd.h>#include <stdint.h>#include <syslog.h>#include <errno.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <strings.h>#include <sysfs/libsysfs.h>#include <netdb.h>#include <sys/socket.h>#ifndef USBIDS_FILE#define USBIDS_FILE "/usr/share/hwdata/usb.ids"#endif//#include <linux/usb_ch9.h>enum usb_device_speed {	USB_SPEED_UNKNOWN = 0,                  /* enumerating */	USB_SPEED_LOW, USB_SPEED_FULL,          /* usb 1.1 */	USB_SPEED_HIGH,                         /* usb 2.0 */	USB_SPEED_VARIABLE                      /* wireless (usb 2.5) */};/* FIXME: how to sync with drivers/usbip_common.h ? */enum usbip_device_status{	/* sdev is available. */	SDEV_ST_AVAILABLE = 0x01,	/* sdev is now used. */	SDEV_ST_USED,	/* sdev is unusable because of a fatal error. */	SDEV_ST_ERROR,	/* vdev does not connect a remote device. */	VDEV_ST_NULL,	/* vdev is used, but the USB address is not assigned yet */	VDEV_ST_NOTASSIGNED,	VDEV_ST_USED,	VDEV_ST_ERROR};extern int usbip_use_syslog;extern int usbip_use_stderr;extern int usbip_use_debug ;#define err(fmt, args...)	do { \	if (usbip_use_syslog) { \		syslog(LOG_ERR, "usbip err: %13s:%4d (%-12s) " fmt "\n", \			__FILE__, __LINE__, __FUNCTION__,  ##args); \	} \	if (usbip_use_stderr) { \		fprintf(stderr, "usbip err: %13s:%4d (%-12s) " fmt "\n", \			__FILE__, __LINE__, __FUNCTION__,  ##args); \	} \} while (0)#define notice(fmt, args...)	do { \	if (usbip_use_syslog) { \		syslog(LOG_DEBUG, "usbip: " fmt, ##args); \	} \	if (usbip_use_stderr) { \		fprintf(stderr, "usbip: " fmt "\n",  ##args); \	} \} while (0)#define info(fmt, args...)	do { \	if (usbip_use_syslog) { \		syslog(LOG_DEBUG, fmt, ##args); \	} \	if (usbip_use_stderr) { \		fprintf(stderr, fmt "\n",  ##args); \	} \} while (0)#define dbg(fmt, args...)	do { \	if (usbip_use_debug) { \		if (usbip_use_syslog) { \			syslog(LOG_DEBUG, "usbip dbg: %13s:%4d (%-12s) " fmt, \				__FILE__, __LINE__, __FUNCTION__,  ##args); \		} \		if (usbip_use_stderr) { \			fprintf(stderr, "usbip dbg: %13s:%4d (%-12s) " fmt "\n", \				__FILE__, __LINE__, __FUNCTION__,  ##args); \		} \	} \} while (0)#define BUG()	do { err("sorry, it's a bug"); abort(); } while (0)struct usb_interface {	uint8_t bInterfaceClass;	uint8_t bInterfaceSubClass;	uint8_t bInterfaceProtocol;	uint8_t padding;	/* alignment */} __attribute__((packed));struct usb_device {	char path[SYSFS_PATH_MAX];	char busid[SYSFS_BUS_ID_SIZE];	uint32_t busnum;	uint32_t devnum;	uint32_t speed;	uint16_t idVendor;	uint16_t idProduct;	uint16_t bcdDevice;	uint8_t bDeviceClass;	uint8_t bDeviceSubClass;	uint8_t bDeviceProtocol;	uint8_t bConfigurationValue;	uint8_t bNumConfigurations;	uint8_t bNumInterfaces;} __attribute__((packed));#define to_string(s)	#svoid dump_usb_interface(struct usb_interface *);void dump_usb_device(struct usb_device *);int read_usb_device(struct sysfs_device *sdev, struct usb_device *udev);int read_attr_value(struct sysfs_device *dev, const char *name, const char *format);int read_usb_interface(struct usb_device *udev, int i, struct usb_interface *uinf);const char *usbip_speed_string(int num);const char *usbip_status_string(int32_t status);int usbip_names_init(char *);void usbip_names_free(void);void usbip_names_get_product(char *buff, size_t size, uint16_t vendor, uint16_t product);void usbip_names_get_class(char *buff, size_t size, uint8_t class, uint8_t subclass, uint8_t protocol);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -