1*758e9fbaSOystein Eftevaag /* SPDX-License-Identifier: BSD-2-Clause */ 2*758e9fbaSOystein Eftevaag /* 3*758e9fbaSOystein Eftevaag * Copyright (c) 2018, Intel Corporation 4*758e9fbaSOystein Eftevaag * All rights reserved. 5*758e9fbaSOystein Eftevaag */ 6*758e9fbaSOystein Eftevaag 7*758e9fbaSOystein Eftevaag #ifndef KEY_VALUE_PARSE_H 8*758e9fbaSOystein Eftevaag #define KEY_VALUE_PARSE_H 9*758e9fbaSOystein Eftevaag 10*758e9fbaSOystein Eftevaag #include <stdlib.h> 11*758e9fbaSOystein Eftevaag 12*758e9fbaSOystein Eftevaag #include "tss2_tpm2_types.h" 13*758e9fbaSOystein Eftevaag 14*758e9fbaSOystein Eftevaag #define KEY_VALUE_INIT { \ 15*758e9fbaSOystein Eftevaag .key = NULL, \ 16*758e9fbaSOystein Eftevaag .value = NULL, \ 17*758e9fbaSOystein Eftevaag } 18*758e9fbaSOystein Eftevaag 19*758e9fbaSOystein Eftevaag typedef struct { 20*758e9fbaSOystein Eftevaag char *key; 21*758e9fbaSOystein Eftevaag char *value; 22*758e9fbaSOystein Eftevaag } key_value_t; 23*758e9fbaSOystein Eftevaag 24*758e9fbaSOystein Eftevaag typedef TSS2_RC (*KeyValueFunc) (const key_value_t* key_value, 25*758e9fbaSOystein Eftevaag void *user_data); 26*758e9fbaSOystein Eftevaag bool 27*758e9fbaSOystein Eftevaag parse_key_value (char *key_value_str, 28*758e9fbaSOystein Eftevaag key_value_t *key_value); 29*758e9fbaSOystein Eftevaag TSS2_RC 30*758e9fbaSOystein Eftevaag parse_key_value_string (char *kv_str, 31*758e9fbaSOystein Eftevaag KeyValueFunc callback, 32*758e9fbaSOystein Eftevaag void *user_data); 33*758e9fbaSOystein Eftevaag 34*758e9fbaSOystein Eftevaag #endif /* KEY_VALUE_PARSE_H */ 35