#[cfg(not(any(target_feature = "static-syscalls", feature = "static-syscalls")))]
unsafe extern "C" {
pub fn sol_sha512(vals: *const u8, val_len: u64, hash_result: *mut u8) -> u64;
pub fn sol_curve_validate_point(curve_id: u64, point_addr: *const u8, result: *mut u8) -> u64;
pub fn sol_curve_group_op(
curve_id: u64,
group_op: u64,
left_input_addr: *const u8,
right_input_addr: *const u8,
result_point_addr: *mut u8,
) -> u64;
pub fn sol_curve_multiscalar_mul(
curve_id: u64,
scalars_addr: *const u8,
points_addr: *const u8,
points_len: u64,
result_point_addr: *mut u8,
) -> u64;
}
#[cfg(any(target_feature = "static-syscalls", feature = "static-syscalls"))]
mod r#static {
#[inline(always)]
pub unsafe fn sol_sha512(vals: *const u8, val_len: u64, out: *mut u8) -> u64 {
const ID: usize = 0x9229cdcc;
let f: extern "C" fn(*const u8, u64, *mut u8) -> u64 = unsafe { core::mem::transmute(ID) };
f(vals, val_len, out)
}
#[inline(always)]
pub unsafe fn sol_curve_validate_point(
curve_id: u64,
point_addr: *const u8,
result: *mut u8,
) -> u64 {
const ID: usize = 0xaa2607ca;
let f: extern "C" fn(u64, *const u8, *mut u8) -> u64 = unsafe { core::mem::transmute(ID) };
f(curve_id, point_addr, result)
}
#[inline(always)]
pub unsafe fn sol_curve_group_op(
curve_id: u64,
group_op: u64,
left: *const u8,
right: *const u8,
out: *mut u8,
) -> u64 {
const ID: usize = 0xdd1c41a6;
let f: extern "C" fn(u64, u64, *const u8, *const u8, *mut u8) -> u64 =
unsafe { core::mem::transmute(ID) };
f(curve_id, group_op, left, right, out)
}
#[inline(always)]
pub unsafe fn sol_curve_multiscalar_mul(
curve_id: u64,
scalars: *const u8,
points: *const u8,
len: u64,
out: *mut u8,
) -> u64 {
const ID: usize = 0x60a40880;
let f: extern "C" fn(u64, *const u8, *const u8, u64, *mut u8) -> u64 =
unsafe { core::mem::transmute(ID) };
f(curve_id, scalars, points, len, out)
}
}
#[cfg(any(target_feature = "static-syscalls", feature = "static-syscalls"))]
pub use r#static::*;