BT_ERROR BT_RegisterInterruptController(BT_u32 ulBaseIRQ, BT_u32 ulTotalIRQs, BT_HANDLE hIRQ) { BT_ERROR Error = BT_ERR_NONE; if(!BT_IF_DEVICE(hIRQ) || BT_IF_DEVICE_TYPE(hIRQ) != BT_DEV_IF_T_INTC) { return BT_ERR_GENERIC; } if(g_ulRegistered >= BT_CONFIG_MAX_INTERRUPT_CONTROLLERS) { return -1; /// Maximum controllers already registered. } g_oControllers[g_ulRegistered].hIRQ = hIRQ; // Ensure there is no conflict. g_oControllers[g_ulRegistered].ulBaseIRQ = ulBaseIRQ; g_oControllers[g_ulRegistered].ulTotalIRQs = ulTotalIRQs; g_ulRegistered++; return Error; }
static BT_BOOL isI2CHandle(BT_HANDLE hI2C) { if(!hI2C || !BT_IF_DEVICE(hI2C) || (BT_IF_DEVICE_TYPE(hI2C) != BT_DEV_IF_T_I2C)) { return BT_FALSE; } return BT_TRUE; }
static BT_BOOL isSpiHandle(BT_HANDLE hSpi) { if(!hSpi || !BT_IF_DEVICE(hSpi) || (BT_IF_DEVICE_TYPE(hSpi) != BT_DEV_IF_T_SPI)) { return BT_FALSE; } return BT_TRUE; }
static BT_BOOL isUartHandle(BT_HANDLE hUart) { if(!hUart || !BT_IF_DEVICE(hUart) || (BT_IF_DEVICE_TYPE(hUart) != BT_DEV_IF_T_UART)) { return BT_FALSE; } return BT_TRUE; }
static BT_BOOL isPwmHandle(BT_HANDLE hPwm) { if(!hPwm || !BT_IF_DEVICE(hPwm) || (BT_IF_DEVICE_TYPE(hPwm) != BT_DEV_IF_T_PWM)) { return BT_FALSE; } return BT_TRUE; }