Bananymous
aa691f236e
ports: Add libpng port
2025-06-11 16:01:47 +03:00
Bananymous
a0a9d49d81
ports: Update toolchain triple and add post_configure
...
post_configure is called after default configure. This can be used for
port specific customization when using default configure function
2025-06-11 16:01:47 +03:00
Bananymous
125f8b591d
Kernel: Don't crash if socket tries to reconnect
...
:D
2025-06-11 01:54:41 +03:00
Bananymous
c97b60e7e5
LibGUI: Remove parameters I had forgot in function declarations
2025-06-11 01:53:31 +03:00
Bananymous
8a73414e3e
LibGUI: Add support for clip area to texture
2025-06-11 01:53:31 +03:00
Bananymous
ac22e006a4
Shell: Don't get stuck on broken state when failing to build command
2025-06-10 11:03:02 +03:00
Bananymous
30d5d85d1d
userspace: Add `test` utility
2025-06-08 23:56:39 +03:00
Bananymous
6f74f3c386
BAN: Allow constexpr construction of StringView
2025-06-07 18:29:32 +03:00
Bananymous
515918329c
ports: Add SpecSeek port
2025-06-06 17:41:59 +03:00
Bananymous
8ea0a67280
Terminal: Add support for tabs
2025-06-06 16:41:06 +03:00
Bananymous
5ad7d7edb1
DynamicLoader: Fix TLS on 32 bit platform
...
There were two problems with my previous implementation
- TLS was not allocated if nothing used it. There is a fallback
initialization in _init_libc, but this was not enough if one of the
init functions tried to access errno.
- __tls_get_addr was not resolved. If __tls_get_addr was called through
a plt entry, everything would just break :(
2025-06-06 16:27:07 +03:00
Bananymous
00c6820825
LibC: Make {open,sys,close}log use their own FILE instead of stddbg
2025-06-06 11:59:15 +03:00
Bananymous
6beaafcf11
LibC: Define std{in,out,err,dbg} with their actual names
2025-06-06 11:56:39 +03:00
Bananymous
e92f039a17
Kernel: Fix tcp sending with already sent unacknowledged bytes
2025-06-06 11:55:44 +03:00
Bananymous
ef76ffa1c1
Kernel: Remove unnecessary hack
...
This is no longer needed as thread unlocks its spinlock before calling
Process::exit() on terminating signal
2025-06-06 11:13:55 +03:00
Bananymous
652eb2346c
Kernel: Fix syscall interrupt disabling
...
If thread had a terminating signal, syscall leaving would try to lock
process's mutex while not having interrupts enabled
2025-06-06 11:12:48 +03:00
Bananymous
66726090ec
Kenrel: Fix TCP connection closing
...
If TCP socket was connected with connect() instead of accept() it would
never send FIN to other end when it was closed.
2025-06-06 11:10:29 +03:00
Bananymous
b668173cba
Kernel: Fix pseudo terminal writability
2025-06-06 11:09:50 +03:00
Bananymous
a7e20d6e85
LibC: Fix getnameinfo port endianness
2025-06-06 06:52:56 +03:00
Bananymous
c6ded82406
Kernel: Fix a deadlock when thread is executing terminating signal
2025-06-06 06:52:27 +03:00
Bananymous
a76c6faffc
Kernel: Fix a deadlock when process is exiting
2025-06-06 06:52:02 +03:00
Bananymous
81ff71a97f
Kernel: Track the number of recursive spinlocks a thread is holding
2025-06-06 06:51:15 +03:00
Bananymous
56db0efe58
Kernel: Add missing file for race condition fixes :)
2025-06-06 04:03:37 +03:00
Bananymous
5eefd98e1b
Kernel: Add debugging macro to dump syscalls that take a long time
2025-06-06 04:00:57 +03:00
Bananymous
eecdad50a6
Kernel: Fix most of mutex + block race conditions
...
All block functions now take an optional mutex parameter that is
atomically unlocked instead of having the user unlock it before hand.
This prevents a ton of race conditions everywhere in the code!
2025-06-06 03:59:22 +03:00
Bananymous
96d5ed9cc7
Kernel: Fix E1000 driver interrupts
...
I have no idea why, but E1000 seems to be missing interrupts frequently
when clearing ICR only at the end of the interrupt handler
2025-06-06 03:45:35 +03:00
Bananymous
73090ecb37
Kernel: TTY set EPOLLOUT
2025-06-05 22:04:51 +03:00
Bananymous
8812704601
Kernel: Make sure IPv4 and ARP packets are not missed
...
This is a really hacky solution but will do until i get atomic
unblocking with respect to locks
2025-06-05 22:03:15 +03:00
Bananymous
0f189d410e
Kernel: Fix unix socket recv from
...
If connection on unix socket was closed and other end tries to recvfrom,
the thread would enter a fucked up state where it held the socket's
spinlock when returning to userspace.
2025-06-05 22:02:53 +03:00
Bananymous
cfeabc4580
Kernel/Terminal: Fix ANSI SGR 8 bit color parsing
2025-06-05 20:43:57 +03:00
Bananymous
49f203d61d
Terminal: Add ANSI CSI P and ANSI SGR 22
2025-06-05 02:41:48 +03:00
Bananymous
a912a4dc67
LibGUI: Remove fill_color from texture copy API
...
Nothing was using this and it just overcomplicated everything
2025-06-05 02:40:51 +03:00
Bananymous
f79db874bf
Kernel: Fix ANSI CSI 1J
...
I was accidentally clearing the whole screen when I needed to clear from
cursor to the end of the screen
2025-06-05 02:38:57 +03:00
Bananymous
8de19aff3c
Kernel/Terminal: Fix 24 bit ANSI SGR color parsing
2025-06-05 02:38:07 +03:00
Bananymous
bf41b448d6
Kernel: Fix TCP sending
...
- Fix race condition when adding packet to send buffer before other end
has acknowledged it
- Allow sending multiple packets before receiving ACK for previous ones
2025-06-04 22:21:35 +03:00
Bananymous
448632cf11
Kernel: Add fast path to pselect and ppoll
...
If events are available right away, don't create epoll object to wait
on. Also fix pselect return value to the number of bits set. Previously
return value could've been greater than that if epoll return EPOLLERR or
EPOLLHUP for events that were not listened to
2025-06-04 17:51:22 +03:00
Bananymous
11174bfa14
BuildSystem: Rename toolchain -> x86_64-pc-banan_os
2025-06-03 23:02:10 +03:00
Bananymous
84b1f3990c
LibC: Fix getnameinfo
...
How was i doing everything so wrong :D
2025-06-03 16:36:39 +03:00
Bananymous
943069b2a3
Kernel: Socket EPIPE and send SIGPIPE on write after hang up
2025-06-03 10:24:44 +03:00
Bananymous
e305698e6b
Kernel: Fix epoll EPOLLHUP and EPOLLERR reporting
2025-06-03 10:23:53 +03:00
Bananymous
4c0b7d44b4
Kernel: Enable ECHOE and ECHOK, support VKILL, fix VEOF
2025-06-02 16:26:53 +03:00
Bananymous
775c77c0fa
Shell: Get default backspace key from c_cc[VERASE]
2025-06-02 15:55:20 +03:00
Bananymous
fb466b5af7
Kernel: use termios c_cc values instead of hardcoded characters
2025-06-02 15:54:11 +03:00
Bananymous
e473118ec8
userspace: Add nologin "shell"
2025-06-02 12:26:16 +03:00
Bananymous
755d41ca4e
LibC: Add pw_passwd and pw_gecos to passwd structure
...
This information is available in /etc/passwd either way so why not
expose it to the user. Practically all UNIX-likes have these either way
2025-06-02 12:23:06 +03:00
Bananymous
bbff9f89b0
BuildSystem: Don't invoke ninja directly, but use cmake --build
2025-06-02 11:45:06 +03:00
Bananymous
fdcb38ac1f
Shell: Accept '\r' as enter
...
This happens with some terminals and i don't want to bother with fixing
my termios :D
2025-06-02 11:42:06 +03:00
Bananymous
fac742c038
test-sort: Add qsort test
2025-06-02 11:41:34 +03:00
Bananymous
5a6b43fc90
LibC: Remove debug printing from getnameinfo
2025-06-02 11:39:18 +03:00
Bananymous
317f413746
LibC: Implement very hacky posix_memalign
...
I did not even test this and i know the code is super hacky. I could not
bother with writing proper code for this xD
2025-06-02 11:39:18 +03:00