1 /*
2  * Copyright (c) 2023, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #ifndef __SDS_API_H__
9 #define __SDS_API_H__
10 
11 #include <stdbool.h>
12 #include <stdint.h>
13 #include <stddef.h>
14 
15 #include "tfm_plat_defs.h"
16 
17 struct sds_structure_desc {
18     /*! Identifier of the structure to be created. */
19     uint32_t id;
20 
21     /*! Size, in bytes, of the structure. */
22     size_t size;
23 
24     /*!
25      *  Payload of the structure. If not equal to NULL, as part of the
26      *  initialization of the module's elements, the payload of the structure
27      *  identified by 'id' is initialized/updated to the value pointed to by
28      *  'payload'.
29      */
30     const void *payload;
31 
32     /*! Set the valid flag in the structure if true. */
33     bool finalize;
34 };
35 
36 enum tfm_plat_err_t sds_struct_add(const struct sds_structure_desc *struct_desc);
37 
38 #endif /* __SDS_API_H__ */
39