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
36baf7b0af
Kernel/LibC/DynamicLoader: Update process start ABI
...
We now use SysV abi for process startup
2025-04-15 23:05:52 +03:00
e6026cb0b8
DynamicLoader: Handle circular dependencies
2025-04-15 23:05:52 +03:00
cc2b4967ea
LibC: Make malloc thread safe with pthread_spinlock
2025-04-15 23:05:52 +03:00
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
066ed7e4a1
LibC: merge atexit and __cxa_atexit into common function
2025-04-15 23:05:52 +03:00
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
3721dadd72
LibC: Make stdio and malloc initialization constructors
2025-04-15 22:01:57 +03:00
5539d5eed0
LibC: Implement pthread_cleanup_{pop,push}
2025-04-15 21:48:38 +03:00
64002626b9
LibC: Add h_addr definition for hostent backwards compatibility
2025-04-15 21:39:50 +03:00
4b1c20fa36
Kernel: Make SYS_{,P}READ work with count == 0
2025-04-15 21:36:00 +03:00
b418683337
LibELF: Add definition and values for auxiliary vectors
2025-04-15 21:31:02 +03:00
00015285ab
Kernel: Add vaddr->paddr getter to VirtualRange
2025-04-15 21:25:15 +03:00
0f936fc163
Kernel: Cleanup 32 bit interrupt stack alignment
2025-04-15 21:21:23 +03:00
15045cc486
Kernel: Make nonblocking sockets unblocking :)
2025-04-05 18:42:02 +03:00
c9132d984b
Kernel: Fix TCP window scaling
2025-04-05 18:40:23 +03:00
a0123e7c2d
Kernel: save and load sse context in more spaces
2025-04-02 12:58:39 +03:00
be786be67d
Kernel/LibC: Implement pthread_join
2025-04-02 12:58:39 +03:00
e85b18e206
LibC: Fix pthread stack alignment
2025-04-02 12:58:39 +03:00
f32f62dfc1
LibC: Implement pthread_spin_* functions
2025-04-02 12:58:39 +03:00
28392050bf
LibC: Make pthread_t pid_t
2025-04-02 12:58:39 +03:00
b9cc6063ff
LibC: Implement stdio FILE locking
2025-04-02 12:58:39 +03:00
9066e62a97
Kernel/LibC: Implement sched_yield
2025-04-02 12:58:39 +03:00
5549696c3a
Kernel/LibC: Implement pthread_self
2025-04-02 02:39:29 +03:00
691c9fe8e0
LibC: Fix bsearch
...
bsearch had unsigned integer underflow which was UB and returned false
positives
2025-04-02 00:03:50 +03:00
04463675c0
LibC: Lock file during gets
2025-04-01 23:26:13 +03:00
b9da6a4a5d
LibC: Implement getdelim and getline
2025-04-01 23:26:13 +03:00
9fb161c320
Kernel: Move thread stacks 1 MiB back
2025-04-01 23:26:13 +03:00
2ba25b4c28
LibC: Add non standard types/values used by ports
2025-04-01 23:26:13 +03:00
c1618e2b5d
Kernel/LibC: Add basic support for pthread_{create,exit}
2025-04-01 23:26:13 +03:00
788f5429e1
LibC: Implement spec compliant abort()
2025-04-01 23:09:30 +03:00
36026d4ec6
Kernel: Cleanup TCP and add basic window scaling support
2025-04-01 23:09:30 +03:00
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
76bad31dd5
Kernel: Reorder locking with VirtualRange
2025-04-01 23:09:30 +03:00
2e3b917192
Kernel: Cleanup PS2 mouse button event generation
2025-04-01 23:09:30 +03:00
95f262b3e6
Kernel: Print process pid through /dev/debug
2025-04-01 23:09:30 +03:00
aebacb6b6a
Kernel: Bypass PS2 detection if scancode set is forced
2025-04-01 23:09:30 +03:00
27613da5ea
Kernel: Route PCI Interrupt Link Device interrupts
2025-04-01 23:09:30 +03:00
28ac6c2267
Kernel: Implement AML FindSet{Left,Right}Bit
2025-04-01 23:09:30 +03:00
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
ba74b352bd
Kernel: Make BufferField actually access the buffer and not copy
2025-04-01 23:09:30 +03:00
0474ac4262
Kernel: Expose ACPI resolve_package_element to outside
2025-04-01 23:09:30 +03:00
aba49cc93f
Kernel: Add API to get ACPI reference paths
2025-04-01 23:09:30 +03:00
b3b5b40163
Kernel: Add _OS an _REV to ACPI namespace
2025-04-01 23:09:30 +03:00
0e085b30cc
Kernel: ACPI add easier API for calling methods with arguments
2025-04-01 23:09:30 +03:00
35149b6960
Kernel: Add helper functions to create AML String and Buffer
2025-04-01 23:09:30 +03:00
3800d5420e
Kernel: Collect created AML nodes in add_{named,alias}...
...
This makes it harder to miss adding scoped objects. Before I was not
deleting all types of nodes on method return
2025-04-01 23:09:25 +03:00
b145c1ab64
Kernel: Add easier api for evaluating ACPI nodes
2025-04-01 23:09:20 +03:00
b8a3439219
Kernel: Add getter for ACPI namespace
2025-04-01 23:09:15 +03:00
1a153b835c
BAN: Nullterminate encoded UTF8 data
2025-04-01 22:39:56 +03:00