d19264eea8
WindowServer: Implement partial window resizing
...
This patch adds support for client side resizing, so clients can request
the server to resize their windows. WindowServer will respond with
resize event when and if the resizing is complete.
2024-11-13 17:30:12 +02:00
7542e55cb2
LibC: Add option to debug userspace malloc family calls
2024-11-10 14:03:25 +02:00
6bd51ac345
LibGUI: Client window now exits if it loses connection from server
...
This can be prevented by installing callback for socket errors.
2024-11-10 14:02:23 +02:00
da8170c5b6
LibGUI: Add support for focusable windows and mouse capturing
...
These are essential parts of a window server! This allows making TaskBar
non-focusable.
2024-11-08 02:55:10 +02:00
12bc7480e0
LibC: Implement _Exit
...
This just calls _exit as POSIX says they can be equivalent
2024-11-08 02:52:12 +02:00
92862fdf39
LibC: Implement nan{,f,l} as functions
...
One port was using function pointers to these functions so macros don't
work.
2024-11-08 02:49:21 +02:00
a356d90445
LibC: Fix libc compilation for 32 bit target
2024-11-04 10:51:31 +02:00
f4be37700f
Kernel/userspace: rework floating point math
...
SSE is now unconditionally enabled any where and most of math.h is now
actually implemented. using __builtin_<func> lead to many hangs where
the builtin function would just call itself.
2024-11-03 20:28:15 +02:00
2464fccadd
LibC: Fix *scanf consuming extra characters
2024-10-19 12:43:23 +03:00
d266c7f93b
LibGUI: Implement attributes for windows
...
Windows can now change whether they have title bar, rounded corners,
alpha channel and whether they are movable. Also windows can also change
their own position
2024-10-18 03:32:12 +03:00
d7e5c56e94
userspace: Use SOCK_STREAM instead of SOCK_SEQPACKET for WindowServer
...
This makes more sense if we have longer packages
2024-10-17 01:44:48 +03:00
88b8ca5b29
LibC: Fix some string functions
...
I was not casting some required values to char or handling length of
zero
2024-10-13 22:04:08 +03:00
fdddb556ae
LibC: Implement system() more properly
...
Old implementation did not ignore and block needed signals
2024-10-13 22:03:15 +03:00
d36b64e0c8
LibImage: name color to u32 function to to_argb from to_rgba
...
This is the actual format that it returns
2024-10-13 22:01:46 +03:00
b6e040dfc2
Kernel/Shell: Fix backspace and delete key byte sequences
2024-10-04 04:14:47 +03:00
e4982a1a5c
LibC: Fix printf with alternate format and zero values
2024-09-26 15:25:16 +03:00
cea6dedccc
Userspace: Compile programs and libraries with -Wall -Wextra -Werror
2024-09-26 15:20:07 +03:00
82e6a3582d
LibGUI: cleanup Window::shift_vertical and add copy_horizontal_slice
2024-09-26 15:00:14 +03:00
11a4e4faa2
LibImage: Add Adam7 support for PNG decoder
2024-09-26 11:47:34 +03:00
50a3533322
LibInput: Add value for ESC in key_to_utf8_ansi
...
This allows exiting vim when using this function for key mappings :D
2024-09-24 18:08:34 +03:00
4e9f39384a
LibC: Initialize libc only once
...
This was breaking stuff with dynamic loader initializing libc and main
executable reinitializing it later :D
2024-09-24 17:56:12 +03:00
1280528e4e
BuildSystem: Use -O2 for all libraries
...
I don't know why I had not specified optimization level for libraries.
Only LibImage was using explicit -O3. LibImage doesn't need O3 anymore
as O2 seems to be around the same speed.
2024-09-20 20:04:49 +03:00
e431e90b20
Kernel/LibC: Implement all chown family function with fchownat
2024-09-17 18:35:01 +03:00
4aa466b948
Kernel/LibC: Implement all chmod family functions using fchmodat
2024-09-17 17:19:26 +03:00
3666525d24
Kernel/LibC: Implement readlink in terms of readlinkat
2024-09-17 16:38:15 +03:00
f1a4bbce53
Kernel/LibC: Implement all stat family functions with fstatat
...
This patch gets rid of 2 unnecessary syscalls!
2024-09-17 16:38:01 +03:00
708a720d9d
Kernel: Remove SYS_OPEN
...
This can be done with SYS_OPENAT with fd set to AT_FDCWD
2024-09-17 16:16:47 +03:00
7177da7d62
LibC: Implement dummy get_rusage
...
One port seems to use this function. This dummy just reports no used CPU
time for current process nor children
2024-09-17 15:59:22 +03:00
d88ee5c9ee
Kernel/LibC: Implement creat with open
...
This allows getting rid of unnecessary SYS_CREATE. Directory creation
still has its own syscall, but I could combine it with SYS_OPEN also.
2024-09-17 15:55:53 +03:00
a084f83f4c
Kernel: Rework kernel-side ELF loading
...
ELFs are now loaded as MemoryRegions so they don't need special handling
anywhere. This also allows file backed COW optimizations to work. This
was not the case before.
This patch removes now obsolete LoadableELF and unused ELF files from
LibElf.
2024-09-15 23:57:34 +03:00
1a24d1839f
LibInput: KeyEvent to ansi string now handles delete key
...
This allows Terminal emulator to also handle delete key.
The value of `\0x7F` may be wrong as qemu's serial console seems to be
sending `\e[3~`
2024-09-15 03:13:21 +03:00
7f25ddc229
userspace: Add missing alpha channels
2024-09-12 20:53:45 +03:00
467ac6c365
Kernel/LibC: Implement SOCK_CLOEXEC and SOCK_NONBLOCK
...
This removes the need for fcntl after creating a socket :)
2024-09-11 21:59:11 +03:00
4189a1c729
LibC: Make _init and _fini weak symbols
...
These seem to be missing sometimes when making shared executables
2024-09-11 14:39:07 +03:00
a07cbabcb3
LibC: Define function sizes for setjmp and longjmp
...
dynamic linking was complaining about these not existing
2024-09-10 16:21:20 +03:00
32ba4d07e2
Userspace: Remove unnecessary mov instruction from crt0
2024-09-05 12:59:05 +03:00
ddaaf89c87
BuildSystem: Make default libc a shared library
2024-09-05 12:58:35 +03:00
9aed8dbe6b
Toolchain: Build crtbeginS.o crtendS.o and shared libgcc
2024-09-05 12:58:21 +03:00
f30947336a
BuildSystem: Cleanup cmake files
2024-09-05 12:52:25 +03:00
0bb44d7b75
LibC: Fix errno to work with shared libraries
2024-09-04 21:16:04 +03:00
35743cc8e6
LibC: Compile both static and shared version of LibC
...
libc target is now set as an alias for libc-static
2024-09-02 21:28:02 +03:00
5f92807fdd
userspace: Allow building without SSE
...
I had added changes that had broken compilation without sse support
2024-09-02 21:25:00 +03:00
700c3444f5
LibELF: Add more values and macros for interpreting fields
2024-09-02 20:40:38 +03:00
2ae2ede0b2
LibELF: Add value definitions for DT_
2024-08-30 15:35:01 +03:00
8da2f12ba6
Kernel: Only load program headers of interpreter if its present
...
I was loading program headers of both executable and interpreter but
that is incorrect. The interpreter will itself load the program headers
of the executable.
2024-08-28 21:19:37 +03:00
57300687ff
LibC: Cleanup and fix missing LibC headers
2024-08-28 17:07:58 +03:00
d559339f5f
LibC: Compile shared libc as well as static
2024-08-28 17:07:15 +03:00
2bf65ef512
Kernel: Invoke ELF interpreter instead if it is specified
2024-08-28 17:06:32 +03:00
5121d0d934
Kernel: Allow loading PIEs
...
This is initial work towards implementing dynamic loader and shared
library support.
2024-08-27 17:32:22 +03:00
2c520391eb
Kernel/LibC: Add support for init_array and fini_array
2024-08-27 00:47:03 +03:00