aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/include/usbh/debug_helpers.h
diff options
context:
space:
mode:
Diffstat (limited to 'os/hal/include/usbh/debug_helpers.h')
-rw-r--r--os/hal/include/usbh/debug_helpers.h163
1 files changed, 163 insertions, 0 deletions
diff --git a/os/hal/include/usbh/debug_helpers.h b/os/hal/include/usbh/debug_helpers.h
new file mode 100644
index 0000000..b09bd0a
--- /dev/null
+++ b/os/hal/include/usbh/debug_helpers.h
@@ -0,0 +1,163 @@
+#ifndef USBH_INTERNAL_H_
+#error "Internal use only"
+#endif
+
+#ifndef _USBH_DEBUG_HELPER_ENABLE_TRACE
+#error "_USBH_DEBUG_HELPER_ENABLE_TRACE must be set"
+#endif
+#ifndef _USBH_DEBUG_HELPER_ENABLE_INFO
+#error "_USBH_DEBUG_HELPER_ENABLE_INFO must be set"
+#endif
+#ifndef _USBH_DEBUG_HELPER_ENABLE_WARNINGS
+#error "_USBH_DEBUG_HELPER_ENABLE_WARNINGS must be set"
+#endif
+#ifndef _USBH_DEBUG_HELPER_ENABLE_ERRORS
+#error "_USBH_DEBUG_HELPER_ENABLE_ERRORS must be set"
+#endif
+
+#define _usbh_dbg_host(s) _usbh_dbg(host, s)
+#define _usbh_dbg_port(s) _usbh_dbg(port->device.host, s)
+#define _usbh_dbg_dev(s) _usbh_dbg(dev->host, s)
+#define _usbh_dbg_ep(lvl, s) _usbh_ldbg(ep->device->host, ep->trace_level, lvl, s)
+#define _usbh_dbg_urb(lvl, s) _usbh_ldbg(urb->ep->device->host, urb->ep->trace_level, lvl, s)
+
+#define _usbh_dbgf_host(f, ...) _usbh_dbgf(host, f, ##__VA_ARGS__)
+#define _usbh_dbgf_port(f, ...) _usbh_dbgf(port->device.host, f, ##__VA_ARGS__)
+#define _usbh_dbgf_dev(f, ...) _usbh_dbgf(dev->host, f, ##__VA_ARGS__)
+#define _usbh_dbgf_ep(f, lvl, ...) _usbh_ldbgf(ep->device->host, ep->trace_level, lvl, "\t%s: " f, ep->name, ##__VA_ARGS__)
+#define _usbh_dbgf_urb(f, lvl, ...) _usbh_ldbgf(urb->ep->device->host, urb->ep->trace_level, lvl, "\t%s: " f, urb->ep->name, ##__VA_ARGS__)
+
+#if defined(_USBH_DEBUG_HELPER_CLASS_DRIVER)
+#define _usbh_dbg_classdrv(drv, s) _usbh_dbg(drv->dev->host, s)
+#define _usbh_dbgf_classdrv(drv, f, ...) _usbh_dbgf(drv->dev->host, f, ##__VA_ARGS__)
+#endif
+
+#define _usbh_dbg_dummy do {} while(0)
+
+#if _USBH_DEBUG_HELPER_ENABLE_TRACE
+#define udbg(s) _usbh_dbg_host(s)
+#define uportdbg(s) _usbh_dbg_port(s)
+#define udevdbg(s) _usbh_dbg_dev(s)
+#define uepdbg(s) _usbh_dbg_ep(4, s)
+#define uurbdbg(s) _usbh_dbg_urb(4, s)
+#define udbgf(f, ...) _usbh_dbgf_host(f, ##__VA_ARGS__)
+#define uportdbgf(f, ...) _usbh_dbgf_port(f, ##__VA_ARGS__)
+#define udevdbgf(f, ...) _usbh_dbgf_dev(f, ##__VA_ARGS__)
+#define uepdbgf(f, ...) _usbh_dbgf_ep(f, 4, ##__VA_ARGS__)
+#define uurbdbgf(f, ...) _usbh_dbgf_urb(f, 4, ##__VA_ARGS__)
+#else
+#define udbg(s) _usbh_dbg_dummy
+#define uportdbg(s) _usbh_dbg_dummy
+#define udevdbg(s) _usbh_dbg_dummy
+#define uurbdbg(s) _usbh_dbg_dummy
+#define uepdbg(s) _usbh_dbg_dummy
+#define udbgf(f, ...) _usbh_dbg_dummy
+#define uportdbgf(f, ...) _usbh_dbg_dummy
+#define udevdbgf(f, ...) _usbh_dbg_dummy
+#define uepdbgf(f, ...) _usbh_dbg_dummy
+#define uurbdbgf(f, ...) _usbh_dbg_dummy
+#endif
+
+#if _USBH_DEBUG_HELPER_ENABLE_INFO
+#define uinfo(s) _usbh_dbg_host(s)
+#define uportinfo(s) _usbh_dbg_port(s)
+#define udevinfo(s) _usbh_dbg_dev(s)
+#define uepinfo(s) _usbh_dbg_ep(3, s)
+#define uurbinfo(s) _usbh_dbg_urb(3, s)
+#define uinfof(f, ...) _usbh_dbgf_host(f, ##__VA_ARGS__)
+#define uportinfof(f, ...) _usbh_dbgf_port(f, ##__VA_ARGS__)
+#define udevinfof(f, ...) _usbh_dbgf_dev(f, ##__VA_ARGS__)
+#define uepinfof(f, ...) _usbh_dbgf_ep(f, 3, ##__VA_ARGS__)
+#define uurbinfof(f, ...) _usbh_dbgf_urb(f, 3, ##__VA_ARGS__)
+#else
+#define uinfo(s) _usbh_dbg_dummy
+#define udevinfo(s) _usbh_dbg_dummy
+#define uportinfo(s) _usbh_dbg_dummy
+#define uepinfo(s) _usbh_dbg_dummy
+#define uurbinfo(s) _usbh_dbg_dummy
+#define uinfof(f, ...) _usbh_dbg_dummy
+#define uportinfof(f, ...) _usbh_dbg_dummy
+#define udevinfof(f, ...) _usbh_dbg_dummy
+#define uepinfof(f, ...) _usbh_dbg_dummy
+#define uurbinfof(f, ...) _usbh_dbg_dummy
+#endif
+
+#if _USBH_DEBUG_HELPER_ENABLE_WARNINGS
+#define uwarn(s) _usbh_dbg_host(s)
+#define uportwarn(s) _usbh_dbg_port(s)
+#define udevwarn(s) _usbh_dbg_dev(s)
+#define uepwarn(s) _usbh_dbg_ep(3, s)
+#define uurbwarn(s) _usbh_dbg_urb(3, s)
+#define uwarnf(f, ...) _usbh_dbgf_host(f, ##__VA_ARGS__)
+#define uportwarnf(f, ...) _usbh_dbgf_port(f, ##__VA_ARGS__)
+#define udevwarnf(f, ...) _usbh_dbgf_dev(f, ##__VA_ARGS__)
+#define uepwarnf(f, ...) _usbh_dbgf_ep(f, 3, ##__VA_ARGS__)
+#define uurbwarnf(f, ...) _usbh_dbgf_urb(f, 3, ##__VA_ARGS__)
+#else
+#define uwarn(s) _usbh_dbg_dummy
+#define udevwarn(s) _usbh_dbg_dummy
+#define uportwarn(s) _usbh_dbg_dummy
+#define uepwarn(s) _usbh_dbg_dummy
+#define uurbwarn(s) _usbh_dbg_dummy
+#define uwarnf(f, ...) _usbh_dbg_dummy
+#define uportwarnf(f, ...) _usbh_dbg_dummy
+#define udevwarnf(f, ...) _usbh_dbg_dummy
+#define uepwarnf(f, ...) _usbh_dbg_dummy
+#define uurbwarnf(f, ...) _usbh_dbg_dummy
+#endif
+
+
+#if _USBH_DEBUG_HELPER_ENABLE_ERRORS
+#define uerr(s) _usbh_dbg_host(s)
+#define uporterr(s) _usbh_dbg_port(s)
+#define udeverr(s) _usbh_dbg_dev(s)
+#define ueperr(s) _usbh_dbg_ep(3, s)
+#define uurberr(s) _usbh_dbg_urb(3, s)
+#define uerrf(f, ...) _usbh_dbgf_host(f, ##__VA_ARGS__)
+#define uporterrf(f, ...) _usbh_dbgf_port(f, ##__VA_ARGS__)
+#define udeverrf(f, ...) _usbh_dbgf_dev(f, ##__VA_ARGS__)
+#define ueperrf(f, ...) _usbh_dbgf_ep(f, 3, ##__VA_ARGS__)
+#define uurberrf(f, ...) _usbh_dbgf_urb(f, 3, ##__VA_ARGS__)
+#else
+#define uerr(s) _usbh_dbg_dummy
+#define udeverr(s) _usbh_dbg_dummy
+#define uporterr(s) _usbh_dbg_dummy
+#define ueperr(s) _usbh_dbg_dummy
+#define uurberr(s) _usbh_dbg_dummy
+#define uerrf(f, ...) _usbh_dbg_dummy
+#define uporterrf(f, ...) _usbh_dbg_dummy
+#define udeverrf(f, ...) _usbh_dbg_dummy
+#define ueperrf(f, ...) _usbh_dbg_dummy
+#define uurberrf(f, ...) _usbh_dbg_dummy
+#endif
+
+#if defined(_USBH_DEBUG_HELPER_CLASS_DRIVER)
+#if _USBH_DEBUG_HELPER_ENABLE_TRACE
+#define uclassdrvdbg(s) _usbh_dbg_classdrv(_USBH_DEBUG_HELPER_CLASS_DRIVER, s)
+#define uclassdrvdbgf(f, ...) _usbh_dbgf_classdrv(_USBH_DEBUG_HELPER_CLASS_DRIVER, f, ##__VA_ARGS__)
+#else
+#define uclassdrvdbg(s) _usbh_dbg_dummy
+#define uclassdrvdbgf(f, ...) _usbh_dbg_dummy
+#endif
+#if _USBH_DEBUG_HELPER_ENABLE_INFO
+#define uclassdrvinfo(s) _usbh_dbg_classdrv(_USBH_DEBUG_HELPER_CLASS_DRIVER, s)
+#define uclassdrvinfof(f, ...) _usbh_dbgf_classdrv(_USBH_DEBUG_HELPER_CLASS_DRIVER, f, ##__VA_ARGS__)
+#else
+#define uclassdrvinfo(s) _usbh_dbg_dummy
+#define uclassdrvinfof(f, ...) _usbh_dbg_dummy
+#endif
+#if _USBH_DEBUG_HELPER_ENABLE_WARNINGS
+#define uclassdrvwarn(s) _usbh_dbg_classdrv(_USBH_DEBUG_HELPER_CLASS_DRIVER, s)
+#define uclassdrvwarnf(f, ...) _usbh_dbgf_classdrv(_USBH_DEBUG_HELPER_CLASS_DRIVER, f, ##__VA_ARGS__)
+#else
+#define uclassdrvwarn(s) _usbh_dbg_dummy
+#define uclassdrvwarnf(f, ...) _usbh_dbg_dummy
+#endif
+#if _USBH_DEBUG_HELPER_ENABLE_ERRORS
+#define uclassdrverr(s) _usbh_dbg_classdrv(_USBH_DEBUG_HELPER_CLASS_DRIVER, s)
+#define uclassdrverrf(f, ...) _usbh_dbgf_classdrv(_USBH_DEBUG_HELPER_CLASS_DRIVER, f, ##__VA_ARGS__)
+#else
+#define uclassdrverr(s) _usbh_dbg_dummy
+#define uclassdrverrf(f, ...) _usbh_dbg_dummy
+#endif
+#endif