removed lib as it was out of date and discontinued
parent
efb372cb5f
commit
409a993d77
@ -1,69 +0,0 @@
|
|||||||
#include "stdlib.h"
|
|
||||||
|
|
||||||
inline void __attribute__((always_inline)) ecall() {
|
|
||||||
asm volatile("ecall");
|
|
||||||
}
|
|
||||||
|
|
||||||
// process control
|
|
||||||
int spawn(void (*child)(void*), void* args);
|
|
||||||
|
|
||||||
void sleep(int length) {
|
|
||||||
asm volatile(
|
|
||||||
"li a7, 1\n"
|
|
||||||
"ecall\n"
|
|
||||||
"mv a0, %0"
|
|
||||||
:: "r"(length)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
int join(int pid, int timeout) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int kill(int pid) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void __attribute__((noreturn)) exit(int code);
|
|
||||||
|
|
||||||
// locks
|
|
||||||
m_lock mutex_create() {
|
|
||||||
m_lock result;
|
|
||||||
asm (
|
|
||||||
"li a7, 8\n"
|
|
||||||
"ecall\n"
|
|
||||||
"mv %0, a0" :
|
|
||||||
"=r"(result)
|
|
||||||
);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
int mutex_lock(m_lock lock, int timeout) {
|
|
||||||
int result;
|
|
||||||
asm (
|
|
||||||
"li a7, 9\n"
|
|
||||||
"mv a0, %1\n"
|
|
||||||
"mv a1, %2\n"
|
|
||||||
"ecall\n"
|
|
||||||
"mv %0, a0"
|
|
||||||
: "=r"(result)
|
|
||||||
: "r"(lock), "r"(timeout)
|
|
||||||
);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void mutex_unlock(m_lock lock) {
|
|
||||||
asm (
|
|
||||||
"li a7, 10\n"
|
|
||||||
"mv a0, %0" ::
|
|
||||||
"r"(lock)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
void mutex_destroy(m_lock lock) {
|
|
||||||
asm (
|
|
||||||
"li a7, 11\n"
|
|
||||||
"mv a0, %0" ::
|
|
||||||
"r"(lock)
|
|
||||||
);
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
// process control
|
|
||||||
int spawn(void (*child)(void*), void* args);
|
|
||||||
|
|
||||||
void sleep(int length);
|
|
||||||
|
|
||||||
int join(int pid, int timeout);
|
|
||||||
|
|
||||||
int kill(int pid);
|
|
||||||
|
|
||||||
void __attribute__((noreturn)) exit(int code);
|
|
||||||
|
|
||||||
// locks
|
|
||||||
typedef int m_lock;
|
|
||||||
|
|
||||||
m_lock mutex_create();
|
|
||||||
|
|
||||||
int mutex_lock(m_lock lock, int timeout);
|
|
||||||
|
|
||||||
void mutex_unlock(m_lock lock);
|
|
||||||
|
|
||||||
void mutex_destroy(m_lock lock);
|
|
Loading…
Reference in New Issue