linux-4.4.1/dma_device
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#ybeb67f2]
#backlinks
*説明 [#oe8abf75]
-パス: [[linux-4.4.1/include/linux/dmaengine.h]]
-FIXME: これは何?
--説明
**参考 [#wddb7e64]
*実装 [#ndb52a69]
/**
* struct dma_device - info on the entity supplying DMA ...
* @chancnt: how many DMA channels are supported
* @privatecnt: how many DMA channels are requested by d...
* @channels: the list of struct dma_chan
* @global_node: list_head for global dma_device_list
* @cap_mask: one or more dma_capability flags
* @max_xor: maximum number of xor sources, 0 if no capa...
* @max_pq: maximum number of PQ sources and PQ-continue...
* @copy_align: alignment shift for memcpy operations
* @xor_align: alignment shift for xor operations
* @pq_align: alignment shift for pq operations
* @fill_align: alignment shift for memset operations
* @dev_id: unique device ID
* @dev: struct device reference for dma mapping api
* @src_addr_widths: bit mask of src addr widths the dev...
* @dst_addr_widths: bit mask of dst addr widths the dev...
* @directions: bit mask of slave direction the device s...
* the enum dma_transfer_direction is not defined as bi...
* each type of direction, the dma controller should fi...
* <TYPE>) and same should be checked by controller as ...
* @residue_granularity: granularity of the transfer res...
* by tx_status
* @device_alloc_chan_resources: allocate resources and ...
* number of allocated descriptors
* @device_free_chan_resources: release DMA channel's re...
* @device_prep_dma_memcpy: prepares a memcpy operation
* @device_prep_dma_xor: prepares a xor operation
* @device_prep_dma_xor_val: prepares a xor validation o...
* @device_prep_dma_pq: prepares a pq operation
* @device_prep_dma_pq_val: prepares a pqzero_sum operat...
* @device_prep_dma_memset: prepares a memset operation
* @device_prep_dma_memset_sg: prepares a memset operati...
* @device_prep_dma_interrupt: prepares an end of chain ...
* @device_prep_slave_sg: prepares a slave dma operation
* @device_prep_dma_cyclic: prepare a cyclic dma operati...
* The function takes a buffer of size buf_len. The call...
* be called after period_len bytes have been transferred.
* @device_prep_interleaved_dma: Transfer expression in ...
* @device_prep_dma_imm_data: DMA's 8 byte immediate dat...
* @device_config: Pushes a new configuration to a chann...
* code
* @device_pause: Pauses any transfer happening on a cha...
* 0 or an error code
* @device_resume: Resumes any transfer on a channel pre...
* paused. Returns 0 or an error code
* @device_terminate_all: Aborts all transfers on a chan...
* or an error code
* @device_tx_status: poll for transaction completion, t...
* txstate parameter can be supplied with a pointer to g...
* struct with auxiliary transfer status information, ot...
* will just return a simple status code
* @device_issue_pending: push pending transactions to h...
*/
struct dma_device {
unsigned int chancnt;
unsigned int privatecnt;
struct list_head channels;
struct list_head global_node;
-
--[[linux-4.4.1/list_head]]
dma_cap_mask_t cap_mask;
-
--[[linux-4.4.1/dma_cap_mask_t]]
unsigned short max_xor;
unsigned short max_pq;
enum dmaengine_alignment copy_align;
enum dmaengine_alignment xor_align;
enum dmaengine_alignment pq_align;
enum dmaengine_alignment fill_align;
-
--[[linux-4.4.1/dmaengine_alignment]]
#define DMA_HAS_PQ_CONTINUE (1 << 15)
int dev_id;
struct device *dev;
-
--[[linux-4.4.1/device]]
u32 src_addr_widths;
u32 dst_addr_widths;
u32 directions;
enum dma_residue_granularity residue_granularity;
-
--[[linux-4.4.1/dma_residue_granularity]]
int (*device_alloc_chan_resources)(struct dma_chan *cha...
void (*device_free_chan_resources)(struct dma_chan *cha...
-
--[[linux-4.4.1/dma_chan]]
struct dma_async_tx_descriptor *(*device_prep_dma_memcp...
struct dma_chan *chan, dma_addr_t dst, dma_addr_t src,
size_t len, unsigned long flags);
-
--[[linux-4.4.1/dma_addr_t]]
struct dma_async_tx_descriptor *(*device_prep_dma_xor)(
struct dma_chan *chan, dma_addr_t dst, dma_addr_t *src,
unsigned int src_cnt, size_t len, unsigned long flags);
struct dma_async_tx_descriptor *(*device_prep_dma_xor_v...
struct dma_chan *chan, dma_addr_t *src, unsigned int s...
size_t len, enum sum_check_flags *result, unsigned lon...
-
--[[linux-4.4.1/sum_check_flags]]
struct dma_async_tx_descriptor *(*device_prep_dma_pq)(
struct dma_chan *chan, dma_addr_t *dst, dma_addr_t *src,
unsigned int src_cnt, const unsigned char *scf,
size_t len, unsigned long flags);
struct dma_async_tx_descriptor *(*device_prep_dma_pq_va...
struct dma_chan *chan, dma_addr_t *pq, dma_addr_t *src,
unsigned int src_cnt, const unsigned char *scf, size_t...
enum sum_check_flags *pqres, unsigned long flags);
struct dma_async_tx_descriptor *(*device_prep_dma_memse...
struct dma_chan *chan, dma_addr_t dest, int value, siz...
unsigned long flags);
struct dma_async_tx_descriptor *(*device_prep_dma_memse...
struct dma_chan *chan, struct scatterlist *sg,
unsigned int nents, int value, unsigned long flags);
struct dma_async_tx_descriptor *(*device_prep_dma_inter...
struct dma_chan *chan, unsigned long flags);
struct dma_async_tx_descriptor *(*device_prep_dma_sg)(
struct dma_chan *chan,
struct scatterlist *dst_sg, unsigned int dst_nents,
struct scatterlist *src_sg, unsigned int src_nents,
unsigned long flags);
-
--[[linux-4.4.1/scatterlist]]
struct dma_async_tx_descriptor *(*device_prep_slave_sg)(
struct dma_chan *chan, struct scatterlist *sgl,
unsigned int sg_len, enum dma_transfer_direction direc...
unsigned long flags, void *context);
-
--[[linux-4.4.1/dma_transfer_direction]]
struct dma_async_tx_descriptor *(*device_prep_dma_cycli...
struct dma_chan *chan, dma_addr_t buf_addr, size_t buf...
size_t period_len, enum dma_transfer_direction directi...
unsigned long flags);
struct dma_async_tx_descriptor *(*device_prep_interleav...
struct dma_chan *chan, struct dma_interleaved_template...
unsigned long flags);
-
--[[linux-4.4.1/dma_interleaved_template]]
struct dma_async_tx_descriptor *(*device_prep_dma_imm_d...
struct dma_chan *chan, dma_addr_t dst, u64 data,
unsigned long flags);
int (*device_config)(struct dma_chan *chan,
struct dma_slave_config *config);
-
--[[linux-4.4.1/dma_slave_config]]
int (*device_pause)(struct dma_chan *chan);
int (*device_resume)(struct dma_chan *chan);
int (*device_terminate_all)(struct dma_chan *chan);
enum dma_status (*device_tx_status)(struct dma_chan *ch...
dma_cookie_t cookie,
struct dma_tx_state *txstate);
-
--[[linux-4.4.1/dma_cookie_t]]
void (*device_issue_pending)(struct dma_chan *chan);
};
*コメント [#u187dcad]
終了行:
*参照元 [#ybeb67f2]
#backlinks
*説明 [#oe8abf75]
-パス: [[linux-4.4.1/include/linux/dmaengine.h]]
-FIXME: これは何?
--説明
**参考 [#wddb7e64]
*実装 [#ndb52a69]
/**
* struct dma_device - info on the entity supplying DMA ...
* @chancnt: how many DMA channels are supported
* @privatecnt: how many DMA channels are requested by d...
* @channels: the list of struct dma_chan
* @global_node: list_head for global dma_device_list
* @cap_mask: one or more dma_capability flags
* @max_xor: maximum number of xor sources, 0 if no capa...
* @max_pq: maximum number of PQ sources and PQ-continue...
* @copy_align: alignment shift for memcpy operations
* @xor_align: alignment shift for xor operations
* @pq_align: alignment shift for pq operations
* @fill_align: alignment shift for memset operations
* @dev_id: unique device ID
* @dev: struct device reference for dma mapping api
* @src_addr_widths: bit mask of src addr widths the dev...
* @dst_addr_widths: bit mask of dst addr widths the dev...
* @directions: bit mask of slave direction the device s...
* the enum dma_transfer_direction is not defined as bi...
* each type of direction, the dma controller should fi...
* <TYPE>) and same should be checked by controller as ...
* @residue_granularity: granularity of the transfer res...
* by tx_status
* @device_alloc_chan_resources: allocate resources and ...
* number of allocated descriptors
* @device_free_chan_resources: release DMA channel's re...
* @device_prep_dma_memcpy: prepares a memcpy operation
* @device_prep_dma_xor: prepares a xor operation
* @device_prep_dma_xor_val: prepares a xor validation o...
* @device_prep_dma_pq: prepares a pq operation
* @device_prep_dma_pq_val: prepares a pqzero_sum operat...
* @device_prep_dma_memset: prepares a memset operation
* @device_prep_dma_memset_sg: prepares a memset operati...
* @device_prep_dma_interrupt: prepares an end of chain ...
* @device_prep_slave_sg: prepares a slave dma operation
* @device_prep_dma_cyclic: prepare a cyclic dma operati...
* The function takes a buffer of size buf_len. The call...
* be called after period_len bytes have been transferred.
* @device_prep_interleaved_dma: Transfer expression in ...
* @device_prep_dma_imm_data: DMA's 8 byte immediate dat...
* @device_config: Pushes a new configuration to a chann...
* code
* @device_pause: Pauses any transfer happening on a cha...
* 0 or an error code
* @device_resume: Resumes any transfer on a channel pre...
* paused. Returns 0 or an error code
* @device_terminate_all: Aborts all transfers on a chan...
* or an error code
* @device_tx_status: poll for transaction completion, t...
* txstate parameter can be supplied with a pointer to g...
* struct with auxiliary transfer status information, ot...
* will just return a simple status code
* @device_issue_pending: push pending transactions to h...
*/
struct dma_device {
unsigned int chancnt;
unsigned int privatecnt;
struct list_head channels;
struct list_head global_node;
-
--[[linux-4.4.1/list_head]]
dma_cap_mask_t cap_mask;
-
--[[linux-4.4.1/dma_cap_mask_t]]
unsigned short max_xor;
unsigned short max_pq;
enum dmaengine_alignment copy_align;
enum dmaengine_alignment xor_align;
enum dmaengine_alignment pq_align;
enum dmaengine_alignment fill_align;
-
--[[linux-4.4.1/dmaengine_alignment]]
#define DMA_HAS_PQ_CONTINUE (1 << 15)
int dev_id;
struct device *dev;
-
--[[linux-4.4.1/device]]
u32 src_addr_widths;
u32 dst_addr_widths;
u32 directions;
enum dma_residue_granularity residue_granularity;
-
--[[linux-4.4.1/dma_residue_granularity]]
int (*device_alloc_chan_resources)(struct dma_chan *cha...
void (*device_free_chan_resources)(struct dma_chan *cha...
-
--[[linux-4.4.1/dma_chan]]
struct dma_async_tx_descriptor *(*device_prep_dma_memcp...
struct dma_chan *chan, dma_addr_t dst, dma_addr_t src,
size_t len, unsigned long flags);
-
--[[linux-4.4.1/dma_addr_t]]
struct dma_async_tx_descriptor *(*device_prep_dma_xor)(
struct dma_chan *chan, dma_addr_t dst, dma_addr_t *src,
unsigned int src_cnt, size_t len, unsigned long flags);
struct dma_async_tx_descriptor *(*device_prep_dma_xor_v...
struct dma_chan *chan, dma_addr_t *src, unsigned int s...
size_t len, enum sum_check_flags *result, unsigned lon...
-
--[[linux-4.4.1/sum_check_flags]]
struct dma_async_tx_descriptor *(*device_prep_dma_pq)(
struct dma_chan *chan, dma_addr_t *dst, dma_addr_t *src,
unsigned int src_cnt, const unsigned char *scf,
size_t len, unsigned long flags);
struct dma_async_tx_descriptor *(*device_prep_dma_pq_va...
struct dma_chan *chan, dma_addr_t *pq, dma_addr_t *src,
unsigned int src_cnt, const unsigned char *scf, size_t...
enum sum_check_flags *pqres, unsigned long flags);
struct dma_async_tx_descriptor *(*device_prep_dma_memse...
struct dma_chan *chan, dma_addr_t dest, int value, siz...
unsigned long flags);
struct dma_async_tx_descriptor *(*device_prep_dma_memse...
struct dma_chan *chan, struct scatterlist *sg,
unsigned int nents, int value, unsigned long flags);
struct dma_async_tx_descriptor *(*device_prep_dma_inter...
struct dma_chan *chan, unsigned long flags);
struct dma_async_tx_descriptor *(*device_prep_dma_sg)(
struct dma_chan *chan,
struct scatterlist *dst_sg, unsigned int dst_nents,
struct scatterlist *src_sg, unsigned int src_nents,
unsigned long flags);
-
--[[linux-4.4.1/scatterlist]]
struct dma_async_tx_descriptor *(*device_prep_slave_sg)(
struct dma_chan *chan, struct scatterlist *sgl,
unsigned int sg_len, enum dma_transfer_direction direc...
unsigned long flags, void *context);
-
--[[linux-4.4.1/dma_transfer_direction]]
struct dma_async_tx_descriptor *(*device_prep_dma_cycli...
struct dma_chan *chan, dma_addr_t buf_addr, size_t buf...
size_t period_len, enum dma_transfer_direction directi...
unsigned long flags);
struct dma_async_tx_descriptor *(*device_prep_interleav...
struct dma_chan *chan, struct dma_interleaved_template...
unsigned long flags);
-
--[[linux-4.4.1/dma_interleaved_template]]
struct dma_async_tx_descriptor *(*device_prep_dma_imm_d...
struct dma_chan *chan, dma_addr_t dst, u64 data,
unsigned long flags);
int (*device_config)(struct dma_chan *chan,
struct dma_slave_config *config);
-
--[[linux-4.4.1/dma_slave_config]]
int (*device_pause)(struct dma_chan *chan);
int (*device_resume)(struct dma_chan *chan);
int (*device_terminate_all)(struct dma_chan *chan);
enum dma_status (*device_tx_status)(struct dma_chan *ch...
dma_cookie_t cookie,
struct dma_tx_state *txstate);
-
--[[linux-4.4.1/dma_cookie_t]]
void (*device_issue_pending)(struct dma_chan *chan);
};
*コメント [#u187dcad]
ページ名: