-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Add basic support for System V shm #7214
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
A basic test in |
|
Seems the CI server didn't like it. Hm. Hold on while I investigate. |
You're passing |
Yeah, I ran the test as root so I didn't notice. Fixed! |
Hmm, I just checked a few man pages and it seems the whole SHM api is well-supported across the board. |
Creating a proper wrapper in |
No, a wrapper in
Alright, I can't find what kernel deprecated The libc wrappers don't do much beside calling the right syscall, except for |
@LemonBoy Where would you like the wrapper around linux/BSD shm (that chooses the correct syscall & translates errors) to be until the |
This reintroduces Linux's shared memory system calls which was in ziglang#7214. It also adds the externs necessary for C.
This reintroduces Linux's shared memory system calls which was in ziglang#7214. It also adds the externs necessary for C.
This reintroduces Linux's shared memory system calls which was in ziglang#7214. It also adds the externs necessary for C.
This reintroduces Linux's shared memory system calls which was in ziglang#7214. It also adds the externs necessary for C.
This reintroduces Linux's shared memory system calls which was in ziglang#7214. It also adds the externs necessary for C.
This reintroduces Linux's shared memory system calls which was in ziglang#7214. It also adds the externs necessary for C.
This reintroduces Linux's shared memory system calls which was in ziglang#7214. It also adds the externs necessary for C.
This reintroduces Linux's shared memory system calls which was in ziglang#7214. It also adds the externs necessary for C.
System V shared memory is kinda legacy cruft, having been supplanted by POSIX shared memory. Still, it's needed for some legacy applications; most notably X11 which uses it as a performant way of sharing pixel data with clients.
I did not add the
IPC_STAT
structs (e.g.shmid_ds
), as they are even more useless and "broken" on Linux. The structs were specified wrongly on Linux a long time ago so they are incompatible with the standard, but not changed in the kernel due to not breaking backwards compatibility with ancient libcs.