diff options
Diffstat (limited to 'drivers/staging/usbip/usbip_common.h')
-rw-r--r-- | drivers/staging/usbip/usbip_common.h | 141 |
1 files changed, 44 insertions, 97 deletions
diff --git a/drivers/staging/usbip/usbip_common.h b/drivers/staging/usbip/usbip_common.h index 9f809c315d92..4a641c552b78 100644 --- a/drivers/staging/usbip/usbip_common.h +++ b/drivers/staging/usbip/usbip_common.h @@ -17,42 +17,28 @@ * USA. */ -#ifndef __VHCI_COMMON_H -#define __VHCI_COMMON_H - - -#include <linux/version.h> +#ifndef __USBIP_COMMON_H +#define __USBIP_COMMON_H + +#include <linux/compiler.h> +#include <linux/device.h> +#include <linux/interrupt.h> +#include <linux/net.h> +#include <linux/printk.h> +#include <linux/spinlock.h> +#include <linux/types.h> #include <linux/usb.h> -#include <asm/byteorder.h> -#include <net/sock.h> - -/*-------------------------------------------------------------------------*/ - -/* - * define macros to print messages - */ - -/** - * usbip_udbg - print debug messages if CONFIG_USB_IP_DEBUG_ENABLE is defined - * @fmt: - * @args: - */ +#include <linux/wait.h> -#ifdef CONFIG_USB_IP_DEBUG_ENABLE - -#define usbip_udbg(fmt, args...) \ - do { \ - printk(KERN_DEBUG "%-10s:(%s,%d) %s: " fmt, \ - (in_interrupt() ? "interrupt" : (current)->comm),\ - __FILE__, __LINE__, __func__, ##args); \ - } while (0) +#define USBIP_VERSION "1.0.0" -#else /* CONFIG_USB_IP_DEBUG_ENABLE */ - -#define usbip_udbg(fmt, args...) do { } while (0) - -#endif /* CONFIG_USB_IP_DEBUG_ENABLE */ +#undef pr_fmt +#ifdef DEBUG +#define pr_fmt(fmt) KBUILD_MODNAME ": %s:%d: " fmt, __func__, __LINE__ +#else +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +#endif enum { usbip_debug_xmit = (1 << 0), @@ -87,16 +73,16 @@ extern struct device_attribute dev_attr_usbip_debug; #define usbip_dbg_with_flag(flag, fmt, args...) \ do { \ if (flag & usbip_debug_flag) \ - usbip_udbg(fmt , ##args); \ + pr_debug(fmt, ##args); \ } while (0) -#define usbip_dbg_sysfs(fmt, args...) \ +#define usbip_dbg_sysfs(fmt, args...) \ usbip_dbg_with_flag(usbip_debug_sysfs, fmt , ##args) -#define usbip_dbg_xmit(fmt, args...) \ +#define usbip_dbg_xmit(fmt, args...) \ usbip_dbg_with_flag(usbip_debug_xmit, fmt , ##args) -#define usbip_dbg_urb(fmt, args...) \ +#define usbip_dbg_urb(fmt, args...) \ usbip_dbg_with_flag(usbip_debug_urb, fmt , ##args) -#define usbip_dbg_eh(fmt, args...) \ +#define usbip_dbg_eh(fmt, args...) \ usbip_dbg_with_flag(usbip_debug_eh, fmt , ##args) #define usbip_dbg_vhci_rh(fmt, args...) \ @@ -107,42 +93,16 @@ extern struct device_attribute dev_attr_usbip_debug; usbip_dbg_with_flag(usbip_debug_vhci_rx, fmt , ##args) #define usbip_dbg_vhci_tx(fmt, args...) \ usbip_dbg_with_flag(usbip_debug_vhci_tx, fmt , ##args) -#define usbip_dbg_vhci_sysfs(fmt, args...) \ +#define usbip_dbg_vhci_sysfs(fmt, args...) \ usbip_dbg_with_flag(usbip_debug_vhci_sysfs, fmt , ##args) -#define usbip_dbg_stub_cmp(fmt, args...) \ +#define usbip_dbg_stub_cmp(fmt, args...) \ usbip_dbg_with_flag(usbip_debug_stub_cmp, fmt , ##args) -#define usbip_dbg_stub_rx(fmt, args...) \ +#define usbip_dbg_stub_rx(fmt, args...) \ usbip_dbg_with_flag(usbip_debug_stub_rx, fmt , ##args) -#define usbip_dbg_stub_tx(fmt, args...) \ +#define usbip_dbg_stub_tx(fmt, args...) \ usbip_dbg_with_flag(usbip_debug_stub_tx, fmt , ##args) - -/** - * usbip_uerr - print error messages - * @fmt: - * @args: - */ -#define usbip_uerr(fmt, args...) \ - do { \ - printk(KERN_ERR "%-10s: ***ERROR*** (%s,%d) %s: " fmt, \ - (in_interrupt() ? "interrupt" : (current)->comm),\ - __FILE__, __LINE__, __func__, ##args); \ - } while (0) - -/** - * usbip_uinfo - print information messages - * @fmt: - * @args: - */ -#define usbip_uinfo(fmt, args...) \ - do { \ - printk(KERN_INFO "usbip: " fmt , ## args); \ - } while (0) - - -/*-------------------------------------------------------------------------*/ - /* * USB/IP request headers. * Currently, we define 4 request types: @@ -185,7 +145,7 @@ struct usbip_header_basic { #define USBIP_DIR_IN 1 __u32 direction; __u32 ep; /* endpoint number */ -} __attribute__ ((packed)); +} __packed; /* * An additional header for a CMD_SUBMIT packet. @@ -212,43 +172,40 @@ struct usbip_header_cmd_submit { /* set setup packet data for a CTRL request */ unsigned char setup[8]; -} __attribute__ ((packed)); +} __packed; /* * An additional header for a RET_SUBMIT packet. */ struct usbip_header_ret_submit { __s32 status; - __s32 actual_length; /* returned data length */ - __s32 start_frame; /* ISO and INT */ - __s32 number_of_packets; /* ISO only */ - __s32 error_count; /* ISO only */ -} __attribute__ ((packed)); + __s32 actual_length; /* returned data length */ + __s32 start_frame; /* ISO and INT */ + __s32 number_of_packets; /* ISO only */ + __s32 error_count; /* ISO only */ +} __packed; /* * An additional header for a CMD_UNLINK packet. */ struct usbip_header_cmd_unlink { - __u32 seqnum; /* URB's seqnum which will be unlinked */ -} __attribute__ ((packed)); - + __u32 seqnum; /* URB's seqnum that will be unlinked */ +} __packed; /* * An additional header for a RET_UNLINK packet. */ struct usbip_header_ret_unlink { __s32 status; -} __attribute__ ((packed)); - +} __packed; /* the same as usb_iso_packet_descriptor but packed for pdu */ struct usbip_iso_packet_descriptor { __u32 offset; - __u32 length; /* expected length */ + __u32 length; /* expected length */ __u32 actual_length; __u32 status; -} __attribute__ ((packed)); - +} __packed; /* * All usbip packets use a common header to keep code simple. @@ -262,18 +219,11 @@ struct usbip_header { struct usbip_header_cmd_unlink cmd_unlink; struct usbip_header_ret_unlink ret_unlink; } u; -} __attribute__ ((packed)); - - - - -/*-------------------------------------------------------------------------*/ - +} __packed; int usbip_xmit(int, struct socket *, char *, int, int); int usbip_sendmsg(struct socket *, struct msghdr *, int); - static inline int interface_to_busnum(struct usb_interface *interface) { struct usb_device *udev = interface_to_usbdev(interface); @@ -304,7 +254,6 @@ int set_sockaddr(struct socket *socket, struct sockaddr_storage *ss); void usbip_dump_urb(struct urb *purb); void usbip_dump_header(struct usbip_header *pdu); - struct usbip_device; enum usbip_side { @@ -331,7 +280,6 @@ enum usbip_status { /* a common structure for stub_device and vhci_device */ struct usbip_device { enum usbip_side side; - enum usbip_status status; /* lock for status */ @@ -370,23 +318,22 @@ struct usbip_device { } eh_ops; }; - void usbip_pack_pdu(struct usbip_header *pdu, struct urb *urb, int cmd, - int pack); + int pack); void usbip_header_correct_endian(struct usbip_header *pdu, int send); /* some members of urb must be substituted before. */ int usbip_recv_xbuff(struct usbip_device *ud, struct urb *urb); /* some members of urb must be substituted before. */ int usbip_recv_iso(struct usbip_device *ud, struct urb *urb); +/* some members of urb must be substituted before. */ +int usbip_pad_iso(struct usbip_device *ud, struct urb *urb); void *usbip_alloc_iso_desc_pdu(struct urb *urb, ssize_t *bufflen); - /* usbip_event.c */ int usbip_start_eh(struct usbip_device *ud); void usbip_stop_eh(struct usbip_device *ud); void usbip_event_add(struct usbip_device *ud, unsigned long event); int usbip_event_happened(struct usbip_device *ud); - -#endif +#endif /* __USBIP_COMMON_H */ |