Bananymous
f1585d09e1
LibC: Add more integer size definintions to limits.h
2025-04-19 21:50:26 +03:00
Bananymous
252784ff5b
Kernel: Preserve kernel command line on fork
2025-04-19 21:29:52 +03:00
Bananymous
6f9dc2a9b8
Kernel/LibC: Implement `fchdir`, cleanup `chdir` and `getcwd`
2025-04-19 21:28:31 +03:00
Bananymous
7edfae8583
Shell: Cleanup `export` builtin
2025-04-19 21:23:26 +03:00
Bananymous
28275d86ea
LibC/Shell: set PWD env in Shell, not libc
...
I have no idea why I was doing it in the libc
2025-04-19 21:16:11 +03:00
Bananymous
2d19b5074e
LibC: Implement some missing wchar functions
2025-04-19 20:56:41 +03:00
Bananymous
e62cc17797
LibC: Use `nl_langinfo` for strings in `strftime`
2025-04-19 20:03:56 +03:00
Bananymous
407eed212a
LibC: Implement nl_langinfo
...
All values are from POSIX locale except CODESET which can be "UTF-8"
depending on the current locale
2025-04-19 20:02:01 +03:00
Bananymous
12d47858c1
LibC: Fix overflow error in `fread` and `fwrite`
2025-04-19 18:42:12 +03:00
Bananymous
3d34e6e6d9
ports: ncurses add support for shared libraries
2025-04-19 05:55:16 +03:00
Bananymous
dc188e601a
LibC: Add definition for LOG_UPTO
2025-04-19 02:48:21 +03:00
Bananymous
8a2df23260
LibC: Define RLIM_NLIMITS
2025-04-19 02:34:56 +03:00
Bananymous
46079a8612
LibC: Implement no-op posix_madvice
...
Also add non-posix prefixed definitions
2025-04-19 02:07:45 +03:00
Bananymous
201d752850
Kernel: Allow pipe to write partial data
...
This allows potential blocking
2025-04-19 00:39:42 +03:00
Bananymous
63b3d9875d
Kernel: Fix `Thread::block_with_eintr*` functions
...
I was using wrong block function, `block_with_timeout` instead of
`block_with_wake_time`. This caused functions to block way too long and
caused a lot of hangs.
2025-04-19 00:39:42 +03:00
Bananymous
8cd2d772b0
Shell: Print error if `execv` fails
2025-04-19 00:39:42 +03:00
Bananymous
2ff3f88b4d
LibC: Add support for shebangs
...
I implemented shebangs in userspace as I don't really see the benefit of
doing it in kernel space. Only benefit I can think of is executing non
readable scripts but I don't really see the benefit in that.
2025-04-19 00:39:42 +03:00
Bananymous
ab4dd6a268
LibC: Add ARG_MAX constant
2025-04-19 00:39:42 +03:00
Bananymous
0094efc7f4
LibC: Fix `execl*` memory leak on error
2025-04-18 20:54:53 +03:00
Bananymous
d73a270fb1
Shell: Save and restore stdin flags after child returns
...
If child makes stdin nonblocking, Shell now restores it back to "normal"
flags
2025-04-18 18:26:09 +03:00
Bananymous
d9647868cc
Terminal: Fix ANSI SGR color invert
2025-04-18 17:32:24 +03:00
Bananymous
85505b0482
Kernel: Fix ANSI SGR color invert
2025-04-18 17:31:46 +03:00
Bananymous
703c1a485c
Kernel: Fix Ext2 bug for big files
...
My ext2 implementation was reading wrong blocks for very big block
indices.
2025-04-18 04:17:31 +03:00
Bananymous
9258c73484
Kernel: Optimize VTTY cursor rendering
...
cursor is now only updated once after all consecutive `putchar`s are
handled.
2025-04-18 03:55:56 +03:00
Bananymous
6858546ce9
Kernel: Fix rendering bugs with framebuffer cursor
2025-04-18 03:54:17 +03:00
Bananymous
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
Bananymous
40d1d20cd6
Kernel: Move cursor handling from TTY -> TerminalDriver
2025-04-18 02:43:41 +03:00
Bananymous
c0942d78cb
Kernel: Fix TTY ANSI ? handling
2025-04-18 02:42:49 +03:00
Bananymous
cef8779bf7
Kernel: Improve error handling when setting TTY font
2025-04-18 02:42:24 +03:00
Bananymous
d6667844de
Kernel: Fix fcntl F_SETFL and masking
2025-04-18 02:37:44 +03:00
Bananymous
4cdf218145
Kernel: Don't allow opening file with path ""
2025-04-18 02:37:16 +03:00
Bananymous
994713d04c
Kernel: Implement FramebufferDevice::get_pixel()
2025-04-18 02:35:28 +03:00
Bananymous
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
Bananymous
439fb57d88
Kernel: Fix ANSI CSI @ and b for VirtualTTY
2025-04-17 23:24:17 +03:00
Bananymous
4409d0f03f
Terminal: Implement ANSI CSI A, B, b, d, @
2025-04-17 23:16:22 +03:00
Bananymous
ebd00b1eb2
Terminal: Implement ANSI SGR 10, 39, 49
2025-04-17 23:15:44 +03:00
Bananymous
3ca0ef1583
LibGUI: Add copy_rect API
...
This allows moving parts of window around
2025-04-17 23:14:46 +03:00
Bananymous
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
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