summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-11-06Kernel+SystemServer: Get rid of two virtual consolesAndreas Kling
Having four virtual (text) consoles by default seems really overkill for a system that can't even switch to them anyway (yet!)
2019-11-06AK: Get rid of TStyle (output styling helper for LogStream)Andreas Kling
This didn't end up getting used, so let's get rid of it.
2019-11-06Kernel: Remove unused SynthFS filesystemAndreas Kling
This used to be the base class of ProcFS and DevPtsFS but not anymore.
2019-11-05LibHTML: Build some foundation for text selectionAndreas Kling
Add LayoutPosition and LayoutRange classes. The layout tree root node now has a selection() LayoutRange. It's essentially a start and end LayoutPosition. A LayoutPosition is a LayoutNode, and an optional index into that node. The index is only relevant for text nodes, where it's the character index into the rendered text. HtmlView now updates the selection start/end of the LayoutDocument when clicking and dragging with the left mouse button. We don't paint the selection yet, and there's no way to copy what's selected. It only exists as a LayoutRange.
2019-11-05HackStudio: Update the "remove current editor" action enabled stateAndreas Kling
This action should not be enabled when there is only one editor open, since you are not allowed to be editor-less.
2019-11-05HackStudio: Allow removing the current editor with Alt+Shift+EAndreas Kling
Note that you are not allowed to remove the very last editor. These keybinds are all temporary while I figure out what the right ones should be. I'm not exactly sure how, but it'll reveal itself. :^)
2019-11-05HackStudio: Allow switching between editors with Ctrl+E / Ctrl+Shift+EAndreas Kling
2019-11-05HackStudio: Allow adding more editors by pressing Ctrl+Alt+EAndreas Kling
We also now start out with a single editor, instead of two. :^)
2019-11-05LibCore+LibGUI: Allow inserting a CObject/GWidget before anotherAndreas Kling
When adding a widget to a parent, you don't always want to append it to the set of existing children, but instead insert it before one of them. This patch makes that possible by adding CObject::insert_child_before() which also produces a ChildAdded event with an additional before_child pointer. This pointer is then used by GWidget to make sure that any layout present maintains the correct order. (Without doing that, newly added children would still be appended into the layout order, despite having a different widget sibling order.)
2019-11-05HackStudio: Put annoying debug spam behind EDITOR_DEBUGAndreas Kling
2019-11-05SoundPlayer: Changed some small cosmetic thingsTill Mayer
Renamed "Position" to "Elapsed". "channel/channels" automatically changes now when more than one channel exist. The current file name is now displayed in the window title.
2019-11-05AWavLoader: Fixed incorrect computation of m_loaded_samplesTill Mayer
m_loaded_samples was incremented with the value of the processed buffer. This causes m_loaded_samples to be bigger at some point than m_total_samples when downsampling, as the buffer would contain more samples than actually loaded.
2019-11-05disk_benchmark: Add a -c flag to enable use of disk cachesAndreas Kling
By default, disk_benchmark will now use the O_DIRECT flag, causing it to bypass the kernel's disk caches. This gives you "disk performance" numbers rather than "disk cache performance" numbers. You can use "disk_benchmark -c" to enable the caches. Fixes #703.
2019-11-05Kernel: Implement O_DIRECT open() flag to bypass disk cachesAndreas Kling
Files opened with O_DIRECT will now bypass the disk cache in read/write operations (though metadata operations will still hit the disk cache.) This will allow us to test actual disk performance instead of testing disk *cache* performance, if that's what we want. :^) There's room for improvment here, we're very aggressively flushing any dirty cache entries for the specific block before reading/writing that block. This is done by walking the entire cache, which may be slow.
2019-11-05run: Unbreak the run scriptAndreas Kling
2019-11-05LibHTML: Add TreeNode::next_in_pre_order()Andreas Kling
This function allows you to traverse in pre-order without recursing.
2019-11-05run: Comment out qemu packet captureDan MacDonald
2019-11-05HackStudio: Don't parse documentation if already parsedJoão Paulo Pulga
2019-11-04SoundPlayer: Added playback controlsTill Mayer
The playback of a file can now be paused, stopped, continued and the user can seek to any part of the file.
2019-11-04LibAudio: Added playback control features to audio serverTill Mayer
LibAudio now supports pausing playback, clearing the buffer queue, retrieving the played samples since the last clear and retrieving the currently playing shared buffer id
2019-11-04SoundPlayer: Added playback control icons and application iconTill Mayer
2019-11-04LibGUI: Added getter for m_draggingTill Mayer
2019-11-04SoundPlayer: Make sample widget display contents of the whole bufferTill Mayer
The SampleWidget now displays the contents of the whole buffer.
2019-11-04AK: Let's just log unimplemented printf() format stringsAndreas Kling
It's too dang frustrating that we actually crash whenever we hit some unimplemented printf specifier. Let's just log the whole format string and carry on as best we can.
2019-11-04LibHTML: Add a convenient way to get from any layout node to the rootAndreas Kling
2019-11-04Janitorial: Have sync.sh sudo automagicallyYour Name
Run sudo and keep environment just like in makeall.sh
2019-11-04SystemMonitor: Add device column to filesystems tabYour Name
2019-11-04ProcFS: Fix Clang build (or really, Qt Creator syntax highlighting)Andreas Kling
The Clang parser used by Qt Creator kept getting confused by this code.
2019-11-04FileManager: Remember my last view mode (#731)Hüseyin ASLITÜRK
2019-11-04FileManager: Make copying faster with ftruncate() and a bigger bufferAndreas Kling
Apply the same techniques from "cp" to make copying files much faster.
2019-11-04Ext2FS: Don't uncache inodes while they are being watchedAndreas Kling
If an inode is observed by watch_file(), we won't uncache it. This allows a program to watch a file without keeping it open.
2019-11-04Ports: Add nesalizer NES emulator (#722)Dan MacDonald
2019-11-04PATAChannel: Alert user when no PCI device is foundJesse Buhagiar
This helps aid debugging of issues such as #695, where the bridge chip that controls IDE is NOT a PIIX3/4 compatible controller. Instead of just hanging when the DMA registers can't be accessed, the system will inform the user that no valid IDE controller has been found. In this case, the system will not attempt to initialise the DMA registers and instead use PIO mode.
2019-11-04Kernel: Make File's can_read/can_write take a const FileDescription&Andreas Kling
Asking a File if we could possibly read or write it will never mutate the asking FileDescription&, so it should be const.
2019-11-04Kernel: Don't update fd offset on read/write errorAndreas Kling
If something goes wrong with a read or write operation, we don't want to add the error number to the fd's offset. :^)
2019-11-04IPv4: Non-blocking IPv4 sockets should return -EAGAIN in recvfrom()Andreas Kling
...if there are no packets in the receive queue.
2019-11-04LibCore: Make CTCPServer's local address/port getters return OptionalsAndreas Kling
2019-11-04run: Only enable KVM if /dev/kvm is r/w for the current userAndreas Kling
2019-11-04LibCore: Constify CTCPServer's local_address() and local_port()Andreas Kling
2019-11-04LibCore: Add local_{address,port} functions to CTCPServerConrad Pankoff
2019-11-04Userland: Add syscall programMauri de Souza Nunes
The Plan9 OS has this program that can test a system call with the given arguments. For the most basic system calls it can be very helpful and aid with testing or just to play with a given syscall without writing a dedicated program. Some examples: syscall write 1 hello 5 syscall -o read 0 buf 5 syscall mkdir /tmp/my-dir syscall exit 2 ...
2019-11-04Userland: Add the utility "nl" (number line) (#693)balatt
I wrote a version of nl for Serenity with a lot but not all of the options in POSIX nl. It includes line count type (-b), increment (-i), delimiter (-s), start number (-v), and width (-w).
2019-11-04wc: Rewritten with added features (#690)balatt
Now gets a true byte count by using the file size. * When giving a single-line string without a trailing newline, the line count should not go up ('printf "test" | wc -l' should output '0') * Doesn't hang up when using two or more switch options in a row. (It would hang if I did 'wc -lw test.frm'). While mine works with multiple args like that, they don't switch anything, you have to do wc -l -w etc but I think that is an issue with CArgsParser. * It can now take standard input without needing a "-". * When encountering a file that doesn't exist, it doesn't exit. It prints the counts for each file that does, and prints an error to stderr for each file that doesn't. * Has slight buffering between counts to be closer to GNU and BSD wc.
2019-11-04GTextEditor: Move the cursor to column 0 after deleting a whole lineAndreas Kling
2019-11-04LibC: Implemented atof()Jesse Buhagiar
`atof()` has now been implemented as part of the standard C library. It supports scientific notation such as `1.2e-3` etc, ala the version found as part of `glibc`. It's a bit chunky, so there's probably room for optimisations here and there, however, for now it works as intended (and allows Quake to run).
2019-11-04Ext2FS: Uncache unused Inodes after flushing contents to diskAndreas Kling
Don't keep Inodes around in memory forever after we've interacted with them once. This is a slight performance pessimization when accessing the same file repeatedly, but closing it for a while in between. Longer term we should find a way to keep a limited number of unused Inodes cached, whichever ones we think are likely to be used again.
2019-11-04Kernel: Reorganize memory layout a bitAndreas Kling
Move the kernel image to the 1 MB physical mark. This prevents it from colliding with stuff like the VGA memory. This was causing us to end up with the BIOS screen contents sneaking into kernel memory sometimes. This patch also bumps the kmalloc heap size from 1 MB to 3 MB. It's not the perfect permanent solution (obviously) but it should get the OOM monkey off our backs for a while.
2019-11-04LibCore: Flush outgoing IPC messages before trying to send a new oneAndreas Kling
This ensures that messages are sent in order.
2019-11-04Kernel: Fix bug in Thread::dispatch_signal().Drew Stratford
dispatch_signal() expected a RegisterDump on the kernel stack. However in certain cases, like just after a clone, this was not the case and dispatch_signal() would instead write to an incorrect user stack pointer. We now use the threads TSS in situations where the RegisterDump may not be valid, fixing the issue.
2019-11-04Thread.cpp: add method get_RegisterDump_from_stack().Drew Stratford
This refactors some the RegisterDump code from dispatch_signal into a stand-alone function, allowing for better reuse.