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