Mercurial > hg > Game > Cerium
annotate TaskManager/kernel/ppe/MailManager.h @ 1186:4c209dd223cd draft
fix MailManager and Semaphore
author | Daichi TOMA |
---|---|
date | Mon, 04 Jul 2011 14:11:26 +0900 |
parents | 2e20d2bb55c6 |
children | 898fdcf53c31 |
rev | line source |
---|---|
3 | 1 #ifndef INCLUDED_MAIL_MANAGER |
2 #define INCLUDED_MAIL_MANAGER | |
3 | |
1180 | 4 #include <pthread.h> |
605
0bfab105a770
working on 32 bit compiler
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
5 #include "types.h" |
1180 | 6 #include "Sem.h" |
605
0bfab105a770
working on 32 bit compiler
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
603
diff
changeset
|
7 |
3 | 8 class MailManager { |
9 public: | |
19 | 10 /* constructor */ |
647
7ba4ad4538b1
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
643
diff
changeset
|
11 MailManager(unsigned int qsize = 32) ; |
7ba4ad4538b1
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
643
diff
changeset
|
12 |
603
57ec231bc8ac
long -> memaddr (64 or 32)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
602
diff
changeset
|
13 ~MailManager(); |
19 | 14 |
3 | 15 /* functions */ |
647
7ba4ad4538b1
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
643
diff
changeset
|
16 void send(memaddr data); |
7ba4ad4538b1
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
643
diff
changeset
|
17 memaddr recv(); |
7ba4ad4538b1
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
643
diff
changeset
|
18 int count(); |
3 | 19 |
20 private: | |
21 /* variables */ | |
647
7ba4ad4538b1
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
643
diff
changeset
|
22 memaddr *queue; |
1186 | 23 SemPtr queue_remain; |
24 SemPtr queue_count; | |
647
7ba4ad4538b1
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
643
diff
changeset
|
25 unsigned int size; |
7ba4ad4538b1
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
643
diff
changeset
|
26 unsigned int read; |
7ba4ad4538b1
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
643
diff
changeset
|
27 unsigned int write; |
7ba4ad4538b1
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
643
diff
changeset
|
28 unsigned int mask; |
50 | 29 |
647
7ba4ad4538b1
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
643
diff
changeset
|
30 void calc_mask(unsigned int qsize); |
651 | 31 void extend(); |
899 | 32 } ; |
3 | 33 |
647
7ba4ad4538b1
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
643
diff
changeset
|
34 typedef MailManager *MailManagerPtr; |
7ba4ad4538b1
MailManager rewrite. not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
643
diff
changeset
|
35 |
3 | 36 #endif |