1 /* 2 * Copyright (c) 2001-2019, Arm Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 8 /*! 9 @file 10 @brief This file contains the platform-dependent DMA definitions. 11 @defgroup ssi_pal_dma_defs CryptoCell PAL DMA specific definitions 12 @{ 13 @ingroup ssi_pal 14 */ 15 16 #ifndef _CC_PAL_DMA_DEFS_H 17 #define _CC_PAL_DMA_DEFS_H 18 19 20 #ifdef __cplusplus 21 extern "C" 22 { 23 #endif 24 25 /*! Definition for DMA buffer handle.*/ 26 typedef void *CC_PalDmaBufferHandle; 27 28 /*! DMA directions configuration. */ 29 typedef enum { 30 CC_PAL_DMA_DIR_NONE = 0, /*!< No direction. */ 31 CC_PAL_DMA_DIR_TO_DEVICE = 1, /*!< The original buffer is the input to the operation. It should be copied or mapped to the temporary buffer prior to activating the HW on it. */ 32 CC_PAL_DMA_DIR_FROM_DEVICE = 2, /*!< The temporary buffer holds the output of the HW. This API should copy or map it to the original output buffer.*/ 33 CC_PAL_DMA_DIR_BI_DIRECTION = 3, /*!< The result is written over the original data at the same address. Should be treated as \p CC_PAL_DMA_DIR_TO_DEVICE and \p CC_PAL_DMA_DIR_FROM_DEVICE.*/ 34 CC_PAL_DMA_DIR_MAX, /*!< Maximal DMA direction options. */ 35 CC_PAL_DMA_DIR_RESERVE32 = 0x7FFFFFFF /*!< Reserved.*/ 36 }CCPalDmaBufferDirection_t; 37 38 39 #ifdef __cplusplus 40 } 41 #endif 42 /** 43 @} 44 */ 45 #endif 46 47 48