1*758e9fbaSOystein Eftevaag /* SPDX-License-Identifier: BSD-2-Clause */ 2*758e9fbaSOystein Eftevaag /*********************************************************************** 3*758e9fbaSOystein Eftevaag * Copyright (c) 2017-2018, Intel Corporation 4*758e9fbaSOystein Eftevaag * 5*758e9fbaSOystein Eftevaag * All rights reserved. 6*758e9fbaSOystein Eftevaag ***********************************************************************/ 7*758e9fbaSOystein Eftevaag #ifndef TEST_OPTIONS_H 8*758e9fbaSOystein Eftevaag #define TEST_OPTIONS_H 9*758e9fbaSOystein Eftevaag 10*758e9fbaSOystein Eftevaag #include <stdint.h> 11*758e9fbaSOystein Eftevaag 12*758e9fbaSOystein Eftevaag /* Default TCTI */ 13*758e9fbaSOystein Eftevaag #define TCTI_DEFAULT SOCKET_TCTI 14*758e9fbaSOystein Eftevaag #define TCTI_DEFAULT_STR "socket" 15*758e9fbaSOystein Eftevaag 16*758e9fbaSOystein Eftevaag /* Defaults for Device TCTI */ 17*758e9fbaSOystein Eftevaag #define DEVICE_PATH_DEFAULT "/dev/tpm0" 18*758e9fbaSOystein Eftevaag 19*758e9fbaSOystein Eftevaag /* Defaults for Socket TCTI connections */ 20*758e9fbaSOystein Eftevaag #define HOSTNAME_DEFAULT "127.0.0.1" 21*758e9fbaSOystein Eftevaag #define PORT_DEFAULT 2321 22*758e9fbaSOystein Eftevaag 23*758e9fbaSOystein Eftevaag /* environment variables holding TCTI config */ 24*758e9fbaSOystein Eftevaag #define ENV_TCTI_NAME "TPM20TEST_TCTI_NAME" 25*758e9fbaSOystein Eftevaag #define ENV_DEVICE_FILE "TPM20TEST_DEVICE_FILE" 26*758e9fbaSOystein Eftevaag #define ENV_SOCKET_ADDRESS "TPM20TEST_SOCKET_ADDRESS" 27*758e9fbaSOystein Eftevaag #define ENV_SOCKET_PORT "TPM20TEST_SOCKET_PORT" 28*758e9fbaSOystein Eftevaag 29*758e9fbaSOystein Eftevaag typedef enum { 30*758e9fbaSOystein Eftevaag UNKNOWN_TCTI, 31*758e9fbaSOystein Eftevaag DEVICE_TCTI, 32*758e9fbaSOystein Eftevaag SOCKET_TCTI, 33*758e9fbaSOystein Eftevaag FUZZING_TCTI, 34*758e9fbaSOystein Eftevaag N_TCTI, 35*758e9fbaSOystein Eftevaag } TCTI_TYPE; 36*758e9fbaSOystein Eftevaag 37*758e9fbaSOystein Eftevaag typedef struct { 38*758e9fbaSOystein Eftevaag TCTI_TYPE tcti_type; 39*758e9fbaSOystein Eftevaag const char *device_file; 40*758e9fbaSOystein Eftevaag const char *socket_address; 41*758e9fbaSOystein Eftevaag uint16_t socket_port; 42*758e9fbaSOystein Eftevaag } test_opts_t; 43*758e9fbaSOystein Eftevaag 44*758e9fbaSOystein Eftevaag /* functions to get test options from the user and to print helpful stuff */ 45*758e9fbaSOystein Eftevaag const char *tcti_name_from_type(TCTI_TYPE tcti_type); 46*758e9fbaSOystein Eftevaag TCTI_TYPE tcti_type_from_name(char const *tcti_str); 47*758e9fbaSOystein Eftevaag int get_test_opts_from_env(test_opts_t * opts); 48*758e9fbaSOystein Eftevaag int sanity_check_test_opts(test_opts_t * opts); 49*758e9fbaSOystein Eftevaag void dump_test_opts(test_opts_t * opts); 50*758e9fbaSOystein Eftevaag 51*758e9fbaSOystein Eftevaag #endif /* TEST_OPTIONS_H */ 52