Commit graph

38495 commits

Author SHA1 Message Date
EWouters
997890c94e Ports/cmake: Update cmake to version 3.23.2 2022-06-02 23:26:14 +01:00
circl
06eca0a666 Meta: Add check if AvailablePorts.md is sorted 2022-06-02 23:18:06 +01:00
circl
83b21d4299 Ports: Re-sort AvailablePorts.md 2022-06-02 23:18:06 +01:00
circl
6b16430d01 Ports/powdertoy: Use the release build type
This should speed up the game
2022-06-02 23:18:06 +01:00
circl
ddfcefe311 Ports/luajit: Use HOST_CC instead of hardcoding gcc 2022-06-02 23:18:06 +01:00
circl
e51547986e Ports/luajit: Move warning to configure
Putting it in preconfigure did not work, as useconfigure wasn't enabled.
2022-06-02 23:18:06 +01:00
circl
f1111e99bf Ports/tinycc: Fix syntax error in backtrace patch
This typo prevented it from compiling.
2022-06-02 23:18:06 +01:00
stelar7
771e3b9868 LibJS: Stub out String.prototype.normalize 2022-06-02 23:04:27 +01:00
Xexxa
0239c79d3d Base: Add Misc. Symbols and Pictographs to font Katica Regular 10
1F32B, 1F32D, 1F336, 1F33E, 1F33F, 1F34E, 1F34F, 1F350, 1F35E, 1F369,
1F36D, 1F388, 1F397, 1F398, 1F39A, 1F39B, 1F39E, 1F3A2, 1F3A5, 1F3A7,
1F3A8, 1F3B2, 1F3B3, 1F3BF, 1F3C3, 1F3CA, 1F3CB, 1F3CC, 1F3DB, 1F3E0,
1F3E1, 1F3E5, 1F451, 1F452, 1F453, 1F484, 1F49F, 1F4A5, 1F4AB, 1F4B0,
1F4B1, 1F4B2, 1F4B3, 1F4B4, 1F4B5, 1F4B6, 1F4B7, 1F4BA, 1F4CC, 1F4D2,
1F4D3, 1F4DB, 1F4DE, 1F4E1, 1F4E2, 1F4E3, 1F4E4, 1F4E5, 1F4E6, 1F4E7,
1F4EE, 1F4F0, 1F4F8, 1F4F9, 1F4FB, 1F4FC, 1F4FD, 1F4FE
https://www.unicode.org/charts/PDF/U1F300.pdf
2022-06-02 23:13:22 +02:00
Karol Kosek
5f89369f67 LibGUI: Use default buttons in ColorPicker and FontPicker 2022-06-02 22:33:00 +02:00
Karol Kosek
c317275425 Taskbar: Use default buttons in ShutdownDialog 2022-06-02 22:33:00 +02:00
Karol Kosek
72be27e16c PixelPaint: Use default buttons in EditGuideDialog 2022-06-02 22:33:00 +02:00
Karol Kosek
9f1f1b8472 Userland: Use default buttons instead of manually handling return press
Besides simplifying the code, this will also draw outline for these
buttons as a cue for a user!
2022-06-02 22:33:00 +02:00
Karol Kosek
a232395b77 LibWeb: Check recursively if CSS functions contain var() or attr()
Previously, `var()` inside functions like `rgb()` wasn't resolved.

