URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/trunk/rtos/rtems/c/src/exec/itron
- from Rev 30 to Rev 173
- ↔ Reverse comparison
Rev 30 → Rev 173
/include/itron.h
0,0 → 1,52
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: itron.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __ITRON_h_ |
#define __ITRON_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* Include the basic requirements |
*/ |
|
#include <rtems/system.h> /* basic RTEMS types defined by */ |
/* each port */ |
#include <itronsys/types.h> /* define all the TRON types */ |
/* in terms of the RTEMS base types */ |
#include <itronsys/status.h> /* define all ITRON status codes */ |
|
/* |
* Now include the per manager include files |
*/ |
|
#include <itronsys/eventflags.h> |
#include <itronsys/fmempool.h> |
#include <itronsys/intr.h> |
#include <itronsys/mbox.h> |
#include <itronsys/msgbuffer.h> |
#include <itronsys/sysmgmt.h> /* network depends on this file */ |
#include <itronsys/network.h> |
#include <itronsys/port.h> |
#include <itronsys/semaphore.h> |
#include <itronsys/task.h> |
#include <itronsys/time.h> |
#include <itronsys/vmempool.h> |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/Makefile.am
0,0 → 1,24
## |
## $Id: Makefile.am,v 1.2 2001-09-27 11:59:12 chris Exp $ |
## |
|
AUTOMAKE_OPTIONS = foreign 1.4 |
|
H_FILES = itron.h |
|
noinst_HEADERS = $(H_FILES) |
|
PREINSTALL_FILES += $(PROJECT_INCLUDE) \ |
$(noinst_HEADERS:%=$(PROJECT_INCLUDE)/%) |
|
$(PROJECT_INCLUDE): |
@$(mkinstalldirs) $@ |
$(PROJECT_INCLUDE)/%.h: %.h |
$(INSTALL_DATA) $< $@ |
|
all-local: $(PREINSTALL_FILES) |
|
SUBDIRS = rtems itronsys |
|
include $(top_srcdir)/../../../../automake/subdirs.am |
include $(top_srcdir)/../../../../automake/local.am |
/include/itronsys/network.h
0,0 → 1,78
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: network.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __ITRON_NETWORK_h_ |
#define __ITRON_NETWORK_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* NODE srcnode, dstnode, nod: |
*/ |
|
#define TND_SELF 0 /* specifies the local node */ |
#define TND_OTHR (-1) /* specifies default remote node */ |
|
/* |
* Network Functions |
*/ |
|
/* |
* nrea_dat - Read Data from another Node |
*/ |
|
ER nrea_dat( |
INT *p_reasz, |
VP dstadr, |
NODE srcnode, |
VP srcadr, |
INT datsz |
); |
|
/* |
* nwri_dat - Write Data to another Node |
*/ |
|
ER nwri_dat( |
INT *p_wrisz, |
NODE dstnode, |
VP dstadr, |
VP srcadr, |
INT datsz |
); |
|
/* |
* nget_nod - Get Local Node Number |
*/ |
|
ER nget_nod( |
NODE *p_node |
); |
|
/* |
* nget_ver - Get Version Information of another Node |
*/ |
|
ER nget_ver( |
T_VER *pk_ver, |
NODE node |
); |
|
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/itronsys/eventflags.h
0,0 → 1,146
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: eventflags.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __ITRON_EVENTFLAGS_h_ |
#define __ITRON_EVENTFLAGS_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* Create Eventflags (cre_flg) Structure |
*/ |
|
typedef struct t_cflg { |
VP exinf; /* extended information */ |
ATR flgatr; /* eventflag attribute */ |
UINT iflgptn; /* initial eventflag */ |
/* additional information may be included depending on the implementation */ |
} T_CFLG; |
|
/* |
* flgatr |
*/ |
|
#define TA_WSGL 0x00 /* multiple tasks are not allowed to wait (Wait |
Single Task) */ |
#define TA_WMUL 0x08 /* multiple tasks are allowed to wait (Wait |
Multiple Task) */ |
|
/* |
* wfmode |
*/ |
|
#define TWF_ANDW 0x00 /* AND wait */ |
#define TWF_ORW 0x02 /* OR wait */ |
#define TWF_CLR 0x01 /* clear specification */ |
|
/* |
* Reference Eventflags (ref_flg) Structure |
*/ |
|
typedef struct t_rflg { |
VP exinf; /* extended information */ |
BOOL_ID wtsk; /* indicates whether or not there is a waiting task */ |
UINT flgptn; /* eventflag bit pattern */ |
/* additional information may be included depending on the implementation */ |
} T_RFLG; |
|
/* |
* Eventflag Functions |
*/ |
|
/* |
* cre_flg - Create Eventflag |
*/ |
|
ER cre_flg( |
ID flgid, |
T_CFLG *pk_cflg |
); |
|
/* |
* del_flg - Delete Eventflag |
*/ |
|
ER del_flg( |
ID flgid |
); |
|
/* |
* set_flg - Set Eventflag |
*/ |
|
ER set_flg( |
ID flgid, |
UINT setptn |
); |
|
/* |
* clr_flg - Clear Eventflag |
*/ |
|
ER clr_flg( |
ID flgid, |
UINT clrptn |
); |
|
/* |
* wai_flg - Wait on Eventflag |
*/ |
|
ER wai_flg( |
UINT *p_flgptn, |
ID flgid, |
UINT waiptn, |
UINT wfmode |
); |
|
/* |
* pol_flg - Wait for Eventflag(Polling) |
*/ |
|
ER pol_flg( |
UINT *p_flgptn, |
ID flgid, |
UINT waiptn, |
UINT wfmode |
); |
|
/* |
* twai_flg - Wait on Eventflag with Timeout |
*/ |
|
ER twai_flg( |
UINT *p_flgptn, |
ID flgid, |
UINT waiptn, |
UINT wfmode, |
TMO tmout |
); |
|
/* |
* ref_flg - Reference Eventflag Status |
*/ |
|
ER ref_flg( |
T_RFLG *pk_rflg, |
ID flgid |
); |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/itronsys/time.h
0,0 → 1,185
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: time.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __ITRON_TIME_h_ |
#define __ITRON_TIME_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* System Time Data Type |
* |
* Member configuration depends on the bit width of the processor and |
* on the implementation. A total of 48 bits is recommended. |
* |
*/ |
|
typedef struct t_systime { |
H utime; /* upper 16 bits */ |
UW ltime; /* lower 32 bits */ |
} SYSTIME, CYCTIME, ALMTIME; |
|
/* |
* XXX Look this up in the spec and figure out where it comes |
* XXX from. dly_tim() references it but it was left out |
* XXX of the initial cut at the header files. |
*/ |
|
typedef int DLYTIME; |
|
/* |
* XXX (def_cyc) Structure |
*/ |
|
typedef struct t_dcyc { |
VP exinf; /* extended information */ |
ATR cycatr; /* cyclic handler attributes */ |
FP cychdr; /* cyclic handler address */ |
UINT cycact; /* cyclic handler activation */ |
CYCTIME cyctim; /* cyclic startup period */ |
} T_DCYC; |
|
/* |
* cycact |
*/ |
|
#define TCY_OFF 0x00 /* do not invoke cyclic handler */ |
#define TCY_ON 0x01 /* invoke cyclic handler */ |
#define TCY_INT 0x02 /* initialize cycle count */ |
|
/* |
* Reference Cyclic Handler (ref_cyc) Structure |
*/ |
|
typedef struct t_rcyc { |
VP exinf; /* extended information */ |
CYCTIME lfttim; /* time left before next handler startup */ |
UINT cycact; /* cyclic handler activation */ |
/* additional information may be included depending on the implementation */ |
} T_RCYC; |
|
/* |
* Define Alarm (def_alm) Structure |
*/ |
|
typedef struct t_dalm { |
VP exinf; /* extended information */ |
ATR almatr; /* alarm handler attributes */ |
FP almhdr; /* alarm handler address */ |
UINT tmmode; /* start time specification mode */ |
ALMTIME almtim; /* handler startup time */ |
} T_DALM; |
|
/* |
* tmmode |
*/ |
|
#define TTM_ABS 0x00 /* specified as an absolute time */ |
#define TTM_REL 0x01 /* specified as a relative time */ |
|
/* |
* Reference Alarm (ref_alm) Structure |
*/ |
|
typedef struct t_ralm { |
VP exinf; /* extended information */ |
ALMTIME lfttim; /* time left before next handler startup */ |
/* additional information may be included depending on the implementation */ |
} T_RALM; |
|
/* |
* Time Management Functions |
*/ |
|
/* |
* set_tim - Set System Clock |
*/ |
|
ER set_tim( |
SYSTIME *pk_tim |
); |
|
/* |
* get_tim - Get System Clock |
*/ |
|
ER get_tim( |
SYSTIME *pk_tim |
); |
|
/* |
* dly_tsk - Delay Task |
*/ |
|
ER dly_tsk( |
DLYTIME dlytim |
); |
|
/* |
* def_cyc - Define Cyclic Handler |
*/ |
|
ER def_cyc( |
HNO cycno, |
T_DCYC *pk_dcyc |
); |
|
/* |
* act_cyc - Activate Cyclic Handler |
*/ |
|
ER act_cyc( |
HNO cycno, |
UINT cycact |
); |
|
/* |
* ref_cyc - Reference Cyclic Handler Status |
*/ |
|
ER ref_cyc( |
T_RCYC *pk_rcyc, |
HNO cycno |
); |
|
/* |
* def_alm - Define Alarm Handler |
*/ |
|
ER def_alm( |
HNO almno, |
T_DALM *pk_dalm |
); |
|
/* |
* ref_alm - Reference Alarm Handler Status |
*/ |
|
ER ref_alm( |
T_RALM *pk_ralm, |
HNO almno |
); |
|
/* |
* ret_tmr - Return from Timer Handler |
*/ |
|
void ret_tmr( void ); |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/itronsys/vmempool.h
0,0 → 1,132
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: vmempool.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __ITRON_VARIABLE_MEMORYPOOL_h_ |
#define __ITRON_VARIABLE_MEMORYPOOL_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* Create Variable Memory Pool (cre_mpl) Structure |
*/ |
|
typedef struct t_cmpl { |
VP exinf; /* extended information */ |
ATR mplatr; /* memorypool attributes */ |
INT mplsz; /* memorypool size */ |
/* additional information may be included depending on the implementation */ |
} T_CMPL; |
|
/* |
* mplatr |
*/ |
|
#define TA_TFIFO 0x00 /* waiting tasks are handled by FIFO */ |
#define TA_TPRI 0x01 /* waiting tasks are handled by priority */ |
|
/* |
* mplid |
*/ |
|
#define TMPL_OS (-4) /* memorypool used by OS */ |
|
/* |
* Reference Variable Memory Pool (ref_mpl) Structure |
*/ |
|
typedef struct t_rmpl { |
VP exinf; /* extended information */ |
BOOL_ID wtsk; /* indicates whether or not there are waiting tasks */ |
INT frsz; /* total size of free memory */ |
INT maxsz; /* size of largest contiguous memory */ |
/* additional information may be included depending on the implementation */ |
} T_RMPL; |
|
/* |
* Variable Memory Pool Functions |
*/ |
|
/* |
* cre_mpl - Create Variable-Size Memorypool |
*/ |
|
ER cre_mpl( |
ID mplid, |
T_CMPL *pk_cmpl |
); |
|
/* |
* del_mpl - Delete Variable-Size Memorypool |
*/ |
|
ER del_mpl( |
ID mplid |
); |
|
/* |
* get_blk - Get Variable-Size Memory Block |
*/ |
|
ER get_blk( |
VP *p_blk, |
ID mplid, |
INT blksz |
); |
|
/* |
* pget_blk - Poll and Get Variable-Size Memory Block |
*/ |
|
ER pget_blk( |
VP *p_blk, |
ID mplid, |
INT blksz |
); |
|
/* |
* tget_blk - Get Variable-Size Memory Block with Timeout |
*/ |
|
ER tget_blk( |
VP *p_blk, |
ID mplid, |
INT blksz, |
TMO tmout |
); |
|
/* |
* rel_blk - Release Variable-Size Memory Block |
*/ |
|
ER rel_blk( |
ID mplid, |
VP blk |
); |
|
/* |
* ref_mpl - Reference Variable-Size Memorypool Status |
*/ |
|
ER ref_mpl( |
T_RMPL *pk_rmpl, |
ID mplid |
); |
|
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/itronsys/task.h
0,0 → 1,298
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: task.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __ITRON_TASK_h_ |
#define __ITRON_TASK_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* Create Task (cre_tsk) Structure |
*/ |
|
typedef struct t_ctsk { |
VP exinf; /* extended information */ |
ATR tskatr; /* task attributes */ |
FP task; /* task start address */ |
PRI itskpri; /* initial task priority */ |
INT stksz; /* stack size */ |
/* additional information may be included depending on the implementation */ |
} T_CTSK; |
|
/* |
* Values for the tskatr field |
*/ |
|
#define TA_ASM 0x00 /* program written in assembly language */ |
#define TA_HLNG 0x01 /* program written in high-level language */ |
#define TA_COP0 0x8000 /* uses coprocessor having ID = 0 */ |
#define TA_COP1 0x4000 /* uses coprocessor having ID = 1 */ |
#define TA_COP2 0x2000 /* uses coprocessor having ID = 2 */ |
#define TA_COP3 0x1000 /* uses coprocessor having ID = 3 */ |
#define TA_COP4 0x0800 /* uses coprocessor having ID = 4 */ |
#define TA_COP5 0x0400 /* uses coprocessor having ID = 5 */ |
#define TA_COP6 0x0200 /* uses coprocessor having ID = 6 */ |
#define TA_COP7 0x0100 /* uses coprocessor having ID = 7 */ |
|
/* |
* Values for the tskid field |
*/ |
|
#define TSK_SELF 0 /* task specifies itself */ |
|
/* XXX is this a mistake in ITRON? FALSE was here and in the types list */ |
#if 0 |
|
#define FALSE 0 /* indicates a task-independent portion (return */ |
/* parameters only) */ |
#endif |
|
/* |
* Values for the tskpri field |
*/ |
|
#define TPRI_INI 0 /* specifies the initial priority on */ |
/* task startup (chg_pri) */ |
#define TPRI_RUN 0 /* specifies the highest priority during */ |
/* execution (rot_rdq) */ |
|
|
/* |
* Reference Task (ref_tsk) Structure |
*/ |
|
typedef struct t_rtsk { |
VP exinf; /* extended information */ |
PRI tskpri; /* current priority */ |
UINT tskstat; /* task state */ |
/* |
* The following are represent extended features of support |
* [level X] (implementation-dependent). |
*/ |
UINT tskwait; /* cause of wait */ |
ID wid; /* ID of object being waited for */ |
INT wupcnt; /* wakeup request count */ |
INT suscnt; /* SUSPEND request count */ |
ATR tskatr; /* task attributes */ |
FP task; /* task start address */ |
PRI itskpri; /* initial task priority */ |
INT stksz; /* stack size */ |
} T_RTSK; |
|
/* |
* Values for the tskstat field |
*/ |
|
|
#define TTS_RUN 0x01 /* RUN */ |
#define TTS_RDY 0x02 /* READY */ |
#define TTS_WAI 0x04 /* WAIT */ |
#define TTS_SUS 0x08 /* SUSPEND */ |
#define TTS_WAS 0x0C /* WAIT-SUSPEND */ |
#define TTS_DMT 0x10 /* DORMANT */ |
|
/* |
* Values for the tskwait field |
*/ |
|
#define TTW_SLP 0x0001 /* wait due to slp_tsk or tslp_tsk */ |
#define TTW_DLY 0x0002 /* wait due to dly_tsk */ |
#define TTW_NOD 0x0008 /* connection function response wait */ |
#define TTW_FLG 0x0010 /* wait due to wai_flg or twai_flg */ |
#define TTW_SEM 0x0020 /* wait due to wai_sem or twai_sem */ |
#define TTW_MBX 0x0040 /* wait due to rcv_msg or trcv_msg */ |
#define TTW_SMBF 0x0080 /* wait due to snd_mbf or tsnd_mbf */ |
#define TTW_MBF 0x0100 /* wait due to rcv_mbf or trcv_mbf */ |
#define TTW_CAL 0x0200 /* wait for rendezvous call */ |
#define TTW_ACP 0x0400 /* wait for rendezvous accept */ |
#define TTW_RDV 0x0800 /* wait for rendezvous completion */ |
#define TTW_MPL 0x1000 /* wait due to get_blk or tget_blk */ |
#define TTW_MPF 0x2000 /* wait due to get_blf or tget_blf */ |
|
/* |
* Since the task states given by tskstat and tskwait are expressed |
* by bit correspondences, they are convenient when looking for OR |
* conditions (such as whether a task is in WAIT or READY state). |
*/ |
|
/* |
* Task Management Functions |
*/ |
|
/* |
* cre_tsk - Create Task |
*/ |
|
ER cre_tsk( |
ID tskid, |
T_CTSK *pk_ctsk |
); |
|
/* |
* del_tsk - Delete Task |
*/ |
|
ER del_tsk( |
ID tskid |
); |
|
/* |
* sta_tsk - Start Task |
*/ |
|
ER sta_tsk( |
ID tskid, |
INT stacd |
); |
|
/* |
* ext_tsk - Exit Issuing Task |
*/ |
|
void ext_tsk( void ); |
|
/* |
* exd_tsk - Exit and Delete Task |
*/ |
|
void exd_tsk( void ); |
|
/* |
* ter_tsk - Terminate Other Task |
*/ |
|
ER ter_tsk( |
ID tskid |
); |
|
/* |
* dis_dsp - Disable Dispatch |
*/ |
|
ER dis_dsp( void ); |
|
/* |
* ena_dsp - Enable Dispatch |
*/ |
|
ER ena_dsp( void ); |
|
/* |
* chg_pri - Change Task Priority |
*/ |
|
ER chg_pri( |
ID tskid, |
PRI tskpri |
); |
|
/* |
* rot_rdq - Rotate Tasks on the Ready Queue |
*/ |
|
ER rot_rdq( |
PRI tskpri |
); |
|
/* |
* rel_wai - Release Wait of Other Task |
*/ |
|
ER rel_wai( |
ID tskid |
); |
|
/* |
* get_tid - Get Task Identifier |
*/ |
|
ER get_tid( |
ID *p_tskid |
); |
|
/* |
* ref_tsk - Reference Task Status |
*/ |
|
ER ref_tsk( |
T_RTSK *pk_rtsk, |
ID tskid |
); |
|
|
/* |
* Task-Dependent Synchronization Functions |
*/ |
|
/* |
* sus_tsk - Suspend Other Task |
*/ |
|
ER sus_tsk( |
ID tskid |
); |
|
/* |
* rsm_tsk - Resume Suspended Task |
*/ |
|
ER rsm_tsk( |
ID tskid |
); |
|
/* |
* frsm_tsk - Forcibly Resume Suspended Task |
*/ |
|
ER frsm_tsk( |
ID tskid |
); |
|
/* |
* slp_tsk - Sleep Task Sleep Task with Timeout |
*/ |
|
ER slp_tsk( void ); |
|
/* |
* tslp_tsk - Sleep Task with Timeout |
*/ |
|
ER tslp_tsk( |
TMO tmout |
); |
|
/* |
* wup_tsk - Wakeup Other Task |
*/ |
|
ER wup_tsk( |
ID tskid |
); |
|
/* |
* can_wup - Cancel Wakeup Request |
*/ |
|
ER can_wup( |
INT *p_wupcnt, |
ID tskid |
); |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/itronsys/sysmgmt.h
0,0 → 1,319
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: sysmgmt.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __ITRON_SYSTEM_MANAGEMENT_h_ |
#define __ITRON_SYSTEM_MANAGEMENT_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* Get Version (get_ver) Structure |
*/ |
|
typedef struct t_ver { |
UH maker; /* vendor */ |
UH id; /* format number */ |
UH spver; /* specification version */ |
UH prver; /* product version */ |
UH prno[4]; /* product control information */ |
UH cpu; /* CPU information */ |
UH var; /* variation descriptor */ |
} T_VER; |
|
/* |
* Specific MAKER codes established as of March, 1993 are as follows. |
* Due to restrictions on the assignment of CPU codes described below, it is |
* necessary to use maker codes in the range 0x000 through 0x00ff for vendors |
* developing CPUs. |
*/ |
|
/* |
* CPU defines XXX need to name the constants |
*/ |
|
#if 0 |
#define 0x000 /* No version (test systems, etc.) */ |
#define 0x001 /* University of Tokyo */ |
#define 0x009 /* FUJITSU LIMITED */ |
#define 0x00a /* Hitachi, Ltd. */ |
#define 0x00b /* Matsushita Electric Industrial Co., Ltd. */ |
#define 0x00c /* Mitsubishi Electric Corporation */ |
#define 0x00d /* NEC Corporation */ |
#define 0x00e /* Oki Electric Industry Co., Ltd. */ |
#define 0x00f /* TOSHIBA CORPORATION */ |
#endif |
|
/* |
* The above have been assigned in alphabetical order. |
*/ |
|
#if 0 |
#define 0x010 /* ALPS ELECTRIC CO., LTD. */ |
#define 0x011 /* WACOM Co., Ltd. */ |
#define 0x012 /* Personal Media Corporation */ |
#define 0x101 /* OMRON CORPORATION */ |
#define 0x102 /* SEIKOSHA CO., LTD. */ |
#define 0x103 /* SYSTEM ALGO CO., LTD. */ |
#define 0x104 /* Tokyo Computer Service Co., Ltd. */ |
#define 0x105 /* YAMAHA CORPORATION */ |
#define 0x106 /* MORSON JAPAN */ |
#define 0x107 /* TOSHIBA INFORMATION SYSTEMS (JAPAN) CORP. */ |
#define 0x108 /* Miyazaki System Planning Office */ |
#define 0x109 /* Three Ace Computer Corporation */ |
#endif |
|
/* |
* CPU Codes |
* |
* Figure 47 shows the format of cpu code. Some processors use the format |
* given in Figure 47(1). The format given in Figure 47(2) is used for all |
* other proprietary processors. |
* |
* The code assignment of the CPU1 region in the format given in Figure 47(1) |
* is common to ITRON and BTRON specifications. The same number is used in |
* the CPU type of the standard object format of BTRON specification |
* operating systems implemented on a TRON-specification chip. |
* |
* When using the format given in Figure 47(2) the code used for MAKER1 is |
* assigned by using the lower 8 bits of MAKER described in the previous |
* subsection. The code assignment of CPU2 is left up to each maker. |
* |
* |
* |
* +---------------+---------------+---------------+---------------+ |
* (1) | 0 0 0 0 0 0 0 0 | CPU1 | |
* +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |
* +---------------+---------------+---------------+---------------+ |
* (2) | MAKER1 | CPU2 | |
* +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ |
* |
* Figure 47 Format of cpu Returned by get_ver |
* |
* |
* Specific CPU codes established as of March, 1993 are as follows. |
*/ |
|
#if 0 |
/* |
* XXX CONVERT THESE to #defines |
*/ |
|
|
/* |
* Contents of the CPU1 field |
*/ |
|
#define (0x0) CPU unspecified, no CPU information given |
#define (0x1) TRONCHIP32 shared |
#define (0x2) reserved |
#define (0x3) reserved |
#define (0x4) reserved |
#define (0x5) reserved (<<L1R>> TRON-specification chip) |
#define (0x6) reserved (<<L1>> TRON-specification chip) |
#define (0x7) reserved (TRON-specification chip supporting the |
LSID function) |
/* CPU vendors are unspecified for codes B'00000000 through B'00000111. */ |
|
#define (0x8) reserved |
#define (0x9) GMICRO/100 |
#define (0xa) GMICRO/200 |
#define (0xb) GMICRO/300 |
#define (0xc) reserved |
#define (0xd) TX1 |
#define (0xe) TX2 |
#define (0xf) reserved |
|
#define (0x10) reserved |
#define (0x11) reserved |
#define (0x12) reserved |
#define (0x13) O32 |
#define (0x14) reserved |
#define (0x15) MN10400 |
#define (0x16) reserved |
#define (0x17) reserved |
|
#define (0x18) GMICRO/400 |
#define (0x19) GMICRO/500 |
#define (0x1a) reserved |
#define (0x1b-0x3f) |
reserved |
* For GMICRO extended, TX series extended, and TRONCHIP64 chips. |
|
#define (0x40) Motorola 68000 |
#define (0x41) Motorola 68010 |
#define (0x42) Motorola 68020 |
#define (0x43) Motorola 68030 |
#define (0x44) Motorola 68040 |
#define -(0x40-0x4f) |
#define Motorola 68000 family |
#define (0x50) National Semiconductor NS32032 |
#define (0x50-0x5f) |
National Semiconductor NS32000 family |
#define (0x60) Intel 8086, 8088 |
#define (0x61) Intel 80186 |
#define (0x62) Intel 80286 |
#define (0x63) Intel 80386 |
#define (0x64) Intel 80486 |
#define (0x60-0x6f) |
Intel iAPX86 family |
|
#define (0x70-0x7f) |
NEC V Series |
|
#define (0x80-0xff) |
reserved |
#endif |
|
/* |
* Assigning Version Numbers |
* |
* The version numbers of ITRON and uITRON specifications take the following |
* form. |
* |
* Ver X.YY.ZZ[.WW] |
* |
* where "X" represents major version number of the ITRON specification to |
* distinguish ITRON1, ITRON2 and uITRON 3.0 specifications. Specific |
* assignment is as follows. |
* |
* "X" = 1 ITRON1 specification |
* = 2 ITRON2 or uITRON 2.0 specification |
* = 3 uITRON 3.0 specification |
* |
* "YY" is a number used to distinguish versions according to changes and |
* additions made to the specification. After the specification is published, |
* this number is incremented in order "YY" = 00, 01, 02... according to |
* version upgrades. The first digit of "YY" is 'A', 'B' or 'C' for draft |
* standard versions and test versions within the TRON Association before the |
* specification have been published. |
* |
* The "X.YY" part of the specification version numbers is returned by spver |
* to get_ver system call. The corresponding hexadecimal value is used when |
* "YY" includes 'A', 'B' or 'C'. |
* |
* "ZZ" represents a number used to distinguish versions related to the written |
* style of a specification. This number is incremented in order |
* "ZZ" = 00, 01, 02... when there have been changes in specification |
* configuration, reordering of chapters or corrections of misprints. |
* When a further distinction of the written style of specifications is |
* desired, ".WW" may be added optionally after "ZZ". WW will be assumed |
* to be zero if ".WW" is omitted. |
*/ |
|
/* |
* Reference System (ref_sys) Structure |
*/ |
|
typedef struct t_rsys { |
INT sysstat; /* system state */ |
/* additional information may be included depending on the implementation */ |
} T_RSYS; |
|
/* |
* sysstat |
*/ |
|
#define TSS_TSK 0 /* normal state in which dispatching is enabled during |
task portion execution */ |
#define TSS_DDSP 1 /* state after dis_dsp has been executed during task |
portion execution (dispatch disabled) */ |
#define TSS_LOC 3 /* state after loc_cpu has been executed during task |
portion execution (interrupt and dispatch disabled) |
*/ |
#define TSS_INDP 4 /* state during execution of task-independent portions |
(interrupt and timer handlers) */ |
|
/* |
* Reference Configuration (ref_cfg) Structure |
*/ |
|
typedef struct t_rcfg { |
/* details concerning members are implementation dependent */ |
} T_RCFG; |
|
/* |
* Define Service (def_svc) Structure |
*/ |
|
typedef struct t_dsvc { |
ATR svcatr; /* extended SVC handler attributes */ |
FP svchdr; /* extended SVC handler address */ |
/* additional information may be included depending on the implementation */ |
} T_DSVC; |
|
/* |
* Define Exception (def_exc) Structure |
*/ |
|
typedef struct t_dexc { |
ATR excatr; /* exception handler attributes */ |
FP exchdr; /* exception handler address */ |
/* additional information may be included depending on the implementation */ |
} T_DEXC; |
|
/* |
* System Management Functions |
*/ |
|
/* |
* get_ver - Get Version Information |
*/ |
|
ER get_ver( |
T_VER *pk_ver |
); |
|
/* |
* ref_sys - Reference Semaphore Status |
*/ |
|
ER ref_sys( |
T_RSYS *pk_rsys |
); |
|
/* |
* ref_cfg - Reference Configuration Information |
*/ |
|
ER ref_cfg( |
T_RCFG *pk_rcfg |
); |
|
/* |
* def_svc - Define Extended SVC Handler |
*/ |
|
ER def_svc( |
FN s_fncd, |
T_DSVC *pk_dsvc |
); |
|
/* |
* def_exc - Define Exception Handler |
*/ |
|
ER def_exc( |
UINT exckind, |
T_DEXC *pk_dexc |
); |
|
|
|
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/itronsys/types.h
0,0 → 1,121
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: types.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __ITRON_TYPES_h_ |
#define __ITRON_TYPES_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* XXX some of these may need to be moved */ |
/* |
* XXX: These names are too short and conflict with numerous |
* off the shell programs including paranoia. |
*/ |
|
typedef signed8 B; /* signed 8-bit integer */ |
typedef signed16 H; /* signed 16-bit integer */ |
typedef signed32 W; /* signed 32-bit integer */ |
typedef unsigned8 UB; /* unsigned 8-bit integer */ |
typedef unsigned16 UH; /* unsigned 16-bit integer */ |
typedef unsigned32 UW; /* unsigned 32-bit integer */ |
|
typedef unsigned32 VW; /* unpredictable data type (32-bit size) */ |
typedef unsigned16 VH; /* unpredictable data type (16-bit size) */ |
typedef unsigned8 VB; /* unpredictable data type (8-bit size) */ |
|
typedef void *VP; /* pointer to an unpredictable data type */ |
|
typedef void (*FP)(); /* program start address */ |
|
/* |
* 6.4 Data Types |
* |
* The difference between VB, VH and VW and B, H and W is that only the |
* number of bits is known for the former, not the data type of the |
* contents. The latter clearly represent integers. |
*/ |
|
/* |
* Data Types Dependent on ITRON Specification |
* |
* In order to clarify the meanings of certain parameters, the |
* following names are used for data types which appear frequently |
* and/or have special meanings. |
*/ |
|
typedef signed32 INT; /* Signed integer (bit width of processor) */ |
typedef unsigned32 UINT; /* Unsigned integer (bit width of processor) */ |
typedef boolean BOOL; /* Boolean value. TRUE (1) or FALSE (0). */ |
typedef signed16 FN; /* Function code. Signed integer. Maximum 2 bytes. */ |
typedef int ID; /* Object ID number (???id) */ |
/* Value range depends on the system. Usually */ |
/* a signed integer. Certain ID values may */ |
/* represent objects on other nodes when the */ |
/* connection function is supported. */ |
|
typedef unsigned32 BOOL_ID;/* Boolean value or ID number */ |
|
typedef signed32 HNO; /* Handler number */ |
typedef signed32 RNO; /* Rendezvous number */ |
typedef signed32 NODE; /* Node Number. Usually a signed integer. */ |
typedef signed32 ATR; /* Object or handler attribute. */ |
/* An unsigned integer. */ |
typedef signed32 ER; /* Error code. A signed integer. */ |
typedef unsigned32 PRI; /* Task priority. A signed integer. */ |
typedef signed32 TMO; /* Timeout value. A signed integer. */ |
/* TMO_POL = 0 indicates polling, */ |
/* while TMO_FEVR = -1 indicates wait forever. */ |
|
/* |
* 6.6 Common Constants and Data Structure Packet Formats |
*/ |
|
#define NADR (-1) /* invalid address or pointer value */ |
|
#ifndef TRUE |
#define TRUE 1 /* true */ |
#endif |
|
#ifndef FALSE |
#define FALSE 0 /* false */ |
#endif |
|
/* |
* ATR tskatr, intatr, cycatr, almatr, svcatr, excatr: |
* |
* TA_ASM indicates that the task or handler is directly started |
* at the assembly language level. The TA_ASM attribute has the |
* opposite meaning of TA_HLNG. |
* |
* NOTE: Really in <itronsys/task.h> |
*/ |
|
#if 0 |
#define TA_ASM 0x00 /* program written in assembly language */ |
#define TA_HLNG 0x01 /* program written in high-level language */ |
#endif |
|
/* |
* TMO tmout: |
*/ |
|
#define TMO_POL 0 /* polling */ |
#define TMO_FEVR (-1) /* wait forever */ |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/itronsys/mbox.h
0,0 → 1,138
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: mbox.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __ITRON_MBOX_h_ |
#define __ITRON_MBOX_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* Create Mailbox (cre_mbx) Structure |
*/ |
|
typedef struct t_cmbx { |
VP exinf; /* extended information */ |
ATR mbxatr; /* mailbox attributes */ |
/* Following is implementation-dependent function */ |
INT bufcnt; /* maximum number of messages to let pend */ |
/* additional information may be included depending on the implementation */ |
} T_CMBX; |
|
/* |
* mbxatr |
*/ |
|
#define TA_TFIFO 0x00 /* waiting tasks are handled by FIFO */ |
#define TA_TPRI 0x01 /* waiting tasks are handled by priority */ |
#define TA_MFIFO 0x00 /* messages are handled by FIFO */ |
#define TA_MPRI 0x02 /* messages are handled by priority */ |
|
typedef struct t_msg { |
/* |
* A region (header) reserved by the OS may be included first |
* depending on the implementation. |
* |
* NOTE: The first two fields are RTEMS specific. |
*/ |
|
INT msgpri; /* priority of each message */ |
/* VB msgcont[]; XXX */ |
unsigned8 msgcont[1]; |
} T_MSG; |
|
/* |
* Reference Mailbox (ref_mbx) Structure |
*/ |
|
typedef struct t_rmbx { |
VP exinf; /* extended information */ |
BOOL_ID wtsk; /* indicates whether or not there is a waiting task */ |
T_MSG *pk_msg; /* message to be sent next */ |
/* additional information may be included depending on the implementation */ |
} T_RMBX; |
|
/* |
* Mailbox Functions |
*/ |
|
/* |
* cre_mbx - Create Mailbox |
*/ |
|
ER cre_mbx( |
ID mbxid, |
T_CMBX *pk_cmbx |
); |
|
/* |
* del_mbx - Delete Mailbox |
*/ |
|
ER del_mbx( |
ID mbxid |
); |
|
/* |
* snd_msg - Send Message to Mailbox |
*/ |
|
ER snd_msg( |
ID mbxid, |
T_MSG *pk_msg |
); |
|
/* |
* rcv_msg - Receive Message from Mailbox |
*/ |
|
ER rcv_msg( |
T_MSG **ppk_msg, |
ID mbxid |
); |
|
/* |
* prcv_msg - Poll and Receive Message from Mailbox |
*/ |
|
ER prcv_msg( |
T_MSG **ppk_msg, |
ID mbxid |
); |
|
/* |
* trcv_msg - Receive Message from Mailbox with Timeout |
*/ |
|
ER trcv_msg( |
T_MSG **ppk_msg, |
ID mbxid, |
TMO tmout |
); |
|
/* |
* ref_mbx - Reference Mailbox Status |
*/ |
|
ER ref_mbx( |
T_RMBX *pk_rmbx, |
ID mbxid |
); |
|
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/itronsys/README
0,0 → 1,9
# |
# $Id: README,v 1.2 2001-09-27 11:59:12 chris Exp $ |
# |
|
This directory contains the public interface of each manager. |
Each file in this directory is included from <itron.h>. |
|
The private header file for each ITRON manager is in |
../rtems/itron. |
/include/itronsys/intr.h
0,0 → 1,106
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: intr.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __ITRON_INTERRUPT_h_ |
#define __ITRON_INTERRUPT_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* Define Interrupt (def_int) Structure |
*/ |
|
typedef struct t_dint { |
ATR intatr; /* interrupt handler attributes */ |
FP inthdr; /* interrupt handler address */ |
/* additional information may be included depending on the implementation */ |
} T_DINT; |
|
/* |
* Interrupt Functions |
*/ |
|
/* |
* def_int - Define Interrupt Handler |
*/ |
|
ER def_int( |
UINT dintno, |
T_DINT *pk_dint |
); |
|
/* |
* ret_int - Return from Interrupt Handler |
*/ |
|
void ret_int( void ); |
|
/* |
* ret_wup - Return and Wakeup Task |
*/ |
|
void ret_wup( |
ID tskid |
); |
|
/* |
* loc_cpu - Lock CPU |
*/ |
|
ER loc_cpu( void ); |
|
/* |
* unl_cpu - Unlock CPU |
*/ |
|
ER unl_cpu( void ); |
|
/* |
* dis_int - Disable Interrupt |
*/ |
|
ER dis_int( |
UINT eintno |
); |
|
/* |
* ena_int - Enable Interrupt |
*/ |
|
ER ena_int( |
UINT eintno |
); |
|
/* |
* chg_iXX - Change Interrupt Mask(Level or Priority) |
*/ |
|
ER chg_iXX( |
UINT iXXXX |
); |
|
/* |
* ref_iXX - Reference Interrupt Mask(Level or Priority) |
*/ |
|
ER ref_iXX( |
UINT *p_iXXXX |
); |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/itronsys/fmempool.h
0,0 → 1,125
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: fmempool.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __ITRON_FIXED_MEMORYPOOL_h_ |
#define __ITRON_FIXED_MEMORYPOOL_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* Create Fixed Memory Pool (cre_mpf) Structure |
*/ |
|
/* cre_mpf */ |
typedef struct t_cmpf { |
VP exinf; /* extended information */ |
ATR mpfatr; /* memorypool attributes */ |
INT mpfcnt; /* block count for entire memorypool */ |
INT blfsz; /* fixed-size memory block size */ |
/* additional information may be included depending on the implementation */ |
} T_CMPF; |
|
/* |
* mpfatr |
*/ |
|
#define TA_TFIFO 0x00 /* waiting tasks are handled by FIFO */ |
#define TA_TPRI 0x01 /* waiting tasks are handled by priority */ |
|
|
/* |
* Reference Fixed Memory Pool (ref_mpf) Structure |
*/ |
|
/* ref_mpf */ |
typedef struct t_rmpf { |
VP exinf; /* extended information */ |
BOOL_ID wtsk; /* indicates whether or not there are waiting tasks */ |
INT frbcnt; /* free block count */ |
/* additional information may be included depending on the implementation */ |
} T_RMPF; |
|
/* |
* Fixed Memory Pool Functions |
*/ |
|
/* |
* cre_mpf - Create Fixed-Size Memorypool |
*/ |
|
ER cre_mpf( |
ID mpfid, |
T_CMPF *pk_cmpf |
); |
|
/* |
* del_mpf - Delete Fixed-Size Memorypool |
*/ |
|
ER del_mpf( |
ID mpfid |
); |
|
/* |
* get_blf - Get Fixed-Size Memory Block |
*/ |
|
ER get_blf( |
VP *p_blf, |
ID mpfid |
); |
|
/* |
* pget_blf - Poll and Get Fixed-Size Memory Block |
*/ |
|
ER pget_blf( |
VP *p_blf, |
ID mpfid |
); |
|
/* |
* tget_blf - Get Fixed-Size Memory Block with Timeout |
*/ |
|
ER tget_blf( |
VP *p_blf, |
ID mpfid, |
TMO tmout |
); |
|
/* |
* rel_blf - Release Fixed-Size Memory Block |
*/ |
|
ER rel_blf( |
ID mpfid, |
VP blf |
); |
|
/* |
* ref_mpf - Reference Fixed-Size Memorypool Status |
*/ |
|
ER ref_mpf( |
T_RMPF *pk_rmpf, |
ID mpfid |
); |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/itronsys/msgbuffer.h
0,0 → 1,160
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: msgbuffer.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __ITRON_MESSAGEBUFFER_h_ |
#define __ITRON_MESSAGEBUFFER_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* Create Message Buffer (cre_mbf) Structure |
*/ |
|
typedef struct t_cmbf { |
VP exinf; /* extended information */ |
ATR mbfatr; /* messagebuffer attributes */ |
INT bufsz; /* messagebuffer size */ |
INT maxmsz; /* maximum size of messages */ |
/* additional information may be included depending on the implementation */ |
} T_CMBF; |
|
/* |
* mbfatr |
*/ |
|
#define TA_TFIFO 0x00 /* tasks waiting to receive messages are handled |
by FIFO */ |
#define TA_TPRI 0x01 /* tasks waiting to receive messages are handled |
by priority */ |
|
/* |
* mbfid |
*/ |
|
#define TMBF_OS (-4) /* messagebuffer used for OS error log */ |
#define TMBF_DB (-3) /* messagebuffer used for debugging */ |
|
/* |
* Reference Message Buffer (ref_mbf) Structure |
*/ |
|
typedef struct t_rmbf { |
VP exinf; /* extended information */ |
BOOL_ID wtsk; /* indicates whether or not there is a */ |
/* task waiting to receive a message */ |
BOOL_ID stsk; /* indicates whether or not there is a */ |
/* task waiting to send a message */ |
INT msgsz; /* size of message to be sent next */ |
INT frbufsz; /* size of free buffer */ |
/* additional information may be included depending on the implementation */ |
} T_RMBF; |
|
/* |
* Message Buffer Functions |
*/ |
|
/* |
* cre_mbf - Create MessageBuffer |
*/ |
|
ER cre_mbf( |
ID mbfid, |
T_CMBF *pk_cmbf |
); |
|
/* |
* del_mbf - Delete MessageBuffer |
*/ |
|
ER del_mbf( |
ID mbfid |
); |
|
/* |
* snd_mbf - Send Message to MessageBuffer |
*/ |
|
ER snd_mbf( |
ID mbfid, |
VP msg, |
INT msgsz |
); |
|
/* |
* psnd_mbf - Poll and Send Message to MessageBuffer |
*/ |
|
ER psnd_mbf( |
ID mbfid, |
VP msg, |
INT msgsz |
); |
|
/* |
* tsnd_mbf - Send Message to MessageBuffer with Timeout |
*/ |
|
ER tsnd_mbf( |
ID mbfid, |
VP msg, |
INT msgsz, |
TMO tmout |
); |
|
/* |
* rcv_mbf - Receive Message from MessageBuffer |
*/ |
|
ER rcv_mbf( |
VP msg, |
INT *p_msgsz, |
ID mbfid |
); |
|
/* |
* prcv_mbf - Poll and Receive Message from MessageBuffer |
*/ |
|
ER prcv_mbf( |
VP msg, |
INT *p_msgsz, |
ID mbfid |
); |
|
/* |
* trcv_mbf - Receive Message from MessageBuffer with Timeout |
*/ |
|
ER trcv_mbf( |
VP msg, |
INT *p_msgsz, |
ID mbfid, |
TMO tmout |
); |
|
/* |
* ref_mbf - Reference MessageBuffer Status |
*/ |
|
ER ref_mbf( |
T_RMBF *pk_rmbf, |
ID mbfid |
); |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/itronsys/Makefile.am
0,0 → 1,22
## |
## $Id: Makefile.am,v 1.2 2001-09-27 11:59:12 chris Exp $ |
## |
|
AUTOMAKE_OPTIONS = foreign 1.4 |
|
H_FILES = eventflags.h fmempool.h intr.h mbox.h msgbuffer.h network.h port.h \ |
semaphore.h status.h sysmgmt.h task.h time.h types.h vmempool.h |
|
noinst_HEADERS = $(H_FILES) |
|
PREINSTALL_FILES += $(PROJECT_INCLUDE)/itronsys \ |
$(noinst_HEADERS:%=$(PROJECT_INCLUDE)/itronsys/%) |
|
$(PROJECT_INCLUDE)/itronsys: |
@$(mkinstalldirs) $@ |
$(PROJECT_INCLUDE)/itronsys/%.h: %.h |
$(INSTALL_DATA) $< $@ |
|
all-local: $(PREINSTALL_FILES) |
|
include $(top_srcdir)/../../../../automake/local.am |
/include/itronsys/semaphore.h
0,0 → 1,121
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: semaphore.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __ITRON_SEMAPHORE_h_ |
#define __ITRON_SEMAPHORE_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* Create Semaphore (cre_sem) Structure |
*/ |
|
typedef struct t_csem { |
VP exinf; /* extended information */ |
ATR sematr; /* semaphore attributes */ |
/* Following is the extended function for [level X]. */ |
INT isemcnt; /* initial semaphore count */ |
INT maxsem; /* maximum semaphore count */ |
/* additional information may be included depending on the implementation */ |
} T_CSEM; |
|
/* |
* sematr - Semaphore Attribute Values |
*/ |
|
#define TA_TFIFO 0x00 /* waiting tasks are handled by FIFO */ |
#define TA_TPRI 0x01 /* waiting tasks are handled by priority */ |
|
#define _ITRON_SEMAPHORE_UNUSED_ATTRIBUTES ~(TA_TPRI) |
|
/* |
* Reference Semaphore (ref_sem) Structure |
*/ |
|
typedef struct t_rsem { |
VP exinf; /* extended information */ |
BOOL_ID wtsk; /* indicates whether or not there is a waiting task */ |
INT semcnt; /* current semaphore count */ |
/* additional information may be included depending on the implementation */ |
} T_RSEM; |
|
/* |
* Semaphore Functions |
*/ |
|
/* |
* cre_sem - Create Semaphore |
*/ |
|
ER cre_sem( |
ID semid, |
T_CSEM *pk_csem |
); |
|
/* |
* del_sem - Delete Semaphore |
*/ |
|
ER del_sem( |
ID semid |
); |
|
/* |
* sig_sem - Signal Semaphore |
*/ |
|
ER sig_sem( |
ID semid |
); |
|
/* |
* wai_sem - Wait on Semaphore |
*/ |
|
ER wai_sem( |
ID semid |
); |
|
/* |
* preq_sem - Poll and Request Semaphore |
*/ |
|
ER preq_sem( |
ID semid |
); |
|
/* |
* twai_sem - Wait on Semaphore with Timeout |
*/ |
|
ER twai_sem( |
ID semid, |
TMO tmout |
); |
|
/* |
* ref_sem - Reference Semaphore Status |
*/ |
|
ER ref_sem( |
ID semid, |
T_RSEM *pk_rsem |
); |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/itronsys/status.h
0,0 → 1,70
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: status.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __ITRON_STATUS_h_ |
#define __ITRON_STATUS_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
#define E_OK 0 /* Normal completion */ |
#define E_SYS (-5) /* System error */ |
#define E_NOMEM (-10) /* Insufficient memory */ |
#define E_NOSPT (-17) /* Feature not supported */ |
#define E_INOSPT (-18) /* Feature not supported by ITRON/FILE */ |
/* specification */ |
#define E_RSFN (-20) /* Reserved function code number */ |
#define E_RSATR (-24) /* Reserved attribute */ |
#define E_PAR (-33) /* Parameter error */ |
#define E_ID (-35) /* Invalid ID number */ |
#define E_NOEXS (-52) /* Object does not exist */ |
#define E_OBJ (-63) /* Invalid object state */ |
#define E_MACV (-65) /* Memory access disabled or memory access */ |
/* violation */ |
#define E_OACV (-66) /* Object access violation */ |
#define E_CTX (-69) /* Context error */ |
#define E_QOVR (-73) /* Queuing or nesting overflow */ |
#define E_DLT (-81) /* Object being waited for was deleted */ |
#define E_TMOUT (-85) /* Polling failure or timeout exceeded */ |
#define E_RLWAI (-86) /* WAIT state was forcibly released */ |
#define EN_NOND (-113) /* Target node does not exist or cannot be */ |
/* accessed */ |
#define EN_OBJNO (-114) /* Specifies an object number which could not be */ |
/* accessed on the target node */ |
#define EN_PROTO (-115) /* Protocol not supported on target node */ |
#define EN_RSFN (-116) /* System call or function not supported on */ |
/* target node */ |
#define EN_COMM (-117) /* No response from target node */ |
#define EN_RLWAI (-118) /* Connection function response wait state was */ |
/* forcibly released */ |
#define EN_PAR (-119) /* A value outside the range supported by the */ |
/* target node and/or transmission packet */ |
/* format was specified as a parameter */ |
#define EN_RPAR (-120) /* A value outside the range supported by the */ |
/* issuing node and/or transmission packet */ |
/* format was returned as a return parameter */ |
#define EN_CTXID (-121) /* An object on another node was specified to */ |
/* a system call issued from a task in dispatch */ |
/* disabled state or from a task-independent */ |
/* portion */ |
#define EN_EXEC (-122) /* System call could not be executed due to */ |
/* insufficient resources on the target node */ |
#define EN_NOSPT (-123) /* Connection function not supported */ |
|
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/itronsys/port.h
0,0 → 1,190
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: port.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __ITRON_PORT_h_ |
#define __ITRON_PORT_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* Create Port (cre_por) Structure |
*/ |
|
typedef struct t_cpor { |
VP exinf; /* extended information */ |
ATR poratr; /* port attributes */ |
INT maxcmsz; /* maximum call message size */ |
INT maxrmsz; /* maximum reply message size */ |
/* additional information may be included depending on the implementation */ |
} T_CPOR; |
|
/* |
* poratr |
*/ |
|
#define TA_NULL 0 /* specifies no particular attributes */ |
|
/* |
* TA_NULL should be used in place of zeroes to turn off all |
* attribute features. |
*/ |
|
/* |
* Reference Port (ref_por) Structure |
*/ |
|
typedef struct t_rpor { |
VP exinf; /* extended information */ |
BOOL_ID wtsk; /* indicates whether or not there is a task */ |
/* waiting to call a rendezvous */ |
BOOL_ID atsk; /* indicates whether or not there is a task */ |
/* waiting to accept a rendezvous */ |
/* additional information may be included depending on the implementation */ |
} T_RPOR; |
|
/* |
* Port Functions |
*/ |
|
/* |
* cre_por - Create Port for Rendezvous |
*/ |
|
ER cre_por( |
ID porid, |
T_CPOR *pk_cpor |
); |
|
/* |
* del_por - Delete Port for Rendezvous |
*/ |
|
ER del_por( |
ID porid |
); |
|
/* |
* cal_por - Call Port for Rendezvous Poll |
*/ |
|
ER cal_por( |
VP msg, |
INT *p_rmsgsz, |
ID porid, |
UINT calptn, |
INT cmsgsz |
); |
|
/* |
* pcal_por - Poll and Call Port for Rendezvous |
*/ |
|
ER pcal_por( |
VP msg, |
INT *p_rmsgsz, |
ID porid, |
UINT calptn, |
INT cmsgsz |
); |
|
/* |
* tcal_por - Call Port for Rendezvous with Timeout |
*/ |
|
ER tcal_por( |
VP msg, |
INT *p_rmsgsz, |
ID porid, |
UINT calptn, |
INT cmsgsz, |
TMO tmout |
); |
|
/* |
* acp_por - Accept Port for Rendezvous Poll |
*/ |
|
ER acp_por( |
RNO *p_rdvno, |
VP msg, |
INT *p_cmsgsz, |
ID porid, |
UINT acpptn |
); |
|
/* |
* pacp_por - Poll and Accept Port for Rendezvous |
*/ |
|
ER pacp_por( |
RNO *p_rdvno, |
VP msg, |
INT *p_cmsgsz, |
ID porid, |
UINT acpptn |
); |
|
/* |
* tacp_por - Accept Port for Rendezvous with Timeout |
*/ |
|
ER tacp_por( |
RNO *p_rdvno, |
VP msg, |
INT *p_cmsgsz, |
ID porid, |
UINT acpptn, |
TMO tmout |
); |
|
/* |
* fwd_por - Forward Rendezvous to Other Port |
*/ |
|
ER fwd_por( |
ID porid, |
UINT calptn, |
RNO rdvno, |
VP msg, |
INT cmsgsz |
); |
|
/* |
* rpl_rdv - Reply Rendezvous |
*/ |
|
ER rpl_rdv( |
RNO rdvno, |
VP msg, |
INT rmsgsz |
); |
|
/* |
* ref_por - Reference Port Status |
*/ |
|
ER ref_por( |
T_RPOR *pk_rpor, |
ID porid |
); |
|
|
|
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/rtems/Makefile.am
0,0 → 1,10
## |
## $Id: Makefile.am,v 1.2 2001-09-27 11:59:12 chris Exp $ |
## |
|
AUTOMAKE_OPTIONS = foreign 1.4 |
|
SUBDIRS = itron |
|
include $(top_srcdir)/../../../../automake/subdirs.am |
include $(top_srcdir)/../../../../automake/local.am |
/include/rtems/itron/network.h
0,0 → 1,31
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: network.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __RTEMS_ITRON_NETWORK_h_ |
#define __RTEMS_ITRON_NETWORK_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* XXX insert private stuff here |
*/ |
|
#include <rtems/itron/network.inl> |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/rtems/itron/vmempool.h
0,0 → 1,62
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: vmempool.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __RTEMS_ITRON_VARIABLE_MEMORYPOOL_h_ |
#define __RTEMS_ITRON_VARIABLE_MEMORYPOOL_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
#include <rtems/itron/object.h> |
|
/* |
* The following defines the control block used to manage each variable |
* memory pool. |
*/ |
|
typedef struct { |
ITRON_Objects_Control Object; |
unsigned32 XXX_more_stuff_goes_here; |
} ITRON_Variable_memory_pool_Control; |
|
/* |
* The following defines the information control block used to manage |
* this class of objects. |
*/ |
|
ITRON_EXTERN Objects_Information _ITRON_Variable_memory_pool_Information; |
|
/* |
* _ITRON_Variable_memory_pool_Manager_initialization |
* |
* DESCRIPTION: |
* |
* This routine performs the initialization necessary for this manager. |
*/ |
|
void _ITRON_Variable_memory_pool_Manager_initialization( |
unsigned32 maximum_variable_memory_pools |
); |
|
/* |
* XXX insert private stuff here |
*/ |
|
#include <rtems/itron/vmempool.inl> |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/rtems/itron/eventflags.h
0,0 → 1,61
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: eventflags.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __RTEMS_ITRON_EVENTFLAGS_h_ |
#define __RTEMS_ITRON_EVENTFLAGS_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
#include <rtems/itron/object.h> |
|
/* |
* The following defines the control block used to manage each event flag. |
*/ |
|
typedef struct { |
ITRON_Objects_Control Object; |
unsigned32 XXX_more_stuff_goes_here; |
} ITRON_Eventflags_Control; |
|
/* |
* The following defines the information control block used to manage |
* this class of objects. |
*/ |
|
ITRON_EXTERN Objects_Information _ITRON_Eventflags_Information; |
|
/* |
* _ITRON_Eventflags_Manager_initialization |
* |
* DESCRIPTION: |
* |
* This routine performs the initialization necessary for this manager. |
*/ |
|
void _ITRON_Eventflags_Manager_initialization( |
unsigned32 maximum_eventflags |
); |
|
/* |
* XXX insert private stuff here |
*/ |
|
#include <rtems/itron/eventflags.inl> |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/rtems/itron/time.h
0,0 → 1,31
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: time.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __RTEMS_ITRON_TIME_h_ |
#define __RTEMS_ITRON_TIME_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* XXX insert private stuff here |
*/ |
|
#include <rtems/itron/time.inl> |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/rtems/itron/task.h
0,0 → 1,102
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: task.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __RTEMS_ITRON_TASK_h_ |
#define __RTEMS_ITRON_TASK_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
#include <rtems/itron/object.h> |
#include <rtems/itron/config.h> |
#include <rtems/score/thread.h> |
|
/* |
* This macro evaluates to TRUE if there should be a "context error." |
* This is defined as a blocking directive being issed from |
* task-independent portions or a task in dispatch disabled state. |
* |
* NOTE: Dispatching is disabled in interrupts so this should cover |
* both cases. |
*/ |
|
#define _ITRON_Is_in_non_task_state() \ |
(_Thread_Dispatch_disable_level != 0) |
|
/* |
* This is the API specific information required by each thread for |
* the ITRON API to function correctly. |
*/ |
|
|
typedef struct { |
unsigned32 unused; /* no use for the API extension */ |
/* structure for ITRON identified yet */ |
} ITRON_API_Control; |
|
/* |
* The following defines the information control block used to |
* manage this class of objects. |
*/ |
|
ITRON_EXTERN Objects_Information _ITRON_Task_Information; |
|
/* |
* These are used to manage the user initialization tasks. |
*/ |
|
ITRON_EXTERN itron_initialization_tasks_table |
*_ITRON_Task_User_initialization_tasks; |
ITRON_EXTERN unsigned32 _ITRON_Task_Number_of_initialization_tasks; |
|
|
/* |
* _ITRON_Task_Manager_initialization |
* |
* This routine initializes the ITRON Task Manager. |
*/ |
|
void _ITRON_Task_Manager_initialization( |
unsigned32 maximum_tasks, |
unsigned32 number_of_initialization_tasks, |
itron_initialization_tasks_table *user_tasks |
); |
|
/* |
* |
* _ITRON_Delete_task |
*/ |
|
ER _ITRON_Delete_task( |
Thread_Control *the_thread |
); |
|
/* XXX remove the need for this. Enable dispatch should not be hidden */ |
|
#define _ITRON_return_errorno( _errno ) \ |
do { \ |
_Thread_Enable_dispatch(); \ |
return _errno; \ |
} while (0); |
|
|
#ifndef __RTEMS_APPLICATION__ |
#include <rtems/itron/task.inl> |
#endif |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/rtems/itron/sysmgmt.h
0,0 → 1,31
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: sysmgmt.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __RTEMS_ITRON_TIME_h_ |
#define __RTEMS_ITRON_TIME_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* XXX insert private stuff here |
*/ |
|
#include <rtems/itron/sysmgmt.inl> |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/rtems/itron/config.h
0,0 → 1,62
/* config.h |
* |
* This include file contains the table of user defined configuration |
* parameters specific for the ITRON API. |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: config.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __RTEMS_ITRON_CONFIGURATION_h |
#define __RTEMS_ITRON_CONFIGURATION_h |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* XXX |
* |
* The following records define the Configuration Table. The |
* information contained in this table is required in all |
* RTEMS systems, whether single or multiprocessor. This |
* table primarily defines the following: |
* |
* + required number of each object type |
*/ |
|
/* |
* For now, we are only allowing the user to specify the entry point |
* and stack size for ITRON initialization threads. |
*/ |
|
typedef struct { |
ID id; |
T_CTSK attributes; |
} itron_initialization_tasks_table; |
|
typedef struct { |
int maximum_tasks; |
int maximum_semaphores; |
int maximum_eventflags; |
int maximum_mailboxes; |
int maximum_message_buffers; |
int maximum_ports; |
int maximum_memory_pools; |
int maximum_fixed_memory_pools; |
int number_of_initialization_tasks; |
itron_initialization_tasks_table *User_initialization_tasks_table; |
} itron_api_configuration_table; |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
/include/rtems/itron/mbox.h
0,0 → 1,73
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: mbox.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __RTEMS_ITRON_MBOX_h_ |
#define __RTEMS_ITRON_MBOX_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
#include <rtems/itron/object.h> |
#include <rtems/score/coremsg.h> |
|
/* |
* The following defines the control block used to manage each mailbox. |
*/ |
|
typedef struct { |
ITRON_Objects_Control Object; |
unsigned32 count; |
boolean do_message_priority; |
CORE_message_queue_Control message_queue; |
} ITRON_Mailbox_Control; |
|
/* |
* The following defines the information control block used to manage |
* this class of objects. |
*/ |
|
ITRON_EXTERN Objects_Information _ITRON_Mailbox_Information; |
|
/* |
* _ITRON_Mailbox_Manager_initialization |
* |
* DESCRIPTION: |
* |
* This routine performs the initialization necessary for this manager. |
*/ |
|
void _ITRON_Mailbox_Manager_initialization( |
unsigned32 maximum_mailboxes |
); |
|
/* |
* _ITRON_Mailbox_Translate_core_message_queue_return_code |
* |
* DESCRIPTION: |
* |
* This routine translates a core message queue object status |
* into the appropriate ITRON status code. |
*/ |
|
ER _ITRON_Mailbox_Translate_core_message_queue_return_code( |
CORE_message_queue_Status status |
); |
|
#include <rtems/itron/mbox.inl> |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/rtems/itron/object.h
0,0 → 1,120
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: object.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __RTEMS_ITRON_OBJECT_h_ |
#define __RTEMS_ITRON_OBJECT_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
#include <rtems/score/object.h> |
|
typedef Objects_Control ITRON_Objects_Control; |
|
/* |
* Maximum length of an ITRON object name |
* |
* NOTE: Since ITRON objects do not have names, then then length is 0. |
*/ |
|
#define ITRON_MAXIMUM_NAME_LENGTH 0 |
|
/* |
* _ITRON_Objects_Open |
* |
* Make this ITRON object visible to the system. |
* |
* NOTE: This macro hides the fact that ITRON objects don't have names. |
*/ |
|
#define _ITRON_Objects_Open( _the_information, _the_object ) \ |
_Objects_Open( (_the_information), (_the_object), NULL ) |
|
/* |
* _ITRON_Objects_Close |
* |
* Make this ITRON object invisible from the system. Usually used as |
* the first step of deleting an object. |
*/ |
|
#define _ITRON_Objects_Close( _the_information, _the_object ) \ |
_Objects_Close( (_the_information), (_the_object) ) |
|
/* |
* _ITRON_Objects_Allocate_by_index |
* |
* Allocate the ITRON object specified by "_id". The ITRON id is the |
* index portion of the traditional RTEMS ID. The Classic and POSIX |
* APIs do not require that a specific object be allocated. |
*/ |
|
#define _ITRON_Objects_Allocate_by_index( _the_information, _id, _sizeof ) \ |
_Objects_Allocate_by_index( (_the_information), (_id), (_sizeof) ) |
|
/* |
* _ITRON_Objects_Clarify_allocation_id_error |
* |
* This function is invoked when an object allocation ID error |
* occurs to determine the specific ITRON error code to return. |
*/ |
|
#define _ITRON_Objects_Clarify_allocation_id_error( _the_information, _id ) \ |
(((_id) < -4) ? E_OACV : /* attempt to access a "system object" */ \ |
((_id) <= 0) ? E_ID : /* bogus index of 0 - -3 */ \ |
((_id) <= (_the_information)->maximum) ? E_OBJ : /* object is in use */ \ |
E_ID) /* simply a bad id */ |
|
/* |
* _ITRON_Objects_Clarify_get_id_error |
* |
* This function is invoked when an object get ID error |
* occurs to determine the specific ITRON error code to return. |
*/ |
|
#define _ITRON_Objects_Clarify_get_id_error( _the_information, _id ) \ |
(((_id) < -4) ? E_OACV : /* attempt to access a "system object" */ \ |
((_id) <= 0) ? E_ID : /* bogus index of 0 - -3 */ \ |
((_id) <= (_the_information)->maximum) ? E_NOEXS : /* does not exist */ \ |
E_ID) /* simply a bad id */ |
|
|
/* |
* _ITRON_Objects_Free |
* |
* Free this ITRON object to the pool of inactive objects. This |
* operation is the same as for the Classic and POSIX APIs. |
*/ |
|
#define _ITRON_Objects_Free( _the_information, _the_object ) \ |
_Objects_Free( (_the_information), (_the_object) ) |
|
|
/* |
* _ITRON_Objects_Get |
* |
* Obtain (get) the pointer to the control block for the object |
* specified by "id". The ITRON id passed in here is simply |
* the "index" portion of the traditional RTEMS ID. This |
* requires that this operation be slightly different |
* from the object get used by the Classic and POSIX APIs. |
*/ |
|
#define _ITRON_Objects_Get( _the_information, _id, _the_object ) \ |
_Objects_Get( (_the_information), (_id), (_the_object) ) |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/rtems/itron/README
0,0 → 1,10
# |
# $Id: README,v 1.2 2001-09-27 11:59:12 chris Exp $ |
# |
|
This directory contains the private interface of each manager. |
These files should only be included from the from the |
implementation of each manager. |
|
The public header file for each ITRON manager is in |
../../../tronsys. |
/include/rtems/itron/intr.h
0,0 → 1,31
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: intr.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __RTEMS_ITRON_INTERRUPT_h_ |
#define __RTEMS_ITRON_INTERRUPT_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* XXX insert private stuff here |
*/ |
|
#include <rtems/itron/intr.inl> |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/rtems/itron/fmempool.h
0,0 → 1,62
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: fmempool.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __RTEMS_ITRON_FIXED_MEMORYPOOL_h_ |
#define __RTEMS_ITRON_FIXED_MEMORYPOOL_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
#include <rtems/itron/object.h> |
|
/* |
* The following defines the control block used to manage each |
* fixed memory pool. |
*/ |
|
typedef struct { |
ITRON_Objects_Control Object; |
unsigned32 XXX_more_stuff_goes_here; |
} ITRON_Fixed_memory_pool_Control; |
|
/* |
* The following defines the information control block used to manage |
* this class of objects. |
*/ |
|
ITRON_EXTERN Objects_Information _ITRON_Fixed_memory_pool_Information; |
|
/* |
* _ITRON_Fixed_memory_pool_Manager_initialization |
* |
* DESCRIPTION: |
* |
* This routine performs the initialization necessary for this manager. |
*/ |
|
void _ITRON_Fixed_memory_pool_Manager_initialization( |
unsigned32 maximum_fixed_memory_pools |
); |
|
/* |
* XXX insert private stuff here |
*/ |
|
#include <rtems/itron/fmempool.inl> |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/rtems/itron/msgbuffer.h
0,0 → 1,72
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: msgbuffer.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __RTEMS_ITRON_MESSAGEBUFFER_h_ |
#define __RTEMS_ITRON_MESSAGEBUFFER_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
#include <rtems/itron/object.h> |
#include <rtems/score/coremsg.h> |
|
/* |
* The following defines the control block used to manage each |
* message buffer. |
*/ |
|
typedef struct { |
ITRON_Objects_Control Object; |
boolean is_priority_blocking; |
CORE_message_queue_Control message_queue; |
} ITRON_Message_buffer_Control; |
|
/* |
* The following defines the information control block used to manage |
* this class of objects. |
*/ |
|
ITRON_EXTERN Objects_Information _ITRON_Message_buffer_Information; |
|
/* |
* _ITRON_Message_buffer_Manager_initialization |
* |
* DESCRIPTION: |
* |
* This routine performs the initialization necessary for this manager. |
*/ |
|
void _ITRON_Message_buffer_Manager_initialization( |
unsigned32 maximum_message_buffers |
); |
|
/* |
* _ITRON_Message_buffer_Translate_core_message_buffer_return_code |
* |
* DESCRIPTION: |
* |
* This routine translates a core message buffer object status |
* into the appropriate ITRON status code. |
*/ |
|
ER _ITRON_Message_buffer_Translate_core_message_buffer_return_code( |
CORE_message_queue_Status status |
); |
|
#include <rtems/itron/msgbuffer.inl> |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
/include/rtems/itron/Makefile.am
0,0 → 1,25
## |
## $Id: Makefile.am,v 1.2 2001-09-27 11:59:12 chris Exp $ |
## |
|
AUTOMAKE_OPTIONS = foreign 1.4 |
|
H_FILES = config.h eventflags.h fmempool.h intr.h itronapi.h mbox.h \ |
msgbuffer.h network.h object.h port.h semaphore.h sysmgmt.h task.h \ |
time.h vmempool.h |
|
noinst_HEADERS = $(H_FILES) |
|
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/itron \ |
$(H_FILES:%=$(PROJECT_INCLUDE)/rtems/itron/%) |
|
$(PROJECT_INCLUDE)/rtems/itron: |
@$(mkinstalldirs) $@ |
$(PROJECT_INCLUDE)/rtems/itron/%.h: %.h |
$(INSTALL_DATA) $< $@ |
|
all-local: $(PREINSTALL_FILES) |
|
EXTRA_DIST = README |
|
include $(top_srcdir)/../../../../automake/local.am |
/include/rtems/itron/semaphore.h
0,0 → 1,59
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: semaphore.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __RTEMS_ITRON_SEMAPHORE_h_ |
#define __RTEMS_ITRON_SEMAPHORE_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
#include <rtems/itron/object.h> |
#include <rtems/score/coresem.h> |
|
/* |
* The following defines the control block used to manage each semaphore. |
*/ |
|
typedef struct { |
ITRON_Objects_Control Object; |
boolean is_priority_blocking; |
CORE_semaphore_Control semaphore; |
} ITRON_Semaphore_Control; |
|
/* |
* The following defines the information control block used to manage |
* this class of objects. |
*/ |
|
ITRON_EXTERN Objects_Information _ITRON_Semaphore_Information; |
|
/* |
* _ITRON_Semaphore_Manager_initialization |
* |
* DESCRIPTION: |
* |
* This routine performs the initialization necessary for this manager. |
*/ |
|
void _ITRON_Semaphore_Manager_initialization( |
unsigned32 maximum_semaphores |
); |
|
#include <rtems/itron/semaphore.inl> |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/rtems/itron/port.h
0,0 → 1,61
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: port.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __RTEMS_ITRON_PORT_h_ |
#define __RTEMS_ITRON_PORT_h_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
#include <rtems/itron/object.h> |
|
/* |
* The following defines the control block used to manage each port. |
*/ |
|
typedef struct { |
ITRON_Objects_Control Object; |
unsigned32 XXX_more_stuff_goes_here; |
} ITRON_Port_Control; |
|
/* |
* The following defines the information control block used to manage |
* this class of objects. |
*/ |
|
ITRON_EXTERN Objects_Information _ITRON_Port_Information; |
|
/* |
* _ITRON_Port_Manager_initialization |
* |
* DESCRIPTION: |
* |
* This routine performs the initialization necessary for this manager. |
*/ |
|
void _ITRON_Port_Manager_initialization( |
unsigned32 maximum_ports |
); |
|
/* |
* XXX insert private stuff here |
*/ |
|
#include <rtems/itron/port.inl> |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/include/rtems/itron/itronapi.h
0,0 → 1,30
/* |
* ITRON API Support |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: itronapi.h,v 1.2 2001-09-27 11:59:12 chris Exp $ |
*/ |
|
#ifndef __ITRON_API_h |
#define __ITRON_API_h |
|
#include <rtems/config.h> |
|
/* |
* _ITRON_API_Initialize |
* |
* Initialize the ITRON API. |
*/ |
|
void _ITRON_API_Initialize( |
rtems_configuration_table *configuration_table |
); |
|
#endif |
/* end of include file */ |
/configure.in
0,0 → 1,71
dnl Process this file with autoconf to produce a configure script. |
dnl |
dnl $Id: configure.in,v 1.2 2001-09-27 11:59:12 chris Exp $ |
|
AC_PREREQ(2.13) |
AC_INIT(include/itronsys) |
RTEMS_TOP(../../../..) |
AC_CONFIG_AUX_DIR(../../../..) |
|
RTEMS_CANONICAL_TARGET_CPU |
|
AM_INIT_AUTOMAKE(rtems-c-src-exec-itron,$RTEMS_VERSION,no) |
AM_MAINTAINER_MODE |
|
RTEMS_ENABLE_MULTIPROCESSING |
RTEMS_ENABLE_ITRON |
RTEMS_ENABLE_INLINES |
|
RTEMS_ENV_RTEMSBSP |
|
RTEMS_CHECK_CPU |
RTEMS_CANONICAL_HOST |
|
RTEMS_PROJECT_ROOT |
|
RTEMS_PROG_CC_FOR_TARGET |
RTEMS_CANONICALIZE_TOOLS |
|
# Check if there is custom/*.cfg for this BSP |
RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP) |
RTEMS_CHECK_MULTIPROCESSING(RTEMS_BSP) |
RTEMS_CHECK_ITRON_API(RTEMS_BSP) |
|
# If RTEMS macros are enabled, then use them. Otherwise, use inlines. |
if test "$RTEMS_USE_MACROS" = "yes"; then |
INLINEdir="macros" |
if test "$HAS_ITRON_API" = "yes"; then |
# The problem is that there is currently no code in itron/macros :) |
AC_MSG_ERROR(Macros are not implemented for the ITRON API) |
fi |
else |
INLINEdir="inline" |
fi |
AM_CONDITIONAL(INLINE,test "$INLINEdir" = "inline" ) |
AM_CONDITIONAL(MACROS,test "$INLINEdir" = "macros" ) |
|
## Needed when using automake for libs/rels |
RTEMS_CHECK_NEWLIB |
|
# If RTEMS macros are enabled, then use them. Otherwise, refuse to build |
if test "$RTEMS_USE_MACROS" = "yes"; then |
# The problem is that there is currently no code in itron/macros :) |
AC_MSG_ERROR(Macros are not implemented for the ITRON API) |
fi |
|
## |
## FIXME: We configure and build the macros subdirectory, too. |
## Should probably use AM_CONDITIONALs to disable them in future |
# Explicitly list all Makefiles here |
AC_OUTPUT( |
Makefile |
src/Makefile |
include/Makefile |
include/itronsys/Makefile |
include/rtems/Makefile |
include/rtems/itron/Makefile |
inline/Makefile |
inline/rtems/Makefile |
inline/rtems/itron/Makefile |
) |
|
/src/vmempool.c
0,0 → 1,141
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: vmempool.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/vmempool.h> |
|
/* |
* _ITRON_Variable_memory_pool_Manager_initialization |
* |
* This routine initializes all variable memory pool manager related |
* data structures. |
* |
* Input parameters: |
* maximum_variable_memory_pools - maximum configured variable memory pools |
* |
* Output parameters: NONE |
*/ |
|
void _ITRON_Variable_memory_pool_Manager_initialization( |
unsigned32 maximum_variable_memory_pools |
) |
{ |
_Objects_Initialize_information( |
&_ITRON_Variable_memory_pool_Information, /* object information table */ |
OBJECTS_ITRON_VARIABLE_MEMORY_POOLS, /* object class */ |
FALSE, /* TRUE if this is a global */ |
/* object class */ |
maximum_variable_memory_pools, /* maximum objects of this class */ |
sizeof( ITRON_Variable_memory_pool_Control ), |
/* size of this object's control block */ |
FALSE, /* TRUE if names for this object */ |
/* are strings */ |
ITRON_MAXIMUM_NAME_LENGTH, /* maximum length of each object's */ |
/* name */ |
FALSE /* TRUE if this class is threads */ |
); |
|
/* |
* Register the MP Process Packet routine. |
* |
* NOTE: No MP Support YET in RTEMS ITRON implementation. |
*/ |
|
} |
|
/* |
* cre_mpl - Create Variable-Size Memorypool |
*/ |
|
ER cre_mpl( |
ID mplid, |
T_CMPL *pk_cmpl |
) |
{ |
return E_OK; |
} |
|
/* |
* del_mpl - Delete Variable-Size Memorypool |
*/ |
|
ER del_mpl( |
ID mplid |
) |
{ |
return E_OK; |
} |
|
/* |
* get_blk - Get Variable-Size Memory Block |
*/ |
|
ER get_blk( |
VP *p_blk, |
ID mplid, |
INT blksz |
) |
{ |
return E_OK; |
} |
|
/* |
* pget_blk - Poll and Get Variable-Size Memory Block |
*/ |
|
ER pget_blk( |
VP *p_blk, |
ID mplid, |
INT blksz |
) |
{ |
return E_OK; |
} |
|
/* |
* tget_blk - Get Variable-Size Memory Block with Timeout |
*/ |
|
ER tget_blk( |
VP *p_blk, |
ID mplid, |
INT blksz, |
TMO tmout |
) |
{ |
return E_OK; |
} |
|
/* |
* rel_blk - Release Variable-Size Memory Block |
*/ |
|
ER rel_blk( |
ID mplid, |
VP blk |
) |
{ |
return E_OK; |
} |
|
/* |
* ref_mpl - Reference Variable-Size Memorypool Status |
*/ |
|
ER ref_mpl( |
T_RMPL *pk_rmpl, |
ID mplid |
) |
{ |
return E_OK; |
} |
|
/src/itronsem.c
0,0 → 1,56
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: itronsem.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/semaphore.h> |
#include <rtems/itron/task.h> |
#include <rtems/score/tod.h> |
|
/* |
* _ITRON_Semaphore_Manager_initialization |
* |
* DESCRIPTION: |
* |
* This routine initializes all semaphore manager related data structures. |
* |
* Input parameters: |
* maximum_semaphores - maximum configured semaphores |
* |
* Output parameters: NONE |
*/ |
|
void _ITRON_Semaphore_Manager_initialization( |
unsigned32 maximum_semaphores |
) |
{ |
_Objects_Initialize_information( |
&_ITRON_Semaphore_Information, /* object information table */ |
OBJECTS_ITRON_SEMAPHORES, /* object class */ |
FALSE, /* TRUE if this is a global */ |
/* object class */ |
maximum_semaphores, /* maximum objects of this class */ |
sizeof( ITRON_Semaphore_Control ), /* size of this object's control block */ |
FALSE, /* TRUE if names for this object */ |
/* are strings */ |
ITRON_MAXIMUM_NAME_LENGTH, /* maximum length of each object's */ |
/* name */ |
FALSE /* TRUE if this class is threads */ |
); |
|
/* |
* Register the MP Process Packet routine. |
* |
* NOTE: No MP Support YET in RTEMS ITRON implementation. |
*/ |
|
} |
|
/src/rcv_mbx.c
0,0 → 1,29
/* |
* ITRON 3.0 Mailbox Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: rcv_mbx.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/mbox.h> |
#include <rtems/itron/task.h> |
|
/* |
* rcv_msg - Receive Message from Mailbox |
*/ |
|
ER rcv_msg( |
T_MSG **ppk_msg, |
ID mbxid |
) |
{ |
return trcv_msg( ppk_msg, mbxid, TMO_FEVR ); |
} |
/src/exd_tsk.c
0,0 → 1,43
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: exd_tsk.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
#include <assert.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
/* |
* exd_tsk - Exit and Delete Task |
*/ |
|
void exd_tsk( void ) |
{ |
Objects_Information *the_information; |
|
_Thread_Disable_dispatch(); |
|
the_information = _Objects_Get_information( _Thread_Executing->Object.id ); |
|
/* This should never happen if _Thread_Get() works right */ |
assert( the_information ); |
|
_Thread_Set_state( _Thread_Executing, STATES_DORMANT ); |
_ITRON_Delete_task( _Thread_Executing ); |
|
_Thread_Enable_dispatch(); |
} |
|
/src/sysmgmt.c
0,0 → 1,72
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: sysmgmt.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/sysmgmt.h> |
|
/* |
* get_ver - Get Version Information |
*/ |
|
ER get_ver( |
T_VER *pk_ver |
) |
{ |
return E_OK; |
} |
|
/* |
* ref_sys - Reference System Status |
*/ |
|
ER ref_sys( |
T_RSYS *pk_rsys |
) |
{ |
return E_OK; |
} |
|
/* |
* ref_cfg - Reference Configuration Information |
*/ |
|
ER ref_cfg( |
T_RCFG *pk_rcfg |
) |
{ |
return E_OK; |
} |
|
/* |
* def_svc - Define Extended SVC Handler |
*/ |
|
ER def_svc( |
FN s_fncd, |
T_DSVC *pk_dsvc |
) |
{ |
return E_OK; |
} |
|
/* |
* def_exc - Define Exception Handler |
*/ |
|
ER def_exc( |
UINT exckind, |
T_DEXC *pk_dexc |
) |
{ |
return E_OK; |
} |
|
/src/tslp_tsk.c
0,0 → 1,34
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: tslp_tsk.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
|
/* |
* tslp_tsk - Sleep Task with Timeout |
*/ |
|
ER tslp_tsk( |
TMO tmout |
) |
{ |
return E_OK; |
} |
|
|
/src/mbox.c
0,0 → 1,54
/* |
* ITRON 3.0 Mailbox Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: mbox.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/mbox.h> |
#include <rtems/itron/task.h> |
|
/* |
* _ITRON_Mailbox_Manager_initialization |
* |
* This routine initializes all mailboxes manager related data structures. |
* |
* Input parameters: |
* maximum_mailboxes - maximum configured mailboxes |
* |
* Output parameters: NONE |
*/ |
|
void _ITRON_Mailbox_Manager_initialization( |
unsigned32 maximum_mailboxes |
) |
{ |
_Objects_Initialize_information( |
&_ITRON_Mailbox_Information, /* object information table */ |
OBJECTS_ITRON_MAILBOXES, /* object class */ |
FALSE, /* TRUE if this is a global */ |
/* object class */ |
maximum_mailboxes, /* maximum objects of this class */ |
sizeof( ITRON_Mailbox_Control ), /* size of this object's control block */ |
FALSE, /* TRUE if names for this object */ |
/* are strings */ |
ITRON_MAXIMUM_NAME_LENGTH, /* maximum length of each object's */ |
/* name */ |
FALSE /* TRUE if this class is threads */ |
); |
|
/* |
* Register the MP Process Packet routine. |
* |
* NOTE: No MP Support YET in RTEMS ITRON implementation. |
*/ |
|
} |
/src/del_sem.c
0,0 → 1,64
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: del_sem.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/semaphore.h> |
#include <rtems/itron/task.h> |
#include <rtems/score/tod.h> |
|
/* |
* del_sem - Delete Semaphore |
* |
* This function implements the ITRON 3.0 del_sem() service. |
*/ |
|
ER del_sem( |
ID semid |
) |
{ |
ITRON_Semaphore_Control *the_semaphore; |
Objects_Locations location; |
|
the_semaphore = _ITRON_Semaphore_Get( semid, &location ); |
switch ( location ) { |
case OBJECTS_REMOTE: /* Multiprocessing not supported */ |
case OBJECTS_ERROR: |
return _ITRON_Semaphore_Clarify_get_id_error( semid ); |
|
case OBJECTS_LOCAL: |
_CORE_semaphore_Flush( |
&the_semaphore->semaphore, |
NULL, /* Multiprocessing not supported */ |
CORE_SEMAPHORE_WAS_DELETED |
); |
|
_ITRON_Objects_Close( |
&_ITRON_Semaphore_Information, |
&the_semaphore->Object |
); |
|
_ITRON_Semaphore_Free( the_semaphore ); |
|
/* |
* If multiprocessing were supported, this is where we would announce |
* the destruction of the semaphore to the rest of the system. |
*/ |
|
#if defined(RTEMS_MULTIPROCESSING) |
#endif |
|
_Thread_Enable_dispatch(); |
return E_OK; |
|
} |
return E_OK; |
} |
/src/snd_mbf.c
0,0 → 1,30
/* |
* ITRON Message Buffer Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: snd_mbf.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/msgbuffer.h> |
#include <rtems/itron/task.h> |
|
/* |
* snd_mbf - Send Message to MessageBuffer |
*/ |
|
ER snd_mbf( |
ID mbfid, |
VP msg, |
INT msgsz |
) |
{ |
return tsnd_mbf( mbfid, msg, msgsz, TMO_FEVR ); |
} |
/src/sta_tsk.c
0,0 → 1,69
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: sta_tsk.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
|
/* |
* sta_tsk - Start Task |
*/ |
|
ER sta_tsk( |
ID tskid, |
INT stacd |
) |
{ |
register Thread_Control *the_thread; |
Objects_Locations location; |
boolean status; |
|
the_thread = _ITRON_Task_Get( tskid, &location ); |
switch ( location ) { |
case OBJECTS_REMOTE: |
case OBJECTS_ERROR: |
return _ITRON_Task_Clarify_get_id_error( tskid ); |
|
case OBJECTS_LOCAL: |
|
if ( !_States_Is_dormant( the_thread->current_state ) ) |
_ITRON_return_errorno( E_OBJ ); |
|
status = _Thread_Start( |
the_thread, |
THREAD_START_NUMERIC, /* XXX should be able to say we have no arg */ |
the_thread->Start.entry_point, |
0, /* XXX supercore forces us to have an arg */ |
0 /* unused */ |
); |
|
/* |
* This error can not happen entry_point is checked in create. |
if ( !status ) |
_ITRON_return_errorno( E_OBJ ); |
*/ |
|
break; |
} |
|
_ITRON_return_errorno( E_OK ); |
} |
|
|
|
|
/src/twai_sem.c
0,0 → 1,65
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: twai_sem.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/semaphore.h> |
#include <rtems/itron/task.h> |
#include <rtems/score/tod.h> |
|
/* |
* twai_sem - Wait on Semaphore with Timeout |
* |
* This function implements the ITRON 3.0 twai_sem() service. |
*/ |
|
ER twai_sem( |
ID semid, |
TMO tmout |
) |
{ |
ITRON_Semaphore_Control *the_semaphore; |
Objects_Locations location; |
Watchdog_Interval interval; |
boolean wait; |
CORE_semaphore_Status status; |
|
interval = 0; |
if ( tmout == TMO_POL ) { |
wait = FALSE; |
} else { |
wait = TRUE; |
if ( tmout != TMO_FEVR ) |
interval = TOD_MILLISECONDS_TO_TICKS(tmout); |
} |
|
if ( wait && _ITRON_Is_in_non_task_state() ) |
return E_CTX; |
|
the_semaphore = _ITRON_Semaphore_Get( semid, &location ); |
switch ( location ) { |
case OBJECTS_REMOTE: /* Multiprocessing not supported */ |
case OBJECTS_ERROR: |
return _ITRON_Semaphore_Clarify_get_id_error( semid ); |
|
case OBJECTS_LOCAL: |
_CORE_semaphore_Seize( |
&the_semaphore->semaphore, |
the_semaphore->Object.id, |
wait, /* wait for a timeout */ |
interval /* timeout value */ |
); |
_Thread_Enable_dispatch(); |
status = (CORE_semaphore_Status) _Thread_Executing->Wait.return_code; |
return _ITRON_Semaphore_Translate_core_semaphore_return_code( status ); |
} |
return E_OK; |
} |
/src/rot_rdq.c
0,0 → 1,53
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: rot_rdq.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
/* |
* rot_rdq - Rotate Tasks on the Ready Queue |
*/ |
|
ER rot_rdq( |
PRI tskpri |
) |
{ |
PRI priority; |
|
|
if (( tskpri <= 0 ) || ( tskpri >= 256 )) |
return E_PAR; |
|
_Thread_Disable_dispatch(); |
|
/* |
* Yield of processor will rotate the queue for this processor. |
*/ |
|
priority = _ITRON_Task_Core_to_Priority(_Thread_Executing->current_priority); |
if ( priority == tskpri ) |
_Thread_Yield_processor(); |
else { |
_Thread_Rotate_Ready_Queue( _ITRON_Task_Core_to_Priority( tskpri ) ); |
} |
_Thread_Enable_dispatch(); |
|
return E_OK; |
} |
|
|
/src/preq_sem.c
0,0 → 1,29
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: preq_sem.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/semaphore.h> |
#include <rtems/itron/task.h> |
#include <rtems/score/tod.h> |
|
/* |
* preq_sem - Poll and Request Semaphore |
* |
* This function implements the ITRON 3.0 preq_sem() service. |
*/ |
|
ER preq_sem( |
ID semid |
) |
{ |
return twai_sem( semid, TMO_POL ); |
} |
/src/chg_pri.c
0,0 → 1,66
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: chg_pri.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
/* |
* chg_pri - Change Task Priority |
*/ |
|
ER chg_pri( |
ID tskid, |
PRI tskpri |
) |
{ |
register Thread_Control *the_thread; |
Objects_Locations location; |
Priority_Control new_priority; |
|
the_thread = _ITRON_Task_Get( tskid, &location ); |
switch ( location ) { |
case OBJECTS_REMOTE: |
case OBJECTS_ERROR: |
return _ITRON_Task_Clarify_get_id_error( tskid ); |
|
case OBJECTS_LOCAL: |
if (_States_Is_dormant( the_thread->current_state )) |
_ITRON_return_errorno( E_OBJ ); |
|
if (( tskpri <= 0 ) || ( tskpri >= 256 )) |
_ITRON_return_errorno( E_PAR ); |
|
new_priority = _ITRON_Task_Priority_to_Core( tskpri ); |
the_thread->real_priority = new_priority; |
|
/* |
* The priority should not be changed until later if priority |
* inheratance has occured. |
*/ |
|
if ( the_thread->resource_count == 0 || |
the_thread->current_priority > new_priority ) |
_Thread_Change_priority( the_thread, new_priority, FALSE ); |
|
break; |
} |
|
_ITRON_return_errorno( E_OK ); |
} |
|
|
/src/slp_tsk.c
0,0 → 1,31
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: slp_tsk.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
|
|
/* |
* slp_tsk - Sleep Task |
*/ |
|
ER slp_tsk( void ) |
{ |
return E_OK; |
} |
/src/get_tid.c
0,0 → 1,38
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: get_tid.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
/* |
* get_tid - Get Task Identifier |
*/ |
|
ER get_tid( |
ID *p_tskid |
) |
{ |
/* |
* This does not support multiprocessing. The id handling will have |
* to be enhanced to support multiprocessing. |
*/ |
|
*p_tskid = _Objects_Get_index( _Thread_Executing->Object.id ); |
return E_OK; |
} |
|
/src/cre_mbx.c
0,0 → 1,103
/* |
* ITRON 3.0 Mailbox Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: cre_mbx.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/mbox.h> |
#include <rtems/itron/task.h> |
|
/* |
* cre_mbx - Create Mailbox |
* |
* Creates a Mailbox according to the following spec: |
* |
* ------Parameters------------------------- |
* ID mbxid MailboxID |
* T_CMBX *pk_cmbx Packet to Create Mailbox |
* ----------------------------------------- |
* -*pk_cmbx members*- |
* VP exinf ExtendedInformation |
* ATR mbxatr MailboxAttributes |
* (the use of the following information |
* is implementation dependent) |
* INT bufcnt BufferMessageCount |
* (CPU and/or implementation-dependent information |
* may also be included) |
* |
* ----Return Parameters-------------------- |
* ER ercd ErrorCode |
* ----------------------------------------- |
* |
* |
* ----C Language Interface----------------- |
* ER ercd = cre_mbx ( ID mbxid, T_CMBX *pk_cmbx ) ; |
* ----------------------------------------- |
* |
*/ |
|
ER cre_mbx( |
ID mbxid, |
T_CMBX *pk_cmbx |
) |
{ |
register ITRON_Mailbox_Control *the_mailbox; |
CORE_message_queue_Attributes the_mailbox_attributes; |
|
if ( !pk_cmbx ) |
return E_PAR; |
|
if ((pk_cmbx->mbxatr & (TA_TPRI | TA_MPRI)) != 0 ) |
return E_RSATR; |
|
_Thread_Disable_dispatch(); /* protects object pointer */ |
|
the_mailbox = _ITRON_Mailbox_Allocate( mbxid ); |
if ( !the_mailbox ) { |
_Thread_Enable_dispatch(); |
return _ITRON_Mailbox_Clarify_allocation_id_error( mbxid ); |
} |
|
the_mailbox->count = pk_cmbx->bufcnt; |
if (pk_cmbx->mbxatr & TA_MPRI) |
the_mailbox->do_message_priority = TRUE; |
else |
the_mailbox->do_message_priority = FALSE; |
|
if (pk_cmbx->mbxatr & TA_TPRI) |
the_mailbox_attributes.discipline = CORE_MESSAGE_QUEUE_DISCIPLINES_PRIORITY; |
else |
the_mailbox_attributes.discipline = CORE_MESSAGE_QUEUE_DISCIPLINES_FIFO; |
|
if ( !_CORE_message_queue_Initialize( |
&the_mailbox->message_queue, |
OBJECTS_ITRON_MAILBOXES, |
&the_mailbox_attributes, |
the_mailbox->count, |
sizeof(T_MSG *), |
NULL ) ) { /* Multiprocessing not supported */ |
_ITRON_Mailbox_Free(the_mailbox); |
_ITRON_return_errorno( E_OBJ ); |
} |
|
_ITRON_Objects_Open( &_ITRON_Mailbox_Information, &the_mailbox->Object ); |
|
/* |
* If multiprocessing were supported, this is where we would announce |
* the existence of the semaphore to the rest of the system. |
*/ |
|
#if defined(RTEMS_MULTIPROCESSING) |
#endif |
|
_ITRON_return_errorno( E_OK ); |
} |
/src/ref_sem.c
0,0 → 1,62
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: ref_sem.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/semaphore.h> |
#include <rtems/itron/task.h> |
#include <rtems/score/tod.h> |
|
/* |
* ref_sem - Reference Semaphore Status |
* |
* This function implements the ITRON 3.0 ref_sem() service. |
*/ |
|
ER ref_sem( |
ID semid, |
T_RSEM *pk_rsem |
) |
{ |
ITRON_Semaphore_Control *the_semaphore; |
Objects_Locations location; |
|
if ( !pk_rsem ) |
return E_PAR; /* XXX check this error code */ |
|
the_semaphore = _ITRON_Semaphore_Get( semid, &location ); |
switch ( location ) { |
case OBJECTS_REMOTE: /* Multiprocessing not supported */ |
case OBJECTS_ERROR: |
return _ITRON_Semaphore_Clarify_get_id_error( semid ); |
|
case OBJECTS_LOCAL: |
/* |
* Fill in the current semaphore count |
*/ |
|
pk_rsem->semcnt = _CORE_semaphore_Get_count( &the_semaphore->semaphore ); |
|
/* |
* Fill in whether or not there is a waiting task |
*/ |
|
if ( !_Thread_queue_First( &the_semaphore->semaphore.Wait_queue ) ) |
pk_rsem->wtsk = FALSE; |
else |
pk_rsem->wtsk = TRUE; |
|
_Thread_Enable_dispatch(); |
return E_OK; |
} |
return E_OK; |
} |
|
/src/msgbuffer.c
0,0 → 1,57
/* |
* ITRON Message Buffer Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: msgbuffer.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/msgbuffer.h> |
#include <rtems/itron/task.h> |
|
/* |
* _ITRON_Message_buffer_Manager_initialization |
* |
* This routine initializes all message buffer manager related data |
* structures. |
* |
* Input parameters: |
* maximum_message_buffers - maximum configured message buffers |
* |
* Output parameters: NONE |
*/ |
|
void _ITRON_Message_buffer_Manager_initialization( |
unsigned32 maximum_message_buffers |
) |
{ |
_Objects_Initialize_information( |
&_ITRON_Message_buffer_Information, /* object information table */ |
OBJECTS_ITRON_MESSAGE_BUFFERS, /* object class */ |
FALSE, /* TRUE if this is a |
global object class */ |
maximum_message_buffers, /* maximum objects of this class */ |
sizeof( ITRON_Message_buffer_Control ), /* size of this |
object's control |
block */ |
FALSE, /* TRUE if names for this |
object are strings */ |
ITRON_MAXIMUM_NAME_LENGTH, /* maximum length of each |
object's name */ |
FALSE /* TRUE if this class is threads */ |
); |
|
/* |
* Register the MP Process Packet routine. |
* |
* NOTE: No MP Support YET in RTEMS ITRON implementation. |
*/ |
} |
|
/src/ext_tsk.c
0,0 → 1,42
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: ext_tsk.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
|
/* |
* ext_tsk - Exit Issuing Task |
*/ |
|
void ext_tsk( void ) |
{ |
/* |
* Figure out what to do if this happens. |
* We can not return regardless |
if ( _ITRON_Is_in_non_task_state() ) |
return E_CTX; |
*/ |
|
_Thread_Disable_dispatch(); |
|
_Thread_Set_state( _Thread_Executing, STATES_DORMANT ); |
_Thread_Reset( _Thread_Executing, NULL, 0 ); |
|
_Thread_Enable_dispatch(); |
} |
/src/rel_wai.c
0,0 → 1,51
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: rel_wai.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
/* |
* rel_wai - Release Wait of Other Task |
*/ |
|
ER rel_wai( |
ID tskid |
) |
{ |
register Thread_Control *the_thread; |
Objects_Locations location; |
|
the_thread = _ITRON_Task_Get( tskid, &location ); |
switch ( location ) { |
case OBJECTS_REMOTE: |
case OBJECTS_ERROR: |
return _ITRON_Task_Clarify_get_id_error( tskid ); |
|
case OBJECTS_LOCAL: |
/* |
* XXX - FILL ME IN. |
*/ |
|
break; |
} |
|
_ITRON_return_errorno( E_OK ); |
} |
|
|
|
/src/wai_sem.c
0,0 → 1,29
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: wai_sem.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/semaphore.h> |
#include <rtems/itron/task.h> |
#include <rtems/score/tod.h> |
|
/* |
* wai_sem - Wait on Semaphore |
* |
* This function implements the ITRON 3.0 wai_sem() service. |
*/ |
|
ER wai_sem( |
ID semid |
) |
{ |
return twai_sem( semid, TMO_FEVR ); |
} |
/src/port.c
0,0 → 1,205
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: port.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/port.h> |
|
/* |
* _ITRON_Port_Manager_initialization |
* |
* This routine initializes all ports manager related data structures. |
* |
* Input parameters: |
* maximum_ports - maximum configured ports |
* |
* Output parameters: NONE |
*/ |
|
void _ITRON_Port_Manager_initialization( |
unsigned32 maximum_ports |
) |
{ |
_Objects_Initialize_information( |
&_ITRON_Port_Information, /* object information table */ |
OBJECTS_ITRON_PORTS, /* object class */ |
FALSE, /* TRUE if this is a global object class */ |
maximum_ports, /* maximum objects of this class */ |
sizeof( ITRON_Port_Control ), /* size of this object's control block */ |
FALSE, /* TRUE if names for this object */ |
/* are strings */ |
ITRON_MAXIMUM_NAME_LENGTH, /* maximum length of each object's name */ |
FALSE /* TRUE if this class is threads */ |
); |
|
/* |
* Register the MP Process Packet routine. |
* |
* NOTE: No MP Support YET in RTEMS ITRON implementation. |
*/ |
|
} |
|
/* |
* cre_por - Create Port for Rendezvous |
*/ |
|
ER cre_por( |
ID porid, |
T_CPOR *pk_cpor |
) |
{ |
return E_OK; |
} |
|
/* |
* del_por - Delete Port for Rendezvous |
*/ |
|
ER del_por( |
ID porid |
) |
{ |
return E_OK; |
} |
|
/* |
* cal_por - Call Port for Rendezvous Poll |
*/ |
|
ER cal_por( |
VP msg, |
INT *p_rmsgsz, |
ID porid, |
UINT calptn, |
INT cmsgsz |
) |
{ |
return E_OK; |
} |
|
/* |
* pcal_por - Poll and Call Port for Rendezvous |
*/ |
|
ER pcal_por( |
VP msg, |
INT *p_rmsgsz, |
ID porid, |
UINT calptn, |
INT cmsgsz |
) |
{ |
return E_OK; |
} |
|
/* |
* tcal_por - Call Port for Rendezvous with Timeout |
*/ |
|
ER tcal_por( |
VP msg, |
INT *p_rmsgsz, |
ID porid, |
UINT calptn, |
INT cmsgsz, |
TMO tmout |
) |
{ |
return E_OK; |
} |
|
/* |
* acp_por - Accept Port for Rendezvous Poll |
*/ |
|
ER acp_por( |
RNO *p_rdvno, |
VP msg, |
INT *p_cmsgsz, |
ID porid, |
UINT acpptn |
) |
{ |
return E_OK; |
} |
|
/* |
* pacp_por - Poll and Accept Port for Rendezvous |
*/ |
|
ER pacp_por( |
RNO *p_rdvno, |
VP msg, |
INT *p_cmsgsz, |
ID porid, |
UINT acpptn |
) |
{ |
return E_OK; |
} |
|
/* |
* tacp_por - Accept Port for Rendezvous with Timeout |
*/ |
|
ER tacp_por( |
RNO *p_rdvno, |
VP msg, |
INT *p_cmsgsz, |
ID porid, |
UINT acpptn, |
TMO tmout |
) |
{ |
return E_OK; |
} |
|
/* |
* fwd_por - Forward Rendezvous to Other Port |
*/ |
|
ER fwd_por( |
ID porid, |
UINT calptn, |
RNO rdvno, |
VP msg, |
INT cmsgsz |
) |
{ |
return E_OK; |
} |
|
/* |
* rpl_rdv - Reply Rendezvous |
*/ |
|
ER rpl_rdv( |
RNO rdvno, |
VP msg, |
INT rmsgsz |
) |
{ |
return E_OK; |
} |
|
/* |
* ref_por - Reference Port Status |
*/ |
|
ER ref_por( |
T_RPOR *pk_rpor, |
ID porid |
) |
{ |
return E_OK; |
} |
|
/src/dis_dsp.c
0,0 → 1,38
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: dis_dsp.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
|
/* |
* dis_dsp - Disable Dispatch |
*/ |
|
ER dis_dsp( void ) |
{ |
/* |
* Disable dispatch for protection |
*/ |
|
_Thread_Disable_dispatch(); |
|
return E_OK; |
} |
|
|
/src/del_tsk.c
0,0 → 1,55
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: del_tsk.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
|
/* |
* del_tsk - Delete Task |
*/ |
|
ER del_tsk( |
ID tskid |
) |
{ |
register Thread_Control *the_thread; |
Objects_Locations location; |
ER result = E_OK; /* to avoid warning */ |
|
the_thread = _ITRON_Task_Get( tskid, &location ); |
switch ( location ) { |
case OBJECTS_REMOTE: |
case OBJECTS_ERROR: |
return _ITRON_Task_Clarify_get_id_error( tskid ); |
|
case OBJECTS_LOCAL: |
|
if ( _Thread_Is_executing( the_thread ) ) |
_ITRON_return_errorno( E_OBJ ); |
|
if ( !_States_Is_dormant( the_thread->current_state ) ) |
_ITRON_return_errorno( E_OBJ ); |
|
result = _ITRON_Delete_task( the_thread ); |
break; |
} |
|
_ITRON_return_errorno( result ); |
} |
|
/src/sig_sem.c
0,0 → 1,52
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: sig_sem.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/semaphore.h> |
#include <rtems/itron/task.h> |
#include <rtems/score/tod.h> |
|
/* |
* sig_sem - Signal Semaphore |
* |
* This function implements the ITRON 3.0 sig_sem() service. |
*/ |
|
ER sig_sem( |
ID semid |
) |
{ |
ITRON_Semaphore_Control *the_semaphore; |
Objects_Locations location; |
CORE_semaphore_Status status; |
|
the_semaphore = _ITRON_Semaphore_Get( semid, &location ); |
switch ( location ) { |
case OBJECTS_REMOTE: /* Multiprocessing not supported */ |
case OBJECTS_ERROR: |
return _ITRON_Semaphore_Clarify_get_id_error( semid ); |
|
case OBJECTS_LOCAL: |
/* |
* XXX maxsemcnt |
*/ |
|
status = _CORE_semaphore_Surrender( |
&the_semaphore->semaphore, |
the_semaphore->Object.id, |
NULL /* Multiprocessing not supported */ |
); |
_Thread_Enable_dispatch(); |
return _ITRON_Semaphore_Translate_core_semaphore_return_code( status ); |
} |
return E_OK; |
} |
/src/del_mbf.c
0,0 → 1,54
/* |
* ITRON Message Buffer Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: del_mbf.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/msgbuffer.h> |
#include <rtems/itron/task.h> |
|
/* |
* del_mbf - Delete MessageBuffer |
*/ |
|
ER del_mbf( |
ID mbfid |
) |
{ |
ITRON_Message_buffer_Control *the_message_buffer; |
Objects_Locations location; |
|
the_message_buffer = _ITRON_Message_buffer_Get(mbfid, &location); |
switch (location) { |
case OBJECTS_REMOTE: |
case OBJECTS_ERROR: /* Multiprocessing not supported */ |
return _ITRON_Message_buffer_Clarify_get_id_error(mbfid); |
|
case OBJECTS_LOCAL: |
_CORE_message_queue_Flush(&the_message_buffer->message_queue); |
_ITRON_Objects_Close( &_ITRON_Message_buffer_Information, |
&the_message_buffer->Object); |
_ITRON_Message_buffer_Free(the_message_buffer); |
|
/* |
* If multiprocessing were supported, this is where we would announce |
* the existence of the semaphore to the rest of the system. |
*/ |
|
#if defined(RTEMS_MULTIPROCESSING) |
#endif |
_Thread_Enable_dispatch(); |
return E_OK; |
} |
|
return E_OK; |
} |
/src/frsm_tsk.c
0,0 → 1,58
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: frsm_tsk.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
|
/* |
* frsm_tsk - Forcibly Resume Suspended Task |
*/ |
|
ER frsm_tsk( |
ID tskid |
) |
{ |
register Thread_Control *the_thread; |
Objects_Locations location; |
|
the_thread = _ITRON_Task_Get( tskid, &location ); |
switch ( location ) { |
case OBJECTS_REMOTE: |
case OBJECTS_ERROR: |
return _ITRON_Task_Clarify_get_id_error( tskid ); |
|
case OBJECTS_LOCAL: |
if ( _Thread_Is_executing( the_thread ) ) |
_ITRON_return_errorno( E_OBJ ); |
|
if (_States_Is_dormant( the_thread->current_state )) |
_ITRON_return_errorno( E_OBJ ); |
|
if ( ! _States_Is_suspended(the_thread->current_state) ) |
_ITRON_return_errorno( E_OK ); |
|
_Thread_Resume( the_thread, TRUE ); |
break; |
} |
|
_ITRON_return_errorno( E_OK ); |
|
} |
|
|
/src/msgbuffertranslatereturncode.c
0,0 → 1,44
/* |
* ITRON Message Buffer Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: msgbuffertranslatereturncode.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/msgbuffer.h> |
#include <rtems/itron/task.h> |
|
/* |
* _ITRON_Message_buffer_Translate_core_message_buffer_return_code |
* |
* This routine translates a core message buffer object status |
* into the appropriate ITRON status code. |
*/ |
|
ER _ITRON_Message_buffer_Translate_core_message_buffer_return_code( |
CORE_message_queue_Status status |
) |
{ |
switch (status) { |
case CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL: |
return E_OK; |
case CORE_MESSAGE_QUEUE_STATUS_TOO_MANY: |
return E_TMOUT; |
case CORE_MESSAGE_QUEUE_STATUS_INVALID_SIZE: |
return E_PAR; |
case CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT: |
return E_TMOUT; |
case CORE_MESSAGE_QUEUE_STATUS_TIMEOUT: |
return E_TMOUT; |
default: |
return E_ID; |
} |
} |
/src/network.c
0,0 → 1,68
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: network.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/network.h> |
|
/* |
* nrea_dat - Read Data from another Node |
*/ |
|
ER nrea_dat( |
INT *p_reasz, |
VP dstadr, |
NODE srcnode, |
VP srcadr, |
INT datsz |
) |
{ |
return E_OK; |
} |
|
/* |
* nwri_dat - Write Data to another Node |
*/ |
|
ER nwri_dat( |
INT *p_wrisz, |
NODE dstnode, |
VP dstadr, |
VP srcadr, |
INT datsz |
) |
{ |
return E_OK; |
} |
|
/* |
* nget_nod - Get Local Node Number |
*/ |
|
ER nget_nod( |
NODE *p_node |
) |
{ |
return E_OK; |
} |
|
/* |
* nget_ver - Get Version Information of another Node |
*/ |
|
ER nget_ver( |
T_VER *pk_ver, |
NODE node |
) |
{ |
return E_OK; |
} |
|
/src/snd_mbx.c
0,0 → 1,67
/* |
* ITRON 3.0 Mailbox Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: snd_mbx.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/mbox.h> |
#include <rtems/itron/task.h> |
|
/* |
* snd_msg - Send Message to Mailbox |
*/ |
|
ER snd_msg( |
ID mbxid, |
T_MSG *pk_msg |
) |
{ |
register ITRON_Mailbox_Control *the_mailbox; |
Objects_Locations location; |
unsigned32 message_priority; |
void *message_contents; |
|
if ( !pk_msg ) |
return E_PAR; |
|
the_mailbox = _ITRON_Mailbox_Get( mbxid, &location ); |
switch ( location ) { |
case OBJECTS_REMOTE: |
case OBJECTS_ERROR: |
return _ITRON_Mailbox_Clarify_get_id_error( mbxid ); |
|
case OBJECTS_LOCAL: |
if ( the_mailbox->do_message_priority ) |
message_priority = pk_msg->msgpri; |
else |
message_priority = CORE_MESSAGE_QUEUE_SEND_REQUEST; |
|
message_contents = pk_msg; |
_CORE_message_queue_Submit( |
&the_mailbox->message_queue, |
&message_contents, |
sizeof(T_MSG *), |
the_mailbox->Object.id, |
NULL, /* multiprocessing not supported */ |
message_priority, |
FALSE, /* do not allow sender to block */ |
0 /* no timeout */ |
); |
break; |
} |
|
_ITRON_return_errorno( |
_ITRON_Mailbox_Translate_core_message_queue_return_code( |
_Thread_Executing->Wait.return_code |
) |
); |
} |
/src/can_wup.c
0,0 → 1,49
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: can_wup.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
/* |
* can_wup - Cancel Wakeup Request |
*/ |
|
ER can_wup( |
INT *p_wupcnt, |
ID tskid |
) |
{ |
register Thread_Control *the_thread; |
Objects_Locations location; |
|
the_thread = _ITRON_Task_Get( tskid, &location ); |
switch ( location ) { |
case OBJECTS_REMOTE: |
case OBJECTS_ERROR: |
return _ITRON_Task_Clarify_get_id_error( tskid ); |
|
case OBJECTS_LOCAL: |
/* |
* XXX - FILL ME IN. |
*/ |
break; |
} |
|
_ITRON_return_errorno( E_OK ); |
} |
|
/src/ref_tsk.c
0,0 → 1,99
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: ref_tsk.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
|
/* |
* ref_tsk - Reference Task Status |
*/ |
|
ER ref_tsk( |
T_RTSK *pk_rtsk, |
ID tskid |
) |
{ |
register Thread_Control *the_thread; |
Objects_Locations location; |
Priority_Control core_priority; |
|
if (!pk_rtsk) |
return E_PAR; |
|
the_thread = _ITRON_Task_Get( tskid, &location ); |
switch ( location ) { |
case OBJECTS_REMOTE: |
case OBJECTS_ERROR: |
return _ITRON_Task_Clarify_get_id_error( tskid ); |
|
case OBJECTS_LOCAL: |
|
if ( location != OBJECTS_LOCAL ) |
return _ITRON_Task_Clarify_get_id_error( tskid ); |
|
/* |
* The following are extended functions [level X ]. |
* XXX - tskwait, wid, wupcnt, and tskatr are presently not implemented. |
*/ |
|
pk_rtsk->tskwait = 0; |
pk_rtsk->wid = 0; |
pk_rtsk->wupcnt = 0; |
pk_rtsk->suscnt = the_thread->suspend_count; |
pk_rtsk->tskatr = 0; /* XXX - Not correctly implemented */ |
pk_rtsk->task = (FP) the_thread->Start.entry_point; |
core_priority = the_thread->Start.initial_priority; |
pk_rtsk->itskpri = _ITRON_Task_Core_to_Priority( core_priority ); |
pk_rtsk->stksz = the_thread->Start.Initial_stack.size; |
|
/* |
* The following are required. |
*/ |
|
pk_rtsk->exinf = NULL; /* extended information */ |
pk_rtsk->tskpri = |
_ITRON_Task_Core_to_Priority(the_thread->current_priority); |
|
/* |
* Mask in the tskstat information |
* Convert the task state XXX double check this |
*/ |
|
pk_rtsk->tskstat = 0; |
if ( the_thread == _Thread_Executing ) |
pk_rtsk->tskstat |= TTS_RUN; |
if ( _States_Is_ready(the_thread->current_state) ) |
pk_rtsk->tskstat |= TTS_RDY; |
if ( _States_Is_dormant( the_thread->current_state) ) |
pk_rtsk->tskstat |= TTS_DMT; |
if ( _States_Is_suspended(the_thread->current_state) ) |
pk_rtsk->tskstat |= TTS_SUS; |
if ( _States_Is_blocked(the_thread->current_state) ) |
pk_rtsk->tskstat |= TTS_WAI; |
|
break; |
} |
|
_ITRON_return_errorno( E_OK ); |
|
} |
|
|
|
|
/src/prcv_mbf.c
0,0 → 1,30
/* |
* ITRON Message Buffer Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: prcv_mbf.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/msgbuffer.h> |
#include <rtems/itron/task.h> |
|
/* |
* prcv_mbf - Poll and Receive Message from MessageBuffer |
*/ |
|
ER prcv_mbf( |
VP msg, |
INT *p_msgsz, |
ID mbfid |
) |
{ |
return trcv_mbf(msg, p_msgsz, mbfid, TMO_POL); |
} |
/src/eventflags.c
0,0 → 1,155
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: eventflags.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/eventflags.h> |
|
/* |
* _ITRON_Eventflags_Manager_initialization |
* |
* This routine initializes all event flags manager related data structures. |
* |
* Input parameters: |
* maximum_eventflags - maximum configured eventflags |
* |
* Output parameters: NONE |
*/ |
|
void _ITRON_Eventflags_Manager_initialization( |
unsigned32 maximum_eventflags |
) |
{ |
_Objects_Initialize_information( |
&_ITRON_Eventflags_Information, /* object information table */ |
OBJECTS_ITRON_EVENTFLAGS, /* object class */ |
FALSE, /* TRUE if this is a global */ |
/* object class */ |
maximum_eventflags, /* maximum objects of this class */ |
sizeof( ITRON_Eventflags_Control ), /* size of this object's */ |
/* control block */ |
FALSE, /* TRUE if names for this object */ |
/* are strings */ |
ITRON_MAXIMUM_NAME_LENGTH, /* maximum length of each object's */ |
/* name */ |
FALSE /* TRUE if this class is threads */ |
); |
|
/* |
* Register the MP Process Packet routine. |
* |
* NOTE: No MP Support YET in RTEMS ITRON implementation. |
*/ |
|
} |
|
/* |
* cre_flg - Create Eventflag |
*/ |
|
ER cre_flg( |
ID flgid, |
T_CFLG *pk_cflg |
) |
{ |
return E_OK; |
} |
|
/* |
* del_flg - Delete Eventflag |
*/ |
|
ER del_flg( |
ID flgid |
) |
{ |
return E_OK; |
} |
|
/* |
* set_flg - Set Eventflag |
*/ |
|
ER set_flg( |
ID flgid, |
UINT setptn |
) |
{ |
return E_OK; |
} |
|
/* |
* clr_flg - Clear Eventflag |
*/ |
|
ER clr_flg( |
ID flgid, |
UINT clrptn |
) |
{ |
return E_OK; |
} |
|
/* |
* wai_flg - Wait on Eventflag |
*/ |
|
ER wai_flg( |
UINT *p_flgptn, |
ID flgid, |
UINT waiptn, |
UINT wfmode |
) |
{ |
return E_OK; |
} |
|
/* |
* pol_flg - Wait for Eventflag(Polling) |
*/ |
|
ER pol_flg( |
UINT *p_flgptn, |
ID flgid, |
UINT waiptn, |
UINT wfmode |
) |
{ |
return E_OK; |
} |
|
/* |
* twai_flg - Wait on Eventflag with Timeout |
*/ |
|
ER twai_flg( |
UINT *p_flgptn, |
ID flgid, |
UINT waiptn, |
UINT wfmode, |
TMO tmout |
) |
{ |
return E_OK; |
} |
|
/* |
* ref_flg - Reference Eventflag Status |
*/ |
|
ER ref_flg( |
T_RFLG *pk_rflg, |
ID flgid |
) |
{ |
return E_OK; |
} |
|
/src/ref_mbf.c
0,0 → 1,79
/* |
* ITRON Message Buffer Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: ref_mbf.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/msgbuffer.h> |
#include <rtems/itron/task.h> |
|
/* |
* ref_mbf - Reference Message Buffer Status |
*/ |
|
ER ref_mbf( |
T_RMBF *pk_rmbf, |
ID mbfid |
) |
{ |
ITRON_Message_buffer_Control *the_message_buffer; |
Objects_Locations location; |
CORE_message_queue_Control *the_core_msgq; |
|
if ( !pk_rmbf ) |
return E_PAR; /* XXX check this error code */ |
|
the_message_buffer = _ITRON_Message_buffer_Get( mbfid, &location ); |
switch ( location ) { |
case OBJECTS_REMOTE: /* Multiprocessing not supported */ |
case OBJECTS_ERROR: |
return _ITRON_Message_buffer_Clarify_get_id_error( mbfid ); |
|
case OBJECTS_LOCAL: |
the_core_msgq = &the_message_buffer->message_queue; |
|
/* |
* Fill in the size of message to be sent |
*/ |
|
if (the_core_msgq->number_of_pending_messages == 0) { |
pk_rmbf->msgsz = 0; |
} else { |
pk_rmbf->msgsz = ((CORE_message_queue_Buffer_control *) |
the_core_msgq->Pending_messages.first)->Contents.size; |
} |
|
/* |
* Fill in the size of free buffer |
*/ |
|
pk_rmbf->frbufsz = |
(the_core_msgq->maximum_pending_messages - |
the_core_msgq->number_of_pending_messages) * |
the_core_msgq->maximum_message_size; |
|
|
/* |
* Fill in whether or not there is a waiting task |
*/ |
|
if ( !_Thread_queue_First(&the_core_msgq->Wait_queue ) ) |
pk_rmbf->wtsk = FALSE; |
else |
pk_rmbf->wtsk = TRUE; |
|
pk_rmbf->stsk = FALSE; |
_Thread_Enable_dispatch(); |
return E_OK; |
} |
return E_OK; |
} |
/src/task.c
0,0 → 1,218
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: task.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
/* |
* _ITRON_Task_Create_extension |
* |
* This routine is an extension routine that is invoked as part |
* of creating any type of task or thread in the system. If the |
* task is created via another API, then this routine is invoked |
* and this API given the opportunity to initialize its extension |
* area. |
*/ |
|
boolean _ITRON_Task_Create_extension( |
Thread_Control *executing, |
Thread_Control *created |
) |
{ |
ITRON_API_Control *api; |
|
api = _Workspace_Allocate( sizeof( ITRON_API_Control ) ); |
|
if ( !api ) |
return FALSE; |
|
created->API_Extensions[ THREAD_API_ITRON ] = api; |
|
/* |
* Initialize the ITRON API extension |
*/ |
|
return TRUE; |
} |
|
/* |
* _ITRON_Task_Delete_extension |
* |
* This extension routine is invoked when a task is deleted. |
*/ |
|
User_extensions_routine _ITRON_Task_Delete_extension( |
Thread_Control *executing, |
Thread_Control *deleted |
) |
{ |
(void) _Workspace_Free( deleted->API_Extensions[ THREAD_API_ITRON ] ); |
|
deleted->API_Extensions[ THREAD_API_ITRON ] = NULL; |
} |
|
/* |
* _ITRON_Task_Initialize_user_tasks |
* |
* This routine creates and starts all configured user |
* initialzation threads. |
*/ |
|
void _ITRON_Task_Initialize_user_tasks( void ) |
{ |
unsigned32 index; |
unsigned32 maximum; |
ER return_value; |
itron_initialization_tasks_table *user_tasks; |
|
/* |
* NOTE: This is slightly different from the Ada implementation. |
*/ |
|
user_tasks = _ITRON_Task_User_initialization_tasks; |
maximum = _ITRON_Task_Number_of_initialization_tasks; |
|
if ( !user_tasks || maximum == 0 ) |
return; |
|
for ( index=0 ; index < maximum ; index++ ) { |
|
return_value = cre_tsk( |
user_tasks[ index ].id, |
&user_tasks[ index ].attributes |
); |
|
if ( return_value != E_OK ) |
_Internal_error_Occurred( INTERNAL_ERROR_ITRON_API, TRUE, return_value ); |
|
return_value = sta_tsk( user_tasks[ index ].id, 0 ); |
|
if ( return_value != E_OK ) |
_Internal_error_Occurred( INTERNAL_ERROR_ITRON_API, TRUE, return_value ); |
|
} |
} |
|
/*PAGE |
* |
* _ITRON_Delete_task |
*/ |
|
ER _ITRON_Delete_task( |
Thread_Control *the_thread |
) |
{ |
Objects_Information *the_information; |
|
the_information = _Objects_Get_information( the_thread->Object.id ); |
if ( !the_information ) { |
return E_OBJ; /* XXX - should never happen */ |
} |
|
_Thread_Close( the_information, the_thread ); |
|
_ITRON_Task_Free( the_thread ); |
|
return E_OK; |
} |
|
/* |
* At this point in time, the ITRON API does not need any other |
* extensions. See the POSIX and RTEMS API extensions for |
* examples of how they can be used. |
*/ |
|
/* |
* Extension Tables |
*/ |
|
API_extensions_Control _ITRON_Task_API_extensions = { |
{ NULL, NULL }, |
NULL, /* predriver */ |
_ITRON_Task_Initialize_user_tasks, /* postdriver */ |
NULL /* post switch */ |
}; |
|
User_extensions_Control _ITRON_Task_User_extensions = { |
{ NULL, NULL }, |
{ _ITRON_Task_Create_extension, /* create */ |
NULL, /* start */ |
NULL, /* restart */ |
_ITRON_Task_Delete_extension, /* delete */ |
NULL, /* switch */ |
NULL, /* begin */ |
NULL, /* exitted */ |
NULL /* fatal */ |
} |
}; |
|
/* |
* _ITRON_Task_Manager_initialization |
* |
* This routine initializes all Task Manager related data structures. |
* |
* Input parameters: |
* maximum_tasks - number of tasks to initialize |
* |
* Output parameters: NONE |
*/ |
|
void _ITRON_Task_Manager_initialization( |
unsigned32 maximum_tasks, |
unsigned32 number_of_initialization_tasks, |
itron_initialization_tasks_table *user_tasks |
) |
{ |
|
_ITRON_Task_Number_of_initialization_tasks = number_of_initialization_tasks; |
_ITRON_Task_User_initialization_tasks = user_tasks; |
|
/* |
* There may not be any ITRON_initialization tasks configured. |
*/ |
|
#if 0 |
if ( user_tasks == NULL || number_of_initialization_tasks == 0 ) |
_Internal_error_Occurred( INTERNAL_ERROR_ITRON_API, TRUE, -1 ); |
#endif |
|
_Objects_Initialize_information( |
&_ITRON_Task_Information, /* object information table */ |
OBJECTS_ITRON_TASKS, /* object class */ |
FALSE, /* TRUE if this is a global object class */ |
maximum_tasks, /* maximum objects of this class */ |
sizeof( Thread_Control ), /* size of this object's control block */ |
FALSE, /* TRUE if names for this object are strings */ |
ITRON_MAXIMUM_NAME_LENGTH, /* maximum length of each object's name */ |
TRUE /* TRUE if this class is threads */ |
); |
|
/* |
* Add all the extensions for this API |
*/ |
|
_User_extensions_Add_API_set( &_ITRON_Task_User_extensions ); |
|
_API_extensions_Add( &_ITRON_Task_API_extensions ); |
|
/* |
* XXX MP not supported |
* Register the MP Process Packet routine. |
*/ |
|
} |
/src/trcv_mbf.c
0,0 → 1,80
/* |
* ITRON Message Buffer Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: trcv_mbf.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/msgbuffer.h> |
#include <rtems/itron/task.h> |
|
/* |
* trcv_mbf - Receive Message from MessageBuffer with Timeout |
*/ |
|
ER trcv_mbf( |
VP msg, |
INT *p_msgsz, |
ID mbfid, |
TMO tmout |
) |
{ |
ITRON_Message_buffer_Control *the_message_buffer; |
Objects_Locations location; |
CORE_message_queue_Status status; |
boolean wait; |
Watchdog_Interval interval; |
|
interval = 0; |
if (tmout == TMO_POL) { |
wait = FALSE; |
} else { |
wait = TRUE; |
if (tmout != TMO_FEVR) |
interval = TOD_MILLISECONDS_TO_TICKS(tmout); |
} |
|
if (wait && _ITRON_Is_in_non_task_state() ) |
return E_CTX; |
|
if (!p_msgsz || !msg || tmout <= -2) |
return E_PAR; |
|
the_message_buffer = _ITRON_Message_buffer_Get(mbfid, &location); |
switch (location) { |
case OBJECTS_REMOTE: |
case OBJECTS_ERROR: /* Multiprocessing not supported */ |
return _ITRON_Message_buffer_Clarify_get_id_error(mbfid); |
|
case OBJECTS_LOCAL: |
_CORE_message_queue_Seize( |
&the_message_buffer->message_queue, |
the_message_buffer->Object.id, |
msg, |
p_msgsz, |
wait, |
interval |
); |
_Thread_Enable_dispatch(); |
status = (CORE_message_queue_Status)_Thread_Executing->Wait.return_code; |
return |
_ITRON_Message_buffer_Translate_core_message_buffer_return_code(status); |
} |
|
/* |
* If multiprocessing were supported, this is where we would announce |
* the existence of the semaphore to the rest of the system. |
*/ |
|
#if defined(RTEMS_MULTIPROCESSING) |
#endif |
return E_OK; |
} |
/src/ena_dsp.c
0,0 → 1,33
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: ena_dsp.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
|
/* |
* ena_dsp - Enable Dispatch |
*/ |
|
ER ena_dsp( void ) |
{ |
_Thread_Enable_dispatch(); |
|
return E_OK; |
} |
|
/src/itrontime.c
0,0 → 1,244
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: itrontime.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/tod.h> |
|
#include <rtems/itron/time.h> |
|
/* |
* set_tim - Set System Clock |
*/ |
|
void converTime(SYSTIME ms, TOD_Control *time) |
{ |
int millisecond; |
|
/* XXX need to dereference structure */ |
#if 0 |
milisecond = ms % 1000; |
tempSecond = ms / 1000; |
#else |
millisecond = 0; |
#endif |
} |
|
|
/* |
* set_tim - Set System Clock |
*/ |
|
ER set_tim( |
SYSTIME *pk_tim |
) |
{ |
Watchdog_Interval temp; /* an integer in seconds after conversion from SYSTIME */ |
TOD_Control the_tod; |
|
/* convert *pk_tim which is 48 bits integer in binary into an ordinary |
integer in milliseconds */ |
|
/* XXX */ temp = 0; |
if(temp > 0) { |
_Thread_Disable_dispatch(); |
_TOD_Set(&the_tod, temp); |
_Thread_Enable_dispatch(); |
if(_TOD_Validate(&the_tod)){ |
return E_OK; |
} |
} |
return E_SYS; |
} |
|
/* |
* get_tim - Get System Clock |
*/ |
|
ER get_tim( |
SYSTIME *pk_tim |
) |
{ |
return E_OK; |
} |
|
/* |
* dly_tsk - Delay Task |
*/ |
|
ER dly_tsk( |
DLYTIME dlytim |
) |
{ |
Watchdog_Interval ticks; |
|
ticks = TOD_MILLISECONDS_TO_TICKS(dlytim); |
|
_Thread_Disable_dispatch(); |
if ( ticks == 0 ) { |
_Thread_Yield_processor(); |
} else { |
_Thread_Set_state( _Thread_Executing, STATES_DELAYING ); |
_Watchdog_Initialize( |
&_Thread_Executing->Timer, |
_Thread_Delay_ended, |
_Thread_Executing->Object.id, |
NULL |
); |
_Watchdog_Insert_ticks( &_Thread_Executing->Timer, ticks ); |
} |
_Thread_Enable_dispatch(); |
return E_OK; |
} |
|
/* |
* def_cyc - Define Cyclic Handler |
*/ |
|
ER def_cyc( |
HNO cycno, |
T_DCYC *pk_dcyc |
) |
{ |
Watchdog_Control *object; |
#if 0 |
Watchdog_Interval timeInterval; |
#endif |
|
/* XXX */ object = 0; |
if ( pk_dcyc->cycatr != TA_HLNG) |
return E_RSATR; |
#if 0 |
timeInterval = pk_dcyc->cyctim / 1000; |
object->delta_interval = timeInterval; |
#endif |
_Watchdog_Initialize( |
object, |
pk_dcyc->cychdr, |
cycno, |
pk_dcyc->exinf); |
_Watchdog_Deactivate(object); |
|
return E_OK; |
} |
|
/* |
* act_cyc - Activate Cyclic Handler |
*/ |
|
ER act_cyc( |
HNO cycno, |
UINT cycact |
) |
{ |
Watchdog_Control *object; |
|
if(cycact != TCY_OFF || cycact != TCY_ON) |
return E_PAR; |
|
#if 0 |
if( object->Object_ID != cycno) |
return E_NOEXS; |
#endif |
|
_Watchdog_Activate(object); |
|
return E_OK; |
} |
|
/* |
* ref_cyc - Reference Cyclic Handler Status |
*/ |
|
ER ref_cyc( |
T_RCYC *pk_rcyc, |
HNO cycno |
) |
{ |
#if 0 |
int timeElapse_since_actCyclic; |
#endif |
T_DCYC *pk_dcyc; |
#if 0 |
Watchdog_Control *object; |
#endif |
|
/* XXX */ pk_dcyc = 0; |
|
/* XXX will to use a "get" routine to map from id to object pointer */ |
/* XXX and the object pointer should be of type specific to this manager */ |
#if 0 |
if( object->Object_ID == cycno)) |
#else |
if ( 1 ) |
#endif |
{ |
pk_rcyc->exinf = pk_dcyc->exinf; |
pk_rcyc->cycact = pk_dcyc->cycact; |
#if 0 |
pk_rcyc->lfttim = pk_dcyc->cyctim - timeElapse_since_actCyclic; |
#endif |
|
return E_OK; |
} |
else |
return E_NOEXS; |
} |
|
/* |
* def_alm - Define Alarm Handler |
*/ |
|
ER def_alm( |
HNO almno, |
T_DALM *pk_dalm |
) |
{ |
#if 0 |
Objects_Control *objectAlrm; |
Watchdog_Interval timeInterval; |
|
timeInterval = pk_dalm->almtim / 1000; |
(void) _Watchdog_Remove(&objectAlrm); |
_Watchdog_Initialize( |
objectAlrm, |
pk_dalm->almhdr, |
almno, |
pk_dalm->exinf); |
_Watchdong_Insert_seconds(objectAlrm,timeInterval); |
_Thread_Enable_dispatch(); |
#endif |
|
return E_OK; |
} |
|
/* |
* ref_alm - Reference Alarm Handler Status |
*/ |
|
ER ref_alm( |
T_RALM *pk_ralm, |
HNO almno |
) |
{ |
|
return E_OK; |
} |
|
/* |
* ret_tmr - Return from Timer Handler |
*/ |
|
void ret_tmr( void ) |
{ |
} |
|
/src/del_mbx.c
0,0 → 1,64
/* |
* ITRON 3.0 Mailbox Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: del_mbx.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/mbox.h> |
#include <rtems/itron/task.h> |
|
/* |
* del_mbx - Delete Mailbox |
* |
* |
* ------Parameters-------------- |
* ID mbxid The Mailbox's ID |
* ------------------------------ |
* |
* -----Return Parameters------- |
* ER ercd Itron Error Code |
* ----------------------------- |
* |
* -----C Language Interface---- |
* ER ercd = del_mbx(ID mbxid); |
* ----------------------------- |
* |
*/ |
|
ER del_mbx( |
ID mbxid |
) |
{ |
register ITRON_Mailbox_Control *the_mailbox; |
Objects_Locations location; |
|
the_mailbox= _ITRON_Mailbox_Get( mbxid, &location ); |
switch ( location ) { |
case OBJECTS_ERROR: |
case OBJECTS_REMOTE: |
return _ITRON_Mailbox_Clarify_get_id_error( mbxid ); |
|
case OBJECTS_LOCAL: |
_Objects_Close( &_ITRON_Mailbox_Information, &the_mailbox->Object ); |
|
_CORE_message_queue_Close( |
&the_mailbox->message_queue, |
NULL, /* Multiprocessing not supported */ |
CORE_MESSAGE_QUEUE_STATUS_WAS_DELETED |
); |
|
_ITRON_Mailbox_Free(the_mailbox); |
break; |
} |
|
_ITRON_return_errorno( E_OK ); |
} |
/src/ter_tsk.c
0,0 → 1,61
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: ter_tsk.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
|
/* |
* ter_tsk - Terminate Other Task - Set State to DORMANT |
*/ |
|
ER ter_tsk( |
ID tskid |
) |
{ |
register Thread_Control *the_thread; |
Objects_Locations location; |
|
the_thread = _ITRON_Task_Get( tskid, &location ); |
switch ( location ) { |
case OBJECTS_REMOTE: |
case OBJECTS_ERROR: |
return _ITRON_Task_Clarify_get_id_error( tskid ); |
|
case OBJECTS_LOCAL: |
|
if ( _Thread_Is_executing( the_thread ) ) |
_ITRON_return_errorno( E_OBJ ); |
|
if ( _States_Is_dormant( the_thread->current_state ) ) |
_ITRON_return_errorno( E_OBJ ); |
|
_Thread_Restart( the_thread, NULL, 0 ); |
_Thread_Set_state( the_thread, STATES_DORMANT ); |
break; |
} |
|
_ITRON_return_errorno( E_OK ); |
} |
|
|
|
|
|
|
|
/src/cre_sem.c
0,0 → 1,96
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: cre_sem.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/semaphore.h> |
#include <rtems/itron/task.h> |
#include <rtems/score/tod.h> |
|
/* |
* cre_sem - Create Semaphore |
* |
* This function implements the ITRON 3.0 cre_sem() service. |
*/ |
|
ER cre_sem( |
ID semid, |
T_CSEM *pk_csem |
) |
{ |
CORE_semaphore_Attributes the_semaphore_attributes; |
ITRON_Semaphore_Control *the_semaphore; |
|
/* |
* Bad pointer to the attributes structure |
*/ |
|
if ( !pk_csem ) |
return E_PAR; |
|
/* |
* Bits were set that were note defined. |
*/ |
|
if ( pk_csem->sematr & _ITRON_SEMAPHORE_UNUSED_ATTRIBUTES ) |
return E_RSATR; |
|
/* |
* Initial semaphore count exceeds the maximum. |
*/ |
|
if ( pk_csem->isemcnt > pk_csem->maxsem ) |
return E_PAR; |
|
/* |
* This error is not in the specification but this condition |
* does not make sense. |
*/ |
|
if ( pk_csem->maxsem == 0 ) |
return E_PAR; |
|
_Thread_Disable_dispatch(); /* prevents deletion */ |
|
the_semaphore = _ITRON_Semaphore_Allocate( semid ); |
if ( !the_semaphore ) { |
_Thread_Enable_dispatch(); |
return _ITRON_Semaphore_Clarify_allocation_id_error( semid ); |
} |
|
if ( pk_csem->sematr & TA_TPRI ) |
the_semaphore_attributes.discipline = CORE_SEMAPHORE_DISCIPLINES_PRIORITY; |
else |
the_semaphore_attributes.discipline = CORE_SEMAPHORE_DISCIPLINES_FIFO; |
|
the_semaphore_attributes.maximum_count = pk_csem->maxsem; |
|
_CORE_semaphore_Initialize( |
&the_semaphore->semaphore, |
OBJECTS_ITRON_SEMAPHORES, |
&the_semaphore_attributes, |
pk_csem->isemcnt, |
NULL /* Multiprocessing not supported */ |
); |
|
_ITRON_Objects_Open( &_ITRON_Semaphore_Information, &the_semaphore->Object ); |
|
/* |
* If multiprocessing were supported, this is where we would announce |
* the existence of the semaphore to the rest of the system. |
*/ |
|
#if defined(RTEMS_MULTIPROCESSING) |
#endif |
|
_Thread_Enable_dispatch(); |
return E_OK; |
} |
/src/mboxtranslatereturncode.c
0,0 → 1,44
/* |
* ITRON 3.0 Mailbox Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: mboxtranslatereturncode.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/mbox.h> |
#include <rtems/itron/task.h> |
|
/* |
* _ITRON_Mailbox_Translate_core_message_queue_return_code |
* |
* This routine translates a core message queue object status |
* into the appropriate ITRON status code. |
*/ |
|
ER _ITRON_Mailbox_Translate_core_message_queue_return_code( |
CORE_message_queue_Status status |
) |
{ |
switch (status) { |
case CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL: |
return E_OK; |
case CORE_MESSAGE_QUEUE_STATUS_TOO_MANY: |
return E_TMOUT; |
case CORE_MESSAGE_QUEUE_STATUS_INVALID_SIZE: |
return E_PAR; |
case CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT: |
return E_TMOUT; |
case CORE_MESSAGE_QUEUE_STATUS_TIMEOUT: |
return E_TMOUT; |
default: |
return E_ID; |
} |
} |
/src/fmempool.c
0,0 → 1,138
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: fmempool.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/fmempool.h> |
|
/* |
* _ITRON_Fixed_memory_pool_Manager_initialization |
* |
* This routine initializes all fixed memory pool manager related |
* data structures. |
* |
* Input parameters: |
* maximum_fixed_memory_pools - maximum configured fixed memory pools |
* |
* Output parameters: NONE |
*/ |
|
void _ITRON_Fixed_memory_pool_Manager_initialization( |
unsigned32 maximum_fixed_memory_pools |
) |
{ |
_Objects_Initialize_information( |
&_ITRON_Fixed_memory_pool_Information, /* object information table */ |
OBJECTS_ITRON_FIXED_MEMORY_POOLS, /* object class */ |
FALSE, /* TRUE if this is a global */ |
/* object class */ |
maximum_fixed_memory_pools, /* maximum objects of this class */ |
sizeof( ITRON_Fixed_memory_pool_Control ), |
/* size of this object's control block */ |
FALSE, /* TRUE if names for this object */ |
/* are strings */ |
ITRON_MAXIMUM_NAME_LENGTH, /* maximum length of each object's */ |
/* name */ |
FALSE /* TRUE if this class is threads */ |
); |
|
/* |
* Register the MP Process Packet routine. |
* |
* NOTE: No MP Support YET in RTEMS ITRON implementation. |
*/ |
|
} |
|
/* |
* cre_mpf - Create Fixed-Size Memorypool |
*/ |
|
ER cre_mpf( |
ID mpfid, |
T_CMPF *pk_cmpf |
) |
{ |
return E_OK; |
} |
|
/* |
* del_mpf - Delete Fixed-Size Memorypool |
*/ |
|
ER del_mpf( |
ID mpfid |
) |
{ |
return E_OK; |
} |
|
/* |
* get_blf - Get Fixed-Size Memory Block |
*/ |
|
ER get_blf( |
VP *p_blf, |
ID mpfid |
) |
{ |
return E_OK; |
} |
|
/* |
* pget_blf - Poll and Get Fixed-Size Memory Block |
*/ |
|
ER pget_blf( |
VP *p_blf, |
ID mpfid |
) |
{ |
return E_OK; |
} |
|
/* |
* tget_blf - Get Fixed-Size Memory Block with Timeout |
*/ |
|
ER tget_blf( |
VP *p_blf, |
ID mpfid, |
TMO tmout |
) |
{ |
return E_OK; |
} |
|
/* |
* rel_blf - Release Fixed-Size Memory Block |
*/ |
|
ER rel_blf( |
ID mpfid, |
VP blf |
) |
{ |
return E_OK; |
} |
|
/* |
* ref_mpf - Reference Fixed-Size Memorypool Status |
*/ |
|
ER ref_mpf( |
T_RMPF *pk_rmpf, |
ID mpfid |
) |
{ |
return E_OK; |
} |
|
/src/rcv_mbf.c
0,0 → 1,30
/* |
* ITRON Message Buffer Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: rcv_mbf.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/msgbuffer.h> |
#include <rtems/itron/task.h> |
|
/* |
* rcv_mbf - Receive Message from MessageBuffer |
*/ |
|
ER rcv_mbf( |
VP msg, |
INT *p_msgsz, |
ID mbfid |
) |
{ |
return trcv_mbf(msg, p_msgsz, mbfid, TMO_FEVR); |
} |
/src/prcv_mbx.c
0,0 → 1,29
/* |
* ITRON 3.0 Mailbox Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: prcv_mbx.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/mbox.h> |
#include <rtems/itron/task.h> |
|
/* |
* prcv_msg - Poll and Receive Message from Mailbox |
*/ |
|
ER prcv_msg( |
T_MSG **ppk_msg, |
ID mbxid |
) |
{ |
return trcv_msg( ppk_msg, mbxid, TMO_POL ); |
} |
/src/ref_mbx.c
0,0 → 1,62
/* |
* ITRON 3.0 Mailbox Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: ref_mbx.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/mbox.h> |
#include <rtems/itron/task.h> |
|
/* |
* ref_mbx - Reference Mailbox Status |
*/ |
|
ER ref_mbx( |
T_RMBX *pk_rmbx, |
ID mbxid |
) |
{ |
register ITRON_Mailbox_Control *the_mailbox; |
Objects_Locations location; |
Chain_Control *pending; |
|
if ( !pk_rmbx ) |
return E_PAR; |
|
the_mailbox = _ITRON_Mailbox_Get( mbxid, &location ); |
switch ( location ) { |
case OBJECTS_REMOTE: |
case OBJECTS_ERROR: |
return _ITRON_Mailbox_Clarify_get_id_error( mbxid ); |
|
case OBJECTS_LOCAL: |
|
pending = &the_mailbox->message_queue.Pending_messages; |
if ( _Chain_Is_empty( pending ) ) |
pk_rmbx->pk_msg = NULL; |
else |
pk_rmbx->pk_msg = (T_MSG *) pending->first; |
|
/* |
* Fill in whether or not there is a waiting task |
*/ |
|
if ( !_Thread_queue_First( &the_mailbox->message_queue.Wait_queue ) ) |
pk_rmbx->wtsk = FALSE; |
else |
pk_rmbx->wtsk = TRUE; |
|
break; |
} |
_ITRON_return_errorno( E_OK ); |
} |
|
/src/rsm_tsk.c
0,0 → 1,57
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: rsm_tsk.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
|
/* |
* rsm_tsk - Resume Suspended Task |
*/ |
|
ER rsm_tsk( |
ID tskid |
) |
{ |
register Thread_Control *the_thread; |
Objects_Locations location; |
|
the_thread = _ITRON_Task_Get( tskid, &location ); |
switch ( location ) { |
case OBJECTS_REMOTE: |
case OBJECTS_ERROR: |
return _ITRON_Task_Clarify_get_id_error( tskid ); |
|
case OBJECTS_LOCAL: |
|
if ( _Thread_Is_executing( the_thread ) ) |
_ITRON_return_errorno( E_OBJ ); |
|
if ( _States_Is_dormant( the_thread->current_state )) |
_ITRON_return_errorno( E_OBJ ); |
|
if ( ! _States_Is_suspended(the_thread->current_state) ) |
_ITRON_return_errorno( E_OK ); |
|
_Thread_Resume( the_thread, FALSE ); |
break; |
} |
|
_ITRON_return_errorno( E_OK ); |
} |
|
/src/TODO
0,0 → 1,13
# |
# $Id: TODO,v 1.2 2001-09-27 11:59:13 chris Exp $ |
# |
|
The overall status including a major item todo list is in the Status |
chapter of the RTEMS ITRON API User's Guide. This file contains very |
short things that need to be addressed. |
|
+ unlimited object not support for allocate by index. Support either |
needs to be added for this type of object or the manager initialization |
code needs to consider it a fatal error to configure the object class |
in this mode. |
|
/src/trcv_mbx.c
0,0 → 1,72
/* |
* ITRON 3.0 Mailbox Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: trcv_mbx.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/mbox.h> |
#include <rtems/itron/task.h> |
|
/* |
* trcv_msg - Receive Message from Mailbox with Timeout |
*/ |
|
ER trcv_msg( |
T_MSG **ppk_msg, |
ID mbxid, |
TMO tmout |
) |
{ |
register ITRON_Mailbox_Control *the_mailbox; |
Watchdog_Interval interval; |
boolean wait; |
Objects_Locations location; |
unsigned32 size; |
|
if (!ppk_msg) |
return E_PAR; |
|
interval = 0; |
if ( tmout == TMO_POL ) { |
wait = FALSE; |
} else { |
wait = TRUE; |
if ( tmout != TMO_FEVR ) |
interval = TOD_MILLISECONDS_TO_TICKS(tmout); |
} |
|
if ( wait && _ITRON_Is_in_non_task_state() ) |
return E_CTX; |
|
the_mailbox = _ITRON_Mailbox_Get( mbxid, &location ); |
switch ( location ) { |
case OBJECTS_REMOTE: |
case OBJECTS_ERROR: |
return _ITRON_Mailbox_Clarify_get_id_error( mbxid ); |
|
case OBJECTS_LOCAL: |
|
_CORE_message_queue_Seize( |
&the_mailbox->message_queue, |
the_mailbox->Object.id, |
ppk_msg, |
&size, |
wait, |
interval |
); |
break; |
} |
|
_ITRON_return_errorno( |
_ITRON_Mailbox_Translate_core_message_queue_return_code( |
_Thread_Executing->Wait.return_code ) ); |
} |
/src/itronintr.c
0,0 → 1,107
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: itronintr.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/intr.h> |
|
/* |
* def_int - Define Interrupt Handler |
*/ |
|
ER def_int( |
UINT dintno, |
T_DINT *pk_dint |
) |
{ |
return E_OK; |
} |
|
/* |
* ret_int - Return from Interrupt Handler |
*/ |
|
void ret_int( void ) |
{ |
} |
|
/* |
* ret_wup - Return and Wakeup Task |
*/ |
|
void ret_wup( |
ID tskid |
) |
{ |
} |
|
/* |
* loc_cpu - Lock CPU |
*/ |
|
ER loc_cpu( void ) |
{ |
return E_OK; |
} |
|
/* |
* unl_cpu - Unlock CPU |
*/ |
|
ER unl_cpu( void ) |
{ |
return E_OK; |
} |
|
/* |
* dis_int - Disable Interrupt |
*/ |
|
ER dis_int( |
UINT eintno |
) |
{ |
return E_OK; |
} |
|
/* |
* ena_int - Enable Interrupt |
*/ |
|
ER ena_int( |
UINT eintno |
) |
{ |
return E_OK; |
} |
|
/* |
* chg_iXX - Change Interrupt Mask(Level or Priority) |
*/ |
|
ER chg_iXX( |
UINT iXXXX |
) |
{ |
return E_OK; |
} |
|
/* |
* ref_iXX - Reference Interrupt Mask(Level or Priority) |
*/ |
|
ER ref_iXX( |
UINT *p_iXXXX |
) |
{ |
return E_OK; |
} |
|
/src/Makefile.am
0,0 → 1,60
## |
## $Id: Makefile.am,v 1.2 2001-09-27 11:59:13 chris Exp $ |
## |
|
AUTOMAKE_OPTIONS = foreign 1.4 |
|
TASK_C_FILES = task.c cre_tsk.c del_tsk.c sta_tsk.c ext_tsk.c exd_tsk.c \ |
ter_tsk.c dis_dsp.c ena_dsp.c chg_pri.c rot_rdq.c rel_wai.c get_tid.c \ |
ref_tsk.c |
|
TASKSYNC_C_FILES = sus_tsk.c rsm_tsk.c frsm_tsk.c slp_tsk.c tslp_tsk.c \ |
wup_tsk.c can_wup.c |
|
SEMAPHORE_C_FILES = itronsem.c cre_sem.c del_sem.c preq_sem.c ref_sem.c \ |
sig_sem.c twai_sem.c wai_sem.c |
|
EVENTFLAGS_C_FILES = eventflags.c |
|
MAILBOX_C_FILES = mbox.c |
|
MSGBUFFER_C_FILES = msgbuffer.c msgbuffertranslatereturncode.c cre_mbf.c \ |
del_mbf.c prcv_mbf.c psnd_mbf.c rcv_mbf.c ref_mbf.c snd_mbf.c trcv_mbf.c \ |
tsnd_mbf.c |
|
RENDEZVOUS_C_FILES = port.c |
|
INTERRUPT_C_FILES = itronintr.c |
|
VARIABLE_MEMORY_POOL_C_FILES = vmempool.c |
|
FIXED_MEMORY_POOL_C_FILES = fmempool.c |
|
TIME_C_FILES = itrontime.c |
|
CONFIGURATION_C_FILES = sysmgmt.c |
|
NETWORK_C_FILES = network.c |
|
C_FILES = $(TASK_C_FILES) $(TASKSYNC_C_FILES) $(SEMAPHORE_C_FILES) \ |
$(EVENTFLAGS_C_FILES) $(MAILBOX_C_FILES) $(MSGBUFFER_C_FILES) \ |
$(RENDEZVOUS_C_FILES) $(INTERRUPT_C_FILES) \ |
$(VARIABLE_MEMORY_POOL_C_FILES) $(FIXED_MEMORY_POOL_C_FILES) \ |
$(TIME_C_FILES) |
C_O_FILES = $(C_FILES:%.c=${ARCH}/%.o) |
|
OBJS = $(C_O_FILES) |
|
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg |
include $(top_srcdir)/../../../../automake/lib.am |
|
AM_CPPFLAGS += -D__RTEMS_INSIDE__ |
|
all-local: ${ARCH} ${OBJS} |
|
UNUSED_C_FILES = cre_mbx.c del_mbx.c mboxtranslatereturncode.c network.c \ |
prcv_mbx.c rcv_mbx.c ref_mbx.c snd_mbx.c sysmgmt.c trcv_mbx.c |
|
EXTRA_DIST = $(C_FILES) $(UNUSED_C_FILES) |
|
include $(top_srcdir)/../../../../automake/local.am |
/src/psnd_mbf.c
0,0 → 1,30
/* |
* ITRON Message Buffer Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: psnd_mbf.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/msgbuffer.h> |
#include <rtems/itron/task.h> |
|
/* |
* psnd_mbf - Poll and Send Message to MessageBuffer |
*/ |
|
ER psnd_mbf( |
ID mbfid, |
VP msg, |
INT msgsz |
) |
{ |
return tsnd_mbf( mbfid, msg, msgsz, TMO_POL ); |
} |
/src/cre_tsk.c
0,0 → 1,116
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: cre_tsk.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
|
/* |
* cre_tsk - Create Task |
*/ |
|
ER cre_tsk( |
ID tskid, |
T_CTSK *pk_ctsk |
) |
{ |
register Thread_Control *the_thread; |
boolean status; |
Priority_Control core_priority; |
|
/* |
* Validate Parameters. |
*/ |
|
if ( pk_ctsk == NULL ) |
return E_PAR; |
|
if ((pk_ctsk->tskatr != TA_ASM ) && |
(pk_ctsk->tskatr != TA_HLNG) && |
(pk_ctsk->tskatr != TA_COP0) && |
(pk_ctsk->tskatr != TA_COP1) && |
(pk_ctsk->tskatr != TA_COP2) && |
(pk_ctsk->tskatr != TA_COP3) && |
(pk_ctsk->tskatr != TA_COP4) && |
(pk_ctsk->tskatr != TA_COP5) && |
(pk_ctsk->tskatr != TA_COP6) && |
(pk_ctsk->tskatr != TA_COP7)) |
return E_RSATR; |
|
if (( pk_ctsk->itskpri <= 0 ) || ( pk_ctsk->itskpri >= 256 )) |
return E_PAR; |
if ( pk_ctsk->task == NULL ) |
return E_PAR; |
if ( pk_ctsk->stksz < 0 ) |
return E_PAR; |
|
/* |
* Disable dispatching. |
*/ |
|
_Thread_Disable_dispatch(); |
|
/* |
* allocate the thread. |
*/ |
|
the_thread = _ITRON_Task_Allocate( tskid ); |
if ( !the_thread ) |
_ITRON_return_errorno( _ITRON_Task_Clarify_allocation_id_error( tskid ) ); |
|
/* |
* Initialize the core thread for this task. |
*/ |
|
core_priority = _ITRON_Task_Priority_to_Core( pk_ctsk->itskpri ); |
status = _Thread_Initialize( |
&_ITRON_Task_Information, |
the_thread, |
NULL, |
pk_ctsk->stksz, |
TRUE, /* XXX - All tasks FP for now */ |
core_priority, |
TRUE, |
THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE, |
NULL, /* no budget algorithm callout */ |
0, |
NULL |
); |
|
if ( !status ) { |
_ITRON_Task_Free( the_thread ); |
_ITRON_return_errorno( E_NOMEM ); |
} |
|
/* |
* This insures we evaluate the process-wide signals pending when we |
* first run. |
* |
* NOTE: Since the thread starts with all unblocked, this is necessary. |
*/ |
|
the_thread->do_post_task_switch_extension = TRUE; |
|
the_thread->Start.entry_point = (Thread_Entry) pk_ctsk->task; |
|
_ITRON_return_errorno( E_OK ); |
} |
|
|
|
|
/src/sus_tsk.c
0,0 → 1,65
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: sus_tsk.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <limits.h> |
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
|
/* |
* Task-Dependent Synchronization Functions |
*/ |
|
/* |
* sus_tsk - Suspend Other Task |
*/ |
|
ER sus_tsk( |
ID tskid |
) |
{ |
register Thread_Control *the_thread; |
Objects_Locations location; |
|
the_thread = _ITRON_Task_Get( tskid, &location ); |
switch ( location ) { |
case OBJECTS_REMOTE: |
case OBJECTS_ERROR: |
return _ITRON_Task_Clarify_get_id_error( tskid ); |
|
case OBJECTS_LOCAL: |
|
if ( _Thread_Is_executing( the_thread ) ) |
_ITRON_return_errorno( E_OBJ ); |
|
if (the_thread->suspend_count == INT_MAX ) |
_ITRON_return_errorno( E_QOVR ); |
|
_Thread_Suspend( the_thread ); |
break; |
} |
|
_ITRON_return_errorno( E_OK ); |
} |
|
|
|
|
|
|
|
/src/tsnd_mbf.c
0,0 → 1,85
/* |
* ITRON Message Buffer Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: tsnd_mbf.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/msgbuffer.h> |
#include <rtems/itron/task.h> |
|
#include <assert.h> /* only for blocking */ |
|
/* |
* tsnd_mbf - Send Message to MessageBuffer with Timeout |
*/ |
|
ER tsnd_mbf( |
ID mbfid, |
VP msg, |
INT msgsz, |
TMO tmout |
) |
{ |
ITRON_Message_buffer_Control *the_message_buffer; |
Objects_Locations location; |
Watchdog_Interval interval; |
boolean wait; |
|
if (msgsz <= 0 || !msg) |
return E_PAR; |
|
interval = 0; |
if ( tmout == TMO_POL ) { |
wait = FALSE; |
} else { |
wait = TRUE; |
if ( tmout != TMO_FEVR ) |
interval = TOD_MILLISECONDS_TO_TICKS(tmout); |
} |
|
if ( wait && _ITRON_Is_in_non_task_state() ) |
return E_CTX; |
|
the_message_buffer = _ITRON_Message_buffer_Get(mbfid, &location); |
switch (location) { |
case OBJECTS_REMOTE: |
case OBJECTS_ERROR: /* Multiprocessing not supported */ |
return _ITRON_Message_buffer_Clarify_get_id_error(mbfid); |
|
case OBJECTS_LOCAL: |
/* XXX Submit needs to take into account blocking */ |
_CORE_message_queue_Submit( |
&the_message_buffer->message_queue, |
msg, |
msgsz, |
the_message_buffer->Object.id, |
NULL, |
CORE_MESSAGE_QUEUE_SEND_REQUEST, |
wait, /* sender may block */ |
interval /* timeout interval */ |
); |
_Thread_Enable_dispatch(); |
return _ITRON_Message_buffer_Translate_core_message_buffer_return_code( |
_Thread_Executing->Wait.return_code |
); |
} |
|
/* |
* If multiprocessing were supported, this is where we would announce |
* the existence of the semaphore to the rest of the system. |
*/ |
|
#if defined(RTEMS_MULTIPROCESSING) |
#endif |
|
return E_OK; |
} |
/src/wup_tsk.c
0,0 → 1,33
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: wup_tsk.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/score/thread.h> |
#include <rtems/score/userext.h> |
#include <rtems/score/wkspace.h> |
#include <rtems/score/apiext.h> |
#include <rtems/score/sysstate.h> |
|
#include <rtems/itron/task.h> |
|
|
/* |
* wup_tsk - Wakeup Other Task |
*/ |
|
ER wup_tsk( |
ID tskid |
) |
{ |
return E_OK; |
} |
|
/src/cre_mbf.c
0,0 → 1,87
/* |
* ITRON Message Buffer Manager |
* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: cre_mbf.c,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#include <itron.h> |
|
#include <rtems/itron/msgbuffer.h> |
#include <rtems/itron/task.h> |
|
/* |
* cre_mbf - Create MessageBuffer |
*/ |
|
ER cre_mbf( |
ID mbfid, |
T_CMBF *pk_cmbf |
) |
{ |
CORE_message_queue_Attributes the_msgq_attributes; |
ITRON_Message_buffer_Control *the_message_buffer; |
|
/* |
* Bad pointer to the attributes structure |
*/ |
|
if ( !pk_cmbf ) |
return E_PAR; |
|
/* |
* Bits were set that were note defined. |
*/ |
|
if (pk_cmbf->mbfatr & ~(TA_TPRI)) |
return E_RSATR; |
|
if (pk_cmbf->bufsz < 0 || pk_cmbf->maxmsz < 0) |
return E_PAR; |
|
if (pk_cmbf->bufsz < pk_cmbf->maxmsz) |
return E_PAR; |
|
_Thread_Disable_dispatch(); /* prevents deletion */ |
|
the_message_buffer = _ITRON_Message_buffer_Allocate(mbfid); |
if ( !the_message_buffer ) { |
_Thread_Enable_dispatch(); |
return _ITRON_Message_buffer_Clarify_allocation_id_error(mbfid); |
} |
|
if ( pk_cmbf->mbfatr & TA_TPRI ) |
the_msgq_attributes.discipline = CORE_MESSAGE_QUEUE_DISCIPLINES_PRIORITY; |
else |
the_msgq_attributes.discipline = CORE_MESSAGE_QUEUE_DISCIPLINES_FIFO; |
|
_CORE_message_queue_Initialize( |
&the_message_buffer->message_queue, |
OBJECTS_ITRON_MESSAGE_BUFFERS, |
&the_msgq_attributes, |
pk_cmbf->bufsz / pk_cmbf->maxmsz, |
pk_cmbf->maxmsz, |
NULL /* Multiprocessing not supported */ |
); |
|
_ITRON_Objects_Open( &_ITRON_Message_buffer_Information, |
&the_message_buffer->Object ); |
|
/* |
* If multiprocessing were supported, this is where we would announce |
* the existence of the semaphore to the rest of the system. |
*/ |
|
#if defined(RTEMS_MULTIPROCESSING) |
#endif |
|
_Thread_Enable_dispatch(); |
|
return E_OK; |
} |
/Makefile.am
0,0 → 1,11
## |
## $Id: Makefile.am,v 1.2 2001-09-27 11:59:12 chris Exp $ |
## |
|
AUTOMAKE_OPTIONS = foreign 1.4 |
ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal |
|
SUBDIRS = include inline src |
|
include $(top_srcdir)/../../../../automake/subdirs.am |
include $(top_srcdir)/../../../../automake/local.am |
/inline/Makefile.am
0,0 → 1,10
## |
## $Id: Makefile.am,v 1.2 2001-09-27 11:59:13 chris Exp $ |
## |
|
AUTOMAKE_OPTIONS = foreign 1.4 |
|
SUBDIRS = rtems |
|
include $(top_srcdir)/../../../../automake/subdirs.am |
include $(top_srcdir)/../../../../automake/local.am |
/inline/rtems/Makefile.am
0,0 → 1,10
## |
## $Id: Makefile.am,v 1.2 2001-09-27 11:59:13 chris Exp $ |
## |
|
AUTOMAKE_OPTIONS = foreign 1.4 |
|
SUBDIRS = itron |
|
include $(top_srcdir)/../../../../automake/subdirs.am |
include $(top_srcdir)/../../../../automake/local.am |
/inline/rtems/itron/eventflags.inl
0,0 → 1,151
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: eventflags.inl,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#ifndef __ITRON_EVENTFLAGS_inl_ |
#define __ITRON_EVENTFLAGS_inl_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* _ITRON_Eventflags_Allocate |
* |
* DESCRIPTION: |
* |
* This routine allocates the eventflags associated with the specified |
* eventflags ID from the pool of inactive eventflagss. |
* |
* Input parameters: |
* flgid - id of eventflags to allocate |
* status - pointer to status variable |
* |
* Output parameters: |
* returns - pointer to the eventflags control block |
* *status - status |
*/ |
|
RTEMS_INLINE_ROUTINE ITRON_Eventflags_Control *_ITRON_Eventflags_Allocate( |
ID flgid |
) |
{ |
return (ITRON_Eventflags_Control *)_ITRON_Objects_Allocate_by_index( |
&_ITRON_Eventflags_Information, |
flgid, |
sizeof(ITRON_Eventflags_Control) |
); |
} |
|
/* |
* _ITRON_Eventflags_Clarify_allocation_id_error |
* |
* This function is invoked when an object allocation ID error |
* occurs to determine the specific ITRON error code to return. |
*/ |
|
#define _ITRON_Eventflags_Clarify_allocation_id_error( _id ) \ |
_ITRON_Objects_Clarify_allocation_id_error( \ |
&_ITRON_Eventflags_Information, (_id) ) |
|
/* |
* _ITRON_Eventflags_Clarify_get_id_error |
* |
* This function is invoked when an object get ID error |
* occurs to determine the specific ITRON error code to return. |
*/ |
|
#define _ITRON_Eventflags_Clarify_get_id_error( _id ) \ |
_ITRON_Objects_Clarify_get_id_error( &_ITRON_Eventflags_Information, (_id) ) |
|
/* |
* _ITRON_Eventflags_Free |
* |
* DESCRIPTION: |
* |
* This routine frees a eventflags control block to the |
* inactive chain of free eventflags control blocks. |
* |
* Input parameters: |
* the_eventflags - pointer to eventflags control block |
* |
* Output parameters: NONE |
*/ |
|
RTEMS_INLINE_ROUTINE void _ITRON_Eventflags_Free ( |
ITRON_Eventflags_Control *the_eventflags |
) |
{ |
_ITRON_Objects_Free( &_ITRON_Eventflags_Information, &the_eventflags->Object ); |
} |
|
/*PAGE |
* |
* _ITRON_Eventflags_Get |
* |
* DESCRIPTION: |
* |
* This function maps eventflags IDs to eventflags control blocks. |
* If ID corresponds to a local eventflags, then it returns |
* the_eventflags control pointer which maps to ID and location |
* is set to OBJECTS_LOCAL. if the eventflags ID is global and |
* resides on a remote node, then location is set to OBJECTS_REMOTE, |
* and the_eventflags is undefined. Otherwise, location is set |
* to OBJECTS_ERROR and the_eventflags is undefined. |
* |
* Input parameters: |
* id - ITRON eventflags ID. |
* the_location - pointer to a location variable |
* |
* Output parameters: |
* *the_location - location of the object |
*/ |
|
RTEMS_INLINE_ROUTINE ITRON_Eventflags_Control *_ITRON_Eventflags_Get ( |
ID id, |
Objects_Locations *location |
) |
{ |
return (ITRON_Eventflags_Control *) |
_ITRON_Objects_Get( &_ITRON_Eventflags_Information, id, location ); |
} |
|
/*PAGE |
* |
* _ITRON_Eventflags_Is_null |
* |
* This function returns TRUE if the_eventflags is NULL and FALSE otherwise. |
* |
* Input parameters: |
* the_eventflags - pointer to eventflags control block |
* |
* Output parameters: |
* TRUE - if the_eventflags is NULL |
* FALSE - otherwise |
*/ |
|
RTEMS_INLINE_ROUTINE boolean _ITRON_Eventflags_Is_null ( |
ITRON_Eventflags_Control *the_eventflags |
) |
{ |
return ( the_eventflags == NULL ); |
} |
|
/* |
* XXX insert inline routines here |
*/ |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/inline/rtems/itron/fmempool.inl
0,0 → 1,158
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: fmempool.inl,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#ifndef __ITRON_FIXED_MEMORY_POOL_inl_ |
#define __ITRON_FIXED_MEMORY_POOL_inl_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* _ITRON_Fixed_memory_pool_Allocate |
* |
* DESCRIPTION: |
* |
* This routine allocates the fixed_memory_pool associated with the specified |
* fixed_memory_pool ID from the pool of inactive fixed_memory_pools. |
* |
* Input parameters: |
* mpfid - id of fixed_memory_pool to allocate |
* status - pointer to status variable |
* |
* Output parameters: |
* returns - pointer to the fixed_memory_pool control block |
* *status - status |
*/ |
|
RTEMS_INLINE_ROUTINE ITRON_Fixed_memory_pool_Control |
*_ITRON_Fixed_memory_pool_Allocate( |
ID mpfid |
) |
{ |
return (ITRON_Fixed_memory_pool_Control *)_ITRON_Objects_Allocate_by_index( |
&_ITRON_Fixed_memory_pool_Information, |
mpfid, |
sizeof(ITRON_Fixed_memory_pool_Control) |
); |
} |
|
/* |
* _ITRON_Fixed_memory_pool_Clarify_allocation_id_error |
* |
* This function is invoked when an object allocation ID error |
* occurs to determine the specific ITRON error code to return. |
*/ |
|
#define _ITRON_Fixed_memory_pool_Clarify_allocation_id_error( _id ) \ |
_ITRON_Objects_Clarify_allocation_id_error( \ |
&_ITRON_Fixed_memory_pool_Information, (_id) ) |
|
/* |
* _ITRON_Fixed_memory_pool_Clarify_get_id_error |
* |
* This function is invoked when an object get ID error |
* occurs to determine the specific ITRON error code to return. |
*/ |
|
#define _ITRON_Fixed_memory_pool_Clarify_get_id_error( _id ) \ |
_ITRON_Objects_Clarify_get_id_error( \ |
&_ITRON_Fixed_memory_pool_Information, (_id) ) |
|
/* |
* _ITRON_Fixed_memory_pool_Free |
* |
* DESCRIPTION: |
* |
* This routine frees a fixed_memory_pool control block to the |
* inactive chain of free fixed_memory_pool control blocks. |
* |
* Input parameters: |
* the_fixed_memory_pool - pointer to fixed_memory_pool control block |
* |
* Output parameters: NONE |
*/ |
|
RTEMS_INLINE_ROUTINE void _ITRON_Fixed_memory_pool_Free ( |
ITRON_Fixed_memory_pool_Control *the_fixed_memory_pool |
) |
{ |
_ITRON_Objects_Free( |
&_ITRON_Fixed_memory_pool_Information, |
&the_fixed_memory_pool->Object |
); |
} |
|
/*PAGE |
* |
* _ITRON_Fixed_memory_pool_Get |
* |
* DESCRIPTION: |
* |
* This function maps fixed memory pool IDs to control blocks. |
* If ID corresponds to a local fixed memory pool, then it returns |
* the_fixed memory pool control pointer which maps to ID and location |
* is set to OBJECTS_LOCAL. if the fixed memory pool ID is global and |
* resides on a remote node, then location is set to OBJECTS_REMOTE, |
* and the fixed memory pool is undefined. Otherwise, location is set |
* to OBJECTS_ERROR and the fixed memory pool is undefined. |
* |
* Input parameters: |
* id - ITRON fixed memory pool ID. |
* the_location - pointer to a location variable |
* |
* Output parameters: |
* *the_location - location of the object |
*/ |
|
RTEMS_INLINE_ROUTINE ITRON_Fixed_memory_pool_Control |
*_ITRON_Fixed_memory_pool_Get ( |
ID id, |
Objects_Locations *location |
) |
{ |
return (ITRON_Fixed_memory_pool_Control *) |
_ITRON_Objects_Get( &_ITRON_Fixed_memory_pool_Information, id, location ); |
} |
|
/*PAGE |
* |
* _ITRON_Fixed_memory_pool_Is_null |
* |
* This function returns TRUE if the_fixed_memory_pool is NULL |
* and FALSE otherwise. |
* |
* Input parameters: |
* the_fixed_memory_pool - pointer to fixed_memory_pool control block |
* |
* Output parameters: |
* TRUE - if the_fixed_memory_pool is NULL |
* FALSE - otherwise |
*/ |
|
RTEMS_INLINE_ROUTINE boolean _ITRON_Fixed_memory_pool_Is_null ( |
ITRON_Fixed_memory_pool_Control *the_fixed_memory_pool |
) |
{ |
return ( the_fixed_memory_pool == NULL ); |
} |
|
/* |
* XXX insert inline routines here |
*/ |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/inline/rtems/itron/time.inl
0,0 → 1,30
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: time.inl,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#ifndef __ITRON_TIME_inl_ |
#define __ITRON_TIME_inl_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* XXX insert inline routines here |
*/ |
|
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/inline/rtems/itron/vmempool.inl
0,0 → 1,161
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: vmempool.inl,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#ifndef __ITRON_VARIABLE_MEMORY_POOL_inl_ |
#define __ITRON_VARIABLE_MEMORY_POOL_inl_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* _ITRON_Variable_memory_pool_Allocate |
* |
* DESCRIPTION: |
* |
* This routine allocates the variable memory pool associated with |
* the specified variable memory pool ID from the pool of inactive |
* variable memory pools. |
* |
* Input parameters: |
* mplid - id of variable memory pool to allocate |
* status - pointer to status variable |
* |
* Output parameters: |
* returns - pointer to the variable memory pool control block |
* *status - status |
*/ |
|
RTEMS_INLINE_ROUTINE ITRON_Variable_memory_pool_Control |
*_ITRON_Variable_memory_pool_Allocate( |
ID mplid |
) |
{ |
return (ITRON_Variable_memory_pool_Control *)_ITRON_Objects_Allocate_by_index( |
&_ITRON_Variable_memory_pool_Information, |
mplid, |
sizeof(ITRON_Variable_memory_pool_Control) |
); |
} |
|
/* |
* _ITRON_Variable_memory_pool_Clarify_allocation_id_error |
* |
* This function is invoked when an object allocation ID error |
* occurs to determine the specific ITRON error code to return. |
*/ |
|
#define _ITRON_Variable_memory_pool_Clarify_allocation_id_error( _id ) \ |
_ITRON_Objects_Clarify_allocation_id_error( \ |
&_ITRON_Variable_memory_pool_Information, (_id) ) |
|
/* |
* _ITRON_Variable_memory_pool_Clarify_get_id_error |
* |
* This function is invoked when an object get ID error |
* occurs to determine the specific ITRON error code to return. |
*/ |
|
#define _ITRON_Variable_memory_pool_Clarify_get_id_error( _id ) \ |
_ITRON_Objects_Clarify_get_id_error( &_ITRON_Variable_memory_pool_Information, (_id) ) |
|
/* |
* _ITRON_Variable_memory_pool_Free |
* |
* DESCRIPTION: |
* |
* This routine frees a variable memory pool control block to the |
* inactive chain of free variable memory pool control blocks. |
* |
* Input parameters: |
* the_variable_memory_pool - pointer to variable memory pool control block |
* |
* Output parameters: NONE |
*/ |
|
RTEMS_INLINE_ROUTINE void _ITRON_Variable_memory_pool_Free ( |
ITRON_Variable_memory_pool_Control *the_variable_memory_pool |
) |
{ |
_ITRON_Objects_Free( |
&_ITRON_Variable_memory_pool_Information, |
&the_variable_memory_pool->Object |
); |
} |
|
/*PAGE |
* |
* _ITRON_Variable_memory_pool_Get |
* |
* DESCRIPTION: |
* |
* This function maps variable memory pool IDs to variable memory pool |
* control blocks. If ID corresponds to a local variable memory pool, |
* then it returns the variable memory pool control pointer which maps |
* to ID and location is set to OBJECTS_LOCAL. if the variable memory |
* pool ID is global and resides on a remote node, then location is set |
* to OBJECTS_REMOTE, and the variable memory pool is undefined. Otherwise, |
* location is set to OBJECTS ERROR and the variable memory pool is undefined. |
* |
* Input parameters: |
* id - ITRON variable memory pool ID. |
* the_location - pointer to a location variable |
* |
* Output parameters: |
* *the_location - location of the object |
*/ |
|
RTEMS_INLINE_ROUTINE ITRON_Variable_memory_pool_Control |
*_ITRON_Variable_memory_pool_Get ( |
ID id, |
Objects_Locations *location |
) |
{ |
return (ITRON_Variable_memory_pool_Control *) _ITRON_Objects_Get( |
&_ITRON_Variable_memory_pool_Information, |
id, |
location |
); |
} |
|
/*PAGE |
* |
* _ITRON_Variable_memory_pool_Is_null |
* |
* This function returns TRUE if the_variable_memory_pool is NULL |
* and FALSE otherwise. |
* |
* Input parameters: |
* the_variable_memory_pool - pointer to variable memory pool control block |
* |
* Output parameters: |
* TRUE - if the_variable_memory_pool is NULL |
* FALSE - otherwise |
*/ |
|
RTEMS_INLINE_ROUTINE boolean _ITRON_Variable_memory_pool_Is_null ( |
ITRON_Variable_memory_pool_Control *the_variable_memory_pool |
) |
{ |
return ( the_variable_memory_pool == NULL ); |
} |
|
/* |
* XXX insert inline routines here |
*/ |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/inline/rtems/itron/msgbuffer.inl
0,0 → 1,156
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: msgbuffer.inl,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#ifndef __ITRON_MESSAGE_BUFFER_inl_ |
#define __ITRON_MESSAGE_BUFFER_inl_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* _ITRON_Message_buffer_Allocate |
* |
* DESCRIPTION: |
* |
* This routine allocates the message buffer associated with the specified |
* message buffer ID from the pool of inactive message buffers. |
* |
* Input parameters: |
* mbfid - id of message buffer to allocate |
* status - pointer to status variable |
* |
* Output parameters: |
* returns - pointer to the message buffer control block |
* *status - status |
*/ |
|
RTEMS_INLINE_ROUTINE ITRON_Message_buffer_Control |
*_ITRON_Message_buffer_Allocate( |
ID mbfid |
) |
{ |
return (ITRON_Message_buffer_Control *)_ITRON_Objects_Allocate_by_index( |
&_ITRON_Message_buffer_Information, |
mbfid, |
sizeof(ITRON_Message_buffer_Control) |
); |
} |
|
/* |
* _ITRON_Message_buffer_Clarify_allocation_id_error |
* |
* This function is invoked when an object allocation ID error |
* occurs to determine the specific ITRON error code to return. |
*/ |
|
#define _ITRON_Message_buffer_Clarify_allocation_id_error( _id ) \ |
_ITRON_Objects_Clarify_allocation_id_error( \ |
&_ITRON_Message_buffer_Information, (_id) ) |
|
/* |
* _ITRON_Message_buffer_Clarify_get_id_error |
* |
* This function is invoked when an object get ID error |
* occurs to determine the specific ITRON error code to return. |
*/ |
|
#define _ITRON_Message_buffer_Clarify_get_id_error( _id ) \ |
_ITRON_Objects_Clarify_get_id_error( &_ITRON_Message_buffer_Information, (_id) ) |
|
/* |
* _ITRON_Message_buffer_Free |
* |
* DESCRIPTION: |
* |
* This routine frees a message buffer control block to the |
* inactive chain of free message buffer control blocks. |
* |
* Input parameters: |
* the_message_buffer - pointer to message_buffer control block |
* |
* Output parameters: NONE |
*/ |
|
RTEMS_INLINE_ROUTINE void _ITRON_Message_buffer_Free ( |
ITRON_Message_buffer_Control *the_message_buffer |
) |
{ |
_ITRON_Objects_Free( |
&_ITRON_Message_buffer_Information, |
&the_message_buffer->Object |
); |
} |
|
/*PAGE |
* |
* _ITRON_Message_buffer_Get |
* |
* DESCRIPTION: |
* |
* This function maps message buffer IDs to message buffer control blocks. |
* If ID corresponds to a local message buffer, then it returns |
* the message buffer control pointer which maps to ID and location |
* is set to OBJECTS_LOCAL. if the message buffer ID is global and |
* resides on a remote node, then location is set to OBJECTS_REMOTE, |
* and the message buffer is undefined. Otherwise, location is set |
* to OBJECTS_ERROR and the message buffer is undefined. |
* |
* Input parameters: |
* id - ITRON message_buffer ID. |
* the_location - pointer to a location variable |
* |
* Output parameters: |
* *the_location - location of the object |
*/ |
|
RTEMS_INLINE_ROUTINE ITRON_Message_buffer_Control *_ITRON_Message_buffer_Get ( |
ID id, |
Objects_Locations *location |
) |
{ |
return (ITRON_Message_buffer_Control *) |
_ITRON_Objects_Get( &_ITRON_Message_buffer_Information, id, location ); |
} |
|
/*PAGE |
* |
* _ITRON_Message_buffer_Is_null |
* |
* This function returns TRUE if the_message_buffer is NULL |
* and FALSE otherwise. |
* |
* Input parameters: |
* the_message_buffer - pointer to message buffer control block |
* |
* Output parameters: |
* TRUE - if the_message_buffer is NULL |
* FALSE - otherwise |
*/ |
|
RTEMS_INLINE_ROUTINE boolean _ITRON_Message_buffer_Is_null ( |
ITRON_Message_buffer_Control *the_message_buffer |
) |
{ |
return ( the_message_buffer == NULL ); |
} |
|
/* |
* XXX insert inline routines here |
*/ |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/inline/rtems/itron/task.inl
0,0 → 1,181
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: task.inl,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#ifndef __ITRON_TASK_inl_ |
#define __ITRON_TASK_inl_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* _ITRON_Task_Allocate |
* |
* DESCRIPTION: |
* |
* This routine allocates the task associated with the specified |
* task ID from the pool of inactive tasks. |
* |
* Input parameters: |
* tskid - id of task to allocate |
* status - pointer to status variable |
* |
* Output parameters: |
* returns - pointer to the task control block |
* *status - status |
*/ |
|
RTEMS_INLINE_ROUTINE Thread_Control *_ITRON_Task_Allocate( |
ID tskid |
) |
{ |
return (Thread_Control *)_ITRON_Objects_Allocate_by_index( |
&_ITRON_Task_Information, |
tskid, |
sizeof(Thread_Control) |
); |
} |
|
/* |
* _ITRON_Task_Clarify_allocation_id_error |
* |
* This function is invoked when an object allocation ID error |
* occurs to determine the specific ITRON error code to return. |
*/ |
|
#define _ITRON_Task_Clarify_allocation_id_error( _id ) \ |
_ITRON_Objects_Clarify_allocation_id_error( \ |
&_ITRON_Task_Information, (_id) ) |
|
/* |
* _ITRON_Task_Clarify_get_id_error |
* |
* This function is invoked when an object get ID error |
* occurs to determine the specific ITRON error code to return. |
*/ |
|
#define _ITRON_Task_Clarify_get_id_error( _id ) \ |
_ITRON_Objects_Clarify_get_id_error( &_ITRON_Task_Information, (_id) ) |
|
/* |
* _ITRON_Task_Free |
* |
* DESCRIPTION: |
* |
* This routine frees a task control block to the |
* inactive chain of free task control blocks. |
* |
* Input parameters: |
* the_task - pointer to task control block |
* |
* Output parameters: NONE |
*/ |
|
RTEMS_INLINE_ROUTINE void _ITRON_Task_Free ( |
Thread_Control *the_task |
) |
{ |
_ITRON_Objects_Free( &_ITRON_Task_Information, &the_task->Object ); |
} |
|
/*PAGE |
* |
* _ITRON_Task_Get |
* |
* DESCRIPTION: |
* |
* This function maps task IDs to task control blocks. |
* If ID corresponds to a local task, then it returns |
* the_task control pointer which maps to ID and location |
* is set to OBJECTS_LOCAL. if the task ID is global and |
* resides on a remote node, then location is set to OBJECTS_REMOTE, |
* and the_task is undefined. Otherwise, location is set |
* to OBJECTS_ERROR and the_task is undefined. |
* |
* Input parameters: |
* id - ITRON task ID. |
* the_location - pointer to a location variable |
* |
* Output parameters: |
* *the_location - location of the object |
*/ |
|
RTEMS_INLINE_ROUTINE Thread_Control *_ITRON_Task_Get ( |
ID id, |
Objects_Locations *location |
) |
{ |
if ( id == 0 ) { |
_Thread_Disable_dispatch(); |
*location = OBJECTS_LOCAL; |
return _Thread_Executing; |
} |
|
return (Thread_Control *) |
_ITRON_Objects_Get( &_ITRON_Task_Information, id, location ); |
} |
|
/*PAGE |
* |
* _ITRON_Task_Is_null |
* |
* This function returns TRUE if the_task is NULL and FALSE otherwise. |
* |
* Input parameters: |
* the_task - pointer to task control block |
* |
* Output parameters: |
* TRUE - if the_task is NULL |
* FALSE - otherwise |
*/ |
|
RTEMS_INLINE_ROUTINE boolean _ITRON_Task_Is_null ( |
Thread_Control *the_task |
) |
{ |
return ( the_task == NULL ); |
} |
|
/* |
* XXX insert inline routines here |
*/ |
|
/*PAGE |
* |
* _ITRON_tasks_Priority_to_Core |
*/ |
|
RTEMS_INLINE_ROUTINE _ITRON_Task_Priority_to_Core( |
PRI ITRON_priority |
) |
{ |
return (Priority_Control) ITRON_priority; |
} |
|
/*PAGE |
* |
* _ITRON_tasks_Core_to_Priority |
*/ |
|
RTEMS_INLINE_ROUTINE _ITRON_Task_Core_to_Priority( |
Priority_Control core_priority |
) |
{ |
return (PRI) core_priority; |
} |
|
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
/inline/rtems/itron/semaphore.inl
0,0 → 1,183
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: semaphore.inl,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#ifndef __ITRON_SEMAPHORE_inl_ |
#define __ITRON_SEMAPHORE_inl_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* _ITRON_Semaphore_Allocate |
* |
* DESCRIPTION: |
* |
* This routine allocates the semaphore associated with the specified |
* semaphore ID from the pool of inactive semaphores. |
* |
* Input parameters: |
* semid - id of semaphore to allocate |
* status - pointer to status variable |
* |
* Output parameters: |
* returns - pointer to the semaphore control block |
* *status - status |
*/ |
|
RTEMS_INLINE_ROUTINE ITRON_Semaphore_Control *_ITRON_Semaphore_Allocate( |
ID semid |
) |
{ |
return (ITRON_Semaphore_Control *)_ITRON_Objects_Allocate_by_index( |
&_ITRON_Semaphore_Information, |
semid, |
sizeof(ITRON_Semaphore_Control) |
); |
} |
|
/* |
* _ITRON_Semaphore_Clarify_allocation_id_error |
* |
* This function is invoked when an object allocation ID error |
* occurs to determine the specific ITRON error code to return. |
*/ |
|
#define _ITRON_Semaphore_Clarify_allocation_id_error( _id ) \ |
_ITRON_Objects_Clarify_allocation_id_error( \ |
&_ITRON_Semaphore_Information, (_id) ) |
|
/* |
* _ITRON_Semaphore_Clarify_get_id_error |
* |
* This function is invoked when an object get ID error |
* occurs to determine the specific ITRON error code to return. |
*/ |
|
#define _ITRON_Semaphore_Clarify_get_id_error( _id ) \ |
_ITRON_Objects_Clarify_get_id_error( &_ITRON_Semaphore_Information, (_id) ) |
|
/* |
* _ITRON_Semaphore_Free |
* |
* DESCRIPTION: |
* |
* This routine frees a semaphore control block to the |
* inactive chain of free semaphore control blocks. |
* |
* Input parameters: |
* the_semaphore - pointer to semaphore control block |
* |
* Output parameters: NONE |
*/ |
|
RTEMS_INLINE_ROUTINE void _ITRON_Semaphore_Free ( |
ITRON_Semaphore_Control *the_semaphore |
) |
{ |
_ITRON_Objects_Free( &_ITRON_Semaphore_Information, &the_semaphore->Object ); |
} |
|
/*PAGE |
* |
* _ITRON_Semaphore_Get |
* |
* DESCRIPTION: |
* |
* This function maps semaphore IDs to semaphore control blocks. |
* If ID corresponds to a local semaphore, then it returns |
* the_semaphore control pointer which maps to ID and location |
* is set to OBJECTS_LOCAL. if the semaphore ID is global and |
* resides on a remote node, then location is set to OBJECTS_REMOTE, |
* and the_semaphore is undefined. Otherwise, location is set |
* to OBJECTS_ERROR and the_semaphore is undefined. |
* |
* Input parameters: |
* id - ITRON semaphore ID. |
* the_location - pointer to a location variable |
* |
* Output parameters: |
* *the_location - location of the object |
*/ |
|
RTEMS_INLINE_ROUTINE ITRON_Semaphore_Control *_ITRON_Semaphore_Get ( |
ID id, |
Objects_Locations *location |
) |
{ |
return (ITRON_Semaphore_Control *) |
_ITRON_Objects_Get( &_ITRON_Semaphore_Information, id, location ); |
} |
|
/*PAGE |
* |
* _ITRON_Semaphore_Is_null |
* |
* This function returns TRUE if the_semaphore is NULL and FALSE otherwise. |
* |
* Input parameters: |
* the_semaphore - pointer to semaphore control block |
* |
* Output parameters: |
* TRUE - if the_semaphore is NULL |
* FALSE - otherwise |
*/ |
|
RTEMS_INLINE_ROUTINE boolean _ITRON_Semaphore_Is_null ( |
ITRON_Semaphore_Control *the_semaphore |
) |
{ |
return ( the_semaphore == NULL ); |
} |
|
/* |
* _ITRON_Semaphore_Translate_core_semaphore_return_code |
* |
* This function returns a ITRON status code based on the semaphore |
* status code specified. |
* |
* Input parameters: |
* the_semaphore_status - semaphore status code to translate |
* |
* Output parameters: |
* ITRON status code - translated ITRON status code |
* |
*/ |
|
RTEMS_INLINE_ROUTINE ER _ITRON_Semaphore_Translate_core_semaphore_return_code ( |
unsigned32 the_semaphore_status |
) |
{ |
/* XXX need to be able to return "E_RLWAI" */ |
switch ( the_semaphore_status ) { |
case CORE_SEMAPHORE_STATUS_SUCCESSFUL: |
return E_OK; |
case CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT: |
return E_TMOUT; |
case CORE_SEMAPHORE_WAS_DELETED: |
return E_DLT; |
case CORE_SEMAPHORE_TIMEOUT: |
return E_TMOUT; |
case CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED: |
return E_QOVR; |
case THREAD_STATUS_PROXY_BLOCKING: |
return THREAD_STATUS_PROXY_BLOCKING; |
} |
return E_OK; /* unreached - only to remove warnings */ |
} |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/inline/rtems/itron/sysmgmt.inl
0,0 → 1,30
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: sysmgmt.inl,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#ifndef __ITRON_TIME_inl_ |
#define __ITRON_TIME_inl_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* XXX insert inline routines here |
*/ |
|
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/inline/rtems/itron/port.inl
0,0 → 1,151
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: port.inl,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#ifndef __ITRON_PORT_inl_ |
#define __ITRON_PORT_inl_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* _ITRON_Port_Allocate |
* |
* DESCRIPTION: |
* |
* This routine allocates the port associated with the specified |
* port ID from the pool of inactive ports. |
* |
* Input parameters: |
* porid - id of port to allocate |
* status - pointer to status variable |
* |
* Output parameters: |
* returns - pointer to the port control block |
* *status - status |
*/ |
|
RTEMS_INLINE_ROUTINE ITRON_Port_Control *_ITRON_Port_Allocate( |
ID porid |
) |
{ |
return (ITRON_Port_Control *)_ITRON_Objects_Allocate_by_index( |
&_ITRON_Port_Information, |
porid, |
sizeof(ITRON_Port_Control) |
); |
} |
|
/* |
* _ITRON_Port_Clarify_allocation_id_error |
* |
* This function is invoked when an object allocation ID error |
* occurs to determine the specific ITRON error code to return. |
*/ |
|
#define _ITRON_Port_Clarify_allocation_id_error( _id ) \ |
_ITRON_Objects_Clarify_allocation_id_error( \ |
&_ITRON_Port_Information, (_id) ) |
|
/* |
* _ITRON_Port_Clarify_get_id_error |
* |
* This function is invoked when an object get ID error |
* occurs to determine the specific ITRON error code to return. |
*/ |
|
#define _ITRON_Port_Clarify_get_id_error( _id ) \ |
_ITRON_Objects_Clarify_get_id_error( &_ITRON_Port_Information, (_id) ) |
|
/* |
* _ITRON_Port_Free |
* |
* DESCRIPTION: |
* |
* This routine frees a port control block to the |
* inactive chain of free port control blocks. |
* |
* Input parameters: |
* the_port - pointer to port control block |
* |
* Output parameters: NONE |
*/ |
|
RTEMS_INLINE_ROUTINE void _ITRON_Port_Free ( |
ITRON_Port_Control *the_port |
) |
{ |
_ITRON_Objects_Free( &_ITRON_Port_Information, &the_port->Object ); |
} |
|
/*PAGE |
* |
* _ITRON_Port_Get |
* |
* DESCRIPTION: |
* |
* This function maps port IDs to port control blocks. |
* If ID corresponds to a local port, then it returns |
* the_port control pointer which maps to ID and location |
* is set to OBJECTS_LOCAL. if the port ID is global and |
* resides on a remote node, then location is set to OBJECTS_REMOTE, |
* and the_port is undefined. Otherwise, location is set |
* to OBJECTS_ERROR and the_port is undefined. |
* |
* Input parameters: |
* id - ITRON port ID. |
* the_location - pointer to a location variable |
* |
* Output parameters: |
* *the_location - location of the object |
*/ |
|
RTEMS_INLINE_ROUTINE ITRON_Port_Control *_ITRON_Port_Get ( |
ID id, |
Objects_Locations *location |
) |
{ |
return (ITRON_Port_Control *) |
_ITRON_Objects_Get( &_ITRON_Port_Information, id, location ); |
} |
|
/*PAGE |
* |
* _ITRON_Port_Is_null |
* |
* This function returns TRUE if the_port is NULL and FALSE otherwise. |
* |
* Input parameters: |
* the_port - pointer to port control block |
* |
* Output parameters: |
* TRUE - if the_port is NULL |
* FALSE - otherwise |
*/ |
|
RTEMS_INLINE_ROUTINE boolean _ITRON_Port_Is_null ( |
ITRON_Port_Control *the_port |
) |
{ |
return ( the_port == NULL ); |
} |
|
/* |
* XXX insert inline routines here |
*/ |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/inline/rtems/itron/mbox.inl
0,0 → 1,151
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: mbox.inl,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#ifndef __ITRON_MAILBOX_inl_ |
#define __ITRON_MAILBOX_inl_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* _ITRON_Mailbox_Allocate |
* |
* DESCRIPTION: |
* |
* This routine allocates the mailbox associated with the specified |
* mailbox ID from the pool of inactive mailboxs. |
* |
* Input parameters: |
* mbxid - id of mailbox to allocate |
* status - pointer to status variable |
* |
* Output parameters: |
* returns - pointer to the mailbox control block |
* *status - status |
*/ |
|
RTEMS_INLINE_ROUTINE ITRON_Mailbox_Control *_ITRON_Mailbox_Allocate( |
ID mbxid |
) |
{ |
return (ITRON_Mailbox_Control *)_ITRON_Objects_Allocate_by_index( |
&_ITRON_Mailbox_Information, |
mbxid, |
sizeof(ITRON_Mailbox_Control) |
); |
} |
|
/* |
* _ITRON_Mailbox_Clarify_allocation_id_error |
* |
* This function is invoked when an object allocation ID error |
* occurs to determine the specific ITRON error code to return. |
*/ |
|
#define _ITRON_Mailbox_Clarify_allocation_id_error( _id ) \ |
_ITRON_Objects_Clarify_allocation_id_error( \ |
&_ITRON_Mailbox_Information, (_id) ) |
|
/* |
* _ITRON_Mailbox_Clarify_get_id_error |
* |
* This function is invoked when an object get ID error |
* occurs to determine the specific ITRON error code to return. |
*/ |
|
#define _ITRON_Mailbox_Clarify_get_id_error( _id ) \ |
_ITRON_Objects_Clarify_get_id_error( &_ITRON_Mailbox_Information, (_id) ) |
|
/* |
* _ITRON_Mailbox_Free |
* |
* DESCRIPTION: |
* |
* This routine frees a mailbox control block to the |
* inactive chain of free mailbox control blocks. |
* |
* Input parameters: |
* the_mailbox - pointer to mailbox control block |
* |
* Output parameters: NONE |
*/ |
|
RTEMS_INLINE_ROUTINE void _ITRON_Mailbox_Free ( |
ITRON_Mailbox_Control *the_mailbox |
) |
{ |
_ITRON_Objects_Free( &_ITRON_Mailbox_Information, &the_mailbox->Object ); |
} |
|
/*PAGE |
* |
* _ITRON_Mailbox_Get |
* |
* DESCRIPTION: |
* |
* This function maps mailbox IDs to mailbox control blocks. |
* If ID corresponds to a local mailbox, then it returns |
* the_mailbox control pointer which maps to ID and location |
* is set to OBJECTS_LOCAL. if the mailbox ID is global and |
* resides on a remote node, then location is set to OBJECTS_REMOTE, |
* and the_mailbox is undefined. Otherwise, location is set |
* to OBJECTS_ERROR and the_mailbox is undefined. |
* |
* Input parameters: |
* id - ITRON mailbox ID. |
* the_location - pointer to a location variable |
* |
* Output parameters: |
* *the_location - location of the object |
*/ |
|
RTEMS_INLINE_ROUTINE ITRON_Mailbox_Control *_ITRON_Mailbox_Get ( |
ID id, |
Objects_Locations *location |
) |
{ |
return (ITRON_Mailbox_Control *) |
_ITRON_Objects_Get( &_ITRON_Mailbox_Information, id, location ); |
} |
|
/*PAGE |
* |
* _ITRON_Mailbox_Is_null |
* |
* This function returns TRUE if the_mailbox is NULL and FALSE otherwise. |
* |
* Input parameters: |
* the_mailbox - pointer to mailbox control block |
* |
* Output parameters: |
* TRUE - if the_mailbox is NULL |
* FALSE - otherwise |
*/ |
|
RTEMS_INLINE_ROUTINE boolean _ITRON_Mailbox_Is_null ( |
ITRON_Mailbox_Control *the_mailbox |
) |
{ |
return ( the_mailbox == NULL ); |
} |
|
/* |
* XXX insert inline routines here |
*/ |
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/inline/rtems/itron/Makefile.am
0,0 → 1,25
## |
## $Id: Makefile.am,v 1.2 2001-09-27 11:59:13 chris Exp $ |
## |
|
AUTOMAKE_OPTIONS = foreign 1.4 |
|
if INLINE |
I_FILES = eventflags.inl fmempool.inl intr.inl mbox.inl msgbuffer.inl \ |
network.inl port.inl semaphore.inl sysmgmt.inl task.inl time.inl \ |
vmempool.inl |
|
noinst_HEADERS = $(I_FILES) |
|
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/itron \ |
$(I_FILES:%=$(PROJECT_INCLUDE)/rtems/itron/%) |
|
$(PROJECT_INCLUDE)/rtems/itron: |
@$(mkinstalldirs) $@ |
$(PROJECT_INCLUDE)/rtems/itron/%.inl: %.inl |
$(INSTALL_DATA) $< $@ |
endif |
|
all-local: $(PREINSTALL_FILES) |
|
include $(top_srcdir)/../../../../automake/local.am |
/inline/rtems/itron/network.inl
0,0 → 1,30
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: network.inl,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#ifndef __ITRON_NETWORK_inl_ |
#define __ITRON_NETWORK_inl_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* XXX insert inline routines here |
*/ |
|
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|
/inline/rtems/itron/intr.inl
0,0 → 1,30
/* |
* COPYRIGHT (c) 1989-1999. |
* On-Line Applications Research Corporation (OAR). |
* |
* The license and distribution terms for this file may be |
* found in the file LICENSE in this distribution or at |
* http://www.OARcorp.com/rtems/license.html. |
* |
* $Id: intr.inl,v 1.2 2001-09-27 11:59:13 chris Exp $ |
*/ |
|
#ifndef __ITRON_INTERRUPT_inl_ |
#define __ITRON_INTERRUPT_inl_ |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* |
* XXX insert inline routines here |
*/ |
|
|
#ifdef __cplusplus |
} |
#endif |
|
#endif |
/* end of include file */ |
|