source: UsbWattMeter/trunk/asp_dcre/kernel/task.h@ 164

Last change on this file since 164 was 164, checked in by coas-nagasima, 8 years ago

TOPPERS/ECNLサンプルアプリ「USB充電器電力計」を追加

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-chdr
File size: 16.7 KB
Line 
1/*
2 * TOPPERS/ASP Kernel
3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Advanced Standard Profile Kernel
5 *
6 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
8 * Copyright (C) 2005-2010 by Embedded and Real-Time Systems Laboratory
9 * Graduate School of Information Science, Nagoya Univ., JAPAN
10 *
11 * ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
12 * ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
13 * •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
14 * (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
15 * Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
16 * ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
17 * (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
18 * —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ…
19ƒƒ“ƒgi—˜—p
20 * ŽÒƒ}ƒjƒ…
21ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
22 * ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
23 * (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
24 * —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
25 * ‚ƁD
26 * (a) Ä”z•z‚É”º‚¤ƒhƒLƒ…
27ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ…
28ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
29 * ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
30 * (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
31 * •ñ‚·‚邱‚ƁD
32 * (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
33 * ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
34 * ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
35 * —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
36 * –Ɛӂ·‚邱‚ƁD
37 *
38 * –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
39 * ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
40 * ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
41 * ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
42 * ‚̐ӔC‚𕉂í‚È‚¢D
43 *
44 * $Id: task.h 164 2016-03-07 11:33:50Z coas-nagasima $
45 */
46
47/*
48 * ƒ^ƒXƒNŠÇ—ƒ‚ƒWƒ…
49[ƒ‹
50 */
51
52#ifndef TOPPERS_TASK_H
53#define TOPPERS_TASK_H
54
55#include <queue.h>
56#include "time_event.h"
57
58/*
59 * ƒgƒŒ[ƒXƒƒOƒ}ƒNƒ‚̃fƒtƒHƒ‹ƒg’è‹`
60 */
61#ifndef LOG_TSKSTAT
62#define LOG_TSKSTAT(p_tcb)
63#endif /* LOG_TSKSTAT */
64
65/*
66 * ƒ^ƒXƒN—Dæ“x‚Ì“à•”•\Œ»EŠO•”•\Œ»•ÏŠ·ƒ}ƒNƒ
67 */
68#define INT_PRIORITY(x) ((uint_t)((x) - TMIN_TPRI))
69#define EXT_TSKPRI(x) ((PRI)(x) + TMIN_TPRI)
70
71/*
72 * ƒ^ƒXƒNó‘Ô‚Ì“à•”•\Œ»
73 *
74 * TCB’†‚̃^ƒXƒNó‘Ԃł́CŽÀsó‘ԁiRUNNINGj‚ÆŽÀs‰Â”\ó‘ԁiREADYj
75 * ‚Í‹æ•Ê‚µ‚È‚¢D—¼ó‘Ԃ𑍏̂µ‚āCŽÀs‚Å‚«‚éó‘ԁiRUNNABLEj‚ƌĂԁD
76 * “ñd‘Ò‚¿ó‘Ԃ́C(TS_WAITING | TS_SUSPENDED)‚Å•\‚·DTS_WAIT_???‚Í‘Ò
77 * ‚¿—vˆö‚ð•\‚µC‘Ò‚¿ó‘ԁi“ñd‘Ò‚¿ó‘Ô‚ðŠÜ‚ށj‚̏ꍇ‚ɂ̂ݐݒ肷‚éD
78 */
79#define TS_DORMANT 0x00U /* ‹xŽ~ó‘Ô */
80#define TS_RUNNABLE 0x01U /* ŽÀs‚Å‚«‚éó‘Ô */
81#define TS_WAITING 0x02U /* ‘Ò‚¿ó‘Ô */
82#define TS_SUSPENDED 0x04U /* ‹­§‘Ò‚¿ó‘Ô */
83
84#define TS_WAIT_DLY (0x00U << 3) /* ŽžŠÔŒo‰ß‘Ò‚¿ */
85#define TS_WAIT_SLP (0x01U << 3) /* ‹N°‘Ò‚¿ */
86#define TS_WAIT_RDTQ (0x02U << 3) /* ƒf[ƒ^ƒLƒ…
87[‚©‚ç‚ÌŽóM‘Ò‚¿ */
88#define TS_WAIT_RPDQ (0x03U << 3) /* —Dæ“xƒf[ƒ^ƒLƒ…
89[‚©‚ç‚ÌŽóM‘Ò‚¿ */
90#define TS_WAIT_SEM (0x04U << 3) /* ƒZƒ}ƒtƒHŽ‘Œ¹‚ÌŠl“¾‘Ò‚¿ */
91#define TS_WAIT_FLG (0x05U << 3) /* ƒCƒxƒ“ƒgƒtƒ‰ƒO‘Ò‚¿ */
92#define TS_WAIT_SDTQ (0x06U << 3) /* ƒf[ƒ^ƒLƒ…
93[‚Ö‚Ì‘—M‘Ò‚¿ */
94#define TS_WAIT_SPDQ (0x07U << 3) /* —Dæ“xƒf[ƒ^ƒLƒ…
95[‚Ö‚Ì‘—M‘Ò‚¿ */
96#define TS_WAIT_MBX (0x08U << 3) /* ƒ[ƒ‹ƒ{ƒbƒNƒX‚©‚ç‚ÌŽóM‘Ò‚¿ */
97#define TS_WAIT_MPF (0x09U << 3) /* ŒÅ’è’·ƒƒ‚ƒŠƒuƒƒbƒN‚ÌŠl“¾‘Ò‚¿ */
98
99/*
100 * ƒ^ƒXƒNó‘Ô”»•Êƒ}ƒNƒ
101 *
102 * TSTAT_DORMANT‚̓^ƒXƒN‚ª‹xŽ~ó‘Ô‚Å‚ ‚é‚©‚Ç‚¤‚©‚ðCTSTAT_RUNNABLE‚Í
103 * ƒ^ƒXƒN‚ªŽÀs‚Å‚«‚éó‘Ô‚Å‚ ‚é‚©‚Ç‚¤‚©‚ð”»•Ê‚·‚éDTSTAT_WAITING‚Í‘Ò
104 * ‚¿ó‘Ô‚Æ“ñd‘Ò‚¿ó‘Ô‚Ì‚¢‚¸‚ê‚©‚Å‚ ‚é‚©‚Ç‚¤‚©‚ðCTSTAT_SUSPENDED‚Í
105 * ‹­§‘Ò‚¿ó‘Ô‚Æ“ñd‘Ò‚¿ó‘Ô‚Ì‚¢‚¸‚ê‚©‚Å‚ ‚é‚©‚Ç‚¤‚©‚ð”»•Ê‚·‚éD
106 */
107#define TSTAT_DORMANT(tstat) ((tstat) == TS_DORMANT)
108#define TSTAT_RUNNABLE(tstat) (((tstat) & TS_RUNNABLE) != 0U)
109#define TSTAT_WAITING(tstat) (((tstat) & TS_WAITING) != 0U)
110#define TSTAT_SUSPENDED(tstat) (((tstat) & TS_SUSPENDED) != 0U)
111
112/*
113 * ƒ^ƒXƒN‘Ò‚¿—vˆö”»•Êƒ}ƒNƒ
114 *
115 * TSTAT_WAIT_SLP‚̓^ƒXƒN‚ª‹N°‘Ò‚¿‚Å‚ ‚é‚©‚Ç‚¤‚©‚ðCTSTAT_WAIT_WOBJ
116 * ‚̓^ƒXƒN‚ª“¯ŠúE’ʐMƒIƒuƒWƒFƒNƒg‚ɑ΂·‚é‘Ò‚¿‚Å‚ ‚é‚©iŒ¾‚¢Š·‚¦‚é‚ƁC
117 * “¯Šú’ʐMƒIƒuƒWƒFƒNƒg‚Ì‘Ò‚¿ƒLƒ…
118[‚ɂ‚Ȃª‚ê‚Ä‚¢‚é‚©j‚Ç‚¤‚©‚ð”»•Ê‚·
119 * ‚éD‚Ü‚½CTSTAT_WAIT_WOBJCB‚̓^ƒXƒN‚ª“¯ŠúE’ʐMƒIƒuƒWƒFƒNƒg‚ÌŠÇ—
120 * ƒuƒƒbƒN‚Ì‹¤’Ê•”•ªiWOBJCBj‚Ì‘Ò‚¿ƒLƒ…
121[‚ɂ‚Ȃª‚ê‚Ä‚¢‚é‚©‚Ç‚¤‚©‚ð
122 * ”»•Ê‚·‚éD
123 *
124 * TSTAT_WAIT_SLP‚́C”CˆÓ‚̃^ƒXƒNó‘Ô‚Ì’†‚©‚çCƒ^ƒXƒN‚ª‹N°‘Ò‚¿‚Å‚ ‚é
125 * ‚±‚Æ‚ð”»•Ê‚Å‚«‚éD‚·‚È‚í‚¿CTSTAT_WAITING‚É‚æ‚è‘Ò‚¿ó‘Ô‚Å‚ ‚邱‚Æ‚ð
126 * ”»•Ê‚¹‚¸‚ɁCTSTAT_SLP‚¾‚¯‚ð—p‚¢‚Ä‹N°‘Ò‚¿ó‘Ô‚Å‚ ‚邱‚Æ‚ð”»•Ê‚Å‚«‚éD
127 * ‚±‚ê‚ðŒø—¦“I‚ÉŽÀŒ»‚·‚邽‚߂ɁCTS_WAIT_SLP‚Ì’l‚ðC(0x00U << 3)‚Å‚Í‚È
128 * ‚­(0x01U << 3)‚Æ‚µ‚Ä‚¢‚éD‚»‚Ì‚½‚߁Cƒ^ƒXƒN‚ªŽžŠÔŒo‰ß‘Ò‚¿ó‘Ô‚Å‚ ‚é
129 * ‚±‚Æ‚ð”»•Ê‚·‚邽‚ß‚ÌTSTAT_WAIT_DLY‚ðCTSTAT_WAIT_SLP‚Æ“¯—l‚Ì•û–@‚Å
130 * ŽÀŒ»‚·‚邱‚Æ‚Í‚Å‚«‚È‚¢D
131 */
132#define TS_WAIT_MASK (0x0fU << 3) /* ‘Ò‚¿—vˆö‚ÌŽæo‚µƒ}ƒXƒN */
133
134#define TSTAT_WAIT_SLP(tstat) (((tstat) & TS_WAIT_MASK) == TS_WAIT_SLP)
135#define TSTAT_WAIT_WOBJ(tstat) (((tstat) & TS_WAIT_MASK) >= TS_WAIT_RDTQ)
136#define TSTAT_WAIT_WOBJCB(tstat) (((tstat) & TS_WAIT_MASK) >= TS_WAIT_SEM)
137
138/*
139 * ‘Ò‚¿î•ñƒuƒƒbƒNiWINFOj‚Ì’è‹`
140 *
141 * ƒ^ƒXƒN‚ª‘Ò‚¿ó‘Ԃ̊Ԃ́CTCB‚¨‚æ‚Ñ‚»‚Ìp_winfo‚ÅŽw‚³‚ê‚éWINFO‚ðŽŸ‚Ì
142 * ‚悤‚ɐݒ肵‚È‚¯‚ê‚΂Ȃç‚È‚¢D
143 *
144 * (a) TCB‚̃^ƒXƒNó‘Ô‚ð‘Ò‚¿ó‘ԁiTS_WAITINGj‚É‚·‚éD‚»‚̍ۂɁC‘Ò‚¿
145 * —vˆöiTS_WAIT_???j‚àÝ’è‚·‚éD
146 *
147 * (b) ƒ^ƒCƒ€ƒAƒEƒg‚ðŠÄŽ‹‚·‚邽‚߂ɁCƒ^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN‚ð“o˜^‚·‚éD
148 * “o˜^‚·‚éƒ^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN‚́C‘Ò‚¿‚É“ü‚éƒT[ƒrƒXƒR[ƒ‹ˆ—ŠÖ”
149 * ‚̃[ƒJƒ‹•Ï”‚Æ‚µ‚ÄŠm•Û‚µC‚»‚ê‚ւ̃|ƒCƒ“ƒ^‚ðWINFO‚Ìp_tmevtb‚É‹L
150 * ‰¯‚·‚éDƒ^ƒCƒ€ƒAƒEƒg‚ÌŠÄŽ‹‚ª•K—v‚È‚¢ê‡i‰i‹v‘Ò‚¿‚̏ꍇj‚ɂ́C
151 * p_tmevtb‚ðNULL‚É‚·‚éD
152 *
153 * “¯ŠúE’ʐMƒIƒuƒWƒFƒNƒg‚ɑ΂·‚é‘Ò‚¿ó‘Ԃ̏ꍇ‚ɂ́C•W€‚ÌWINFO‚É
154 * p_wobjcbƒtƒB[ƒ‹ƒh‚ð’ljÁ‚µ‚½\‘¢‘́iWINFO_WOBJCwait.h‚Å’è‹`j‚ðŽg
155 * ‚¤D‚Ü‚½CˆÈ‰º‚Ì(c)`(e)‚̐ݒè‚ðs‚¤•K—v‚ª‚ ‚éD“¯ŠúE’ʐMƒIƒuƒWƒF
156 * ƒNƒg‚ÉŠÖŒW‚µ‚È‚¢‘Ò‚¿i‹N°‘Ò‚¿CŽžŠÔŒo‰ß‘Ò‚¿j‚̏ꍇ‚ɂ́C(c)`(e)
157 * ‚Í•K—v‚È‚¢D
158 *
159 * (c) TCB‚ð‘Ò‚¿‘Ώۂ̓¯ŠúE’ʐMƒIƒuƒWƒFƒNƒg‚Ì‘Ò‚¿ƒLƒ…
160[‚ɂ‚Ȃ®D‘Ò
161 * ‚¿ƒLƒ…
162[‚ɂ‚Ȃ®‚½‚߂ɁCtask_queue‚ðŽg‚¤D
163 *
164 * (d) ‘Ò‚¿‘Ώۂ̓¯ŠúE’ʐMƒIƒuƒWƒFƒNƒg‚ÌŠÇ—ƒuƒƒbƒN‚ւ̃|ƒCƒ“ƒ^‚ðC
165 * WINFO_WOBJ‚Ìp_wobjcb‚É‹L‰¯‚·‚éD
166 *
167 * (e) ‘Ò‚¿‘Ώۂ̓¯ŠúE’ʐMƒIƒuƒWƒFƒNƒg‚Ɉˑ¶‚µ‚Ä‹L‰¯‚·‚邱‚Æ‚ª•K—v‚È
168 * î•ñ‚ª‚ ‚éê‡‚ɂ́CWINFO_WOBJ‚É•K—v‚ȏî•ñ‚Ì‚½‚߂̃tƒB[ƒ‹ƒh‚ð’ljÁ
169 * ‚µ‚½\‘¢‘Ì‚ð’è‹`‚µCWINFO_WOBJ‚Ì‘ã‚í‚è‚É—p‚¢‚éD
170 *
171 * ‘Ò‚¿ó‘Ô‚ð‰ðœ‚·‚éÛ‚ɂ́C‘Ò‚¿‰ðœ‚µ‚½ƒ^ƒXƒN‚ɑ΂·‚é•Ô’l‚ðWINFO‚Ì
172 * wercd‚ɐݒ肷‚éDwercd‚ª•K—v‚È‚Ì‚Í‘Ò‚¿‰ðœˆÈ~‚Å‚ ‚é‚̂ɑ΂µ‚āC
173 * p_tmevtb‚Í‘Ò‚¿‰ðœŒã‚Í•K—v‚È‚¢‚½‚߁Cƒƒ‚ƒŠß–ñ‚Ì‚½‚ß‚É‹¤—p‘Ì‚ðŽg‚Á
174 * ‚Ä‚¢‚éD‚»‚Ì‚½‚߁Cwercd‚ÖƒGƒ‰[ƒR[ƒh‚ðÝ’è‚·‚é‚̂́Cƒ^ƒCƒ€ƒCƒxƒ“ƒg
175 * ƒuƒƒbƒN‚ð“o˜^‰ðœ‚µ‚½Œã‚É‚µ‚È‚¯‚ê‚΂Ȃç‚È‚¢D
176 */
177typedef union waiting_information {
178 ER wercd; /* ‘Ò‚¿‰ðœŽž‚̃Gƒ‰[ƒR[ƒh */
179 TMEVTB *p_tmevtb; /* ‘Ò‚¿ó‘Ô—p‚̃^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN */
180} WINFO;
181
182/*
183 * ƒ^ƒXƒN‰Šú‰»ƒuƒƒbƒN
184 *
185 * ƒ^ƒXƒN‚ÉŠÖ‚·‚éî•ñ‚ðC’l‚ª•Ï‚í‚ç‚È‚¢‚½‚ß‚ÉROM‚É’u‚¯‚é•”•ªiƒ^ƒXƒN
186 * ‰Šú‰»ƒuƒƒbƒNj‚ƁC’l‚ª•Ï‰»‚·‚邽‚ß‚ÉRAM‚É’u‚©‚È‚¯‚ê‚΂Ȃç‚È‚¢•”
187 * •ªiƒ^ƒXƒNŠÇ—ƒuƒƒbƒNCTCBj‚É•ª—£‚µCTCB“à‚ɑΉž‚·‚éƒ^ƒXƒN‰Šú‰»
188 * ƒuƒƒbƒN‚ðŽw‚·ƒ|ƒCƒ“ƒ^‚ð“ü‚ê‚éDƒ^ƒXƒN‰Šú‰»ƒuƒƒbƒN“à‚ɑΉž‚·‚é
189 * TCB‚ðŽw‚·ƒ|ƒCƒ“ƒ^‚ð“ü‚ê‚é•û–@‚Ì•û‚ªCRAM‚̐ߖñ‚ÌŠÏ“_‚©‚ç‚Í–]‚Ü‚µ‚¢
190 * ‚ªCŽÀsŒø—¦‚ªˆ«‚­‚Ȃ邽‚߂ɍ̗p‚µ‚Ä‚¢‚È‚¢D‘¼‚̃IƒuƒWƒFƒNƒg‚ɂ‚¢
191 * ‚Ä‚à“¯—l‚Ɉµ‚¤D
192 *
193 * ƒ^ƒXƒN‰Šú‰»ƒuƒƒbƒN‚ɂ́CDEF_TEX‚Å’è‹`‚³‚ê‚éƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`
194 * ƒ“‚ÉŠÖ‚·‚éî•ñ‚àŠÜ‚ށD
195 */
196typedef struct task_initialization_block {
197 ATR tskatr; /* ƒ^ƒXƒN‘®« */
198 intptr_t exinf; /* ƒ^ƒXƒN‚ÌŠg’£î•ñ */
199 TASK task; /* ƒ^ƒXƒN‚Ì‹N“®”Ô’n */
200 uint_t ipriority; /* ƒ^ƒXƒN‚Ì‹N“®Žž—Dæ“xi“à•”•\Œ»j */
201
202#ifdef USE_TSKINICTXB
203 TSKINICTXB tskinictxb; /* ƒ^ƒXƒN‰Šú‰»ƒRƒ“ƒeƒLƒXƒgƒuƒƒbƒN */
204#else /* USE_TSKINICTXB */
205 SIZE stksz; /* ƒXƒ^ƒbƒN—̈æ‚̃TƒCƒYiŠÛ‚ß‚½’lj */
206 void *stk; /* ƒXƒ^ƒbƒN—̈æ‚̐擪”Ô’n */
207#endif /* USE_TSKINICTXB */
208
209 ATR texatr; /* ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‘®« */
210 TEXRTN texrtn; /* ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚Ì‹N“®”Ô’n */
211} TINIB;
212
213/*
214 * TCB’†‚̃tƒB[ƒ‹ƒh‚̃rƒbƒg•‚Ì’è‹`
215 *
216 * ƒvƒƒZƒbƒT‚É‚æ‚Á‚ẮCTCB’†‚̃tƒB[ƒ‹ƒh‚̃rƒbƒg•‚сƒ‚ƒŠŽg—p—Ê‚Æ
217 * «”\‚ªƒgƒŒ[ƒhƒIƒt‚ɂȂ邽‚߁Cƒ^[ƒQƒbƒgˆË‘¶‚ɃtƒB[ƒ‹ƒh‚̃rƒbƒg•
218 * ‚ð•ÏX‚·‚邱‚Æ‚ð‹–‚µ‚Ä‚¢‚éD
219 */
220#ifndef TBIT_TCB_PRIORITY
221#define TBIT_TCB_PRIORITY 8 /* priorityƒtƒB[ƒ‹ƒh‚̃rƒbƒg• */
222#endif /* TBIT_TCB_PRIORITY */
223
224/*
225 * ƒ^ƒXƒNŠÇ—ƒuƒƒbƒNiTCBj
226 *
227 * ASPƒJ[ƒlƒ‹‚ł́Cƒ^ƒXƒN‚Ì‹N“®—v‹ƒLƒ…
228[ƒCƒ“ƒO”‚̍őå’liTMAX_ACTCNTj
229 * ‚Æ‹N°—v‹ƒLƒ…
230[ƒCƒ“ƒO”‚̍őå’liTMAX_WUPCNTj‚Í1‚ɌŒ肳‚ê‚Ä‚¢‚é
231 * ‚½‚߁CƒLƒ…
232[ƒCƒ“ƒO‚³‚ê‚Ä‚¢‚é‚©‚Ç‚¤‚©‚̐^‹U’l‚Å•\Œ»‚·‚邱‚Æ‚ª‚Å‚«‚éD
233 * ‚Ü‚½C‹­§‘Ò‚¿—v‹ƒlƒXƒg”‚̍őå’liTMAX_SUSCNTj‚ª1‚ɌŒ肳‚ê‚Ä‚¢
234 * ‚é‚̂ŁC‹­§‘Ò‚¿—v‹ƒlƒXƒg”isuscntj‚Í•K—v‚È‚¢D
235 *
236 * TCB‚Ì‚¢‚­‚‚©‚̃tƒB[ƒ‹ƒh‚́C“Á’è‚̃^ƒXƒNó‘Ô‚Å‚Ì‚Ý—LŒø‚È’l‚ð•ÛŽ‚µC
237 * ‚»‚êˆÈŠO‚̏ꍇ‚Í’l‚ª•ÛØ‚³‚ê‚È‚¢i‚æ‚Á‚āCŽQÆ‚µ‚Ä‚Í‚È‚ç‚È‚¢jDŠe
238 * ƒtƒB[ƒ‹ƒh‚ª—LŒø‚È’l‚ð•ÛŽ‚·‚éðŒ‚ÍŽŸ‚Ì’Ê‚èD
239 *
240 * E‰Šú‰»Œã‚͏í‚É—LŒøF
241 * p_tinibCtstatCactque
242 * E‹xŽ~ó‘ԈȊO‚Å—LŒøi‹xŽ~ó‘Ԃł͏‰Šú’l‚É‚È‚Á‚Ä‚¢‚éjF
243 * priorityCwupqueCenatexCtexptn
244 * E‘Ò‚¿ó‘ԁi“ñd‘Ò‚¿ó‘Ô‚ðŠÜ‚ށj‚Å—LŒøF
245 * p_winfo
246 * EŽÀs‚Å‚«‚éó‘Ô‚Æ“¯ŠúE’ʐMƒIƒuƒWƒFƒNƒg‚ɑ΂·‚é‘Ò‚¿ó‘Ô‚Å—LŒøF
247 * task_queue
248 * EŽÀs‰Â”\ó‘ԁC‘Ò‚¿ó‘ԁC‹­§‘Ò‚¿ó‘ԁC“ñd‘Ò‚¿ó‘Ô‚Å—LŒøF
249 * tskctxb
250 */
251typedef struct task_control_block {
252 QUEUE task_queue; /* ƒ^ƒXƒNƒLƒ…
253[ */
254 const TINIB *p_tinib; /* ‰Šú‰»ƒuƒƒbƒN‚ւ̃|ƒCƒ“ƒ^ */
255
256#ifdef UINT8_MAX
257 uint8_t tstat; /* ƒ^ƒXƒNó‘ԁi“à•”•\Œ»j*/
258#else /* UINT8_MAX */
259 BIT_FIELD_UINT tstat : 8; /* ƒ^ƒXƒNó‘ԁi“à•”•\Œ»j*/
260#endif /* UINT8_MAX */
261#if defined(UINT8_MAX) && (TBIT_TCB_PRIORITY == 8)
262 uint8_t priority; /* Œ»Ý‚Ì—Dæ“xi“à•”•\Œ»j*/
263#else /* defined(UINT8_MAX) && (TBIT_TCB_PRIORITY == 8) */
264 BIT_FIELD_UINT priority : TBIT_TCB_PRIORITY;
265 /* Œ»Ý‚Ì—Dæ“xi“à•”•\Œ»j*/
266#endif /* defined(UINT8_MAX) && (TBIT_TCB_PRIORITY == 8) */
267 BIT_FIELD_BOOL actque : 1; /* ‹N“®—v‹ƒLƒ…
268[ƒCƒ“ƒO */
269 BIT_FIELD_BOOL wupque : 1; /* ‹N°—v‹ƒLƒ…
270[ƒCƒ“ƒO */
271 BIT_FIELD_BOOL enatex : 1; /* ƒ^ƒXƒN—áŠOˆ—‹–‰Âó‘Ô */
272
273 TEXPTN texptn; /* •Û—¯—áŠO—vˆö */
274 WINFO *p_winfo; /* ‘Ò‚¿î•ñƒuƒƒbƒN‚ւ̃|ƒCƒ“ƒ^ */
275 TSKCTXB tskctxb; /* ƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒgƒuƒƒbƒN */
276} TCB;
277
278/*
279 * ŽÀsó‘Ԃ̃^ƒXƒN
280 *
281 * ŽÀsó‘Ԃ̃^ƒXƒNiƒvƒƒZƒbƒT‚ªƒRƒ“ƒeƒLƒXƒg‚ðŽ‚Á‚Ä‚¢‚éƒ^ƒXƒNj‚Ì
282 * TCB‚ðŽw‚·ƒ|ƒCƒ“ƒ^DŽÀsó‘Ԃ̃^ƒXƒN‚ª‚È‚¢ê‡‚ÍNULL‚É‚·‚éD
283 *
284 * ƒT[ƒrƒXƒR[ƒ‹‚̏ˆ—’†‚ŁCŽ©ƒ^ƒXƒNiƒT[ƒrƒXƒR[ƒ‹‚ðŒÄ‚яo‚µ‚½ƒ^ƒX
285 * ƒNj‚ÉŠÖ‚·‚éî•ñ‚ðŽQÆ‚·‚éê‡‚Íp_runtsk‚ðŽg‚¤Dp_runtsk‚ð‘‚«Š·‚¦
286 * ‚é‚̂́CƒfƒBƒXƒpƒbƒ`ƒƒi‚Ə‰Šú‰»ˆ—j‚Ì‚Ý‚Å‚ ‚éD
287 */
288extern TCB *p_runtsk;
289
290/*
291 * Å‚—Dæ‡ˆÊ‚̃^ƒXƒN
292 *
293 * ŽÀs‚Å‚«‚éƒ^ƒXƒN‚Ì’†‚ōō‚—Dæ‡ˆÊ‚̃^ƒXƒN‚ÌTCB‚ðŽw‚·ƒ|ƒCƒ“ƒ^DŽÀ
294 * s‚Å‚«‚éƒ^ƒXƒN‚ª‚È‚¢ê‡‚ÍNULL‚É‚·‚éD
295 *
296 * ƒfƒBƒXƒpƒbƒ`‹ÖŽ~ó‘ԂȂǁCƒfƒBƒXƒpƒbƒ`‚ª•Û—¯‚³‚ê‚Ä‚¢‚éŠÔ‚Íp_runtsk
297 * ‚ƈê’v‚µ‚Ä‚¢‚é‚Æ‚ÍŒÀ‚ç‚È‚¢D
298 */
299extern TCB *p_schedtsk;
300
301/*
302 * ƒfƒBƒXƒpƒbƒ`^ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‹N“®—v‹ƒtƒ‰ƒO
303 *
304 * Š„ž‚݃nƒ“ƒhƒ‰^CPU—áŠOƒnƒ“ƒhƒ‰‚̏oŒûˆ—‚ɁCƒfƒBƒXƒpƒbƒ`‚Ü‚½‚Í
305 * ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚Ì‹N“®‚ð—v‹‚·‚邱‚Æ‚ðŽ¦‚·ƒtƒ‰ƒOD
306 */
307extern bool_t reqflg;
308
309/*
310 * Š„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœó‘Ô
311 *
312 * Š„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœó‘Ô‚Å‚ ‚邱‚Æ‚ðŽ¦‚·ƒtƒ‰ƒOD
313 */
314extern bool_t ipmflg;
315
316/*
317 * ƒfƒBƒXƒpƒbƒ`‹ÖŽ~ó‘Ô
318 *
319 * ƒfƒBƒXƒpƒbƒ`‹ÖŽ~ó‘Ô‚Å‚ ‚邱‚Æ‚ðŽ¦‚·ƒtƒ‰ƒOD
320 */
321extern bool_t disdsp;
322
323/*
324 * ƒ^ƒXƒNƒfƒBƒXƒpƒbƒ`‰Â”\ó‘Ô
325 *
326 * Š„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœó‘Ô‚Å‚ ‚èCƒfƒBƒXƒpƒbƒ`‹–‰Âó‘Ô‚Å‚ ‚éiƒfƒB
327 * ƒXƒpƒbƒ`‹ÖŽ~ó‘Ô‚Å‚È‚¢j‚±‚Æ‚ðŽ¦‚·ƒtƒ‰ƒOD
328 */
329extern bool_t dspflg;
330
331/*
332 * ƒŒƒfƒBƒLƒ…
333[
334 *
335 * ƒŒƒfƒBƒLƒ…
336[‚́CŽÀs‚Å‚«‚éó‘Ԃ̃^ƒXƒN‚ðŠÇ—‚·‚邽‚߂̃Lƒ…
337[‚Å‚ ‚éD
338 * ŽÀsó‘Ԃ̃^ƒXƒN‚àŠÇ—‚µ‚Ä‚¢‚邽‚߁CƒŒƒfƒBiŽÀs‰Â”\jƒLƒ…
339[‚Æ‚¢‚¤
340 * –¼Ì‚͐³Šm‚Å‚Í‚È‚¢‚ªCƒŒƒfƒBƒLƒ…
341[‚Æ‚¢‚¤–¼Ì‚ª’è’…
342‚µ‚Ä‚¢‚邽‚߁C‚±
343 * ‚Ì–¼Ì‚ŌĂԂ±‚Æ‚É‚·‚éD
344 *
345 * ƒŒƒfƒBƒLƒ…
346[‚́C—Dæ“x‚²‚Ƃ̃^ƒXƒNƒLƒ…
347[‚ō\¬‚³‚ê‚Ä‚¢‚éDƒ^ƒXƒN‚Ì
348 * TCB‚́CŠY“–‚·‚é—Dæ“x‚̃Lƒ…
349[‚É“o˜^‚³‚ê‚éD
350 */
351extern QUEUE ready_queue[TNUM_TPRI];
352
353/*
354 * ƒŒƒfƒBƒLƒ…
355[ƒT[ƒ`‚Ì‚½‚߂̃rƒbƒgƒ}ƒbƒv
356 *
357 * ƒŒƒfƒBƒLƒ…
358[‚̃T[ƒ`‚ðŒø—¦‚æ‚­s‚¤‚½‚߂ɁC—Dæ“x‚²‚Ƃ̃^ƒXƒNƒLƒ…
359[
360 * ‚Ƀ^ƒXƒN‚ª“ü‚Á‚Ä‚¢‚é‚©‚Ç‚¤‚©‚ðŽ¦‚·ƒrƒbƒgƒ}ƒbƒv‚ð—pˆÓ‚µ‚Ä‚¢‚éDƒrƒb
361 * ƒgƒ}ƒbƒv‚ðŽg‚¤‚±‚ƂŁCƒƒ‚ƒŠƒAƒNƒZƒX‚̉ñ”‚ðŒ¸‚ç‚·‚±‚Æ‚ª‚Å‚«‚邪C
362 * ƒrƒbƒg‘€ì–½—ß‚ª[ŽÀ‚µ‚Ä‚¢‚È‚¢ƒvƒƒZƒbƒT‚ŁC—Dæ“x‚Ì’iŠK”‚ª­‚È‚¢
363 * ê‡‚ɂ́Cƒrƒbƒgƒ}ƒbƒv‘€ì‚̃I[ƒo[ƒwƒbƒh‚Ì‚½‚߂ɁC‹t‚ÉŒø—¦‚ª—Ž‚¿
364 * ‚é‰Â”\«‚à‚ ‚éD
365 *
366 * —Dæ“x‚ª16’iŠK‚Å‚ ‚邱‚Æ‚ð‰¼’è‚µ‚Ä‚¢‚邽‚߁Cuint16_tŒ^‚Æ‚µ‚Ä‚¢‚éD
367 */
368extern uint16_t ready_primap;
369
370/*
371 * Žg—p‚µ‚Ä‚¢‚È‚¢TCB‚̃ŠƒXƒg
372 */
373extern QUEUE free_tcb;
374
375/*
376 * ƒ^ƒXƒNID‚̍őå’likernel_cfg.cj
377 */
378extern const ID tmax_tskid;
379extern const ID tmax_stskid;
380
381/*
382 * ƒ^ƒXƒN‰Šú‰»ƒuƒƒbƒN‚̃GƒŠƒAikernel_cfg.cj
383 */
384extern const TINIB tinib_table[];
385extern TINIB atinib_table[];
386
387/*
388 * ƒ^ƒXƒN¶¬‡˜ƒe[ƒuƒ‹ikernel_cfg.cj
389 */
390extern const ID torder_table[];
391
392/*
393 * TCB‚̃GƒŠƒAikernel_cfg.cj
394 */
395extern TCB tcb_table[];
396
397/*
398 * ƒ^ƒXƒN‚̐”
399 */
400#define tnum_tsk ((uint_t)(tmax_tskid - TMIN_TSKID + 1))
401#define tnum_stsk ((uint_t)(tmax_stskid - TMIN_TSKID + 1))
402
403/*
404 * ƒ^ƒXƒNID‚©‚çTCB‚ðŽæ‚èo‚·‚½‚߂̃}ƒNƒ
405 */
406#define INDEX_TSK(tskid) ((uint_t)((tskid) - TMIN_TSKID))
407#define get_tcb(tskid) (&(tcb_table[INDEX_TSK(tskid)]))
408#define get_tcb_self(tskid) ((tskid) == TSK_SELF ? p_runtsk : get_tcb(tskid))
409
410/*
411 * TCB‚©‚çƒ^ƒXƒNID‚ðŽæ‚èo‚·‚½‚߂̃}ƒNƒ
412 */
413#define TSKID(p_tcb) ((ID)(((p_tcb) - tcb_table) + TMIN_TSKID))
414
415/*
416 * ƒ^ƒXƒNŠÇ—ƒ‚ƒWƒ…
417[ƒ‹‚̏‰Šú‰»
418 */
419extern void initialize_task(void);
420
421/*
422 * Å‚—Dæ‡ˆÊƒ^ƒXƒN‚̃T[ƒ`
423 *
424 * ƒŒƒfƒBƒLƒ…
425[’†‚̍ō‚—Dæ‡ˆÊ‚̃^ƒXƒN‚ðƒT[ƒ`‚µC‚»‚ÌTCB‚ւ̃|ƒCƒ“ƒ^
426 * ‚ð•Ô‚·DƒŒƒfƒBƒLƒ…
427[‚ª‹ó‚̏ꍇ‚ɂ́C‚±‚̊֐”‚ðŒÄ‚яo‚µ‚Ä‚Í‚È‚ç‚È‚¢D
428 */
429extern TCB *search_schedtsk(void);
430
431/*
432 * ŽÀs‚Å‚«‚éó‘Ô‚Ö‚Ì‘JˆÚ
433 *
434 * p_tcb‚ÅŽw’肳‚ê‚éƒ^ƒXƒN‚ðƒŒƒfƒBƒLƒ…
435[‚É‘}“ü‚·‚éDƒŒƒfƒBƒLƒ…
436[‚É‘}“ü
437 * ‚µ‚½ƒ^ƒXƒN‚Ì—Dæ“x‚ªCÅ‚—Dæ‡ˆÊ‚̃^ƒXƒN‚Ì—Dæ“x‚æ‚è‚à‚‚¢ê‡‚́C
438 * Å‚—Dæ‡ˆÊ‚̃^ƒXƒN‚ðXV‚µCƒfƒBƒXƒpƒbƒ`‹–‰Âó‘Ô‚Å‚ ‚ê‚Îtrue‚ð•Ô
439 * ‚·D‚»‚¤‚Å‚È‚¢ê‡‚Ífalse‚ð•Ô‚·D
440 */
441extern bool_t make_runnable(TCB *p_tcb);
442
443/*
444 * ŽÀs‚Å‚«‚éó‘Ô‚©‚瑼‚̏ó‘Ô‚Ö‚Ì‘JˆÚ
445 *
446 * p_tcb‚ÅŽw’肳‚ê‚éƒ^ƒXƒN‚ðƒŒƒfƒBƒLƒ…
447[‚©‚çíœ‚·‚éDp_tcb‚ÅŽw’肵‚½
448 * ƒ^ƒXƒN‚ªÅ‚—Dæ‡ˆÊ‚̃^ƒXƒN‚Å‚ ‚Á‚½ê‡‚ɂ́CÅ‚—Dæ‡ˆÊ‚̃^ƒXƒN
449 * ‚ðÝ’肵‚È‚¨‚µCƒfƒBƒXƒpƒbƒ`‹–‰Âó‘Ô‚Å‚ ‚ê‚Îtrue‚ð•Ô‚·D‚»‚¤‚Å‚È‚¢
450 * ê‡‚Ífalse‚ð•Ô‚·Dƒ^ƒXƒN‚̏ó‘Ԃ͍XV‚µ‚È‚¢D
451 */
452extern bool_t make_non_runnable(TCB *p_tcb);
453
454/*
455 * ‹xŽ~ó‘Ô‚Ö‚Ì‘JˆÚ
456 *
457 * p_tcb‚ÅŽw’肳‚ê‚éƒ^ƒXƒN‚̏ó‘Ô‚ð‹xŽ~ó‘Ô‚Æ‚·‚éD‚Ü‚½Cƒ^ƒXƒN‚Ì‹N“®
458 * Žž‚ɏ‰Šú‰»‚·‚ׂ«•Ï”‚̏‰Šú‰»‚ƁCƒ^ƒXƒN‹N“®‚Ì‚½‚߂̃Rƒ“ƒeƒLƒXƒg‚ðÝ
459 * ’è‚·‚éD
460 */
461extern void make_dormant(TCB *p_tcb);
462
463/*
464 * ‹xŽ~ó‘Ô‚©‚çŽÀs‚Å‚«‚éó‘Ô‚Ö‚Ì‘JˆÚ
465 *
466 * p_tcb‚ÅŽw’肳‚ê‚éƒ^ƒXƒN‚̏ó‘Ô‚ð‹xŽ~ó‘Ô‚©‚çŽÀs‚Å‚«‚éó‘Ô‚Æ‚·‚éD
467 * ŽÀs‚Å‚«‚éó‘Ô‚É‘JˆÚ‚µ‚½ƒ^ƒXƒN‚ւ̃fƒBƒXƒpƒbƒ`‚ª•K—v‚ȏꍇ‚ÍtrueC
468 * ‚»‚¤‚Å‚È‚¢ê‡‚Ífalse‚ð•Ô‚·D
469 */
470extern bool_t make_active(TCB *p_tcb);
471
472/*
473 * ƒ^ƒXƒN‚Ì—Dæ“x‚̕ύX
474 *
475 * p_tcb‚ÅŽw’肳‚ê‚éƒ^ƒXƒN‚Ì—Dæ“x‚ðnewprii“à•”•\Œ»j‚ɕύX‚·‚éD‚Ü‚½C
476 * •K—v‚ȏꍇ‚ɂ͍ō‚—Dæ‡ˆÊ‚̃^ƒXƒN‚ðXV‚µCƒfƒBƒXƒpƒbƒ`‹–‰Âó‘Ô‚Å
477 * ‚ ‚ê‚Îtrue‚ð•Ô‚·D‚»‚¤‚Å‚È‚¢ê‡‚Ífalse‚ð•Ô‚·D
478 */
479extern bool_t change_priority(TCB *p_tcb, uint_t newpri);
480
481/*
482 * ƒŒƒfƒBƒLƒ…
483[‚̉ñ“]
484 *
485 * ƒŒƒfƒBƒLƒ…
486[’†‚́Cpri‚ÅŽw’肳‚ê‚é—Dæ“x‚̃^ƒXƒNƒLƒ…
487[‚ð‰ñ“]‚³‚¹‚éD
488 * ‚Ü‚½C•K—v‚ȏꍇ‚ɂ͍ō‚—Dæ‡ˆÊ‚̃^ƒXƒN‚ð•ÏX‚µCƒfƒBƒXƒpƒbƒ`‚ª•Û
489 * —¯‚³‚ê‚Ä‚¢‚È‚¯‚ê‚Îtrue‚ð•Ô‚·D‚»‚¤‚Å‚È‚¢ê‡‚Ífalse‚ð•Ô‚·D
490 */
491extern bool_t rotate_ready_queue(uint_t pri);
492
493/*
494 * ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚̌ďo‚µ
495 *
496 * ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ðŒÄ‚яo‚·DŒÄ‚яo‚·‘O‚ɁCŽÀsó‘Ԃ̃^ƒXƒN‚Ì
497 * •Û—¯—áŠO—vˆö‚ðƒNƒŠƒA‚µCƒ^ƒXƒN—áŠOˆ—‹ÖŽ~ó‘Ô‚É‚µCCPUƒƒbƒN‚ð‰ð
498 * œ‚·‚éD
499 *
500 * ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚©‚ç–ß‚é‚ƁC‚Ü‚¸CPUƒƒbƒNó‘Ô‚É–ß‚µC‚»‚ÌŠÔ
501 * ‚É•Û—¯—áŠO—vˆö‚ª0‚Å‚È‚­‚È‚Á‚Ä‚¢‚ê‚΁CÄ‚у^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ð
502 * ŒÄ‚яo‚·D•Û—¯—áŠO—vˆö‚ª0‚̏ꍇ‚ɂ́C—áŠOˆ—‹–‰Âó‘Ô‚É‚µ‚Ċ֐”‚©
503 * ‚烊ƒ^[ƒ“‚·‚éD
504 *
505 * ‚±‚̊֐”‚́CŽÀsó‘Ԃ̃^ƒXƒN‚ªCƒ^ƒXƒN—áŠOˆ—‹–‰Âó‘ԁienatex‚ª
506 * truej‚ŁC•Û—¯—áŠO—vˆö‚ª0‚Å‚È‚¢itexptn‚ª0‚Å‚È‚¢jê‡‚ɌĂяo‚·‚±
507 * ‚Æ‚ð‘z’肵‚Ä‚¢‚éD‚±‚̊֐”‚́CCPUƒƒbƒNó‘ԂŌĂяo‚³‚È‚¯‚ê‚΂Ȃç
508 * ‚È‚¢D
509 */
510extern void call_texrtn(void);
511
512/*
513 * ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚Ì‹N“®
514 *
515 * ŽÀsó‘Ԃ̃^ƒXƒN‚ªƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚Ì‹N“®ðŒ‚ð–ž‚½‚µ‚Ä‚¢‚ê‚΁C
516 * ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ðŒÄ‚яo‚·DCPU—áŠOˆ—ƒ‹[ƒ`ƒ“‚ðŒÄ‚яo‚·Žž
517 * ‚́CˆêŽž“I‚ÉCPUƒƒbƒN‚ð‰ðœ‚·‚éD
518 *
519 * ‚±‚̊֐”‚́CƒfƒBƒXƒpƒbƒ`ƒƒ‚⊄ž‚݃nƒ“ƒhƒ‰^CPU—áŠOƒnƒ“ƒhƒ‰‚̏oŒû
520 * ˆ—‚©‚çŒÄ‚яo‚³‚ê‚邱‚Æ‚ð‘z’肵‚Ä‚¢‚éD‚±‚̊֐”‚́CCPUƒƒbƒNó‘Ô
521 * ‚ŌĂяo‚³‚È‚¯‚ê‚΂Ȃç‚È‚¢D
522 *
523 * ŽÀsŒø—¦‚ðã‚°‚邽‚߂ɁC‚±‚̊֐”‚ðƒ^[ƒQƒbƒgˆË‘¶•”‚Å‹Lq‚µ‚Ä‚à‚æ‚¢D
524 * ‚»‚̏ꍇ‚ɂ́COMIT_CALLTEX‚ðƒ}ƒNƒ’è‹`‚·‚éD
525 */
526extern void calltex(void);
527
528#endif /* TOPPERS_TASK_H */
Note: See TracBrowser for help on using the repository browser.