fn __atomic_exchange(size: u32, ptr: [*]u8, val: [*]u8, old: [*]u8, model: i32) callconv(.c) void
fn __atomic_exchange(size: u32, ptr: [*]u8, val: [*]u8, old: [*]u8, model: i32) callconv(.c) void { _ = model; var sl = spinlocks.get(@intFromPtr(ptr)); defer sl.release(); @memcpy(old[0..size], ptr); @memcpy(ptr[0..size], val); }