From d426ffacea7b494324b3597039529924248f8ede Mon Sep 17 00:00:00 2001 From: 4lDO2 <4lDO2@protonmail.com> Date: Sat, 19 Mar 2022 15:06:29 +0100 Subject: [PATCH 1/2] Update toolchain to 2022-03-18. --- Cargo.lock | 438 +++++++++++++++-------------------------- Cargo.toml | 1 + ahcid/src/ahci/hba.rs | 8 +- ahcid/src/main.rs | 2 - alxd/src/main.rs | 1 - e1000d/src/main.rs | 2 - ihdad/src/main.rs | 1 - pcid/src/lib.rs | 2 - pcid/src/main.rs | 2 - pcid/src/pci/mod.rs | 19 +- ps2d/src/main.rs | 4 +- ps2d/src/vm.rs | 64 +++--- rtl8168d/src/device.rs | 2 +- rtl8168d/src/main.rs | 4 +- vesad/src/main.rs | 1 - vesad/src/primitive.rs | 47 ++--- 16 files changed, 231 insertions(+), 367 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c602d8936e..381269b486 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9,19 +9,13 @@ dependencies = [ "log", "num-derive", "num-traits", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "plain", "redox-log", "redox_syscall", "thiserror", ] -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - [[package]] name = "ahcid" version = "0.1.0" @@ -35,15 +29,6 @@ dependencies = [ "redox_syscall", ] -[[package]] -name = "aho-corasick" -version = "0.7.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" -dependencies = [ - "memchr", -] - [[package]] name = "alxd" version = "0.1.0" @@ -56,9 +41,9 @@ dependencies = [ [[package]] name = "ansi_term" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" dependencies = [ "winapi 0.3.9", ] @@ -96,15 +81,18 @@ dependencies = [ [[package]] name = "autocfg" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" +checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78" +dependencies = [ + "autocfg 1.1.0", +] [[package]] name = "autocfg" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "base64" @@ -147,9 +135,9 @@ checksum = "b4ae4235e6dac0694637c763029ecea1a2ec9e4e06ec2729bd21ba4d9c863eb7" [[package]] name = "bumpalo" -version = "3.7.0" +version = "3.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631" +checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" [[package]] name = "byteorder" @@ -165,9 +153,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "cc" -version = "1.0.68" +version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a72c244c1ff497a746a7e1fb3d14bd08420ecda70c8f25c7112f2781652d787" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" [[package]] name = "cfg-if" @@ -206,9 +194,9 @@ dependencies = [ [[package]] name = "clap" -version = "2.33.3" +version = "2.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" dependencies = [ "ansi_term", "atty", @@ -230,9 +218,9 @@ dependencies = [ [[package]] name = "cmake" -version = "0.1.45" +version = "0.1.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb6210b637171dfba4cda12e579ac6dc73f5165ad56133e5d72ef3131f320855" +checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a" dependencies = [ "cc", ] @@ -246,15 +234,6 @@ dependencies = [ "build_const", ] -[[package]] -name = "crc32fast" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" -dependencies = [ - "cfg-if 1.0.0", -] - [[package]] name = "crossbeam-channel" version = "0.4.4" @@ -267,12 +246,12 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.1" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4" +checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.5", + "crossbeam-utils 0.8.8", ] [[package]] @@ -281,21 +260,27 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", "cfg-if 0.1.10", "lazy_static", ] [[package]] name = "crossbeam-utils" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db" +checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" dependencies = [ "cfg-if 1.0.0", "lazy_static", ] +[[package]] +name = "cty" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" + [[package]] name = "e1000d" version = "0.1.0" @@ -306,44 +291,11 @@ dependencies = [ "redox_syscall", ] -[[package]] -name = "encoding_rs" -version = "0.8.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065" -dependencies = [ - "cfg-if 1.0.0", -] - [[package]] name = "extra" version = "0.1.0" source = "git+https://gitlab.redox-os.org/redox-os/libextra.git#cf213969493db8667052a591e32a1e26d43c4234" -[[package]] -name = "filetime" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "redox_syscall", - "winapi 0.3.9", -] - -[[package]] -name = "flate2" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0" -dependencies = [ - "cfg-if 1.0.0", - "crc32fast", - "libc", - "miniz_oxide", -] - [[package]] name = "fuchsia-cprng" version = "0.1.1" @@ -368,9 +320,9 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" [[package]] name = "futures" -version = "0.3.15" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7e43a803dae2fa37c1f6a8fe121e1f7bf9548b4dfc0522a42f34145dadfc27" +checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" dependencies = [ "futures-channel", "futures-core", @@ -383,9 +335,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.15" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2" +checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" dependencies = [ "futures-core", "futures-sink", @@ -393,15 +345,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.15" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1" +checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" [[package]] name = "futures-executor" -version = "0.3.15" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "badaa6a909fac9e7236d0620a2f57f7664640c56575b71a7552fbd68deafab79" +checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" dependencies = [ "futures-core", "futures-task", @@ -410,18 +362,16 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.15" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1" +checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" [[package]] name = "futures-macro" -version = "0.3.15" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c40298486cdf52cc00cd6d6987892ba502c7656a16a4192a9992b1ccedd121" +checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" dependencies = [ - "autocfg 1.0.1", - "proc-macro-hack", "proc-macro2", "quote", "syn", @@ -429,23 +379,22 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.15" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a57bead0ceff0d6dde8f465ecd96c9338121bb7717d3e7b108059531870c4282" +checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" [[package]] name = "futures-task" -version = "0.3.15" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae" +checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" [[package]] name = "futures-util" -version = "0.3.15" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967" +checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" dependencies = [ - "autocfg 1.0.1", "futures-channel", "futures-core", "futures-io", @@ -455,8 +404,6 @@ dependencies = [ "memchr", "pin-project-lite", "pin-utils", - "proc-macro-hack", - "proc-macro-nested", "slab", ] @@ -482,9 +429,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ "libc", ] @@ -514,9 +461,9 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.9" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ "cfg-if 1.0.0", ] @@ -532,9 +479,9 @@ dependencies = [ [[package]] name = "itoa" -version = "0.4.7" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" +checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" [[package]] name = "ixgbed" @@ -548,9 +495,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.51" +version = "0.3.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83bdfbace3a0e81a4253f73b49e960b053e396a11012cbd49b9b74d6a2b67062" +checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04" dependencies = [ "wasm-bindgen", ] @@ -579,9 +526,9 @@ checksum = "a6f08839bc70ef4a3fe1d566d5350f519c5912ea86be0df1740a7d247c7fc0ef" [[package]] name = "libc" -version = "0.2.97" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b8adadd720df158f4d70dfe7ccc6adb0472d7c55ca83445f6a5ab3e36f8fb6" +checksum = "efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f" [[package]] name = "linked-hash-map" @@ -591,9 +538,9 @@ checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" [[package]] name = "lock_api" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb" +checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" dependencies = [ "scopeguard", ] @@ -609,9 +556,9 @@ dependencies = [ [[package]] name = "matches" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" +checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" [[package]] name = "maybe-uninit" @@ -621,19 +568,9 @@ checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" [[package]] name = "memchr" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc" - -[[package]] -name = "miniz_oxide" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" -dependencies = [ - "adler", - "autocfg 1.0.1", -] +checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" [[package]] name = "mio" @@ -726,7 +663,7 @@ version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", "num-traits", ] @@ -736,7 +673,7 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", ] [[package]] @@ -759,16 +696,16 @@ dependencies = [ "pcid", "redox-log", "redox_syscall", - "smallvec 1.6.1", + "smallvec 1.8.0", ] [[package]] name = "orbclient" -version = "0.3.31" -source = "git+https://gitlab.redox-os.org/redox-os/orbclient.git#8ef4433da9871d6f6e8c11d0b863f737144d19f1" +version = "0.3.32" +source = "git+https://gitlab.redox-os.org/redox-os/orbclient.git#192dc30edbad43ee8c5348411b162600d43dfaf9" dependencies = [ "libc", - "raw-window-handle", + "raw-window-handle 0.3.4", "redox_syscall", "sdl2", "sdl2-sys", @@ -797,13 +734,13 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", "lock_api", - "parking_lot_core 0.8.3", + "parking_lot_core 0.8.5", ] [[package]] @@ -820,15 +757,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018" +checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" dependencies = [ "cfg-if 1.0.0", "instant", "libc", "redox_syscall", - "smallvec 1.6.1", + "smallvec 1.8.0", "winapi 0.3.9", ] @@ -875,7 +812,7 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff5751d87f7c00ae6403eb1fcbba229b9c76c9a30de8c1cf87182177b168cea2" dependencies = [ - "crossbeam-channel 0.5.1", + "crossbeam-channel 0.5.4", "libc", "time", "winapi 0.3.9", @@ -896,7 +833,7 @@ dependencies = [ "redox_syscall", "serde", "serde_json", - "smallvec 1.6.1", + "smallvec 1.8.0", "structopt", "thiserror", "toml", @@ -917,9 +854,9 @@ checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" [[package]] name = "pin-project-lite" -version = "0.2.6" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905" +checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c" [[package]] name = "pin-utils" @@ -957,23 +894,11 @@ dependencies = [ "version_check", ] -[[package]] -name = "proc-macro-hack" -version = "0.5.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" - -[[package]] -name = "proc-macro-nested" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" - [[package]] name = "proc-macro2" -version = "1.0.27" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038" +checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" dependencies = [ "unicode-xid", ] @@ -989,9 +914,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.9" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" +checksum = "b4af2ec4714533fcdf07e886f17025ace8b997b9ce51204ee69b6da831c3da57" dependencies = [ "proc-macro2", ] @@ -1015,7 +940,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" dependencies = [ - "autocfg 0.1.7", + "autocfg 0.1.8", "libc", "rand_chacha", "rand_core 0.4.2", @@ -1034,7 +959,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" dependencies = [ - "autocfg 0.1.7", + "autocfg 0.1.8", "rand_core 0.3.1", ] @@ -1102,7 +1027,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" dependencies = [ - "autocfg 0.1.7", + "autocfg 0.1.8", "rand_core 0.4.2", ] @@ -1127,11 +1052,21 @@ dependencies = [ [[package]] name = "raw-window-handle" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a441a7a6c80ad6473bd4b74ec1c9a4c951794285bf941c2126f607c72e48211" +checksum = "e28f55143d0548dad60bb4fbdc835a3d7ac6acc3324506450c5fdd6e42903a76" dependencies = [ "libc", + "raw-window-handle 0.4.2", +] + +[[package]] +name = "raw-window-handle" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fba75eee94a9d5273a68c9e1e105d9cffe1ef700532325788389e5a83e2522b7" +dependencies = [ + "cty", ] [[package]] @@ -1151,7 +1086,7 @@ checksum = "cbf6d33a003a5c0b94ec11f10c7c797303f236592964ddb1bfb93e1b438a1557" dependencies = [ "chrono", "log", - "smallvec 1.6.1", + "smallvec 1.8.0", "termion", ] @@ -1165,9 +1100,8 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c" +version = "0.2.12" +source = "git+https://gitlab.redox-os.org/4lDO2/syscall.git?branch=update-toolchain-2022#94de991da2a75c45be0b73b18adc26522fb6f4a8" dependencies = [ "bitflags", ] @@ -1181,23 +1115,6 @@ dependencies = [ "redox_syscall", ] -[[package]] -name = "regex" -version = "1.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.6.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" - [[package]] name = "rtl8168d" version = "0.1.0" @@ -1221,9 +1138,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.5" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" +checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" [[package]] name = "scopeguard" @@ -1253,46 +1170,43 @@ dependencies = [ [[package]] name = "sdl2" -version = "0.34.5" +version = "0.35.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deecbc3fa9460acff5a1e563e05cb5f31bba0aa0c214bb49a43db8159176d54b" +checksum = "f7959277b623f1fb9e04aea73686c3ca52f01b2145f8ea16f4ff30d8b7623b1a" dependencies = [ "bitflags", "lazy_static", "libc", - "raw-window-handle", + "raw-window-handle 0.4.2", "sdl2-sys", ] [[package]] name = "sdl2-sys" -version = "0.34.5" +version = "0.35.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41a29aa21f175b5a41a6e26da572d5e5d1ee5660d35f9f9d0913e8a802098f74" +checksum = "e3586be2cf6c0a8099a79a12b4084357aa9b3e0b0d7980e3b67aaf7a9d55f9f0" dependencies = [ - "cfg-if 0.1.10", + "cfg-if 1.0.0", "cmake", - "flate2", "libc", - "tar", - "unidiff", "version-compare", ] [[package]] name = "serde" -version = "1.0.126" +version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03" +checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.126" +version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43" +checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" dependencies = [ "proc-macro2", "quote", @@ -1301,9 +1215,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.64" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" +checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95" dependencies = [ "itoa", "ryu", @@ -1312,9 +1226,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527" +checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "smallvec" @@ -1327,18 +1241,18 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.6.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" +checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" dependencies = [ "serde", ] [[package]] name = "spin" -version = "0.9.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b87bbf98cb81332a56c1ee8929845836f85e8ddd693157c30d76660196014478" +checksum = "511254be0c5bcf062b019a6c89c01a664aa359ded62f78aa72c6fc137c0590e5" dependencies = [ "lock_api", ] @@ -1375,9 +1289,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" -version = "0.3.21" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5277acd7ee46e63e5168a80734c9f6ee81b1367a7d8772a2d765df2a3705d28c" +checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" dependencies = [ "clap", "lazy_static", @@ -1387,9 +1301,9 @@ dependencies = [ [[package]] name = "structopt-derive" -version = "0.4.14" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90" +checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" dependencies = [ "heck", "proc-macro-error", @@ -1400,26 +1314,15 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.73" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7" +checksum = "ea297be220d52398dcc07ce15a209fce436d361735ac1db700cab3b6cdfb9f54" dependencies = [ "proc-macro2", "quote", "unicode-xid", ] -[[package]] -name = "tar" -version = "0.4.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d779dc6aeff029314570f666ec83f19df7280bb36ef338442cfa8c604021b80" -dependencies = [ - "filetime", - "libc", - "xattr", -] - [[package]] name = "termion" version = "1.5.6" @@ -1443,18 +1346,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa6f76457f59514c7eeb4e59d891395fab0b2fd1d40723ae737d64153392e9c6" +checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.25" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a36768c0fbf1bb15eca10defa29526bda730a2376c2ab4393ccfa16fb1a318d" +checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" dependencies = [ "proc-macro2", "quote", @@ -1474,9 +1377,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.2.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b5220f05bb7de7f3f53c7c065e1199b3172696fe2db9f9c4d8ad9b4ee74c342" +checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" dependencies = [ "tinyvec_macros", ] @@ -1498,12 +1401,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeb8be209bb1c96b7c177c7420d26e04eccacb0eeae6b980e35fcb74678107e0" -dependencies = [ - "matches", -] +checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" [[package]] name = "unicode-normalization" @@ -1516,15 +1416,15 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.7.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" +checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" [[package]] name = "unicode-width" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" [[package]] name = "unicode-xid" @@ -1532,17 +1432,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" -[[package]] -name = "unidiff" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a62719acf1933bfdbeb73a657ecd9ecece70b405125267dd549e2e2edc232c" -dependencies = [ - "encoding_rs", - "lazy_static", - "regex", -] - [[package]] name = "url" version = "1.7.2" @@ -1602,9 +1491,9 @@ dependencies = [ [[package]] name = "ux" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88dfeb711b61ce620c0cb6fd9f8e3e678622f0c971da2a63c4b3e25e88ed012f" +checksum = "5efdcf885b33bb81bc9336e66cebc10d503288449466c0e43e51250ddc93a3d8" [[package]] name = "vboxd" @@ -1623,15 +1512,15 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" [[package]] name = "version-compare" -version = "0.0.10" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1" +checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73" [[package]] name = "version_check" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "vesad" @@ -1660,9 +1549,9 @@ checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" [[package]] name = "wasm-bindgen" -version = "0.2.74" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54ee1d4ed486f78874278e63e4069fc1ab9f6a18ca492076ffb90c5eb2997fd" +checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -1670,9 +1559,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.74" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b33f6a0694ccfea53d94db8b2ed1c3a8a4c86dd936b13b9f0a15ec4a451b900" +checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca" dependencies = [ "bumpalo", "lazy_static", @@ -1685,9 +1574,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.74" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "088169ca61430fe1e58b8096c24975251700e7b1f6fd91cc9d59b04fb9b18bd4" +checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1695,9 +1584,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.74" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97" +checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc" dependencies = [ "proc-macro2", "quote", @@ -1708,15 +1597,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.74" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7cff876b8f18eed75a66cf49b65e7f967cb354a7aa16003fb55dbfd25b44b4f" +checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2" [[package]] name = "web-sys" -version = "0.3.51" +version = "0.3.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e828417b379f3df7111d3a2a9e5753706cae29c41f7c4029ee9fd77f3e09e582" +checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb" dependencies = [ "js-sys", "wasm-bindgen", @@ -1766,15 +1655,6 @@ dependencies = [ "winapi-build", ] -[[package]] -name = "xattr" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" -dependencies = [ - "libc", -] - [[package]] name = "xhcid" version = "0.1.0" @@ -1792,7 +1672,7 @@ dependencies = [ "redox_syscall", "serde", "serde_json", - "smallvec 1.6.1", + "smallvec 1.8.0", "thiserror", "toml", ] diff --git a/Cargo.toml b/Cargo.toml index 8078a99e90..c5c315d790 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,3 +25,4 @@ members = [ mio = { git = "https://gitlab.redox-os.org/redox-os/mio.git", branch = "redox-unix" } net2 = { git = "https://gitlab.redox-os.org/redox-os/net2-rs.git", branch = "master" } orbclient = { git = "https://gitlab.redox-os.org/redox-os/orbclient.git", version = "0.3.28" } +redox_syscall = { git = "https://gitlab.redox-os.org/4lDO2/syscall.git", branch = "update-toolchain-2022" } diff --git a/ahcid/src/ahci/hba.rs b/ahcid/src/ahci/hba.rs index b4f416d8ed..1e7f8031db 100644 --- a/ahcid/src/ahci/hba.rs +++ b/ahcid/src/ahci/hba.rs @@ -76,7 +76,7 @@ impl HbaPort { pub fn start(&mut self) { while self.cmd.readf(HBA_PORT_CMD_CR) { - unsafe { llvm_asm!("pause"); } + core::hint::spin_loop(); } self.cmd.writef(HBA_PORT_CMD_FRE | HBA_PORT_CMD_ST, true); @@ -86,7 +86,7 @@ impl HbaPort { self.cmd.writef(HBA_PORT_CMD_ST, false); while self.cmd.readf(HBA_PORT_CMD_FR | HBA_PORT_CMD_CR) { - unsafe { llvm_asm!("pause"); } + core::hint::spin_loop(); } self.cmd.writef(HBA_PORT_CMD_FRE, false); @@ -306,7 +306,7 @@ impl HbaPort { } while self.tfd.readf((ATA_DEV_BUSY | ATA_DEV_DRQ) as u32) { - unsafe { llvm_asm!("pause"); } + core::hint::spin_loop(); } self.ci.writef(1 << slot, true); @@ -326,7 +326,7 @@ impl HbaPort { pub fn ata_stop(&mut self, slot: u32) -> Result<()> { while self.ata_running(slot) { - unsafe { llvm_asm!("pause"); } + core::hint::spin_loop(); } self.stop(); diff --git a/ahcid/src/main.rs b/ahcid/src/main.rs index eefdce1ba0..cef16638a2 100644 --- a/ahcid/src/main.rs +++ b/ahcid/src/main.rs @@ -1,5 +1,3 @@ -#![feature(llvm_asm)] - extern crate syscall; extern crate byteorder; diff --git a/alxd/src/main.rs b/alxd/src/main.rs index 77c342f808..7acdd1df7d 100644 --- a/alxd/src/main.rs +++ b/alxd/src/main.rs @@ -1,7 +1,6 @@ #![allow(dead_code)] #![allow(non_upper_case_globals)] #![allow(unused_parens)] -#![feature(llvm_asm)] #![feature(concat_idents)] extern crate event; diff --git a/e1000d/src/main.rs b/e1000d/src/main.rs index 0a75a51a05..49d2a3beea 100644 --- a/e1000d/src/main.rs +++ b/e1000d/src/main.rs @@ -1,5 +1,3 @@ -#![feature(llvm_asm)] - extern crate event; extern crate netutils; extern crate syscall; diff --git a/ihdad/src/main.rs b/ihdad/src/main.rs index 2a0ac274bb..70b486e1e6 100755 --- a/ihdad/src/main.rs +++ b/ihdad/src/main.rs @@ -1,5 +1,4 @@ //#![deny(warnings)] -#![feature(llvm_asm)] extern crate bitflags; extern crate spin; diff --git a/pcid/src/lib.rs b/pcid/src/lib.rs index bddde59abe..bf750605da 100644 --- a/pcid/src/lib.rs +++ b/pcid/src/lib.rs @@ -1,7 +1,5 @@ //! Interface to `pcid`. -#![feature(llvm_asm)] - mod driver_interface; mod pci; pub use driver_interface::*; diff --git a/pcid/src/main.rs b/pcid/src/main.rs index 9240d4f046..fce37d5b25 100644 --- a/pcid/src/main.rs +++ b/pcid/src/main.rs @@ -1,5 +1,3 @@ -#![feature(llvm_asm)] - use std::fs::{File, metadata, read_dir}; use std::io::prelude::*; use std::os::unix::io::{FromRawFd, RawFd}; diff --git a/pcid/src/pci/mod.rs b/pcid/src/pci/mod.rs index 371b01580d..7338552f23 100644 --- a/pcid/src/pci/mod.rs +++ b/pcid/src/pci/mod.rs @@ -1,6 +1,8 @@ use std::convert::TryFrom; use std::sync::{Mutex, Once}; +use syscall::io::{Io as _, Pio}; + pub use self::bar::PciBar; pub use self::bus::{PciBus, PciBusIter}; pub use self::class::PciClass; @@ -71,13 +73,8 @@ impl CfgAccess for Pci { let offset = u8::try_from(offset).expect("offset too large for PCI 3.0 configuration space"); let address = Self::address(bus, dev, func, offset); - let value: u32; - llvm_asm!("mov dx, 0xCF8 - out dx, eax - mov dx, 0xCFC - in eax, dx" - : "={eax}"(value) : "{eax}"(address) : "dx" : "intel", "volatile"); - value + Pio::::new(0xCF8).write(address); + Pio::::new(0xCFC).read() } unsafe fn read(&self, bus: u8, dev: u8, func: u8, offset: u16) -> u32 { @@ -91,12 +88,8 @@ impl CfgAccess for Pci { let offset = u8::try_from(offset).expect("offset too large for PCI 3.0 configuration space"); let address = Self::address(bus, dev, func, offset); - llvm_asm!("mov dx, 0xCF8 - out dx, eax" - : : "{eax}"(address) : "dx" : "intel", "volatile"); - llvm_asm!("mov dx, 0xCFC - out dx, eax" - : : "{eax}"(value) : "dx" : "intel", "volatile"); + Pio::::new(0xCF8).write(address); + Pio::::new(0xCFC).write(value); } unsafe fn write(&self, bus: u8, dev: u8, func: u8, offset: u16, value: u32) { let _guard = self.lock.lock().unwrap(); diff --git a/ps2d/src/main.rs b/ps2d/src/main.rs index 848e66fffe..934efb5631 100644 --- a/ps2d/src/main.rs +++ b/ps2d/src/main.rs @@ -1,4 +1,4 @@ -#![feature(llvm_asm)] +#![feature(asm_const)] #[macro_use] extern crate bitflags; @@ -20,7 +20,7 @@ mod keymap; mod state; mod vm; -fn daemon(daemon: syscall::Daemon) -> ! { +fn daemon(daemon: syscall::Daemon) -> core::convert::Infallible { unsafe { iopl(3).expect("ps2d: failed to get I/O permission"); } diff --git a/ps2d/src/vm.rs b/ps2d/src/vm.rs index b067a8f41e..97a014e7d5 100644 --- a/ps2d/src/vm.rs +++ b/ps2d/src/vm.rs @@ -4,6 +4,8 @@ // As well as the Linux implementation here: // http://elixir.free-electrons.com/linux/v4.1/source/drivers/input/mouse/vmmouse.c +use core::arch::global_asm; + const MAGIC: u32 = 0x564D5868; const PORT: u16 = 0x5658; @@ -24,36 +26,46 @@ pub const LEFT_BUTTON: u32 = 0x20; pub const RIGHT_BUTTON: u32 = 0x10; pub const MIDDLE_BUTTON: u32 = 0x08; +global_asm!(" + .globl cmd_inner +cmd_inner: + mov r8, rdi + + // 2nd argument `cmd` as per sysv64. + mov ecx, esi + // 3rd argument `arg` as per sysv64. + mov ebx, edx + + mov eax, {MAGIC} + mov dx, {PORT} + + in eax, dx + + xchg rdi, r8 + + mov DWORD PTR [rdi + 0x00], eax + mov DWORD PTR [rdi + 0x04], ebx + mov DWORD PTR [rdi + 0x08], ecx + mov DWORD PTR [rdi + 0x0C], edx + mov DWORD PTR [rdi + 0x10], esi + mov DWORD PTR [rdi + 0x14], r8d +", + MAGIC = const MAGIC, + PORT = const PORT, +); + #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] pub unsafe fn cmd(cmd: u32, arg: u32) -> (u32, u32, u32, u32, u32, u32) { - let a: u32; - let b: u32; - let c: u32; - let d: u32; - let si: u32; - let di: u32; + extern "sysv64" { + fn cmd_inner(array_ptr: *mut u32, cmd: u32, arg: u32); + } - llvm_asm!( - "in eax, dx" - : - "={eax}"(a), - "={ebx}"(b), - "={ecx}"(c), - "={edx}"(d), - "={esi}"(si), - "={edi}"(di) - : - "{eax}"(MAGIC), - "{ebx}"(arg), - "{ecx}"(cmd), - "{dx}"(PORT) - : - "memory" - : - "intel", "volatile" - ); + let mut array = [0_u32; 6]; - (a, b, c, d, si, di) + cmd_inner(array.as_mut_ptr(), cmd, arg); + + let [a, b, c, d, e, f] = array; + (a, b, c, d, e, f) } pub fn enable(relative: bool) -> bool { diff --git a/rtl8168d/src/device.rs b/rtl8168d/src/device.rs index 0773f012e7..6e3d0991dc 100644 --- a/rtl8168d/src/device.rs +++ b/rtl8168d/src/device.rs @@ -285,7 +285,7 @@ impl Rtl8168 { println!(" - Reset"); self.regs.cmd.writef(1 << 4, true); while self.regs.cmd.readf(1 << 4) { - llvm_asm!("pause"); + core::hint::spin_loop(); } // Set up rx buffers diff --git a/rtl8168d/src/main.rs b/rtl8168d/src/main.rs index e81764aa36..d2d3f34ebf 100644 --- a/rtl8168d/src/main.rs +++ b/rtl8168d/src/main.rs @@ -1,5 +1,3 @@ -#![feature(llvm_asm)] - extern crate event; extern crate netutils; extern crate syscall; @@ -200,5 +198,5 @@ fn main() { let _ = syscall::physunmap(address); } process::exit(0); - }).expect("rtl8168d: failed to create daemon") + }).expect("rtl8168d: failed to create daemon"); } diff --git a/vesad/src/main.rs b/vesad/src/main.rs index 8962a80dcc..4df6644003 100644 --- a/vesad/src/main.rs +++ b/vesad/src/main.rs @@ -1,5 +1,4 @@ #![feature(allocator_api)] -#![feature(llvm_asm)] extern crate orbclient; extern crate syscall; diff --git a/vesad/src/primitive.rs b/vesad/src/primitive.rs index 519fd3ac94..3879c4f99b 100644 --- a/vesad/src/primitive.rs +++ b/vesad/src/primitive.rs @@ -1,47 +1,38 @@ +use core::arch::asm; + #[cfg(target_arch = "x86_64")] #[inline(always)] -#[cold] pub unsafe fn fast_copy(dst: *mut u8, src: *const u8, len: usize) { - llvm_asm!("cld - rep movsb" - : - : "{rdi}"(dst as usize), "{rsi}"(src as usize), "{rcx}"(len) - : "cc", "memory", "rdi", "rsi", "rcx" - : "intel", "volatile"); + // direction flag must always be cleared, as per the System V ABI + asm!("rep movsb", + inout("rdi") dst as usize => _, inout("rsi") src as usize => _, inout("rcx") len => _, + options(nostack, preserves_flags), + ); } #[cfg(target_arch = "x86_64")] #[inline(always)] -#[cold] pub unsafe fn fast_copy64(dst: *mut u64, src: *const u64, len: usize) { - llvm_asm!("cld - rep movsq" - : - : "{rdi}"(dst as usize), "{rsi}"(src as usize), "{rcx}"(len) - : "cc", "memory", "rdi", "rsi", "rcx" - : "intel", "volatile"); + asm!("rep movsq", + inout("rdi") dst as usize => _, inout("rsi") src as usize => _, inout("rcx") len => _, + options(nostack, preserves_flags), + ); } #[cfg(target_arch = "x86_64")] #[inline(always)] -#[cold] pub unsafe fn fast_set32(dst: *mut u32, src: u32, len: usize) { - llvm_asm!("cld - rep stosd" - : - : "{rdi}"(dst as usize), "{eax}"(src), "{rcx}"(len) - : "cc", "memory", "rdi", "rcx" - : "intel", "volatile"); + asm!("rep stosd", + inout("rdi") dst as usize => _, in("eax") src, inout("rcx") len => _, + options(nostack, preserves_flags), + ); } #[cfg(target_arch = "x86_64")] #[inline(always)] -#[cold] pub unsafe fn fast_set64(dst: *mut u64, src: u64, len: usize) { - llvm_asm!("cld - rep stosq" - : - : "{rdi}"(dst as usize), "{rax}"(src), "{rcx}"(len) - : "cc", "memory", "rdi", "rcx" - : "intel", "volatile"); + asm!("rep stosq", + inout("rdi") dst as usize => _, in("rax") src, inout("rcx") len => _, + options(nostack, preserves_flags), + ); } From 07f10fb4d12ca724ba4bd69279bd91099024e850 Mon Sep 17 00:00:00 2001 From: 4lDO2 <4lDO2@protonmail.com> Date: Thu, 24 Mar 2022 16:06:00 +0100 Subject: [PATCH 2/2] Update redox_syscall to v0.2.12 --- Cargo.lock | 7 ++++--- Cargo.toml | 1 - acpid/Cargo.toml | 2 +- ahcid/Cargo.toml | 2 +- alxd/Cargo.toml | 2 +- bgad/Cargo.toml | 2 +- e1000d/Cargo.toml | 2 +- ihdad/Cargo.toml | 2 +- ixgbed/Cargo.toml | 2 +- nvmed/Cargo.toml | 2 +- pcid/Cargo.toml | 2 +- pcspkrd/Cargo.toml | 2 +- ps2d/Cargo.toml | 2 +- rtl8168d/Cargo.toml | 2 +- usbscsid/Cargo.toml | 2 +- vboxd/Cargo.toml | 2 +- vesad/Cargo.toml | 2 +- xhcid/Cargo.toml | 2 +- 18 files changed, 20 insertions(+), 20 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 381269b486..2477590f78 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -547,9 +547,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.14" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8" dependencies = [ "cfg-if 1.0.0", ] @@ -1101,7 +1101,8 @@ dependencies = [ [[package]] name = "redox_syscall" version = "0.2.12" -source = "git+https://gitlab.redox-os.org/4lDO2/syscall.git?branch=update-toolchain-2022#94de991da2a75c45be0b73b18adc26522fb6f4a8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae183fc1b06c149f0c1793e1eb447c8b04bfe46d48e9e48bfb8d2d7ed64ecf0" dependencies = [ "bitflags", ] diff --git a/Cargo.toml b/Cargo.toml index c5c315d790..8078a99e90 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,4 +25,3 @@ members = [ mio = { git = "https://gitlab.redox-os.org/redox-os/mio.git", branch = "redox-unix" } net2 = { git = "https://gitlab.redox-os.org/redox-os/net2-rs.git", branch = "master" } orbclient = { git = "https://gitlab.redox-os.org/redox-os/orbclient.git", version = "0.3.28" } -redox_syscall = { git = "https://gitlab.redox-os.org/4lDO2/syscall.git", branch = "update-toolchain-2022" } diff --git a/acpid/Cargo.toml b/acpid/Cargo.toml index 12e879c397..ecd8ad11b4 100644 --- a/acpid/Cargo.toml +++ b/acpid/Cargo.toml @@ -13,5 +13,5 @@ num-traits = "0.2" parking_lot = "0.11.1" plain = "0.2.3" redox-log = "0.1.1" -redox_syscall = "0.2.9" +redox_syscall = "0.2.12" thiserror = "1" diff --git a/ahcid/Cargo.toml b/ahcid/Cargo.toml index d39ade6572..74f11ce48a 100644 --- a/ahcid/Cargo.toml +++ b/ahcid/Cargo.toml @@ -9,5 +9,5 @@ byteorder = "1.2" log = "0.4" partitionlib = { git = "https://gitlab.redox-os.org/redox-os/partitionlib.git" } redox-log = "0.1" -redox_syscall = "0.2.9" +redox_syscall = "0.2.12" block-io-wrapper = { path = "../block-io-wrapper" } diff --git a/alxd/Cargo.toml b/alxd/Cargo.toml index 08d67ee31e..89c08b7ff9 100644 --- a/alxd/Cargo.toml +++ b/alxd/Cargo.toml @@ -7,4 +7,4 @@ edition = "2018" bitflags = "1" netutils = { git = "https://gitlab.redox-os.org/redox-os/netutils.git", branch = "redox-unix" } redox_event = { git = "https://gitlab.redox-os.org/redox-os/event.git" } -redox_syscall = "0.2.9" +redox_syscall = "0.2.12" diff --git a/bgad/Cargo.toml b/bgad/Cargo.toml index 6f93cf78e3..8dd06e8520 100644 --- a/bgad/Cargo.toml +++ b/bgad/Cargo.toml @@ -5,4 +5,4 @@ edition = "2018" [dependencies] orbclient = "0.3.27" -redox_syscall = "0.2.9" +redox_syscall = "0.2.12" diff --git a/e1000d/Cargo.toml b/e1000d/Cargo.toml index a7f17d77d5..4a1a005d01 100644 --- a/e1000d/Cargo.toml +++ b/e1000d/Cargo.toml @@ -7,4 +7,4 @@ edition = "2018" bitflags = "1" netutils = { git = "https://gitlab.redox-os.org/redox-os/netutils.git", branch = "redox-unix" } redox_event = { git = "https://gitlab.redox-os.org/redox-os/event.git" } -redox_syscall = "0.2.9" +redox_syscall = "0.2.12" diff --git a/ihdad/Cargo.toml b/ihdad/Cargo.toml index e96fae0740..c38f53e167 100755 --- a/ihdad/Cargo.toml +++ b/ihdad/Cargo.toml @@ -8,5 +8,5 @@ bitflags = "1" log = "0.4" redox-log = "0.1" redox_event = { git = "https://gitlab.redox-os.org/redox-os/event.git" } -redox_syscall = "0.2.9" +redox_syscall = "0.2.12" spin = "0.9" diff --git a/ixgbed/Cargo.toml b/ixgbed/Cargo.toml index 3784e2373c..5833964c71 100644 --- a/ixgbed/Cargo.toml +++ b/ixgbed/Cargo.toml @@ -6,4 +6,4 @@ version = "1.0.0" bitflags = "1.0" netutils = { git = "https://gitlab.redox-os.org/redox-os/netutils.git", branch = "redox-unix" } redox_event = { git = "https://gitlab.redox-os.org/redox-os/event.git" } -redox_syscall = "0.2.9" +redox_syscall = "0.2.12" diff --git a/nvmed/Cargo.toml b/nvmed/Cargo.toml index c5ce4a641f..fed14c7a00 100644 --- a/nvmed/Cargo.toml +++ b/nvmed/Cargo.toml @@ -10,7 +10,7 @@ crossbeam-channel = "0.4" futures = "0.3" log = "0.4" redox-log = "0.1" -redox_syscall = "0.2.9" +redox_syscall = "0.2.12" partitionlib = { git = "https://gitlab.redox-os.org/redox-os/partitionlib.git" } smallvec = "1" block-io-wrapper = { path = "../block-io-wrapper" } diff --git a/pcid/Cargo.toml b/pcid/Cargo.toml index e6259a0fac..3be59750c2 100644 --- a/pcid/Cargo.toml +++ b/pcid/Cargo.toml @@ -20,7 +20,7 @@ log = "0.4" paw = "1.0" plain = "0.2" redox-log = "0.1" -redox_syscall = "0.2.9" +redox_syscall = "0.2.12" serde = { version = "1", features = ["derive"] } serde_json = "1" smallvec = "1" diff --git a/pcspkrd/Cargo.toml b/pcspkrd/Cargo.toml index 649b11350f..cbe70ea730 100644 --- a/pcspkrd/Cargo.toml +++ b/pcspkrd/Cargo.toml @@ -5,4 +5,4 @@ authors = ["Tibor Nagy "] edition = "2018" [dependencies] -redox_syscall = "0.2.9" +redox_syscall = "0.2.12" diff --git a/ps2d/Cargo.toml b/ps2d/Cargo.toml index fa34ed3874..c9192a3972 100644 --- a/ps2d/Cargo.toml +++ b/ps2d/Cargo.toml @@ -6,4 +6,4 @@ edition = "2018" [dependencies] bitflags = "1" orbclient = "0.3.27" -redox_syscall = "0.2.11" +redox_syscall = "0.2.12" diff --git a/rtl8168d/Cargo.toml b/rtl8168d/Cargo.toml index c10aace849..6687ced3ed 100644 --- a/rtl8168d/Cargo.toml +++ b/rtl8168d/Cargo.toml @@ -7,4 +7,4 @@ edition = "2018" bitflags = "1" netutils = { git = "https://gitlab.redox-os.org/redox-os/netutils.git", branch = "redox-unix" } redox_event = { git = "https://gitlab.redox-os.org/redox-os/event.git" } -redox_syscall = "0.2.11" +redox_syscall = "0.2.12" diff --git a/usbscsid/Cargo.toml b/usbscsid/Cargo.toml index 22a25a1955..a5a5eff5c3 100644 --- a/usbscsid/Cargo.toml +++ b/usbscsid/Cargo.toml @@ -10,6 +10,6 @@ license = "MIT" [dependencies] base64 = "0.11" # Only for debugging plain = "0.2" -redox_syscall = "0.2.9" +redox_syscall = "0.2.12" thiserror = "1" xhcid = { path = "../xhcid" } diff --git a/vboxd/Cargo.toml b/vboxd/Cargo.toml index 454e60723b..774fe4fca9 100644 --- a/vboxd/Cargo.toml +++ b/vboxd/Cargo.toml @@ -6,4 +6,4 @@ edition = "2018" [dependencies] orbclient = "0.3.27" redox_event = { git = "https://gitlab.redox-os.org/redox-os/event.git" } -redox_syscall = "0.2.9" +redox_syscall = "0.2.12" diff --git a/vesad/Cargo.toml b/vesad/Cargo.toml index 3e52d37652..49af3ac6b3 100644 --- a/vesad/Cargo.toml +++ b/vesad/Cargo.toml @@ -7,7 +7,7 @@ edition = "2018" orbclient = "0.3.27" ransid = "0.4" rusttype = { version = "0.2", optional = true } -redox_syscall = "0.2.9" +redox_syscall = "0.2.12" [features] default = [] diff --git a/xhcid/Cargo.toml b/xhcid/Cargo.toml index ba92d64a50..026d4b0c9e 100644 --- a/xhcid/Cargo.toml +++ b/xhcid/Cargo.toml @@ -21,7 +21,7 @@ lazy_static = "1.4" log = "0.4" redox_event = { git = "https://gitlab.redox-os.org/redox-os/event.git" } redox-log = "0.1" -redox_syscall = "0.2.9" +redox_syscall = "0.2.12" serde = { version = "1", features = ["derive"] } serde_json = "1" smallvec = { version = "1", features = ["serde"] }