source: UsbWattMeter/trunk/asp_dcre/include/t_stddef.h@ 164

Last change on this file since 164 was 164, checked in by coas-nagasima, 6 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: 8.7 KB
Line 
1/*
2 * TOPPERS Software
3 * Toyohashi Open Platform for Embedded Real-Time Systems
4 *
5 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
6 * Toyohashi Univ. of Technology, JAPAN
7 * Copyright (C) 2004-2012 by Embedded and Real-Time Systems Laboratory
8 * Graduate School of Information Science, Nagoya Univ., JAPAN
9 *
10 * ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
11 * ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
12 * •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
13 * (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
14 * Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
15 * ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
16 * (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
17 * —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ…
18ƒƒ“ƒgi—˜—p
19 * ŽÒƒ}ƒjƒ…
20ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
21 * ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
22 * (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
23 * —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
24 * ‚ƁD
25 * (a) Ä”z•z‚É”º‚¤ƒhƒLƒ…
26ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ…
27ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
28 * ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
29 * (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
30 * •ñ‚·‚邱‚ƁD
31 * (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
32 * ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
33 * ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
34 * —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
35 * –Ɛӂ·‚邱‚ƁD
36 *
37 * –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
38 * ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
39 * ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
40 * ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
41 * ‚̐ӔC‚𕉂í‚È‚¢D
42 *
43 * @(#) $Id: t_stddef.h 164 2016-03-07 11:33:50Z coas-nagasima $
44 */
45
46/*
47 * TOPPERS‹¤’ʃwƒbƒ_ƒtƒ@ƒCƒ‹
48 *
49 * TOPPERSŠÖ˜A‚Ì‚·‚ׂẴ\[ƒXƒtƒ@ƒCƒ‹‚ŃCƒ“ƒNƒ‹[ƒh‚·‚ׂ«ƒwƒbƒ_ƒtƒ@ƒC
50 * ƒ‹DŠeŽí‚̃J[ƒlƒ‹‚âƒ\ƒtƒgƒEƒFƒA•”•i‚Å‹¤’Ê‚É—p‚¢‚邱‚Æ‚ð‘z’肵‚Ä‚¢
51 * ‚éDTOPPERS‚ÌŠeŽí‚̃J[ƒlƒ‹‚âƒ\ƒtƒgƒEƒFƒA•”•i‚Å‹¤’Ê‚É—p‚¢‚éƒf[ƒ^Œ^C
52 * ’萔Cƒ}ƒNƒ‚Ì’è‹`‚È‚Ç‚ðŠÜ‚ށD
53 *
54 * ƒAƒZƒ“ƒuƒŠŒ¾Œê‚̃\[ƒXƒtƒ@ƒCƒ‹‚©‚炱‚̃tƒ@ƒCƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚鎞
55 * ‚́CTOPPERS_MACRO_ONLY‚ð’è‹`‚µ‚Ä‚¨‚­D‚±‚ê‚É‚æ‚èCƒ}ƒNƒ’è‹`ˆÈŠO‚ð
56 * œ‚­‚悤‚É‚È‚Á‚Ä‚¢‚éD
57 *
58 * ‚±‚̃tƒ@ƒCƒ‹‚ðƒCƒ“ƒNƒ‹[ƒh‚·‚é‘O‚ɃCƒ“ƒNƒ‹[ƒh‚µ‚Ä‚¨‚­‚ׂ«ƒtƒ@ƒCƒ‹
59 * ‚Í‚È‚¢D
60 */
61
62#ifndef TOPPERS_T_STDDEF_H
63#define TOPPERS_T_STDDEF_H
64
65#ifdef __cplusplus
66extern "C" {
67#endif
68
69/*
70 * ƒ^[ƒQƒbƒgˆË‘¶•”
71 */
72#include "target_stddef.h"
73
74/*
75 * CŒ¾Œê/EC++‚Åthrow()‚ɑΏˆ‚·‚邽‚ß‚Ì’è‹`
76 */
77#if !defined(__cplusplus) || defined(__embedded_cplusplus)
78#define throw()
79#endif
80
81#ifndef TOPPERS_MACRO_ONLY
82
83/*
84 * ƒ^[ƒQƒbƒgˆË‘¶‚̃f[ƒ^Œ^‚̃}ƒNƒ‚̃fƒtƒHƒ‹ƒg’è‹`
85 */
86#ifndef TOPPERS_bool
87#define TOPPERS_bool int /* ƒu[ƒ‹Œ^ */
88#endif /* TOPPERS_bool */
89
90#ifndef TOPPERS_size
91#define TOPPERS_size uintptr_t /* ƒTƒCƒYŒ^ */
92#endif /* TOPPERS_size */
93
94#ifndef TOPPERS_fp
95struct TOPPERS_dummy_t { int TOPPERS_dummy_field; };
96typedef void (*TOPPERS_fp_t)(struct TOPPERS_dummy_t);
97#define TOPPERS_fp TOPPERS_fp_t /* ƒvƒƒOƒ‰ƒ€‚Ì‹N“®”Ô’n */
98#endif /* TOPPERS_fp */
99
100/*
101 * ‹¤’ʃf[ƒ^Œ^
102 */
103typedef TOPPERS_bool bool_t; /* ^‹U’l */
104
105typedef signed int int_t; /* Ž©‘R‚ȃTƒCƒY‚Ì•„†•t‚«®” */
106typedef unsigned int uint_t; /* Ž©‘R‚ȃTƒCƒY‚Ì•„†–³‚µ®” */
107
108typedef signed long long_t; /* ’·‚߂̃TƒCƒY‚Ì•„†•t‚«®” */
109typedef unsigned long ulong_t; /* ’·‚߂̃TƒCƒY‚Ì•„†–³‚µ®” */
110
111typedef int_t FN; /* ‹@”\ƒR[ƒh */
112typedef int_t ER; /* ƒGƒ‰[ƒR[ƒh */
113typedef int_t ID; /* ƒIƒuƒWƒFƒNƒg‚ÌID”ԍ† */
114typedef uint_t ATR; /* ƒIƒuƒWƒFƒNƒg‚Ì‘®« */
115typedef uint_t STAT; /* ƒIƒuƒWƒFƒNƒg‚̏ó‘Ô */
116typedef uint_t MODE; /* ƒT[ƒrƒXƒR[ƒ‹‚Ì“®ìƒ‚[ƒh */
117typedef int_t PRI; /* —Dæ“x */
118typedef TOPPERS_size SIZE; /* ƒƒ‚ƒŠ—̈æ‚̃TƒCƒY */
119
120typedef int_t TMO; /* ƒ^ƒCƒ€ƒAƒEƒgŽw’è */
121typedef uint_t RELTIM; /* ‘Š‘ÎŽžŠÔ */
122typedef ulong_t SYSTIM; /* ƒVƒXƒeƒ€Žž */
123typedef ulong_t SYSUTM; /* «”\•]‰¿—pƒVƒXƒeƒ€Žž */
124
125typedef TOPPERS_fp FP; /* ƒvƒƒOƒ‰ƒ€‚Ì‹N“®”Ô’n */
126
127typedef int_t ER_BOOL; /* ƒGƒ‰[ƒR[ƒh‚Ü‚½‚͐^‹U’l */
128typedef int_t ER_ID; /* ƒGƒ‰[ƒR[ƒh‚Ü‚½‚ÍID”ԍ† */
129typedef int_t ER_UINT; /* ƒGƒ‰[ƒR[ƒh‚Ü‚½‚Í•„†–³‚µ®” */
130
131typedef uintptr_t MB_T; /* ŠÇ——̈æ‚ðŠm•Û‚·‚邽‚߂̃f[ƒ^Œ^ */
132
133typedef uint32_t ACPTN; /* ƒAƒNƒZƒX‹–‰Âƒpƒ^[ƒ“ */
134typedef struct acvct { /* ƒAƒNƒZƒX‹–‰ÂƒxƒNƒ^ */
135 ACPTN acptn1; /* ’ʏ푀ì1‚̃AƒNƒZƒX‹–‰Âƒpƒ^[ƒ“ */
136 ACPTN acptn2; /* ’ʏ푀ì2‚̃AƒNƒZƒX‹–‰Âƒpƒ^[ƒ“ */
137 ACPTN acptn3; /* ŠÇ—‘€ì‚̃AƒNƒZƒX‹–‰Âƒpƒ^[ƒ“ */
138 ACPTN acptn4; /* ŽQÆ‘€ì‚̃AƒNƒZƒX‹–‰Âƒpƒ^[ƒ“ */
139} ACVCT;
140
141#endif /* TOPPERS_MACRO_ONLY */
142
143/*
144 * ®”’萔‚ðì‚éƒ}ƒNƒ
145 */
146#ifndef UINT_C
147#define UINT_C(val) (val ## U) /* uint_tŒ^‚̒萔‚ðì‚éƒ}ƒNƒ */
148#endif /* UINT_C */
149
150#ifndef ULONG_C
151#define ULONG_C(val) (val ## UL) /* ulong_tŒ^‚̒萔‚ðì‚éƒ}ƒNƒ */
152#endif /* ULONG_C */
153
154/*
155 * ˆê”ʒ萔
156 */
157#ifndef NULL
158#define NULL 0 /* –³Œøƒ|ƒCƒ“ƒ^ */
159#endif /* NULL */
160
161#ifndef true
162#define true 1 /* ^ */
163#endif /* true */
164
165#ifndef false
166#define false 0 /* ‹U */
167#endif /* false */
168
169#define E_OK 0 /* ³íI—¹ */
170
171/*
172 * ƒƒCƒ“ƒGƒ‰[ƒR[ƒh
173 */
174#define E_SYS (-5) /* ƒVƒXƒeƒ€ƒGƒ‰[ */
175#define E_NOSPT (-9) /* –¢ƒTƒ|[ƒg‹@”\ */
176#define E_RSFN (-10) /* —\–ñ‹@”\ƒR[ƒh */
177#define E_RSATR (-11) /* —\–ñ‘®« */
178#define E_PAR (-17) /* ƒpƒ‰ƒ[ƒ^ƒGƒ‰[ */
179#define E_ID (-18) /* •s³ID”ԍ† */
180#define E_CTX (-25) /* ƒRƒ“ƒeƒLƒXƒgƒGƒ‰[ */
181#define E_MACV (-26) /* ƒƒ‚ƒŠƒAƒNƒZƒXˆá”½ */
182#define E_OACV (-27) /* ƒIƒuƒWƒFƒNƒgƒAƒNƒZƒXˆá”½ */
183#define E_ILUSE (-28) /* ƒT[ƒrƒXƒR[ƒ‹•s³Žg—p */
184#define E_NOMEM (-33) /* ƒƒ‚ƒŠ•s‘« */
185#define E_NOID (-34) /* ID”ԍ†•s‘« */
186#define E_NORES (-35) /* Ž‘Œ¹•s‘« */
187#define E_OBJ (-41) /* ƒIƒuƒWƒFƒNƒgó‘ÔƒGƒ‰[ */
188#define E_NOEXS (-42) /* ƒIƒuƒWƒFƒNƒg–¢¶¬ */
189#define E_QOVR (-43) /* ƒLƒ…
190[ƒCƒ“ƒOƒI[ƒo[ƒtƒ[ */
191#define E_RLWAI (-49) /* ‘Ò‚¿ó‘Ô‚Ì‹­§‰ðœ */
192#define E_TMOUT (-50) /* ƒ|[ƒŠƒ“ƒOŽ¸”s‚Ü‚½‚̓^ƒCƒ€ƒAƒEƒg */
193#define E_DLT (-51) /* ‘Ò‚¿ƒIƒuƒWƒFƒNƒg‚̍폜 */
194#define E_CLS (-52) /* ‘Ò‚¿ƒIƒuƒWƒFƒNƒg‚̏ó‘ԕω» */
195#define E_WBLK (-57) /* ƒmƒ“ƒuƒƒbƒLƒ“ƒOŽó•t‚¯ */
196#define E_BOVR (-58) /* ƒoƒbƒtƒ@ƒI[ƒo[ƒtƒ[ */
197
198/*
199 * ƒIƒuƒWƒFƒNƒg‘®«
200 */
201#define TA_NULL UINT_C(0) /* ƒIƒuƒWƒFƒNƒg‘®«‚ðŽw’肵‚È‚¢ */
202
203/*
204 * ƒ^ƒCƒ€ƒAƒEƒgŽw’è
205 */
206#define TMO_POL 0 /* ƒ|[ƒŠƒ“ƒO */
207#define TMO_FEVR (-1) /* ‰i‹v‘Ò‚¿ */
208#define TMO_NBLK (-2) /* ƒmƒ“ƒuƒƒbƒLƒ“ƒO */
209
210/*
211 * ƒAƒNƒZƒX‹–‰Âƒpƒ^[ƒ“
212 */
213#define TACP_KERNEL (0U) /* ƒJ[ƒlƒ‹ƒhƒƒCƒ“‚¾‚¯‚ɃAƒNƒZƒX‚ð‹–‰Â */
214#define TACP_SHARED (~0U) /* ‚·‚ׂẴhƒƒCƒ“‚©‚çƒAƒNƒZƒX‚ð‹–‰Â */
215
216/*
217 * Œ^‚ÉŠÖ‚·‚éî•ñ‚ðŽæ‚èo‚·‚½‚߂̃}ƒNƒ
218 *
219 * ˆÈ‰º‚ÌALIGN_TYPE‚Ì’è‹`‚́CƒAƒ‰ƒCƒ“ƒƒ“ƒg‚Ì’PˆÊ‚ª2‚̋Џæ‚Å‚ ‚邱‚Æ‚ð
220 * ‰¼’肵‚Ä‚¢‚éD
221 */
222#ifndef offsetof
223#define offsetof(structure, field) ((uintptr_t) &(((structure *) 0)->field))
224#endif /* offsetof */
225
226#ifndef alignof
227#define alignof(type) offsetof(struct { char field1; type field2; }, field2)
228#endif /* alignof */
229
230#ifndef ALIGN_TYPE /* ƒAƒ‰ƒCƒ“ƒƒ“ƒg‚̃`ƒFƒbƒN */
231#define ALIGN_TYPE(addr, type) \
232 ((((uintptr_t)(addr)) & (alignof(type) - 1)) == 0U)
233#endif /* ALIGN_TYPE */
234
235/*
236 * assertƒ}ƒNƒ
237 */
238#undef assert
239#ifndef NDEBUG
240#define assert(exp) ((void)((exp) ? 0 : (TOPPERS_assert_fail(#exp, \
241 __FILE__, __LINE__), TOPPERS_assert_abort(), 0)))
242#else /* NDEBUG */
243#define assert(exp) ((void) 0)
244#endif /* NDEBUG */
245
246#ifdef __cplusplus
247}
248#endif
249
250/*
251 * ƒGƒ‰[ƒR[ƒh¶¬E•ª‰ðƒ}ƒNƒ
252 *
253 * ˆÈ‰º‚̃}ƒNƒ’è‹`‚́C•„†•t‚«®”‚ª2‚̕␔‚Å•\Œ»‚³‚ê‚Ä‚¨‚èC‰EƒVƒtƒg
254 * ‰‰ŽZŽqi>>j‚ªŽZpƒVƒtƒg‚³‚ê‚邱‚Æ‚ð‰¼’è‚µ‚Ä‚¢‚éD‚»‚¤‚Å‚È‚¢ŠJ”­ŠÂ
255 * ‹«‚ł́Ctarget_stddef.h‚Å‚±‚ê‚ç‚Ì’è‹`‚ðã‘‚«‚µ‚È‚¯‚ê‚΂Ȃç‚È‚¢D
256 *
257 * MERCDƒ}ƒNƒ‚Ì’è‹`‚́CƒƒCƒ“ƒGƒ‰[ƒR[ƒh‚ª•‰‚Å‚ ‚邱‚Æ‚ð‰¼’è‚µ‚Ä‚¢‚éD
258 * ‚»‚¤‚Å‚È‚¢ê‡C2‚‚̒è‹`‚ªˆê’v‚µ‚È‚­‚È‚éD
259 */
260#ifndef ERCD
261#define ERCD(mercd, sercd) \
262 ((ER)((((uint_t)(sercd)) << 8) | (((uint_t)(mercd)) & 0xffU)))
263#endif /* ERCD */
264
265#ifndef MERCD
266#ifdef INT8_MAX
267#define MERCD(ercd) ((ER)((int8_t)(ercd)))
268#else /* INT8_MAX */
269#define MERCD(ercd) ((ER)(((uint_t) ercd) | ~0xffU))
270#endif /* INT8_MAX */
271#endif /* MERCD */
272
273#ifndef SERCD
274#define SERCD(ercd) ((ER)((ercd) >> 8))
275#endif /* SERCD */
276
277/*
278 * ƒAƒNƒZƒX‹–‰Âƒpƒ^[ƒ“¶¬ƒ}ƒNƒ
279 */
280#define TACP(domid) (1U << ((domid) - 1)) /* domid‚¾‚¯‚ɃAƒNƒZƒX‚ð‹–‰Â */
281
282/*
283 * ‘Š‘ÎŽžŠÔiRELTIMj‚ÉŽw’è‚Å‚«‚éÅ‘å’l
284 */
285#if UINT_MAX < LONG_MAX
286#define TMAX_RELTIM ((RELTIM) UINT_MAX)
287#else /* UINT_MAX < LONG_MAX */
288#define TMAX_RELTIM ((RELTIM) LONG_MAX)
289#endif /* UINT_MAX < LONG_MAX */
290
291#endif /* TOPPERS_T_STDDEF_H */
Note: See TracBrowser for help on using the repository browser.