use crate::{JumpEntry, code_manipulate::CodeManipulator};
use core::ffi::c_void;
#[doc(hidden)]
#[macro_export]
macro_rules! os_static_key_sec_name_attr {
() => {
"__static_keys, \"awR\""
};
}
unsafe extern "Rust" {
#[link_name = "__start___static_keys"]
pub static mut JUMP_ENTRY_START: JumpEntry;
#[link_name = "__stop___static_keys"]
pub static mut JUMP_ENTRY_STOP: JumpEntry;
}
pub struct ArchCodeManipulator;
impl CodeManipulator for crate::os::ArchCodeManipulator {
unsafe fn write_code<const L: usize>(addr: *mut c_void, data: &[u8; L]) {
core::ptr::copy_nonoverlapping(data.as_ptr(), addr.cast(), L);
}
}