Add support for clock syscalls
This commit is contained in:
59
arch/mips.c
59
arch/mips.c
@@ -242,4 +242,63 @@ ssize_t recvfrom(int sockfd, const void* buf, size_t size, int flags, const void
|
||||
return rtn;
|
||||
}
|
||||
|
||||
int clock_settime(clockid_t clockid, const struct timespec *tp){
|
||||
int rtn = 0;
|
||||
asm volatile (
|
||||
"move $a0, %1\n"
|
||||
"move $a1, %2\n"
|
||||
"li $v0, 4262\n"
|
||||
"syscall\n"
|
||||
"move %0, $v0\n"
|
||||
: "=r"(rtn)
|
||||
: "r"(clockid), "r"(tp)
|
||||
: "a0", "a1", "v0"
|
||||
);
|
||||
return rtn;
|
||||
}
|
||||
int clock_gettime(clockid_t clockid, struct timespec *tp){
|
||||
int rtn = 0;
|
||||
asm volatile (
|
||||
"move $a0, %1\n"
|
||||
"move $a1, %2\n"
|
||||
"li $v0, 4263\n"
|
||||
"syscall\n"
|
||||
"move %0, $v0\n"
|
||||
: "=r"(rtn)
|
||||
: "r"(clockid), "r"(tp)
|
||||
: "a0", "a1", "v0", "memory"
|
||||
);
|
||||
return rtn;
|
||||
}
|
||||
int clock_getres(clockid_t clockid, struct timespec *res){
|
||||
int rtn = 0;
|
||||
asm volatile (
|
||||
"move $a0, %1\n"
|
||||
"move $a1, %2\n"
|
||||
"li $v0, 4264\n"
|
||||
"syscall\n"
|
||||
"move %0, $v0\n"
|
||||
: "=r"(rtn)
|
||||
: "r"(clockid), "r"(res)
|
||||
: "a0", "a1", "v0", "memory"
|
||||
);
|
||||
return rtn;
|
||||
}
|
||||
int clock_nanosleep(clockid_t clockid, int flags, const struct timespec *t, struct timespec* remain){
|
||||
int rtn = 0;
|
||||
asm volatile (
|
||||
"move $a0, %1\n"
|
||||
"move $a1, %2\n"
|
||||
"move $a2, %3\n"
|
||||
"move $a3, %4\n"
|
||||
"li $v0, 4265\n"
|
||||
"syscall\n"
|
||||
"move %0, $v0\n"
|
||||
: "=r"(rtn)
|
||||
: "r"(clockid), "r"(flags), "r"(t), "r"(remain)
|
||||
: "a0", "a1", "a2", "a3", "v0", "memory"
|
||||
);
|
||||
return rtn;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user