00001
00002 #ifndef DMA_H
00003 #define DMA_H
00004
00005 #ifdef __cplusplus
00006 extern "C"
00007 {
00008 #endif
00009
00010 #include "bd_types.h"
00011
00012 struct DMA_ADDR_INFO;
00013
00014 struct DMA_ADDR_INFO *getDMAInfo (int board_type, unsigned long addr);
00015 void freeDMAInfo (struct DMA_ADDR_INFO *info);
00016 int checkForDMADone (struct DMA_ADDR_INFO *info);
00017 int DMAScheduleLocalToVMETransfer (struct DMA_ADDR_INFO *info,
00018 void *vme_dest, void *local_src,
00019 unsigned long bytes);
00020 int DMAScheduleVMEToLocalTransfer (struct DMA_ADDR_INFO *info,
00021 void *local_dest, void *vme_src,
00022 unsigned long bytes);
00023 int DMASingleLocalToVMETransfer (struct DMA_ADDR_INFO *info, void *vme_dest,
00024 void *local_src, unsigned long bytes);
00025 int DMASingleVMEToLocalTransfer (struct DMA_ADDR_INFO *info,
00026 void *local_dest, void *vme_src,
00027 unsigned long bytes);
00028 int DMAStartTransfers (struct DMA_ADDR_INFO *info);
00029 int DMAClearScheduledTransfersList (struct DMA_ADDR_INFO *info);
00030
00031 #ifdef __cplusplus
00032 }
00033 #endif
00034
00035 #endif