| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| |
| #ifndef GARNET_LIB_RUST_WLAN_MLME_ABI_H_ |
| #define GARNET_LIB_RUST_WLAN_MLME_ABI_H_ |
| |
| // Warning: |
| // This file was autogenerated by cbindgen. |
| // Do not modify this file manually. |
| |
| |
| #include <stdarg.h> |
| #include <stdbool.h> |
| #include <stdint.h> |
| #include <stdlib.h> |
| |
| /** |
| * An input buffer will always be returned to its original owner when no longer being used. |
| * An input buffer is used for every buffer handed from C++ to Rust. |
| */ |
| typedef struct { |
| /** |
| * Returns the buffer's ownership and free it. |
| */ |
| void (*free_buffer)(void *raw); |
| /** |
| * Pointer to the buffer's underlying data structure. |
| */ |
| void *raw; |
| /** |
| * Pointer to the start of the buffer's data portion and its length. |
| */ |
| uint8_t *data; |
| uintptr_t len; |
| } rust_mlme_in_buf_t; |
| |
| typedef struct { |
| /** |
| * Acquire a `InBuf` with a given minimum length from the provider. |
| * The provider must release the underlying buffer's ownership and transfer it to this crate. |
| * The buffer will be returned via the `free_buffer` callback when it's no longer used. |
| */ |
| rust_mlme_in_buf_t (*take_buffer)(uintptr_t min_len); |
| } rust_mlme_buffer_provider_ops_t; |
| |
| /** |
| * An output buffer requires its owner to manage the underlying buffer's memory themselves. |
| * An output buffer is used for every buffer handed from Rust to C++. |
| */ |
| typedef struct { |
| /** |
| * Pointer to the buffer's underlying data structure. |
| */ |
| void *raw; |
| /** |
| * Pointer to the start of the buffer's data portion and the amount of bytes written. |
| */ |
| uint8_t *data; |
| uintptr_t written_bytes; |
| } rust_mlme_out_buf_t; |
| |
| extern "C" int32_t rust_mlme_is_valid_open_auth_resp(rust_mlme_in_buf_t buf, bool has_body_aligned); |
| |
| #endif /* GARNET_LIB_RUST_WLAN_MLME_ABI_H_ */ |