resource.h
Go to the documentation of this file.00001
00040 #ifndef MWARE_RESOURCE_H
00041 #define MWARE_RESOURCE_H
00042
00043 #include <drv/timer.h>
00044 #include <kern/sem.h>
00045
00046 #warning FIXME:Revise me!
00047
00048
00049
00050
00051 typedef Semaphore ResourceLock;
00052 #define ResMan_sleep() timer_delay(1)
00053 #define ResMan_time_t mtime_t
00054
00055
00056
00057
00058 struct Observer;
00059
00078 typedef struct Resource
00079 {
00080
00082 Semaphore lock;
00083
00085 struct Observer *owner;
00086
00088 int pri;
00089
00091 List queue;
00092 } Resource;
00093
00095 enum { EVENT_RELEASE = 1 };
00096
00098 bool ResMan_Alloc(Resource *res, int pri, ResMan_time_t timeout, struct Observer *releaseRequest);
00099
00101 void ResMan_Free(Resource *res);
00102
00103 void ResMan_Init(Resource *res);
00104
00105 #endif