Add nix derivation

This commit is contained in:
2024-04-22 14:58:27 +02:00
parent 1426ca892a
commit 308babc3ab
4 changed files with 42 additions and 22 deletions

View File

@@ -1,21 +1,23 @@
use libc::{c_int, c_void, mmap, MAP_FAILED, MAP_SHARED, PROT_READ, PROT_WRITE};
use libc::{
c_int, c_void, mmap, MAP_ANON, MAP_FAILED, MAP_PRIVATE, MAP_SHARED, PROT_READ, PROT_WRITE,
};
use std::{env, ptr};
const SHARED_MEMORY_SIZE: usize = 1024;
#[link(name = "agent")]
extern "C" {
fn agent_start(shared_memory: *mut u8, sync_memory: *mut u8);
fn agent_start(shared_memory: *mut u8, sync_memory: *mut u8, private_mem: *mut u8);
}
fn main() {
let args: Vec<String> = env::args().collect();
let shared_fd: c_int = args[1]
let shared_fd: c_int = args[0]
.parse()
.expect("Please provide a valid file descriptor as first argument");
let sync_fd: c_int = args[2]
let sync_fd: c_int = args[1]
.parse()
.expect("Please provide a valid file descriptor as first argument");
@@ -43,8 +45,20 @@ fn main() {
} as *mut u8;
assert_ne!(sync_memory, MAP_FAILED as *mut u8);
println!("Starting agent...");
let private_mem = unsafe {
mmap(
ptr::null_mut() as *mut c_void,
32 * 100,
PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANON,
0,
0,
)
} as *mut u8;
assert_ne!(private_mem, MAP_FAILED as *mut u8);
println!("Agent: starting agent...");
unsafe {
agent_start(shared_memory, sync_memory);
agent_start(shared_memory, sync_memory, private_mem);
}
}