#ifndef FSFW_HAL_STM32H7_SPI_INTERRUPTS_H_ #define FSFW_HAL_STM32H7_SPI_INTERRUPTS_H_ #include "../interrupts.h" #include "spiDefinitions.h" #ifdef __cplusplus extern "C" { #endif namespace spi { void assignSpiUserArgs(spi::SpiBus spiBus, user_args_t userArgs); /** * Assign a user interrupt handler for SPI bus 1, allowing to pass an arbitrary argument as well. * Generally, this argument will be the related SPI handle. * @param user_handler * @param user_args */ void assignSpiUserHandler(spi::SpiBus spiBus, user_handler_t user_handler, user_args_t user_args); void getSpiUserHandler(spi::SpiBus spiBus, user_handler_t* user_handler, user_args_t* user_args); /** * Generic interrupt handlers supplied for convenience. Do not call these directly! Set them * instead with assign_dma_user_handler and assign_spi_user_handler functions. * @param dma_handle */ void dmaRxIrqHandler(void* dma_handle); void dmaTxIrqHandler(void* dma_handle); void spiIrqHandler(void* spi_handle); } #ifdef __cplusplus } #endif #endif /* FSFW_HAL_STM32H7_SPI_INTERRUPTS_H_ */