This will set the background color for badges in the New category on
https://ports.serenityos.net. :^)
2022-06-02 22:31:41 +02:00
Timon Kruiper
1072d523e2 Kernel: Initialize and use interrupts in the aarch64 Kernel
Now that everything is in place, we can actually use interrupts in the
aarch64 Kernel build. :^)
2022-06-02 13:14:12 +01:00
Timon Kruiper
dab6dbe893 Kernel: Add interrupt support to aarch64 RPi Timer driver
Since we can now build and use the IRQHandler class, we can implement
interrupt support for the Timer in the aarch64 build.
2022-06-02 13:14:12 +01:00
Timon Kruiper
8b77c61e7d Kernel: Use AK::NeverDestroyed<Timer> to store the timer class
For an upcoming change to support interrupts in this driver, this class
has to inherit from IRQHandler. That in turn will make this class
virtual, which will then actually call the destructor of the class. We
don't want this to happen, thus we have to wrap the class in a
AK::NeverDestroyed.
2022-06-02 13:14:12 +01:00
Timon Kruiper
a0b0c4e723 Kernel: Make RPi Timer::set_clock_rate static
This allows it to be called in UART without calling the Timer
constructor. This in turn allows the UART to be used before interrupts
are enabled.
2022-06-02 13:14:12 +01:00
Timon Kruiper
3cf8d3361e Kernel: Add support for handling interrupts on aarch64
There is currently some code duplication between the aarch64
implementation and the x86 one, but this initial implementation works
for now. :^)
2022-06-02 13:14:12 +01:00
Timon Kruiper
c959344c00 Kernel: Add simple implementation for InterruptManagement on aarch64
This class currently hardcodes the use of the Raspberry Pi interrupt
controller.
2022-06-02 13:14:12 +01:00
Timon Kruiper
5eac2b9f33 Kernel: Add driver for interrupt controller on the Raspberry Pi
This implements the simpler IRQController class and adds a
pending_interrupts() function to the class.
2022-06-02 13:14:12 +01:00
Timon Kruiper
f085903f62 Kernel: Move IRQController and InterruptManagement to Arch directory
These 2 classes currently contain much code that is x86(_64) specific.
Move them to the architecture specific directory. This also allows for a
simpler implementation for aarch64.
2022-06-02 13:14:12 +01:00
Timon Kruiper
63ee2781fb Kernel: Put Raspberry Pi devices into RPi namespace
This makes it clear in the code that these drivers are specific for the
Raspberry Pi devices.
2022-06-02 13:14:12 +01:00
Timon Kruiper
77f24056e0 Kernel: Disable interrupts when halting the aarch64 processor
This will actually halt the processor.
2022-06-02 13:14:12 +01:00
Timon Kruiper
846d9ae858 Kernel: Do not specify new alignment for aarch64
Using the alignment of 4 causes a panic in the aarch64 Kernel. Instead
just don't pass the flag, which will use the default alignment.
2022-06-02 13:14:12 +01:00
Timon Kruiper
cbe1717181 Kernel: Rename idt_init() to initialize_interrupts()
Also move the function out of the x86/Interrupts.h file into the generic
Interrupts.h file and add a stub for aarch64.
2022-06-02 13:14:12 +01:00
Timon Kruiper
02b94c6f0e Kernel: Add UnhandledInterruptHandler and SharedIRQHandler to aarch64 2022-06-02 13:14:12 +01:00
Timon Kruiper
d631a3daf6 Kernel: Add Interrupts/IRQHandler.cpp to the aarch64 build
This requires a few stubs such that the compiler won't complain.
2022-06-02 13:14:12 +01:00
Timon Kruiper
a4534678f9 Kernel: Implement InterruptDisabler using generic Processor functions
Now that the code does not use architectural specific code, it is moved
to the generic Arch directory and the paths are modified accordingly.
2022-06-02 13:14:12 +01:00
Timon Kruiper
ea9cf8b6ab Kernel: Separate NonMaskableInterruptDisabler into its own file
This is for the upcoming change to make InterruptDisabler class work for
the aarch64 build.
2022-06-02 13:14:12 +01:00
Timon Kruiper
9413fe9fe5 Kernel: Add interrupt related functions to Processor class
This adds {enable, disable}_interrupts() and are_interrupts_enabled()
to the Processor class, and also implements them for x86(_64) and
aarch64.
2022-06-02 13:14:12 +01:00
Timon Kruiper
80be5f8044 Kernel: Add DAIF system register to aarch64 registers
This register can be used to check whether the 4 different types of
interrupts are masked. A different variant can be used to set/clear
specific interrupt bits.
2022-06-02 13:14:12 +01:00
Timon Kruiper
2fd5e9f729 Kernel: Add GenericInterruptHandler.cpp to aarch64 build
This requires us to add an Interrupts.h file in the Kernel/Arch
directory, which includes the architecture specific files.

