Преглед на файлове

添加了pipe的系统调用 (#14)

* 添加了pipe的系统调用
Chiichen преди 1 година
родител
ревизия
fd22fbbabf
променени са 3 файла, в които са добавени 9 реда и са изтрити 3 реда
  1. 1 1
      .vscode/c_cpp_properties.json
  2. 1 1
      src/platform/allocator/dlmalloc.rs
  3. 7 1
      src/platform/dragonos/mod.rs

+ 1 - 1
.vscode/c_cpp_properties.json

@@ -15,4 +15,4 @@
         }
     ],
     "version": 4
-}
+}

+ 1 - 1
src/platform/allocator/dlmalloc.rs

@@ -65,7 +65,7 @@ pub unsafe fn free(ptr: *mut c_void) {
 
 #[cfg(not(target_os = "dragonos"))]
 pub fn new_mspace() -> usize {
-    unsafe { create_mspace(0, 0) };
+    unsafe { create_mspace(0, 0) }
 }
 
 #[cfg(target_os = "dragonos")]

+ 7 - 1
src/platform/dragonos/mod.rs

@@ -404,7 +404,13 @@ impl Pal for Sys {
 
     fn pipe2(fildes: &mut [c_int], flags: c_int) -> c_int {
         // e(unsafe { syscall!(PIPE2, fildes.as_mut_ptr(), flags) }) as c_int
-        unimplemented!()
+
+        //since dragonos hasn't implemented pipe2 system call yet. We use a seperate pipe function instead of a special type of pipe2 function
+        if flags == 0 {
+            e(unsafe { syscall!(SYS_PIPE, fildes.as_mut_ptr()) }) as c_int
+        } else {
+            unimplemented!()
+        }
     }
 
     #[cfg(target_arch = "x86_64")]