diff options
author | Thomas Doerfler <Thomas.Doerfler@embedded-brains.de> | 2009-09-18 08:05:40 +0000 |
---|---|---|
committer | Thomas Doerfler <Thomas.Doerfler@embedded-brains.de> | 2009-09-18 08:05:40 +0000 |
commit | ba938b8d7d7d8dde2899e9428b752339d32190c2 (patch) | |
tree | 8a3ee64e121e1025dafd32ef72e8807f663d2778 /c/src/lib/libbsp/arm/lpc24xx/include/dma.h | |
parent | preinstall.am: Regenerate. (diff) | |
download | rtems-ba938b8d7d7d8dde2899e9428b752339d32190c2.tar.bz2 |
Changes throughout.
Diffstat (limited to 'c/src/lib/libbsp/arm/lpc24xx/include/dma.h')
-rw-r--r-- | c/src/lib/libbsp/arm/lpc24xx/include/dma.h | 63 |
1 files changed, 58 insertions, 5 deletions
diff --git a/c/src/lib/libbsp/arm/lpc24xx/include/dma.h b/c/src/lib/libbsp/arm/lpc24xx/include/dma.h index 0871372a2c..2f49b1d249 100644 --- a/c/src/lib/libbsp/arm/lpc24xx/include/dma.h +++ b/c/src/lib/libbsp/arm/lpc24xx/include/dma.h @@ -1,9 +1,9 @@ /** * @file * - * @ingroup lpc24xx + * @ingroup lpc24xx_dma * - * @brief DMA support. + * @brief Direct memory access (DMA) support. */ /* @@ -12,10 +12,11 @@ * Obere Lagerstr. 30 * D-82178 Puchheim * Germany - * rtems@embedded-brains.de + * <rtems@embedded-brains.de> * - * The license and distribution terms for this file may be found in the file - * LICENSE in this distribution or at http://www.rtems.com/license/LICENSE. + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. */ #ifndef LIBBSP_ARM_LPC24XX_DMA_H @@ -27,14 +28,66 @@ extern "C" { #endif /* __cplusplus */ +/** + * @defgroup lpc24xx_dma DMA Support + * + * @ingroup lpc24xx + * + * @brief Direct memory access (DMA) support. + * + * @{ + */ + +/** + * @brief Initializes the general purpose DMA. + */ void lpc24xx_dma_initialize(void); +/** + * @brief Tries to obtain the DMA channel @a channel. + * + * @retval RTEMS_SUCCESSFUL Successful operation. + * @retval RTEMS_INVALID_ID Invalid channel number. + * @retval RTEMS_RESOURCE_IN_USE Channel already occupied. + */ rtems_status_code lpc24xx_dma_channel_obtain(unsigned channel); +/** + * @brief Releases the DMA channel @a channel. + * + * You must have obtained this channel with lpc24xx_dma_channel_obtain() + * previously. + * + * If the channel number @a channel is out of range nothing will happen. + */ void lpc24xx_dma_channel_release(unsigned channel); +/** + * @brief Disables the DMA channel @a channel. + * + * If @a force is @c false the channel will be halted and disabled when the + * channel is inactive otherwise it will be disabled immediately. + * + * If the channel number @a channel is out of range nothing will happen. + */ void lpc24xx_dma_channel_disable(unsigned channel, bool force); +rtems_status_code lpc24xx_dma_copy_initialize(void); + +rtems_status_code lpc24xx_dma_copy_release(void); + +rtems_status_code lpc24xx_dma_copy( + unsigned channel, + void *dest, + const void *src, + size_t n, + size_t width +); + +rtems_status_code lpc24xx_dma_copy_wait(unsigned channel); + +/** @} */ + #ifdef __cplusplus } #endif /* __cplusplus */ |