annotate TaskManager/kernel/ppe/CpuThreads.h @ 885:d0273488f50c

fix
author Yutaka_Kinjyo
date Tue, 13 Jul 2010 16:23:04 +0900
parents 4e8fc627ed33
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
801
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #ifndef INCLUDED_CPU_THREADS
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #define INCLUDED_CPU_THREADS
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #include <pthread.h>
817
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 801
diff changeset
5 #include "Threads.h"
801
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 #include "TaskManagerImpl.h"
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 #include "MainScheduler.h"
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 typedef struct cpu_arg {
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 int cpuid;
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 // should be syncrhonized
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 MainScheduler *scheduler;
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 TaskManagerImpl *manager;
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 } cpu_thread_arg_t;
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15
817
4e8fc627ed33 add CpuThreads.cc
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 801
diff changeset
16 class CpuThreads : Threads {
801
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 public:
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 /* constructor */
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 CpuThreads(int num = 1, int start_id = 0);
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 virtual ~CpuThreads();
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 static void *cpu_thread_run(void *args);
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 /* functions */
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 void init();
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 int get_mail(int speid, int count, memaddr *ret); // BLOCKING
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 int has_mail(int speid, int count, memaddr *ret); // NONBLOCK
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 void send_mail(int speid, int num, memaddr *data); // BLOCKING
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 private:
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 /* variables */
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 pthread_t *threads;
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 cpu_thread_arg_t *args;
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 int cpu_num;
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 int id_offset;
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 };
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
974cd68383b3 TaslListInfo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 #endif