Mercurial > hg > Game > Cerium
comparison TaskManager/kernel/ppe/SynchronizedMailManager.h @ 1196:27e35b4098a4 draft
Rename MailManager
author | Daichi TOMA <e085740@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 14 Jul 2011 00:23:43 +0900 |
parents | TaskManager/kernel/ppe/SemMailManager.h@898fdcf53c31 |
children | f73ca57cdc81 |
comparison
equal
deleted
inserted
replaced
1194:7909536bf611 | 1196:27e35b4098a4 |
---|---|
1 #ifndef INCLUDED_SYNC_MAIL_MANAGER | |
2 #define INCLUDED_SYNC_MAIL_MANAGER | |
3 | |
4 #include <pthread.h> | |
5 #include "MailManager.h" | |
6 #include "types.h" | |
7 #include "Sem.h" | |
8 | |
9 class SynchronizedMailManager : public MailManager { | |
10 public: | |
11 /* constructor */ | |
12 SynchronizedMailManager(unsigned int qsize = 32) ; | |
13 | |
14 ~SynchronizedMailManager(); | |
15 | |
16 /* functions */ | |
17 void send(memaddr data); | |
18 memaddr recv(); | |
19 int count(); | |
20 | |
21 private: | |
22 /* variables */ | |
23 memaddr *queue; | |
24 SemPtr queue_remain; | |
25 SemPtr queue_count; | |
26 unsigned int size; | |
27 unsigned int read; | |
28 unsigned int write; | |
29 unsigned int mask; | |
30 | |
31 void calc_mask(unsigned int qsize); | |
32 void extend(); | |
33 } ; | |
34 | |
35 typedef SynchronizedMailManager *SynchronizedMailManagerPtr; | |
36 | |
37 #endif |