Sfoglia il codice sorgente

temporarily set dataflow to empty

Heinz 7 mesi fa
parent
commit
a62b1b1d96
2 ha cambiato i file con 101 aggiunte e 18 eliminazioni
  1. 87 7
      Cargo.lock
  2. 14 11
      src/kernel/user/dataflow.rs

+ 87 - 7
Cargo.lock

@@ -18,10 +18,13 @@ name = "arch"
 version = "0.1.0"
 dependencies = [
  "bitflags",
- "buddy_allocator",
  "cfg-if",
  "eonix_hal_traits",
  "eonix_mm",
+ "fdt",
+ "riscv",
+ "sbi",
+ "spin",
 ]
 
 [[package]]
@@ -69,18 +72,32 @@ version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
+[[package]]
+name = "critical-section"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b"
+
 [[package]]
 name = "either"
 version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
 
+[[package]]
+name = "embedded-hal"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "361a90feb7004eca4019fb28352a9465666b24f840f5c3cddf0ff13920590b89"
+
 [[package]]
 name = "eonix_hal"
 version = "0.1.0"
 dependencies = [
  "acpi",
  "arch",
+ "bitflags",
+ "buddy_allocator",
  "cfg-if",
  "eonix_hal_macros",
  "eonix_hal_traits",
@@ -88,6 +105,11 @@ dependencies = [
  "eonix_percpu",
  "eonix_preempt",
  "eonix_sync_base",
+ "fdt",
+ "intrusive_list",
+ "riscv",
+ "sbi",
+ "spin",
 ]
 
 [[package]]
@@ -211,12 +233,6 @@ dependencies = [
  "eonix_sync_rt",
 ]
 
-[[package]]
-name = "fdt"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "784a4df722dc6267a04af36895398f59d21d07dce47232adf31ec0ff2fa45e67"
-
 [[package]]
 name = "eonix_sync_base"
 version = "0.1.0"
@@ -233,6 +249,12 @@ dependencies = [
  "intrusive-collections",
 ]
 
+[[package]]
+name = "fdt"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "784a4df722dc6267a04af36895398f59d21d07dce47232adf31ec0ff2fa45e67"
+
 [[package]]
 name = "intrusive-collections"
 version = "0.9.7"
@@ -255,6 +277,16 @@ dependencies = [
  "either",
 ]
 
+[[package]]
+name = "lock_api"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
 [[package]]
 name = "log"
 version = "0.4.22"
@@ -270,6 +302,12 @@ dependencies = [
  "autocfg",
 ]
 
+[[package]]
+name = "paste"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
+
 [[package]]
 name = "pointers"
 version = "0.1.0"
@@ -296,6 +334,48 @@ dependencies = [
  "proc-macro2",
 ]
 
+[[package]]
+name = "riscv"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afa3cdbeccae4359f6839a00e8b77e5736caa200ba216caf38d24e4c16e2b586"
+dependencies = [
+ "critical-section",
+ "embedded-hal",
+ "paste",
+ "riscv-macros",
+ "riscv-pac",
+]
+
+[[package]]
+name = "riscv-macros"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8c4aa1ea1af6dcc83a61be12e8189f9b293c3ba5a487778a4cd89fb060fdbbc"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "riscv-pac"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8188909339ccc0c68cfb5a04648313f09621e8b87dc03095454f1a11f6c5d436"
+
+[[package]]
+name = "sbi"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c64a569a412de4ad7b123f429e434751d74dd7ed25654af962b93c4d1cd584e"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
 [[package]]
 name = "slab_allocator"
 version = "0.1.0"

+ 14 - 11
src/kernel/user/dataflow.rs

@@ -93,7 +93,7 @@ impl CheckedUserPointer {
 
     /// # Might Sleep
     pub fn read(&self, buffer: *mut (), total: usize) -> KResult<()> {
-        assert_preempt_enabled!("UserPointer::read");
+        /*assert_preempt_enabled!("UserPointer::read");
 
         if total > self.len {
             return Err(EINVAL);
@@ -113,9 +113,9 @@ impl CheckedUserPointer {
                 ".quad 3b",  // fix jump address
                 ".quad 0x3", // type: load
                 ".popsection",
-                inout("rcx") total => error_bytes,
-                inout("rsi") self.ptr => _,
-                inout("rdi") buffer => _,
+                //inout("rcx") total => error_bytes,
+                //inout("rsi") self.ptr => _,
+                //inout("rdi") buffer => _,
             )
         }
 
@@ -123,12 +123,13 @@ impl CheckedUserPointer {
             Err(EFAULT)
         } else {
             Ok(())
-        }
+        }*/
+        Ok(())
     }
 
     /// # Might Sleep
     pub fn write(&self, data: *mut (), total: usize) -> KResult<()> {
-        assert_preempt_enabled!("UserPointer::write");
+        /*assert_preempt_enabled!("UserPointer::write");
 
         if total > self.len {
             return Err(EINVAL);
@@ -157,14 +158,14 @@ impl CheckedUserPointer {
 
         if error_bytes != 0 {
             return Err(EFAULT);
-        }
+        }*/
 
         Ok(())
     }
 
     /// # Might Sleep
     pub fn zero(&self) -> KResult<()> {
-        assert_preempt_enabled!("CheckedUserPointer::zero");
+        /*assert_preempt_enabled!("CheckedUserPointer::zero");
 
         if self.len == 0 {
             return Ok(());
@@ -196,7 +197,8 @@ impl CheckedUserPointer {
             Err(EFAULT)
         } else {
             Ok(())
-        }
+        }*/
+        Ok(())
     }
 }
 
@@ -250,7 +252,7 @@ impl<'lt> Buffer for UserBuffer<'lt> {
 impl<'lt> UserString<'lt> {
     /// # Might Sleep
     pub fn new(ptr: *const u8) -> KResult<Self> {
-        assert_preempt_enabled!("UserString::new");
+        /*assert_preempt_enabled!("UserString::new");
 
         const MAX_LEN: usize = 4096;
         // TODO
@@ -290,7 +292,8 @@ impl<'lt> UserString<'lt> {
                 len: MAX_LEN - result,
                 _phantom: core::marker::PhantomData,
             })
-        }
+        }*/
+        Err(EFAULT)
     }
 
     pub fn as_cstr(&self) -> &'lt CStr {