Browse Source

Add more pte functions

Jeremy Soller 6 years ago
parent
commit
f9b836d23e
2 changed files with 18 additions and 1 deletions
  1. 15 0
      src/platform/redox/pte.rs
  2. 3 1
      src/start.rs

+ 15 - 0
src/platform/redox/pte.rs

@@ -135,8 +135,17 @@ pub unsafe extern "C" fn pte_osThreadWaitForEnd(handle: pte_osThreadHandle) -> p
 }
 
 // pte_osResult pte_osThreadCancel(pte_osThreadHandle threadHandle)
+#[no_mangle]
+pub unsafe extern "C" fn pte_osThreadCancel(handle: pte_osThreadHandle) -> pte_osResult {
+    //TODO: allow cancel of thread
+    PTE_OS_OK
+}
 
 // pte_osResult pte_osThreadCheckCancel(pte_osThreadHandle threadHandle)
+#[no_mangle]
+pub unsafe extern "C" fn pte_osThreadCheckCancel(handle: pte_osThreadHandle) -> pte_osResult {
+    PTE_OS_OK
+}
 
 //void pte_osThreadSleep(unsigned int msecs)
 #[no_mangle]
@@ -288,6 +297,12 @@ pub unsafe extern "C" fn pte_osSemaphorePend(handle: pte_osSemaphoreHandle, pTim
     PTE_OS_OK
 }
 
+#[no_mangle]
+pub unsafe extern "C" fn pte_osSemaphoreCancellablePend(handle: pte_osSemaphoreHandle, pTimeout: *mut c_uint) -> pte_osResult {
+    //TODO
+    pte_osSemaphorePend(handle, pTimeout)
+}
+
 /*
 int pte_osAtomicExchange(int *ptarg, int val)
 int pte_osAtomicCompareExchange(int *pdest, int exchange, int comp)

+ 3 - 1
src/start.rs

@@ -57,12 +57,13 @@ pub unsafe extern "C" fn relibc_start(sp: &'static Stack) -> ! {
         fn main(argc: isize, argv: *mut *mut c_char, envp: *mut *mut c_char) -> c_int;
     }
 
+    // Set up argc and argv
     let argc = sp.argc();
     let argv = sp.argv();
-
     platform::inner_argv = copy_string_array(argv, argc as usize);
     platform::argv = platform::inner_argv.as_mut_ptr();
 
+    // Set up envp
     let envp = sp.envp();
     let mut len = 0;
     while ! (*envp.add(len)).is_null() {
@@ -76,6 +77,7 @@ pub unsafe extern "C" fn relibc_start(sp: &'static Stack) -> ! {
     stdio::stdout = stdio::default_stdout.get();
     stdio::stderr = stdio::default_stderr.get();
 
+    // Call init section
     _init();
 
     // Look for the neighbor functions in memory until the end