Commit graph

6635 commits

Author SHA1 Message Date
Sergey Bugaev
ce56770875 Ports: Add mrsh port 2020-02-05 18:15:15 +01:00
Sergey Bugaev
b3a24d732d Kernel+LibC: Add sys$waitid(), and make sys$waitpid() wrap it
sys$waitid() takes an explicit description of whether it's waiting for a single
process with the given PID, all of the children, a group, etc., and returns its
info as a siginfo_t.

It also doesn't automatically imply WEXITED, which clears up the confusion in
the kernel.
2020-02-05 18:14:37 +01:00
Sergey Bugaev
a6cb7f759e Kernel+LibC: Add some Unix signal types & definitions 2020-02-05 18:14:37 +01:00
Sergey Bugaev
aafa5a9d09 LibC: Fix misplaced brace
It doesn't really make a difference since waitpid() is declared to have
extern "C" linkage in the header anyway, but still.
2020-02-05 18:14:37 +01:00
William McPherson
1e0d57a13f Piano: Set some nice defaults 2020-02-05 17:52:10 +01:00
William McPherson
59bde64ba6 Piano: Add release
Notice that we are calculating release time according to the level when
the note is turned off rather than the sustain level. Naively using the
sustain level gives very long release times if you turn the note off
during attack, whereas this deterministically gives the same release
time.
2020-02-05 17:52:10 +01:00
William McPherson
ab9475a3f3 Piano: Add attack 2020-02-05 17:52:10 +01:00
William McPherson
5990b3b2e6 Piano: Add sustain 2020-02-05 17:52:10 +01:00
William McPherson
421a340572 Piano: Make decay more accurate
1. Make decay sample-granular rather than buffer-granular
You only have ~43 buffers per second which can make a jagged signal.

2. Calculate decay in milliseconds
Decay is supposed to be a time value.
2020-02-05 17:52:10 +01:00
William McPherson
44c81ee9db Piano: Remove phony multiple same note playback
I say "phony" because it's not actually playing the same frequency
twice, it's just playing the same frequency at a higher volume. We can
properly implement this later but at the moment it'll get in the way of
our ADSR implementation.
2020-02-05 17:52:10 +01:00
William McPherson
f909095981 Piano: Fix default knob values
Now you can change the defaults in AudioEngine and not be totally
confused.

1. The default for m_octave_knob was actually upside-down.
2. The default for m_decay_knob wasn't respecting AudioEngine.
3. The default for m_delay_knob wasn't respecting AudioEngine.
2020-02-05 17:52:10 +01:00
Liav A
47978a5828 Kernel: Add support for vmmouse
We add this feature together with the VMWareBackdoor class.
VMWareBackdoor class is responsible for enabling the vmmouse, and then
controlling it from the PS2 mouse IRQ handler.
2020-02-04 19:11:52 +01:00
Liav A
44ddfd2bf5 WindowServer: Fix the drain mouse mechanism
Now we actually check if the Mouse packet relative flag is enabled or
not.
In addition to that, we have debug messages for mouse point changes.
2020-02-04 19:11:52 +01:00
Sergey Bugaev
e94484d208 WindowServer: Preliminary absolute mouse positioning support 2020-02-04 19:11:52 +01:00
Sergey Bugaev
0334656e45 Kernel: Stub absolute mouse positioning support
This is not the real kernel patch, @supercomputer7 is doing that :^)
2020-02-04 19:11:52 +01:00
Kenzi Jeanis
6c9d66ed4b LibC: Add byteswap.h, forwarding bswap_N to GCC builtins 2020-02-03 19:53:54 +01:00
Peter Wang
3969fcc72e build-root-filesystem.sh: Set umask to 0022
On my system (Void Linux) the root user has a default umask of 0077,
causing files and directories in the disk image to have zero group and
world permissions.
2020-02-03 19:52:02 +01:00
Kenzi Jeanis
e2110b633e LibC: Copy the net directory into /usr/include during build 2020-02-03 19:51:12 +01:00
Sergey Bugaev
589bd0a7de LibC: Implement getsid()
We've had a declaration, but not a definition.
2020-02-03 19:50:45 +01:00
Sergey Bugaev
a6e7797a31 LibC: Move waitpid() to sys/wait.h
That's where POSIX says it should be.
2020-02-03 19:50:45 +01:00
Sergey Bugaev
4e79a60b78 LibC: Implement isblank() 2020-02-03 19:50:45 +01:00
Andreas Kling
c600280dde AK: The <cxxabi.h> header is not available during Toolchain build
This will need some refinement, but basically since we build LibC
during the toolchain build, we don't have libstdc++ headers yet.
2020-02-03 06:27:54 +01:00
Andreas Kling
9dc78338ad ProfileViewer: Only show live allocations by default
For memory profiles, we now keep track of which allocations are still
live at the end of the selected timeline range and only show those.

This is really cool, I have to admit. :^)
2020-02-02 20:59:26 +01:00
Andreas Kling
266d7ca268 ProfileViewer: Add basic support for loading "perfcore" files
"perfcore" is the file that the kernel generates after a process that
was recording performance events has exited.

This patch teaches ProfileViewer how to load (and symbolicate!) those
files so that we can look at them. This will need a bunch more work
to make it truly useful.
2020-02-02 20:29:55 +01:00
Andreas Kling
fa97ff1c83 LibC: Allow opting into malloc() and free() performance event logging
If a program is started with LIBC_PROFILE_MALLOC in the environment,
it will now generate PERF_EVENT_MALLOC and PERF_EVENT_FREE.
2020-02-02 20:29:50 +01:00
Andreas Kling
3879e5b9d4 Kernel: Start working on a syscall for logging performance events
This patch introduces sys$perf_event() with two event types:

