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