SYSDCLEXH       - SYSTEM SERVICES CANCEL AND DECLARE EXIT HANDL  21-AUG-1978 23:38:16   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      41  CANCEL EXIT HANDLER

   (1)      93  DECLARE EXIT HANDLER

   (1)     134  GET EXIT CONTROL BLOCK PARAMETERS

SYSDCLEXH       - SYSTEM SERVICES CANCEL AND DECLARE EXIT HANDL  21-AUG-1978 23:38:16   VAX-11 MACRO X0.3-11               Page   1

01                                                                                                                               (1)



                                     0000     1 	.TITLE	SYSDCLEXH - SYSTEM SERVICES CANCEL AND DECLARE EXIT HANDLER

                                     0000     2 	.IDENT	/01/

                                     0000     3  

                                     0000     4 ;

                                     0000     5 ; COPYRIGHT (C) 1977

                                     0000     6 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

                                     0000     7 ;

                                     0000     8 ; THIS SOFTWARE IS FURNISHED UNDER  A LICENSE FOR USE ONLY  ON  A

                                     0000     9 ; SINGLE COMPUTER SYSTEM AND MAY BE  COPIED ONLY WITH  THE INCLU-

                                     0000    10 ; SION OF  THE  ABOVE  COPYRIGHT NOTICE.  THIS SOFTWARE,  OR  ANY

                                     0000    11 ; OTHER COPIES THEREOF, MAY NOT BE  PROVIDED  OR  OTHERWISE  MADE

                                     0000    12 ; AVAILABLE TO ANY OTHER PERSON EXCEPT  FOR  USE  ON  SUCH SYSTEM

                                     0000    13 ; AND TO  ONE WHO AGREES  TO  THESE LICENSE  TERMS.  TITLE TO AND

                                     0000    14 ; OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.

                                     0000    15 ;

                                     0000    16 ; THE INFORMATION IN THIS SOFTWARE  IS  SUBJECT TO CHANGE WITHOUT

                                     0000    17 ; NOTICE AND SHOULD NOT BE CONSTRUED  AS  A COMMITMENT BY DIGITAL

                                     0000    18 ; EQUIPMENT CORPORATION.

                                     0000    19 ;

                                     0000    20 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS

                                     0000    21 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

                                     0000    22 ;

                                     0000    23 ; D. N. CUTLER 10-AUG-76

                                     0000    24 ;

                                     0000    25 ; SYSTEM SERVICES CANCEL AND DECLARE EXIT HANDLER

                                     0000    26 ;

                                     0000    27 ; MACRO LIBRARY CALLS

                                     0000    28 ;

                                     0000    29  

                                     0000    30 	$PSLDEF				;DEFINE PROCESSOR STATUS FIELDS

                                     0000    31 	$SSDEF				;DEFINE SYSTEM STATUS VALUES

                                     0000    32  

                                     0000    33 ;

                                     0000    34 ; LOCAL SYMBOLS

                                     0000    35 ;

                                     0000    36 ; ARGUMENT LIST OFFSET DEFINITIONS

                                     0000    37 ;

                                     0000    38  

                           00000004  0000    39 DESBLK=4				;EXIT CONTROL BLOCK ADDRESS

SYSDCLEXH       - SYSTEM SERVICES CANCEL AND DECLARE EXIT HANDL  21-AUG-1978 23:38:16   VAX-11 MACRO X0.3-11               Page   2

