minix/lib/libddekit/src/thread.h
Wojciech Zajac bfff07c918 Memory related fixes for DDE/USBD
DDEKit has proper thread termination now. No more memory leaks on usb stick removal.

MUSB fixes for IRQ and memory mapping.
2014-07-28 17:05:51 +02:00

43 lines
927 B
C

#ifndef DDEKIT_SRC_THREAD_H
#define DDEKIT_SRC_THREAD_H 1
#include <ddekit/thread.h>
#include <ddekit/semaphore.h>
#include <ucontext.h>
#define DDEKIT_THREAD_NAMELEN 32
#define DDEKIT_THREAD_PRIOS 3
#define DDEKIT_THREAD_STDPRIO 1
#define DDEKIT_THREAD_STACKSIZE (4096*16)
/* This threadlib makes following assumptions:
* No Preemption,
* No signals,
* No blocking syscalls
* Threads cooperate.
*/
struct ddekit_thread {
int id;
int prio;
void (*fun)(void *);
char *stack;
void *arg;
void *data;
unsigned sleep_until;
char name[DDEKIT_THREAD_NAMELEN];
ucontext_t ctx;
ddekit_sem_t *sleep_sem;
struct ddekit_thread * next;
};
void _ddekit_thread_set_myprio(int prio);
void _ddekit_thread_enqueue(ddekit_thread_t *th);
void _ddekit_thread_dequeue(ddekit_thread_t *th);
void _ddekit_thread_schedule();
void _ddekit_thread_wakeup_sleeping();
void _ddekit_print_backtrace(ddekit_thread_t *th);
#endif