00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _BML_THREAD_H_
00021 #define _BML_THREAD_H_
00022
00037 thread_t thread_new(word_t prio, program_t p, word_t ip);
00039 void thread_init(thread_t,word_t prio, program_t p, word_t ip);
00041 void thread_delete(vm_t,thread_t);
00043 void thread_deinit(vm_t vm, thread_t t);
00044
00046 void thread_set_state(vm_t, thread_t, thread_state_t);
00053 mutex_t mutex_new();
00054 void mutex_init(mutex_t);
00055 void mutex_delete(vm_t,mutex_t);
00056 void mutex_deinit(mutex_t);
00057
00058 long mutex_lock(vm_t, mutex_t, thread_t);
00059 long mutex_unlock(vm_t, mutex_t, thread_t);
00060
00068 vm_blocker_t blocker_new();
00069 void blocker_free(vm_blocker_t);
00070 void blocker_suspend(vm_t,vm_blocker_t,thread_t);
00071 void blocker_resume(vm_t,vm_blocker_t);
00072
00076
00077 #endif
00078