Commit Graph

194 Commits

Author SHA1 Message Date
Josh Megnauth 70ae45ff85 Improve sysconf.h on Linux
I copied the constants and definitions from musl which we can presume is
correct. Relibc is missing some features which affects our sysconf as
well, such as constants in limits.h or a working resources.h.
2025-08-20 02:05:05 -04:00
Jeremy Soller f170902a29 Add u_int types for compatibility 2025-08-13 09:36:26 -06:00
Josh Megnauth cfe00d3316 Add paths.h for Fish
Fish only requires BSHELL. The constants are implementation specific so
this header will evolve as needed.

Cbindgen doesn't emit defines for strings (even CStrs) so I only
provided what's needed for Fish in a C header for now with the ideal
implementation, in Rust, unbuilt.
2025-08-09 01:16:12 -04:00
Ron Williams b7589a63c5 Fixes to improve signals for openposixtestsuite 2025-08-04 07:37:14 -06:00
Josh Megnauth e677ad55d5 Better priorities & LOG_UPTO for syslog.h
* Fix PERROR to match musl/glibc better
* More unit tests + enabled on Linux
* Pack priority and facility into one i32 and check the bits with
  bitflags
* Add LOG_UPTO (logic is straight from musl)

Not done:
* "%m" - this could just be added to printf
* LOG_CONS
2025-08-01 23:45:26 -04:00
Josh Megnauth 64d9847e37 Linux support for syslog.h
Linux's syslog is a local socket, so this uses the recent UDS work.

* Most of redox.rs is refactored into mod.rs now which has all of the C
  facing functions and consts.
* I wrapped the global logger in a Mutex instead of a RwLock. The logger
  is almost always locked for writing so a Mutex is simpler as RwLock
  provides no benefits.
* I implemented LOG_PERROR which also prints errors to stderr as well as
  the log.
* Syslog should be sys/syslog.h with syslog.h as an alias (the
  original code only had syslog.h).
2025-07-24 21:46:49 -04:00
Bendeguz Pisch 4fc80ea7b0 Implement syslog functionality 2025-07-17 22:49:51 -06:00
Ron Williams 770dc71816 Fix CI, Add signal.h constants 2025-07-11 20:28:45 -06:00
Jeremy Soller 38cca8acc0 Fix select macros 2025-05-06 11:34:48 -06:00
Jeremy Soller 3402246d87 define NFDBITS 2025-05-05 21:05:07 -06:00
Jeremy Soller bce8eac3c7 Move CMSG functions to C macros 2025-05-03 11:21:27 -06:00
4lDO2 37b60b67e0 Add and fix test for kill&waitpid. 2025-04-19 19:27:02 +02:00
Jeremy Soller ed575e9259 Implement sigsetjmp on all archs 2025-04-11 20:18:27 -06:00
Jeremy Soller b3fbea62da Define __uint32_t and __uint64_t for openlibm 2025-04-11 15:47:57 -06:00
Josh Megnauth 27cd6a2b88 fix: USHRT_MAX is too large
The original expanded to 16 nibbles which is technically correct because
the standard defines USHRT_MAX as being at LEAST 65535. However, in
practice everything seems to set the max as the max length of two bytes.
2025-02-18 00:06:58 -05:00
Peter Limkilde Svendsen b3f36faf87 Add pvalloc() 2025-02-11 21:13:51 +01:00
Bendeguz Pisch 35a3efd936 Implement sigsetjmp and siglongjmp for X64 2025-01-04 00:29:19 +00:00
bitstr0m ce7e553ae9 Implement cpio.h 2024-12-17 10:38:43 +00:00
Josh Megnauth 96de114be8 Add stdnoreturn.h
This header is more or less the same across libc implementations.

`musl` uses its `_Noreturn` macro to detect which `noreturn`
should be used: C11 or GCC's extension as a fallback.

`glibc` simply defines `noreturn` as `_Noreturn`.

This implementation is based off of `musl`'s.

`_Noreturn` is deprecated as of C23.
2024-11-27 01:25:53 -05:00
Jeremy Soller 09bcfd0711 Merge branch 'errno-const-macros' into 'master'
Test errno constant macros, make ENOTSUP available in Rust

