Commit Graph

2655 Commits

Author SHA1 Message Date
6858546ce9 Kernel: Fix rendering bugs with framebuffer cursor 2025-04-18 03:54:17 +03:00
7c6966a9c4 Kernel: Add support for text mode terminal
This probably won't be used at all but it was so simple and made me do
really nice refactorings so i decided to add it :)
2025-04-18 02:45:06 +03:00
40d1d20cd6 Kernel: Move cursor handling from TTY -> TerminalDriver 2025-04-18 02:43:41 +03:00
c0942d78cb Kernel: Fix TTY ANSI ? handling 2025-04-18 02:42:49 +03:00
cef8779bf7 Kernel: Improve error handling when setting TTY font 2025-04-18 02:42:24 +03:00
d6667844de Kernel: Fix fcntl F_SETFL and masking 2025-04-18 02:37:44 +03:00
4cdf218145 Kernel: Don't allow opening file with path "" 2025-04-18 02:37:16 +03:00
994713d04c Kernel: Implement FramebufferDevice::get_pixel() 2025-04-18 02:35:28 +03:00
554b13ac50 Kernel: Restructure terminal initialization
This is still very ugly and will be rewritten in the future :D
2025-04-18 01:19:59 +03:00
439fb57d88 Kernel: Fix ANSI CSI @ and b for VirtualTTY 2025-04-17 23:24:17 +03:00
4409d0f03f Terminal: Implement ANSI CSI A, B, b, d, @ 2025-04-17 23:16:22 +03:00
ebd00b1eb2 Terminal: Implement ANSI SGR 10, 39, 49 2025-04-17 23:15:44 +03:00
3ca0ef1583 LibGUI: Add copy_rect API
This allows moving parts of window around
2025-04-17 23:14:46 +03:00
88abbd90dc LibC: Fix strncat
strncat was using strncpy internally which nullpadded dest until n bytes
were written.

also there was no terminating null byte added if src was shorter than n
bytes
2025-04-17 23:12:40 +03:00
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
ee9e941a56 LibC: Implement getitimer 2025-04-15 23:35:25 +03:00
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
08f5833ca8 Kernel/LibC: Implement pthread_attr_init 2025-04-15 23:31:17 +03:00
4bcd3ed86f Kernel: Start working on TLS, add SYS_{SET,GET}_TLS 2025-04-15 23:31:17 +03:00
254fd80088 DynamicLoader: Cleanup and prepare for TLS 2025-04-15 23:31:17 +03:00
d7e6df1e44 LibELF: Add definitions for ELF TLS values 2025-04-15 23:31:17 +03:00
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