summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-08-10disasm: Insert symbol names in disassembly streamNico Weber
The symbol name insertion scheme is different from objdump -d's. Compare the output on Build/Userland/id: * disasm: ... _start (08048305-0804836b): 08048305 push ebp ... 08048366 call 0x0000df56 0804836b o16 nop 0804836d o16 nop 0804836f nop (deregister_tm_clones (08048370-08048370)) 08048370 mov eax, 0x080643e0 ... _ZN2AK8Utf8ViewC1ERKNS_6StringE (0805d9b2-0805d9b7): _ZN2AK8Utf8ViewC2ERKNS_6StringE (0805d9b2-0805d9b7): 0805d9b2 jmp 0x00014ff2 0805d9b7 nop * objdump -d: 08048305 <_start>: 8048305: 55 push %ebp ... 8048366: e8 9b dc 00 00 call 8056006 <exit> 804836b: 66 90 xchg %ax,%ax 804836d: 66 90 xchg %ax,%ax 804836f: 90 nop 08048370 <deregister_tm_clones>: 8048370: b8 e0 43 06 08 mov $0x80643e0,%eax ... 0805d9b2 <_ZN2AK8Utf8ViewC1ERKNS_6StringE>: 805d9b2: e9 eb f6 ff ff jmp 805d0a2 <_ZN2AK10StringViewC1ERKNS_6StringE> 805d9b7: 90 nop Differences: 1. disasm can show multiple symbols that cover the same instructions. I've only seen this happen for C1/C2 (and D1/D2) ctor/dtor pairs, but it could conceivably happen with ICF as well. 2. disasm separates instructions that do not belong to a symbol with a newline, so that nop padding isn't shown as part of a function when it technically isn't. 3. disasm shows symbols that are skipped (due to having size 0) in parenthesis, separated from preceding and following instructions.
2020-08-10Kernel: Mark MSIHandler as finalBrian Gianforcaro
2020-08-09Base: Replace downscaled 2048 16x16 app icon with a hand-drawn oneLinus Groh
Downscaling icons to 16x16 pretty much never works...
2020-08-09Shell: Make redirections without commands apply to all future commandsAnotherTest
This restirects redirection-only commands' scope, and keeps their usefulness too!
2020-08-09LibLine: Only write to the standard errorAnotherTest
This fixes `> asdf` and allows for all sorts of stdout redirections.
2020-08-09LibWeb: Add HTML elements to factories, add missing tags and attributesLuke
This is mostly to get the grunt work of the way. This is split up into multiple commits to hopefully make it more manageable to review. Note that these are not full implementations, and the bindings mostly get the low hanging fruit. Also implements some attributes that I kept out because they had dashes in them. Therefore, this closes #2905.
2020-08-09LibWeb: Add all HTML elements between S and VLuke
2020-08-09LibWeb: Add all HTML elements between L and QLuke
2020-08-09LibWeb: Add all HTML elements between A and FLuke
2020-08-09LibWeb: Make all existing HTML elements "final"Luke
2020-08-09Lagom: Pass -Wno-deprecated-copy to clang tooNico Weber
Due to Serenity's use of concepts, it now requires clang 10 or newer, and clang 10 or newer both understands and requires -Wno-deprecated-copy.
2020-08-09disasm: For ELF files, disassemble .text sectionNico Weber
Since disasm is built in lagom, this requires adding LibELF to lagom.
2020-08-09LibELF+Lagom: Use FlatPtr instead of u32 in DynamicLoader to get LibELF to ↵Nico Weber
build in Lagom
2020-08-09LibELF+Lagom: Work towards getting LibELF in LagomNico Weber
Mostly -Wformat fixes, some of which pointed out real (if benign) bugs.
2020-08-09Games: Add a 2048 gameAnotherTest
2020-08-09LibCore: fix UDP Server receive to trim buffer to actuall bytes receiveedMuhammad Zahalqa
2020-08-09LibCore: close socket on LocalServer dtorMuhammad Zahalqa
2020-08-09LibCore: close socket on TCPServer dtorMuhammad Zahalqa
2020-08-09LibCore: close socket on UDPServer dtorMuhammad Zahalqa
2020-08-09Shell: Stop a for loop upon receiving two consecutive interruptionsAnotherTest
This does not work perfectly (just like every other shell...), if the running program handles the signal (SIGINT in this case) and quits cleanly, the shell cannot detect the interruption. This is the case with our `sleep(1)`.
2020-08-09WindowServer+LibGfx: Move notification window frame painting to LibGfxAndreas Kling
ClassicWindowTheme can now also paint notification window frames.
2020-08-09WindowServer+LibGfx: Move normal window frame painting to a WindowThemeAndreas Kling
This patch introduces the ClassicWindowTheme, which is our default theme implemented as a Gfx::WindowTheme subclass. In this initial cut, we move normal window frame painting and title bar metrics helpers out of WindowServer and into LibGfx. This will eventually allow us much greater flexibility with theming windows, and also makes it easier to build applications that want to render a window with a specific style for some reason. :^)
2020-08-09LibGfx: Add a basic abstract WindowTheme classAndreas Kling
This class will provide painting and metrics for window themes. :^)
2020-08-09LibWeb: Always add line boxes through LayoutBlock::add_line_box()Andreas Kling
Let's not append directly to the line box vector all over the place.
2020-08-09AK: Add a GenericLexer and extend the JsonParser with it (#2696)Benoît Lormeau
2020-08-09HackStudio: Set the pgrp of the pseudoterminal to the child pidAnotherTest
This fixes #3046.
2020-08-09Kernel: Decorate KResult and KResultOr<T> methods with [[nodiscard]]Brian Gianforcaro
This would have found my error propagation bug.
2020-08-09Kernel: Fix my result propagation bug @BenWiederhake spottedBrian Gianforcaro
In #3001 I was trying to fix result propagation issues, and I actually just introduced another one. Luckily Ben spotted it in the diff after it was in the tree, thanks Ben!
2020-08-08open: Resolve the realpath before passing it to URL()AnotherTest
...which runs it through LexicalPath. Fixes #3016.
2020-08-07LibWeb: Remove some unnecessary throwaway strings in the CSS parserAndreas Kling
We've had StringView::ends_with(..., CaseSensitivity) for a while, so let's use it to avoid creating a bunch of unnecessary strings here.
2020-08-07LibWeb: Handle CSS "ex" lengths (relative to font x-height)Andreas Kling
These are pretty rare, but they do come up in some places and it's not hard to support. The Gfx::Font information is approximate (and bad) but we can fix that separately.
2020-08-07LibGfx: Add dummy Font::x_height() getterAndreas Kling
Right now we just guess that the x-height is glyph_height/2, which is obviously not accurate. We currently don't store the x-height in fonts, so that's something we'll need to fix.
2020-08-07UserspaceEmulator: Add the dup2 syscallAndreas Kling
2020-08-07UserspaceEmulator: Add the chdir syscallAndreas Kling
2020-08-07UserspaceEmulator: Pass full path to new UE instance in virt$execve()Andreas Kling
Don't just pass argv[0] to the new UE, pass the full program path.
2020-08-07LibThread: Remove redundant --m_level in Lock::unlock() (#3040)Muhammad Zahalqa
2020-08-07UserspaceEmulator: Add the getpgid() and waitid() syscallsAndreas Kling
With this, you can now kinda sorta run the shell in UserspaceEmulator!
2020-08-07UserspaceEmulator: Add the setpgid syscallAndreas Kling
2020-08-07UserspaceEmulator: Make the "unimplemented syscall" output look nicerAndreas Kling
2020-08-07Kernel: Use Userspace<T> for the realpath syscallBrian Gianforcaro
2020-08-07Kernel: Use Userspace<T> for the getsockopt syscall and Socket interfaceBrian Gianforcaro
The way getsockopt is implemented for socket types requires us to push down Userspace<T> using into those interfaces. This change does so, and utilizes proper copy implementations instead of the kind of haphazard pointer dereferencing that was occurring there before.
2020-08-07Kernel: Use Userspace<T> for the setsockopt syscallBrian Gianforcaro
2020-08-07AK: Add static_ptr_cast support for the Userspace<T> pointer typeBrian Gianforcaro
When using Userspace<T> there are certain syscalls where being able to cast between types is needed. You should be able to easily cast away the Userspace<T> wrapper, but it's perfectly safe to be able to cast the internal type that is being wrapped.
2020-08-07Kernel: Use Userspace<T> for the getsockname syscallBrian Gianforcaro
2020-08-07Kernel: Use Userspace<T> for the getpeername syscallBrian Gianforcaro
2020-08-07Kernel: Use Userspace<T> for the chown syscallBrian Gianforcaro
2020-08-07Kernel: Use Userspace<T> for the mount syscallBrian Gianforcaro
2020-08-07AK: Remove unnecessary clang-format off comments.asynts
2020-08-07UserspaceEmulator: Result is initialized after OR with all-1 immediateAndreas Kling
When compiling with "-Os", GCC produces the following pattern for atomic decrement (which is used by our RefCounted template): or eax, -1 lock xadd [destination], eax Since or-ing with -1 will always produce the same output (-1), we can mark the result of these operations as initialized. This stops us from complaining about false positives when running the shell in UE. :^)
2020-08-07Shell: Make Command::redirections a NonnullRefPtrVectorAndreas Kling