Bananymous
bdbde25784
LibC: Rewrite environ handling
...
environ is only allocated on heap when you insert new variables.
environment variables are only `free`'d if they are `malloc`'d by libc
2025-04-16 21:08:01 +03:00
Bananymous
ee9e941a56
LibC: Implement getitimer
2025-04-15 23:35:25 +03:00
Bananymous
ac90800c3c
Kernel/LibC/DynamicLoader: Implement thread local storage
...
For some reason this does not work on 32 bit version, so it is disabled
on that platform. I'll have to look into it later to find the bug :)
2025-04-15 23:33:39 +03:00
Bananymous
08f5833ca8
Kernel/LibC: Implement pthread_attr_init
2025-04-15 23:31:17 +03:00
Bananymous
4bcd3ed86f
Kernel: Start working on TLS, add SYS_{SET,GET}_TLS
2025-04-15 23:31:17 +03:00
Bananymous
254fd80088
DynamicLoader: Cleanup and prepare for TLS
2025-04-15 23:31:17 +03:00
Bananymous
d7e6df1e44
LibELF: Add definitions for ELF TLS values
2025-04-15 23:31:17 +03:00
Bananymous
a933fabb86
Kernel: Define constant USERSPACE_END
...
This should be used for userspace generic allocations. Currently I used
KERNEL_OFFSET, but I want to limit userspace to the actual lower half of
the address space
2025-04-15 23:31:17 +03:00
Bananymous
36baf7b0af
Kernel/LibC/DynamicLoader: Update process start ABI
...
We now use SysV abi for process startup
2025-04-15 23:05:52 +03:00
Bananymous
e6026cb0b8
DynamicLoader: Handle circular dependencies
2025-04-15 23:05:52 +03:00
Bananymous
cc2b4967ea
LibC: Make malloc thread safe with pthread_spinlock
2025-04-15 23:05:52 +03:00
Bananymous
cf59f89bfb
LibC: Rework constructor/destructor calling
...
constructors are now called in _init_libc instead of crt0
destructors are now registered with atexit() instead of called manually
2025-04-15 23:05:52 +03:00
Bananymous
066ed7e4a1
LibC: merge atexit and __cxa_atexit into common function
2025-04-15 23:05:52 +03:00
Bananymous
4f49d60e4a
DynamicLoader/LibC: lazy malloc environ
...
This allows DynamicLoader to just set the value of global environ symbol
without libc needing to malloc it at startup
2025-04-15 23:05:52 +03:00
Bananymous
3721dadd72
LibC: Make stdio and malloc initialization constructors
2025-04-15 22:01:57 +03:00
Bananymous
5539d5eed0
LibC: Implement pthread_cleanup_{pop,push}
2025-04-15 21:48:38 +03:00
Bananymous
64002626b9
LibC: Add h_addr definition for hostent backwards compatibility
2025-04-15 21:39:50 +03:00
Bananymous
4b1c20fa36
Kernel: Make SYS_{,P}READ work with count == 0
2025-04-15 21:36:00 +03:00
Bananymous
b418683337
LibELF: Add definition and values for auxiliary vectors
2025-04-15 21:31:02 +03:00
Bananymous
00015285ab
Kernel: Add vaddr->paddr getter to VirtualRange
2025-04-15 21:25:15 +03:00
Bananymous
0f936fc163
Kernel: Cleanup 32 bit interrupt stack alignment
2025-04-15 21:21:23 +03:00
Bananymous
15045cc486
Kernel: Make nonblocking sockets unblocking :)
2025-04-05 18:42:02 +03:00
Bananymous
c9132d984b
Kernel: Fix TCP window scaling
2025-04-05 18:40:23 +03:00
Bananymous
a0123e7c2d
Kernel: save and load sse context in more spaces
2025-04-02 12:58:39 +03:00
Bananymous
be786be67d
Kernel/LibC: Implement pthread_join
2025-04-02 12:58:39 +03:00
Bananymous
e85b18e206
LibC: Fix pthread stack alignment
2025-04-02 12:58:39 +03:00
Bananymous
f32f62dfc1
LibC: Implement pthread_spin_* functions
2025-04-02 12:58:39 +03:00
Bananymous
28392050bf
LibC: Make pthread_t pid_t
2025-04-02 12:58:39 +03:00
Bananymous
b9cc6063ff
LibC: Implement stdio FILE locking
2025-04-02 12:58:39 +03:00
Bananymous
9066e62a97
Kernel/LibC: Implement sched_yield
2025-04-02 12:58:39 +03:00
Bananymous
5549696c3a
Kernel/LibC: Implement pthread_self
2025-04-02 02:39:29 +03:00
Bananymous
691c9fe8e0
LibC: Fix bsearch
...
bsearch had unsigned integer underflow which was UB and returned false
positives
2025-04-02 00:03:50 +03:00
Bananymous
04463675c0
LibC: Lock file during gets
2025-04-01 23:26:13 +03:00
Bananymous
b9da6a4a5d
LibC: Implement getdelim and getline
2025-04-01 23:26:13 +03:00
Bananymous
9fb161c320
Kernel: Move thread stacks 1 MiB back
2025-04-01 23:26:13 +03:00
Bananymous
2ba25b4c28
LibC: Add non standard types/values used by ports
2025-04-01 23:26:13 +03:00
Bananymous
c1618e2b5d
Kernel/LibC: Add basic support for pthread_{create,exit}
2025-04-01 23:26:13 +03:00
Bananymous
788f5429e1
LibC: Implement spec compliant abort()
2025-04-01 23:09:30 +03:00
Bananymous
36026d4ec6
Kernel: Cleanup TCP and add basic window scaling support
2025-04-01 23:09:30 +03:00
Bananymous
96767f5ca8
Kernel: Implement PCI interrupt routing
...
This does not really work but I have no idea what I'm doing wrong
2025-04-01 23:09:30 +03:00
Bananymous
76bad31dd5
Kernel: Reorder locking with VirtualRange
2025-04-01 23:09:30 +03:00
Bananymous
2e3b917192
Kernel: Cleanup PS2 mouse button event generation
2025-04-01 23:09:30 +03:00
Bananymous
95f262b3e6
Kernel: Print process pid through /dev/debug
2025-04-01 23:09:30 +03:00
Bananymous
aebacb6b6a
Kernel: Bypass PS2 detection if scancode set is forced
2025-04-01 23:09:30 +03:00
Bananymous
27613da5ea
Kernel: Route PCI Interrupt Link Device interrupts
2025-04-01 23:09:30 +03:00
Bananymous
28ac6c2267
Kernel: Implement AML FindSet{Left,Right}Bit
2025-04-01 23:09:30 +03:00
Bananymous
1c1fc65c7c
Kernel: Add API to reserve GSI instead of irq
...
This also fixes a bug with IOAPIC gsi_base != 0
2025-04-01 23:09:30 +03:00
Bananymous
ba74b352bd
Kernel: Make BufferField actually access the buffer and not copy
2025-04-01 23:09:30 +03:00
Bananymous
0474ac4262
Kernel: Expose ACPI resolve_package_element to outside
2025-04-01 23:09:30 +03:00
Bananymous
aba49cc93f
Kernel: Add API to get ACPI reference paths
2025-04-01 23:09:30 +03:00