1/* This file is generated by venus-protocol.  See vn_protocol_driver.h. */
2
3/*
4 * Copyright 2020 Google LLC
5 * SPDX-License-Identifier: MIT
6 */
7
8#ifndef VN_PROTOCOL_DRIVER_CS_H
9#define VN_PROTOCOL_DRIVER_CS_H
10
11#include <assert.h>
12
13/*
14 * These types/functions are expected
15 *
16 *   struct vn_cs_encoder
17 *   vn_cs_encoder_get_len
18 *   vn_cs_encoder_reserve
19 *   vn_cs_encoder_write
20 *
21 *   struct vn_cs_decoder
22 *   vn_cs_decoder_set_fatal
23 *   vn_cs_decoder_read
24 *   vn_cs_decoder_peek
25 *
26 *   vn_cs_handle_load_id
27 *   vn_cs_handle_store_id
28 */
29#include "vn_cs.h"
30
31static inline void
32vn_encode(struct vn_cs_encoder *enc, size_t size, const void *data, size_t data_size)
33{
34   assert(size % 4 == 0);
35   /* TODO check if the generated code is optimal */
36   vn_cs_encoder_write(enc, size, data, data_size);
37}
38
39static inline void
40vn_decode(struct vn_cs_decoder *dec, size_t size, void *data, size_t data_size)
41{
42   assert(size % 4 == 0);
43   vn_cs_decoder_read(dec, size, data, data_size);
44}
45
46#endif /* VN_PROTOCOL_DRIVER_CS_H */
47