See merge request redox-os/relibc!556
2024-11-17 16:16:47 +00:00
Peter Limkilde Svendsen 42011f28d8 Test errno constant macros, make ENOTSUP available in Rust 2024-11-17 16:16:47 +00:00
Jeremy Soller caac784caa Merge branch 'iso646' into 'master'
Add iso646.h and corresponding tests

See merge request redox-os/relibc!555
2024-11-17 16:16:11 +00:00
Josh Megnauth 5348273ccc Emit C attributes via cbindgen 2024-11-17 16:15:07 +00:00
Peter Limkilde Svendsen 56d05e2cdc Add iso646.h and corresponding tests 2024-11-10 16:19:15 +01:00
Josh Megnauth bf1ea4e799 Set h_errno for gethostbyname/addr 2024-11-02 12:21:47 +00:00
Andrey Turkin a4122753e6 Initial RISC-V64 support 2024-10-11 06:44:54 +03:00
Jeremy Soller c254ab3219 Add sys/poll.h 2024-10-10 15:06:49 -06:00
4lDO2 30caf55429 Set siginfo_t.si_{pid,uid} from kill signals too. 2024-09-24 19:34:51 +02:00
4lDO2 13e7b77643 Implement basic support for (kernel) rt signals. 2024-09-24 19:34:50 +02:00
4lDO2 284f51b47e Fix struct sigaction defintion. 2024-07-09 15:39:57 +02:00
Jeremy Soller eb3b93d14a Define strtold in C until Rust and cbindgen can use f128 2024-01-12 12:21:20 -07:00
Jeremy Soller 17ac6ef039 Remove inline from strtold 2024-01-12 12:05:47 -07:00
Jeremy Soller 225655b711 Do not mark strtold as static 2024-01-12 11:53:47 -07:00
Jeremy Soller b8ee20cb66 Remove duplicate wprintf definitions 2024-01-12 11:29:33 -07:00
4lDO2 5630b6e0df Make relibc (except libm) pure Rust 2024-01-11 13:08:06 +00:00
Jeremy Soller 2a40638ec3 Fix assert definition 2024-01-03 13:02:51 -07:00
Jeremy Soller c55649452a Define struct ucred 2023-09-13 11:33:55 -06:00
4lDO2 b063533a8e Remove redox_phys{map,unmap}. 2023-07-20 16:34:04 +02:00
Jeremy Soller e2fd33db40 Ensure wchar_t and wint_t definitions can coexist with GCC stddef.h 2023-05-11 11:26:55 -06:00
Jeremy Soller 51c93c4b39 Cleanup of wchar_t and wint_t definitions 2023-05-11 10:41:49 -06:00
Jeremy Soller 848fde933b Merge branch 'remove_pthreads_emb' into 'master'
Replace pthreads-emb with a native implementation

See merge request redox-os/relibc!380
2023-05-11 13:56:11 +00:00
Jeremy Soller 5a5bd0c983 Add stubs for wprintf functions 2023-05-11 07:48:21 -06:00
4lDO2 fc01985410 WIP: fix errno and args output 2023-05-06 17:02:54 +02:00
Jeremy Soller 0646140d99 Remove detailed abort, too many compatibility issues 2023-03-10 11:33:53 -07:00
Jeremy Soller e7b70fdb93 Ensure assert_fail and abort have noreturn attribute 2023-03-10 11:23:56 -07:00
Jeremy Soller 334e33cfde Fix abort definition for C++ 2023-03-10 10:45:19 -07:00
Jeremy Soller 2b3e9a3bd0 Use backup abort on C++ 2023-03-10 10:23:08 -07:00
Jeremy Soller dab147f862 Change stdint include order so __need_ defines are set 2023-03-10 07:53:53 -07:00
Jeremy Soller 47bd55451f Detailed information on abort using macro and new __abort function 2023-03-09 20:19:27 -07:00
Jeremy Soller a37916101f Add M_2_PI 2023-01-17 22:11:46 -07:00