Bananymous
ca9361abc1
DynamicLoader: Add support for dladdr
2025-08-19 16:23:30 +03:00
Bananymous
36cb3d56fe
LibC: Define Dl_info_t and add stub for dladdr
2025-08-19 16:23:30 +03:00
Bananymous
70bbdbd8f5
LibC: Cleanup syslog output
...
add ": " after the identification and formatted output. syslog does not
require trailing newline so add it in case it is missing.
2025-08-16 22:56:03 +03:00
Bananymous
ceca93c8b1
LibC: Cleanup memmove and memcpy for x86_64
2025-08-16 14:05:21 +03:00
Bananymous
6ed0e84421
LibC: Fix mktime argument updating
2025-08-11 19:00:23 +03:00
Bananymous
9b09d2b47a
LibC: Update struct tm to be POSIX issue 8 compliant
2025-08-11 18:59:20 +03:00
Bananymous
1a6c5deb4b
LibC: Add {AF,PF}_LOCAL as aliases to {AF,PF}_UNIX
2025-08-11 18:48:24 +03:00
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
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
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
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
7a5cfe1728
LibAudio/AudioServer: Add support for playing real time audio
2025-08-07 16:43:05 +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
c593d3ed75
LibC: Add missing libintl.h
2025-08-05 17:10:43 +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
45ad6082bc
DynamicLoader: Support dlopen(NULL, ...)
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
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
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
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
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
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
Bananymous
de45b760b5
LibC: Implement alphasort and scandir
2025-07-31 22:47:40 +03:00
Bananymous
ff29e9c4d6
LibC: Implement {,f}pathconf
...
This just return minimum values specified by posix
2025-07-31 22:47:40 +03:00
Bananymous
cc04bd0f06
LibC/Kernel: Implement ttyname_r
2025-07-31 22:47:40 +03:00
Bananymous
e72e1e4e43
LibC: Add _SC_NPROCESSORS_{CONF,ONLN)
2025-07-31 22:47:40 +03:00
Bananymous
7831c74e8c
DynamicLoader: Add support for LD_LIBRARY_PATH
...
Also fix a bug with dlopen with TLS
2025-07-31 22:47:29 +03:00
Bananymous
c1978f9133
Shell: Implement redirections
...
This works well enough. At the moment redirections can appear anywhere
in the command **after** environment variables and possible alias
command. This means commands like `>foo echo hello` are not supported.
I don't think this is big enough problem for now (99% time redirections
are given after arguments) that i would rewrite the environment and
alias parsing.
2025-07-22 16:54:06 +03:00
Bananymous
e2eb555ca0
LibC: Add dummy libintl support
...
This doesn't really do anything but allows some ports to use it :D
2025-07-22 13:26:53 +03:00
Bananymous
1e65f02ff7
Terminal: Handle bell and warn on unimplemented control characters
2025-07-21 14:28:09 +03:00
Bananymous
aa0249fadb
WindowServer: Support absolute position mouse
2025-07-19 18:01:23 +03:00
Bananymous
2c65590134
Kernel: Add support for absolute position mouse
2025-07-19 18:00:39 +03:00
Bananymous
11ae220dbe
LibImage: Optimize image resizing algorithms
2025-07-18 18:20:37 +03:00
Bananymous
22542a3a71
BuildSystem: Enable sse and sse2 for all programs and libraries
...
This is default on x86_64 but not on the 32 bit target. banan-os
already requires the CPU to support SSE even on 32 bit platforms.
2025-07-18 18:20:37 +03:00
Bananymous
6b9dbf625d
userspace: Add `audio` utility to play audio files
2025-07-15 16:12:03 +03:00
Bananymous
3aea2c007d
Userspace: Add simple AudioServer and LibAudio
2025-07-15 16:12:03 +03:00
Bananymous
8a663cb94f
Kernel: Implement basic AC97 driver
2025-07-15 14:17:49 +03:00
Bananymous
163fdcd582
LibC: Fix exec family function path resolution
2025-07-15 14:17:49 +03:00
Bananymous
8aff315c7b
LibC: fflush file in setvbuf before updating the buffer
2025-07-02 01:54:03 +03:00
Bananymous
19897ffa26
userspace: Compile test utility :D
2025-06-28 22:40:00 +03:00
Bananymous
42a10b21c7
userspace: Implement true and false utilities
2025-06-28 22:39:19 +03:00
Bananymous
5df0e25c1f
userspace: Implement chown utility
2025-06-28 21:32:59 +03:00
Bananymous
3e6a4f2b16
LibC: Add getgroups stub
2025-06-28 20:25:35 +03:00
Bananymous
c7c3dd7662
init/ports: Fix environment variables in init/ncurses
...
init no longer sets NCURSES_NO_UTF8_ACS
ncurses no longer sets TERM
2025-06-28 20:25:35 +03:00
Bananymous
e4f025edd6
LibC: Implement deprecated bcmp, bcopy, bzero
2025-06-28 20:25:35 +03:00
Bananymous
96f3efbf86
LibC: Fix enviroment variable allocation
2025-06-28 20:25:35 +03:00
Bananymous
e8491b34b8
Kernel/LibC: Rework TIOC{G,S}WINSZ more linux like
...
Userspace can freely set terminal size, kernel just updates it when for
example new font is loaded. Also SIGWINCH is now sent by kernel instead
of userspace.
2025-06-28 19:40:54 +03:00
Bananymous
521457eb92
DynamicLoader: Add support for calling destructors
...
After all libraries are initialized, their destructors are registered
using atexit
2025-06-28 16:55:13 +03:00
Bananymous
f26a445ce6
LibC: Make malloc actually allign to s_malloc_default_align boundary
2025-06-28 16:55:13 +03:00
Bananymous
850b3284ac
Terminal: Fix screen clearing when scrolling
2025-06-28 16:55:13 +03:00
Bananymous
d68c88c3f9
LibC: Implement rewinddir
2025-06-28 16:55:13 +03:00
Bananymous
5f07d53034
WindowServer: Send mod key to clients
...
Also roll back accidental mod key update from super->alt
2025-06-28 16:55:13 +03:00
Bananymous
fb09aa4d06
LibInput: Correctly resize keyboard layout maps 0xFF->0x100
2025-06-28 16:55:13 +03:00
Bananymous
4d080b30ab
LibInput: Pass raw scancode in KeyEvent
2025-06-28 16:55:13 +03:00
Bananymous
2d314e72fe
LibGUI: Implement basic message box
2025-06-28 16:55:13 +03:00
Bananymous
cf07b747fe
LibGUI/WindowServer: Implement per-window custom cursors
2025-06-28 16:55:13 +03:00
Bananymous
273e9bbc92
LibGUI/WindowServer: Implement per-window cursor hiding
2025-06-28 16:55:13 +03:00
Bananymous
7dcf1797e9
WindowServer: Cleanup packet callback calling
2025-06-28 16:55:13 +03:00
Bananymous
7aa24b6157
LibGUI: Implement serialization for BAN::Vector
2025-06-28 16:55:13 +03:00
Bananymous
d73a667437
LibGUI: Implement very bad widget system :D
2025-06-28 16:55:13 +03:00
Bananymous
7bf7bfbe13
Texture: Add invisible color when copying textures
...
This should probably support proper alpha blending but I'm lazy :)
2025-06-28 16:55:13 +03:00
Bananymous
397219c22e
LibC: Implement very hacky dlopen/dlsym/dclose
...
If ELF loading fails, this will just crash the program :D
And there is no support for RTLD_LOCAL
2025-06-28 16:55:13 +03:00