📄 itron.h
字号:
#ifndef _ITRON_H_
#define _ITRON_H_
typedef char B;
typedef char VB;
typedef unsigned char UB;
typedef short BOOL_ID;
typedef short H;
typedef short HNO;
typedef short ID;
typedef short PRI;
typedef unsigned long ATR;
typedef unsigned long TMO;
typedef unsigned long UINT;
typedef unsigned long UW;
typedef long INT;
typedef long BOOL;
typedef long ER;
typedef long VW; /* variable data type (32 bit) */
typedef void *VP;
typedef void (*FP)(void);
typedef struct systime
{ /* system clock */
H utime; /* current date/time (upper) */
UW ltime; /* current date/time (lower) */
}
SYSTIME;
typedef TMO CYCTIME; /* cycle time */
typedef SYSTIME ALMTIME; /* alarm time */
typedef TMO DLYTIME; /* delay time */
#define NADR ((VP)-1)
#define TRUE 1
#define FALSE 0
#define TA_ASM 0 /* Assembler language program */
#define TA_HLNG 1 /* High-level language program */
/* Task interface */
typedef struct t_ctsk
{
VP exinf;
ATR tskatr;
FP task;
PRI itskpri;
UB cpumode; /* Extension */
INT stksz;
TMO quantum;
B *name;
}
T_CTSK;
ER cre_tsk(ID, T_CTSK *);
ER sta_tsk(ID, INT);
ER ter_tsk(ID);
ER dly_tsk(DLYTIME);
/* Semaphore interface */
typedef struct t_csem
{
VP exinf; /* Not use, extention information */
ATR sematr; /* Not use, attribute: TA_TFIFO or TA_TPRI */
INT isemcnt; /* Initial semaphore count */
B *name; /* Extension */
}
T_CSEM;
ER cre_sem(const ID, const T_CSEM *);
ER del_sem(ID);
ER wai_sem(ID);
ER sig_sem(ID);
/* Event flags interface */
typedef struct t_cflg
{
VP exinf;
ATR flgatr;
UINT iflgptn;
B *name; /* Extension */
}
T_CFLG;
#define TA_TFIFO 0 /* FIFO wait queue */
#define TA_WSGL 0x00000000
#define TA_WMUL 0x00000008
#define TWF_ANDW 0x00000000
#define TWF_ORW 0x00000002
#define TWF_CLR 0x00000001
typedef struct t_rflg
{
VP exinf;
BOOL_ID wtsk;
UINT flgptn;
ATR flgatr;
B *name;
}
T_RFLG;
ER cre_flg(const ID, const T_CFLG *);
ER del_flg(const ID flgid);
ER set_flg(ID, UINT);
ER clr_flg(ID, UINT);
ER wai_flg(UINT *, ID, UINT, UINT);
ER twai_flg(UINT *, ID, UINT, UINT, TMO);
ER pol_flg(UINT *, ID, UINT, UINT);
ER ref_flg(T_RFLG *, ID);
#if 0
ER vset_tfl(ID, UINT);
ER vwai_tfl(UINT *, UINT);
#endif
/* Message buffer interface */
typedef struct t_cmbf
{
VP exinf;
ATR mbfatr;
INT bufsz;
INT maxmsz;
B *name; /* Extension */
}
T_CMBF;
ER cre_mbf(ID, T_CMBF *);
ER snd_mbf(ID, VP, INT);
ER psnd_mbf(ID, VP, INT);
ER tsnd_mbf(ID, VP, INT, TMO);
ER rcv_mbf(VP, INT *, ID);
ER prcv_mbf(VP, INT *, ID);
ER trcv_mbf(VP, INT *, ID, TMO);
/* Timer interface */
#define TMO_POL 0
#define TMO_FEVR (-1)
typedef struct t_dcyc
{
VP exinf;
ATR cycatr;
FP cychdr;
UINT cycact;
CYCTIME cyctim;
B *name; /* Extension */
}
T_DCYC;
#define TCY_OFF 0x00000000 /* Not use */
#define TCY_ON 0x00000001
#define TCY_INI 0x00000002 /* Not use */
typedef struct t_dalm
{
VP exinf;
ATR almatr;
FP almhdr;
UINT tmmode;
ALMTIME almtim;
B *name; /* Extension */
}
T_DALM;
#define TTM_ABS 0x00000000
#define TTM_REL 0x00000001
ER def_alm(ID, T_DALM *);
ER def_cyc(ID, T_DCYC *);
ER act_cyc(ID, UINT);
/* System call Error Code */
#define E_OK 0
#define E_NOMEM (-10)
#define E_ID (-35)
#define E_NOEXS (-52)
#define E_OBJ (-63)
#define E_DLT (-81)
#define E_TMOUT (-85)
#define E_QOVR (-73)
#define E_PAR (-33)
void DisInt(void);
void EnInt(void);
ER dis_dsp(void);
ER ena_dsp(void);
ER get_tim(SYSTIME *pk_tim);
#endif /* _ITRON_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -