blob: 96760d909fe32787a61615f038da885a4a3d4c6c [file] [log] [blame]
/* Common definitions used for clients and services */
/*
* Copyright The Mbed TLS Contributors
* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
*/
#include <psa/service.h>
#ifdef DEBUG
#define DEBUG_TEST 1
#else
#define DEBUG_TEST 0
#endif
#define PRINT(...) \
do { if (DEBUG_TEST) fprintf(stderr, __VA_ARGS__); } while (0)
#define INFO(...) \
do { if (DEBUG_TEST) { PRINT("%s", __FILE__); PRINT(" INFO: " __VA_ARGS__); printf("\n"); \
} } while (0)
#define PROGRAMMER_ERROR(...) \
do { if (DEBUG_TEST) { PRINT("%s:%d:%s(): PROGRAMMER ERROR", __FILE__, __LINE__, __func__); \
PRINT(__VA_ARGS__); } abort(); } while (0)
#define FATAL(...) \
do { if (DEBUG_TEST) { PRINT("%s:%d:%s(): INTERNAL ERROR", __FILE__, __LINE__, __func__); PRINT( \
__VA_ARGS__); } abort(); } while (0)
#define PROJECT_ID 'M'
#define PATHNAMESIZE 64
/* Increasing this might break on some platforms */
#define MAX_FRAGMENT_SIZE 200
#define CONNECT_REQUEST 1
#define CALL_REQUEST 2
#define CLOSE_REQUEST 3
#define VERSION_REQUEST 4
#define READ_REQUEST 5
#define READ_RESPONSE 6
#define WRITE_REQUEST 7
#define WRITE_RESPONSE 8
#define SKIP_REQUEST 9
#define PSA_REPLY 10
#define NON_SECURE (1 << 30)
/* Note that this implementation is functional and not secure */
extern int __psa_ff_client_security_state;
struct message_text {
int qid;
int32_t psa_type;
char buf[MAX_FRAGMENT_SIZE];
};
struct message {
long message_type;
struct message_text message_text;
};
struct request_msg_internal {
psa_invec invec;
size_t skip_num;
};
struct skip_request_msg {
long message_type;
struct request_msg_internal message_text;
};
typedef struct vectors {
const psa_invec *in_vec;
size_t in_len;
psa_outvec *out_vec;
size_t out_len;
} vectors_t;
typedef struct vector_sizes {
size_t invec_sizes[PSA_MAX_IOVEC];
size_t outvec_sizes[PSA_MAX_IOVEC];
} vector_sizes_t;