summaryrefslogtreecommitdiffstats
path: root/tsk/tasking.h
blob: d2171719670ef9f0bbea5a0be0337fc230db5723 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef JOVE_TASKING_H
#define JOVE_TASKING_H 1

#include <stddef.h>
#include <stdint.h>

typedef size_t tid_t;

struct Thread
{
    struct Thread *next;
    tid_t id;
    uintptr_t kbp;
    size_t perm;
};

extern struct Thread *thread_current;

void tasking_setup(void);

struct Thread *thread_new(struct Thread *parent);
struct Thread *thread_get(tid_t id);
void thread_perm_release(struct Thread *thread, size_t mask);

#endif