DMA対応の操作機能

  

/* arch /arm /plat-samsung /include /plat /dma.h ** Copyright(C)2003-2006 Simtec Electronics * Ben Dooks< [email protected]> ** Samsung S3C DMA support **このプログラムはフリーソフトウェアです。あなたはそれを再配布したり、Free Software Foundationによって公表されたGNU General Public Licenseバージョン2の条件の下で修正することができます。* /

enum s3c2410_dma_buffresult {//表示buf転送の結果S3C2410_RES_OK、 S3C2410_RES_ERR、S3C2410_RES_ABORT};

列挙型s3c2410_dmasrc {S3C2410_DMASRC_HW、/*ソースはメモリ* /S3C2410_DMASRC_MEM、/*ソースはハードウェア* /S3C_DMA_MEM2MEM、/*ソースはメモリ - READ /WREM_M /S2 *メモリ - MEMSET * /S3C_DMA_MEM2MEM_Pの読み取り/書き込み、/*ソースはハードウェア - 読み取り/書き込み* /S3C_DMA_PER2PER /*ソースはハードウェア - 読み取り/書き込み* /};

/* enum s3c2410_chan_op **操作*コードはユーザーによってDMAコードに渡され、*現在のチャネルの所有者にシステム状態への変更を通知するためにも使用されます。* /enum * /S3C2410_DMAOP_STARTED、/*はチャンネルスターを示しますted * /S3C2410_DMAOP_ABORT、/*異常停止* /};

struct s3c2410_dma_client {char * name;};

struct s3c2410_dma_chan;


/* s3c2410_dma_cbfn_t **バッファコールバックルーチンの型/定義関数* /typedef void(* s3c2410_dma_cbfn_t)(struct s3c2410_dma_chan *、void * buf、int10; type3) 、enum s3c2410_chan_op);

extern int s3c2410_dma_set_opfn(unsigned int、s3c2410_dma_opfn_t rtn); extern int s3c2410_dma_set_buffdone_fn(unsigned int、s3c2410_dma_cbfn_t)これを設定します。 >


/* s3c2410_dma_request ** DMAチャネルの要求exclusivley DMAチャネルの要求* /extern int s3c2410_dma_request(符号なしintチャネル、構造体s3c2410_dma_client *、void * dev);


/* s3c2410_dma_ctrl ** dmaチャンネルの状態を変更するチャンネル状態の変更* /extern int s3c2410_dma_ctrl(unsigned intチャンネル、列挙型s3c2410_chan_op op);


/* s 3c2410_dma_setflags **チャンネルのフラグを特定の状態に設定* /extern int s3c2410_dma_setflags(unsigned intチャンネル、unsigned intフラグ);


/* s3c2410_dma_free ** dmaチャンネルを解放する未解決の操作をすべて中止します。)* /extern int s3c2410_dma_free(unsigned int channel、struct s3c2410_dma_client *);

/ /* s3c2410_dma_enqueue **指定されたバッファを操作のキューに配置します。 *バッファはDMAコヒーレントメモリから割り当てるか、バッファがDMAシステムに渡される前にDcache /WB *から排出する必要があります。入力関数* /extern int s3c2410_dma_enqueue(符号なしintチャンネル、void * id、dma_addr_tデータ、intサイズ);


/* s3c2410_dma_config ** dmaチャンネルの設定設定通路* /extern int s3c2410_dma_config(unsigned int channel、int xferunit);


/* s3c2410_dma_setswap ** xfer * /externのスワップ機能を設定します。* /extern int s3c2410_dma_setswap(unsigned int channel、unsigned int bytes_swap);


/* s3c2410_dma_devconfig **設定したいデバイスを設定します設定デバイス* /extern int s3c2410_dma_devconfig(unsigned intチャンネル、列挙型s3c2410_dmasrcソース、unsigned long devaddr);


/* s3c2410_dma_getposition **現在のdma転送位置を取得します* /extern int s3c2410_dma_getposition(unsigned int channel、dma_addr_t * src、dma_addr_t * dest);

Copyright © Windowsの知識 All Rights Reserved