blob: 4ab3960d3756ccb128f325078197ddf08f18bf83 [file] [log] [blame]
Gilad Ben-Yossef033327a2019-05-15 09:24:04 +03001/*
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.*/
26typedef 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