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