01              CANCEL EXIT HANDLER                                                                                              (1)



                                     0000    41 	.SBTTL	CANCEL EXIT HANDLER

                                     0000    42 ;+

                                     0000    43 ; EXE$CANEXH - CANCEL EXIT HANDLER

                                     0000    44 ;

                                     0000    45 ; THIS SERVICE PROVIDES THE CAPABILITY TO DELETE AN EXIT CONTROL BLOCK OR

                                     0000    46 ; ALL EXIT CONTROL BLOCKS FROM THE EXIT HANDLER LIST FOR THE CALLING ACCESS

                                     0000    47 ; MODE.

                                     0000    48 ;

                                     0000    49 ; INPUTS:

                                     0000    50 ;

                                     0000    51 ;	DESBLK(AP) = ADDRESS OF EXIT CONTROL BLOCK (ZERO IMPLIES ALL).

                                     0000    52 ;

                                     0000    53 ;	R4 = CURRENT PROCESS PCB ADDRESS.

                                     0000    54 ;

                                     0000    55 ; OUTPUTS:

                                     0000    56 ;

                                     0000    57 ;	R0 LOW BIT CLEAR INDICATES FAILURE TO CANCEL EXIT HANDLER.

                                     0000    58 ;

                                     0000    59 ;		R0 = SS$_ACCVIO - FIRST LONGWORD OF EXIT CONTROL BLOCK

                                     0000    60 ;			CANNOT BE READ BY THE CALLING ACCESS MODE, FIRST

                                     0000    61 ;			LONGWORD OF A EXIT CONTROL BLOCK IN THE LIST CANNOT

                                     0000    62 ;			BE READ BY THE CALLING ACCESS MODE, OR THE FIRST

                                     0000    63 ;			LONGWORD OF THE PREVIOUS EXIT CONTROL BLOCK CANNOT

                                     0000    64 ;			BE WRITTEN.

                                     0000    65 ;

                                     0000    66 ;		R0 = SS$_NOHANDLER - SPECIFIED HANDLER CANNOT BE FOUND IN

                                     0000    67 ;			EXIT HANLDER CONTROL BLOCK LIST.

                                     0000    68 ;

                                     0000    69 ;	R0 LOW BIT SET INDICATES SUCCESSFUL COMPLETION.

                                     0000    70 ;

                                     0000    71 ;		R0 = SS$_NORMAL - NORMAL COMPLETION.

                                     0000    72 ;-

                                     0000    73  

                                     0000    74 	.ENABL	LSB

                                 00000000    75 	.PSECT	Y$EXEPAGED

                               001C' 0000    76 	.ENTRY	EXE$CANEXH,^M<R2,R3,R4>

                          4E     10  0002    77 	BSBB	GETPARM			;GET EXIT CONTROL BLOCK PARAMETERS

                          3B     13  0004    78 	BEQL	30$			;IF EQL CANCEL ALL EXIT HANDLERS

            52            50     D0  0006    79 	MOVL	R0,R2			;COPY ADDRESS OF LISTHEAD

            53            52     D0  0009    80 10$:	MOVL	R2,R3			;SAVE ADDRESS OF PREVIOUS ENTRY

                                     000C    81 	IFNORD	#4,(R3),50$		;CAN NEXT EXIT CONTROL BLOCK ADDRESS BE READ?

            52            63     D0  0012    82 	MOVL	(R3),R2			;GET ADDRESS OF NEXT EXIT CONTROL BLOCK

                          35     13  0015    83 	BEQL	60$			;IF EQL END OF LIST

            52            51     D1  0017    84 	CMPL	R1,R2			;EXIT CONTROL BLOCK ADDRESS MATCH?

                          ED     12  001A    85 	BNEQ	10$			;IF NEQ NO

                                     001C    86 	IFNORD	#4,(R2),50$		;CAN NEXT EXIT CONTROL BLOCK ADDRESS BE READ?

            53            50     D1  0022    87 	CMPL	R0,R3			;PREVIOUS EXIT CONTROL BLOCK LISTHEAD?

                          06     13  0025    88 	BEQL	20$			;IF EQL YES

                                     0027    89 	IFNOWRT	#4,(R3),50$		;CAN PREVIOUS EXIT CONTROL BLOCK BE WRITTEN?

            63            62     D0  002D    90 20$:	MOVL	(R2),(R3)		;REMOVE EXIT CONTROL BLOCK FROM LIST

                          12     11  0030    91 	BRB	40$			;

SYSDCLEXH       - SYSTEM SERVICES CANCEL AND DECLARE EXIT HANDL  21-AUG-1978 23:38:16   VAX-11 MACRO X0.3-11               Page   3

