Bananymous
a4ba1da65a
LibGUI/WindowServer: Rework packet serialization
...
Instead of sending while serializing (what even was that), we serialize
the whole packet into a buffer which can be sent in one go. First of all
this reduces the number of sends by a lot. This also fixes WindowServer
ending up sending partial packets when client is not responsive.
Previously we would just try sending once, if any send failed the send
was aborted while partial packet was already transmitted. This lead to
packet stream being out of sync leading to the client killing itself.
Now we allow 64 KiB outgoing buffer per client. If this buffer ever fills
up, we will not send partial packets.
2026-04-11 03:30:52 +03:00
Bananymous
2f9b8b6fc9
Kernel/LibC: Rework userspace syscall interface
...
Kernel syscall API no longer zeros all unused argument registers and
libc now uses inlined syscall macro internally. This significantly
cleans up generated code for basic syscall wrapper functions.
2026-04-11 03:30:52 +03:00
Bananymous
2a4a688c2d
WindowServer: Optimize rendering
...
We now use SSE2 to do alpha blending on 4 pixels at a time where
possible and use memcpy instead of manual loops for non blended regions.
2026-04-06 19:29:34 +03:00
Bananymous
85f676c30a
DynamicLoader: Calulate max loaded file count based on dtv size
...
dtv should be dynamic but i dont care right now :)
2026-04-04 23:48:43 +03:00
Bananymous
8c5fa1c0b8
DynamicLoader: Fix R_386_PC32 relocation
...
I was not accounting elf base with offset
2026-04-04 23:48:43 +03:00
Bananymous
d168492462
WindowServer: bind volume up/down to volume control
2026-04-02 15:24:02 +03:00
Bananymous
6f2e8320a9
TaskBar: Show current volume level
2026-04-02 15:22:42 +03:00
Bananymous
bf4831f468
AudioServer: Add support for volume control
2026-04-02 15:21:38 +03:00
Bananymous
21639071c2
kill: Allow killing with process name
2026-04-02 05:02:05 +03:00
Bananymous
c563efcd1c
AudioServer: Query pins of the asked device and not the current one
2026-03-23 22:57:49 +02:00
Bananymous
35e2a70de0
AudioServer: Handle client data before disconnecting clients
2026-03-23 20:41:13 +02:00
Bananymous
81d5c86a7a
WindowServer: Automatically launch xbanan if installed
2026-03-23 19:39:08 +02:00
Bananymous
cbe835a2c8
DynamicLoader: Add missing strlen definition
2026-03-23 18:23:31 +02:00
Bananymous
a49588dbc7
DynamicLoader: Fix library lookup for already loaded files
2026-03-17 20:05:05 +02:00
Bananymous
1f22b9b982
DynamicLinker: Implement RTLD_NOLOAD
2026-03-17 20:04:48 +02:00
Bananymous
1d07d8e08e
LibC/DynamicLoader: Add support for dynamically loaded TLS
...
Previously I failed to dlopen if any of the objects contained TLS
section
2026-03-17 20:01:51 +02:00
Bananymous
c9aafa78ec
DynamicLoader: Fix RO section mprotect arguments
2026-03-05 17:57:03 +02:00
Bananymous
acebe68dfa
DynamicLoader: Fix copy relocation and TLS initialization
2026-03-04 23:04:19 +02:00
Bananymous
a318a19fe2
LibGUI/WindowServer: Add fullscreen events
...
When window's fullscreen state changes we now generate events!
2026-02-23 16:06:48 +02:00
Bananymous
f4a7aec167
LibGUI/WindowServer: Add support for custom cursor origin
2026-02-23 16:06:48 +02:00
Bananymous
f022a1b08f
Shell: Fix crash when executing semicolon
...
This fixes #4
2026-02-13 17:52:54 +02:00
Bananymous
8fb2270ecf
DynamicLoader: map RO sections actually read only
...
I was mapping everything RW as i did not have mprotect when I
implemented the dynamic loader.
2026-02-04 23:21:06 +02:00
Bananymous
343aef31c3
AudioServer: Rewrite using epoll
...
select is slow :^)
2026-01-12 23:46:51 +02:00
Bananymous
3ac8f7e14f
WindowServer: Rewrite using epoll
...
Looking at profiles, select is a very slow syscall as it has to allocate
a temporary epoll instance
2026-01-12 23:46:03 +02:00
Bananymous
a9ceab0415
Kernel: Use syscall/sysret for syscalls in x86_64
2026-01-09 15:18:58 +02:00
Bananymous
a5318448f5
userspace: Add audioctl utility to configure audio server
2026-01-06 22:26:11 +02:00
Bananymous
b7c40eeb57
AudioServer: Handle multiple audio devices with multiple pins
...
This makes audio server configurable during runtime!
2026-01-06 22:26:11 +02:00
Bananymous
e7c9be1875
AudioServer: Increase send buffer size and hardcode volume to 20%
2026-01-06 22:26:11 +02:00
Bananymous
3ad053cf6d
image: Add option to change resize algoritm
...
Also benchmark timing is now done cpu clock, not monotonic one
2026-01-06 21:58:56 +02:00
Bananymous
bc11469a0b
mkdir: Fix mkdir error handling
2026-01-06 21:58:56 +02:00
Bananymous
60ec5d30fd
init: Start Clipboard server on startup
...
I had forgotten to commit this when I added the clipboard server :D
2026-01-06 21:58:56 +02:00
Bananymous
50ba743faf
Terminal: Cleanup CSI handling and add =c,>c,c,E,F
2026-01-02 17:13:46 +02:00
Bananymous
2efd6f92b2
rm: add -f and -i options
...
rm *should* now be posix compatible
2025-12-31 19:28:55 +02:00
Bananymous
e7d644b874
AudioServer: Fix rounding the number of samples when resampling
...
If client tried to play a single sample at lower frequency as the
kenrel, audio server would never play it leading to the client hanging
This makes calculations round the number of samples always up to fix
this
2025-12-18 16:05:28 +02:00
Bananymous
c64159d5c3
AudioServer: Fix resampling math
...
This caused resampled audio to freeze the whole audio system after few
minutes of playing (like doom)
2025-12-18 14:59:55 +02:00
Bananymous
1f9b296ae7
cp: Add -r/--recursive flag
2025-11-23 02:25:05 +02:00
Bananymous
e3e2e7b4df
userspace: Implement mv utility
2025-11-23 02:24:52 +02:00
Bananymous
db7ffcf9d5
Kernel/Terminal: Add support for bracketed paste mode
...
This gets rid of annoying warnings when running some programs like bash
2025-11-18 05:40:36 +02:00
Bananymous
8f6cb9c057
Terminal: Add selection and clipboard support
...
text can now be copied with ctrl+shift+c and pasted with ctrl+shift+v
2025-11-18 05:40:36 +02:00
Bananymous
291f298d19
userspace: Implement LibClipboard and ClipboardServer
...
programs can now connect to the clipboard server using libclipboard and
get and set the clipboard of the current user
2025-11-18 05:40:36 +02:00
Bananymous
b8a2573bb4
userspace: Implement ImageViewer utility
...
This supports viewing images and doing basic zooming and panning
2025-11-17 20:58:12 +02:00
Bananymous
7ce8e610f5
stat: Fix handling of symlinks
2025-11-17 05:26:07 +02:00
Bananymous
db20801521
Shell: Add exec builtin
2025-11-17 05:26:07 +02:00
Bananymous
160a9278c9
LibC: Fix RTLD_* definitions
2025-11-17 05:26:07 +02:00
Bananymous
9803209ba1
WindowServer: Make clients nonblock
...
Also dont allow freezed windows to "steal" focus and lock up the window
server :D
2025-11-17 05:26:07 +02:00
Bananymous
46f9a9053f
DynamicLoader: Use canonical path for the main executable
2025-11-13 04:20:53 +02:00
Bananymous
89c0ff1a9d
Kernel/LibC: Replace SYS_{GET,SET}_TLS with SYS_{SET,GET}_{FS,GS}BASE
...
This allows userspace to use both registers
2025-11-13 04:20:53 +02:00
Bananymous
7a68ce7e94
DynamicLoader: Fix testing for possible base address
...
Replace MAP_FIXED with MAP_FIXED_NOREPLACE and only attempt to map
program headers with PT_LOAD
2025-11-13 04:20:53 +02:00
Bananymous
c6ef4b5840
userspace: Implement kill utility
2025-11-04 19:19:46 +02:00
Bananymous
acd792d8b4
userspace: Implement pwd utility
2025-11-04 18:46:13 +02:00