os/libc/tasking.c
2019-05-03 09:33:26 -05:00

30 lines
456 B
C

void yield() {
asm volatile(" \
mov $1, %eax; \
int $80; \
");
}
void createTask(void* task) {
asm volatile(" \
mov $2, %%eax; \
int $80; \
"::"b"(task));
}
void* get_msg(uint32_t* sender) {
void* msg;
asm volatile(" \
mov $6, %%eax; \
int $80; \
":"=b"(msg):"b"(sender));
return msg;
}
void send_msg(uint32_t pid,void* msg) {
asm volatile(" \
mov $7, %%eax; \
int $80; \
"::"b"(pid),"c"(msg));
}