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