xref: /optee_os/ta/pkcs11/src/serializer.h (revision 5b25c76ac40f830867e3d60800120ffd7874e8dc)
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*
3  * Copyright (c) 2017-2020, Linaro Limited
4  */
5 
6 #ifndef PKCS11_TA_SERIALIZER_H
7 #define PKCS11_TA_SERIALIZER_H
8 
9 #include <stdbool.h>
10 #include <stdint.h>
11 
12 /*
13  * Util routines for serializes unformated arguments in a client memref
14  */
15 struct serialargs {
16 	char *start;
17 	char *next;
18 	size_t size;
19 };
20 
21 void serialargs_init(struct serialargs *args, void *in, size_t size);
22 
23 uint32_t serialargs_get(struct serialargs *args, void *out, size_t sz);
24 
25 uint32_t serialargs_get_ptr(struct serialargs *args, void **out, size_t size);
26 
27 uint32_t serialargs_alloc_and_get(struct serialargs *args,
28 				  void **out, size_t size);
29 
30 bool serialargs_remaining_bytes(struct serialargs *args);
31 
32 #endif /*PKCS11_TA_SERIALIZER_H*/
33