Bananymous
45a73b00de
LibC: Make glob_t a typedef
2025-08-11 18:47:55 +03:00
Bananymous
59fff26a5f
LibC: Remove our iconv.h header and add libiconv port
...
If I ever end up writing my own iconv, i will drop the port :D
2025-08-11 18:46:15 +03:00
Bananymous
fde4d4662e
LibC: Implement getopt_long{,_only}
...
Few ports attempt to use this so lets add them :D
2025-08-11 18:36:46 +03:00
Bananymous
c9355ad94a
BuildSystem: Fix file permission bits on image creation
...
If a file had setuid/setgid/sticky bits set, they were not copied to the
sysroot
2025-08-11 14:48:57 +03:00
Bananymous
bad3b8b3e2
ports/binutils: Fix compilation when zstd is installed
...
binutils uses pkg-config to find zstd for the host when building. If our
zstd port is installed, it finds it instead and ends up including our
own sysroot which is incompatible with host's.
unsetting pkg-config related variables fixes this and allows binutils to
build fine even when zstd is installed. We can now make it a dependency.
2025-08-11 14:07:37 +03:00
Bananymous
0b81bb9b10
ports/quake2: Use SDL2 instead of our own frontend
2025-08-11 14:07:37 +03:00
Bananymous
f61c78efd5
ports/tinygb: Use SDL2 instead of our own frontend
2025-08-11 14:07:37 +03:00
Bananymous
6b2307ab22
ports/doom: Use SDL2 instead of our own frontend
...
This allows doom to play sounds!
2025-08-11 14:07:37 +03:00
Bananymous
9ccb381c31
ports: Add SDL2_mixer port
...
This allows some ports to use audio :D
I did not port any audio libraries so loading sounds probably doesn't
work :D
2025-08-11 14:07:37 +03:00
Bananymous
71133236f8
ports: Add timidity port
2025-08-11 14:07:37 +03:00
Bananymous
e5786fe435
init: Start AudioServer on boot
2025-08-11 14:07:37 +03:00
Bananymous
ef6ee78fd1
Kernel/LibC: Implement chroot
2025-08-11 14:07:37 +03:00
Bananymous
695262624d
Kernel: Fix potential UB in AML OpRegion initialization
2025-08-11 03:45:38 +03:00
Bananymous
c96c264801
LibC: Implement fnmatch
2025-08-10 19:57:31 +03:00
Bananymous
af0bca74e4
Kernel/LibC: Implement {get,set,init}groups
...
This allows dropping /etc/group parsing from the kernel :D
2025-08-10 19:57:31 +03:00
Bananymous
f41e254e35
Kernel: Fix dead lock on process exit
2025-08-10 19:57:31 +03:00
Bananymous
7e472a9c1d
Kernel: Fix USB FS device default max packet size
...
Apparently this is a common non spec compliant issue on many
controllers/devices.
thanks @sasdallas
2025-08-10 19:57:31 +03:00
Bananymous
ee3f10313a
BuildSystem: Flip USB_ARGS and DISK_ARGS in qemu.sh
...
This allows attaching usb disk :D
2025-08-10 19:57:31 +03:00
Bananymous
5b587d199e
Kernel/LibC: Implement FIONREAD for tcp and udp sockets
2025-08-10 19:57:31 +03:00
Bananymous
009b073892
LibC: Add IN6_IS_ADDR_* and IN_MULTICAST macros
...
These are assumed to exist by some ports
2025-08-10 19:57:31 +03:00
Bananymous
92e962430b
LibC: Make sockaddr and sockaddr_in compatible with other systems
...
sockaddr:
make sa_data is 14 bytes on all systems
sockaddr_in:
add sin_zero
2025-08-10 19:57:31 +03:00
Bananymous
3aa20a3a32
Kernel: Fix ACPI _GPE calling
...
This adds patch adds support for extended GPEs and the second GPE
register block.
2025-08-07 19:35:13 +03:00
Bananymous
de7c3d3d29
Kernel: Don't try to create . in USTAR
...
Our build system adds . entry to the tar archive and it should be
handled as an no-op
2025-08-07 19:35:13 +03:00
Bananymous
3f89df338e
IDT: Remove stack OOB check
...
This makes debugging easier when you can see the actual register values
and what is mapped and where
2025-08-07 19:35:13 +03:00
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
Bananymous
4e705a91af
LibC: Fix pthread keys
...
I had misunderstood how these are supposed to work :D
2025-08-05 03:09:24 +03:00
Bananymous
82b351469b
DynamicLoader: Setup thread id when initializing TLS
...
This allows pre-libc code use pthread functions
(__cxa_guard_release calls pthread_cond_broadcast)
2025-08-05 03:09:24 +03:00
Bananymous
ea91bdcce7
WindowServer: Make relative mouse no-op with absolute mouse
2025-08-05 03:09:24 +03:00
Bananymous
256c9daefd
ports/SDL2: Optimize rendering and fix cursor
...
Remove the unnecessary framebuffer layer, we can just use the window's
own framebuffer.
Set default cursor on mouse initialization, this fixes cursor hiding in
tuxracer
defined SetRelativeMouseMode instead of SetMouseCapture. This is what
the behaviour was :D
2025-08-05 03:09:24 +03:00
Bananymous
af0a46e79c
LibGUI/WindowServer: Rename mouse capture -> mouse relative
...
My terminology was incorrect and this is more correct
2025-08-05 03:09:24 +03:00
Bananymous
4519c48284
WindowServer: Fix custom cursors
...
Custom cursor is now only set if the cursor is in the client area
instead of anyehere in the window. This makes hidden cursor visible
when it is on top of the title bar!
2025-08-05 03:09:24 +03:00
Bananymous
8ea32c7650
WindowServer: Fix relative mouse vertical flip
2025-08-05 03:09:24 +03:00
Bananymous
5972d40ced
ports: Update zstd 1.5.6 -> 1.5.7
...
Also build using cmake because we can :)
2025-08-05 03:09:24 +03:00
Bananymous
f35a6b3922
BuildSystem: Fix meson toolchain file
...
sed to replace SYSROOT did not work because paths contain /
also add cmake to allow cmake based library detection
2025-08-05 03:09:24 +03:00
Bananymous
21009c37b4
BuildSystem: Remove unnecessary variables from cmake toolchain
2025-08-05 03:09:24 +03:00
Bananymous
11a2d15003
BuildSystem: Optimize disk image creation
...
disk image is now created with rsync so there is no need for copying the
whole sysroot twice.
2025-08-05 03:09:24 +03:00
Bananymous
d8a695a88d
Kernel: Don't fail ustar unpack when creation fails
2025-08-05 03:09:24 +03:00
Bananymous
f82390424b
ports: Add cmake port
2025-08-05 03:09:24 +03:00
Bananymous
08ed405a5b
ports: Add libuv port
2025-08-05 03:09:24 +03:00
Bananymous
8c598a6902
LibC: Include stdint.h instead of inttypes.h in network headers
2025-08-05 03:09:24 +03:00
Bananymous
8e9c40caa4
LibC: Pump OPEN_MAX to 128
...
cmake seems to use around 70 when checking compiler. That seems quite a
lot but could be "normal"
2025-07-31 22:47:40 +03:00
Bananymous
8c29036fbf
Kernel: Fix EAGAIN on hungup pipe
2025-07-31 22:47:40 +03:00
Bananymous
b46337d376
BuildSystem: Add banan-os cmake platform
2025-07-31 22:47:40 +03:00
Bananymous
56d701492b
ports/ncurses: Add c++ bindings
2025-07-31 22:47:40 +03:00
Bananymous
07e4e764a0
LibC: Implement mbtowc
2025-07-31 22:47:40 +03:00
Bananymous
66fe2f2e50
LibC: Fix readv and writev
2025-07-31 22:47:40 +03:00
Bananymous
fda0ced72e
LibC: Implement getpw{nam,uid}_r
2025-07-31 22:47:40 +03:00
Bananymous
654e8bb7f6
LibC: Implement getgr{gid,nam}_r
2025-07-31 22:47:40 +03:00
Bananymous
80ffde5e1e
LibC: Implement aligned_malloc
...
This is part of POSIX issue 8
2025-07-31 22:47:40 +03:00
Bananymous
52309e0754
LibC: Add in6addr_{any,loopback} definitions
2025-07-31 22:47:40 +03:00
Bananymous
31e411f8f1
LibC: Implement recvmsg and sendmsg
...
These just wrap recvfrom and sendto so ancillary data is not supported
2025-07-31 22:47:40 +03:00