uint32_t irq_priority
Definition: no_os_dma.h:91
Structure storing the list and function wrapper for usual list types.
Definition: no_os_list.h:228
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:317
void(* sg_handler)(void *)
Definition: no_os_dma.h:164
IRQ parameter for the default inter transfer handler.
Definition: no_os_dma.h:59
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:184
struct no_os_dma_default_handler_data irq_ctx
Definition: no_os_dma.h:119
void * extra
Definition: no_os_dma.h:179
Structure describing a callback to be registered.
Definition: no_os_irq.h:142
Initialization parameter for the DMA controller.
Definition: no_os_dma.h:171
uint32_t id
Definition: no_os_dma.h:109
Header file of IRQ interface.
uint32_t id
Definition: no_os_dma.h:138
void * extra
Definition: no_os_dma.h:62
uint32_t irq_num
Definition: no_os_dma.h:115
@ DEV_TO_MEM
Definition: no_os_dma.h:52
void * extra
Definition: no_os_dma.h:153
struct no_os_dma_platform_ops * platform_ops
Definition: no_os_dma.h:177
no_os_irq_peripheral
Definition: no_os_irq.h:84
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:434
bool
Definition: common.h:48
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:242
uint32_t num_ch
Definition: no_os_dma.h:175
uint32_t id
Definition: no_os_dma.h:173
struct no_os_dma_ch * channel
Definition: no_os_dma.h:61
void * mutex
Definition: no_os_dma.h:157
Describes the state of a DMA channel.
Definition: no_os_dma.h:107
void * ctx
Definition: no_os_dma.h:190
uint8_t * dst
Definition: no_os_dma.h:75
@ MEM_TO_MEM
Definition: no_os_dma.h:50
struct no_os_dma_platform_ops * platform_ops
Definition: no_os_dma.h:144
struct no_os_dma_desc * desc
Definition: no_os_dma.h:60
It's used to setup a generic DMA transfer.
Definition: no_os_dma.h:71
void * xfer_complete_ctx
Definition: no_os_dma.h:89
uint32_t ref
Definition: no_os_dma.h:155
void(* xfer_complete_cb)(struct no_os_dma_xfer_desc *, struct no_os_dma_xfer_desc *, void *)
Definition: no_os_dma.h:82
struct no_os_irq_ctrl_desc * irq_ctrl
Definition: no_os_dma.h:151
uint32_t num_ch
Definition: no_os_dma.h:140
bool free
Definition: no_os_dma.h:111
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:90
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:356
enum no_os_dma_xfer_type xfer_type
Definition: no_os_dma.h:79
int no_os_dma_remove(struct no_os_dma_desc *)
Remove resources allocated for the DMA controller.
Definition: no_os_dma.c:143
int no_os_dma_release_channel(struct no_os_dma_desc *, struct no_os_dma_ch *)
Free DMA channel.
Definition: no_os_dma.c:216
uint8_t * src
Definition: no_os_dma.h:73
void * extra
Definition: no_os_dma.h:120
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:384
void(* sg_handler)(void *)
Definition: no_os_dma.h:185
@ MEM_TO_DEV
Definition: no_os_dma.h:51
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:417
struct no_os_dma_ch * channels
Definition: no_os_dma.h:142
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:336
void * extra
Definition: no_os_dma.h:100
struct no_os_callback_desc cb_desc
Definition: no_os_dma.h:117
void * mutex
Definition: no_os_dma.h:123
no_os_dma_xfer_type
Supported transfer directions.
Definition: no_os_dma.h:49
Definition: no_os_irq.h:123
bool sync_lock
Definition: no_os_dma.h:129
uint32_t length
Definition: no_os_dma.h:77
struct no_os_list_desc * sg_list
Definition: no_os_dma.h:113
enum no_os_irq_peripheral periph
Definition: no_os_dma.h:97
Describes the state of the DMA controller.
Definition: no_os_dma.h:136