API参考
载入中...
搜索中...
未找到
bsl_params.h
1/*
2 * This file is part of the openHiTLS project.
3 *
4 * openHiTLS is licensed under the Mulan PSL v2.
5 * You can use this software according to the terms and conditions of the Mulan PSL v2.
6 * You may obtain a copy of Mulan PSL v2 at:
7 *
8 * http://license.coscl.org.cn/MulanPSL2
9 *
10 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
11 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
12 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
13 * See the Mulan PSL v2 for more details.
14 */
15
21
22#ifndef BSL_PARAMS_H
23#define BSL_PARAMS_H
24
25#include <stdint.h>
26#include <stddef.h>
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32#define BSL_PARAM_END {0, 0, NULL, 0, 0}
33
34typedef enum {
35 BSL_PARAM_TYPE_UINT32_PTR,
36 BSL_PARAM_TYPE_OCTETS_PTR,
37 BSL_PARAM_TYPE_FUNC_PTR,
38 BSL_PARAM_TYPE_CTX_PTR,
39 BSL_PARAM_TYPE_UINT8,
40 BSL_PARAM_TYPE_UINT16,
41 BSL_PARAM_TYPE_UINT32,
42 BSL_PARAM_TYPE_BOOL,
43 BSL_PARAM_TYPE_INT32,
44 BSL_PARAM_TYPE_OCTETS,
45 BSL_PARAM_TYPE_UTF8_STR,
46 BSL_PARAM_TYPE_SIZE_T,
47 BSL_PARAM_TYPE_SIZE_T_PTR,
48 BSL_PARAM_TYPE_UINT64,
49} BSL_PARAM_VALUE_TYPE;
50
51typedef struct BslParam {
52 int32_t key;
53 uint32_t valueType;
54 void *value;
55 uint32_t valueLen;
56 uint32_t useLen;
57} BSL_Param;
58
59typedef struct BslParamMaker BSL_ParamMaker;
60
75int32_t BSL_PARAM_InitValue(BSL_Param *param, int32_t key, uint32_t type, void *val, uint32_t valueLen);
76
91int32_t BSL_PARAM_SetValue(BSL_Param *param, int32_t key, uint32_t type, void *val, uint32_t len);
92
107int32_t BSL_PARAM_GetPtrValue(const BSL_Param *param, int32_t key, uint32_t type, void **val, uint32_t *valueLen);
108
123int32_t BSL_PARAM_GetValue(const BSL_Param *param, int32_t key, uint32_t type, void *val, uint32_t *valueLen);
124
136const BSL_Param *BSL_PARAM_FindConstParam(const BSL_Param *param, int32_t key);
137
149BSL_Param *BSL_PARAM_FindParam(BSL_Param *param, int32_t key);
150
156void BSL_PARAM_Free(BSL_Param *param);
157
163BSL_ParamMaker *BSL_PARAM_MAKER_New(void);
164
178int32_t BSL_PARAM_MAKER_PushValue(BSL_ParamMaker *maker, int32_t key, uint32_t type, void *value, uint32_t len);
179
194int32_t BSL_PARAM_MAKER_DeepPushValue(BSL_ParamMaker *maker, int32_t key, uint32_t type, void *value,
195 uint32_t len);
196
204BSL_Param *BSL_PARAM_MAKER_ToParam(BSL_ParamMaker *maker);
205
211void BSL_PARAM_MAKER_Free(BSL_ParamMaker *maker);
212
213#ifdef __cplusplus
214}
215#endif
216
217#endif
定义 bsl_params.h:51