use std::ffi::c_void;
pub const AMD_PLUGIN_ABI_VERSION: u32 = 1;
pub const AMD_PLUGIN_ENTRY_SYMBOL: &[u8] = b"all_smi_amd_plugin_entry_v1\0";
pub const AMD_PLUGIN_WIRE_FORMAT: &str = "all-smi-json-v1";
#[repr(C)]
#[derive(Debug, Default)]
pub struct AmdPluginBuffer {
pub ptr: *mut u8,
pub len: usize,
pub capacity: usize,
}
pub type CreateReaderFn = unsafe extern "C" fn() -> *mut c_void;
pub type DestroyReaderFn = unsafe extern "C" fn(*mut c_void);
pub type ReadJsonFn = unsafe extern "C" fn(*mut c_void, *mut AmdPluginBuffer) -> i32;
pub type ReadMetadataFn = unsafe extern "C" fn(*mut AmdPluginBuffer) -> i32;
pub type FreeBufferFn = unsafe extern "C" fn(*mut AmdPluginBuffer);
#[repr(C)]
#[derive(Clone, Copy)]
pub struct AmdPluginApiV1 {
pub abi_version: u32,
pub struct_size: usize,
pub create_reader: Option<CreateReaderFn>,
pub destroy_reader: Option<DestroyReaderFn>,
pub read_gpu_info_json: Option<ReadJsonFn>,
pub read_process_info_json: Option<ReadJsonFn>,
pub read_metadata_json: Option<ReadMetadataFn>,
pub free_buffer: Option<FreeBufferFn>,
}