comparison TaskManager/kernel/ppe/MailManager.h @ 647:7c9ded1ea750

MailManager rewrite. not yet worked.
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 21 Nov 2009 16:18:47 +0900
parents bffdede05f1e
children c13bbb7d70b3
comparison
equal deleted inserted replaced
646:ffcc25c7c566 647:7c9ded1ea750
1 #ifndef INCLUDED_MAIL_MANAGER 1 #ifndef INCLUDED_MAIL_MANAGER
2 #define INCLUDED_MAIL_MANAGER 2 #define INCLUDED_MAIL_MANAGER
3 3
4 #include "types.h" 4 #include "types.h"
5 5
6 typedef struct mail_queue {
7 memaddr data;
8 struct mail_queue *next;
9 } MailQueue, *MailQueuePtr;
10
11 class MailManager { 6 class MailManager {
12 public: 7 public:
13 /* constructor */ 8 /* constructor */
14 MailManager(); 9 MailManager(unsigned int qsize = 32) ;
10
15 ~MailManager(); 11 ~MailManager();
16 12
17 /* functions */ 13 /* functions */
18 int init(int num); 14 void send(memaddr data);
19 MailQueuePtr create(memaddr data); 15 memaddr recv();
20 void free(MailQueuePtr q); 16 int count();
21 static MailQueuePtr append_mailQueue(MailQueuePtr list, MailQueuePtr q);
22 static int length(MailQueuePtr list);
23 static int find(MailQueuePtr q,MailQueuePtr list);
24 17
25 private: 18 private:
26 /* variables */ 19 /* variables */
27 MailQueuePtr mailQueuePool; 20 memaddr *queue;
28 MailQueuePtr freeMailQueue; 21 unsigned int size;
22 unsigned int read;
23 unsigned int write;
24 unsigned int mask;
29 25
30 /* functions */ 26 void calc_mask(unsigned int qsize);
31 int extend_pool(int num);
32 void destroy();
33 }; 27 };
34 28
29 typedef MailManager *MailManagerPtr;
30
35 #endif 31 #endif