Commit graph

7322 commits

Author SHA1 Message Date
Liav A
976562307a Kernel: Initialize Spurious IRQ handlers in switch_to_pic_mode() 2020-02-29 00:12:46 +01:00
Liav A
86395810a9 CPU: Simplify handle_interrupt() function 2020-02-29 00:12:46 +01:00
Liav A
800a46ace9 Kernel: Delete unnecessary register & unregister calls 2020-02-29 00:12:46 +01:00
Liav A
b2e5425426 Kernel: Add SpuriousInterruptHandler class
This type of interrupt handler should handle spurious IRQs.
2020-02-29 00:12:46 +01:00
Liav A
e22ab33a4d Kernel: Add SpuriousInterruptHandler type into HandlerPurpose 2020-02-29 00:12:46 +01:00
Andreas Kling
f0b68f8bc0 SystemMonitor: Show VMObject types in process memory maps 2020-02-28 23:25:40 +01:00
Andreas Kling
5f7056d62c Kernel: Expose the VMObject type of each Region in /proc/PID/vm 2020-02-28 23:25:40 +01:00
Andreas Kling
8fbdda5a2d Kernel: Implement basic support for sys$mmap() with MAP_PRIVATE
You can now mmap a file as private and writable, and the changes you
make will only be visible to you.

This works because internally a MAP_PRIVATE region is backed by a
unique PrivateInodeVMObject instead of using the globally shared
SharedInodeVMObject like we always did before. :^)

Fixes #1045.
2020-02-28 23:25:00 +01:00
Andreas Kling
aa1e209845 Kernel: Remove some unnecessary indirection in InodeFile::mmap()
InodeFile now directly calls Process::allocate_region_with_vmobject()
instead of taking an awkward detour via a special Region constructor.
2020-02-28 20:29:14 +01:00
Andreas Kling
651417a085 Kernel: Split InodeVMObject into two subclasses
We now have PrivateInodeVMObject and SharedInodeVMObject, corresponding
to MAP_PRIVATE and MAP_SHARED respectively.

Note that PrivateInodeVMObject is not used yet.
2020-02-28 20:20:35 +01:00
Andreas Kling
07a26aece3 Kernel: Rename InodeVMObject => SharedInodeVMObject 2020-02-28 20:07:51 +01:00
Andreas Kling
46256da7b0 PaintBrush: Pledge "thread" so that GUI::FilePicker works 2020-02-28 19:48:29 +01:00
Andreas Kling
5af95139fa Kernel: Make Process::m_master_tls_region a WeakPtr
Let's not keep raw Region* variables around like that when it's so easy
to avoid it.
2020-02-28 14:05:30 +01:00
Andreas Kling
b0623a0c58 Kernel: Remove SmapDisabler in sys$connect() 2020-02-28 13:20:26 +01:00
Andreas Kling
6321b6ecc0 LibC: Move shbuf_* implementations to serenity.cpp 2020-02-28 12:55:58 +01:00
Andreas Kling
dcd619bd46 Kernel: Merge the shbuf_get_size() syscall into shbuf_get()
Add an extra out-parameter to shbuf_get() that receives the size of the
shared buffer. That way we don't need to make a separate syscall to
get the size, which we always did immediately after.
2020-02-28 12:55:58 +01:00
Andreas Kling
a1514369d7 LibC: Move shbuf_* API's to <serenity.h> 2020-02-28 12:55:58 +01:00
Andreas Kling
f72e5bbb17 Kernel+LibC: Rename shared buffer syscalls to use a prefix
This feels a lot more consistent and Unixy:

    create_shared_buffer()   => shbuf_create()
    share_buffer_with()      => shbuf_allow_pid()
    share_buffer_globally()  => shbuf_allow_all()
    get_shared_buffer()      => shbuf_get()
    release_shared_buffer()  => shbuf_release()
    seal_shared_buffer()     => shbuf_seal()
    get_shared_buffer_size() => shbuf_get_size()

Also, "shared_buffer_id" is shortened to "shbuf_id" all around.
2020-02-28 12:55:58 +01:00
Andreas Kling
8460d02651 WindowServer: Remove some old unused debugging code from Compositor 2020-02-28 12:55:58 +01:00
Liav A
7beae40508 DisplayProperties: Warn user about failed resolution setting
Also, we have now two new resolutions - 1368x768 and 1366x768.
The 1366x768 resolution is currently not supported but is good
for testing a failed resolution setting.
2020-02-28 12:16:05 +01:00
Liav A
151f32b827 WindowServer: Return richer result when changing resolutions
Now we return a boolean value from set_resolution() in the Compositor
and Screen class. Also, the WindowServer IPC now returns a richer result
after changing the resolution, which can be used in clients later.
2020-02-28 12:16:05 +01:00
Liav A
8dbd1cb9fb Kernel: Validate changed framebuffer resolution
Now we check before we set a FBResolution if the BXVGA device is capable
of setting the requested resolution.
If not, we revert the resolution to the previous one and return an error
to userspace.

Fixes #451.
2020-02-28 12:16:05 +01:00
Liav A
f14c5b29b4 WindowServer: Add a debug message 2020-02-28 12:16:05 +01:00
howar6hill
a19967d5c3 Tests: Fix a typo inTestRefPtr 2020-02-27 21:16:02 +01:00
Andreas Kling
3523071bb7 LibGUI: Disable the ColumnsView subview in MultiView for now
This is causing FilePicker to log a bunch of debug noise due to the
missing support for tree models in SortingProxyModel and it's not
helping anyone so let's just disable it.

This needs fixing in SortingProxyModel.
2020-02-27 14:43:35 +01:00
Andreas Kling
e52d1a02c8 WindowServer: Stop trying to boost things since it's not working
Let's temporarily disable the boosting calls until we have a solution
for boosting in the new multi-user world. The error messages keep
confusing people into thinking they're doing something wrong.
2020-02-27 14:29:35 +01:00
Liav A
fc611be592 Kernel: Run clang-format on PCI definitions file 2020-02-27 13:05:12 +01:00
Liav A
0cda92d5da LibBareMetal: Remove unnecessary include 2020-02-27 13:05:12 +01:00
Liav A
d376e17b5c SharedBuffer: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
1f13f51ebd SlavePTY: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
63a27992e8 MasterPTY: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
900865e87c Kernel: Run clang-format on Heap/kmalloc.cpp 2020-02-27 13:05:12 +01:00
Liav A
46a7ee97ac Heap kmalloc: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
ac9a001b92 PTYMultiplexer: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
a506b2a48e Thread: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
d16b26f83a MemoryManager: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
8a22e93ebb VirtualConsole: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
309593d5bd TTY: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
db23703570 Process: Use dbg() instead of dbgprintf()
Also, fix a bad derefernce in sys$create_shared_buffer() method.
2020-02-27 13:05:12 +01:00
Liav A
b0d40e9495 Ext2Filesystem: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
42665817d1 RangeAllocator: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
b41e2d25b4 CPU: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
9e520fd0d6 Syscall: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
9ee6d00b57 VMWareBackdoor: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
67994cd87e ProcFS: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
03592a80fc FIFO: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
31a67ca2f9 Ksyms: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
946d9b8c24 IOAPIC: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
5cd58adfa9 PS2MouseDevice: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00
Liav A
fcb1426a2b Init Stage: Use dbg() instead of dbgprintf() 2020-02-27 13:05:12 +01:00