Luke
51b6bd8d95
Kernel/USB: Remove UAF in device removal
...
I was using a raw pointer instead of a RefPtr to keep the device alive
during removal.
2021-08-14 23:14:56 +02:00
Linus Groh
a548366425
CI: Set up Azure Pipelines
...
[skip ci]
2021-08-14 20:29:20 +01:00
Luke
4b4525dfc7
Kernel/USB: Update SysFS from the generic hub instead of from UHCI
2021-08-14 21:22:44 +02:00
Luke
872c75ac44
Kernel/USB: Split SysFS code into its own file
...
This makes it controller agnostic and allows us to access it from the
USB hub code.
The copyright says "Liav A." because git blame says he wrote this.
2021-08-14 21:22:44 +02:00
Luke
b6a2bbba3b
Kernel/USB: Replace PortNumber enum with a raw u8
...
A hub can technically have up to 255 ports, given that bNbrPorts is a
u8 and the DeviceRemovable field is a VLA to support up to 255 ports.
Source: USB 2.0 Specification Section 11.23.2.1
That means this enum is not going to scale well in terms of size.
Replacing it with a raw u8 allows me to remove the two port assumption
and a cast.
2021-08-14 21:22:44 +02:00
Luke
86ccacf6b5
Kernel/USB: Remove get_device_{at_port,from_address}
...
Nothing was using these. These can be put back in the future if
required. This also allows removing the devices array in UHCI.
2021-08-14 21:22:44 +02:00
Luke
da0a1068e9
Kernel/USB: Add Hubs and the UHCI Root Hub
2021-08-14 21:22:44 +02:00
Luke
9dcd146ab4
Kernel/USB: Add the USB 1.x/2.0 hub descriptor
...
There is a different hub descriptor for USB 3.0, but this isn't
included here.
2021-08-14 21:22:44 +02:00
Luke
14da080dcf
Kernel/USB: Use allocate_kernel_region in Transfer buffer allocations
...
Previously it would create a contiguous AVMO manually and pass it to
MM. This uses supervisor pages that quickly run out as they never get
returned and crash the system.
Instead, use allocate_kernel_region as we're only allocating a page so
it will be contiguous and will be returned when destroyed.
A potentially better solution would be to use a pool of transfers to
avoid all the allocations. This just prevents the system from crashing
within ~5 seconds from the continuous hub polling.
2021-08-14 21:22:44 +02:00
Luke
1ca5b6caa9
Kernel/USB: Pass in device address as last argument to Pipe constructor
...
The order of poll_interval and device_address was flipped.
2021-08-14 21:22:44 +02:00
Luke
7dd1786b13
Kernel/USB: Use "Pipe" instead of "USBPipe" in USBEndpoint
...
This wasn't caught before because nothing was including this header.
2021-08-14 21:22:44 +02:00
Luke
035aef9c09
Kernel/USB: Add endpoint directions and make endpoint constants public
2021-08-14 21:22:44 +02:00
Luke
3b4f71e4df
Kernel/USB: Add all USB 2.0 bmRequestType fields
2021-08-14 21:22:44 +02:00
Luke
5578a5a32d
Kernel/USB: Add header containing all the current USB classes
2021-08-14 21:22:44 +02:00
Brian Gianforcaro
72f348a6cf
Meta: Disable printing frame args when debugging the kernel with gdb
...
The function arguments almost always optimized away, so you never get
much value out of showing these in the default back trace view, it just
adds a bunch of extra stuff that you need to visual wade through.
So lets disable showing them.
2021-08-14 21:18:05 +02:00
Gunnar Beutner
4b4fe29c39
Ports: Remove SHA256 checksum for the doom port
2021-08-14 20:28:55 +02:00
Gunnar Beutner
582d74b729
Ports: Bump vlang version to weekly.2021.31
...
The previous version failed to build.
2021-08-14 20:28:55 +02:00
Gunnar Beutner
909e19f753
Ports: Fix reinstalling the mysthous port
...
Reinstalling the port failed because some of its files were installed
with permissions that prevented overwriting the existing files with cp.
2021-08-14 20:28:55 +02:00
Gunnar Beutner
e7d7b43f99
Ports: Fix reinstalling the lure port
...
Reinstalling the port failed because some of its files were installed
with permissions that prevented overwriting the existing files with cp.
2021-08-14 20:28:55 +02:00
Andreas Kling
9b79867909
Toolchain: Make Kernel/API/ headers available during toolchain build
2021-08-14 20:25:56 +02:00
Nico Weber
1f71d7bf22
LibCore: Add --version flag to ArgsParser
...
`--version` always prints "git" for now.
The motivation is that the neofetch port calls `Shell --version` and
adds the output to its output. And if `Shell --version` prints a long
error message about it not knowing the flag, neofetch's output looks a
bit ugly. Per Discord discussion, just add the flag to ArgsParser
instead of only to Shell.
2021-08-14 22:46:34 +04:30
Nico Weber
7d4addc6d3
Ports: Add a space to end of shell name in neofetch
...
Matches what neofetch does for other shell names.
2021-08-14 22:46:34 +04:30
Andreas Kling
286a7ecd92
LibJS: Call base class visit_edges() in various Temporal objects
...
When overriding visit_edges() in a JS::Object subclass, we must make
sure to call the base class visit_edges(), or the object's Shape (and
any properties) will not get marked.
2021-08-14 20:12:22 +02:00
Andreas Kling
97c497f9fe
Kernel: Move {Process,Thread,Session,ProcessGroup}ID to Kernel/Forward.h
2021-08-14 19:58:11 +02:00
Andreas Kling
dcb015fa7e
Kernel: Move VFS-internal O_FOO definitions to VirtualFileSystem.h
2021-08-14 19:58:11 +02:00
Andreas Kling
b47c7a2c38
Kernel: Remove unused integer typedefs from UnixTypes.h
2021-08-14 19:58:11 +02:00
Andreas Kling
e1273a8ff7
Kernel+LibC: Share definitions for sys/statvfs.h
2021-08-14 19:58:11 +02:00
Andreas Kling
dfd78b75d8
Kernel+LibC: Share definitions for sched.h
2021-08-14 19:58:11 +02:00
Andreas Kling
c9a5d83ccc
Kernel+LibC: Share definitions for sys/uio.h
2021-08-14 19:58:11 +02:00
Andreas Kling
37e98a55b7
Kernel+LibC: Share definitions for sys/ptrace.h
2021-08-14 19:58:11 +02:00
Andreas Kling
6dc688a08d
Kernel: Remove some redundant typedefs from UnixTypes.h
2021-08-14 19:58:11 +02:00
Andreas Kling
6b6eca0631
Kernel+LibC: Share definitions for sys/time.h
2021-08-14 19:58:11 +02:00
Andreas Kling
35b52338bb
Kernel+LibC: Share definitions for sys/times.h
2021-08-14 19:58:11 +02:00
Andreas Kling
808ce594db
Kernel+LibC: Share definitions for stdio.h
2021-08-14 19:58:11 +02:00
Andreas Kling
9c2212a60a
Kernel+LibC: Share definitions for unistd.h
2021-08-14 19:58:11 +02:00
Andreas Kling
d33b43276c
Kernel+LibC: Share definitions for poll.h
2021-08-14 19:58:11 +02:00
Andreas Kling
d794ed1de7
Kernel+LibC: Share definitions for utsname.h
2021-08-14 19:58:11 +02:00
Andreas Kling
c65a735d71
Kernel+LibC: Share definitions for dirent.h
2021-08-14 19:58:11 +02:00
Andreas Kling
77c2c0f620
Kernel+LibC: Share definitions for serenity.h
2021-08-14 19:58:11 +02:00
Andreas Kling
6f78377864
Kernel+LibC: Share definitions for sys/wait.h
2021-08-14 19:58:11 +02:00
Andreas Kling
661bd992b0
Kernel+LibC: Share definitions for net/{if,if_arp,route}.h
2021-08-14 19:58:11 +02:00
Andreas Kling
ff50122dc5
Kernel+LibC: Share definitions for futex.h
2021-08-14 19:58:11 +02:00
Andreas Kling
6fd7212476
Kernel+LibC: Share definitions for signal.h
2021-08-14 19:58:11 +02:00
Andreas Kling
9dc1350177
Kernel+LibC: Share definitions for netinet/in.h
2021-08-14 19:58:11 +02:00
Andreas Kling
b92e6b02e5
Kernel+LibC: Share definitions for sys/socket.h and sys/un.h
2021-08-14 19:58:11 +02:00
Andreas Kling
d277cdfd4c
Kernel+LibC: Share definitions for termios.h
2021-08-14 19:58:11 +02:00
Andreas Kling
a8d1c2dde9
Kernel+LibC: Share definitions for sys/mman.h
2021-08-14 19:58:11 +02:00
Andreas Kling
0a78056453
Kernel+LibC: Share definitions for time.h and sys/stat.h
2021-08-14 19:58:11 +02:00
Andreas Kling
740140a661
Kernel+LibC: Share definitions in fcntl.h and sys/types.h
...
This patch begins the work of sharing types and macros between Kernel
and LibC instead of duplicating them via the kludge in UnixTypes.h.
The basic idea is that the Kernel vends various POSIX headers via
Kernel/API/POSIX/ and LibC simply #include's them to get the macros.
2021-08-14 19:58:11 +02:00
Nico Weber
5c3440c5db
Mandelbrot: Add a View menu with zoom actions
2021-08-14 19:50:44 +02:00