📄 itron.h
字号:
/*
* TOPPERS/JSP Kernel
* Toyohashi Open Platform for Embedded Real-Time Systems/
* Just Standard Profile Kernel
*
* Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
* Toyohashi Univ. of Technology, JAPAN
* Copyright (C) 2004 by Embedded and Real-Time Systems Laboratory
* Graduate School of Information Science, Nagoya Univ., JAPAN
*
* 忋婰挊嶌尃幰偼丆埲壓偺 (1)乣(4) 偺忦審偐丆Free Software Foundation
* 偵傛偭偰岞昞偝傟偰偄傞 GNU General Public License 偺 Version 2 偵婰
* 弎偝傟偰偄傞忦審傪枮偨偡応崌偵尷傝丆杮僜僼僩僂僃傾乮杮僜僼僩僂僃傾
* 傪夵曄偟偨傕偺傪娷傓丏埲壓摨偠乯傪巊梡丒暋惢丒夵曄丒嵞攝晍乮埲壓丆
* 棙梡偲屇傇乯偡傞偙偲傪柍彏偱嫋戻偡傞丏
* (1) 杮僜僼僩僂僃傾傪僜乕僗僐乕僪偺宍偱棙梡偡傞応崌偵偼丆忋婰偺挊嶌
* 尃昞帵丆偙偺棙梡忦審偍傛傃壓婰偺柍曐徹婯掕偑丆偦偺傑傑偺宍偱僜乕
* 僗僐乕僪拞偵娷傑傟偰偄傞偙偲丏
* (2) 杮僜僼僩僂僃傾傪丆儔僀僽儔儕宍幃側偳丆懠偺僜僼僩僂僃傾奐敪偵巊
* 梡偱偒傞宍偱嵞攝晍偡傞応崌偵偼丆嵞攝晍偵敽偆僪僉儏儊儞僩乮棙梡
* 幰儅僯儏傾儖側偳乯偵丆忋婰偺挊嶌尃昞帵丆偙偺棙梡忦審偍傛傃壓婰
* 偺柍曐徹婯掕傪宖嵹偡傞偙偲丏
* (3) 杮僜僼僩僂僃傾傪丆婡婍偵慻傒崬傓側偳丆懠偺僜僼僩僂僃傾奐敪偵巊
* 梡偱偒側偄宍偱嵞攝晍偡傞応崌偵偼丆師偺偄偢傟偐偺忦審傪枮偨偡偙
* 偲丏
* (a) 嵞攝晍偵敽偆僪僉儏儊儞僩乮棙梡幰儅僯儏傾儖側偳乯偵丆忋婰偺挊
* 嶌尃昞帵丆偙偺棙梡忦審偍傛傃壓婰偺柍曐徹婯掕傪宖嵹偡傞偙偲丏
* (b) 嵞攝晍偺宍懺傪丆暿偵掕傔傞曽朄偵傛偭偰丆TOPPERS僾儘僕僃僋僩偵
* 曬崘偡傞偙偲丏
* (4) 杮僜僼僩僂僃傾偺棙梡偵傛傝捈愙揑傑偨偼娫愙揑偵惗偠傞偄偐側傞懝
* 奞偐傜傕丆忋婰挊嶌尃幰偍傛傃TOPPERS僾儘僕僃僋僩傪柶愑偡傞偙偲丏
*
* 杮僜僼僩僂僃傾偼丆柍曐徹偱採嫙偝傟偰偄傞傕偺偱偁傞丏忋婰挊嶌尃幰偍
* 傛傃TOPPERS僾儘僕僃僋僩偼丆杮僜僼僩僂僃傾偵娭偟偰丆偦偺揔梡壜擻惈傕
* 娷傔偰丆偄偐側傞曐徹傕峴傢側偄丏傑偨丆杮僜僼僩僂僃傾偺棙梡偵傛傝捈
* 愙揑傑偨偼娫愙揑偵惗偠偨偄偐側傞懝奞偵娭偟偰傕丆偦偺愑擟傪晧傢側偄丏
*
* @(#) $Id: itron.h,v 1.16 2004/12/22 03:38:00 hiro Exp $
*/
/*
* ITRON巇條嫟捠婯掕偺僨乕僞宆丒掕悢丒儅僋儘
*
* 偙偺僼傽僀儖偵偼丆僗僞儞僟乕僪僾儘僼傽僀儖偵偼昁梫側偄掕媊傕娷傫偱
* 偄傞丏僨乕僞宆偺掕媊偼丆僗僞儞僟乕僪僾儘僼傽僀儖傪枮偨偡偪傚偆偳偺
* 挿偝偵偼偟偰偄側偄丏
*
* 傾僙儞僽儕尵岅偺僜乕僗僼傽僀儖傗僔僗僥儉僐儞僼傿僊儏儗乕僔儑儞僼傽
* 僀儖偐傜偙偺僼傽僀儖傪僀儞僋儖乕僪偡傞帪偼丆_MACRO_ONLY 傪掕媊偟偰
* 偍偔偙偲偱丆儅僋儘掕媊埲奜偺婰弎傪彍偔偙偲偑偱偒傞丏
*
* 偙偺僀儞僋儖乕僪僼傽僀儖偼丆kernel.h 偲 sil.h 偱僀儞僋儖乕僪偝傟傞丏
* 傑偨丆ITRON巇條嫟捠婯掕偵弨嫆偡傞僜僼僩僂僃傾晹昳偺僀儞僋儖乕僪僼傽
* 僀儖偼丆偙偺僼傽僀儖傪捈愙僀儞僋儖乕僪偟偰傕傛偄丏偙偺椺奜傪彍偄偰丆
* 懠偺僼傽僀儖偐傜捈愙僀儞僋儖乕僪偝傟傞偙偲偼側偄丏
*
* 偙偺僼傽僀儖傪僀儞僋儖乕僪偡傞慜偵丆t_stddef.h 傪僀儞僋儖乕僪偟偰
* 偍偔偙偲偑昁梫偱偁傞丏
*/
#ifndef _ITRON_H_
#define _ITRON_H_
#ifdef __cplusplus
extern "C" {
#endif
/*
* 奐敪娐嫬偵埶懚偡傞掕媊
*/
#include <tool_defs.h>
/*
* 奐敪娐嫬偺昗弨僀儞僋儖乕僪僼傽僀儖乮NULL 偲 size_t 偺掕媊偑昁梫乯
*
* C++/EC++ 偱偼丆昗弨巇條忋偼 stddef.h 偑僒億乕僩偝傟偰偄傞偲偼尷傜側
* 偄偑丆傎偲傫偳偺張棟宯偱僒億乕僩偝傟偰偄傞丏
*/
#ifndef _MACRO_ONLY
#include <stddef.h>
#endif /* _MACRO_ONLY */
/*
* 僐儞僷僀儔埶懚偺僨乕僞宆偺僨僼僅儖僩掕媊
*/
#ifndef _bool_
#define _bool_ int /* 僽乕儖宆 */
#endif /* _bool_ */
/*
* ITRON巇條嫟捠僨乕僞宆
*/
#ifndef _MACRO_ONLY
#ifdef _int8_
typedef signed _int8_ B; /* 晞崋晅偒8價僢僩惍悢 */
typedef unsigned _int8_ UB; /* 晞崋柍偟8價僢僩惍悢 */
typedef _int8_ VB; /* 宆偑掕傑傜側偄8價僢僩偺抣 */
#endif /* _int8_ */
#ifdef _int16_
typedef signed _int16_ H; /* 晞崋晅偒16價僢僩惍悢 */
typedef unsigned _int16_ UH; /* 晞崋柍偟16價僢僩惍悢 */
typedef _int16_ VH; /* 宆偑掕傑傜側偄16價僢僩偺抣 */
#endif /* _int16_ */
typedef signed _int32_ W; /* 晞崋晅偒32價僢僩惍悢 */
typedef unsigned _int32_ UW; /* 晞崋柍偟32價僢僩惍悢 */
typedef _int32_ VW; /* 宆偑掕傑傜側偄32價僢僩偺抣 */
#ifdef _int64_
typedef signed _int64_ D; /* 晞崋晅偒64價僢僩惍悢 */
typedef unsigned _int64_ UD; /* 晞崋柍偟64價僢僩惍悢 */
typedef _int64_ VD; /* 宆偑掕傑傜側偄64價僢僩偺抣 */
#endif /* _int64_ */
typedef void *VP; /* 宆偑掕傑傜側偄傕偺傊偺億僀儞僞 */
typedef void (*FP)(); /* 僾儘僌儔儉偺婲摦斣抧乮億僀儞僞乯 */
typedef signed int INT; /* 帺慠側僒僀僘偺晞崋晅偒惍悢 */
typedef unsigned int UINT; /* 帺慠側僒僀僘偺晞崋柍偟惍悢 */
typedef _bool_ BOOL; /* 恀婾抣 */
typedef INT FN; /* 婡擻僐乕僪 */
typedef INT ER; /* 僄儔乕僐乕僪 */
typedef INT ID; /* 僆僽僕僃僋僩偺ID斣崋 */
typedef UINT ATR; /* 僆僽僕僃僋僩偺懏惈 */
typedef UINT STAT; /* 僆僽僕僃僋僩偺忬懺 */
typedef UINT MODE; /* 僒乕價僗僐乕儖偺摦嶌儌乕僪 */
typedef INT PRI; /* 桪愭搙 */
typedef size_t SIZE; /* 儊儌儕椞堟偺僒僀僘 */
typedef INT TMO; /* 僞僀儉傾僂僩巜掕 */
typedef UINT RELTIM; /* 憡懳帪娫 */
typedef UW SYSTIM; /* 僔僗僥儉帪崗 */
#ifdef _vp_int_
typedef _vp_int_ VP_INT; /* VP 傑偨偼 INT */
#else /* _vp_int_ */
typedef VP VP_INT; /* VP 傑偨偼 INT */
#endif /* _vp_int_ */
typedef INT ER_BOOL; /* ER 傑偨偼 BOOL */
typedef INT ER_ID; /* ER 傑偨偼 ID */
typedef INT ER_UINT; /* ER 傑偨偼 UINT */
#endif /* _MACRO_ONLY */
/*
* ITRON巇條嫟捠掕悢
*/
/*
* 堦斒
*
* _MACRO_ONLY 偺帪偵偼丆NULL 傪掕媊偟側偄丏偙傟偼丆_MACRO_ONLY 偺帪
* 偼stddef.h 傪僀儞僋儖乕僪偟側偄偨傔丆偦偆偱側偄帪偲 NULL 偺掕媊偑
* 怘偄堘偆壜擻惈偑偁傞偨傔偱偁傞丏傑偨丆僔僗僥儉僐儞僼傿僊儏儗乕僔儑
* 儞僼傽僀儖傪張棟偡傞応崌偵偼 NULL 傪掕媊偟偰偼側傜側偄偨傔丆偦偺揰
* 偐傜傕掕媊偟側偄曽偑搒崌偑傛偄丏
*/
#ifndef _MACRO_ONLY
#ifndef NULL /* stddef.h 偵娷傑傟偰偄傞偼偢 */
#define NULL 0 /* 柍岠億僀儞僞 */
#endif /* NULL */
#endif /* _MACRO_ONLY */
#define TRUE 1 /* 恀 */
#define FALSE 0 /* 婾 */
#define E_OK 0 /* 惓忢廔椆 */
/*
* 僄儔乕僐乕僪
*/
#define E_SYS (-5) /* 僔僗僥儉僄儔乕 */
#define E_NOSPT (-9) /* 枹僒億乕僩婡擻 */
#define E_RSFN (-10) /* 梊栺婡擻僐乕僪 */
#define E_RSATR (-11) /* 梊栺懏惈 */
#define E_PAR (-17) /* 僷儔儊乕僞僄儔乕 */
#define E_ID (-18) /* 晄惓ID斣崋 */
#define E_CTX (-25) /* 僐儞僥僉僗僩僄儔乕 */
#define E_MACV (-26) /* 儊儌儕傾僋僙僗堘斀 */
#define E_OACV (-27) /* 僆僽僕僃僋僩傾僋僙僗堘斀 */
#define E_ILUSE (-28) /* 僒乕價僗僐乕儖晄惓巊梡 */
#define E_NOMEM (-33) /* 儊儌儕晄懌 */
#define E_NOID (-34) /* ID斣崋晄懌 */
#define E_OBJ (-41) /* 僆僽僕僃僋僩忬懺僄儔乕 */
#define E_NOEXS (-42) /* 僆僽僕僃僋僩枹惗惉 */
#define E_QOVR (-43) /* 僉儏乕僀儞僌僆乕僶乕僼儘乕 */
#define E_RLWAI (-49) /* 懸偪忬懺偺嫮惂夝彍 */
#define E_TMOUT (-50) /* 億乕儕儞僌幐攕傑偨偼僞僀儉傾僂僩 */
#define E_DLT (-51) /* 懸偪僆僽僕僃僋僩偺嶍彍 */
#define E_CLS (-52) /* 懸偪僆僽僕僃僋僩偺忬懺曄壔 */
#define E_WBLK (-57) /* 僲儞僽儘僢僉儞僌庴晅偗 */
#define E_BOVR (-58) /* 僶僢僼傽僆乕僶乕僼儘乕 */
/*
* 僆僽僕僃僋僩懏惈
*/
#define TA_NULL 0u /* 僆僽僕僃僋僩懏惈傪巜掕偟側偄 */
/*
* 僞僀儉傾僂僩巜掕
*/
#define TMO_POL 0 /* 億乕儕儞僌 */
#define TMO_FEVR (-1) /* 塱媣懸偪 */
#define TMO_NBLK (-2) /* 僲儞僽儘僢僉儞僌 */
/*
* ITRON巇條嫟捠儅僋儘
*/
/*
* 僄儔乕僐乕僪惗惉丒暘夝儅僋儘
*
* ANSI C尵岅偺婯奿偱偼丆塃僔僼僩墘嶼巕乮>>乯偑晞崋奼挘偝傟傞偙偲傪曐
* 徹偟偰偄側偄偨傔丆SERCD儅僋儘偺掕媊傪扨偵 ((ercd) >> 8) 偲偡傞偲丆
* 塃僔僼僩墘嶼巕傪晞崋奼挘偟側偄僐儞僷僀儔偱偼丆SERCD 偺曉抣偑惓偺抣
* 偵側偭偰偟傑偆丏
*/
#define ERCD(mercd,sercd) (((sercd) << 8) | ((mercd) & 0xff))
#ifdef _int8_
#define MERCD(ercd) ((ER)((B)(ercd)))
#define SERCD(ercd) ((ER)((B)((ercd) >> 8)))
#else /* _int8_ */
#define MERCD(ercd) (((ercd) & 0x80) == 0 ? ((ercd) & 0xff) \
: ((ercd) | ~0xff))
#define SERCD(ercd) ((~((~0) >> 8)) | ((ercd) >> 8))
#endif /* _int8_ */
#ifdef __cplusplus
}
#endif
#endif /* _ITRON_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -