* Remove @brief annotations from Rust API docs (#20769)
(cherry picked from commit d9b0fc0e3e
)
# Conflicts:
# programs/bpf/rust/invoke/src/instructions.rs
# programs/bpf/rust/invoke/src/processor.rs
# programs/bpf/rust/realloc/src/instructions.rs
# programs/bpf/rust/realloc/src/lib.rs
# programs/bpf/rust/realloc/src/processor.rs
# programs/bpf/rust/realloc_invoke/src/instructions.rs
# programs/bpf/rust/realloc_invoke/src/lib.rs
# programs/bpf/rust/realloc_invoke/src/processor.rs
# sdk/cargo-build-bpf/tests/crates/fail/src/lib.rs
# sdk/src/precompiles.rs
* Fix conflicts
Co-authored-by: Brian Anderson <andersrb@gmail.com>
Co-authored-by: Tyera Eulberg <tyera@solana.com>
40 lines
1.0 KiB
Rust
40 lines
1.0 KiB
Rust
//! Test mem functions
|
|
|
|
use crate::{run_mem_tests, MemOps};
|
|
use solana_program::{
|
|
account_info::AccountInfo,
|
|
entrypoint,
|
|
entrypoint::ProgramResult,
|
|
program_memory::{sol_memcmp, sol_memcpy, sol_memmove, sol_memset},
|
|
pubkey::Pubkey,
|
|
};
|
|
|
|
entrypoint!(process_instruction);
|
|
#[allow(clippy::unnecessary_wraps)]
|
|
pub fn process_instruction(
|
|
_program_id: &Pubkey,
|
|
_accounts: &[AccountInfo],
|
|
_instruction_data: &[u8],
|
|
) -> ProgramResult {
|
|
// Via syscalls
|
|
#[derive(Default)]
|
|
struct MemOpSyscalls();
|
|
impl MemOps for MemOpSyscalls {
|
|
fn memcpy(&self, dst: &mut [u8], src: &[u8], n: usize) {
|
|
sol_memcpy(dst, src, n)
|
|
}
|
|
unsafe fn memmove(&self, dst: *mut u8, src: *mut u8, n: usize) {
|
|
sol_memmove(dst, src, n)
|
|
}
|
|
fn memset(&self, s: &mut [u8], c: u8, n: usize) {
|
|
sol_memset(s, c, n)
|
|
}
|
|
fn memcmp(&self, s1: &[u8], s2: &[u8], n: usize) -> i32 {
|
|
sol_memcmp(s1, s2, n)
|
|
}
|
|
}
|
|
run_mem_tests(MemOpSyscalls::default());
|
|
|
|
Ok(())
|
|
}
|