diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index c03f8fdd..4ffd3cda 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -54,4 +54,4 @@ jobs: arch: ${{ matrix.arch }} - name: Clippy - run: cargo clippy --target ${{ matrix.target }} -F qemu -- -D warnings + run: cargo clippy --target ${{ matrix.target }} -F qemu -- -D warnings -A unused diff --git a/Cargo.lock b/Cargo.lock index 68cdd09c..114e0623 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -18,7 +18,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" dependencies = [ "cpp_demangle", - "gimli", + "gimli 0.32.3", "rustc-demangle", ] @@ -95,12 +95,12 @@ dependencies = [ [[package]] name = "arm-gic-driver" -version = "0.16.3" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d09177e7ffff6c78aee3db4816fb478255c5d579f916d72f914c243b797e68e" +checksum = "e30c6a0ffd23095c69f48afd996eb51156b2511b52a01bdbb0b418fdfd1d458c" dependencies = [ "aarch64-cpu", - "bitflags 2.10.0", + "bitflags 2.11.0", "enum_dispatch", "log", "paste", @@ -151,7 +151,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -205,7 +205,7 @@ checksum = "bf9566516f5d799b2f791a6ec5af57eec87d17624346f7c876fa006b922c99e6" dependencies = [ "addr2line", "cfg-if", - "gimli", + "gimli 0.32.3", "log", "paste", "spin 0.10.0", @@ -237,7 +237,7 @@ dependencies = [ "axconfig-gen", "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -428,7 +428,7 @@ dependencies = [ "axio", "axpoll", "axsync", - "bitflags 2.10.0", + "bitflags 2.11.0", "cfg-if", "chrono", "intrusive-collections", @@ -449,7 +449,7 @@ checksum = "bf0d501c182116576111dc04ba89f48fea639b7080e0455393be5dbc41cfacef" dependencies = [ "axerrno 0.2.2", "axpoll", - "bitflags 2.10.0", + "bitflags 2.11.0", "cfg-if", "hashbrown 0.15.5", "inherit-methods-macro", @@ -551,13 +551,12 @@ dependencies = [ "axpoll", "axsync", "axtask", - "bitflags 2.10.0", + "bitflags 2.11.0", "cfg-if", "enum_dispatch", "event-listener", "hashbrown 0.16.1", "lazy_static", - "lazyinit", "log", "ringbuf", "spin 0.10.0", @@ -571,7 +570,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f972b5688b51e8865a33f5282a8e481bfa3f1d1065e0877f8e33532a90680370" dependencies = [ "axplat-macros", - "bitflags 2.10.0", + "bitflags 2.11.0", "const-str", "crate_interface 0.3.0", "handler_table", @@ -639,7 +638,7 @@ checksum = "f90dfaee06a112fe4f810c60af1a86bc080af2172185b491cacc307b84dff748" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -689,7 +688,7 @@ dependencies = [ "axconfig-macros", "axcpu", "axplat", - "bitflags 2.10.0", + "bitflags 2.11.0", "heapless 0.9.2", "int_ratio", "kspin", @@ -707,11 +706,11 @@ dependencies = [ [[package]] name = "axpoll" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3970d53be0955ea3e995b9ef4ec10778b061ee89671395c74e6ceb8e0798602" +checksum = "36b92f85c6903350f5146216ccb7d7a7e7b4dbd6f5927a1279db03ba52a53ae7" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "linux-raw-sys", "spin 0.10.0", ] @@ -795,7 +794,7 @@ version = "0.72.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "cexpr", "clang-sys", "itertools", @@ -806,7 +805,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -829,7 +828,7 @@ checksum = "d3ca019570363e800b05ad4fd890734f28ac7b72f563ad8a35079efb793616f8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -840,9 +839,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" [[package]] name = "bitmap-allocator" @@ -882,7 +881,7 @@ checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -908,9 +907,9 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "chrono" -version = "0.4.43" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "num-traits", ] @@ -928,9 +927,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.58" +version = "4.5.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63be97961acde393029492ce0be7a1af7e323e6bae9511ebfac33751be5e6806" +checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" dependencies = [ "clap_builder", "clap_derive", @@ -938,9 +937,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.58" +version = "4.5.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f13174bda5dfd69d7e947827e5af4b0f2f94a4a3ee92912fba07a66150f21e2" +checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" dependencies = [ "anstream", "anstyle", @@ -957,7 +956,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -995,9 +994,9 @@ checksum = "18f12cc9948ed9604230cdddc7c86e270f9401ccbe3c2e98a4378c5e7632212f" [[package]] name = "const_fn" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f8a2ca5ac02d09563609681103aada9e1777d54fc57a5acd7a41404f9c93b6e" +checksum = "413d67b29ef1021b4d60f4aa1e925ca031751e213832b4b1d588fae623c05c60" [[package]] name = "convert_case" @@ -1034,7 +1033,7 @@ checksum = "70272a03a2cef15589bac05d3d15c023752f5f8f2da8be977d983a9d9e6250fb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -1045,7 +1044,7 @@ checksum = "51e5c7109dea31fc91ab584e99752baa997f76d46e49bab0a17b5e9679248df7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -1077,7 +1076,7 @@ checksum = "9a49d5cd78b1c748184d41407b14a58af8403c13328ff2b9f49b0a418c24e3ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -1144,7 +1143,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -1175,7 +1174,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.115", + "syn 2.0.117", "unicode-xid", ] @@ -1206,7 +1205,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -1217,7 +1216,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -1264,7 +1263,7 @@ checksum = "c89ddc8cd109db4196b4751cce7fc34380d55f095fcd5d634c708485fe4c820f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -1302,38 +1301,38 @@ checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "futures-core" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" [[package]] name = "futures-macro" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] name = "futures-task" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" [[package]] name = "futures-util" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" dependencies = [ "futures-core", "futures-macro", "futures-task", "pin-project-lite", - "pin-utils", + "slab", ] [[package]] @@ -1345,6 +1344,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "gimli" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf7f043f89559805f8c7cacc432749b2fa0d0a0a9ee46ce47164ed5ba7f126c" + [[package]] name = "glob" version = "0.3.3" @@ -1495,7 +1500,7 @@ checksum = "3f1495ab3ea0a7cee31d14901a858a732e282c139b3d17d3f935aebeeefcc34a" dependencies = [ "xmas-elf", "zero", - "zerocopy 0.8.39", + "zerocopy 0.8.40", ] [[package]] @@ -1572,7 +1577,7 @@ checksum = "e5cec0ec4228b4853bb129c84dbf093a27e6c7a20526da046defc334a1b017f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -1603,7 +1608,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c9f0d275c70310e2a9d2fc23250c5ac826a73fa828a5f256401f85c5c554283" dependencies = [ "bit_field", - "bitflags 2.10.0", + "bitflags 2.11.0", ] [[package]] @@ -1714,7 +1719,7 @@ checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -1750,7 +1755,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -1760,7 +1765,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9a63b9b86d32f64c3874a90936939281d045ef1751d0aca3d82d5e4e06b2ef" dependencies = [ "aarch64-cpu", - "bitflags 2.10.0", + "bitflags 2.11.0", "memory_addr", "x86_64", ] @@ -1809,20 +1814,14 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "portable-atomic" @@ -1846,7 +1845,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -1868,7 +1867,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -1888,16 +1887,16 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", "version_check", "yansi", ] [[package]] name = "quote" -version = "1.0.44" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -1932,7 +1931,7 @@ version = "11.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", ] [[package]] @@ -1960,9 +1959,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "ringbuf" @@ -2008,7 +2007,7 @@ checksum = "e8c4aa1ea1af6dcc83a61be12e8189f9b293c3ba5a487778a4cd89fb060fdbbc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -2019,7 +2018,7 @@ checksum = "d47d1fb716349455b8e5e3ebbf1eff95344dbdf9f782a4e1359d2f16f51e3dce" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -2202,7 +2201,7 @@ dependencies = [ "axruntime", "axsync", "axtask", - "bitflags 2.10.0", + "bitflags 2.11.0", "bitmaps", "bytemuck", "cfg-if", @@ -2212,7 +2211,7 @@ dependencies = [ "event-listener", "extern-trait", "flatten_objects", - "gimli", + "gimli 0.33.0", "hashbrown 0.16.1", "indoc", "inherit-methods-macro", @@ -2244,7 +2243,7 @@ dependencies = [ "weak-map", "x86", "xmas-elf", - "zerocopy 0.8.39", + "zerocopy 0.8.40", ] [[package]] @@ -2265,7 +2264,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f72adf2bff529986c36c6b3920332afbefd0f6f6178855347f1bac15f4304d37" dependencies = [ "axcpu", - "bitflags 2.10.0", + "bitflags 2.11.0", "cfg-if", "derive_more", "event-listener", @@ -2347,7 +2346,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -2376,9 +2375,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.115" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e614ed320ac28113fa64972c4262d5dbc89deacdfd00c34a3e4cea073243c12" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -2408,7 +2407,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -2459,7 +2458,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94d293f51425981fdb1b766beae254dbb711a17e8c4b549dc69b9b7ee0d478d5" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "rustversion", "x86", ] @@ -2475,9 +2474,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-segmentation" @@ -2515,7 +2514,7 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6a39747311dabb3d37807037ed1c3c38d39f99198d091b5b79ecd5c8d82f799" dependencies = [ - "bitflags 2.10.0", + "bitflags 2.11.0", "enumn", "log", "zerocopy 0.7.35", @@ -2544,7 +2543,7 @@ checksum = "65c67ce935f3b4329e473ecaff7bab444fcdc3d1d19f8bae61fabfa90b84f93e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] @@ -2608,7 +2607,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7841fa0098ceb15c567d93d3fae292c49e10a7662b4936d5f6a9728594555ba" dependencies = [ "bit_field", - "bitflags 2.10.0", + "bitflags 2.11.0", "const_fn", "rustversion", "volatile 0.4.6", @@ -2657,11 +2656,11 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.39" +version = "0.8.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +checksum = "a789c6e490b576db9f7e6b6d661bcc9799f7c0ac8352f56ea20193b2681532e5" dependencies = [ - "zerocopy-derive 0.8.39", + "zerocopy-derive 0.8.40", ] [[package]] @@ -2672,16 +2671,16 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] [[package]] name = "zerocopy-derive" -version = "0.8.39" +version = "0.8.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +checksum = "f65c489a7071a749c849713807783f70672b28094011623e200cb86dcb835953" dependencies = [ "proc-macro2", "quote", - "syn 2.0.115", + "syn 2.0.117", ] diff --git a/Cargo.toml b/Cargo.toml index c4baa71d..ed8a3b08 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,19 +19,7 @@ homepage = "https://github.com/Starry-OS" repository = "https://github.com/Starry-OS/StarryOS" [workspace.dependencies] -axfeat = { path = "arceos/api/axfeat", features = [ - "alloc-slab", - "fp-simd", - "fs-ext4", - "irq", - "multitask", - "net", - "page-alloc-4g", - "rtc", - "sched-rr", - "task-ext", - "uspace", -] } +axfeat = { path = "arceos/api/axfeat" } axalloc = { path = "arceos/modules/axalloc" } axconfig = { path = "arceos/modules/axconfig" } @@ -61,16 +49,14 @@ repository.workspace = true [features] default = [] qemu = [ + "axfeat/defplat", + "axfeat/bus-pci", + "axfeat/display", - "axfeat/input", - "starry-kernel/input", - "axfeat/vsock", + "starry-kernel/input", "starry-kernel/vsock", - "axfeat/defplat", - "axfeat/bus-pci", - # auxilary features "axfeat/fs-times", "starry-kernel/dev-log", diff --git a/arceos b/arceos index bf51dc79..bb487727 160000 --- a/arceos +++ b/arceos @@ -1 +1 @@ -Subproject commit bf51dc794831c8e6aed8719a507311bbf8a45cf0 +Subproject commit bb487727b74efbfea4ea202f7fdacd32b8065de7 diff --git a/kernel/Cargo.toml b/kernel/Cargo.toml index 367b0e66..41915db5 100644 --- a/kernel/Cargo.toml +++ b/kernel/Cargo.toml @@ -8,17 +8,30 @@ homepage.workspace = true repository.workspace = true [features] -input = ["dep:axinput"] -memtrack = ["axfeat/dwarf", "axalloc/tracking", "dep:gimli"] -vsock = ["axnet/vsock"] dev-log = [] +input = ["dep:axinput", "axfeat/input"] +memtrack = ["axfeat/dwarf", "axalloc/tracking", "dep:gimli"] +vsock = ["axfeat/vsock"] [dependencies] +axfeat = { workspace = true, features = [ + "alloc-slab", + "fp-simd", + "fs-ext4", + "irq", + "multitask", + "net", + "page-alloc-4g", + "rtc", + "sched-rr", + "task-ext", + "uspace", +] } + axalloc.workspace = true axconfig.workspace = true axdisplay.workspace = true axdriver.workspace = true -axfeat.workspace = true axfs.workspace = true axhal.workspace = true axinput = { workspace = true, optional = true } diff --git a/kernel/src/file/mod.rs b/kernel/src/file/mod.rs index 33d0c4df..27db6c6d 100644 --- a/kernel/src/file/mod.rs +++ b/kernel/src/file/mod.rs @@ -21,7 +21,7 @@ use linux_raw_sys::general::{RLIMIT_NOFILE, stat, statx, statx_timestamp}; use spin::RwLock; pub use self::{ - fs::{Directory, File, ResolveAtResult, metadata_to_kstat, resolve_at, with_fs}, + fs::{Directory, File, resolve_at, with_fs}, net::Socket, pidfd::PidFd, pipe::Pipe, diff --git a/kernel/src/file/net.rs b/kernel/src/file/net.rs index 5adf2124..6fa58fa2 100644 --- a/kernel/src/file/net.rs +++ b/kernel/src/file/net.rs @@ -3,7 +3,7 @@ use core::{ffi::c_int, ops::Deref, task::Context}; use axerrno::{AxError, AxResult}; use axnet::{ - SocketOps, + RecvOptions, SendOptions, Socket as SocketInner, SocketOps, options::{Configurable, GetSocketOption, SetSocketOption}, }; use axpoll::{IoEvents, Pollable}; @@ -12,10 +12,10 @@ use linux_raw_sys::general::S_IFSOCK; use super::{FileLike, Kstat}; use crate::file::{IoDst, IoSrc, get_file_like}; -pub struct Socket(pub axnet::Socket); +pub struct Socket(pub SocketInner); impl Deref for Socket { - type Target = axnet::Socket; + type Target = SocketInner; fn deref(&self) -> &Self::Target { &self.0 @@ -24,11 +24,11 @@ impl Deref for Socket { impl FileLike for Socket { fn read(&self, dst: &mut IoDst) -> AxResult { - self.recv(dst, axnet::RecvOptions::default()) + self.recv(dst, RecvOptions::default()) } fn write(&self, src: &mut IoSrc) -> AxResult { - self.send(src, axnet::SendOptions::default()) + self.send(src, SendOptions::default()) } fn stat(&self) -> AxResult { diff --git a/kernel/src/lib.rs b/kernel/src/lib.rs index d84e27c4..c2e11bc3 100644 --- a/kernel/src/lib.rs +++ b/kernel/src/lib.rs @@ -13,11 +13,12 @@ extern crate axruntime; #[macro_use] extern crate axlog; -pub mod config; pub mod entry; -pub mod file; -pub mod mm; -pub mod pseudofs; -pub mod syscall; -pub mod task; -pub mod time; + +mod config; +mod file; +mod mm; +mod pseudofs; +mod syscall; +mod task; +mod time; diff --git a/kernel/src/syscall/net/socket.rs b/kernel/src/syscall/net/socket.rs index 26ba477f..26a77fd0 100644 --- a/kernel/src/syscall/net/socket.rs +++ b/kernel/src/syscall/net/socket.rs @@ -2,7 +2,7 @@ use axerrno::{AxError, AxResult, LinuxError}; #[cfg(feature = "vsock")] use axnet::vsock::{VsockSocket, VsockStreamTransport}; use axnet::{ - Shutdown, SocketAddrEx, SocketOps, + Shutdown, Socket as SocketInner, SocketAddrEx, SocketOps, tcp::TcpSocket, udp::UdpSocket, unix::{DgramTransport, StreamTransport, UnixSocket}, @@ -33,19 +33,19 @@ pub fn sys_socket(domain: u32, raw_ty: u32, proto: u32) -> AxResult { if proto != 0 && proto != IPPROTO_TCP as _ { return Err(AxError::from(LinuxError::EPROTONOSUPPORT)); } - axnet::Socket::Tcp(TcpSocket::new()) + SocketInner::Tcp(TcpSocket::new()) } (AF_INET, SOCK_DGRAM) => { if proto != 0 && proto != IPPROTO_UDP as _ { return Err(AxError::from(LinuxError::EPROTONOSUPPORT)); } - axnet::Socket::Udp(UdpSocket::new()) + SocketInner::Udp(UdpSocket::new()) } - (AF_UNIX, SOCK_STREAM) => axnet::Socket::Unix(UnixSocket::new(StreamTransport::new(pid))), - (AF_UNIX, SOCK_DGRAM) => axnet::Socket::Unix(UnixSocket::new(DgramTransport::new(pid))), + (AF_UNIX, SOCK_STREAM) => SocketInner::Unix(UnixSocket::new(StreamTransport::new(pid))), + (AF_UNIX, SOCK_DGRAM) => SocketInner::Unix(UnixSocket::new(DgramTransport::new(pid))), #[cfg(feature = "vsock")] (AF_VSOCK, SOCK_STREAM) => { - axnet::Socket::Vsock(VsockSocket::new(VsockStreamTransport::new())) + SocketInner::Vsock(VsockSocket::new(VsockStreamTransport::new())) } (AF_INET, _) | (AF_UNIX, _) | (AF_VSOCK, _) => { warn!("Unsupported socket type: domain: {domain}, ty: {ty}"); @@ -177,8 +177,8 @@ pub fn sys_socketpair( return Err(AxError::from(LinuxError::ESOCKTNOSUPPORT)); } }; - let sock1 = Socket(axnet::Socket::Unix(sock1)); - let sock2 = Socket(axnet::Socket::Unix(sock2)); + let sock1 = Socket(SocketInner::Unix(sock1)); + let sock2 = Socket(SocketInner::Unix(sock2)); if raw_ty & O_NONBLOCK != 0 { sock1.set_nonblocking(true)?;