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

📄 distobjlibp.h

📁 VxWorks源码
💻 H
字号:
/* distObjLibP.h - distributed objects library header file *//* Copyright 1984-1992 Wind River Systems, Inc. *//*modification history--------------------01d,28may99,drm  Changing DIST_OBJ_VERIFY to check that the ID is a                 distributed message queue ID.01c,24may99,drm  added vxfusion to VxFusion related includes01b,08may98,ur   removed 8 bit node id restriction01a,12Jun97,ur   written.*/#ifndef __INCdistObjLibPh#define __INCdistObjLibPh#include "vxWorks.h"#include "hashLib.h"#include "vxfusion/distLib.h"#include "private/distObjTypeP.h"#ifdef __cplusplusextern "C" {#endif#define distInqLockInit()	semBInit (&distInqLock, SEM_Q_PRIORITY, SEM_FULL)#define distInqLock()		semTake (&distInqLock, WAIT_FOREVER)#define distInqUnlock()		semGive (&distInqLock)#define DIST_INQ_HASH_TBL_SZ_LOG2	7	/* 2^7 = 128 */#define DIST_MSG_Q_INQ				DIST_ID_MSG_Q_SERV#define DIST_MSG_Q_GRP_INQ			DIST_ID_MSG_Q_GRP_SERV#define TBL_IX_TO_DIST_OBJ_ID(tblIx) \	((DIST_OBJ_ID) TBL_IX_TO_DIST_MSG_Q_ID (tblIx))#define DIST_MSG_Q_GRP_ID_TO_DIST_OBJ_ID(grpId) \	((DIST_OBJ_ID) DIST_MSG_Q_GRP_ID_TO_DIST_MSG_Q_ID (grpId))#define DIST_OBJ_ID_TO_DIST_MSG_Q_ID(objId) \	((DIST_MSG_Q_ID) (objId))#define DIST_MSG_Q_ID_TO_DIST_OBJ_ID(dMsgQId) \	((DIST_OBJ_ID) (dMsgQId))#define DIST_OBJ_VERIFY(msgQId)	 (ID_IS_DISTRIBUTED (msgQId) ? OK : ERROR )#define DIST_OBJ_TYPE_GRP		0x1#define IS_DIST_OBJ_LOCAL(pObjNode) \	((pObjNode)->objNodeReside == distNodeLocalGetId())typedef uint32_t		DIST_OBJ_ID;		/* DIST_OBJ_ID */typedef struct								/* DIST_OBJ_NODE */	{	DIST_NODE_ID		objUniqReside;		/* node where object resides */	DIST_OBJ_ID			objUniqId;			/* id of object */	/* Note: <objNodeReside> is only valid, if <objNodeId> is a non-group id */	} DIST_OBJ_UNIQ_ID;typedef struct								/* DIST_OBJ_NODE */	{	u_long				objNodeVerify;		/* for verification */	int					objNodeType;		/* type of object */	DIST_OBJ_UNIQ_ID	objNodeUniqId;		/* system unique object id */	} DIST_OBJ_NODE;#define objNodeReside	objNodeUniqId.objUniqReside#define objNodeId		objNodeUniqId.objUniqIdtypedef uint32_t		DIST_INQ_ID;		/* DIST_INQ_ID */typedef int				DIST_INQ_TYPE;		/* DIST_INQ_TYPE */typedef struct							/* DIST_INQ */	{	HASH_NODE		inqHNode;	DIST_INQ_ID		inqId;	DIST_INQ_TYPE	inqType;	} DIST_INQ;#if defined(__STDC__) || defined(__cplusplus)DIST_OBJ_NODE	*distObjNodeGet (void);STATUS			distInqInit (int hashTblSzLog2);DIST_INQ_ID		distInqRegister (DIST_INQ *pInqRegister);DIST_INQ		*distInqFind (DIST_INQ_ID InqIdFind);DIST_INQ_ID		distInqGetId (DIST_INQ *pInqGetIdOf);void			distInqCancel (DIST_INQ *pInqCancel);#else /* __STDC__ */DIST_OBJ_NODE	*distObjNodeGet ();STATUS			distInqInit ();DIST_INQ_ID		distInqRegister ();DIST_INQ		*distInqFind ();DIST_INQ_ID		distInqGetId ();void			distInqCancel ();#endif /* __STDC__ */#ifdef __cplusplus}#endif#endif	/* __INCdistObjLibPh */

⌨️ 快捷键说明

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