a33b63d066
Kernel/LibC: Implement alarm() and setitimer()
...
This makes vim able to start!
2024-08-01 21:09:56 +03:00
6de350ce9d
Kernel/LibC: Cleanup, fix and implement a lot of signal code
...
This patch implements sigsets and some of their usages
2024-08-01 17:01:18 +03:00
401b460d75
LibC: Implement setbuf() and setvbuf()
2024-08-01 01:30:00 +03:00
c440204fa5
LibC: Implement dummy strcoll()
2024-07-31 23:58:10 +03:00
adf50dffd8
LibC: Implement uname()
2024-07-31 23:54:26 +03:00
20d38ed28c
LibC/Shell: Implement gethostname() and shell uses it for hostname
2024-07-31 23:53:55 +03:00
edc30cd71d
LibC: Compile without exceptions
...
This allows libc to not require __gxx_personality_v0. I can maybe add
C++ back to libc... :D I don't know why I did not research earlier what
this symbols was used for
2024-07-31 23:33:41 +03:00
10ce03a1e7
LibC: Implement ctime() and asctime()
2024-07-31 23:26:10 +03:00
5fca5c774a
LibC: Implement umask()
2024-07-31 23:26:10 +03:00
fc6c39e670
LibC: Implement gettimeofday()
2024-07-31 23:26:06 +03:00
e52dac3b25
LibC: Implement tmpnam()
...
This implementation is not really spec compliant as rand() does not
guarantee TMP_MAX different outputs + seeding
2024-07-30 12:02:30 +03:00
62db9a8ef3
LibC: Implement C++ static guards
2024-07-30 12:02:05 +03:00
f0be4f86a6
LibC/Kernel: Implement access
2024-07-30 11:51:07 +03:00
e5bb843059
LibC/Kernel: Implement ttyname
2024-07-30 11:41:18 +03:00
ca774dfeb5
LibC: Implement setlocale() for C locale
2024-07-30 11:33:02 +03:00
681d8327f5
LibC/Kernel: Cleanup termios code
...
This is still not correct, but much better than it used to be
2024-07-30 11:10:43 +03:00
e00efca170
Userspace: Pprogram template and loadfont mark install as optional
2024-07-21 17:41:40 +03:00
3ab1214012
LibC: Fix _toupper and _tolower definitions
...
They were using C++ global namespace, which of course does not exist for
C targets.
2024-07-18 01:10:51 +03:00
61f0043cd8
resolver: Fix infinite debug printing loop, if client disconnects
2024-07-16 15:05:07 +03:00
5b8fdbc82d
LibC: Don't expose math.h in stdlib.h
2024-07-16 12:47:38 +03:00
a5cb4057f9
Kernel: Implement unified input files for device hot-plugging support
...
/dev/keyboard and /dev/mouse can be read for events from any attached
keyboard or mouse respectively. This makes device hot-plugging support
pretty much automatic for TTY, GUI, and whatever takes input.
2024-07-15 22:11:15 +03:00
442ea8a692
BAN: Remove Optional emplace constructor
...
This was kind breaking some initializations. Emplacing is still possible
through Optional::emplace
2024-07-14 01:53:50 +03:00
a97a574718
Kernel: Rewrite the whole input system
...
PS/2 code is now kind of messed up, but it works. Keyboards and mice are
now an abstract class that is automatically exposed to userspace. This
will make adding USB input much nicer.
2024-07-14 01:53:50 +03:00
8ddab05ed3
BuildSystem: Cleanup userspace directory layout
...
userspace programs are now in userspace/programs
userspace tests are now in userspace/tests
This makes listing userspace projects much cleaner. Libraries were
already separated to their own directory, so other programs should also.
2024-07-03 09:18:02 +03:00
5dc441c4af
Kernel/userspace: Implement KD_LOADFONT and loadfont program
2024-07-03 09:02:49 +03:00
d58a569660
WindowServer: Limit msync to 60 Hz and only sync necessary pages
...
This speeds up GUI a lot. I can now run GUI on real hardware at almost
60 Hz.
2024-06-29 19:00:58 +03:00
0c645ba867
LibGUI: Window now uses double buffering
...
This allows data in shared memory object be always up to date. With this
change window server can update lazily, and not necessarily on all
invalidate calls
2024-06-27 00:39:59 +03:00
f538dd5276
test-tcp: Fix printing of "connection reset" when tcp connection closed
2024-06-27 00:39:22 +03:00
66905fcc08
http-server: Make http-server actually usable
...
http-server now implements basic static content from a specified
directory.
2024-06-25 19:36:10 +03:00
af4b138094
Kernel/LibC: Implement realpath
...
realpath is implemented as a syscall. This is not really required but it
was the easiest way to get it working as there is already path
canonicalization at kernel level.
2024-06-25 19:32:40 +03:00
95681a7a05
LibImage: Cleanup bicubic calculations
2024-06-25 11:04:03 +03:00
67dfe0bcf3
BAN: Allow String::formatted to fail
2024-06-25 11:04:03 +03:00
61aa1ea11f
sudo: Fix installation permissions
...
I had accudentally removed SETUID bit from sudo. This required to
elevate the permissions.
2024-06-24 15:00:08 +03:00
20aa7c79d1
BuildSystem: Fix crt file installation
...
crt files should be installed always before userpace programs are
linked.
2024-06-22 17:30:00 +03:00
22548a3f4a
BuildSystem: Fix crt file installation
...
crt files for userspace are now a dependency of libc, which means that
everytime libc gets installed, crt files will also install.
This fixes the problem when building libc
2024-06-21 17:10:58 +03:00
9e1b5cbaab
BuildSystem: Cleanup CMake code to allow libc only installation
...
There was no way to just install libc which is required for stdlibc++
2024-06-21 01:45:14 +03:00
1488ec5a03
Userspace: Implement the most basic http server
...
This server just responds with static http "hello world" to every
incoming request
2024-06-20 13:29:01 +03:00
ad6d95ba52
BuildSystem: Rework the whole cmake build system
...
Now files are installed using the install() command instead of manually
copying files to their destinations. This allows automatic recompilation
of headers that did not work previously
2024-06-19 09:40:03 +03:00
318ce5dec8
All: Fix a lot of compiler warnings from header files
...
While reworking build system, header files started to report warnings.
2024-06-18 23:02:10 +03:00
c69919738b
BuildSystem: Move all userpace libraries under the userspace directory
...
As the number of libraries is increasing, root directory starts to
expand. This adds better organization for libraries
2024-06-18 13:14:35 +03:00
aaf7a249c6
image: Add nicer error message if image could not be parsed
2024-06-17 22:58:59 +03:00
dd64e2060e
WindowServer: Add support for background images
...
WindowServer now looks in _$HOME/.config/WindowServer.conf_ for a
configuration file that can specify a background image.
Also add default background image /usr/share/images/sample.ppm to the
base sysroot provided in the git repo.
2024-06-16 00:28:09 +03:00
157e05f57c
image: Implement --scale argument to scale image to framebuffer
...
Also fix bug where red and blue channels were flipped
2024-06-15 17:24:01 +03:00
672ce40618
LibImage: Move userspace image parsing to its own library
...
The image utility now uses this tool instead of parsing images on its
own.
2024-06-14 11:05:54 +03:00
a9b0bfa740
LibC: Make ino_t always 64 bit
2024-06-14 00:18:21 +03:00
843a6851c4
Userspace: Start work on a terminal emulator
...
Terminal is still missing some ANSI codes, cursor and pseudo terminal
support.
Shell's builtin start-gui now launches a Terminal instead of test
windows.
2024-06-03 18:04:33 +03:00
234051d6bc
Shell: Optimize drawing characters at the end of a command
2024-06-03 18:03:19 +03:00
981c0eb8bc
Shell: Only set terminal properties if STDIN is a TTY
2024-06-03 18:02:49 +03:00
6346d1b6c7
Shell: Add builtin command for starting window server and test windows
2024-06-02 17:27:40 +03:00
05ee242b80
WindowServer: Add window title to title bar and send close events
2024-06-02 17:27:09 +03:00