1*141a761fSMarkus Pfeiffer /* $FreeBSD: head/sys/dev/usb/usb_debug.h 250205 2013-05-03 10:13:29Z hselasky $ */ 212bd3c8bSSascha Wildner /*- 312bd3c8bSSascha Wildner * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. 412bd3c8bSSascha Wildner * 512bd3c8bSSascha Wildner * Redistribution and use in source and binary forms, with or without 612bd3c8bSSascha Wildner * modification, are permitted provided that the following conditions 712bd3c8bSSascha Wildner * are met: 812bd3c8bSSascha Wildner * 1. Redistributions of source code must retain the above copyright 912bd3c8bSSascha Wildner * notice, this list of conditions and the following disclaimer. 1012bd3c8bSSascha Wildner * 2. Redistributions in binary form must reproduce the above copyright 1112bd3c8bSSascha Wildner * notice, this list of conditions and the following disclaimer in the 1212bd3c8bSSascha Wildner * documentation and/or other materials provided with the distribution. 1312bd3c8bSSascha Wildner * 1412bd3c8bSSascha Wildner * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1512bd3c8bSSascha Wildner * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1612bd3c8bSSascha Wildner * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1712bd3c8bSSascha Wildner * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 1812bd3c8bSSascha Wildner * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1912bd3c8bSSascha Wildner * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2012bd3c8bSSascha Wildner * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2112bd3c8bSSascha Wildner * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2212bd3c8bSSascha Wildner * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2312bd3c8bSSascha Wildner * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2412bd3c8bSSascha Wildner * SUCH DAMAGE. 2512bd3c8bSSascha Wildner */ 2612bd3c8bSSascha Wildner 2712bd3c8bSSascha Wildner /* This file contains various factored out debug macros. */ 2812bd3c8bSSascha Wildner 2912bd3c8bSSascha Wildner #ifndef _USB_DEBUG_H_ 3012bd3c8bSSascha Wildner #define _USB_DEBUG_H_ 3112bd3c8bSSascha Wildner 3212bd3c8bSSascha Wildner /* Declare global USB debug variable. */ 3312bd3c8bSSascha Wildner extern int usb_debug; 3412bd3c8bSSascha Wildner 3512bd3c8bSSascha Wildner /* Check if USB debugging is enabled. */ 3612bd3c8bSSascha Wildner #ifdef USB_DEBUG_VAR 3712bd3c8bSSascha Wildner #ifdef USB_DEBUG 3812bd3c8bSSascha Wildner #define DPRINTFN(n,fmt,...) do { \ 3912bd3c8bSSascha Wildner if ((USB_DEBUG_VAR) >= (n)) { \ 40722d05c3SSascha Wildner kprintf("%s: " fmt, \ 417fd4e1a1SSascha Wildner __func__,## __VA_ARGS__); \ 4212bd3c8bSSascha Wildner } \ 4312bd3c8bSSascha Wildner } while (0) 4412bd3c8bSSascha Wildner #define DPRINTF(...) DPRINTFN(1, __VA_ARGS__) 4512bd3c8bSSascha Wildner #else 4612bd3c8bSSascha Wildner #define DPRINTF(...) do { } while (0) 4712bd3c8bSSascha Wildner #define DPRINTFN(...) do { } while (0) 4812bd3c8bSSascha Wildner #endif 4912bd3c8bSSascha Wildner #endif 5012bd3c8bSSascha Wildner 5112bd3c8bSSascha Wildner struct usb_interface; 5212bd3c8bSSascha Wildner struct usb_device; 5312bd3c8bSSascha Wildner struct usb_endpoint; 5412bd3c8bSSascha Wildner struct usb_xfer; 5512bd3c8bSSascha Wildner 5612bd3c8bSSascha Wildner void usb_dump_iface(struct usb_interface *iface); 5712bd3c8bSSascha Wildner void usb_dump_device(struct usb_device *udev); 5812bd3c8bSSascha Wildner void usb_dump_queue(struct usb_endpoint *ep); 5912bd3c8bSSascha Wildner void usb_dump_endpoint(struct usb_endpoint *ep); 6012bd3c8bSSascha Wildner void usb_dump_xfer(struct usb_xfer *xfer); 6112bd3c8bSSascha Wildner 625e41ab93SMarkus Pfeiffer #ifdef USB_DEBUG 635e41ab93SMarkus Pfeiffer extern unsigned int usb_port_reset_delay; 645e41ab93SMarkus Pfeiffer extern unsigned int usb_port_root_reset_delay; 655e41ab93SMarkus Pfeiffer extern unsigned int usb_port_reset_recovery; 665e41ab93SMarkus Pfeiffer extern unsigned int usb_port_powerup_delay; 675e41ab93SMarkus Pfeiffer extern unsigned int usb_port_resume_delay; 685e41ab93SMarkus Pfeiffer extern unsigned int usb_set_address_settle; 695e41ab93SMarkus Pfeiffer extern unsigned int usb_resume_delay; 705e41ab93SMarkus Pfeiffer extern unsigned int usb_resume_wait; 715e41ab93SMarkus Pfeiffer extern unsigned int usb_resume_recovery; 725e41ab93SMarkus Pfeiffer extern unsigned int usb_extra_power_up_time; 735e41ab93SMarkus Pfeiffer #else 745e41ab93SMarkus Pfeiffer #define usb_port_reset_delay USB_PORT_RESET_DELAY 755e41ab93SMarkus Pfeiffer #define usb_port_root_reset_delay USB_PORT_ROOT_RESET_DELAY 765e41ab93SMarkus Pfeiffer #define usb_port_reset_recovery USB_PORT_RESET_RECOVERY 775e41ab93SMarkus Pfeiffer #define usb_port_powerup_delay USB_PORT_POWERUP_DELAY 785e41ab93SMarkus Pfeiffer #define usb_port_resume_delay USB_PORT_RESUME_DELAY 795e41ab93SMarkus Pfeiffer #define usb_set_address_settle USB_SET_ADDRESS_SETTLE 805e41ab93SMarkus Pfeiffer #define usb_resume_delay USB_RESUME_DELAY 815e41ab93SMarkus Pfeiffer #define usb_resume_wait USB_RESUME_WAIT 825e41ab93SMarkus Pfeiffer #define usb_resume_recovery USB_RESUME_RECOVERY 835e41ab93SMarkus Pfeiffer #define usb_extra_power_up_time USB_EXTRA_POWER_UP_TIME 845e41ab93SMarkus Pfeiffer #endif 855e41ab93SMarkus Pfeiffer 8612bd3c8bSSascha Wildner #endif /* _USB_DEBUG_H_ */ 87