2 * @file fres_container_internal.h
3 * @author Michal Sojka <sojkam1@fel.cvut.cz>
5 * @brief Internal interface to fres_container.
7 * This header should only be included by files in frsh/cm library.
10 #ifndef FRES_CONTAINER_INTERNAL_H
11 #define FRES_CONTAINER_INTERNAL_H
13 #include <fres_contract_idl.h>
15 enum fres_block_state {
16 /** There is no such block in the container. */
18 /** The container contains the block in the deserialized
21 /** The container contains the block in the serialized form
22 * (sequence of octets).*/
27 enum fres_block_state state;
29 void *data; /**< Pointer to data according to param_type */
30 fres_block_stream stream; /**< Unserialized (unknown) data */
34 struct fres_container {
35 struct fres_block blocks[FRES_NUM_BLOCKS];
38 #define FRES_BLOCK_TYPE_VALID(type) \
39 ((type) < FRES_NUM_BLOCKS && \