The commit also stubs out the functions to be able to compile the
aarch64 Kernel.
2022-06-02 13:14:12 +01:00
MacDue
f1baa56cc8 PixelPaint: Add rounded rectangles (both with/without antialiasing) 2022-06-02 13:20:27 +02:00
MacDue
a30c81104d PixelPaint: Add option for antialiased lines 2022-06-02 13:20:27 +02:00
Luke Wilde
bc5dd8dd0f LibGL: Check that texture name is allocated before marking it as free
glDeleteTextures previously did not check that the texture name was
allocated by glGenTextures before adding it to the free texture name
list.

This means that if you delete a texture twice in a row, the name will
appear twice in the free texture list, making glGenTextures return the
same texture name twice in a row.
2022-06-02 13:14:39 +02:00
Jesse Buhagiar
a88e3bde18 lsusb: Add -v flag to lsusb :^)
We can now get a more verbose print out from `lsusb` that spits out all
of the devices descriptors :^)
2022-06-02 13:14:29 +02:00
Jesse Buhagiar
a1ed9d3c60 Kernel/USB: Rename get_interfaces to something more sensible
This name was misleading, as it wasn't really "getting" anything. It has
hence been renamed to `enumerate_interfaces` to reflect what it's
actually doing.
2022-06-02 13:14:29 +02:00
Jesse Buhagiar
29f891bb54 Kernel/USB: Flesh out USB SysFS objects
Each USB object now contains the entire descriptor chain for the device
instead of just info from the device descriptor.
2022-06-02 13:14:29 +02:00
Jesse Buhagiar
ed657e3d2b Kernel/USB: Add interface descriptor accessor 2022-06-02 13:14:29 +02:00
Jesse Buhagiar
9002e837d3 Kernel/USB: Add configuration descriptor accessor 2022-06-02 13:14:29 +02:00
Jesse Buhagiar
cd8939f4a0 Kernel/USB: Make USBInterface endpoints accessible
These weren't accessible by an accessor, so let's fix that :^)
2022-06-02 13:14:29 +02:00
Jesse Buhagiar
361737650f Kernel/USB: Make USBConfiguration interfaces accessible
These weren't accessible by an accessor, so let's fix that :^)
2022-06-02 13:14:29 +02:00
MacDue
f98dad94fb PixelPaint: Enable antialiased option for outline ellipsis 2022-06-01 19:33:45 +02:00
MacDue
8c2a5bbc15 LibGfx: Implement antialiased outline ellipsis
This is a first pass at antialiased outline ellipses, currently
this is done by painting two filled AA ellipses, and then
subtracting the inner ellipse from the outer.

This produces a good result, but unfortunately requires allocating
a temporary bitmap in the painter. I did try a simpler method
using the existing line painting functions, and drawing the
ellipse as many line segments, but that produced very poor results.

I think with some work it should be possible to remove the extra
allocation, and I've left a big FIXME for this, but I could not
get this working well.
2022-06-01 19:33:45 +02:00
MacDue
8ac5f625e9 LibGfx: Rename draw_ellipse/circle to fill_ellipse/circle
This makes these functions more consistent with the non-aa painter.
2022-06-01 19:33:45 +02:00
Grigoris Pavlakis
f578247cdf Ports: Fix tuxracer port to use sdl12-compat instead of SDL2 2022-06-01 19:32:31 +02:00
Tim Schumacher
d10071ce42 Ports: Add a port of SDL_mixer 2022-06-01 19:32:31 +02:00
Tim Schumacher
b929b91e4f Ports: Add a port of libmikmod 2022-06-01 19:32:31 +02:00
Olivier De Cannière
5a3321b899 Taskbar+Desktop: Add super+D keyboard shortcut
This shortcut has the same effect as pressing the "Show Desktop" button
in the taskbar. This shortcut already exists in Windows.
2022-06-01 19:31:34 +02:00