📄 usbmacros.h
字号:
/** sanity check for event masks */#define CHECK_EVENT_MASK(device, eventMask) \ if ((eventMask & ~(USB_BUS_EVENTS | USB_DEVICE_EVENTS)) != 0) \ { \ RETURN_INVALID_PARMS(device); \ }/** sanity check for endpoint queue size */#define CHECK_ENDPOINT_QUEUE(epData) \ if (epData->queue.len == MAX_QUEUE_SIZE) \ { \ RETURN_SEND_QUEUE_FULL(epData->device); \ }/** sanity check for endpoint IN capability */#define CHECK_ENDPOINT_IN_CAPABILITY(epData, device) \ if ((epData->direction & USB_IN) == 0) \ { \ RETURN_NO_IN_CAPABILITY(device); \ } #define IX_USB_LOG_DEVICE IX_OSAL_LOG_DEV_STDOUT#ifdef __HWEMU__/* enable all debugging */#define IX_HWEMU_TRACE(format, a, b, c, d, e, f) \ (ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, \ IX_USB_LOG_DEVICE, format, a, b, c, d, e, f))#define IX_USB_TRACE (format, a, b, c, d, e, f) \ (ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, \ IX_USB_LOG_DEVICE, format, a, b, c, d, e, f))#define IX_USB_VERBOSE2_TRACE(format, a, b, c, d, e, f) \ (ixOsalLog (IX_OSAL_LOG_LVL_DEBUG1, \ IX_USB_LOG_DEVICE, format, a, b, c, d, e, f))#define IX_USB_VERBOSE3_TRACE(format, a, b, c, d, e, f) \ (ixOsalLog (IX_OSAL_LOG_LVL_DEBUG2, \ IX_USB_LOG_DEVICE, format, a, b, c, d, e, f))#define IX_USB_VERBOSE4_TRACE(format, a, b, c, d, e, f) \ (ixOsalLog (IX_OSAL_LOG_LVL_DEBUG3, \ IX_USB_LOG_DEVICE, format, a, b, c, d, e, f))#define IX_USB_VERBOSE_MEM_TRACE(format, a, b, c, d, e, f) \ (ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, \ IX_USB_LOG_DEVICE, format, a, b, c, d, e, f))#define IX_USB_VERBOSE_INIT_TRACE(format, a, b, c, d, e, f) \ (ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, \ IX_USB_LOG_DEVICE, format, a, b, c, d, e, f))#define IX_USB_VERBOSE_WARN_TRACE(format, a, b, c, d, e, f) \ (ixOsalLog (IX_OSAL_LOG_LVL_WARNING, \ IX_USB_LOG_DEVICE, format, a, b, c, d, e, f))#else#ifndef NDEBUG#undef IX_USB_HAS_TRACE_MACRO#undef IX_USB_HAS_VERBOSE_INIT_TRACE_MACRO#undef IX_USB_HAS_VERBOSE_WARN_TRACE_MACRO#undef IX_USB_HAS_VERBOSE_MEM_TRACE_MACRO#undef IX_USB_HAS_VERBOSE_TRACE_MACRO#undef IX_USB_HAS_VERBOSE_2_TRACE_MACRO#undef IX_USB_HAS_VERBOSE_3_TRACE_MACRO#undef IX_USB_HAS_VERBOSE_4_TRACE_MACRO#undef IX_USB_HAS_VERBOSE_5_TRACE_MACRO#endif#ifndef __doxygen_HIDE#define IX_HWEMU_TRACE(format, a, b, c, d, e, f) if (0); /* nothing */#endif /* ndef __doxygen_HIDE */#ifdef IX_USB_HAS_TRACE_MACRO/** debug trace macro */#define IX_USB_TRACE(format, a, b, c, d, e, f) \ (ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, \ IX_USB_LOG_DEVICE, format, a, b, c, d, e, f))#else/** no trace macro */#define IX_USB_TRACE(format, a, b, c, d, e, f) if (0); /* nothing */#endif /* IX_USB_HAS_TRACE_MACRO */#ifndef __doxygen_HIDE#ifdef IX_USB_HAS_VERBOSE_TRACE_MACRO#define IX_USB_VERBOSE_TRACE (format, a, b, c, d, e, f) \ (ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, \ IX_USB_LOG_DEVICE, format, a, b, c, d, e, f))#else#define IX_USB_VERBOSE_TRACE(format, a, b, c, d, e, f) if (0); /* nothing */#endif /* IX_USB_HAS_VERBOSE_TRACE_MACRO */#ifdef IX_USB_HAS_VERBOSE_2_TRACE_MACRO#define IX_USB_VERBOSE2_TRACE(format, a, b, c, d, e, f) \ (ixOsalLog (IX_OSAL_LOG_LVL_DEBUG1, \ IX_USB_LOG_DEVICE, format, a, b, c, d, e, f))#else#define IX_USB_VERBOSE2_TRACE(format, a, b, c, d, e, f) if (0); /* nothing */#endif /* IX_USB_HAS_VERBOSE_2_TRACE_MACRO */#ifdef IX_USB_HAS_VERBOSE_3_TRACE_MACRO#define IX_USB_VERBOSE3_TRACE(format, a, b, c, d, e, f) \ (ixOsalLog (IX_OSAL_LOG_LVL_DEBUG2, \ IX_USB_LOG_DEVICE, format, a, b, c, d, e, f))#else#define IX_USB_VERBOSE3_TRACE(format, a, b, c, d, e, f) if (0); /* nothing */#endif /* IX_USB_HAS_VERBOSE_3_TRACE_MACRO */#ifdef IX_USB_HAS_VERBOSE_4_TRACE_MACROint usbTraceVerbose4 = 0;#define IX_USB_VERBOSE4_TRACE(format, a, b, c, d, e, f) \ if (usbTraceVerbose4) \ { \ ixOsalLog (IX_OSAL_LOG_LVL_DEBUG3, \ IX_USB_LOG_DEVICE, format, a, b, c, d, e, f) \ }#else#define IX_USB_VERBOSE4_TRACE(format, a, b, c, d, e, f) if (0); /* nothing */#endif /* IX_USB_HAS_VERBOSE_4_TRACE_MACRO */#ifdef IX_USB_HAS_VERBOSE_5_TRACE_MACROint usbTraceVerbose5 = 0;#define IX_USB_VERBOSE5_TRACE(format, a, b, c, d, e, f) \ if (usbTraceVerbose5) \ { \ ixOsalLog (IX_OSAL_LOG_LVL_DEBUG3, \ IX_USB_LOG_DEVICE, format, a, b, c, d, e, f) \ }#else#define IX_USB_VERBOSE5_TRACE(format, a, b, c, d, e, f) if (0); /* nothing */#endif /* IX_USB_HAS_VERBOSE_5_TRACE_MACRO */#ifdef IX_USB_HAS_VERBOSE_MEM_TRACE_MACRO#define IX_USB_VERBOSE_MEM_TRACE(format, a, b, c, d, e, f) \ (ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, \ IX_USB_LOG_DEVICE, format, a, b, c, d, e, f))#else#define IX_USB_VERBOSE_MEM_TRACE(format, a, b, c, d, e, f) if (0); /* nothing */#endif /* IX_USB_HAS_VERBOSE_MEM_TRACE_MACRO */#ifdef IX_USB_HAS_VERBOSE_WARN_TRACE_MACRO#define IX_USB_VERBOSE_WARN_TRACE(format, a, b, c, d, e, f) \ (ixOsalLog (IX_OSAL_LOG_LVL_WARNING, \ IX_USB_LOG_DEVICE, format, a, b, c, d, e, f))#else#define IX_USB_VERBOSE_WARN_TRACE(format, a, b, c, d, e, f) if (0); /* nothing */#endif /* IX_USB_HAS_VERBOSE_WARN_TRACE_MACRO */#ifdef IX_USB_HAS_VERBOSE_INIT_TRACE_MACRO#define IX_USB_VERBOSE_INIT_TRACE(format, a, b, c, d, e, f) \ (ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, \ IX_USB_LOG_DEVICE, format, a, b, c, d, e, f))#else#define IX_USB_VERBOSE_INIT_TRACE(format, a, b, c, d, e, f) if (0); /* nothing */#endif /* IX_USB_HAS_VERBOSE_INIT_TRACE_MACRO */#endif /* __HWEMU__ */#ifdef IX_USB_HAS_ASSERT_MACRO/** assert macro */#define IX_USB_ASSERT(expr) \ if (expr == FALSE) \ { \ IX_USB_TRACE("Assertion failed\n", 0, 0, 0, 0, 0, 0); \ IX_OSAL_ASSERT(expr); \ }#else#ifndef __doxygen_HIDE#define IX_USB_ASSERT(expr) if (0); /* nothing */#endif /* ndef __doxygen_HIDE */#endif /* IX_USB_HAS_ASSERT_MACRO */#ifdef IX_USB_HAS_CT_ASSERT_MACRO/** compile-time assert macro (hack) */#define IX_USB_CT_ASSERT(expr) \ switch (0) { case 0: case (expr):; }#else#ifndef __doxygen_HIDE#define IX_USB_CT_ASSERT(expr) if (0); /* nothing */#endif /* ndef __doxygen_HIDE */#endif /* IX_USB_HAS_CT_ASSERT_MACRO */#endif /* ndef __doxygen_HIDE */#ifdef IX_USB_HAS_CRITICAL_DATA_LOCKS/** critial data section lock */#define IX_USB_LOCK ixOsalIrqLock()/** critial data section unlock */#define IX_USB_UNLOCK(state) ixOsalIrqUnlock(state)/** irq lock */#define IX_USB_IRQ_LOCK ixOsalIrqLock()/** irq unlock */#define IX_USB_IRQ_UNLOCK(state) ixOsalIrqUnlock(state)#else/** dummy critial data section lock */#define IX_USB_LOCK 0/** dummy critial data section unlock */#define IX_USB_UNLOCK(state)/** dummy irq lock */#define IX_USB_IRQ_LOCK 0/** dummy irq unlock */#define IX_USB_IRQ_UNLOCK(state)#endif /* IX_USB_HAS_CRITICAL_DATA_LOCKS */#ifdef IX_USB_HAS_INT_BIND_MACRO/** USB bind macro */#define INT_BIND_MACRO(level, callback, instance) { ixOsalIrqBind((int) level, (void (*) (void *)) callback, (void *) instance); }#else#ifndef __doxygen_HIDE#define INT_BIND_MACRO(level, callback, instance) /* nothing */#endif /* ndef __doxygen_HIDE */#endif /* ndef IX_USB_HAS_INT_BIND_MACRO */#ifndef __doxygen_HIDE/* show macros */#define SHOW_NUMBER(x) ((x) > 1000 ? (x) > 1000000 ? ((x) / 1000000) : ((x) / 1000) : (x))#define SHOW_METRIC(x) ((x) > 1000 ? (x) > 1000000 ? "M" : "k" : " ")#endif /* ndif doxygen_HIDE */#define IX_USB_DRAIN_FIFO(registers) \ while (DREG_GET(®isters->UDCCS0) & UDC_UDCCS0_RNE) \ DREG_GET(®isters->UDDR0);#endif /* usbmacros_H *//** * @} addtogroup IxUsbAPI */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -