⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 itron.h

📁 M3355的源代码
💻 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 + -