Gunnar Beutner
b6435372cc
Kernel: Implement syscall entry for x86_64
2021-06-28 22:29:28 +02:00
Gunnar Beutner
732dc72c58
Kernel: Fix the limit for the IDT table
2021-06-28 22:29:28 +02:00
Gunnar Beutner
d4c0d28035
Kernel: Properly set up the userland context for new processes on x86_64
2021-06-28 22:29:28 +02:00
Gunnar Beutner
158355e0d7
Kernel+LibELF: Add support for validating and loading ELF64 executables
2021-06-28 22:29:28 +02:00
Gunnar Beutner
e35b060501
Userland: Set linker max page size to 4096
...
Neither the kernel nor LibELF support loading libraries with larger
PT_LOAD alignment. The default on x86 is 4096 while it's 2MiB on x86_64.
This changes the alignment to 4096 on all platforms.
2021-06-28 22:29:28 +02:00
Gunnar Beutner
e979a88af4
Kernel: Implement do_assume_context for execve() on x86_64
2021-06-28 22:29:28 +02:00
Gunnar Beutner
247af7aa6a
Kernel: Get Alt-Shift-F12 to work on x86_64
2021-06-28 22:29:28 +02:00
Gunnar Beutner
422166fb80
Kernel: Fix spelling mistake
2021-06-28 22:29:28 +02:00
Gunnar Beutner
a8587fbfb9
Kernel: Use FlatPtr for register-sized values
2021-06-28 22:29:28 +02:00
Gunnar Beutner
b5aad1c81d
Kernel: Fix GDT and segment selectors to make userland work on x86_64
...
Userland faulted on the very first instruction before because the
PML4T/PDPT/etc. weren't marked as user-accessible. For some reason
x86 doesn't care about that.
Also, we need to provide an appropriate userspace stack segment
selector to iretq.
2021-06-28 22:29:28 +02:00
Xavier Defrang
04fc7d708c
LibVT: Paste full path when dropping file on widget
...
Prioritize URLs over plain text content in order to
insert absolute path instead of basename
2021-06-29 00:23:40 +04:30
Itamar
ab3aa0759a
LanguageServers: Don't VERIFY that set_todo_entries callback exists
...
The callback may not exist if the CodeComprehensionEngine is running
in the context of tests (i.e CppLanguageServer -t).
2021-06-29 00:07:19 +04:30
Itamar
4123be7639
LibCpp: Update Parser test data after Type=>NamedType change
2021-06-29 00:07:19 +04:30
Itamar
ccb52b005e
CppLanguageServer: Make properties_of_type return any property
...
Previously, CppComprehensionEngine::properties_of_type only returned
variables.
2021-06-29 00:07:19 +04:30
Itamar
d7aa831a43
LibCpp: Differentiate between Type and NamedType
...
This adds a new ASTNode type called 'NamedType' which inherits from
the Type node.
Previously every Type node had a name field, but it was not logically
accurate. For example, pointer types do not have a name
(the pointed-to type may have one).
2021-06-29 00:07:19 +04:30
Itamar
10cad8a874
LibCpp: Add LOG_SCOPE() macro for debugging the parser's flow
...
LOG_SCOPE() uses ScopeLogger and additionally shows the current token
in the parser's state.
2021-06-29 00:07:19 +04:30
Itamar
316fef5602
AK: Store the 'extra' field of ScopeLogger as String
...
It was previously stored as a StringView, which prevented us from
using temporary strings in the 'extra' argument.
The performance hit doesn't really matter because ScopeLogger is used
exclusively for debugging.
2021-06-29 00:07:19 +04:30
Itamar
87e6d5351e
AK: Don't colorize the 'extra' field of ScopeLogger in dbgln()
...
It's easier to spot it in the debug logs this way :)
2021-06-29 00:07:19 +04:30
Itamar
c1ee0c1685
LibCpp: Support parsing enum classes
2021-06-29 00:07:19 +04:30
Linus Groh
5ee753ffaa
LibJS/Tests: Fix toBeFalse() details prefix
...
Copy/paste error from toBeTrue().
2021-06-28 19:16:06 +01:00
Hendiadyoin1
10728cd421
Kernel: Fix page round wrap detection for 64-bit
...
We were assuming 32-bit pointers, which will not always be the case
Also fixed an incorrect comment about wrapping
2021-06-28 19:26:06 +02:00
Hendiadyoin1
65566d6868
Kernel: Make and use KERNEL_BASE
...
This is to make the 0xc0000000 less a magic number, and will make it
easier in the future to move the Kernel around
2021-06-28 19:26:06 +02:00
Hendiadyoin1
8b44aa7885
Kernel: Fix Process::crash assuming 32-bit mode
2021-06-28 19:26:06 +02:00
Leon Albrecht
57b7f4ec5b
LibJS: Mark FunctionObject::is_ordinary_function() as override
2021-06-28 19:25:35 +02:00
Tom
30f531a55f
WindowServer: Fix menu location on screens other than main screen
...
The menus always thought they were being outside of the main screen,
which caused them to be left and/or top aligned. This also fixes the
calculation of the available space by using the screen rectangle where
it will be displayed.
2021-06-28 17:02:37 +02:00
Andreas Kling
2d4eb40f59
LibJS: Add the CreateMappedArgumentsObject abstract operation
...
This patch adds a new ArgumentsObject class to represent what the spec
calls "Arguments Exotic Objects"
These are constructed by the new CreateMappedArgumentsObject when the
`arguments` identifier is resolved in a callee context.
The implementation is incomplete and doesn't yet support mapping of
the parameter variables to the indexed properties of `arguments`.
2021-06-28 16:52:20 +02:00
Tom
a55cf08ef9
WindowServer: Fix regression flushing scaled displays
...
This accidentally was broken by 38af4c29e
2021-06-28 16:40:15 +02:00
Tom
4c8f7113ff
WindowServer: Make vertical maximize work on other screens
...
This doesn't yet restrict rendering to the screen it's being maximized
on.
2021-06-28 16:40:04 +02:00
rileylyman
640db93bdd
Kernel: Fix small typo in inline comment
2021-06-28 16:39:25 +02:00
Marcus Nilsson
beccc7e4fc
Utilities/top: Remove unused header includes
2021-06-28 16:38:44 +02:00
Marcus Nilsson
adb80c33ec
Utilities/top: Add sort-by and delay-time options
...
Add optional arguments to top so that the user can choose which field to
sort by and change the update frequency.
2021-06-28 16:38:44 +02:00
Ali Mohammad Pur
55fa2329de
LibHTTP: Ensure finish_up() is not called more than once
...
There's no reason to manually call it on TLS close, the HTTP reading
logic is smart enough to handle connection closes transparently.
Fixes #8211 .
2021-06-28 16:35:04 +02:00
Ali Mohammad Pur
2a7cb4fe42
LibTLS: Ensure that on_tls_finished is called only once
...
Connection state changes when the logical transport is closed should
not trigger tls_finished.
2021-06-28 16:35:04 +02:00
Spencer Dixon
cef2f55a8b
Taskbar: Move 'Assistant' Desktop::AppFile to member for quicker access
...
We care about showing 'Assistant' app as fast as possible when the
hotkey is pressed. In order to do that, we can parse the `.af` file
ahead of time and have it ready to use.
2021-06-28 16:29:02 +02:00
Spencer Dixon
b9d1ef99de
Assistant+Taskbar: Use AppFile::spawn() utility
2021-06-28 16:29:02 +02:00
Spencer Dixon
ae20c178b9
LibDesktop: Add spawn() to AppFiles
...
This adds a convenience utility to AppFiles for quickly launching the
apps backed by the AppFile.
2021-06-28 16:29:02 +02:00
Spencer Dixon
cbe67ed665
Taskbar: Open 'Assistant' with Super+Space
2021-06-28 16:29:02 +02:00
Spencer Dixon
4f11138e8e
LibGUI+WindowServer: Add new WMEvent Super+Space
...
To make Assistant useful we need a way to quickly trigger it. I've
added a new specialized event coming from the window server for when a
user is holding down 'Super' and hits 'Space'.
The Taskbar will be able to listen for this event and spawn a new
instance of the Assistant if it's not already running.
2021-06-28 16:29:02 +02:00
Spencer Dixon
66c13edb98
Userland: Add new app called Assistant
...
'Assistant' is similar to macOS spotlight where you can quickly open a
text input, start typing, and hit 'enter' to launch apps or open
directories.
2021-06-28 16:29:02 +02:00
Spencer Dixon
d16db6a67c
Meta: Tidy up include path and alphabetic ordering
2021-06-28 16:29:02 +02:00
Gunnar Beutner
1a9d3e3e54
Kernel: Add a sanity check for CHUNK_SIZE
...
Also fixes a spelling mistake in the same file.
2021-06-28 15:55:00 +02:00
Gunnar Beutner
d67fd37847
Kernel: Increase kmalloc eternal heap to 3MiB
...
The kernel wouldn't boot reliably on x86_64 with just 2MiB.
2021-06-28 15:55:00 +02:00
Gunnar Beutner
e56a0d6af7
Kernel: Fix memset() on x86_64
...
Previously memset() only set half of the bytes to the requested value.
2021-06-28 15:55:00 +02:00
Gunnar Beutner
cdcb75709a
Kernel: Fix type for PageDirectory::s_cr3_map
2021-06-28 15:55:00 +02:00
Gunnar Beutner
a0c1af4327
Kernel: Specify I/O size for BMIDEChannel
2021-06-28 15:55:00 +02:00
Gunnar Beutner
32840dfa17
Kernel: Implement more x86_64 context switching functionality
2021-06-28 15:55:00 +02:00
Gunnar Beutner
076692b1ef
Kernel: Implement entry code for x86_64 interrupts
...
With this fixed we can now properly handle interrupts (e.g. timer
interrupts) on x86_64.
2021-06-28 15:55:00 +02:00
Gunnar Beutner
328d44e227
Kernel: Fix stack for new threads on x86_64
...
Unlike on x86 iretq always pops rsp and ss.
2021-06-28 15:55:00 +02:00
Idan Horowitz
8eb48039c9
LibJS: Bring Reflect.construct() closer to the specification
...
This includes checking that the target is a constructor, not just a
function, as well as switching the order of the list creation and
argument validation to match the specification, to ensure correct
exception throwing order.
2021-06-28 14:22:35 +01:00
Idan Horowitz
596324ae9c
LibJS: Rewrite String.raw() closer to the specification
...
This includes not throwing a custom exception and using the
length_of_array_like abstract operation where required.
2021-06-28 13:27:13 +01:00