uint32_t irq_priority
Definition: no_os_dma.h:97
Structure storing the list and function wrapper for usual list types.
Definition: no_os_list.h:234
int no_os_dma_chan_lock(struct no_os_dma_ch *)
Lock a DMA channel, so it won't be acquired even if it's free.
Definition: no_os_dma.c:320
void(* sg_handler)(void *)
Definition: no_os_dma.h:168
IRQ parameter for the default inter transfer handler.
Definition: no_os_dma.h:65
int no_os_dma_acquire_channel(struct no_os_dma_desc *, struct no_os_dma_ch **)
Get a free DMA channel.
Definition: no_os_dma.c:185
struct no_os_dma_default_handler_data irq_ctx
Definition: no_os_dma.h:123
void * extra
Definition: no_os_dma.h:183
Initialization parameter for the DMA controller.
Definition: no_os_dma.h:175
uint32_t id
Definition: no_os_dma.h:115
Header file of IRQ interface.
uint32_t id
Definition: no_os_dma.h:142
void * extra
Definition: no_os_dma.h:68
uint32_t irq_num
Definition: no_os_dma.h:121
@ DEV_TO_MEM
Definition: no_os_dma.h:58
void * extra
Definition: no_os_dma.h:157
struct no_os_dma_platform_ops * platform_ops
Definition: no_os_dma.h:181
no_os_irq_peripheral
Definition: no_os_irq.h:90
bool no_os_dma_in_progress(struct no_os_dma_desc *, struct no_os_dma_ch *)
Whether or not there is a transfer in progress on a specific channel.
Definition: no_os_dma.c:437
bool
Definition: common.h:54
int no_os_dma_config_xfer(struct no_os_dma_desc *, struct no_os_dma_xfer_desc *, uint32_t, struct no_os_dma_ch *)
Acquire a channel and configure the list of transfers.
Definition: no_os_dma.c:243
uint32_t num_ch
Definition: no_os_dma.h:179
uint32_t id
Definition: no_os_dma.h:177
struct no_os_dma_ch * channel
Definition: no_os_dma.h:67
void * mutex
Definition: no_os_dma.h:161
Describes the state of a DMA channel.
Definition: no_os_dma.h:113
void * ctx
Definition: no_os_dma.h:194
uint8_t * dst
Definition: no_os_dma.h:81
@ MEM_TO_MEM
Definition: no_os_dma.h:56
struct no_os_dma_platform_ops * platform_ops
Definition: no_os_dma.h:148
struct no_os_dma_desc * desc
Definition: no_os_dma.h:66
It's used to setup a generic DMA transfer.
Definition: no_os_dma.h:77
void * xfer_complete_ctx
Definition: no_os_dma.h:95
uint32_t ref
Definition: no_os_dma.h:159
void(* xfer_complete_cb)(struct no_os_dma_xfer_desc *, struct no_os_dma_xfer_desc *, void *)
Definition: no_os_dma.h:88
struct no_os_irq_ctrl_desc * irq_ctrl
Definition: no_os_dma.h:155
uint32_t num_ch
Definition: no_os_dma.h:144
bool free
Definition: no_os_dma.h:117
int no_os_dma_init(struct no_os_dma_desc **, struct no_os_dma_init_param *)
Initialize the DMA controller.
Definition: no_os_dma.c:96
int no_os_dma_xfer_start(struct no_os_dma_desc *, struct no_os_dma_ch *)
Acquire a channel and configure the list of transfers.
Definition: no_os_dma.c:359
enum no_os_dma_xfer_type xfer_type
Definition: no_os_dma.h:85
int no_os_dma_remove(struct no_os_dma_desc *)
Remove resources allocated for the DMA controller.
Definition: no_os_dma.c:149
int no_os_dma_release_channel(struct no_os_dma_desc *, struct no_os_dma_ch *)
Free DMA channel.
Definition: no_os_dma.c:217
uint8_t * src
Definition: no_os_dma.h:79
void * extra
Definition: no_os_dma.h:124
int no_os_dma_xfer_abort(struct no_os_dma_desc *, struct no_os_dma_ch *)
Abort the ongoing and any other future transfers scheduled for a channel.
Definition: no_os_dma.c:387
void(* sg_handler)(void *)
Definition: no_os_dma.h:189
@ MEM_TO_DEV
Definition: no_os_dma.h:57
bool no_os_dma_is_completed(struct no_os_dma_desc *, struct no_os_dma_ch *)
Get the state of a DMA channel (free or not).
Definition: no_os_dma.c:420
struct no_os_dma_ch * channels
Definition: no_os_dma.h:146
int no_os_dma_chan_unlock(struct no_os_dma_ch *)
Unlock a DMA channel, marking it available for acquisition.
Definition: no_os_dma.c:339
void * extra
Definition: no_os_dma.h:106
void * mutex
Definition: no_os_dma.h:127
no_os_dma_xfer_type
Supported transfer directions.
Definition: no_os_dma.h:55
Definition: no_os_irq.h:129
bool sync_lock
Definition: no_os_dma.h:133
uint32_t length
Definition: no_os_dma.h:83
struct no_os_list_desc * sg_list
Definition: no_os_dma.h:119
enum no_os_irq_peripheral periph
Definition: no_os_dma.h:103
Describes the state of the DMA controller.
Definition: no_os_dma.h:140