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

📄 ua_vms.h

📁 RADIUS协议的认证计费服务
💻 H
字号:
#ifndef UA_vms_h/*E1* UA_vms * * vms.h - VMS specific definitions (UA) * Last modified 16-Sep-1987/chj * * Common VMS header file.  Automatically includes some useful * VMS definition files, and, typedefs things for a VAX. *2*  includesE*//*E+3* UA */#include ssdef			/* system service status codes */#include stsdef			/* status code definitions *//*E-*//*E+3* DEC * DEC supplied definition modules that are always included * are located in default C text library on SYS$LIBRARY */#include descrip		/* descriptor definitions *//*E-*//*E+2* typedefs * data types for VMS */typedef unsigned int QUAD[2];	/* VAX quadword */typedef unsigned int LONG;	/* vax longword */typedef unsigned int ADDRESS;	/* address quantity */typedef unsigned short int WORD;/* 16 bit word */typedef unsigned char BYTE;	/* 8 bits */typedef unsigned char LOGICAL;	/* cheapest */typedef int     (*INTFUNC) ();	/* pointer to integer function */typedef struct _item{	short           length;	/* length of data buffer */	short           code;	/* item code */	BYTE           *buffer;	/* data buffer */	int            *retlen;	/* returned item length */}               ITEM;extern unsigned int zero;extern unsigned int one;extern unsigned int blank;/*E-*//*E2* macros * Handy macros for doing things to VMS data. * * iferr(exp)		1 if exp represents error condition * ifsucc(exp)		1 if exp represents success * inhibit_msg(code)	VMS status code with message output inhibited * sbit(pos,base)	sets a bit to 1 * cbit(pos,base)	clears a bit (sets bit to 0) * tbit(pos,base)	returns a bit value (1 or 0) * * dsc$descriptor_d(name) initialized (to NIL) dynamic string *3* DEC_macrosE*//*E+*/#define $VMS_STATUS_CODE(code) 	(((code) & STS$M_CODE) >> STS$V_CODE)#define $VMS_STATUS_COND_ID(code) (((code) & STS$M_COND_ID) >> STS$V_COND_ID)#define $VMS_STATUS_CONTROL(code)  (((code) & STS$M_CONTROL) >> STS$V_CONTROL)#define $VMS_STATUS_CUST_DEF(code)  (((code) & STS$M_CUST_DEF) >> STS$V_CUST_DEF)#define $VMS_STATUS_FAC_NO(code)  (((code) & STS$M_FAC_NO) >> STS$V_FAC_NO)#define $VMS_STATUS_FAC_SP(code)  (((code) & STS$M_FAC_SP) >> STS$V_FAC_SP)#define $VMS_STATUS_INHIB_MSG(code) (((code) & STS$M_INHIB_MSG) >> STS$V_INHIB_MSG)#define $VMS_STATUS_MSG_NO(code)  (((code) & STS$M_MSG_NO) >> STS$V_MSG_NO)#define $VMS_STATUS_SEVERITY(code)  (((code) & STS$M_SEVERITY) >> STS$V_SEVERITY)#define $VMS_STATUS_SUCCESS(code)  (((code) & STS$M_SUCCESS) >> STS$V_SUCCESS)/*E-*//*E3* UA_macrosE*//*E+*/#define iferr(s) if (!($VMS_STATUS_SUCCESS(s)))#define _iferr(s) if (!($VMS_STATUS_SUCCESS(s)))#define ifsucc(s) if (($VMS_STATUS_SUCCESS(s)))#define _ifsucc(s) if (($VMS_STATUS_SUCCESS(s)))#define inhibit_msg(c) (c | STS$M_INHIB_MSG)#define _inhibit_msg(c) (c | STS$M_INHIB_MSG)#define	error(s) (!($VMS_STATUS_SUCCESS(s)))#define	_error(s) (!($VMS_STATUS_SUCCESS(s)))#define success(s) (($VMS_STATUS_SUCCESS(s)))#define _success(s) (($VMS_STATUS_SUCCESS(s)))#define sbit(p,b) (lib$insv(&1,&p,&1,b))	/* set a bit */#define _sbit(p,b) (lib$insv(&1,&p,&1,b))	/* set a bit */#define cbit(p,b) (lib$insv(&0,&p,&1,b))	/* clear a bit */#define _cbit(p,b) (lib$insv(&0,&p,&1,b))	/* clear a bit */#define tbit(p,b) (lib$extv(&p,&1,b))	/* test a bit */#define _tbit(p,b) (lib$extv(&p,&1,b))	/* test a bit */#define dsc$descriptor_d(a) struct dsc$descriptor_s a = \	{0,DSC$K_DTYPE_T,DSC$K_CLASS_D,0}#define _zero(s,d)	LIB$MOVC5(&zero,&zero,&zero,&s,d)#define	_copy(l, s, d) \			LIB$MOVC5(&l, s, &zero, &l, d)#define	_zcopy(sl,sb,dl,db)	LIB$MOVC5(&sl,sb,&zero,&dl,db)#define	_bcopy(sl,sb,dl,db)	LIB$MOVC5(&sl,sb,&blank,&dl,db)#define	_xcopy(x,sl,sb,dl,db)	LIB$MOVC5(&sl,sb,&x,&dl,db)/* macro definition for converting string to descriptor */#define str2desc( desc , string ) \    { desc.dsc$w_length = strlen(string); \      desc.dsc$a_pointer = string; \      desc.dsc$b_class = DSC$K_CLASS_S; \      desc.dsc$b_dtype = DSC$K_DTYPE_T; \    }/* macro for converting descriptor to string */#define desc2str( string , desc ) \    { _copy(desc.dsc$w_length, desc.dsc$a_pointer, string); \      string[desc.dsc$w_length] = '\0'; \    }/*E-*//*E+2* defines * useful definitions */#define	TRUE	1#define	FALSE	0#define	YES	1#define	NO	0#define	NIL	0/*E-*/#define	UA_vms_h	1	/* TRUE when UA_vms is included */#endif				/* ifndef UA_vms *//* end vms.h */

⌨️ 快捷键说明

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