00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00035 #ifndef LIBUSB_DEBUG_H_
00036 #define LIBUSB_DEBUG_H_
00037 #include <stdio.h>
00038 #include <inttypes.h>
00039 #include <usb/usb.h>
00040 #include <assert.h>
00041
00042 void usb_dump_standard_descriptor(FILE *, const char *, const char *,
00043 const uint8_t *, size_t);
00044
00046 typedef enum {
00050 USB_LOG_LEVEL_FATAL,
00051
00056 USB_LOG_LEVEL_ERROR,
00057
00061 USB_LOG_LEVEL_WARNING,
00062
00070 USB_LOG_LEVEL_INFO,
00071
00073 USB_LOG_LEVEL_DEBUG,
00074
00076 USB_LOG_LEVEL_DEBUG2,
00077
00079 USB_LOG_LEVEL_MAX
00080 } usb_log_level_t;
00081
00083 #ifdef CONFIG_USB_RELEASE_BUILD
00084 # define USB_LOG_LEVEL_DEFAULT USB_LOG_LEVEL_INFO
00085 #else
00086 # define USB_LOG_LEVEL_DEFAULT USB_LOG_LEVEL_DEBUG
00087 #endif
00088
00089 void usb_log_enable(usb_log_level_t, const char *);
00090
00091 void usb_log_printf(usb_log_level_t, const char *, ...)
00092 PRINTF_ATTRIBUTE(2, 3);
00093
00095 #define usb_log_fatal(format, ...) \
00096 usb_log_printf(USB_LOG_LEVEL_FATAL, format, ##__VA_ARGS__)
00097
00099 #define usb_log_error(format, ...) \
00100 usb_log_printf(USB_LOG_LEVEL_ERROR, format, ##__VA_ARGS__)
00101
00103 #define usb_log_warning(format, ...) \
00104 usb_log_printf(USB_LOG_LEVEL_WARNING, format, ##__VA_ARGS__)
00105
00107 #define usb_log_info(format, ...) \
00108 usb_log_printf(USB_LOG_LEVEL_INFO, format, ##__VA_ARGS__)
00109
00111 #define usb_log_debug(format, ...) \
00112 usb_log_printf(USB_LOG_LEVEL_DEBUG, format, ##__VA_ARGS__)
00113
00115 #define usb_log_debug2(format, ...) \
00116 usb_log_printf(USB_LOG_LEVEL_DEBUG2, format, ##__VA_ARGS__)
00117
00118 const char *usb_debug_str_buffer(const uint8_t *, size_t, size_t);
00119
00120
00121 #endif
00122