2a9dad2dd8
LibC: Add SSE2 non-temporal memset and memcpy
...
Also cleanup other assembly by using local labels to emit them from the
assembled program.
2026-04-11 03:30:52 +03:00
7333008f40
LibC: Use IP instead of si_addr for faulting instruction
...
si_addr only means faulting instruction for SIGILL. For SIGSEGV it is
the faulting memory address.
2026-04-11 03:30:52 +03:00
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
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
80c4213501
LibC: Make errno macro directly access uthread
...
This allows inlining errno usages
This breaks libc ABI and requires toolchain rebuild
2026-04-11 03:30:32 +03:00
e0af23a924
LibC: Move uthread definition to its own header
...
Use `__asm__` instead of `asm` to allow compilation with --std=c99 and
before
2026-04-11 03:30:32 +03:00
7fb27b16e8
LibC: Fix pthread cancellation
...
Install SIGCANCEL handler for all threads.
Remove unneeded atomic stores and loads. States are only changed within
the thread itself.
Define pthread_testcancel as a macro so it gets inlined inside
cancellation points
2026-04-07 03:41:25 +03:00
3fb903d991
LibGUI: Optimize invalidate and set alpha channel
...
If the window does not have an alpha channel, we now set every pixel's
alpha to 0xFF. This is needed by the WindowServer when it does alpha
blending, there used to be some weird stuff happening on overlapping
windows.
Also when we are invalidating a region with width of the whole window,
we can do a single memcpy instead of a memcpy for each row separately.
2026-04-06 19:29:34 +03:00
4d3751028b
LibInput: Honor chroot and credentials when loading keymap
2026-04-06 19:29:34 +03:00
34b59f062b
LibC: Implement blocking pthread_rwlock
...
pthread_rwlock now uses a mutex and condition variable internally so it
doesn't need to yield while waiting!
2026-04-06 19:29:34 +03:00
ec4aa8d0b6
LibC: Fix shared pthread_barrier init
...
Initialize internal lock and cond as shared when the barrier is shared
2026-04-05 12:06:18 +03:00
1eebe85071
LibC: Fix pthread_cond_timedwait
...
If timeout occurred, I was not removing the entry from block list
2026-04-05 11:31:16 +03:00
db0507e670
LibC: Mark pthread_exit noreturn
2026-04-05 11:30:45 +03:00
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
c7690053ae
LibC: Don't crash on 32 bit pthread_create
2026-04-04 23:48:43 +03:00
bf1d9662d7
LibAudio: Use floats instead of doubles for samples
2026-04-03 16:15:02 +03:00
32806a5af3
LibC: Allow "t" in stdio mode
2026-04-02 15:44:50 +03:00
876fbe3d7c
LibC: Fix sem_{,timed}wait
2026-04-02 15:43:34 +03:00
c1b8f5e475
LibC: Add and cleanup network definitions
2026-04-02 15:42:00 +03:00
cf31ea9cbe
LibC: Add _SC_PHYS_PAGES and _SC_AVPHYS_PAGES
2026-04-02 15:41:26 +03:00
7e6b8c93b4
LibC: Implement strsep
2026-04-02 15:40:23 +03:00
dd2bbe4588
LibC: Implement sched_getcpu
2026-04-02 15:39:36 +03:00
e01e35713b
LibC: Allow including assert.h multiple times
...
Some shit seems to depend on this
2026-04-02 15:38:06 +03:00
82d5d9ba58
LibC: Write memchr, memcmp and strlen with sse
2026-04-02 15:35:03 +03:00
bf4831f468
AudioServer: Add support for volume control
2026-04-02 15:21:38 +03:00
5647cf24d2
Kernel: Implement volume control to audio drivers
2026-04-02 15:14:27 +03:00
d9ca25b796
LibC: Add FNM_CASEFOLD and FNM_IGNORECASE
...
These are part of POSIX issue 8
2026-03-25 04:27:00 +02:00
e9c81477d7
BAN/LibC: Implement remainder
...
This is basically just fmod but with fprem1 instead of fprem
2026-03-25 01:06:45 +02:00
14f1c1a358
LibC: Implement vsyslog
2026-03-23 19:13:38 +02:00
6a77754adf
LibC: Don't link against libstdc++
...
This prevented building the toolchain
2026-03-23 18:22:42 +02:00
7d7d5ba734
LibC: Compile eventfd file
2026-03-23 18:22:04 +02:00
43e18148a6
LibC: Define SSP things
2026-03-17 20:30:25 +02:00
b0db645248
LibC: Add basic elf.h
2026-03-17 20:25:38 +02:00
c1a424a635
Kernel: Implement linux's eventfd
2026-03-17 20:24:06 +02:00
1f22b9b982
DynamicLinker: Implement RTLD_NOLOAD
2026-03-17 20:04:48 +02:00
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
05b2424fca
LibC: Implement more proper random number generator
2026-03-17 19:53:43 +02:00
07201c711e
LibC: set endp in string to float conversion error
2026-03-17 19:50:12 +02:00
8fac88c9a6
LibC: Add sincos{,f,l}
2026-03-17 19:42:53 +02:00
e1c337a483
LibC: Fix compile and link flags
...
We were linking with -nostdlib and manually linked against libgcc. This
does not link with crtbegin and crtend which provides __dso_handle
preventing use of some global C++ constructors inside libc.
Now we just don't link against libc fixing this issue
2026-03-05 16:25:06 +02:00
a318a19fe2
LibGUI/WindowServer: Add fullscreen events
...
When window's fullscreen state changes we now generate events!
2026-02-23 16:06:48 +02:00
f4a7aec167
LibGUI/WindowServer: Add support for custom cursor origin
2026-02-23 16:06:48 +02:00
304ace1172
LibInput: Export keyboard layout keymaps
2026-02-23 16:06:48 +02:00
2255e36810
LibDEFLATE: Add GZip support
...
This allows compressing and decompressing with data using GZip headers
and footers
2026-02-21 04:03:11 +02:00
5abddd448e
LibC: Fix typo/bug in fnmatch
...
* would stop matching at '0' instead of end of string
2026-02-19 22:12:59 +02:00
b3bbfaeff0
LibC: Fix posix_spawnattr_t definition
2026-02-10 01:22:25 +02:00
679a3d4209
LibGUI: Add Texture::clear{,_rect}
2026-02-08 19:45:01 +02:00
2e59373a1e
Kernel: Fix non blocking sockets blocking :D
2026-02-08 19:33:28 +02:00
9809f87010
LibC: Fix {read,write}v return value for partial actions
2026-02-08 18:45:29 +02:00
c304133224
LibC: Indicate regex support in unistd.h
2026-01-25 01:47:30 +02:00