package shm import "base:intrinsics" import "core:sys/linux" // TODO: These should be in their own package. IPC_RMID :: 0x0 IPC_PRIVATE :: 0x0 S_IRUSR :: 0x00000100 S_IWUSR :: 0x00000080 S_IRGRP :: 0x00000020 S_IWGRP :: 0x00000010 S_IROTH :: 0x00000004 S_IWOTH :: 0x00000002 IPC_CREAT :: 0x00000200 IPC_EXCL :: 0x00000400 TS_NP :: 0x00010000 RESIZE_NP :: 0x00040000 MAP_FIXED_NP :: 0x00100000 foreign import shm "system:c" @(default_calling_convention = "c") @(link_prefix = "shm") foreign shm { at :: proc(shm_id: i32, shm_addr: rawptr, shm_flag: i32) -> rawptr --- ctl :: proc(shm_id: i32, cmd: i32, buf: rawptr) -> i32 --- dt :: proc(shm_addr: rawptr) -> i32 --- //get :: proc(key: u32, size: u32, shm_flag: i32) -> i32 --- } get :: proc(key: u32, size: u32, shm_flag: i32) -> i32 { return i32(intrinsics.syscall(linux.SYS_shmget, uintptr(key), uintptr(size), uintptr(shm_flag))) }