- PERF_EVENT_MALLOC
- PERF_EVENT_FREE

After the first call to sys$perf_event(), a process will begin keeping
these events in a buffer. When the process dies, that buffer will be
written out to "perfcore" in the current directory unless that filename
is already taken.

This is probably not the best way to do this, but it's a start and will
make it possible to start doing memory allocation profiling. :^)
2020-02-02 20:26:27 +01:00
Andreas Kling
25b635c841 Kernel: Remove unnecessary forward declaration in SlabAllocator 2020-02-02 20:25:41 +01:00
Andreas Kling
8ccf0e16a9 AK: Turn demangling back on for userspace
This didn't work at some point, but now it apparently works again. :^)
2020-02-02 20:15:58 +01:00
Andreas Kling
ea8d386146 Kernel: Update Thread::raw_backtrace() signature to use uintptr_t 2020-02-02 19:00:38 +01:00
Andreas Kling
c5bd9d4ed1 LibGUI: Put all classes in the GUI namespace and remove the leading G
This took me a moment. Welcome to the new world of GUI::Widget! :^)
2020-02-02 15:15:33 +01:00
Andreas Kling
2d39da5405 LibCore: Put all classes in the Core namespace and remove the leading C
I've been wanting to do this for a long time. It's time we start being
consistent about how this stuff works.

The new convention is:

- "LibFoo" is a userspace library that provides the "Foo" namespace.

That's it :^) This was pretty tedious to convert and I didn't even
start on LibGUI yet. But it's coming up next.
2020-02-02 15:15:30 +01:00
Andreas Kling
b7e3810b5c Terminal: Remove an unused variable 2020-02-02 15:09:48 +01:00
Andreas Kling
d67da8c101 LibGUI: Add GHBoxLayout and GVBoxLayout convenience classes 2020-02-02 15:09:48 +01:00
asliturk
63364f8a5d DisplayProperties: Highlight current wallpaper settings.
Fixes #556.
2020-02-02 15:08:37 +01:00
asliturk
9dfe6521fc LibGUI: Save current wallpaper setting to WindowManager.ini. 2020-02-02 15:08:37 +01:00
Hüseyin ASLITÜRK
c5edc09b78 WindowServer: Fix for Changing Screen Resolution Resets.
Fixes #816.
2020-02-02 15:08:37 +01:00
pfg
2ed660490d
Minesweeper: Make sure first tile revealed is always blank (#1164) 2020-02-02 12:07:23 +01:00
Jesse Buhagiar
f9609fe08a Userland: useradd utility
This commit implements the `useradd` utility that is found on most,
if not all *NIX systems. It allows the root user to add new users
to the password file found in `/etc/passwd`, thereby making
it easier to manipulate the file.
2020-02-02 10:58:45 +01:00
Jesse Buhagiar
5f78e2ff3a LibC: Implement putpwent()
It was previously impossible to (correctly) put an entry into the
password file via libc. This patch implements the functionality
to do so.
2020-02-02 10:58:45 +01:00
Jesse Buhagiar
dfaa5ecf81 LibC: Implement append modes for fopen()
Previously, `fopen()` didn't contain an implementation for the
append modes, even though the Kernel supports it via `O_APPEND`.

This patch rectifies that by implementing them so an assert is
no longer thrown.
2020-02-02 10:58:45 +01:00
Jesse Buhagiar
cdbdd397db LibC: Move FILE definition to bits/FILE.h
There are some headers in libc that require us to have definitions,
such as `FILE` available to us (such as in `pwd.h`). It is bad
practice to include the entirety of `stdio.h`, so it makes more
sense to put `FILE` into it's own header.
2020-02-02 10:58:45 +01:00
Andrew Kaster
117820f610 Meta: Claim copyright on files added by me
Demos/DynamicLink, LibC/cxxabi.cpp, and LibELF/ELFDynamic*.[cpp/h]
2020-02-02 02:05:38 +01:00
Andreas Kling
90cbe8a0da FileManager: Scope actions to the window where they logically belong
Most actions should not be app global. This fixes unwanted activations
while another window is active.
2020-02-02 02:03:39 +01:00
Andreas Kling
5b47b0d867 LibGUI: Make GAction scoped to its CObject parent (widget or window)
Unparented GActions are still parented to the application like before,
making them globally available.

This makes it possible to have actions that work whenever a specific
window is active, no matter which widget is currently focused. :^)
2020-02-02 02:03:39 +01:00
Andreas Kling
6ab9dc4ff4 LibCore: is<CObject>(object) should not default to true
Otherwise we'll lie about anything that doesn't implement is<T>() and
think it's indeed a T.
2020-02-02 02:03:39 +01:00
Liav A
583e9ad372 Kernel: Detect devices when enumerating the PCI bus
Instead of making each driver to enumerate the PCI bus itself,
PCI::Initializer will call detect_devices() to do one enumeration
of the bus.
2020-02-02 00:57:13 +01:00
Liav A
60715695b2 Partition Table: Change Script files
From now we can use build-image-grub.sh to generate a virtual disk
with the supported partition schemes - MBR, GPT & EBR (MBR +
Extended partitions).
2020-02-02 00:20:41 +01:00
Liav A
81544dc5b4 Partition Table: Add support for Extended partitions
Now also MBR configurations with extended partitions are supported.
2020-02-02 00:20:41 +01:00
Liav A
8cde707931 Partition Table: Replace __attribute__((packed)) with [[gnu::packed]] 2020-02-02 00:20:41 +01:00
Andreas Kling
0f81e8d9af Ports: Add klong language port
Patch contributed by nut (casaca on IRC)
2020-02-01 22:52:33 +01:00