01              DECLARE EXIT HANDLER                                                                                             (1)



                                     0032    93 	.SBTTL	DECLARE EXIT HANDLER

                                     0032    94 ;+

                                     0032    95 ; EXE$DCLEXH - DECLARE EXIT HANDLER

                                     0032    96 ;

                                     0032    97 ; THIS SERVICE PROVIDES THE CAPABILITY TO INSERT AN EXIT CONTROL BLOCK AT

                                     0032    98 ; THE FRONT OF THE EXIT HANDLER LIST FOR THE CALLING ACCESS MODE.

                                     0032    99 ;

                                     0032   100 ; INPUTS:

                                     0032   101 ;

                                     0032   102 ;	DESBLK(AP) = ADDRESS OF EXIT CONTROL BLOCK.

                                     0032   103 ;

                                     0032   104 ;	R4 = CURRENT PROCESS PCB ADDRESS.

                                     0032   105 ;

                                     0032   106 ; OUTPUTS:

                                     0032   107 ;

                                     0032   108 ;	R0 LOW BIT CLEAR INDICATES FAILURE TO DECLARE EXIT HANDLER.

                                     0032   109 ;

                                     0032   110 ;		R0 = SS$_ACCVIO - FIRST LONGWORD OF EXIT CONTROL BLOCK

                                     0032   111 ;			CANNOT BE WRITTEN BY CALLING ACCESS MODE.

                                     0032   112 ;

                                     0032   113 ;		R0 = SS$_NOHANDLER - NO EXIT CONTROL BLOCK ADDRESS SPECIFIED.

                                     0032   114 ;

                                     0032   115 ;	R0 LOW BIT SET INDICATES SUCCESSFUL COMPLETION.

                                     0032   116 ;

                                     0032   117 ;		R0 = SS$_NORMAL - NORMAL COMPLETION.

                                     0032   118 ;-

                                     0032   119  

                               001C' 0032   120 	.ENTRY	EXE$DCLEXH,^M<R2,R3,R4>

                          1C     10  0034   121 	BSBB	GETPARM			;GET EXIT CONTROL BLOCK PARAMETERS

                          14     13  0036   122 	BEQL	60$			;IF EQL NO EXIT CONTROL BLOCK SPECIFIED

                                     0038   123 	IFNOWRT	#4,(R1),50$		;CAN FIRST LONGWORD BE WRITTEN?

            61            60     D0  003E   124 	MOVL	(R0),(R1)		;LINK OLD FIRST TO NEW FIRST

            60            51     D0  0041   125 30$:	MOVL	R1,(R0)			;SET ADDRESS OF NEW FIRST ENTRY

            50            01     3C  0044   126 40$:	MOVZWL	#SS$_NORMAL,R0		;SET NORMAL COMPLETION STATUS

                                 04  0047   127 	RET				;

            50            0C     3C  0048   128 50$:	MOVZWL	#SS$_ACCVIO,R0		;SET ACCESS VIOLATION

                                 04  004B   129 	RET				;

            50       08F8 8F     3C  004C   130 60$:	MOVZWL	#SS$_NOHANDLER,R0	;SET NO HANLDER STATUS

                                 04  0051   131 	RET				;

                                     0052   132 	.DSABL	LSB

SYSDCLEXH       - SYSTEM SERVICES CANCEL AND DECLARE EXIT HANDL  21-AUG-1978 23:38:16   VAX-11 MACRO X0.3-11               Page   4

