Gilad Ben-Yossef | 033327a | 2019-05-15 09:24:04 +0300 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (c) 2017-2020 ARM Limited and Contributors. All rights reserved. |
| 3 | * |
| 4 | * SPDX-License-Identifier: BSD-3-Clause |
| 5 | */ |
| 6 | |
| 7 | #ifndef CC_PAL_TYPES_H |
| 8 | #define CC_PAL_TYPES_H |
| 9 | |
| 10 | /*! |
| 11 | @file |
| 12 | @brief This file contains platform-dependent definitions and types of the PAL layer. |
| 13 | |
| 14 | @defgroup cc_pal_types CryptoCell platform-dependent PAL layer definitions and types |
| 15 | @{ |
| 16 | @ingroup cc_pal |
| 17 | |
| 18 | @{ |
| 19 | @ingroup cc_pal |
| 20 | @} |
| 21 | */ |
| 22 | |
| 23 | #include "cc_pal_types_plat.h" |
| 24 | |
| 25 | /*! Definition of Boolean type.*/ |
| 26 | typedef enum { |
| 27 | /*! Boolean false.*/ |
| 28 | CC_FALSE = 0, |
| 29 | /*! Boolean true.*/ |
| 30 | CC_TRUE = 1 |
| 31 | } CCBool_t; |
| 32 | |
| 33 | /*! Success. */ |
| 34 | #define CC_SUCCESS 0UL |
| 35 | /*! Failure. */ |
| 36 | #define CC_FAIL 1UL |
| 37 | |
| 38 | /*! Success (OK). */ |
| 39 | #define CC_OK 0 |
| 40 | |
| 41 | /*! This macro handles unused parameters in the code, to avoid compilation warnings. */ |
| 42 | #define CC_UNUSED_PARAM(prm) ((void)prm) |
| 43 | |
| 44 | /*! The maximal uint32 value.*/ |
| 45 | #define CC_MAX_UINT32_VAL (0xFFFFFFFF) |
| 46 | |
| 47 | |
| 48 | /* Minimal and Maximal macros */ |
| 49 | #ifdef min |
| 50 | /*! Definition for minimal calculation. */ |
| 51 | #define CC_MIN(a,b) min( a , b ) |
| 52 | #else |
| 53 | /*! Definition for minimal calculation. */ |
| 54 | #define CC_MIN( a , b ) ( ( (a) < (b) ) ? (a) : (b) ) |
| 55 | #endif |
| 56 | |
| 57 | #ifdef max |
| 58 | /*! Definition for maximal calculation. */ |
| 59 | #define CC_MAX(a,b) max( a , b ) |
| 60 | #else |
| 61 | /*! Definition for maximal calculation.. */ |
| 62 | #define CC_MAX( a , b ) ( ( (a) > (b) ) ? (a) : (b) ) |
| 63 | #endif |
| 64 | |
| 65 | /*! This macro calculates the number of full Bytes from bits, where seven bits are one Byte. */ |
| 66 | #define CALC_FULL_BYTES(numBits) ((numBits)/CC_BITS_IN_BYTE + (((numBits) & (CC_BITS_IN_BYTE-1)) > 0)) |
| 67 | /*! This macro calculates the number of full 32-bit words from bits where 31 bits are one word. */ |
| 68 | #define CALC_FULL_32BIT_WORDS(numBits) ((numBits)/CC_BITS_IN_32BIT_WORD + (((numBits) & (CC_BITS_IN_32BIT_WORD-1)) > 0)) |
| 69 | /*! This macro calculates the number of full 32-bit words from Bytes where three Bytes are one word. */ |
| 70 | #define CALC_32BIT_WORDS_FROM_BYTES(sizeBytes) ((sizeBytes)/CC_32BIT_WORD_SIZE + (((sizeBytes) & (CC_32BIT_WORD_SIZE-1)) > 0)) |
| 71 | /*! This macro calculates the number of full 32-bit words from 64-bits dwords. */ |
| 72 | #define CALC_32BIT_WORDS_FROM_64BIT_DWORD(sizeWords) (sizeWords * CC_32BIT_WORD_IN_64BIT_DWORD) |
| 73 | /*! This macro rounds up bits to 32-bit words. */ |
| 74 | #define ROUNDUP_BITS_TO_32BIT_WORD(numBits) (CALC_FULL_32BIT_WORDS(numBits) * CC_BITS_IN_32BIT_WORD) |
| 75 | /*! This macro rounds up bits to Bytes. */ |
| 76 | #define ROUNDUP_BITS_TO_BYTES(numBits) (CALC_FULL_BYTES(numBits) * CC_BITS_IN_BYTE) |
| 77 | /*! This macro rounds up bytes to 32-bit words. */ |
| 78 | #define ROUNDUP_BYTES_TO_32BIT_WORD(sizeBytes) (CALC_32BIT_WORDS_FROM_BYTES(sizeBytes) * CC_32BIT_WORD_SIZE) |
| 79 | /*! This macro calculates the number Bytes from words. */ |
| 80 | #define CALC_WORDS_TO_BYTES(numwords) ((numwords)*CC_32BIT_WORD_SIZE) |
| 81 | /*! Definition of 1 KB in Bytes. */ |
| 82 | #define CC_1K_SIZE_IN_BYTES 1024 |
| 83 | /*! Definition of number of bits in a Byte. */ |
| 84 | #define CC_BITS_IN_BYTE 8 |
| 85 | /*! Definition of number of bits in a 32-bits word. */ |
| 86 | #define CC_BITS_IN_32BIT_WORD 32 |
| 87 | /*! Definition of number of Bytes in a 32-bits word. */ |
| 88 | #define CC_32BIT_WORD_SIZE 4 |
| 89 | /*! Definition of number of 32-bits words in a 64-bits dword. */ |
| 90 | #define CC_32BIT_WORD_IN_64BIT_DWORD 2 |
| 91 | |
| 92 | |
| 93 | #endif |
| 94 | |
| 95 | /** |
| 96 | @} |
| 97 | */ |
| 98 | |
| 99 | |
| 100 | |