[−][src]Function solana_rbpf::syscalls::strcmp
pub fn strcmp<E: UserDefinedError>(
arg1: u64,
arg2: u64,
_arg3: u64,
_arg4: u64,
_arg5: u64,
ro_regions: &[MemoryRegion],
_rw_regions: &[MemoryRegion]
) -> Result<u64, EbpfError<E>>
C-like strcmp
, return 0 if the strings are equal, and a non-null value otherwise.
Examples
use solana_rbpf::syscalls::strcmp; use solana_rbpf::memory_region::MemoryRegion; use solana_rbpf::user_error::UserError; let foo = "This is a string."; let bar = "This is another sting."; let va_foo = 0x1000; let va_bar = 0x2000; let regions = [MemoryRegion::new_from_slice(foo.as_bytes(), va_foo)]; assert!(strcmp::<UserError>(va_foo, va_foo, 0, 0, 0, ®ions, ®ions).unwrap() == 0); let regions = [MemoryRegion::new_from_slice(foo.as_bytes(), va_foo), MemoryRegion::new_from_slice(bar.as_bytes(), va_bar)]; assert!(strcmp::<UserError>(va_foo, va_bar, 0, 0, 0, ®ions, ®ions).unwrap() != 0);