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

📄 sca.h

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 H
📖 第 1 页 / 共 2 页
字号:
#define	PDASE		0xA4000000	/* PD severe error mask		     */#define	PDFE		0xA5000000	/* PD fatal error mask		     */#define	PPDI		0x60000000	/* PPD informational event mask	     */#define	PPDW		0x61000000	/* PPD warning condition mask	     */#define	PPDAW		0xE1000000	/* PPD warning( always->console) mask*/#define	PPDRE		0x62000000	/* PPD remote error mask	     */#define	PPDE		0x63000000	/* PPD error mask		     */#define	PPDSE		0x64000000	/* PPD severe error mask	     *//* SCA Data Structure Field Definitions. */typedef struct	_cbq	{		/* CB Queue Pointers		     */    struct _cbq	*flink;			/* Forward queue link		     */    struct _cbq	*blink;			/* Backward queue link		     */} cbq;typedef struct _msibq {			/* MSI Buffer Queue Pointers	     */    struct _msibq *flink;		/* Forward queue link		     */    struct _msibq *blink;		/* Backward queue link		     */} msibq;typedef struct	_pbq	{		/* PB Queue Pointers		     */    struct _pbq *flink;			/* Forward queue link		     */    struct _pbq *blink;			/* Backward queue link		     */} pbq;typedef struct	_pccbq	{		/* PCCB Queue Pointers		     */    struct _pccbq *flink;		/* Forward queue link		     */    struct _pccbq *blink;		/* Backward queue link		     */} pccbq;typedef struct	_sbq	{		/* SB Queue Pointers		     */    struct _sbq *flink;			/* Forward queue link		     */    struct _sbq *blink;			/* Backward queue link		     */} sbq;typedef struct _scaaddr	{		/* System Addresses		     */    u_short	low;			/*  Low order word		     */    u_short	mid;			/*  Middle order word		     */    u_short	hi;			/*  High order word		     */} scaaddr;typedef struct _c_scaaddr	{	/* System Addresses( Compacted )     */    u_char	val[ 6 ];} c_scaaddr;typedef struct _siibq {			/* SIIBUF Queue Pointers	     */    struct _siibq *flink;		/* Forward queue link		     */    struct _siibq *blink;		/* Backward queue link		     */} siibq;typedef struct	_u_dodec {		/* 12 Byte Field		     */    u_long	val[ 3 ];} u_dodec;typedef struct	_u_quad {		/* 8 Byte Field			     */    u_long	val[ 2 ];} u_quad;typedef	struct _uqbq	{		/* UQ buffer Queue Pointers 	     */    struct _uqbq *flink;		/* Forward queue link 		     */    struct _uqbq *blink;		/* Backward queue link		     */} uqbq;					/* Generic Vaxport Buffer Header     */typedef	struct	_gvpbq	{		/*  Queue Pointers		     */    struct _gvpbq *flink;		/* Forward queue link		     */    struct _gvpbq *blink;		/* Backward queue link		     */} gvpbq;/* SCA Data Structure Definitions. */					/* Console Logging Severity Level    */typedef struct _clstab {		/*  Table Entry			     */    u_long	   max_code;		/* Maximum code in formating table   */    struct _clftab *ftable;		/* Address of formating table	     */} CLSTAB;					/* Console Logging Formating Table   */typedef struct _clftab {		/*  Entry			     */    u_long	fcode;			/* Format code			     */    char	*msg;			/* Console logging message	     */} CLFTAB;/* SCA Macros. */					/* Event Code Manipulation Macros					 */#define	Ecode( event )		( event & ECODE )#define	Eseverity( event )	(( event & ESEVERITY ) >> ES_SHIFT )#define	Esevmod( event )		(( event & ESEVMOD ) >> ESM_SHIFT )#define	Eclass( event )		(( event & ECLASS ) >> EC_SHIFT )#define	Esubclass( event )	(( event & ESUBCLASS ) >> ESC_SHIFT )#define	Mask_esevmod( event )	( event & ~ESEVMOD )#define	Set_lpc_event( event )	{					\    event |= ( ESM_LPC << ESM_SHIFT );					\}#define	Set_pc_event( event )	{					\    event |= ( ESM_PC << ESM_SHIFT );					\}#define	Test_cloverride( event )	( event & ECLALWAYS )#define	Test_lpc_event( event )	( Esevmod( event ) == ESM_LPC )#define	Test_scs_event( event )	( Eclass( event ) == EC_SCS )#define	Test_pd_event( event )						\    ( Eclass( event ) && Esubclass( event ) == ESC_PD )#define	Test_ppd_event( event )	( Eclass( event ) && Esubclass( event ))#define	Test_pc_event( event )	( Esevmod( event ) == ESM_PC )#define	Test_spc_event( event )						\    ( Test_pc_event( event ) && Eseverity( event ) == ES_SE )					/* Field Manipulation Macros					 */#define	U_long( target )	*( u_long * )( &target )#define	U_short( target )	*( u_short * )( &target )					/* Queue Macros					 */#define	Init_queue( q ) {						\    ( q ).flink = &( q );						\    ( q ).blink = &( q );						\}#define	Remove_entry( entry ) {						\    ( void )remque( &entry );						\}#define	Insert_entry( entry, queue ) {					\    ( void )insque( &entry, ( queue ).blink );				\}					/* Structure Manipulation Macros				         */#define	Comp_name( name1, name2 )					\    ( bcmp( name1, name2, NAME_SIZE ) == 0 )#define	Comp_node( node1, node2 )					\    ( U_long( node1[ 0 ]) == U_long( node2[ 0 ]) &&			\      U_long( node1[ 4 ]) == U_long( node2[ 4 ]))#define	Comp_quad( q1, q2 )						\    ((( u_quad * )&q1 )->val[ 0 ] == (( u_quad * )&q2 )->val[ 0 ] &&	\     (( u_quad * )&q1 )->val[ 1 ] == (( u_quad * )&q2 )->val[ 1 ])#define	Comp_scaaddr( addr1, addr2 )					\    ( Scaaddr_low( addr1 ) == Scaaddr_low( addr2 ) &&			\      Scaaddr_mid( addr1 ) == Scaaddr_mid( addr2 ) &&			\      Scaaddr_hi( addr1 ) == Scaaddr_hi( addr2 ))#define	Move_bhandle( from, to ) {					\    *( u_long * )&to = *( u_long * )&from;				\    *(( u_long * )&to + 1 ) = *(( u_long * )&from + 1 );		\    *(( u_long * )&to + 2 ) = *(( u_long * )&from + 2 );		\}#define	Move_connid( from, to )		U_long( to ) = U_long( from );#define	Move_data( from, to )		( void )bcopy( from, to, DATA_SIZE );#define	Move_name( from, to )		( void )bcopy( from, to, NAME_SIZE );#define	Move_node( from, to ) {						\    U_long( to[ 0 ]) = U_long( from[ 0 ]);				\    U_long( to[ 4 ]) = U_long( from[ 4 ]);				\}#define	Move_quad( from, to ) {						\    (( u_quad * )&to )->val[ 0 ] = (( u_quad * )&from )->val[ 0 ];	\    (( u_quad * )&to )->val[ 1 ] = (( u_quad * )&from )->val[ 1 ];	\}#define	Move_scaaddr( from, to ) {					\    Scaaddr_low( to ) = Scaaddr_low( from );				\    Scaaddr_mid( to ) = Scaaddr_mid( from );				\    Scaaddr_hi( to ) = Scaaddr_hi( from );				\}#define	Scaaddr_hi( addr )	(( scaaddr * )&addr )->hi#define	Scaaddr_low( addr )	(( scaaddr * )&addr )->low#define	Scaaddr_mid( addr )	(( scaaddr * )&addr )->mid#define	Test_bhandle( handle ) 						\    ( *( u_long * )&handle == 0		&&				\      *(( u_long * )&handle + 1 ) == 0  &&				\      *(( u_long * )&handle + 2 ) == 0 )#define	Test_connid( target )	( target.index == 0 && target.seq_num == 0 )#define	Test_scaaddr( addr )						\    ((( scaaddr * )&addr )->low == 0 &&					\     (( scaaddr * )&addr )->mid == 0 &&					\     (( scaaddr * )&addr )->hi == 0 )#define	Zero_bhandle( bh ) {						\    U_long( bh ) = 0;							\    *(( u_long * )&bh + 1 ) = 0;					\    *(( u_long * )&bh + 2 ) = 0;					\}#define Zero_connid( target ) {						\    target.index = 0;							\    target.seq_num = 0;							\}#define	Zero_scaaddr( addr ) {						\    Scaaddr_low( addr ) = 0;						\    Scaaddr_mid( addr ) = 0;						\    Scaaddr_hi( addr ) = 0;						\}					/* Miscellaneous Macros					 */#define	Ctrl_from_name( name )						\    ((*(( u_char * )&name + 3 ) == ' ' || *(( u_char * )&name + 3 ) == '\0')\	? (*(( u_char * )&name + 2 ) - '0' ) 				\	: (((*(( u_char * )&name + 2 ) - '0' ) > 9 ) 			\	    ? (*(( u_char * )&name + 3 ) - '0' )			\	    : (((*(( u_char * )&name + 2 ) - '0' ) * 10 ) +		\	        (*(( u_char * )&name + 3 ) - '0' ))))#define	Ctrl_from_num( ns, n )					        \	(u_long)(*(u_char *)ns) |					\	(u_long)(*((u_char *)ns+1) << 8) |				\	(u_long)(*((u_char *)ns+2) << 16) | 				\		     (( u_long )((*(( u_char * )ns + 2 ) == ' ' )       \				     ? (( n < 10 )			\				    ? (( n + '0' ) << 16 )		\				    : (((( n / 10 ) + '0' ) << 16 ) |	\				       ((( n % 10 ) + '0' ) << 24 )))	\				     : (( n + '0' ) << 24 )))#define	Align_name(ns)					        	\	((u_long)(*(u_char *)ns) |					\	(u_long)(*((u_char *)ns+1) << 8) |				\	(u_long)(*((u_char *)ns+2) << 16) | 				\	(u_long)(*((u_char *)ns+3) << 24))#define	Kfork( fbp, routine, parm ) {					\    ( fbp )->arg = ( caddr_t )parm;					\    ( fbp )->func = ( void (*)() )routine;				\    ( void )ksched( fbp );						\}#define	Incr_seq_num( target )	{					\    if( ++target.seq_num == 0 ) {					\	++target.seq_num;						\    }									\}/* IPL_SCS = 21, 0x15; splbio = 0x15; for mips block out device intr. */#define  Splscs()	splbio()

⌨️ 快捷键说明

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