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

📄 l3c_def.h

📁 phs 源代码 小灵通协议源代码 phs source code
💻 H
字号:
/************************************************************************/
/*																		*/
/*		NAME		l3.h     */
/*		FUNC						        */
/*                                                                      */
/************************************************************************/
/************************************************************************/
/*                                                                      */
/*		NUMBER		1			                */
/*		CALL		--                                      */
/*		PARAM		--                                      */
/*		FUNC		l3 common header                        */
/*		RETURN		--                                      */
/*		GLOBAL		--                                      */
/*                                                                      */
/************************************************************************/

#define		L3DEL		0				/* other part		*/
#define		L3CC		1				/* CC part	*/
#define		L3MM		2				/* MM part				*/
#define		L3RT		3				/* RT part			*/
#define		L3COM		4				/* common part			*/
#define		L3C_SCNT	4				/* l3 state count			*/


#define		L3C_ALL_CNT	2				/* event count in all state*/

/* event count from L2 layer */
#define		L3C_L2_OPN	2			/* at P0(ST_OPN	) state	*/
#define		L3C_L2_SWT	3			/* at P1(ST_SET_WT)  state*/
#define		L3C_L2_SET	4			/* at P2(ST_SET	) state	*/
#define		L3C_L2_FWT	3			/* at P3(ST_FRE_WT) state*/

/* event count from high layer*/
#define		L3C_L3_OPN	2				/* at P0(ST_OPN	) state	*/
#define		L3C_L3_SWT	0				/* at P1(ST_SET_WT)  state*/
#define		L3C_L3_SET	2				/* at P2(ST_SET	) state	*/
#define		L3C_L3_FWT	0				/* at P3(ST_FRE_WT) state*/

#ifdef SIMU_ON_PC     /*zch for protocol simulator */
#pragma pack( push, l3cstucture,1)
#endif

#ifdef _ARM607_
__packed
#endif
typedef struct
{/* l3 state machine struct	*/
	U2			evt_cod;	/* event code	*/
	void		(*fnc_adr)(void);		/* function	*/
} L3C_FNC_TBL;

#ifdef _ARM607_
__packed
#endif
typedef struct
{	/* l3 main function struct	*/
	U1			prg_bnk;	/* not used		*/
#ifdef _ON_SANYO_
	U1			(*prg_adr)(void);
#else
	U1			(*prg_adr)(void*);		/* l3 part main function	*/
#endif
} L3_PRG_TBL;

#ifdef _ARM607_
__packed
#endif
typedef struct
{/* l3 system struct	*/
	U2			in_evt[8];	/* input data 		*/
	U2			tsk_id;		/* task id			*/
	U2			out_evt[8];	/* output data		*/
	L3C_FNC_TBL	*sts_ptr;		/* state machine pointer */
	U1			sts_cnt;	/* event count	*/
} L3C_SYSWRK;

#ifdef _ARM607_
__packed
#endif
typedef struct
{
	U1			dmy[L3_MSGDMY];
	U1			len;			/* messsage data length		*/
	U1			dat[L3_MSGSZ];		/* message data		*/
} L3C_MSGDAT;

#ifdef _ARM607_
__packed
#endif
typedef struct
{/* L3Dl struct*/
	U2			evt_cod;		/* event code */
	U2			dl_typ;			/* channel id */
	U2			dl_id;			/* time slot		*/
	U2			dl_sou;			/* need transfer confirm flag	*/
	L3C_MSGDAT	*msg_adr;			/* message data pointer*/
	U2			add_dat[2];		/* addition info	*/
} L3C_DLEVT;

#ifdef _ARM607_
__packed
#endif
typedef struct
{/* L3MNG struct*/
	U2	evt_cod;			/* event code	*/
	U2	ch_id;				/* message type	*/
	U1	msg_dat[6];			/*message data	*/
	U1	dmy[6];
} L3C_PHEVT;

#ifdef _ON_SANYO_
#define		SYS_WORK	((L3C_SYSWRK *)Sys_work)
#else
#define		SYS_WORK	((L3C_SYSWRK *)&l3c_syswork)
#endif
#define		IN_DLDEVT	((L3C_DLEVT *)SYS_WORK->in_evt)
#define		OUT_DLDEVT	((L3C_DLEVT *)SYS_WORK->out_evt)
#define		IN_PHDEVT	((L3C_PHEVT *)SYS_WORK->in_evt)
#define		OUT_PHDEVT	((L3C_PHEVT *)SYS_WORK->out_evt)
#define		IN_MSGDAT	((L3C_MSGDAT *)IN_DLDEVT->msg_adr)
#define		OUT_MSGDAT	((L3C_MSGDAT *)OUT_DLDEVT->msg_adr)

#ifdef SIMU_ON_PC     /*zch for protocol simulator */
#pragma pack( pop, l3cstucture,1)
#endif

/********************/
/* function */
/********************/
#ifdef _ON_SANYO_
void	l3_main(void);
#else
void	l3_main(void*);
#endif
void	l3_init(void);

#ifdef _ON_SANYO_
U1 	L3cMain(void);
#else
U1 	L3cMain(void*);
#endif
void	L3cDataLinkReq(void);
void	L3cDataLinkFreeReq(void);
void	L3cDataLinkFreeReqAtP0(void);
void	L3cDataLinkInd(void);
void	L3cDataLinkFreeInd(void);
void	L3cDataLinkFreeIndAtP1(void);
void	L3cDldtrs(void);
void	L3cDldtds(void);
void	L3cPhdtds(void);
void	L3cInitReq(void);
void	L3cDlFree(void);
void	L3cMdlErr(void);

#ifdef _ON_SANYO_
U1	L3dMain(void);
#else
U1	L3dMain(void*);
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -