source: asp_ewarm/asp-1.7.0/test/test_tex1.c@ 61

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

ASP for EWARM のコミット.

File size: 14.2 KB
Line 
1/*
2 * TOPPERS Software
3 * Toyohashi Open Platform for Embedded Real-Time Systems
4 *
5 * Copyright (C) 2006-2010 by Embedded and Real-Time Systems Laboratory
6 * Graduate School of Information Science, Nagoya Univ., JAPAN
7 *
8 * ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
9 * ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
10 * •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
11 * (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
12 * Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
13 * ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
14 * (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
15 * —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ…
16ƒƒ“ƒgi—˜—p
17 * ŽÒƒ}ƒjƒ…
18ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
19 * ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
20 * (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
21 * —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
22 * ‚ƁD
23 * (a) Ä”z•z‚É”º‚¤ƒhƒLƒ…
24ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ…
25ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
26 * ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
27 * (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
28 * •ñ‚·‚邱‚ƁD
29 * (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
30 * ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
31 * ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
32 * —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
33 * –Ɛӂ·‚邱‚ƁD
34 *
35 * –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
36 * ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
37 * ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
38 * ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
39 * ‚̐ӔC‚𕉂í‚È‚¢D
40 *
41 * @(#) $Id: test_tex1.c 2007 2010-12-31 05:48:15Z ertl-hiro $
42 */
43
44/*
45 * ƒ^ƒXƒN—áŠOˆ—‚ÉŠÖ‚·‚éƒeƒXƒg(1)
46 *
47 * yƒeƒXƒg‚Ì–Ú“Iz
48 *
49 * ƒ^ƒXƒN‚©‚çƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ð‹N“®‚·‚鏈—‚ð–Ô—…
50“I‚ɃeƒXƒg‚·‚éD
51 *
52 * yƒeƒXƒg€–ځz
53 *
54 * (A) ras_tex‚̃Gƒ‰[ŒŸo
55 * (A-1) ‘Ώۃ^ƒXƒN‚ª‹xŽ~ó‘Ô
56 * (A-2) ‘Ώۃ^ƒXƒN‚̃^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ª’è‹`‚³‚ê‚Ä‚¢‚È‚¢
57 * (B) dis_tex‚̃Gƒ‰[ŒŸo
58 * (B-1) Ž©ƒ^ƒXƒN‚̃^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ª’è‹`‚³‚ê‚Ä‚¢‚È‚¢
59 * (C) ena_tex‚̃Gƒ‰[ŒŸo
60 * (C-1) Ž©ƒ^ƒXƒN‚̃^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ª’è‹`‚³‚ê‚Ä‚¢‚È‚¢
61 * (D) ref_tex‚̃Gƒ‰[ŒŸo
62 * (D-1) ‘Ώۃ^ƒXƒN‚ª‹xŽ~ó‘Ô
63 * (D-2) ‘Ώۃ^ƒXƒN‚̃^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ª’è‹`‚³‚ê‚Ä‚¢‚È‚¢
64 * (E) ras_tex‚̐³íˆ—
65 * (E-1) ‘Ώۃ^ƒXƒN‚ªŽ©ƒ^ƒXƒNCƒ^ƒXƒN—áŠOˆ—‹–‰ÂC‚©‚Š„ž‚Ý—Dæ
66 * “xƒ}ƒXƒN‘S‰ðœó‘ԂŁC‚·‚®‚ÉŽÀsŠJŽn
67 * (E-2) ‘Ώۃ^ƒXƒN‚ªŽ©ƒ^ƒXƒN‚Å‚È‚¢
68 * (E-3) ‘Ώۃ^ƒXƒN‚ªŽ©ƒ^ƒXƒN‚¾‚ªCƒ^ƒXƒN—áŠOˆ—‹ÖŽ~
69 * (E-4) ‘Ώۃ^ƒXƒN‚ªŽ©ƒ^ƒXƒN‚Ń^ƒXƒN—áŠOˆ—‹–‰Â‚¾‚ªCŠ„ž‚Ý—Dæ
70 * “xƒ}ƒXƒN‚ª‘S‰ðœ‚Å‚È‚¢
71 * (F) ena_tex‚̐³íˆ—
72 * (F-1) ƒ^ƒXƒN—áŠOˆ——v‹‚ª‚ ‚èC‚©‚Š„ž‚Ý—Dæ“xƒ}ƒXƒN‘S‰ðœó
73 * ‘ԂŁC‚·‚®‚ÉŽÀsŠJŽn
74 * (F-2) ƒ^ƒXƒN—áŠOˆ——v‹‚ª‚È‚¢
75 * (F-3) ƒ^ƒXƒN—áŠOˆ——v‹‚ª‚ ‚邪CŠ„ž‚Ý—Dæ“xƒ}ƒXƒN‚ª‘S‰ðœ‚Å
76 * ‚È‚¢
77 * (G) chg_ipm‚̐³íˆ—
78 * (G-1) ƒ^ƒXƒN—áŠOˆ——v‹‚ª‚ ‚èC‚©‚ƒ^ƒXƒN—áŠOˆ—‹–‰Â‚ŁC‚·‚®
79 * ‚ÉŽÀsŠJŽn
80 * (G-2) ƒ^ƒXƒN—áŠOˆ——v‹‚ª‚È‚¢
81 * (G-3) ƒ^ƒXƒN—áŠOˆ——v‹‚ª‚ ‚邪Cƒ^ƒXƒN—áŠOˆ—‹ÖŽ~
82 * (H) ƒ^ƒXƒNƒfƒBƒXƒpƒbƒ`ƒƒ‚É‚æ‚é‹N“®
83 * (H-1) ƒfƒBƒXƒpƒbƒ`Œã‚̃^ƒXƒN‚ªƒ^ƒXƒN—áŠO‹–‰Â‚Ń^ƒXƒN—áŠOˆ——v
84 * ‹‚ ‚è
85 * (I) ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚©‚ç‚̃Šƒ^[ƒ“‚É‚æ‚é‹N“®i˜A‘±‹N“®j
86 * (J) ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚©‚ç‚̖߂莞‚É‚æ‚éó‘Ô•œ‹A
87 * (J-1) ƒ^ƒXƒN‚É–ß‚Á‚Ä‚­‚鎞
88 * (J-2) ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ª˜A‘±‹N“®‚³‚ê‚鎞
89 * (K) ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚Ì‘½d‹N“®
90 * (L) ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚©‚ç‚̖߂莞‚̃^ƒXƒNØŠ·‚¦
91 *
92 * yŽg—pƒŠƒ\[ƒXz
93 *
94 * TASK1: ƒƒCƒ“‚̃^ƒXƒNDŽ©ƒ^ƒXƒN‚ɑ΂µ‚ă^ƒXƒN—áŠOˆ—‚ð—v‹‚·‚é
95 * TASK2: ‘¼ƒ^ƒXƒN‚ɑ΂µ‚ă^ƒXƒN—áŠOˆ—‚ð—v‹‚·‚é‘Ώۃ^ƒXƒN
96 * TASK3: ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ª’è‹`‚³‚ê‚Ä‚¢‚È‚¢ƒ^ƒXƒN
97 * TASK4: ‹xŽ~ó‘Ԃ̃^ƒXƒN
98 *
99 * yƒeƒXƒgƒV[ƒPƒ“ƒXz
100 *
101 * == TASK1i—Dæ“xF10j==
102 * 1: ‰Šúó‘Ԃ̃`ƒFƒbƒN
103 * ref_tex(TSK_SELF, &rtex)
104 * ras_tex(TASK3, 0x0001) -> E_OBJ ... (A-2)
105 * ras_tex(TASK4, 0x0001) -> E_OBJ ... (A-1)
106 * ref_tex(TASK3, &rtex) -> E_OBJ ... (D-2)
107 * ref_tex(TASK4, &rtex) -> E_OBJ ... (D-1)
108 * 2: ena_tex() ... (F-2)
109 * ref_tex(TSK_SELF, &rtex)
110 * 3: ras_tex(TSK_SELF, 0x0001) ... (E-1)
111 * == TASK1ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“i1‰ñ–ځj==
112 * 4: ‰Šúó‘Ԃ̃`ƒFƒbƒN
113 * 5: dis_dsp() ... 4‚‚̏ó‘Ô‚ð‚»‚ê‚¼‚ê•Ï‰»‚³‚¹‚é
114 * chg_ipm(TMAX_INTPRI)
115 * ena_tex()
116 * loc_cpu()
117 * ƒŠƒ^[ƒ“
118 * == TASK1i‘±‚«j==
119 * 6: –ß‚Á‚Ä‚«‚½ó‘Ԃ̃`ƒFƒbƒN ... (J-1)
120 * 7: dis_dsp() ... ƒfƒBƒXƒpƒbƒ`‹ÖŽ~Cƒ^ƒXƒN—áŠOˆ—‹ÖŽ~
121 * dis_tex()
122 * 8: ras_tex(TASK1, 0x0002) ... (E-3)
123 * ref_tex(TSK_SELF, &rtex)
124 * 9: ena_tex() ... (F-1)
125 * == TASK1ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“i2‰ñ–ځj==
126 * 10: ‰Šúó‘Ԃ̃`ƒFƒbƒN
127 * 11: ras_tex(TASK1, 0x0001) ... (E-3)
128 * ras_tex(TASK1, 0x0002) ... (E-3)
129 * 12: ena_dsp() ... 3‚‚̏ó‘Ô‚ð‚»‚ê‚¼‚ê•Ï‰»‚³‚¹‚é
130 * chg_ipm(TMAX_INTPRI)
131 * loc_cpu()
132 * ƒŠƒ^[ƒ“ ... (I)
133 * == TASK1ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“i3‰ñ–ځj==
134 * 13: ‰Šúó‘Ԃ̃`ƒFƒbƒN
135 * 14: ena_dsp() ... ƒfƒBƒXƒpƒbƒ`‹–‰ÂCƒ^ƒXƒN—áŠO‹–‰Â
136 * chg_ipm(TMAX_INTPRI)
137 * ena_tex()
138 * chg_ipm(TIPM_ENAALL) ... (G-2)
139 * chg_ipm(TMAX_INTPRI)
140 * 15: ras_tex(TSK_SELF, 0x0004) ... (E-4)
141 * dis_tex()
142 * chg_ipm(TIPM_ENAALL) ... (G-3)
143 * chg_ipm(TMAX_INTPRI)
144 * ena_tex() ... (F-3)
145 * 16: chg_ipm(TIPM_ENAALL) ... (G-1)(K)
146 * == TASK1ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“i4‰ñ–ځj==
147 * 17: ‰Šúó‘Ԃ̃`ƒFƒbƒN
148 * 18: dis_dsp() ... 3‚‚̏ó‘Ô‚ð‚»‚ê‚¼‚ê•Ï‰»‚³‚¹‚é
149 * chg_ipm(TMAX_INTPRI)
150 * loc_cpu()
151 * ƒŠƒ^[ƒ“
152 * == TASK1ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“i3‰ñ–Ú‘±‚«j==
153 * 19: –ß‚Á‚Ä‚«‚½ó‘Ԃ̃`ƒFƒbƒN ... (J-2)
154 * ƒŠƒ^[ƒ“
155 * == TASK1i‘±‚«j==
156 * 20: –ß‚Á‚Ä‚«‚½ó‘Ԃ̃`ƒFƒbƒN ... (J-1)
157 * 21: ena_dsp()
158 * rot_rdq(TPRI_SELF)
159 * == TASK2i—Dæ“xF10j ==
160 * 22: ‰Šúó‘Ԃ̃`ƒFƒbƒN
161 * 23: ena_tex()
162 * rot_rdq(TPRI_SELF)
163 * == TASK3i—Dæ“xF10j ==
164 * 24: ‰Šúó‘Ԃ̃`ƒFƒbƒN
165 * 25: ena_tex() -> E_OBJ ... (C-1)
166 * 26: dis_tex() -> E_OBJ ... (B-1)
167 * ext_tsk()
168 * == TASK1i‘±‚«j==
169 * 27: ras_tex(TASK2, 0x0001) ... (E-2)
170 * ref_tex(TASK2, &rtex)
171 * 28: rot_rdq(TPRI_SELF) ... (H-1)
172 * == TASK2ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“i1‰ñ–ځj==
173 * 29: ‰Šúó‘Ԃ̃`ƒFƒbƒN
174 * ƒŠƒ^[ƒ“
175 * == TASK2i‘±‚«j==
176 * 30: ras_tex(TSK_SELF, 0x0002)
177 * == TASK2ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“i2‰ñ–ځj==
178 * 31: ‰Šúó‘Ԃ̃`ƒFƒbƒN
179 * 32: dis_dsp()
180 * rot_rdq(TPRI_SELF)
181 * 33: ƒŠƒ^[ƒ“ ... (L)
182 * == TASK1i‘±‚«j==
183 * 34: ƒŠƒ^[ƒ“iƒ^ƒXƒNI—¹j
184 * == TASK2i‘±‚«j==
185 * 35: ƒeƒXƒgI—¹
186 */
187
188#include <kernel.h>
189#include <test_lib.h>
190#include <t_syslog.h>
191#include "kernel_cfg.h"
192#include "test_tex1.h"
193
194void
195tex_task1(TEXPTN texptn, intptr_t exinf)
196{
197 ER ercd;
198
199 switch (texptn) {
200 case 0x0001:
201 check_point(4);
202 check_state(false, false, TIPM_ENAALL, false, false, true);
203
204 /*
205 * ƒfƒBƒXƒpƒbƒ`‹ÖŽ~CŠ„ž‚Ý—Dæ“xƒ}ƒXƒN•ÏXCƒ^ƒXƒN—áŠOˆ—‹–‰Â
206 */
207 check_point(5);
208 ercd = dis_dsp();
209 check_ercd(ercd, E_OK);
210 ercd = chg_ipm(TMAX_INTPRI);
211 check_ercd(ercd, E_OK);
212 ercd = ena_tex();
213 check_ercd(ercd, E_OK);
214 ercd = loc_cpu();
215 check_ercd(ercd, E_OK);
216 check_state(false, true, TMAX_INTPRI, true, true, false);
217 break;
218
219 case 0x0002:
220 check_point(10);
221 check_state(false, false, TIPM_ENAALL, true, true, true);
222
223 /*
224 * ƒ^ƒXƒN—áŠOˆ—‚ð—v‹
225 */
226 check_point(11);
227 ercd = ras_tex(TSK_SELF, 0x0001);
228 check_ercd(ercd, E_OK);
229 ercd = ras_tex(TSK_SELF, 0x0002);
230 check_ercd(ercd, E_OK);
231
232 /*
233 * ƒfƒBƒXƒpƒbƒ`‹–‰ÂCŠ„ž‚Ý—Dæ“xƒ}ƒXƒN•ÏXCCPUƒƒbƒN
234 */
235 check_point(12);
236 ercd = ena_dsp();
237 check_ercd(ercd, E_OK);
238 ercd = chg_ipm(TMAX_INTPRI);
239 check_ercd(ercd, E_OK);
240 ercd = loc_cpu();
241 check_ercd(ercd, E_OK);
242 check_state(false, true, TMAX_INTPRI, false, true, true);
243 break;
244
245 case 0x0003:
246 check_point(13);
247 check_state(false, false, TIPM_ENAALL, true, true, true);
248
249 /*
250 * ƒfƒBƒXƒpƒbƒ`‹–‰ÂCŠ„ž‚Ý—Dæ“xƒ}ƒXƒN•ÏXCƒ^ƒXƒN—áŠO‹–‰Â
251 */
252 check_point(14);
253 ercd = ena_dsp();
254 check_ercd(ercd, E_OK);
255 ercd = chg_ipm(TMAX_INTPRI);
256 check_ercd(ercd, E_OK);
257 ercd = ena_tex();
258 check_ercd(ercd, E_OK);
259 check_state(false, false, TMAX_INTPRI, false, true, false);
260
261 ercd = chg_ipm(TIPM_ENAALL);
262 check_ercd(ercd, E_OK);
263 ercd = chg_ipm(TMAX_INTPRI);
264 check_ercd(ercd, E_OK);
265
266 /*
267 * ƒ^ƒXƒN—áŠOˆ—‚ð—v‹
268 */
269 check_point(15);
270 ercd = ras_tex(TSK_SELF, 0x0004);
271
272 ercd = dis_tex();
273 check_ercd(ercd, E_OK);
274 ercd = chg_ipm(TIPM_ENAALL);
275 check_ercd(ercd, E_OK);
276 ercd = chg_ipm(TMAX_INTPRI);
277 check_ercd(ercd, E_OK);
278 ercd = ena_tex();
279 check_ercd(ercd, E_OK);
280
281 check_point(16);
282 ercd = chg_ipm(TIPM_ENAALL);
283 /* ‚±‚±‚Ń^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ª“®ì‚·‚é */
284 check_ercd(ercd, E_OK);
285
286 /*
287 * ƒ^ƒXƒN—áŠOˆ—‚©‚ç‚̃Šƒ^[ƒ“‚É‚æ‚茳‚̏ó‘Ô‚É–ß‚Á‚Ä‚¢‚邱‚Æ
288 * ‚ðƒ`ƒFƒbƒN
289 */
290 check_point(19);
291 check_state(false, false, TIPM_ENAALL, false, false, false);
292 break;
293
294 case 0x0004:
295 check_point(17);
296 check_state(false, false, TIPM_ENAALL, false, false, true);
297
298 /*
299 * ƒfƒBƒXƒpƒbƒ`‹ÖŽ~CŠ„ž‚Ý—Dæ“xƒ}ƒXƒN•ÏXCCPUƒƒbƒN
300 */
301 check_point(18);
302 ercd = dis_dsp();
303 check_ercd(ercd, E_OK);
304 ercd = chg_ipm(TMAX_INTPRI);
305 check_ercd(ercd, E_OK);
306 ercd = loc_cpu();
307 check_ercd(ercd, E_OK);
308 check_state(false, true, TMAX_INTPRI, true, true, true);
309 break;
310
311 default:
312 check_point(0);
313 break;
314 }
315}
316
317void
318task1(intptr_t exinf)
319{
320 ER ercd;
321 T_RTEX rtex;
322
323 /*
324 * ‰Šúó‘Ԃ̃`ƒFƒbƒN
325 */
326 check_point(1);
327 check_state(false, false, TIPM_ENAALL, false, false, true);
328 ercd = ref_tex(TSK_SELF, &rtex);
329 check_ercd(ercd, E_OK);
330 check_assert((rtex.texstat & TTEX_DIS) != 0);
331 check_assert(rtex.pndptn == 0);
332
333 /*
334 * ras_tex‚̃Gƒ‰[ŒŸo
335 */
336 ercd = ras_tex(TASK3, 0x0001);
337 check_ercd(ercd, E_OBJ);
338 ercd = ras_tex(TASK4, 0x0001);
339 check_ercd(ercd, E_OBJ);
340
341 /*
342 * ref_tex‚̃Gƒ‰[ŒŸo
343 */
344 ercd = ref_tex(TASK3, &rtex);
345 check_ercd(ercd, E_OBJ);
346 ercd = ref_tex(TASK4, &rtex);
347 check_ercd(ercd, E_OBJ);
348
349 /*
350 * ƒ^ƒXƒN—áŠOˆ—‚Ì‹–‰Â
351 */
352 check_point(2);
353 ercd = ena_tex();
354 check_ercd(ercd, E_OK);
355 check_state(false, false, TIPM_ENAALL, false, false, false);
356 ercd = ref_tex(TSK_SELF, &rtex);
357 check_ercd(ercd, E_OK);
358 check_assert((rtex.texstat & TTEX_ENA) != 0);
359 check_assert(rtex.pndptn == 0);
360
361 /*
362 * ƒ^ƒXƒN—áŠOˆ—‚ð—v‹
363 */
364 check_point(3);
365 ercd = ras_tex(TSK_SELF, 0x0001);
366 /* ‚±‚±‚Ń^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ª“®ì‚·‚é */
367 check_ercd(ercd, E_OK);
368
369 /*
370 * ƒ^ƒXƒN—áŠOˆ—‚©‚ç‚̃Šƒ^[ƒ“‚É‚æ‚茳‚̏ó‘Ô‚É–ß‚Á‚Ä‚¢‚邱‚Æ‚ð
371 * ƒ`ƒFƒbƒN
372 */
373 check_point(6);
374 check_state(false, false, TIPM_ENAALL, false, false, false);
375
376 /*
377 * ƒfƒBƒXƒpƒbƒ`‹ÖŽ~Cƒ^ƒXƒN—áŠOˆ—‹ÖŽ~
378 */
379 check_point(7);
380 ercd = dis_dsp();
381 check_ercd(ercd, E_OK);
382 ercd = dis_tex();
383 check_ercd(ercd, E_OK);
384 check_state(false, false, TIPM_ENAALL, true, true, true);
385
386 /*
387 * ƒ^ƒXƒN—áŠOˆ—‚ð—v‹
388 */
389 check_point(8);
390 ercd = ras_tex(TASK1, 0x0002);
391 check_ercd(ercd, E_OK);
392 ercd = ref_tex(TSK_SELF, &rtex);
393 check_ercd(ercd, E_OK);
394 check_assert((rtex.texstat & TTEX_DIS) != 0);
395 check_assert(rtex.pndptn == 0x0002);
396
397 /*
398 * ƒ^ƒXƒN—áŠOˆ—‚ð‹–‰Â
399 */
400 check_point(9);
401 ercd = ena_tex();
402 /* ‚±‚±‚Ń^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ª“®ì‚·‚é */
403 check_ercd(ercd, E_OK);
404
405 /*
406 * ƒ^ƒXƒN—áŠOˆ—‚©‚ç‚̃Šƒ^[ƒ“‚É‚æ‚茳‚̏ó‘Ô‚É–ß‚Á‚Ä‚¢‚邱‚Æ‚ð
407 * ƒ`ƒFƒbƒN
408 */
409 check_point(20);
410 check_state(false, false, TIPM_ENAALL, true, true, false);
411
412 /*
413 * ƒ^ƒXƒN2‚ɐ؂芷‚¦‚é
414 */
415 check_point(21);
416 ercd = ena_dsp();
417 check_ercd(ercd, E_OK);
418 ercd = rot_rdq(TPRI_SELF);
419 /* ‚±‚±‚Å‘¼‚̃^ƒXƒN‚ª“®ì‚·‚é */
420 check_ercd(ercd, E_OK);
421
422 /*
423 * ƒ^ƒXƒN2‚ɑ΂µ‚ă^ƒXƒN—áŠOˆ—‚ð—v‹
424 */
425 check_point(27);
426 ercd = ras_tex(TASK2, 0x0001);
427 check_ercd(ercd, E_OK);
428 ercd = ref_tex(TASK2, &rtex);
429 check_ercd(ercd, E_OK);
430 check_assert((rtex.texstat & TTEX_ENA) != 0);
431 check_assert(rtex.pndptn == 0x0001);
432
433 /*
434 * ƒ^ƒXƒN2‚ɐ؂芷‚¦‚é
435 */
436 check_point(28);
437 ercd = rot_rdq(TPRI_SELF);
438 /* ‚±‚±‚Å‘¼‚̃^ƒXƒN‚ª“®ì‚·‚é */
439 check_ercd(ercd, E_OK);
440
441 /*
442 * ƒ^ƒXƒNI—¹
443 */
444 check_point(34);
445}
446
447void
448tex_task2(TEXPTN texptn, intptr_t exinf)
449{
450 ER ercd;
451
452 switch (texptn) {
453 case 0x0001:
454 check_point(29);
455 check_state(false, false, TIPM_ENAALL, false, false, true);
456 break;
457
458 case 0x0002:
459 check_point(31);
460 check_state(false, false, TIPM_ENAALL, false, false, true);
461
462 /*
463 * ƒfƒBƒXƒpƒbƒ`‚ð‹ÖŽ~‚µ‚āCƒ^ƒXƒNØŠ·‚¦‚ð—v‹‚·‚éD
464 */
465 check_point(32);
466 ercd = dis_dsp();
467 check_ercd(ercd, E_OK);
468 ercd = rot_rdq(TPRI_SELF);
469 check_ercd(ercd, E_OK);
470
471 /*
472 * ƒ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚©‚ç‚̃Šƒ^[ƒ“‚ŁCƒ^ƒXƒNØŠ·‚¦‚ª”­¶
473 * ‚·‚éD
474 */
475 check_point(33);
476 break;
477
478 default:
479 check_point(0);
480 break;
481 }
482}
483
484void
485task2(intptr_t exinf)
486{
487 ER ercd;
488
489 /*
490 * ‰Šúó‘Ԃ̃`ƒFƒbƒN
491 */
492 check_point(22);
493 check_state(false, false, TIPM_ENAALL, false, false, true);
494
495 /*
496 * ƒ^ƒXƒN—áŠOˆ—‚Ì‹–‰Â
497 */
498 check_point(23);
499 ercd = ena_tex();
500 check_ercd(ercd, E_OK);
501 check_state(false, false, TIPM_ENAALL, false, false, false);
502
503 /*
504 * ƒ^ƒXƒN3‚ɐ؂芷‚¦‚é
505 */
506 ercd = rot_rdq(TPRI_SELF);
507 /* ‚±‚±‚Å‘¼‚̃^ƒXƒN‚ª“®ì‚·‚é */
508 check_ercd(ercd, E_OK);
509
510 /*
511 * ƒ^ƒXƒN—áŠOˆ—‚ð—v‹
512 */
513 check_point(30);
514 ercd = ras_tex(TSK_SELF, 0x0002);
515 /* ‚±‚±‚Ń^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚ª“®ì‚·‚é */
516 check_ercd(ercd, E_OK);
517
518 /*
519 * ƒeƒXƒgI—¹
520 */
521 check_finish(35);
522}
523
524void
525task3(intptr_t exinf)
526{
527 ER ercd;
528
529 /*
530 * ‰Šúó‘Ԃ̃`ƒFƒbƒN
531 */
532 check_point(24);
533 check_state(false, false, TIPM_ENAALL, false, false, true);
534
535 /*
536 * ƒ^ƒXƒN—áŠOˆ—‚Ì‹–‰Â
537 */
538 check_point(25);
539 ercd = ena_tex();
540 check_ercd(ercd, E_OBJ);
541 check_state(false, false, TIPM_ENAALL, false, false, true);
542
543 /*
544 * ƒ^ƒXƒN—áŠOˆ—‚Ì‹ÖŽ~
545 */
546 check_point(26);
547 ercd = dis_tex();
548 check_ercd(ercd, E_OBJ);
549 check_state(false, false, TIPM_ENAALL, false, false, true);
550
551 /*
552 * ƒ^ƒXƒNI—¹
553 */
554 ercd = ext_tsk();
555 check_point(0);
556}
557
558void
559task4(intptr_t exinf)
560{
561 check_point(0);
562}
563
564void
565tex_task4(TEXPTN texptn, intptr_t exinf)
566{
567 check_point(0);
568}
Note: See TracBrowser for help on using the repository browser.