rust-randomx 0.7.6

Rust interface to the RandomX hash function
Documentation
/* automatically generated by rust-bindgen 0.69.4 */

pub const _STDINT_H: u32 = 1;
pub const _FEATURES_H: u32 = 1;
pub const _DEFAULT_SOURCE: u32 = 1;
pub const __GLIBC_USE_ISOC2X: u32 = 0;
pub const __USE_ISOC11: u32 = 1;
pub const __USE_ISOC99: u32 = 1;
pub const __USE_ISOC95: u32 = 1;
pub const __USE_POSIX_IMPLICITLY: u32 = 1;
pub const _POSIX_SOURCE: u32 = 1;
pub const _POSIX_C_SOURCE: u32 = 200809;
pub const __USE_POSIX: u32 = 1;
pub const __USE_POSIX2: u32 = 1;
pub const __USE_POSIX199309: u32 = 1;
pub const __USE_POSIX199506: u32 = 1;
pub const __USE_XOPEN2K: u32 = 1;
pub const __USE_XOPEN2K8: u32 = 1;
pub const _ATFILE_SOURCE: u32 = 1;
pub const __WORDSIZE: u32 = 64;
pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
pub const __SYSCALL_WORDSIZE: u32 = 64;
pub const __TIMESIZE: u32 = 64;
pub const __USE_MISC: u32 = 1;
pub const __USE_ATFILE: u32 = 1;
pub const __USE_FORTIFY_LEVEL: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
pub const __GLIBC_USE_C2X_STRTOL: u32 = 0;
pub const _STDC_PREDEF_H: u32 = 1;
pub const __STDC_IEC_559__: u32 = 1;
pub const __STDC_IEC_60559_BFP__: u32 = 201404;
pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404;
pub const __STDC_ISO_10646__: u32 = 201706;
pub const __GNU_LIBRARY__: u32 = 6;
pub const __GLIBC__: u32 = 2;
pub const __GLIBC_MINOR__: u32 = 39;
pub const _SYS_CDEFS_H: u32 = 1;
pub const __glibc_c99_flexarr_available: u32 = 1;
pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0;
pub const __HAVE_GENERIC_SELECTION: u32 = 1;
pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0;
pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0;
pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
pub const _BITS_TYPES_H: u32 = 1;
pub const _BITS_TYPESIZES_H: u32 = 1;
pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
pub const __INO_T_MATCHES_INO64_T: u32 = 1;
pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
pub const __STATFS_MATCHES_STATFS64: u32 = 1;
pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1;
pub const __FD_SETSIZE: u32 = 1024;
pub const _BITS_TIME64_H: u32 = 1;
pub const _BITS_WCHAR_H: u32 = 1;
pub const _BITS_STDINT_INTN_H: u32 = 1;
pub const _BITS_STDINT_UINTN_H: u32 = 1;
pub const _BITS_STDINT_LEAST_H: u32 = 1;
pub const INT8_MIN: i32 = -128;
pub const INT16_MIN: i32 = -32768;
pub const INT32_MIN: i32 = -2147483648;
pub const INT8_MAX: u32 = 127;
pub const INT16_MAX: u32 = 32767;
pub const INT32_MAX: u32 = 2147483647;
pub const UINT8_MAX: u32 = 255;
pub const UINT16_MAX: u32 = 65535;
pub const UINT32_MAX: u32 = 4294967295;
pub const INT_LEAST8_MIN: i32 = -128;
pub const INT_LEAST16_MIN: i32 = -32768;
pub const INT_LEAST32_MIN: i32 = -2147483648;
pub const INT_LEAST8_MAX: u32 = 127;
pub const INT_LEAST16_MAX: u32 = 32767;
pub const INT_LEAST32_MAX: u32 = 2147483647;
pub const UINT_LEAST8_MAX: u32 = 255;
pub const UINT_LEAST16_MAX: u32 = 65535;
pub const UINT_LEAST32_MAX: u32 = 4294967295;
pub const INT_FAST8_MIN: i32 = -128;
pub const INT_FAST16_MIN: i64 = -9223372036854775808;
pub const INT_FAST32_MIN: i64 = -9223372036854775808;
pub const INT_FAST8_MAX: u32 = 127;
pub const INT_FAST16_MAX: u64 = 9223372036854775807;
pub const INT_FAST32_MAX: u64 = 9223372036854775807;
pub const UINT_FAST8_MAX: u32 = 255;
pub const UINT_FAST16_MAX: i32 = -1;
pub const UINT_FAST32_MAX: i32 = -1;
pub const INTPTR_MIN: i64 = -9223372036854775808;
pub const INTPTR_MAX: u64 = 9223372036854775807;
pub const UINTPTR_MAX: i32 = -1;
pub const PTRDIFF_MIN: i64 = -9223372036854775808;
pub const PTRDIFF_MAX: u64 = 9223372036854775807;
pub const SIG_ATOMIC_MIN: i32 = -2147483648;
pub const SIG_ATOMIC_MAX: u32 = 2147483647;
pub const SIZE_MAX: i32 = -1;
pub const WINT_MIN: u32 = 0;
pub const WINT_MAX: u32 = 4294967295;
pub const RANDOMX_HASH_SIZE: u32 = 32;
pub const RANDOMX_DATASET_ITEM_SIZE: u32 = 64;
pub type wchar_t = ::std::os::raw::c_int;
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Copy, Clone)]
pub struct max_align_t {
    pub __clang_max_align_nonce1: ::std::os::raw::c_longlong,
    pub __bindgen_padding_0: u64,
    pub __clang_max_align_nonce2: u128,
}
#[test]
fn bindgen_test_layout_max_align_t() {
    const UNINIT: ::std::mem::MaybeUninit<max_align_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<max_align_t>(),
        32usize,
        concat!("Size of: ", stringify!(max_align_t))
    );
    assert_eq!(
        ::std::mem::align_of::<max_align_t>(),
        16usize,
        concat!("Alignment of ", stringify!(max_align_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce1) as usize - ptr as usize },
        0usize,
        concat!(
        "Offset of field: ",
        stringify!(max_align_t),
        "::",
        stringify!(__clang_max_align_nonce1)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce2) as usize - ptr as usize },
        16usize,
        concat!(
        "Offset of field: ",
        stringify!(max_align_t),
        "::",
        stringify!(__clang_max_align_nonce2)
        )
    );
}
pub type __u_char = ::std::os::raw::c_uchar;
pub type __u_short = ::std::os::raw::c_ushort;
pub type __u_int = ::std::os::raw::c_uint;
pub type __u_long = ::std::os::raw::c_ulong;
pub type __int8_t = ::std::os::raw::c_schar;
pub type __uint8_t = ::std::os::raw::c_uchar;
pub type __int16_t = ::std::os::raw::c_short;
pub type __uint16_t = ::std::os::raw::c_ushort;
pub type __int32_t = ::std::os::raw::c_int;
pub type __uint32_t = ::std::os::raw::c_uint;
pub type __int64_t = ::std::os::raw::c_long;
pub type __uint64_t = ::std::os::raw::c_ulong;
pub type __int_least8_t = __int8_t;
pub type __uint_least8_t = __uint8_t;
pub type __int_least16_t = __int16_t;
pub type __uint_least16_t = __uint16_t;
pub type __int_least32_t = __int32_t;
pub type __uint_least32_t = __uint32_t;
pub type __int_least64_t = __int64_t;
pub type __uint_least64_t = __uint64_t;
pub type __quad_t = ::std::os::raw::c_long;
pub type __u_quad_t = ::std::os::raw::c_ulong;
pub type __intmax_t = ::std::os::raw::c_long;
pub type __uintmax_t = ::std::os::raw::c_ulong;
pub type __dev_t = ::std::os::raw::c_ulong;
pub type __uid_t = ::std::os::raw::c_uint;
pub type __gid_t = ::std::os::raw::c_uint;
pub type __ino_t = ::std::os::raw::c_ulong;
pub type __ino64_t = ::std::os::raw::c_ulong;
pub type __mode_t = ::std::os::raw::c_uint;
pub type __nlink_t = ::std::os::raw::c_ulong;
pub type __off_t = ::std::os::raw::c_long;
pub type __off64_t = ::std::os::raw::c_long;
pub type __pid_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __fsid_t {
    pub __val: [::std::os::raw::c_int; 2usize],
}
#[test]
fn bindgen_test_layout___fsid_t() {
    const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__fsid_t>(),
        8usize,
        concat!("Size of: ", stringify!(__fsid_t))
    );
    assert_eq!(
        ::std::mem::align_of::<__fsid_t>(),
        4usize,
        concat!("Alignment of ", stringify!(__fsid_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize },
        0usize,
        concat!(
        "Offset of field: ",
        stringify!(__fsid_t),
        "::",
        stringify!(__val)
        )
    );
}
pub type __clock_t = ::std::os::raw::c_long;
pub type __rlim_t = ::std::os::raw::c_ulong;
pub type __rlim64_t = ::std::os::raw::c_ulong;
pub type __id_t = ::std::os::raw::c_uint;
pub type __time_t = ::std::os::raw::c_long;
pub type __useconds_t = ::std::os::raw::c_uint;
pub type __suseconds_t = ::std::os::raw::c_long;
pub type __suseconds64_t = ::std::os::raw::c_long;
pub type __daddr_t = ::std::os::raw::c_int;
pub type __key_t = ::std::os::raw::c_int;
pub type __clockid_t = ::std::os::raw::c_int;
pub type __timer_t = *mut ::std::os::raw::c_void;
pub type __blksize_t = ::std::os::raw::c_long;
pub type __blkcnt_t = ::std::os::raw::c_long;
pub type __blkcnt64_t = ::std::os::raw::c_long;
pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
pub type __fsword_t = ::std::os::raw::c_long;
pub type __ssize_t = ::std::os::raw::c_long;
pub type __syscall_slong_t = ::std::os::raw::c_long;
pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
pub type __loff_t = __off64_t;
pub type __caddr_t = *mut ::std::os::raw::c_char;
pub type __intptr_t = ::std::os::raw::c_long;
pub type __socklen_t = ::std::os::raw::c_uint;
pub type __sig_atomic_t = ::std::os::raw::c_int;
pub type int_least8_t = __int_least8_t;
pub type int_least16_t = __int_least16_t;
pub type int_least32_t = __int_least32_t;
pub type int_least64_t = __int_least64_t;
pub type uint_least8_t = __uint_least8_t;
pub type uint_least16_t = __uint_least16_t;
pub type uint_least32_t = __uint_least32_t;
pub type uint_least64_t = __uint_least64_t;
pub type int_fast8_t = ::std::os::raw::c_schar;
pub type int_fast16_t = ::std::os::raw::c_long;
pub type int_fast32_t = ::std::os::raw::c_long;
pub type int_fast64_t = ::std::os::raw::c_long;
pub type uint_fast8_t = ::std::os::raw::c_uchar;
pub type uint_fast16_t = ::std::os::raw::c_ulong;
pub type uint_fast32_t = ::std::os::raw::c_ulong;
pub type uint_fast64_t = ::std::os::raw::c_ulong;
pub type intmax_t = __intmax_t;
pub type uintmax_t = __uintmax_t;
pub const randomx_flags_RANDOMX_FLAG_DEFAULT: randomx_flags = 0;
pub const randomx_flags_RANDOMX_FLAG_LARGE_PAGES: randomx_flags = 1;
pub const randomx_flags_RANDOMX_FLAG_HARD_AES: randomx_flags = 2;
pub const randomx_flags_RANDOMX_FLAG_FULL_MEM: randomx_flags = 4;
pub const randomx_flags_RANDOMX_FLAG_JIT: randomx_flags = 8;
pub const randomx_flags_RANDOMX_FLAG_SECURE: randomx_flags = 16;
pub const randomx_flags_RANDOMX_FLAG_ARGON2_SSSE3: randomx_flags = 32;
pub const randomx_flags_RANDOMX_FLAG_ARGON2_AVX2: randomx_flags = 64;
pub const randomx_flags_RANDOMX_FLAG_ARGON2: randomx_flags = 96;
pub type randomx_flags = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct randomx_dataset {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct randomx_cache {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct randomx_vm {
    _unused: [u8; 0],
}
extern "C" {
    #[doc = " @return The recommended flags to be used on the current machine.\n         Does not include:\n            RANDOMX_FLAG_LARGE_PAGES\n            RANDOMX_FLAG_FULL_MEM\n            RANDOMX_FLAG_SECURE\n         These flags must be added manually if desired.\n         On OpenBSD RANDOMX_FLAG_SECURE is enabled by default in JIT mode as W^X is enforced by the OS."]
    pub fn randomx_get_flags() -> randomx_flags;
}
extern "C" {
    #[doc = " Creates a randomx_cache structure and allocates memory for RandomX Cache.\n\n @param flags is any combination of these 2 flags (each flag can be set or not set):\n        RANDOMX_FLAG_LARGE_PAGES - allocate memory in large pages\n        RANDOMX_FLAG_JIT - create cache structure with JIT compilation support; this makes\n                           subsequent Dataset initialization faster\n        Optionally, one of these two flags may be selected:\n        RANDOMX_FLAG_ARGON2_SSSE3 - optimized Argon2 for CPUs with the SSSE3 instruction set\n                                   makes subsequent cache initialization faster\n        RANDOMX_FLAG_ARGON2_AVX2 - optimized Argon2 for CPUs with the AVX2 instruction set\n                                   makes subsequent cache initialization faster\n\n @return Pointer to an allocated randomx_cache structure.\n         Returns NULL if:\n         (1) memory allocation fails\n         (2) the RANDOMX_FLAG_JIT is set and JIT compilation is not supported on the current platform\n         (3) an invalid or unsupported RANDOMX_FLAG_ARGON2 value is set"]
    pub fn randomx_alloc_cache(flags: randomx_flags) -> *mut randomx_cache;
}
extern "C" {
    #[doc = " Initializes the cache memory and SuperscalarHash using the provided key value.\n Does nothing if called again with the same key value.\n\n @param cache is a pointer to a previously allocated randomx_cache structure. Must not be NULL.\n @param key is a pointer to memory which contains the key value. Must not be NULL.\n @param keySize is the number of bytes of the key."]
    pub fn randomx_init_cache(
        cache: *mut randomx_cache,
        key: *const ::std::os::raw::c_void,
        keySize: usize,
    );
}
extern "C" {
    #[doc = " Releases all memory occupied by the randomx_cache structure.\n\n @param cache is a pointer to a previously allocated randomx_cache structure."]
    pub fn randomx_release_cache(cache: *mut randomx_cache);
}
extern "C" {
    #[doc = " Creates a randomx_dataset structure and allocates memory for RandomX Dataset.\n\n @param flags is the initialization flags. Only one flag is supported (can be set or not set):\n        RANDOMX_FLAG_LARGE_PAGES - allocate memory in large pages\n\n @return Pointer to an allocated randomx_dataset structure.\n         NULL is returned if memory allocation fails."]
    pub fn randomx_alloc_dataset(flags: randomx_flags) -> *mut randomx_dataset;
}
extern "C" {
    #[doc = " Gets the number of items contained in the dataset.\n\n @return the number of items contained in the dataset."]
    pub fn randomx_dataset_item_count() -> ::std::os::raw::c_ulong;
}
extern "C" {
    #[doc = " Initializes dataset items.\n\n Note: In order to use the Dataset, all items from 0 to (randomx_dataset_item_count() - 1) must be initialized.\n This may be done by several calls to this function using non-overlapping item sequences.\n\n @param dataset is a pointer to a previously allocated randomx_dataset structure. Must not be NULL.\n @param cache is a pointer to a previously allocated and initialized randomx_cache structure. Must not be NULL.\n @param startItem is the item number where intialization should start.\n @param itemCount is the number of items that should be initialized."]
    pub fn randomx_init_dataset(
        dataset: *mut randomx_dataset,
        cache: *mut randomx_cache,
        startItem: ::std::os::raw::c_ulong,
        itemCount: ::std::os::raw::c_ulong,
    );
}
extern "C" {
    #[doc = " Returns a pointer to the internal memory buffer of the dataset structure. The size\n of the internal memory buffer is randomx_dataset_item_count() * RANDOMX_DATASET_ITEM_SIZE.\n\n @param dataset is a pointer to a previously allocated randomx_dataset structure. Must not be NULL.\n\n @return Pointer to the internal memory buffer of the dataset structure."]
    pub fn randomx_get_dataset_memory(dataset: *mut randomx_dataset)
                                      -> *mut ::std::os::raw::c_void;
}
extern "C" {
    #[doc = " Releases all memory occupied by the randomx_dataset structure.\n\n @param dataset is a pointer to a previously allocated randomx_dataset structure."]
    pub fn randomx_release_dataset(dataset: *mut randomx_dataset);
}
extern "C" {
    #[doc = " Creates and initializes a RandomX virtual machine.\n\n @param flags is any combination of these 5 flags (each flag can be set or not set):\n        RANDOMX_FLAG_LARGE_PAGES - allocate scratchpad memory in large pages\n        RANDOMX_FLAG_HARD_AES - virtual machine will use hardware accelerated AES\n        RANDOMX_FLAG_FULL_MEM - virtual machine will use the full dataset\n        RANDOMX_FLAG_JIT - virtual machine will use a JIT compiler\n        RANDOMX_FLAG_SECURE - when combined with RANDOMX_FLAG_JIT, the JIT pages are never\n                              writable and executable at the same time (W^X policy)\n        The numeric values of the first 4 flags are ordered so that a higher value will provide\n        faster hash calculation and a lower numeric value will provide higher portability.\n        Using RANDOMX_FLAG_DEFAULT (all flags not set) works on all platforms, but is the slowest.\n @param cache is a pointer to an initialized randomx_cache structure. Can be\n        NULL if RANDOMX_FLAG_FULL_MEM is set.\n @param dataset is a pointer to a randomx_dataset structure. Can be NULL\n        if RANDOMX_FLAG_FULL_MEM is not set.\n\n @return Pointer to an initialized randomx_vm structure.\n         Returns NULL if:\n         (1) Scratchpad memory allocation fails.\n         (2) The requested initialization flags are not supported on the current platform.\n         (3) cache parameter is NULL and RANDOMX_FLAG_FULL_MEM is not set\n         (4) dataset parameter is NULL and RANDOMX_FLAG_FULL_MEM is set"]
    pub fn randomx_create_vm(
        flags: randomx_flags,
        cache: *mut randomx_cache,
        dataset: *mut randomx_dataset,
    ) -> *mut randomx_vm;
}
extern "C" {
    #[doc = " Reinitializes a virtual machine with a new Cache. This function should be called anytime\n the Cache is reinitialized with a new key. Does nothing if called with a Cache containing\n the same key value as already set.\n\n @param machine is a pointer to a randomx_vm structure that was initialized\n        without RANDOMX_FLAG_FULL_MEM. Must not be NULL.\n @param cache is a pointer to an initialized randomx_cache structure. Must not be NULL."]
    pub fn randomx_vm_set_cache(machine: *mut randomx_vm, cache: *mut randomx_cache);
}
extern "C" {
    #[doc = " Reinitializes a virtual machine with a new Dataset.\n\n @param machine is a pointer to a randomx_vm structure that was initialized\n        with RANDOMX_FLAG_FULL_MEM. Must not be NULL.\n @param dataset is a pointer to an initialized randomx_dataset structure. Must not be NULL."]
    pub fn randomx_vm_set_dataset(machine: *mut randomx_vm, dataset: *mut randomx_dataset);
}
extern "C" {
    #[doc = " Releases all memory occupied by the randomx_vm structure.\n\n @param machine is a pointer to a previously created randomx_vm structure."]
    pub fn randomx_destroy_vm(machine: *mut randomx_vm);
}
extern "C" {
    #[doc = " Calculates a RandomX hash value.\n\n @param machine is a pointer to a randomx_vm structure. Must not be NULL.\n @param input is a pointer to memory to be hashed. Must not be NULL.\n @param inputSize is the number of bytes to be hashed.\n @param output is a pointer to memory where the hash will be stored. Must not\n        be NULL and at least RANDOMX_HASH_SIZE bytes must be available for writing."]
    pub fn randomx_calculate_hash(
        machine: *mut randomx_vm,
        input: *const ::std::os::raw::c_void,
        inputSize: usize,
        output: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    #[doc = " Set of functions used to calculate multiple RandomX hashes more efficiently.\n randomx_calculate_hash_first will begin a hash calculation.\n randomx_calculate_hash_next  will output the hash value of the previous input\n                              and begin the calculation of the next hash.\n randomx_calculate_hash_last  will output the hash value of the previous input.\n\n WARNING: These functions may alter the floating point rounding mode of the calling thread.\n\n @param machine is a pointer to a randomx_vm structure. Must not be NULL.\n @param input is a pointer to memory to be hashed. Must not be NULL.\n @param inputSize is the number of bytes to be hashed.\n @param nextInput is a pointer to memory to be hashed for the next hash. Must not be NULL.\n @param nextInputSize is the number of bytes to be hashed for the next hash.\n @param output is a pointer to memory where the hash will be stored. Must not\n        be NULL and at least RANDOMX_HASH_SIZE bytes must be available for writing."]
    pub fn randomx_calculate_hash_first(
        machine: *mut randomx_vm,
        input: *const ::std::os::raw::c_void,
        inputSize: usize,
    );
}
extern "C" {
    pub fn randomx_calculate_hash_next(
        machine: *mut randomx_vm,
        nextInput: *const ::std::os::raw::c_void,
        nextInputSize: usize,
        output: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    pub fn randomx_calculate_hash_last(
        machine: *mut randomx_vm,
        output: *mut ::std::os::raw::c_void,
    );
}
extern "C" {
    #[doc = " Calculate a RandomX commitment from a RandomX hash and its input.\n\n @param input is a pointer to memory that was hashed. Must not be NULL.\n @param inputSize is the number of bytes in the input.\n @param hash_in is the output from randomx_calculate_hash* (RANDOMX_HASH_SIZE bytes).\n @param com_out is a pointer to memory where the commitment will be stored. Must not\n        be NULL and at least RANDOMX_HASH_SIZE bytes must be available for writing."]
    pub fn randomx_calculate_commitment(
        input: *const ::std::os::raw::c_void,
        inputSize: usize,
        hash_in: *const ::std::os::raw::c_void,
        com_out: *mut ::std::os::raw::c_void,
    );
}