1 /* SPDX-License-Identifier: BSD-2-Clause */ 2 /* 3 * Copyright (c) 2014, STMicroelectronics International N.V. 4 * All rights reserved. 5 */ 6 #ifndef TB_MACROS_H 7 #define TB_MACROS_H 8 9 #include <tee_internal_api_extensions.h> 10 11 #define TB_HEADER(str) \ 12 printf("\n*********** TESTBENCH ***********" \ 13 "\n*** RUNNING: <<< %s >>>" \ 14 "\n*********************************\n\n", str) 15 16 #define TB_FOOTER(str) \ 17 printf("\n*********** TESTBENCH ***********" \ 18 "\n*** PASSED: <<< %s >>>" \ 19 "\n*********************************\n\n", str) 20 21 #define TB_INFO(str) printf("*** INFO : %s \n", (str)) 22 23 #define HALT \ 24 { \ 25 printf("\n*** FAILED ***" \ 26 "\nTestbench halted at line %d in function %s\n", \ 27 __LINE__, __func__); \ 28 printf("\nWaiting for keypress to enable debugging.\n"); \ 29 TEE_Panic(0); \ 30 } 31 32 #define STARTING \ 33 printf("\n*********** TESTBENCH ***********" \ 34 "\n*** For the GlobalPlatform Math API" \ 35 "\n*********************************\n\n") 36 37 #define ALL_PASSED \ 38 printf("\n*********** TESTBENCH ***********" \ 39 "\n*** ALL TESTS PASSED ***" \ 40 "\n*********************************\n\n") 41 42 /* 43 * DEF_BIGINT defines and initialize a BigInt with name and size. 44 */ 45 #define DEF_BIGINT(name, size) \ 46 TEE_BigInt *name; \ 47 size_t name##_size; \ 48 name##_size = TEE_BigIntSizeInU32(size); \ 49 name = (TEE_BigInt *)TEE_Malloc(name##_size * sizeof(TEE_BigInt), 0); \ 50 TEE_BigIntInit(name, name##_size) 51 52 /* 53 * DEL_BIGINT frees the BigInt. 54 */ 55 #define DEL_BIGINT(name) TEE_Free(name) 56 57 /* 58 * TB_PRINT_BIGINT prints the mpanum in base 16. 59 */ 60 #define TB_PRINT_BIGINT(n) \ 61 do { \ 62 char *str; \ 63 str = TEE_BigIntConvertToString(NULL, TEE_STRING_MODE_HEX_UC, 0, (n)); \ 64 printf("%s\n", str); \ 65 TEE_Free(str); \ 66 } while (0) 67 68 #endif 69