01              GET EXIT CONTROL BLOCK PARAMETERS                                                                                (1)



                                     0052   134 	.SBTTL	GET EXIT CONTROL BLOCK PARAMETERS

                                     0052   135 ;

                                     0052   136 ; SUBROUTINE TO GET EXIT CONTROL BLOCK PARAMETERS

                                     0052   137 ;

                                     0052   138  

                                     0052   139 GETPARM:				;

                          50     DC  0052   140 	MOVPSL	R0			;READ CURRENT PSL

            02            16     EF  0054   141 	EXTZV	#PSL$V_PRVMOD,#PSL$S_PRVMOD,R0,R0 ;EXTRACT PREVIOUS MODE FIELD

            50            50         0057       

                          50     D7  0059   142 	DECL	R0			;SUBTRACT OUT EXECUTIVE MODE BIAS

                          0D     19  005B   143 	BLSS	10$			;IF LSS CALL FROM KERNEL MODE

            50   00000000'9F40   DE  005D   144 	MOVAL	@#CTL$GL_THEXEC[R0],R0	;GET ADDRESS OF EXIT HANDLER LISTHEAD

            51         04 AC     D0  0065   145 	MOVL	DESBLK(AP),R1		;GET ADDRESS OF EXIT CONTROL BLOCK

                                 05  0069   146 	RSB				;

                                     006A   147 10$:	BUG_CHECK IVSSRVRQST		;INVALID SYSTEM SERVICE REQUEST

            50       0174 8F     3C  006E   148 	MOVZWL	#SS$_IVSSRQ,R0		;SET INVALID SYSTEM SERVICE REQUEST

                                 04  0073   149 	RET				;

                                     0074   150  

                                     0074   151 	.END

SYSDCLEXH       - SYSTEM SERVICES CANCEL AND DECLARE EXIT HANDL  21-AUG-1978 23:38:16   VAX-11 MACRO X0.3-11               Page   5

SYMBOL TABLE                                                                                                                     (1)



BIT...         = 00000000            SS$_BUGCHECK   = 000002A4            SS$_ILLBLKNUM  = 000000DC            

BUG$_IVSSRVRQST  ********   X   03   SS$_CANCEL     = 00000830            SS$_ILLCNTRFUNC= 000000E4            

CTL$GL_THEXEC    ********   X   03   SS$_CHANINTLK  = 0000004C            SS$_ILLEFC     = 000000EC            

DESBLK         = 00000004            SS$_CLIFRCEXT  = 00000980            SS$_ILLIOFUNC  = 000000F4            

EXE$CANEXH       00000000 RG    03   SS$_CMODSUPR   = 0000041C            SS$_ILLLBLAST  = 00000968            

EXE$DCLEXH       00000032 RG    03   SS$_CMODUSER   = 00000424            SS$_ILLPAGCNT  = 000000FC            

GBL...         = 00000000            SS$_COMPAT     = 0000042C            SS$_ILLSEQOP   = 000002DC            

GETPARM          00000052 R     03   SS$_CONTINUE   = 00000001            SS$_ILLSER     = 00000104            

PSL$C_EXEC     = 00000001            SS$_CONTROLC   = 00000651            SS$_ILLUSRLBLRD= 00000958            

PSL$C_KERNEL   = 00000000            SS$_CONTROLO   = 00000609            SS$_ILLUSRLBLWT= 00000960            

PSL$C_SUPER    = 00000002            SS$_CONTROLY   = 00000611            SS$_INCVOLLABEL= 0000010C            

PSL$C_USER     = 00000003            SS$_CREATED    = 00000619            SS$_INSFARG    = 00000114            

PSL$M_CM       = 80000000            SS$_CTRLERR    = 00000054            SS$_INSFMEM    = 00000124            

PSL$M_CURMOD   = 03000000            SS$_DATACHECK  = 0000005C            SS$_INSFRAME   = 0000012C            

PSL$M_DV       = 00000080            SS$_DATAOVERUN = 00000838            SS$_INSFWSL    = 0000011C            

PSL$M_FPD      = 08000000            SS$_DEBUG      = 0000046C            SS$_IVADDR     = 00000134            

PSL$M_FU       = 00000040            SS$_DEVACTIVE  = 000002C4            SS$_IVCHAN     = 0000013C            

PSL$M_IPL      = 001F0000            SS$_DEVALLOC   = 00000840            SS$_IVCHNLSEC  = 0000026C            

PSL$M_IS       = 04000000            SS$_DEVALRALLOC= 00000641            SS$_IVDEVNAM   = 00000144            

PSL$M_IV       = 00000020            SS$_DEVASSIGN  = 00000848            SS$_IVGSDNAM   = 0000014C            

PSL$M_PRVMOD   = 00C00000            SS$_DEVFOREIGN = 00000064            SS$_IVLOGNAM   = 00000154            

PSL$M_SAFBITS  = 000037FF            SS$_DEVICEFULL = 00000850            SS$_IVLOGTAB   = 0000015C            

PSL$M_TBIT     = 00000010            SS$_DEVMOUNT   = 0000006C            SS$_IVPROTECT  = 000002F4            

PSL$M_TP       = 40000000            SS$_DEVNOTALLOC= 00000858            SS$_IVQUOTAL   = 00000164            

PSL$S_CURMOD   = 00000002            SS$_DEVNOTMBX  = 00000074            SS$_IVSECFLG   = 0000016C            

PSL$S_IPL      = 00000005            SS$_DEVNOTMOUNT= 0000007C            SS$_IVSECIDCTL = 000002E4            

PSL$S_PRVMOD   = 00000002            SS$_DEVOFFLINE = 00000084            SS$_IVSSRQ     = 00000174            

PSL$V_CM       = 0000001F            SS$_DIRFULL    = 00000860            SS$_IVSTSFLG   = 0000017C            

PSL$V_CURMOD   = 00000018            SS$_DRVERR     = 0000008C            SS$_IVTIME     = 00000184            

PSL$V_DV       = 00000007            SS$_DUPFILENAME= 00000868            SS$_LENVIO     = 0000018C            

PSL$V_FPD      = 0000001B            SS$_DUPLNAM    = 00000094            SS$_LKWSETFUL  = 00000194            

PSL$V_FU       = 00000006            SS$_ENDOFFILE  = 00000870            SS$_MBFULL     = 000008D8            

PSL$V_IPL      = 00000010            SS$_ENDOFTAPE  = 00000878            SS$_MBTOOSML   = 0000019C            

PSL$V_IS       = 0000001A            SS$_ENDOFUSRLBL= 00000970            SS$_MCHECK     = 000002BC            

PSL$V_IV       = 00000005            SS$_EXQUOTA    = 0000001C            SS$_MEDOFL     = 000001A4            

PSL$V_PRVMOD   = 00000016            SS$_EXTIDXFILE = 00000880            SS$_MSGNOTFND  = 00000621            

PSL$V_TBIT     = 00000004            SS$_FCPREADERR = 00000888            SS$_MUSTCLOSEFL= 00000948            

PSL$V_TP       = 0000001E            SS$_FCPREPSTN  = 00000988            SS$_NODATA     = 000001AC            

SS$_ABORT      = 0000002C            SS$_FCPREWNDERR= 00000890            SS$_NOHANDLER  = 000008F8            

SS$_ACCONFLICT = 00000800            SS$_FCPSPACERR = 00000898            SS$_NOHOMEBLK  = 000008E0            

SS$_ACCVIO     = 0000000C            SS$_FCPWRITERR = 000008A0            SS$_NOIOCHAN   = 000001B4            

SS$_ARITH      = 00000404            SS$_FILACCERR  = 0000009C            SS$_NOLINKS    = 0000027C            

SS$_ASTFLT     = 0000040C            SS$_FILALRACC  = 000000A4            SS$_NOLOGNAM   = 000001BC            

SS$_BADATTRIB  = 00000034            SS$_FILELOCKED = 000008A8            SS$_NOMBX      = 00000274            

SS$_BADCHKSUM  = 00000808            SS$_FILENUMCHK = 000008B0            SS$_NOMOREFILES= 00000930            

SS$_BADESCAPE  = 0000003C            SS$_FILESEQCHK = 000008B8            SS$_NONEXDRV   = 000001C4            

SS$_BADFILEHDR = 00000810            SS$_FILESTRUCT = 000008C0            SS$_NONEXPR    = 000008E8            

SS$_BADFILENAME= 00000818            SS$_FILNOTACC  = 000000AC            SS$_NONLOCAL   = 000008F0            

SS$_BADFILEVER = 00000820            SS$_FILNOTCNTG = 000002AC            SS$_NOPRIV     = 00000024            

