annotate TaskManager/kernel/ppe/Threads.h @ 817:4e8fc627ed33

add CpuThreads.cc
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 23 May 2010 09:43:27 +0900
parents
children 19c6cdeb23d6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
817
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #ifndef INCLUDED_THREADS
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #define INCLUDED_THREADS
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #include <pthread.h>
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 class Threads {
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 public:
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 /* constructor */
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 Threads(int num = 1);
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 virtual ~Threads();
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 /* functions */
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 virtual void init() = 0;
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 virtual int get_mail(int speid, int count, memaddr *ret) = 0; // BLOCKING
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 virtual int has_mail(int speid, int count, memaddr *ret) = 0; // NONBLOCK
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 virtual void send_mail(int speid, int num, memaddr *data) = 0; // BLOCKING
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 /* variables */
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 pthread_t *threads;
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 thread_arg_t *args;
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 int cpu_num;
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 };
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 #endif