3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Just Standard Profile Kernel
6 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
9 * ¾åµÃøºî¸¢¼Ô¤Ï¡¤°Ê²¼¤Î (1)¡Á(4) ¤Î¾ò·ï¤«¡¤Free Software Foundation
10 * ¤Ë¤è¤Ã¤Æ¸øɽ¤µ¤ì¤Æ¤¤¤ë GNU General Public License ¤Î Version 2 ¤Ëµ
11 * ½Ò¤µ¤ì¤Æ¤¤¤ë¾ò·ï¤òËþ¤¿¤¹¾ì¹ç¤Ë¸Â¤ê¡¤ËÜ¥½¥Õ¥È¥¦¥§¥¢¡ÊËÜ¥½¥Õ¥È¥¦¥§¥¢
12 * ¤ò²þÊѤ·¤¿¤â¤Î¤ò´Þ¤à¡¥°Ê²¼Æ±¤¸¡Ë¤ò»ÈÍÑ¡¦Ê£À½¡¦²þÊÑ¡¦ºÆÇÛÉۡʰʲ¼¡¤
13 * ÍøÍѤȸƤ֡ˤ¹¤ë¤³¤È¤ò̵½þ¤ÇµöÂú¤¹¤ë¡¥
14 * (1) ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ò¥½¡¼¥¹¥³¡¼¥É¤Î·Á¤ÇÍøÍѤ¹¤ë¾ì¹ç¤Ë¤Ï¡¤¾åµ¤ÎÃøºî
15 * ¸¢É½¼¨¡¤¤³¤ÎÍøÍѾò·ï¤ª¤è¤Ó²¼µ¤Î̵Êݾڵ¬Ä꤬¡¤¤½¤Î¤Þ¤Þ¤Î·Á¤Ç¥½¡¼
16 * ¥¹¥³¡¼¥ÉÃæ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤³¤È¡¥
17 * (2) ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ò¡¤¥é¥¤¥Ö¥é¥ê·Á¼°¤Ê¤É¡¤Â¾¤Î¥½¥Õ¥È¥¦¥§¥¢³«È¯¤Ë»È
18 * ÍѤǤ¤ë·Á¤ÇºÆÇÛÉÛ¤¹¤ë¾ì¹ç¤Ë¤Ï¡¤ºÆÇÛÉÛ¤Ëȼ¤¦¥É¥¥å¥á¥ó¥È¡ÊÍøÍÑ
19 * ¼Ô¥Þ¥Ë¥å¥¢¥ë¤Ê¤É¡Ë¤Ë¡¤¾åµ¤ÎÃøºî¸¢É½¼¨¡¤¤³¤ÎÍøÍѾò·ï¤ª¤è¤Ó²¼µ
20 * ¤Î̵Êݾڵ¬Äê¤ò·ÇºÜ¤¹¤ë¤³¤È¡¥
21 * (3) ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ò¡¤µ¡´ï¤ËÁȤ߹þ¤à¤Ê¤É¡¤Â¾¤Î¥½¥Õ¥È¥¦¥§¥¢³«È¯¤Ë»È
22 * ÍѤǤ¤Ê¤¤·Á¤ÇºÆÇÛÉÛ¤¹¤ë¾ì¹ç¤Ë¤Ï¡¤¼¡¤Î¤¤¤º¤ì¤«¤Î¾ò·ï¤òËþ¤¿¤¹¤³
24 * (a) ºÆÇÛÉÛ¤Ëȼ¤¦¥É¥¥å¥á¥ó¥È¡ÊÍøÍѼԥޥ˥奢¥ë¤Ê¤É¡Ë¤Ë¡¤¾åµ¤ÎÃø
25 * ºî¸¢É½¼¨¡¤¤³¤ÎÍøÍѾò·ï¤ª¤è¤Ó²¼µ¤Î̵Êݾڵ¬Äê¤ò·ÇºÜ¤¹¤ë¤³¤È¡¥
26 * (b) ºÆÇÛÉۤηÁÂÖ¤ò¡¤Ê̤ËÄê¤á¤ëÊýË¡¤Ë¤è¤Ã¤Æ¡¤TOPPERS¥×¥í¥¸¥§¥¯¥È¤Ë
28 * (4) ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ÎÍøÍѤˤè¤êľÀÜŪ¤Þ¤¿¤Ï´ÖÀÜŪ¤ËÀ¸¤¸¤ë¤¤¤«¤Ê¤ë»
29 * ³²¤«¤é¤â¡¤¾åµÃøºî¸¢¼Ô¤ª¤è¤ÓTOPPERS¥×¥í¥¸¥§¥¯¥È¤òÌÈÀÕ¤¹¤ë¤³¤È¡¥
31 * ËÜ¥½¥Õ¥È¥¦¥§¥¢¤Ï¡¤ÌµÊݾڤÇÄ󶡤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ë¡¥¾åµÃøºî¸¢¼Ô¤ª
32 * ¤è¤ÓTOPPERS¥×¥í¥¸¥§¥¯¥È¤Ï¡¤ËÜ¥½¥Õ¥È¥¦¥§¥¢¤Ë´Ø¤·¤Æ¡¤¤½¤ÎŬÍѲÄǽÀ¤â
33 * ´Þ¤á¤Æ¡¤¤¤¤«¤Ê¤ëÊݾڤâ¹Ô¤ï¤Ê¤¤¡¥¤Þ¤¿¡¤ËÜ¥½¥Õ¥È¥¦¥§¥¢¤ÎÍøÍѤˤè¤êľ
34 * ÀÜŪ¤Þ¤¿¤Ï´ÖÀÜŪ¤ËÀ¸¤¸¤¿¤¤¤«¤Ê¤ë»³²¤Ë´Ø¤·¤Æ¤â¡¤¤½¤ÎÀÕǤ¤òÉé¤ï¤Ê¤¤¡¥
36 * @(#) $Id: jsp_staticapi.cpp,v 1.16 2003/12/24 07:33:26 takayuki Exp $
39 // $Header: /home/CVS/configurator/jsp/jsp_staticapi.cpp,v 1.16 2003/12/24 07:33:26 takayuki Exp $
41 #include "jsp/jsp_defs.h"
43 #include "base/parser.h"
44 #include "base/mpstrstream.h"
49 DECLARE_API(INCLUDE,"INCLUDE")
56 p.getToken(token, Token::STRINGLITERAL);
59 if( (token[0] != '\"' || token[token.size()-1] != '\"') &&
60 (token[0] != '<' || token[token.size()-1] != '>') )
61 ExceptionMessage("An include filename must be enclosed with \"...\" or <...>","¥Õ¥¡¥¤¥ë̾¤Ï \"...\" ¤« <...> ¤Î·Á¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó").throwException();
63 node = container.openChild(OBJECTTREE,INCLUDEFILE,NULL);
67 scope = node->getFirstChild();
70 if(token.compare((*scope).toString()) == 0)
72 cerr << p.getStreamLocation() << ' ' << (Message("Include file % was already specified (ignored).","¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë%¤¬Ê£¿ô²ó»ØÄꤵ¤ì¤Þ¤·¤¿ (̵»ë¤·¤Þ¤¹)") << token) << endl;
75 scope = scope->getNext();
78 node->addChild(new Directory(token));
81 DECLARE_API(CRE_TSK,"CRE_TSK")
88 node = allocate(container[OBJECTTREE], token, TASK);
89 (*node)["position"] = p.getStreamLocation();
91 p.getToken(",","{",NULL);
92 parseParameters(p,node,"tskatr,exinf,task,itskpri,stksz");
93 p.getToken(",","NULL","}",NULL);
95 (*node)["texatr"] = "TA_NULL";
96 (*node)["texrtn"] = "NULL";
98 if(container["/cpu"].toString().compare("nios32") == 0)
100 (*node)["hi_limit"] = "TSK_HI_LIMIT";
101 (*node)["lo_limit"] = "TSK_LO_LIMIT";
105 DECLARE_API(VATT_TRW,"VATT_TRW")
110 if(container["/cpu"].toString().compare("nios32") != 0)
111 ExceptionMessage("VATT_TRW is not supported except for the processor 'nios32'.","VATT_TRW¤Ïnios32¥×¥í¥»¥Ã¥µ¤Ç¤Î¤ß¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤¹").throwException();
114 node = find(container[OBJECTTREE], token, TASK);
116 p.getToken(",","{",NULL);
117 parseParameters(p, node, "hi_limit,lo_limit");
121 DECLARE_API(DEF_TEX,"DEF_TEX")
127 node = find(container[OBJECTTREE], token, TASK);
129 p.getToken(",","{",NULL);
130 parseParameters(p, node, "texatr,texrtn");
134 DECLARE_API(CRE_SEM,"CRE_SEM")
140 node = allocate(container[OBJECTTREE], token, SEMAPHORE);
141 (*node)["position"] = p.getStreamLocation();
143 p.getToken(",","{",NULL);
144 parseParameters(p,node,"sematr,isemcnt,maxsem");
148 DECLARE_API(CRE_FLG,"CRE_FLG")
154 node = allocate(container[OBJECTTREE], token, EVENTFLAG);
155 (*node)["position"] = p.getStreamLocation();
157 p.getToken(",","{",NULL);
158 parseParameters(p,node,"flgatr,iflgptn");
162 DECLARE_API(CRE_DTQ,"CRE_DTQ")
168 node = allocate(container[OBJECTTREE], token, DATAQUEUE);
169 (*node)["position"] = p.getStreamLocation();
171 p.getToken(",","{",NULL);
172 parseParameters(p,node,"dtqatr,dtqcnt");
173 p.getToken(",","NULL","}",NULL);
176 DECLARE_API(CRE_MBX,"CRE_MBX")
182 node = allocate(container[OBJECTTREE], token, MAILBOX);
183 (*node)["position"] = p.getStreamLocation();
185 p.getToken(",","{",NULL);
186 parseParameters(p,node,"mbxatr,maxmpri");
187 p.getToken(",","NULL","}",NULL);
190 DECLARE_API(CRE_MPF,"CRE_MPF")
196 node = allocate(container[OBJECTTREE], token, FIXEDSIZEMEMORYPOOL);
197 (*node)["position"] = p.getStreamLocation();
199 p.getToken(",","{",NULL);
200 parseParameters(p,node,"mpfatr,blkcnt,blksz");
201 p.getToken(",","NULL","}",NULL);
204 DECLARE_API(CRE_CYC,"CRE_CYC")
210 node = allocate(container[OBJECTTREE], token, CYCLICHANDLER);
211 (*node)["position"] = p.getStreamLocation();
213 p.getToken(",","{",NULL);
214 parseParameters(p,node,"cycatr,exinf,cychdr,cyctim,cycphs");
218 DECLARE_API(DEF_INH,"DEF_INH")
224 node = allocate(container[OBJECTTREE], token, INTERRUPTHANDLER, false);
225 (*node)["position"] = p.getStreamLocation();
227 p.getToken(",","{",NULL);
228 parseParameters(p,node,"inhatr,inthdr");
232 DECLARE_API(DEF_EXC,"DEF_EXC")
238 node = allocate(container[OBJECTTREE], token, EXCEPTIONHANDLER, false);
239 (*node)["position"] = p.getStreamLocation();
241 p.getToken(",","{",NULL);
242 parseParameters(p,node,"excatr,exchdr");
246 DECLARE_API(ATT_INI,"ATT_INI")
251 node = container.openChild(OBJECTTREE,INITIALIZER,NULL)->addChild();
254 (*node)["position"] = p.getStreamLocation();
256 p.getToken("{",NULL);
257 parseParameters(p,node,"iniatr,exinf,inirtn");
261 DECLARE_API(ATT_FIN, "VATT_TER")
266 node = container.openChild(OBJECTTREE,TERMINATOR,NULL)->addChild();
269 (*node)["position"] = p.getStreamLocation();
271 p.getToken("{",NULL);
272 parseParameters(p,node,"teratr,exinf,terrtn");