xref: /aosp_15_r20/external/tpm2-tss/src/util/key-value-parse.h (revision 758e9fba6fc9adbf15340f70c73baee7b168b1c9)
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