! *** PREDECLARED TYPES %IF %DECLARED ( %BASIC$QUADWORD_DECLARED ) = 0 %THEN RECORD BASIC$QUADWORD LONG FILL ( 2 ) END RECORD %LET %BASIC$QUADWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$OCTAWORD_DECLARED ) = 0 %THEN RECORD BASIC$OCTAWORD LONG FILL ( 4 ) END RECORD %LET %BASIC$OCTAWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$HFLOAT_AXP_DECLARED ) = 0 %THEN RECORD BASIC$HFLOAT_AXP LONG FILL ( 4 ) END RECORD %LET %BASIC$HFLOAT_AXP_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$F_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$F_FLOATING_COMPLEX SINGLE REAL_PART SINGLE IMAGINARY_PART END RECORD %LET %BASIC$F_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$D_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$D_FLOATING_COMPLEX DOUBLE REAL_PART DOUBLE IMAGINARY_PART END RECORD %LET %BASIC$D_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$G_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$G_FLOATING_COMPLEX GFLOAT REAL_PART GFLOAT IMAGINARY_PART END RECORD %LET %BASIC$G_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$H_FLOAT_AXP_CMPLX_DCL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX_AXP BASIC$HFLOAT_AXP REAL_PART BASIC$HFLOAT_AXP IMAGINARY_PART END RECORD %LET %BASIC$H_FLOAT_AXP_CMPLX_DCL = 1 %END %IF ! ! Symbiont/Job Controller Interface (SMB) Routines ! ! ! SMB$CHECK_FOR_MESSAGE - Check for Message from Job Controller ! ! status = SMB$CHECK_FOR_MESSAGE () ! EXTERNAL LONG FUNCTION SMB$CHECK_FOR_MESSAGE ! ! SMB$INITIALIZE - Initialize User-Written Symbiont ! ! status = SMB$INITIALIZE (structure_level [,ast_routine] [,streams]) ! ! structure_level - Version of the job-controller/symbiont interface ! ast_routine - Message-handling AST routine ! streams - Maximum number of streams to support ! EXTERNAL LONG FUNCTION SMB$INITIALIZE & ( & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY REF & ) ! ! SMB$READ_MESSAGE - Obtain Message Sent by Job Controller ! ! status = SMB$READ_MESSAGE (stream, buffer, request) ! ! stream - Stream number for message ! buffer - Buffer into which message is written ! request - Code that identifies the request ! EXTERNAL LONG FUNCTION SMB$READ_MESSAGE & ( & LONG BY REF, & STRING BY DESC, & LONG BY REF & ) ! ! SMB$READ_MESSAGE_ITEM - Parse Next Item from Message Buffer ! ! status = SMB$READ_MESSAGE_ITEM (message, context, item_code, buffer ! [, size]) ! ! message - Message items to read ! context - Context value ! item_code - Item code of message read ! buffer - Message item ! size - Size of message item ! EXTERNAL LONG FUNCTION SMB$READ_MESSAGE_ITEM & ( & STRING BY DESC, & LONG BY REF, & LONG BY REF, & STRING BY DESC, & OPTIONAL WORD BY REF & ) ! ! SMB$SEND_TO_JOBCTL - Send Message to Job Controller ! ! status = SMB$SEND_TO_JOBCTL (stream [,request] [,accounting] ! [,checkpoint] [,device_status] [,error]) ! ! stream - Number of stream to which message refers ! request - Code identifying request being completed ! accounting - Accounting information about a task ! checkpoint - Checkpoint data about current task ! device_status - Status of device served by the symbiont ! error - Condition code returned by the requested task ! EXTERNAL LONG FUNCTION SMB$SEND_TO_JOBCTL & ( & LONG BY REF, & OPTIONAL LONG BY REF, & STRING BY DESC, & STRING BY DESC, & LONG BY REF, & LONG DIM() BY REF & )