common.h (2020B)
1 /* Common definitions used for clients and services */ 2 3 /* 4 * Copyright The Mbed TLS Contributors 5 * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 6 */ 7 8 #include <psa/service.h> 9 10 #ifdef DEBUG 11 #define DEBUG_TEST 1 12 #else 13 #define DEBUG_TEST 0 14 #endif 15 16 #define PRINT(...) \ 17 do { if (DEBUG_TEST) fprintf(stderr, __VA_ARGS__); } while (0) 18 #define INFO(...) \ 19 do { if (DEBUG_TEST) { PRINT("%s", __FILE__); PRINT(" INFO: " __VA_ARGS__); printf("\n"); \ 20 } } while (0) 21 22 #define PROGRAMMER_ERROR(...) \ 23 do { if (DEBUG_TEST) { PRINT("%s:%d:%s(): PROGRAMMER ERROR", __FILE__, __LINE__, __func__); \ 24 PRINT(__VA_ARGS__); } abort(); } while (0) 25 26 #define FATAL(...) \ 27 do { if (DEBUG_TEST) { PRINT("%s:%d:%s(): INTERNAL ERROR", __FILE__, __LINE__, __func__); PRINT( \ 28 __VA_ARGS__); } abort(); } while (0) 29 30 31 #define PROJECT_ID 'M' 32 #define PATHNAMESIZE 64 33 34 /* Increasing this might break on some platforms */ 35 #define MAX_FRAGMENT_SIZE 200 36 37 #define CONNECT_REQUEST 1 38 #define CALL_REQUEST 2 39 #define CLOSE_REQUEST 3 40 #define VERSION_REQUEST 4 41 #define READ_REQUEST 5 42 #define READ_RESPONSE 6 43 #define WRITE_REQUEST 7 44 #define WRITE_RESPONSE 8 45 #define SKIP_REQUEST 9 46 #define PSA_REPLY 10 47 48 #define NON_SECURE (1 << 30) 49 50 /* Note that this implementation is functional and not secure */ 51 extern int __psa_ff_client_security_state; 52 53 struct message_text { 54 int qid; 55 int32_t psa_type; 56 char buf[MAX_FRAGMENT_SIZE]; 57 }; 58 59 60 struct message { 61 long message_type; 62 struct message_text message_text; 63 }; 64 65 struct request_msg_internal { 66 psa_invec invec; 67 size_t skip_num; 68 }; 69 70 struct skip_request_msg { 71 long message_type; 72 struct request_msg_internal message_text; 73 }; 74 75 typedef struct vectors { 76 const psa_invec *in_vec; 77 size_t in_len; 78 psa_outvec *out_vec; 79 size_t out_len; 80 } vectors_t; 81 82 typedef struct vector_sizes { 83 size_t invec_sizes[PSA_MAX_IOVEC]; 84 size_t outvec_sizes[PSA_MAX_IOVEC]; 85 } vector_sizes_t;