source: asp_ewarm/asp-1.7.0/extension/mutex/kernel/task.h@ 61

Last change on this file since 61 was 61, checked in by ertl-honda, 11 years ago

ASP for EWARM のコミット.

File size: 17.5 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 2018 2010-12-31 13:43:05Z ertl-hiro $
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#define TS_WAIT_MTX (0x0aU << 3) /* ƒ~ƒ…
99[ƒeƒbƒNƒX‚̃ƒbƒN‘Ò‚¿ */
100
101/*
102 * ƒ^ƒXƒNó‘Ô”»•Êƒ}ƒNƒ
103 *
104 * TSTAT_DORMANT‚̓^ƒXƒN‚ª‹xŽ~ó‘Ô‚Å‚ ‚é‚©‚Ç‚¤‚©‚ðCTSTAT_RUNNABLE‚Í
105 * ƒ^ƒXƒN‚ªŽÀs‚Å‚«‚éó‘Ô‚Å‚ ‚é‚©‚Ç‚¤‚©‚ð”»•Ê‚·‚éDTSTAT_WAITING‚Í‘Ò
106 * ‚¿ó‘Ô‚Æ“ñd‘Ò‚¿ó‘Ô‚Ì‚¢‚¸‚ê‚©‚Å‚ ‚é‚©‚Ç‚¤‚©‚ðCTSTAT_SUSPENDED‚Í
107 * ‹­§‘Ò‚¿ó‘Ô‚Æ“ñd‘Ò‚¿ó‘Ô‚Ì‚¢‚¸‚ê‚©‚Å‚ ‚é‚©‚Ç‚¤‚©‚ð”»•Ê‚·‚éD
108 */
109#define TSTAT_DORMANT(tstat) ((tstat) == TS_DORMANT)
110#define TSTAT_RUNNABLE(tstat) (((tstat) & TS_RUNNABLE) != 0U)
111#define TSTAT_WAITING(tstat) (((tstat) & TS_WAITING) != 0U)
112#define TSTAT_SUSPENDED(tstat) (((tstat) & TS_SUSPENDED) != 0U)
113
114/*
115 * ƒ^ƒXƒN‘Ò‚¿—vˆö”»•Êƒ}ƒNƒ
116 *
117 * TSTAT_WAIT_SLP‚̓^ƒXƒN‚ª‹N°‘Ò‚¿‚Å‚ ‚é‚©‚Ç‚¤‚©‚ðCTSTAT_WAIT_WOBJ
118 * ‚̓^ƒXƒN‚ª“¯ŠúE’ʐMƒIƒuƒWƒFƒNƒg‚ɑ΂·‚é‘Ò‚¿‚Å‚ ‚é‚©iŒ¾‚¢Š·‚¦‚é‚ƁC
119 * “¯Šú’ʐMƒIƒuƒWƒFƒNƒg‚Ì‘Ò‚¿ƒLƒ…
120[‚ɂ‚Ȃª‚ê‚Ä‚¢‚é‚©j‚Ç‚¤‚©‚ð”»•Ê‚·
121 * ‚éD‚Ü‚½CTSTAT_WAIT_WOBJCB‚̓^ƒXƒN‚ª“¯ŠúE’ʐMƒIƒuƒWƒFƒNƒg‚ÌŠÇ—
122 * ƒuƒƒbƒN‚Ì‹¤’Ê•”•ªiWOBJCBj‚Ì‘Ò‚¿ƒLƒ…
123[‚ɂ‚Ȃª‚ê‚Ä‚¢‚é‚©‚Ç‚¤‚©‚ð
124 * ”»•Ê‚·‚éD
125 *
126 * TSTAT_WAIT_SLP‚́C”CˆÓ‚̃^ƒXƒNó‘Ô‚Ì’†‚©‚çCƒ^ƒXƒN‚ª‹N°‘Ò‚¿‚Å‚ ‚é
127 * ‚±‚Æ‚ð”»•Ê‚Å‚«‚éD‚·‚È‚í‚¿CTSTAT_WAITING‚É‚æ‚è‘Ò‚¿ó‘Ô‚Å‚ ‚邱‚Æ‚ð
128 * ”»•Ê‚¹‚¸‚ɁCTSTAT_SLP‚¾‚¯‚ð—p‚¢‚Ä‹N°‘Ò‚¿ó‘Ô‚Å‚ ‚邱‚Æ‚ð”»•Ê‚Å‚«‚éD
129 * ‚±‚ê‚ðŒø—¦“I‚ÉŽÀŒ»‚·‚邽‚߂ɁCTS_WAIT_SLP‚Ì’l‚ðC(0x00U << 3)‚Å‚Í‚È
130 * ‚­(0x01U << 3)‚Æ‚µ‚Ä‚¢‚éD‚»‚Ì‚½‚߁Cƒ^ƒXƒN‚ªŽžŠÔŒo‰ß‘Ò‚¿ó‘Ô‚Å‚ ‚é
131 * ‚±‚Æ‚ð”»•Ê‚·‚邽‚ß‚ÌTSTAT_WAIT_DLY‚ðCTSTAT_WAIT_SLP‚Æ“¯—l‚Ì•û–@‚Å
132 * ŽÀŒ»‚·‚邱‚Æ‚Í‚Å‚«‚È‚¢D
133 */
134#define TS_WAIT_MASK (0x0fU << 3) /* ‘Ò‚¿—vˆö‚ÌŽæo‚µƒ}ƒXƒN */
135
136#define TSTAT_WAIT_SLP(tstat) (((tstat) & TS_WAIT_MASK) == TS_WAIT_SLP)
137#define TSTAT_WAIT_WOBJ(tstat) (((tstat) & TS_WAIT_MASK) >= TS_WAIT_RDTQ)
138#define TSTAT_WAIT_WOBJCB(tstat) (((tstat) & TS_WAIT_MASK) >= TS_WAIT_SEM)
139#define TSTAT_WAIT_MTX(tstat) (((tstat) & TS_WAIT_MASK) == TS_WAIT_MTX)
140
141/*
142 * ‘Ò‚¿î•ñƒuƒƒbƒNiWINFOj‚Ì’è‹`
143 *
144 * ƒ^ƒXƒN‚ª‘Ò‚¿ó‘Ԃ̊Ԃ́CTCB‚¨‚æ‚Ñ‚»‚Ìp_winfo‚ÅŽw‚³‚ê‚éWINFO‚ðŽŸ‚Ì
145 * ‚悤‚ɐݒ肵‚È‚¯‚ê‚΂Ȃç‚È‚¢D
146 *
147 * (a) TCB‚̃^ƒXƒNó‘Ô‚ð‘Ò‚¿ó‘ԁiTS_WAITINGj‚É‚·‚éD‚»‚̍ۂɁC‘Ò‚¿
148 * —vˆöiTS_WAIT_???j‚àÝ’è‚·‚éD
149 *
150 * (b) ƒ^ƒCƒ€ƒAƒEƒg‚ðŠÄŽ‹‚·‚邽‚߂ɁCƒ^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN‚ð“o˜^‚·‚éD
151 * “o˜^‚·‚éƒ^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN‚́C‘Ò‚¿‚É“ü‚éƒT[ƒrƒXƒR[ƒ‹ˆ—ŠÖ”
152 * ‚̃[ƒJƒ‹•Ï”‚Æ‚µ‚ÄŠm•Û‚µC‚»‚ê‚ւ̃|ƒCƒ“ƒ^‚ðWINFO‚Ìp_tmevtb‚É‹L
153 * ‰¯‚·‚éDƒ^ƒCƒ€ƒAƒEƒg‚ÌŠÄŽ‹‚ª•K—v‚È‚¢ê‡i‰i‹v‘Ò‚¿‚̏ꍇj‚ɂ́C
154 * p_tmevtb‚ðNULL‚É‚·‚éD
155 *
156 * “¯ŠúE’ʐMƒIƒuƒWƒFƒNƒg‚ɑ΂·‚é‘Ò‚¿ó‘Ԃ̏ꍇ‚ɂ́C•W€‚ÌWINFO‚É
157 * p_wobjcbƒtƒB[ƒ‹ƒh‚ð’ljÁ‚µ‚½\‘¢‘́iWINFO_WOBJCwait.h‚Å’è‹`j‚ðŽg
158 * ‚¤D‚Ü‚½CˆÈ‰º‚Ì(c)`(e)‚̐ݒè‚ðs‚¤•K—v‚ª‚ ‚éD“¯ŠúE’ʐMƒIƒuƒWƒF
159 * ƒNƒg‚ÉŠÖŒW‚µ‚È‚¢‘Ò‚¿i‹N°‘Ò‚¿CŽžŠÔŒo‰ß‘Ò‚¿j‚̏ꍇ‚ɂ́C(c)`(e)
160 * ‚Í•K—v‚È‚¢D
161 *
162 * (c) TCB‚ð‘Ò‚¿‘Ώۂ̓¯ŠúE’ʐMƒIƒuƒWƒFƒNƒg‚Ì‘Ò‚¿ƒLƒ…
163[‚ɂ‚Ȃ®D‘Ò
164 * ‚¿ƒLƒ…
165[‚ɂ‚Ȃ®‚½‚߂ɁCtask_queue‚ðŽg‚¤D
166 *
167 * (d) ‘Ò‚¿‘Ώۂ̓¯ŠúE’ʐMƒIƒuƒWƒFƒNƒg‚ÌŠÇ—ƒuƒƒbƒN‚ւ̃|ƒCƒ“ƒ^‚ðC
168 * WINFO_WOBJ‚Ìp_wobjcb‚É‹L‰¯‚·‚éD
169 *
170 * (e) ‘Ò‚¿‘Ώۂ̓¯ŠúE’ʐMƒIƒuƒWƒFƒNƒg‚Ɉˑ¶‚µ‚Ä‹L‰¯‚·‚邱‚Æ‚ª•K—v‚È
171 * î•ñ‚ª‚ ‚éê‡‚ɂ́CWINFO_WOBJ‚É•K—v‚ȏî•ñ‚Ì‚½‚߂̃tƒB[ƒ‹ƒh‚ð’ljÁ
172 * ‚µ‚½\‘¢‘Ì‚ð’è‹`‚µCWINFO_WOBJ‚Ì‘ã‚í‚è‚É—p‚¢‚éD
173 *
174 * ‘Ò‚¿ó‘Ô‚ð‰ðœ‚·‚éÛ‚ɂ́C‘Ò‚¿‰ðœ‚µ‚½ƒ^ƒXƒN‚ɑ΂·‚é•Ô’l‚ðWINFO‚Ì
175 * wercd‚ɐݒ肷‚éDwercd‚ª•K—v‚È‚Ì‚Í‘Ò‚¿‰ðœˆÈ~‚Å‚ ‚é‚̂ɑ΂µ‚āC
176 * p_tmevtb‚Í‘Ò‚¿‰ðœŒã‚Í•K—v‚È‚¢‚½‚߁Cƒƒ‚ƒŠß–ñ‚Ì‚½‚ß‚É‹¤—p‘Ì‚ðŽg‚Á
177 * ‚Ä‚¢‚éD‚»‚Ì‚½‚߁Cwercd‚ÖƒGƒ‰[ƒR[ƒh‚ðÝ’è‚·‚é‚̂́Cƒ^ƒCƒ€ƒCƒxƒ“ƒg
178 * ƒuƒƒbƒN‚ð“o˜^‰ðœ‚µ‚½Œã‚É‚µ‚È‚¯‚ê‚΂Ȃç‚È‚¢D
179 */
180typedef union waiting_information {
181 ER wercd; /* ‘Ò‚¿‰ðœŽž‚̃Gƒ‰[ƒR[ƒh */
182 TMEVTB *p_tmevtb; /* ‘Ò‚¿ó‘Ô—p‚̃^ƒCƒ€ƒCƒxƒ“ƒgƒuƒƒbƒN */
183} WINFO;
184
185/*
186 * ƒ^ƒXƒN‰Šú‰»ƒuƒƒbƒN
187 *
188 * ƒ^ƒXƒN‚ÉŠÖ‚·‚éî•ñ‚ðC’l‚ª•Ï‚í‚ç‚È‚¢‚½‚ß‚ÉROM‚É’u‚¯‚é•”•ªiƒ^ƒXƒN
189 * ‰Šú‰»ƒuƒƒbƒNj‚ƁC’l‚ª•Ï‰»‚·‚邽‚ß‚ÉRAM‚É’u‚©‚È‚¯‚ê‚΂Ȃç‚È‚¢•”
190 * •ªiƒ^ƒXƒNŠÇ—ƒuƒƒbƒNCTCBj‚É•ª—£‚µCTCB“à‚ɑΉž‚·‚éƒ^ƒXƒN‰Šú‰»
191 * ƒuƒƒbƒN‚ðŽw‚·ƒ|ƒCƒ“ƒ^‚ð“ü‚ê‚éDƒ^ƒXƒN‰Šú‰»ƒuƒƒbƒN“à‚ɑΉž‚·‚é
192 * TCB‚ðŽw‚·ƒ|ƒCƒ“ƒ^‚ð“ü‚ê‚é•û–@‚Ì•û‚ªCRAM‚̐ߖñ‚ÌŠÏ“_‚©‚ç‚Í–]‚Ü‚µ‚¢
193 * ‚ªCŽÀsŒø—¦‚ªˆ«‚­‚Ȃ邽‚߂ɍ̗p‚µ‚Ä‚¢‚È‚¢D‘¼‚̃IƒuƒWƒFƒNƒg‚ɂ‚¢
194 * ‚Ä‚à“¯—l‚Ɉµ‚¤D
195 *
196 * ƒ^ƒXƒN‰Šú‰»ƒuƒƒbƒN‚ɂ́CDEF_TEX‚Å’è‹`‚³‚ê‚éƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`
197 * ƒ“‚ÉŠÖ‚·‚éî•ñ‚àŠÜ‚ށD
198 */
199typedef struct task_initialization_block {
200 ATR tskatr; /* ƒ^ƒXƒN‘®« */
201 intptr_t exinf; /* ƒ^ƒXƒN‚ÌŠg’£î•ñ */
202 TASK task; /* ƒ^ƒXƒN‚Ì‹N“®”Ô’n */
203 uint_t ipriority; /* ƒ^ƒXƒN‚Ì‹N“®Žž—Dæ“xi“à•”•\Œ»j */
204
205#ifdef USE_TSKINICTXB
206 TSKINICTXB tskinictxb; /* ƒ^ƒXƒN‰Šú‰»ƒRƒ“ƒeƒLƒXƒgƒuƒƒbƒN */
207#else /* USE_TSKINICTXB */
208 SIZE stksz; /* ƒXƒ^ƒbƒN—̈æ‚̃TƒCƒYiŠÛ‚ß‚½’lj */
209 void *stk; /* ƒXƒ^ƒbƒN—̈æ‚̐擪”Ô’n */
210#endif /* USE_TSKINICTXB */
211
212 ATR texatr; /* ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‘®« */
213 TEXRTN texrtn; /* ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚Ì‹N“®”Ô’n */
214} TINIB;
215
216/*
217 * TCB’†‚̃tƒB[ƒ‹ƒh‚̃rƒbƒg•‚Ì’è‹`
218 *
219 * ƒvƒƒZƒbƒT‚É‚æ‚Á‚ẮCTCB’†‚̃tƒB[ƒ‹ƒh‚̃rƒbƒg•‚сƒ‚ƒŠŽg—p—Ê‚Æ
220 * «”\‚ªƒgƒŒ[ƒhƒIƒt‚ɂȂ邽‚߁Cƒ^[ƒQƒbƒgˆË‘¶‚ɃtƒB[ƒ‹ƒh‚̃rƒbƒg•
221 * ‚ð•ÏX‚·‚邱‚Æ‚ð‹–‚µ‚Ä‚¢‚éD
222 */
223#ifndef TBIT_TCB_PRIORITY
224#define TBIT_TCB_PRIORITY 8 /* priorityƒtƒB[ƒ‹ƒh‚̃rƒbƒg• */
225#endif /* TBIT_TCB_PRIORITY */
226
227/*
228 * ƒ^ƒXƒNŠÇ—ƒuƒƒbƒNiTCBj
229 *
230 * ASPƒJ[ƒlƒ‹‚ł́Cƒ^ƒXƒN‚Ì‹N“®—v‹ƒLƒ…
231[ƒCƒ“ƒO”‚̍őå’liTMAX_ACTCNTj
232 * ‚Æ‹N°—v‹ƒLƒ…
233[ƒCƒ“ƒO”‚̍őå’liTMAX_WUPCNTj‚Í1‚ɌŒ肳‚ê‚Ä‚¢‚é
234 * ‚½‚߁CƒLƒ…
235[ƒCƒ“ƒO‚³‚ê‚Ä‚¢‚é‚©‚Ç‚¤‚©‚̐^‹U’l‚Å•\Œ»‚·‚邱‚Æ‚ª‚Å‚«‚éD
236 * ‚Ü‚½C‹­§‘Ò‚¿—v‹ƒlƒXƒg”‚̍őå’liTMAX_SUSCNTj‚ª1‚ɌŒ肳‚ê‚Ä‚¢
237 * ‚é‚̂ŁC‹­§‘Ò‚¿—v‹ƒlƒXƒg”isuscntj‚Í•K—v‚È‚¢D
238 *
239 * TCB‚Ì‚¢‚­‚‚©‚̃tƒB[ƒ‹ƒh‚́C“Á’è‚̃^ƒXƒNó‘Ô‚Å‚Ì‚Ý—LŒø‚È’l‚ð•ÛŽ‚µC
240 * ‚»‚êˆÈŠO‚̏ꍇ‚Í’l‚ª•ÛØ‚³‚ê‚È‚¢i‚æ‚Á‚āCŽQÆ‚µ‚Ä‚Í‚È‚ç‚È‚¢jDŠe
241 * ƒtƒB[ƒ‹ƒh‚ª—LŒø‚È’l‚ð•ÛŽ‚·‚éðŒ‚ÍŽŸ‚Ì’Ê‚èD
242 *
243 * E‰Šú‰»Œã‚͏í‚É—LŒøF
244 * p_tinibCtstatCactque
245 * E‹xŽ~ó‘ԈȊO‚Å—LŒøi‹xŽ~ó‘Ԃł͏‰Šú’l‚É‚È‚Á‚Ä‚¢‚éjF
246 * bpriorityCpriorityCwupqueCenatexCtexptnCmutex_queue
247 * E‘Ò‚¿ó‘ԁi“ñd‘Ò‚¿ó‘Ô‚ðŠÜ‚ށj‚Å—LŒøF
248 * p_winfo
249 * EŽÀs‚Å‚«‚éó‘Ô‚Æ“¯ŠúE’ʐMƒIƒuƒWƒFƒNƒg‚ɑ΂·‚é‘Ò‚¿ó‘Ô‚Å—LŒøF
250 * task_queue
251 * EŽÀs‰Â”\ó‘ԁC‘Ò‚¿ó‘ԁC‹­§‘Ò‚¿ó‘ԁC“ñd‘Ò‚¿ó‘Ô‚Å—LŒøF
252 * tskctxb
253 */
254typedef struct task_control_block {
255 QUEUE task_queue; /* ƒ^ƒXƒNƒLƒ…
256[ */
257 const TINIB *p_tinib; /* ‰Šú‰»ƒuƒƒbƒN‚ւ̃|ƒCƒ“ƒ^ */
258
259#ifdef UINT8_MAX
260 uint8_t tstat; /* ƒ^ƒXƒNó‘ԁi“à•”•\Œ»j*/
261#else /* UINT8_MAX */
262 BIT_FIELD_UINT tstat : 8; /* ƒ^ƒXƒNó‘ԁi“à•”•\Œ»j*/
263#endif /* UINT8_MAX */
264 BIT_FIELD_UINT bpriority : TBIT_TCB_PRIORITY;
265 /* ƒx[ƒX—Dæ“xi“à•”•\Œ»j*/
266#if defined(UINT8_MAX) && (TBIT_TCB_PRIORITY == 8)
267 uint8_t priority; /* Œ»Ý‚Ì—Dæ“xi“à•”•\Œ»j*/
268#else /* defined(UINT8_MAX) && (TBIT_TCB_PRIORITY == 8) */
269 BIT_FIELD_UINT priority : TBIT_TCB_PRIORITY;
270 /* Œ»Ý‚Ì—Dæ“xi“à•”•\Œ»j*/
271#endif /* defined(UINT8_MAX) && (TBIT_TCB_PRIORITY == 8) */
272 BIT_FIELD_BOOL actque : 1; /* ‹N“®—v‹ƒLƒ…
273[ƒCƒ“ƒO */
274 BIT_FIELD_BOOL wupque : 1; /* ‹N°—v‹ƒLƒ…
275[ƒCƒ“ƒO */
276 BIT_FIELD_BOOL enatex : 1; /* ƒ^ƒXƒN—áŠOˆ—‹–‰Âó‘Ô */
277
278 TEXPTN texptn; /* •Û—¯—áŠO—vˆö */
279 WINFO *p_winfo; /* ‘Ò‚¿î•ñƒuƒƒbƒN‚ւ̃|ƒCƒ“ƒ^ */
280 QUEUE mutex_queue; /* ƒƒbƒN‚µ‚Ä‚¢‚éƒ~ƒ…
281[ƒeƒbƒNƒX‚̃Lƒ…
282[ */
283 TSKCTXB tskctxb; /* ƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒgƒuƒƒbƒN */
284} TCB;
285
286/*
287 * ŽÀsó‘Ԃ̃^ƒXƒN
288 *
289 * ŽÀsó‘Ԃ̃^ƒXƒNiƒvƒƒZƒbƒT‚ªƒRƒ“ƒeƒLƒXƒg‚ðŽ‚Á‚Ä‚¢‚éƒ^ƒXƒNj‚Ì
290 * TCB‚ðŽw‚·ƒ|ƒCƒ“ƒ^DŽÀsó‘Ԃ̃^ƒXƒN‚ª‚È‚¢ê‡‚ÍNULL‚É‚·‚éD
291 *
292 * ƒT[ƒrƒXƒR[ƒ‹‚̏ˆ—’†‚ŁCŽ©ƒ^ƒXƒNiƒT[ƒrƒXƒR[ƒ‹‚ðŒÄ‚яo‚µ‚½ƒ^ƒX
293 * ƒNj‚ÉŠÖ‚·‚éî•ñ‚ðŽQÆ‚·‚éê‡‚Íp_runtsk‚ðŽg‚¤Dp_runtsk‚ð‘‚«Š·‚¦
294 * ‚é‚̂́CƒfƒBƒXƒpƒbƒ`ƒƒi‚Ə‰Šú‰»ˆ—j‚Ì‚Ý‚Å‚ ‚éD
295 */
296extern TCB *p_runtsk;
297
298/*
299 * Å‚—Dæ‡ˆÊ‚̃^ƒXƒN
300 *
301 * ŽÀs‚Å‚«‚éƒ^ƒXƒN‚Ì’†‚ōō‚—Dæ‡ˆÊ‚̃^ƒXƒN‚ÌTCB‚ðŽw‚·ƒ|ƒCƒ“ƒ^DŽÀ
302 * s‚Å‚«‚éƒ^ƒXƒN‚ª‚È‚¢ê‡‚ÍNULL‚É‚·‚éD
303 *
304 * ƒfƒBƒXƒpƒbƒ`‹ÖŽ~ó‘ԂȂǁCƒfƒBƒXƒpƒbƒ`‚ª•Û—¯‚³‚ê‚Ä‚¢‚éŠÔ‚Íp_runtsk
305 * ‚ƈê’v‚µ‚Ä‚¢‚é‚Æ‚ÍŒÀ‚ç‚È‚¢D
306 */
307extern TCB *p_schedtsk;
308
309/*
310 * ƒfƒBƒXƒpƒbƒ`^ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‹N“®—v‹ƒtƒ‰ƒO
311 *
312 * Š„ž‚݃nƒ“ƒhƒ‰^CPU—áŠOƒnƒ“ƒhƒ‰‚̏oŒûˆ—‚ɁCƒfƒBƒXƒpƒbƒ`‚Ü‚½‚Í
313 * ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚Ì‹N“®‚ð—v‹‚·‚邱‚Æ‚ðŽ¦‚·ƒtƒ‰ƒOD
314 */
315extern bool_t reqflg;
316
317/*
318 * Š„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœó‘Ô
319 *
320 * Š„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœó‘Ô‚Å‚ ‚邱‚Æ‚ðŽ¦‚·ƒtƒ‰ƒOD
321 */
322extern bool_t ipmflg;
323
324/*
325 * ƒfƒBƒXƒpƒbƒ`‹ÖŽ~ó‘Ô
326 *
327 * ƒfƒBƒXƒpƒbƒ`‹ÖŽ~ó‘Ô‚Å‚ ‚邱‚Æ‚ðŽ¦‚·ƒtƒ‰ƒOD
328 */
329extern bool_t disdsp;
330
331/*
332 * ƒ^ƒXƒNƒfƒBƒXƒpƒbƒ`‰Â”\ó‘Ô
333 *
334 * Š„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœó‘Ô‚Å‚ ‚èCƒfƒBƒXƒpƒbƒ`‹–‰Âó‘Ô‚Å‚ ‚éiƒfƒB
335 * ƒXƒpƒbƒ`‹ÖŽ~ó‘Ô‚Å‚È‚¢j‚±‚Æ‚ðŽ¦‚·ƒtƒ‰ƒOD
336 */
337extern bool_t dspflg;
338
339/*
340 * ƒŒƒfƒBƒLƒ…
341[
342 *
343 * ƒŒƒfƒBƒLƒ…
344[‚́CŽÀs‚Å‚«‚éó‘Ԃ̃^ƒXƒN‚ðŠÇ—‚·‚邽‚߂̃Lƒ…
345[‚Å‚ ‚éD
346 * ŽÀsó‘Ԃ̃^ƒXƒN‚àŠÇ—‚µ‚Ä‚¢‚邽‚߁CƒŒƒfƒBiŽÀs‰Â”\jƒLƒ…
347[‚Æ‚¢‚¤
348 * –¼Ì‚͐³Šm‚Å‚Í‚È‚¢‚ªCƒŒƒfƒBƒLƒ…
349[‚Æ‚¢‚¤–¼Ì‚ª’è’…
350‚µ‚Ä‚¢‚邽‚߁C‚±
351 * ‚Ì–¼Ì‚ŌĂԂ±‚Æ‚É‚·‚éD
352 *
353 * ƒŒƒfƒBƒLƒ…
354[‚́C—Dæ“x‚²‚Ƃ̃^ƒXƒNƒLƒ…
355[‚ō\¬‚³‚ê‚Ä‚¢‚éDƒ^ƒXƒN‚Ì
356 * TCB‚́CŠY“–‚·‚é—Dæ“x‚̃Lƒ…
357[‚É“o˜^‚³‚ê‚éD
358 */
359extern QUEUE ready_queue[TNUM_TPRI];
360
361/*
362 * ƒŒƒfƒBƒLƒ…
363[ƒT[ƒ`‚Ì‚½‚߂̃rƒbƒgƒ}ƒbƒv
364 *
365 * ƒŒƒfƒBƒLƒ…
366[‚̃T[ƒ`‚ðŒø—¦‚æ‚­s‚¤‚½‚߂ɁC—Dæ“x‚²‚Ƃ̃^ƒXƒNƒLƒ…
367[
368 * ‚Ƀ^ƒXƒN‚ª“ü‚Á‚Ä‚¢‚é‚©‚Ç‚¤‚©‚ðŽ¦‚·ƒrƒbƒgƒ}ƒbƒv‚ð—pˆÓ‚µ‚Ä‚¢‚éDƒrƒb
369 * ƒgƒ}ƒbƒv‚ðŽg‚¤‚±‚ƂŁCƒƒ‚ƒŠƒAƒNƒZƒX‚̉ñ”‚ðŒ¸‚ç‚·‚±‚Æ‚ª‚Å‚«‚邪C
370 * ƒrƒbƒg‘€ì–½—ß‚ª[ŽÀ‚µ‚Ä‚¢‚È‚¢ƒvƒƒZƒbƒT‚ŁC—Dæ“x‚Ì’iŠK”‚ª­‚È‚¢
371 * ê‡‚ɂ́Cƒrƒbƒgƒ}ƒbƒv‘€ì‚̃I[ƒo[ƒwƒbƒh‚Ì‚½‚߂ɁC‹t‚ÉŒø—¦‚ª—Ž‚¿
372 * ‚é‰Â”\«‚à‚ ‚éD
373 *
374 * —Dæ“x‚ª16’iŠK‚Å‚ ‚邱‚Æ‚ð‰¼’è‚µ‚Ä‚¢‚邽‚߁Cuint16_tŒ^‚Æ‚µ‚Ä‚¢‚éD
375 */
376extern uint16_t ready_primap;
377
378/*
379 * ƒ^ƒXƒNID‚̍őå’likernel_cfg.cj
380 */
381extern const ID tmax_tskid;
382
383/*
384 * ƒ^ƒXƒN‰Šú‰»ƒuƒƒbƒN‚̃GƒŠƒAikernel_cfg.cj
385 */
386extern const TINIB tinib_table[];
387
388/*
389 * ƒ^ƒXƒN¶¬‡˜ƒe[ƒuƒ‹ikernel_cfg.cj
390 */
391extern const ID torder_table[];
392
393/*
394 * TCB‚̃GƒŠƒAikernel_cfg.cj
395 */
396extern TCB tcb_table[];
397
398/*
399 * ƒ^ƒXƒN‚̐”
400 */
401#define tnum_tsk ((uint_t)(tmax_tskid - 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 *
479 * p_tcb‚ÅŽw’肳‚ê‚éƒ^ƒXƒN‚Ì—Dæ‡ˆÊ‚́Cmtxmode‚ªfalse‚ÌŽž‚Í“¯‚¶—Dæ“x
480 * ‚̃^ƒXƒN‚Ì’†‚ōŒáCmtxmode‚ªtrue‚ÌŽž‚Í“¯‚¶—Dæ“x‚̃^ƒXƒN‚Ì’†‚ōō‚
481 * ‚Æ‚·‚éD
482 */
483extern bool_t change_priority(TCB *p_tcb, uint_t newpri, bool_t mtxmode);
484
485/*
486 * ƒŒƒfƒBƒLƒ…
487[‚̉ñ“]
488 *
489 * ƒŒƒfƒBƒLƒ…
490[’†‚́Cpri‚ÅŽw’肳‚ê‚é—Dæ“x‚̃^ƒXƒNƒLƒ…
491[‚ð‰ñ“]‚³‚¹‚éD
492 * ‚Ü‚½C•K—v‚ȏꍇ‚ɂ͍ō‚—Dæ‡ˆÊ‚̃^ƒXƒN‚ð•ÏX‚µCƒfƒBƒXƒpƒbƒ`‚ª•Û
493 * —¯‚³‚ê‚Ä‚¢‚È‚¯‚ê‚Îtrue‚ð•Ô‚·D‚»‚¤‚Å‚È‚¢ê‡‚Ífalse‚ð•Ô‚·D
494 */
495extern bool_t rotate_ready_queue(uint_t pri);
496
497/*
498 * ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚̌ďo‚µ
499 *
500 * ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ðŒÄ‚яo‚·DŒÄ‚яo‚·‘O‚ɁCŽÀsó‘Ԃ̃^ƒXƒN‚Ì
501 * •Û—¯—áŠO—vˆö‚ðƒNƒŠƒA‚µCƒ^ƒXƒN—áŠOˆ—‹ÖŽ~ó‘Ô‚É‚µCCPUƒƒbƒN‚ð‰ð
502 * œ‚·‚éD
503 *
504 * ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚©‚ç–ß‚é‚ƁC‚Ü‚¸CPUƒƒbƒNó‘Ô‚É–ß‚µC‚»‚ÌŠÔ
505 * ‚É•Û—¯—áŠO—vˆö‚ª0‚Å‚È‚­‚È‚Á‚Ä‚¢‚ê‚΁CÄ‚у^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ð
506 * ŒÄ‚яo‚·D•Û—¯—áŠO—vˆö‚ª0‚̏ꍇ‚ɂ́C—áŠOˆ—‹–‰Âó‘Ô‚É‚µ‚Ċ֐”‚©
507 * ‚烊ƒ^[ƒ“‚·‚éD
508 *
509 * ‚±‚̊֐”‚́CŽÀsó‘Ԃ̃^ƒXƒN‚ªCƒ^ƒXƒN—áŠOˆ—‹–‰Âó‘ԁienatex‚ª
510 * truej‚ŁC•Û—¯—áŠO—vˆö‚ª0‚Å‚È‚¢itexptn‚ª0‚Å‚È‚¢jê‡‚ɌĂяo‚·‚±
511 * ‚Æ‚ð‘z’肵‚Ä‚¢‚éD‚±‚̊֐”‚́CCPUƒƒbƒNó‘ԂŌĂяo‚³‚È‚¯‚ê‚΂Ȃç
512 * ‚È‚¢D
513 */
514extern void call_texrtn(void);
515
516/*
517 * ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚Ì‹N“®
518 *
519 * ŽÀsó‘Ԃ̃^ƒXƒN‚ªƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚Ì‹N“®ðŒ‚ð–ž‚½‚µ‚Ä‚¢‚ê‚΁C
520 * ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ðŒÄ‚яo‚·DCPU—áŠOˆ—ƒ‹[ƒ`ƒ“‚ðŒÄ‚яo‚·Žž
521 * ‚́CˆêŽž“I‚ÉCPUƒƒbƒN‚ð‰ðœ‚·‚éD
522 *
523 * ‚±‚̊֐”‚́CƒfƒBƒXƒpƒbƒ`ƒƒ‚⊄ž‚݃nƒ“ƒhƒ‰^CPU—áŠOƒnƒ“ƒhƒ‰‚̏oŒû
524 * ˆ—‚©‚çŒÄ‚яo‚³‚ê‚邱‚Æ‚ð‘z’肵‚Ä‚¢‚éD‚±‚̊֐”‚́CCPUƒƒbƒNó‘Ô
525 * ‚ŌĂяo‚³‚È‚¯‚ê‚΂Ȃç‚È‚¢D
526 *
527 * ŽÀsŒø—¦‚ðã‚°‚邽‚߂ɁC‚±‚̊֐”‚ðƒ^[ƒQƒbƒgˆË‘¶•”‚Å‹Lq‚µ‚Ä‚à‚æ‚¢D
528 * ‚»‚̏ꍇ‚ɂ́COMIT_CALLTEX‚ðƒ}ƒNƒ’è‹`‚·‚éD
529 */
530extern void calltex(void);
531
532#endif /* TOPPERS_TASK_H */
Note: See TracBrowser for help on using the repository browser.