Files
Odin/core/sys/posix/README.md
T
2024-08-14 01:44:35 +02:00

58 lines
1.5 KiB
Markdown

# POSIX
defines bindings for most posix APIs.
If a header is added, all of it must be implemented.
Each platform must define the exact same symbols, different values are allowed, even structs with different non-standard fields.
APIs part of extensions may be left out completely if one target doesn't implement it.
APIs with a direct replacement in `core` might not be implemented.
Macros are emulated with force inlined functions.
Struct fields defined by the posix standard (and thus portable) are documented with `[PSX]`.
ADD A TEST FOR SIGINFO, one thread signalling and retrieving the signal out of siginfo or something.
ADD A TEST FOR wait.h
ADD A TEST FOR pthread.
ADDD A test for stat.h.
ADD A TEST FOR setjmp.h.
HAIKU.
Unimplemented POSIX headers:
- aio.h
- complex.h | See `core:c/libc` and our own complex types
- cpio.h
- ctype.h | See `core:c/libc` for most of it
- ndbm.h | Never seen or heard of it
- fenv.h
- float.h
- fmtmsg.h
- ftw.h
- semaphore.h | See `core:sync`
- inttypes.h | See `core:c`
- iso646.h | Impossible
- math.h | See `core:c/libc`
- mqueue.h | Targets don't seem to have implemented it
- regex.h | See `core:regex`
- search.h | Not useful in Odin
- spawn.h | Use `fork`, `execve`, etc.
- stdarg.h | See `core:c/libc`
- stdint.h | See `core:c`
- stropts.h
- syslog.h
- pthread.h | Only the actual threads API is bound, see `core:sync` for synchronization primitives
- string.h | Most of this is not useful in Odin, only a select few symbols are bound
- tar.h
- tgmath.h
- trace.h
- wchar.h
- wctype.h
TODO:
- time.h | Docs