1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 02:27:35 +00:00
serenity/Userland/Utilities
Liav A 25ea7461a0 Kernel/PCI: Simplify the entire subsystem
A couple of things were changed:
1. Semantic changes - PCI segments are now called PCI domains, to better
match what they are really. It's also the name that Linux gave, and it
seems that Wikipedia also uses this name.
We also remove PCI::ChangeableAddress, because it was used in the past
but now it's no longer being used.
2. There are no WindowedMMIOAccess or MMIOAccess classes anymore, as
they made a bunch of unnecessary complexity. Instead, Windowed access is
removed entirely (this was tested, but never was benchmarked), so we are
left with IO access and memory access options. The memory access option
is essentially mapping the PCI bus (from the chosen PCI domain), to
virtual memory as-is. This means that unless needed, at any time, there
is only one PCI bus being mapped, and this is changed if access to
another PCI bus in the same PCI domain is needed. For now, we don't
support mapping of different PCI buses from different PCI domains at the
same time, because basically it's still a non-issue for most machines
out there.
2. OOM-safety is increased, especially when constructing the Access
object. It means that we pre-allocating any needed resources, and we try
to find PCI domains (if requested to initialize memory access) after we
attempt to construct the Access object, so it's possible to fail at this
point "gracefully".
3. All PCI API functions are now separated into a different header file,
which means only "clients" of the PCI subsystem API will need to include
that header file.
4. Functional changes - we only allow now to enumerate the bus after
a hardware scan. This means that the old method "enumerate_hardware"
is removed, so, when initializing an Access object, the initializing
function must call rescan on it to force it to find devices. This makes
it possible to fail rescan, and also to defer it after construction from
both OOM-safety terms and hotplug capabilities.
2021-09-07 13:47:37 +02:00
..
adjtime.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
allocate.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
aplay.cpp Userland+LibAudio: Make audio applications support dynamic sample rate 2021-08-27 23:35:27 +04:30
arp.cpp Kernel+LibC: Share definitions for net/{if,if_arp,route}.h 2021-08-14 19:58:11 +02:00
asctl.cpp Base+Utilities: Add the asctl audio utility, replacing avol 2021-08-27 23:35:27 +04:30
base64.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
basename.cpp AK+Everywhere: Use mostly StringView in LexicalPath 2021-06-30 11:13:54 +02:00
beep.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
bt.cpp Userland: Use /proc/kernel_base to determine the kernel base address 2021-07-22 21:38:23 +02:00
cal.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
cat.cpp Utilities: Use Vector<String> positional arguments in some places 2021-04-29 11:28:01 +02:00
checksum.cpp LibCore+Everywhere: Move OpenMode out of IODevice 2021-05-12 11:00:45 +01:00
chgrp.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
chmod.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
chown.cpp Userland: Return 1 when help text is shown for insufficient args 2021-06-01 21:30:16 +01:00
chres.cpp chres: Make screen an optional parameter 2021-07-10 18:51:14 +01:00
cksum.cpp cksum: Print argv[0] on failed read 2021-08-01 19:26:57 +04:30
clear.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CMakeLists.txt Utilities: Add a command line client for ConfigServer 2021-08-28 08:24:48 +01:00
comm.cpp Utilities: Add an implementation of 'comm' 2021-07-14 14:13:25 +04:30
config.cpp Config CLI: Handle missing config values correctly 2021-08-31 16:52:58 +02:00
copy.cpp Utilities: Correct non-standard assert macros includes 2021-05-17 18:14:05 +01:00
cp.cpp Utilities: Implement -p flag for cp 2021-08-18 20:30:46 +02:00
cpp-lexer.cpp Utilities: Use File.error_string() instead of perror(3) in cpp-* 2021-08-22 02:01:58 +02:00
cpp-parser.cpp Utilities: Use File.error_string() instead of perror(3) in cpp-* 2021-08-22 02:01:58 +02:00
cpp-preprocessor.cpp Utilities: Use File.error_string() instead of perror(3) in cpp-* 2021-08-22 02:01:58 +02:00
crash.cpp Userland: Prefer using ARCH() over __LP64__ 2021-07-13 23:19:33 +02:00
cut.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
date.cpp date: Use DateTime::now() for time, cleanup duplicate returns 2021-08-15 12:20:38 +02:00
dd.cpp Utilities: Allow filenames containing '=' in dd (#8766) 2021-07-15 18:36:46 +04:30
ddate.cpp ddate: Use DateTime::now() for time 2021-08-15 12:20:38 +02:00
df.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
dirname.cpp AK+Everywhere: Add and use static APIs for LexicalPath 2021-06-30 11:13:54 +02:00
disasm.cpp Everywhere: Add missing includes for <AK/OwnPtr.h> 2021-05-19 21:36:57 +02:00
disk_benchmark.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
dmesg.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
du.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
echo.cpp echo: Support octal, hexadecimal and unicode escape sequences 2021-08-31 16:49:45 +02:00
env.cpp Userland: Let env parse options up to first non-option 2021-06-08 11:30:58 +02:00
errno.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
expr.cpp LibRegex+Everywhere: Make LibRegex more unicode-aware 2021-07-18 21:10:55 +04:30
false.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
fgrep.cpp Userland: Return 1 when help text is shown for insufficient args 2021-06-01 21:30:16 +01:00
file.cpp LibGfx: Improve ImageDecoder construction 2021-07-27 01:17:05 +02:00
find.cpp Userland: Also cache d_type in find(1) 2021-08-18 18:13:59 +02:00
flock.cpp Userland: Return 1 when help text is shown for insufficient args 2021-06-01 21:30:16 +01:00
fortune.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
functrace.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
gml-format.cpp LibCore+Everywhere: Move OpenMode out of IODevice 2021-05-12 11:00:45 +01:00
grep.cpp Utilities: Support grepping recursively from paths in the argument 2021-09-04 15:36:31 +04:30
gron.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
groupadd.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
groupdel.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
groups.cpp Userland: Add groups program 2021-05-05 15:12:30 +01:00
gunzip.cpp Utilities: Use Vector<String> positional arguments in some places 2021-04-29 11:28:01 +02:00
gzip.cpp Utilities: Add -d option to gzip 2021-08-22 16:51:18 +02:00
head.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
hexdump.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
host.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
hostname.cpp hostname: Handle 'sethostname' errors 2021-06-04 19:11:27 +02:00
id.cpp Userland: Fix id(1) printing the user's primary group for extra gids 2021-07-31 17:56:53 +02:00
ifconfig.cpp ifconfig: Use shorter argument names 2021-06-05 23:51:08 +04:30
ini.cpp Everywhere: Use Core::ConfigFile::AllowWriting::Yes to allow writing 2021-08-22 01:32:25 +02:00
jp.cpp Userland: Avoid a bunch of JsonObject copies 2021-05-31 17:59:02 +01:00
js.cpp js: Implement pretty-printing of Intl.ListFormat 2021-09-06 23:49:56 +01:00
kcov-example.cpp Kernel: Add option to build with coverage instrumentation and KCOV 2021-07-26 17:40:28 +02:00
keymap.cpp Everywhere: Use Core::ConfigFile::AllowWriting::Yes to allow writing 2021-08-22 01:32:25 +02:00
kill.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
killall.cpp Everywhere: Improve CPU usage calculation 2021-07-18 22:08:26 +02:00
less.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
ln.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
ls.cpp Utilities: Remove memset calls inside ls 2021-08-18 20:30:46 +02:00
lsirq.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
lsof.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
lspci.cpp Kernel/PCI: Simplify the entire subsystem 2021-09-07 13:47:37 +02:00
lsusb.cpp Kernel/Userland: Expose usb device address and use it in lsusb 2021-08-31 16:38:49 +02:00
man.cpp Userland: Add pager option to man and use less by default 2021-07-07 20:01:15 +04:30
matroska.cpp LibVideo: Migrate to east-const style & apply other minor fixes 2021-06-30 11:03:51 +02:00
md.cpp md: Improve document parsing error message 2021-06-01 21:30:16 +01:00
misbehaving-application.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
mkdir.cpp AK+Everywhere: Use mostly StringView in LexicalPath 2021-06-30 11:13:54 +02:00
mkfifo.cpp Everywhere: Use my cool new @serenityos.org email address 2021-09-01 11:37:25 +04:30
mknod.cpp Userland: Return 1 when help text is shown for insufficient args 2021-06-01 21:30:16 +01:00
mktemp.cpp AK: Remove the LexicalPath::is_valid() API 2021-06-30 11:13:54 +02:00
modload.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
modunload.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
mount.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
mv.cpp AK+Everywhere: Add and use static APIs for LexicalPath 2021-06-30 11:13:54 +02:00
nc.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
netstat.cpp Utilities: Add program argument for netstat to display connection pid 2021-08-13 20:03:57 +04:30
nl.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
notify.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
nproc.cpp Everywhere: Use my cool new @serenityos.org email address 2021-09-01 11:37:25 +04:30
ntpquery.cpp Userland: Switch static_assert of type sizes to AK::AssertSize 2021-09-05 20:08:57 +02:00
open.cpp Utilities: Add support for relative paths in open command 2021-06-02 17:34:27 +04:30
pape.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
passwd.cpp Everywhere: Use my cool new @serenityos.org email address 2021-09-01 11:37:25 +04:30
paste.cpp Userland: Implement paste --watch mode 2021-05-10 19:09:53 +01:00
pathchk.cpp Everywhere: "file name" => "filename" 2021-04-29 22:16:18 +02:00
pgrep.cpp Everywhere: Improve CPU usage calculation 2021-07-18 22:08:26 +02:00
pidof.cpp Everywhere: Improve CPU usage calculation 2021-07-18 22:08:26 +02:00
ping.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
pls.cpp Userland: Add as-user execution to the pls utility 2021-08-16 21:16:30 +02:00
pmap.cpp Utilities: Make sure columns are properly aligned for pmap on x86_64 2021-07-22 08:57:01 +02:00
printf.cpp Utilities: Correct non-standard assert macros includes 2021-05-17 18:14:05 +01:00
pro.cpp Everywhere: Use OOM-safe ByteBuffer APIs where possible 2021-09-06 01:53:26 +02:00
profile.cpp profile: Always enable PERF_EVENT_SIGNPOST 2021-08-12 00:03:38 +02:00
ps.cpp ps: Sort using input order in case of -q 2021-08-28 15:08:00 +04:30
purge.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
pwd.cpp Utilities: Implement pwd 2021-07-09 20:15:40 +02:00
readelf.cpp Utilities: Make the columns for readelf fit all reloc types on x86_64 2021-07-22 08:57:01 +02:00
readlink.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
realpath.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
reboot.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
rev.cpp LibCore+Everywhere: Move OpenMode out of IODevice 2021-05-12 11:00:45 +01:00
rm.cpp rm: Allow empty paths if -f is specified 2021-06-05 10:56:58 +02:00
rmdir.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
run-tests.cpp Everywhere: Rename get in ConfigFile::get_for_{lib,app,system} to open 2021-08-22 01:32:25 +02:00
seq.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
shot.cpp shot: Get only cropped region from WindowServer 2021-08-28 08:18:41 +01:00
shuf.cpp Userland: Migrate from arc4random_uniform() to get_random_uniform() 2021-05-14 22:24:02 +02:00
shutdown.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
sleep.cpp LibC: Do not include errno.h inside unistd.h 2021-05-14 22:24:02 +02:00
sort.cpp Utilities: Modernize output and comparison in the sort utility 2021-09-05 00:15:26 +02:00
sql.cpp Utilities: Some minor changes in sql REPL tool 2021-08-21 22:03:30 +02:00
stat.cpp Kernel+LibC: Use 64 bit values for ino_t 2021-08-12 20:57:32 +02:00
strace.cpp Kernel: Rename Thread::tss to Thread::regs and add x86_64 support 2021-06-27 15:46:42 +02:00
stty.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
su.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
sync.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
syscall.cpp Kernel: Make a bunch of "char const* to_string()" return StringView 2021-08-06 00:37:47 +02:00
sysctl.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
tac.cpp LibCore+Everywhere: Move OpenMode out of IODevice 2021-05-12 11:00:45 +01:00
tail.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
tar.cpp Everywhere: Use my cool new @serenityos.org email address 2021-09-01 11:37:25 +04:30
tee.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
telws.cpp Utilities: Update telws to use the isolated WebSocket service 2021-04-25 19:04:34 +02:00
test-bindtodevice.cpp Userland: Rename e1k0 to ep0s7 2021-05-22 15:42:54 +01:00
test-crypto.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
test-fuzz.cpp LibCore+Everywhere: Move OpenMode out of IODevice 2021-05-12 11:00:45 +01:00
test-imap.cpp LibIMAP: Stop leaking a Core::Promise<bool> in IMAP::Client::connect() 2021-09-01 23:02:18 +02:00
test-pthread.cpp test-pthread: Add a mutex test 2021-07-07 17:08:40 +02:00
test-unveil.cpp Utilities: Fix test-unveil INT_MAX include 2021-05-23 18:10:29 +02:00
test.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
test_env.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
top.cpp Everywhere: Make tracking cpu usage independent from system ticks 2021-07-18 22:08:26 +02:00
touch.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
tr.cpp AK: Move FormatParser definition from header to implementation file 2021-08-19 23:49:25 +02:00
traceroute.cpp Utilities: Correct non-standard assert macros includes 2021-05-17 18:14:05 +01:00
tree.cpp AK+Everywhere: Add and use static APIs for LexicalPath 2021-06-30 11:13:54 +02:00
true.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
truncate.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
tt.cpp LibPthread+Kernel: Add pthread_kill() and the thread_kill syscall 2021-07-09 15:36:50 +02:00
tty.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
umount.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
uname.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
uniq.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
unzip.cpp Utilites: Implement unzip -q 2021-06-13 17:05:48 +01:00
uptime.cpp Userland: Replace most printf-style APIs with AK::Format APIs :^) 2021-06-01 21:30:16 +01:00
useradd.cpp Utilities: Do not allow creating users with existing usernames 2021-06-09 09:00:31 +02:00
userdel.cpp Utilities: Validate user with Core::Account in userdel 2021-06-24 17:33:14 +04:30
usermod.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
utmpupdate.cpp Utilities: Correct non-standard assert macros includes 2021-05-17 18:14:05 +01:00
w.cpp Utilities: Remove unused header includes 2021-08-01 08:10:16 +02:00
wasm.cpp wasm: Don't try to print the function results if it traps 2021-07-17 01:13:39 +04:30
watch.cpp Utilities: Make watch stop parsing options on first non-option 2021-06-08 11:30:58 +02:00
wc.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
which.cpp which: Replace printf() with outln()/warnln() 2021-05-30 14:07:58 +01:00
whoami.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
wsctl.cpp WindowServer+wsctl: Add a simple utility for toggling "flash flush" 2021-07-07 22:56:46 +02:00
xargs.cpp Everywhere: Prefer using "..."sv over StringView { "..." } 2021-07-04 14:24:03 +02:00
yes.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
zip.cpp LibCore+Everywhere: Move OpenMode out of IODevice 2021-05-12 11:00:45 +01:00