#ifndef ALLEGRO_MAIL_H
#define ALLEGRO_MAIL_H
#include <linux/kernel.h>
enum mcu_msg_type { … };
enum mcu_msg_version { … };
const char *msg_type_name(enum mcu_msg_type type);
struct mcu_msg_header { … };
struct mcu_msg_init_request { … };
struct mcu_msg_init_response { … };
struct create_channel_param { … };
struct mcu_msg_create_channel { … };
struct mcu_msg_create_channel_response { … };
struct mcu_msg_destroy_channel { … };
struct mcu_msg_destroy_channel_response { … };
struct mcu_msg_push_buffers_internal_buffer { … };
struct mcu_msg_push_buffers_internal { … };
struct mcu_msg_put_stream_buffer { … };
struct mcu_msg_encode_frame { … };
struct mcu_msg_encode_frame_response { … };
mcu_msg_response;
ssize_t allegro_encode_config_blob(u32 *dst, struct create_channel_param *param);
ssize_t allegro_decode_config_blob(struct create_channel_param *param,
struct mcu_msg_create_channel_response *msg,
u32 *src);
int allegro_decode_mail(void *msg, u32 *src);
ssize_t allegro_encode_mail(u32 *dst, void *msg);
#endif