1// Copyright 2016 The Fuchsia Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef MOJO_PUBLIC_C_BINDINGS_STRUCT_H_ 6#define MOJO_PUBLIC_C_BINDINGS_STRUCT_H_ 7 8#include <stdbool.h> 9#include <stddef.h> 10#include <stdint.h> 11 12#ifdef __cplusplus 13extern "C" { 14#endif 15 16// Validates that a given buffer has a mojo struct header and that the size of 17// the struct in the header matches the size of the buffer. 18bool mojo_validate_struct_header(const void* data, size_t size); 19 20typedef struct struct_header { 21 uint32_t num_bytes; 22 uint32_t version; 23} mojo_struct_header_t; 24 25#ifdef __cplusplus 26} // extern "C" 27#endif 28 29#endif // MOJO_PUBLIC_C_BINDINGS_STRUCT_H_ 30