Commit Graph

3080 Commits

Author SHA1 Message Date
Bananymous c7f89c9b77 ports: Update SDL2 2.30.11 -> 2.32.8 2025-08-07 16:43:05 +03:00
Bananymous a107e463e8 ports/SDL2: Add audio support 2025-08-07 16:43:05 +03:00
Bananymous 7a5cfe1728 LibAudio/AudioServer: Add support for playing real time audio 2025-08-07 16:43:05 +03:00
Bananymous 7ad3f967db Kernel: Don't stop audio processing after each entry in AC97 2025-08-07 16:43:05 +03:00
Bananymous d1c814cf9d Kernel: Optimize consecutive absolute mouse move events
This is a hack to make window server usable without kvm :D
2025-08-07 16:43:05 +03:00
Bananymous 72f85dce2b Kernel: Make userspace stack on-demand allocated
Also bump the hardlimit of stack size from 512 KiB->32 MiB. This still
feels quite low but is much better than before :D
2025-08-07 16:43:05 +03:00
Bananymous f5bbcc017c Kernel: Only send one smp message when reserving a range
This was causing some kernel panic because processors ran out of smp
message storage when reserving large areas.

Also most of the time there is no need to actually send the SMP message.
If process is mapping something to just its own address space, there is
no need for a TLB shootdown. Maybe this should be only limited to kernel
memory and threads across the same process. I'm not sure what the best
approach here and it is better to send too many invalidations that too
few!
2025-08-07 16:43:05 +03:00
Bananymous 2980173c8e ports: Fix config.sub downloading 2025-08-07 16:28:09 +03:00
Bananymous a84c348045 LibC: Add shm_{open,unlink} stubs
These are needed for our llvm port
2025-08-07 16:28:09 +03:00
Bananymous d845ecc811 LibC: Add wcstok, wcstol and swprintf stubs
These are needed for our python3 port
2025-08-07 16:28:09 +03:00
Bananymous 064d9009a2 LibC: Add clock_getres stub
This is needed for our python3 port
2025-08-07 02:50:24 +03:00
Bananymous b6aa5bdfab LibC: Implement if_indextoname and if_nametoindex
These are needed for our cmake port
2025-08-07 02:50:24 +03:00
Bananymous a3bdf0456e LibC: Add getpriority stub
This is needed for our cmake port
2025-08-07 02:50:24 +03:00
Bananymous e3ecf05866 LibC: Add stubs for {get,free}ifaddrs
These are needed for our libuv port
2025-08-07 02:50:24 +03:00
Bananymous 6240374dd1 LibC: Add semaphore stubs
These are needed for our bochs port
2025-08-07 02:50:24 +03:00
Bananymous e17ee831a7 LibC: Add times stub
This is needed for our openssl port
2025-08-07 02:50:24 +03:00
Bananymous aef9bd6357 LibC: Add mk{nod,fifo}{,at} stubs
These are needed for our tcl port
2025-08-07 02:50:24 +03:00
Bananymous 8857227a35 LibC: Add getservbyname stub
This is needed by our tcl port
2025-08-07 02:50:24 +03:00
Bananymous 937250c681 userspace: Add dummy libdl
This allows ports to link against without needing to patch it out
2025-08-07 02:50:24 +03:00
Bananymous 66d3a1d025 ls: Output in columns 2025-08-07 02:50:24 +03:00
Bananymous 647fedfa19 Kernel: Add missing multiboot.h 2025-08-05 17:12:26 +03:00
Bananymous c593d3ed75 LibC: Add missing libintl.h 2025-08-05 17:10:43 +03:00
Bananymous bd885a01e5 ports/expat: Remove libtool file 2025-08-05 03:47:52 +03:00
Bananymous 628825fdff ports: Don't set CMAKE_TOOLCHAIN_FILE environment variable
This doesn't allow llvm to build native tablegen
2025-08-05 03:47:16 +03:00
Bananymous 46dd411273 LibC: fflush stdout when reading from stdin
This is the *intended behaviour* per ISO C specification
2025-08-05 03:32:59 +03:00
Bananymous 2e2ee11452 LibC: Add more reasonable values to stack size constants 2025-08-05 03:32:59 +03:00
Bananymous ce0df333b3 LibC: Make sa_data in sock_addr zero sized 2025-08-05 03:32:59 +03:00
Bananymous 8bbda78272 ports/xash3d-fwgs: Don't disable opengl and patch output
Manually link against libxash.so. My current dlopen does not support
loading ELF files that contain TLS
2025-08-05 03:32:59 +03:00
Bananymous 945509fc93 ports/mesa: Use llvm pipe instead of softpipe if llvm is compiled 2025-08-05 03:32:59 +03:00
Bananymous b586917930 ports: Add llvm port
This can be compiled before mesa to make mesa use llvmpipe instead of
softpipe. llvmpipe is at least 10x faster :D
2025-08-05 03:09:24 +03:00
Bananymous 45ad6082bc DynamicLoader: Support dlopen(NULL, ...) 2025-08-05 03:09:24 +03:00
Bananymous f27823babe Kernel: Move stacks to the top of userspace address space 2025-08-05 03:09:24 +03:00
Bananymous 95cfac471a Kernel: Rename loopback adapter lo0 -> lo 2025-08-05 03:09:24 +03:00
Bananymous f7c1084c3e Kernel: Expose boot command line in /proc/cmdline 2025-08-05 03:09:24 +03:00
Bananymous cf96bb6cc3 Kernel: Add support for multiboot
I don't know why I did it but it works now :D
2025-08-05 03:09:24 +03:00
Bananymous f1369c8fd6 Kernel/LibC: Implement mprotect
There may be some race conditions with this but i think this is good
enough to start with
2025-08-05 03:09:24 +03:00
Bananymous eb7922ab88 LibC: Implement pthread_cond_* using a futex 2025-08-05 03:09:24 +03:00
Bananymous dfdfb7cdaf Kernel: check all threads in validate_pointer_access 2025-08-05 03:09:24 +03:00
Bananymous 1cc0fb9c01 Kernel: Reschedule if idle after IPI
This allows starting thread execution right after thread is received
from load balancing
2025-08-05 03:09:24 +03:00
Bananymous a51b589bc9 Kernel: Allow any signal flags and support SA_RESETHAND 2025-08-05 03:09:24 +03:00
Bananymous 5940e912b3 Kernel/LibC: Implement simple futex 2025-08-05 03:09:24 +03:00
Bananymous 658a001d91 LibC: Make pthread_barrier safe
It used to deadlock and it was not safe if more threads than the target
were attempting to wait on it.
2025-08-05 03:09:24 +03:00
Bananymous 57c9f5a8a8 LibC: lock mutex when pthread_cond_timedwait times out 2025-08-05 03:09:24 +03:00
Bananymous fa7b58057c LibC: Add MAP_ANON as synonym for MAP_ANONYMOUS
This is part of POSIX issue 8 and some things only check MAP_ANON
2025-08-05 03:09:24 +03:00
Bananymous 0e0f5295cf LibC: Make {,__cxa_}atexit thread safe 2025-08-05 03:09:24 +03:00
Bananymous 284c9e5f61 Kernel: Don't kill process if stack pointer is OOB
This can be valid if process is using green threads or for some other
reason using its own stack
2025-08-05 03:09:24 +03:00
Bananymous 927fbda1e8 Kernel: Make on-demand paging thread safe 2025-08-05 03:09:24 +03:00
Bananymous d25a5034db LibC: Update thread id on fork 2025-08-05 03:09:24 +03:00
Bananymous f197d39aaf LibC: Don't allow pthread_join to return EINTR 2025-08-05 03:09:24 +03:00
Bananymous 4a95343936 LibC: Make _get_uthread a macro
This allows nice inlining :)
2025-08-05 03:09:24 +03:00