Bananymous
70880636f4
Kernel: Implement basic USB Mass Storage support
...
I finally decided to do this :D
2024-11-21 18:08:37 +02:00
Bananymous
96a5ba0ed3
BuildSystem: Make root partition UUID fixed
...
This allows specifying root as UUID which makes booting nicer experience
on real hardware
2024-11-21 17:59:38 +02:00
Bananymous
8054f6c618
Kernel: Wait 10 seconds to find root device
...
If root device is initialized asynchronously it may not be ready when
main initialization thread is finished. This patch adds searching for
root device every 500 ms for 10 seconds.
2024-11-21 17:56:58 +02:00
Bananymous
658ea68d04
Kernel: Check max packet size for all USB devices
...
Spec says that this has to be done. Most cases can be probably skipped
as I used to do, but this is less error prone and adds practically no
overhead
2024-11-21 13:46:42 +02:00
Bananymous
5750f87396
Kernel: Fix unaligned access in xHCI controller initialization
2024-11-21 13:46:09 +02:00
Bananymous
1253e2a458
Kernel: Add support for bulk endpoints and update endpoint API
...
USB device now sets its own data buffers for IN/OUT endpoints. This
allows more customization and parallelism as data buffer does not have
to be shared.
2024-11-21 13:44:21 +02:00
Bananymous
857b3e92f8
Kernel: Support initializing USB 3 devices
2024-11-21 13:40:16 +02:00
Bananymous
8bf14d542e
Kernel: Move SCSI device rdev allocation out of ATA code
2024-11-21 13:36:59 +02:00
Bananymous
31d2a39540
BAN: Add default constructors for BAN::{Little,Big}Endian
2024-11-21 13:34:12 +02:00
Bananymous
97718b4046
Kernel: Don't launch init process twice
...
I had accidentrally left the old init process launch in when replacing
it with the new one.
2024-11-19 20:43:38 +02:00
Bananymous
c07fd265f0
Kernel: Add support for ATA CHS addressing and cleanup code
...
I thought that I had an PC without LBA support so I implement support
for CHS. Turns out that my ATA device detection was broken and was no
device on that port and initialize data was just garbage.
Now that I added CHS, I guess I should just keep it in :)
Both ATA read and write are now combined into a single function to avoid
code duplication.
2024-11-19 20:39:32 +02:00
Bananymous
1de50a2a94
Kernel: Improve ATA device initialization
...
This does better detection of empty ports and fixes floating bus
read-value from 0x00 to 0xFF.
2024-11-19 00:25:42 +02:00
Bananymous
627ca432cc
Kernel: Make PS/2 controller not hang if device keeps sending resend
2024-11-19 00:18:48 +02:00
Bananymous
f8ef11b4d2
BAN: Make PlacementNew.h only include <new> if it exists
...
Otherwise it will define the functions itself. This allows compiling
toolchain as stdlibc++ depends on BAN.
2024-11-19 00:16:44 +02:00
Bananymous
71563034a7
Kernel: Remove accidentally left debug prints
2024-11-18 03:45:07 +02:00
Bananymous
aaff5a65e1
Kernel/init: /dev/tty is now custom symlink to controlling terminal
...
kernel now passes the name of default console to init process so init
knows which file to open as stdio. before /dev/tty was referencing the
system wide current terminal which was inherited from cmdline. This
doesn't work anymore as we have pseudo terminals implemented that can
chage the current terminal during runtime :D
2024-11-17 22:38:52 +02:00
Bananymous
458a362f98
Kernel: Allow kernel to pass arguments to init process
2024-11-17 22:38:02 +02:00
Bananymous
36d07065fb
WindowServer: Optimize msync calls to synchronize less bytes
...
This *probably* makes framebuffer much faster :D Window server does not
have to do page aligned and page sized syncs which used way too many
pixels.
2024-11-17 20:15:28 +02:00
Bananymous
f206e72447
Kernel: Don't require msync addresses to be page aligned
...
Inodes implementing msync can require page aligned addresses, but are
also allowed to not :) This reduces sizes of framebuffer msyncs!
2024-11-17 20:15:28 +02:00
Bananymous
58e45fb394
Kernel: Print process name on exceptions if it is available
2024-11-17 20:15:28 +02:00
Bananymous
411f32c766
WindowServer: Make select timeout more precise to hit target FPS
...
Previously window server was only running at around 40 FPS while
targetting 60. This makes the select timeout properly sleep so that
target FPS is reached!
2024-11-17 20:15:28 +02:00
Bananymous
e1b82e4e43
WindowServer: Don't allow focusing unfocusable windows after closing
2024-11-17 20:15:28 +02:00
Bananymous
df613775b6
WindowServer: Alpha blend background image in fullscreen mode
2024-11-17 20:15:28 +02:00
Bananymous
5e8fdc997a
Kernel: Prevent userspace from overwriting CPU load memory
2024-11-17 20:15:28 +02:00
Bananymous
51bfe4252d
ports/doom: download doom1.wad to common directory between archs
2024-11-15 20:50:40 +02:00
Bananymous
c96aee5740
WindowServer: Make mod+f toggle focused window fullscreen state
2024-11-15 20:45:56 +02:00
Bananymous
1c08849667
WindowServer: Draw cursor in fullscreen mode
2024-11-15 20:45:01 +02:00
Bananymous
73349e5e75
WindowServer: don't set window location to (0,0) when fullscreening
2024-11-15 20:43:41 +02:00
Bananymous
74ae411b69
WindowServer: Skip invalidation on other windows in fullscreen mode
2024-11-15 20:42:07 +02:00
Bananymous
d458592fb1
WindowServer: Don't focus unfocusable windows on window creation
2024-11-15 20:41:42 +02:00
Bananymous
627c89a62d
LibGUI: Actually set window attributes when creating a window
2024-11-14 23:33:12 +02:00
Bananymous
0228cd4f31
Kernel: Increase userspace stack size and decrease kernel stack
...
Quake II needs a lot of stack, it was overflowing my 256 KiB stack so
this patch doubles that, so Quake II can run!
Also every thread had 256 KiB kernel stack. This is unnecessarily large
and now dropped to 32 KiB.
2024-11-14 21:03:04 +02:00
Bananymous
a859558840
LibGUI: Window Creation takes attributes as an argument
...
This reduces windows showing/moving once they are opened and setting
their attributes.
2024-11-14 20:57:34 +02:00
Bananymous
04eee2ea75
ports: Add quake2 port (+two years of banan-os!)
...
This patch adds software rendered quake2 port. I was supposted to push
this as two days ago as two years of banan-os, but I was too sick to do
any programming.
2024-11-14 12:47:30 +02:00
Bananymous
bda2c663da
WindowServer: Implement fullscreen windows
...
If window size does not match framebuffer size, window data will be
scaled to framebuffer using nearest sampling for best performance.
2024-11-13 19:10:15 +02:00
Bananymous
5e041e6e5a
WindowServer: Make all terminating signals exit cleanly
...
This allows window server to restore input handling to TTY if window
server crashes on page fault or some other unexpected exception.
2024-11-13 17:32:13 +02:00
Bananymous
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
Bananymous
64c52012df
Kernel: Fix MemoryRegion overlap comparison
...
This made some calls to `munmap` unmap extra regions.
2024-11-13 17:26:42 +02:00
Bananymous
7542e55cb2
LibC: Add option to debug userspace malloc family calls
2024-11-10 14:03:25 +02:00
Bananymous
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
Bananymous
cf21eb4b39
TaskBar: Cleanup TaskBar string generation
2024-11-08 02:57:35 +02:00
Bananymous
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
Bananymous
12bc7480e0
LibC: Implement _Exit
...
This just calls _exit as POSIX says they can be equivalent
2024-11-08 02:52:12 +02:00
Bananymous
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
Bananymous
4417268ecc
BAN: only include <new> in PlacementNew.h
...
I was getting annoying multiple definitions for placement new and my
build system requires that c++ libraries are compiled. I guess this is
the easiest and cleanest solution
2024-11-08 02:48:07 +02:00
Bananymous
346853ee55
BAN: Implement sincos to math
...
This function calculates both sin and cos fast (hopefully)
2024-11-04 17:42:01 +02:00
Bananymous
a82f00cb70
BAN: Fix HashMap::{insert,emplace}_or_assign to actually assing value
...
I seemed to completely forgotten to do the assignment itself :D
2024-11-04 15:42:04 +02:00
Bananymous
1838ea5c30
Kernel: Fix pseudo terminal leaks
2024-11-04 15:35:07 +02:00
Bananymous
a356d90445
LibC: Fix libc compilation for 32 bit target
2024-11-04 10:51:31 +02:00
Bananymous
a3f41fd4d9
Kernel: Cleanup disk cache
...
Add missing include and cleanup code calling automatic disk sync.
2024-11-03 20:28:15 +02:00