SS$_BADIMGHDR  = 00000044            SS$_FILNOTEXP  = 000000B4            SS$_NORMAL     = 00000001            

SS$_BADIRECTORY= 00000828            SS$_FORMAT     = 000000BC            SS$_NOSIGNAL   = 00000900            

SS$_BADPARAM   = 00000014            SS$_GPTFULL    = 000000C4            SS$_NOSOLICIT  = 00000284            

SS$_BADSTACK   = 000002B4            SS$_GSDFULL    = 000000CC            SS$_NOSUCHDEV  = 00000908            

SS$_BEGOFFILE  = 00000938            SS$_GSDNOTXXX  = 000000D4            SS$_NOSUCHFILE = 00000910            

SS$_BLOCKCNTERR= 00000940            SS$_HANGUP     = 000002CC            SS$_NOSUCHNODE = 0000028C            

SS$_BREAK      = 00000414            SS$_HEADERFULL = 000008C8            SS$_NOSUCHSEC  = 00000978            

SS$_BUFFEROVF  = 00000601            SS$_IDXFILEFULL= 000008D0            SS$_NOTAPEOP   = 00000264            

SYSDCLEXH       - SYSTEM SERVICES CANCEL AND DECLARE EXIT HANDL  21-AUG-1978 23:38:16   VAX-11 MACRO X0.3-11               Page   6

SYMBOL TABLE                                                                                                                     (1)



SS$_NOTFILEDEV = 000001CC            

SS$_NOTINTBLSZ = 000001D4            

SS$_NOTLABELMT = 000001DC            

SS$_NOTNETDEV  = 000002EC            

SS$_NOTRAN     = 00000629            

SS$_NOTSQDEV   = 000001E4            

SS$_OPCCUS     = 00000434            

SS$_OPCDEC     = 0000043C            

SS$_OPINCOMPL  = 000002D4            

SS$_PAGOWNVIO  = 000001EC            

SS$_PAGRDERR   = 00000444            

SS$_PARITY     = 000001F4            

SS$_PARTESCAPE = 000001FC            

SS$_PFMBSY     = 00000204            

SS$_PSTFULL    = 0000020C            

SS$_RADRMOD    = 0000044C            

SS$_REJECT     = 00000294            

SS$_REMOTE     = 00000649            

SS$_RESIGNAL   = 00000918            

SS$_RESULTOVF  = 00000214            

SS$_ROPRAND    = 00000454            

SS$_SECTBLFUL  = 0000021C            

SS$_SSFAIL     = 0000045C            

SS$_SUPERSEDE  = 00000631            

SS$_TAPEPOSLOST= 00000224            

SS$_TBIT       = 00000464            

SS$_TIMEOUT    = 0000022C            

SS$_TOOMANYVER = 00000990            

SS$_TOOMUCHDATA= 0000029C            

SS$_UNASEFC    = 00000234            

SS$_UNSAFE     = 0000023C            

SS$_UNWIND     = 00000920            

SS$_UNWINDING  = 00000928            

SS$_VASFULL    = 00000244            

SS$_VECINUSE   = 0000024C            

SS$_VOLINV     = 00000254            

SS$_WAITUSRLBL = 00000950            

SS$_WASCLR     = 00000001            

SS$_WASECC     = 00000639            

SS$_WASSET     = 00000009            

SS$_WRITLCK    = 0000025C            





PROGRAM SECTION SYNOPSIS



.  ABS  .        00000000      00     NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT BYTE  

. BLANK .        00000000      01     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

$ABS$            00000000      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

Y$EXEPAGED       00000074      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

18474. BYTES LEFT IN FREE MEMORY POOL.

3332. BYTES OF RECLAIMED MEMORY.

OBJ$:SYSDCLEXH,LIS$:SYSDCLEXH/-SP=LIB$:LIB/ML,SRC$:SYSDCLEXH

3 MLB DIR RDS - 340 GETS TO DEFINE 13 MACROS. 26 INTER. FILE WRITES. 

