--******************************************************************************************************************** -- Created: 9-Mar-2021 22:28:35 by OpenVMS SDL EV3-3 -- Source: 21-FEB-1995 13:44:00 $1$DGA8085:[LIB_ADA.LIS]SMBDEF.SDL;1 --******************************************************************************************************************** with SYSTEM; use SYSTEM; with STARLET; use STARLET; with CONDITION_HANDLING; use CONDITION_HANDLING; package SMBDEF is -- module $SMBDEF -- Symbiont interface definitions --+ -- Symbolic definitions for the symbiont to job controller interface. -- -- Public definitions of message types, item codes, and -- other constants utilied by the symbiont to job controller -- interface facility. -- --- -- -- Structure level -- SMBMSG_K_STRUCTURE_LEVEL : constant := 1; -- Current structure level SMBMSG_K_STRUCTURE_LEVEL_1 : constant := 1; -- Structure level 1 SMBMSG_K_ARCH_MAX_STREAMS : constant := 32; -- Architected maximum streams per symbiont -- -- Request header -- SMBMSG_K_PAUSE_TASK : constant := 1; -- - STOP /QUEUE SMBMSG_K_RESET_STREAM : constant := 2; -- - STOP /QUEUE /RESET SMBMSG_K_RESUME_TASK : constant := 3; -- - START /QUEUE (when paused) SMBMSG_K_START_STREAM : constant := 4; -- - START /QUEUE (when stopped) SMBMSG_K_START_TASK : constant := 5; -- - task available SMBMSG_K_STOP_STREAM : constant := 6; -- - STOP /QUEUE /NEXT SMBMSG_K_STOP_TASK : constant := 7; -- - STOP /QUEUE /ABORT or /REQUEUE SMBMSG_K_TASK_COMPLETE : constant := 8; -- - stream is idle SMBMSG_K_TASK_STATUS : constant := 9; -- - asynchronous status update SMBMSG_K_START_SYMBIONT : constant := 10; -- - symbiont creation confirmation SMBMSG_K_JOB_REQUEST : constant := 11; -- - request a job to be executed SMBMSG_K_MAX_REQUEST_CODE : constant := 12; -- MUST BE LAST type SMBMSG_REQUEST_HEADER_TYPE is record REQUEST_CODE : UNSIGNED_WORD; -- Request code -- Define request codes STRUCTURE_LEVEL : UNSIGNED_BYTE; -- Message structure level STREAM_INDEX : UNSIGNED_BYTE; -- Stream index SYMBIONT_ID : UNSIGNED_LONGWORD; -- Symbiont identification JOB_ID : UNSIGNED_LONGWORD; -- Job number (or 0 if a queue-oriented request) end record; for SMBMSG_REQUEST_HEADER_TYPE use record REQUEST_CODE at 0 range 0 .. 15; STRUCTURE_LEVEL at 2 range 0 .. 7; STREAM_INDEX at 3 range 0 .. 7; SYMBIONT_ID at 4 range 0 .. 31; JOB_ID at 8 range 0 .. 31; end record; for SMBMSG_REQUEST_HEADER_TYPE'SIZE use 96; SMBMSG_REQUEST_HEADER_TYPE_INIT : constant SMBMSG_REQUEST_HEADER_TYPE := (REQUEST_CODE => 0, STRUCTURE_LEVEL => 0, STREAM_INDEX => 0, SYMBIONT_ID => 0, JOB_ID => 0); -- -- Item header -- SMBMSG_K_ACCOUNTING_DATA : constant := 1; -- - accounting information SMBMSG_K_ACCOUNT_NAME : constant := 2; -- - account name SMBMSG_K_AFTER_TIME : constant := 3; -- - /AFTER value SMBMSG_K_ALIGNMENT_PAGES : constant := 4; -- - /ALIGN count SMBMSG_K_BOTTOM_MARGIN : constant := 5; -- - trailing blank lines SMBMSG_K_CHARACTERISTICS : constant := 6; -- - /CHARACTERISTICS value SMBMSG_K_CHECKPOINT_DATA : constant := 7; -- - checkpoint information SMBMSG_K_CONDITION_VECTOR : constant := 8; -- - task error messages SMBMSG_K_DEVICE_NAME : constant := 9; -- - /ON value SMBMSG_K_DEVICE_STATUS : constant := 10; -- - device status SMBMSG_K_ENTRY_NUMBER : constant := 11; -- - job entry number SMBMSG_K_EXECUTOR_QUEUE : constant := 12; -- - this output queue SMBMSG_K_FILE_COPIES : constant := 13; -- - /COPIES value SMBMSG_K_FILE_COUNT : constant := 14; -- - current file copy number SMBMSG_K_FILE_SETUP_MODULES : constant := 15; -- - file setup module list SMBMSG_K_FIRST_PAGE : constant := 16; -- - first page to print SMBMSG_K_FORM_LENGTH : constant := 17; -- - lines per page SMBMSG_K_FORM_NAME : constant := 18; -- - name of physical form SMBMSG_K_FORM_SETUP_MODULES : constant := 19; -- - form setup module list SMBMSG_K_FORM_WIDTH : constant := 20; -- - columns per line SMBMSG_K_FILE_IDENTIFICATION : constant := 21; -- - device, fid, and did SMBMSG_K_FILE_SPECIFICATION : constant := 22; -- - file name SMBMSG_K_JOB_COPIES : constant := 23; -- - /JOB_COUNT value SMBMSG_K_JOB_COUNT : constant := 24; -- - current job copy number SMBMSG_K_JOB_NAME : constant := 25; -- - /NAME value SMBMSG_K_JOB_RESET_MODULES : constant := 26; -- - job reset module list SMBMSG_K_LAST_PAGE : constant := 27; -- - last page to print SMBMSG_K_LEFT_MARGIN : constant := 28; -- - leading blank columns SMBMSG_K_LIBRARY_SPECIFICATION : constant := 29; -- - library name SMBMSG_K_MAXIMUM_STREAMS : constant := 30; -- - maximum supported symbiont SMBMSG_K_MESSAGE_VECTOR : constant := 31; -- - error messages to print SMBMSG_K_NOTE : constant := 32; -- - /NOTE value SMBMSG_K_PAGE_SETUP_MODULES : constant := 33; -- - page setup module list SMBMSG_K_PARAMETER_1 : constant := 34; -- - user parameter 1 SMBMSG_K_PARAMETER_2 : constant := 35; -- - user parameter 2 SMBMSG_K_PARAMETER_3 : constant := 36; -- - user parameter 3 SMBMSG_K_PARAMETER_4 : constant := 37; -- - user parameter 4 SMBMSG_K_PARAMETER_5 : constant := 38; -- - user parameter 5 SMBMSG_K_PARAMETER_6 : constant := 39; -- - user parameter 6 SMBMSG_K_PARAMETER_7 : constant := 40; -- - user parameter 7 SMBMSG_K_PARAMETER_8 : constant := 41; -- - user parameter 8 SMBMSG_K_PRINT_CONTROL : constant := 42; -- - printing control SMBMSG_K_PRIORITY : constant := 43; -- - queue priority SMBMSG_K_QUEUE : constant := 44; -- - generic queue name SMBMSG_K_REFUSE_REASON : constant := 45; -- - reason task refused SMBMSG_K_RELATIVE_PAGE : constant := 46; -- - /BACKWARD, /FORWARD values SMBMSG_K_REQUEST_CONTROL : constant := 47; -- - request control SMBMSG_K_REQUEST_RESPONSE : constant := 48; -- - request code being responded to SMBMSG_K_RIGHT_MARGIN : constant := 49; -- - trailing blank columns SMBMSG_K_SEARCH_STRING : constant := 50; -- - /SEARCH value SMBMSG_K_SEPARATION_CONTROL : constant := 51; -- - separation control SMBMSG_K_STOP_CONDITION : constant := 52; -- - reason for print abort SMBMSG_K_TIME_QUEUED : constant := 53; -- - time queued SMBMSG_K_TOP_MARGIN : constant := 54; -- - leading blank lines SMBMSG_K_UIC : constant := 55; -- - UIC of submittor SMBMSG_K_USER_NAME : constant := 56; -- - username SMBMSG_K_CHECKPOINT_FREQUENCY : constant := 57; -- - pages per checkpoint SMBMSG_K_QUEUING_CONTROL : constant := 58; -- - queuing control SMBMSG_K_RETRY_TIME : constant := 59; -- - delta time at which symbiont should retry job SMBMSG_K_DEVICE_CONDITION : constant := 60; -- - device error messages SMBMSG_K_MESSAGE_FILE : constant := 61; -- - symbiont's message file SMBMSG_K_AGENT_PROFILE : constant := 62; -- - security info SMBMSG_K_CPU_LIMIT : constant := 63; SMBMSG_K_FILE_SEPARATION : constant := 64; SMBMSG_K_LOG_QUEUE : constant := 65; SMBMSG_K_LOG_SPECIFICATION : constant := 66; SMBMSG_K_LOG_SPOOL : constant := 67; SMBMSG_K_OPERATOR_REQUEST : constant := 68; SMBMSG_K_WSDEFAULT : constant := 69; SMBMSG_K_WSEXTENT : constant := 70; SMBMSG_K_WSQUOTA : constant := 71; SMBMSG_K_FILE_ATTRIBUTES : constant := 72; SMBMSG_K_FILE_ATTRIBUTES_SIZE : constant := 73; SMBMSG_K_JOB_ATTRIBUTES : constant := 74; SMBMSG_K_JOB_ATTRIBUTES_SIZE : constant := 75; SMBMSG_K_QUEUE_ATTRIBUTES : constant := 76; SMBMSG_K_QUEUE_ATTRIBUTES_SIZE : constant := 77; SMBMSG_K_SUBMITTER_EPID : constant := 78; -- SMBMSG_K_MAX_ITEM_CODE : constant := 79; -- MUST BE LAST type SMBMSG_ITEM_HEADER_TYPE is record ITEM_SIZE : UNSIGNED_WORD; -- Item size ITEM_CODE : UNSIGNED_WORD; -- Item code -- Define item codes end record; for SMBMSG_ITEM_HEADER_TYPE use record ITEM_SIZE at 0 range 0 .. 15; ITEM_CODE at 2 range 0 .. 15; end record; for SMBMSG_ITEM_HEADER_TYPE'SIZE use 32; SMBMSG_ITEM_HEADER_TYPE_INIT : constant SMBMSG_ITEM_HEADER_TYPE := (ITEM_SIZE => 0, ITEM_CODE => 0); SMBMSG_S_ITEM_HEADER : constant := 4; -- Size (using prior aggregate name) -- -- ACCOUNTING_DATA item -- type SMBMSG_ACCOUNTING_DATA_TYPE is record PAGES_PRINTED : UNSIGNED_LONGWORD; -- Pages printed QIO_PUTS : UNSIGNED_LONGWORD; -- Lines printed RMS_GETS : UNSIGNED_LONGWORD; -- File reads CPU_TIME : UNSIGNED_LONGWORD; -- Processor time end record; for SMBMSG_ACCOUNTING_DATA_TYPE use record PAGES_PRINTED at 0 range 0 .. 31; QIO_PUTS at 4 range 0 .. 31; RMS_GETS at 8 range 0 .. 31; CPU_TIME at 12 range 0 .. 31; end record; for SMBMSG_ACCOUNTING_DATA_TYPE'SIZE use 128; SMBMSG_ACCOUNTING_DATA_TYPE_INIT : constant SMBMSG_ACCOUNTING_DATA_TYPE := (PAGES_PRINTED => 0, QIO_PUTS => 0, RMS_GETS => 0, CPU_TIME => 0); -- -- CHECKPOINT_DATA item -- type SMBMSG_CHECKPOINT_DATA_TYPE is record FILLER : UNSIGNED_BYTE; -- Reserved CHECKPOINT_LEVEL : UNSIGNED_BYTE; -- Checkpoint structure level OFFSET : UNSIGNED_WORD; -- Offset into record CARCON : UNSIGNED_LONGWORD; -- Carriage control PAGE : UNSIGNED_LONGWORD; -- Page number RECORD_NUMBER : UNSIGNED_LONGWORD; -- Record number USER_KEY : UNSIGNED_QUADWORD; -- User positioning key end record; for SMBMSG_CHECKPOINT_DATA_TYPE use record FILLER at 0 range 0 .. 7; CHECKPOINT_LEVEL at 1 range 0 .. 7; OFFSET at 2 range 0 .. 15; CARCON at 4 range 0 .. 31; PAGE at 8 range 0 .. 31; RECORD_NUMBER at 12 range 0 .. 31; USER_KEY at 16 range 0 .. 63; end record; for SMBMSG_CHECKPOINT_DATA_TYPE'SIZE use 192; SMBMSG_CHECKPOINT_DATA_TYPE_INIT : constant SMBMSG_CHECKPOINT_DATA_TYPE := (FILLER => 0, CHECKPOINT_LEVEL => 0, OFFSET => 0, CARCON => 0, PAGE => 0, RECORD_NUMBER => 0, USER_KEY => (0, 0)); -- -- DEVICE_STATUS item -- SMBMSG_M_LOWERCASE : constant := 16#00000001#; SMBMSG_M_PAUSE_TASK : constant := 16#00000002#; SMBMSG_M_REMOTE : constant := 16#00000004#; SMBMSG_M_SERVER : constant := 16#00000008#; SMBMSG_M_STALLED : constant := 16#00000010#; SMBMSG_M_STOP_STREAM : constant := 16#00000020#; SMBMSG_M_TERMINAL : constant := 16#00000040#; SMBMSG_M_UNAVAILABLE : constant := 16#00000080#; SMBMSG_M_SYM_NOTIFIES : constant := 16#00000100#; SMBMSG_M_SYM_REQUESTS_OPER : constant := 16#00000200#; SMBMSG_M_SYM_COPIES_FILE : constant := 16#00000400#; SMBMSG_M_SYM_COPIES_JOB : constant := 16#00000800#; SMBMSG_M_SYM_ACCEPTS_ALL_FORMS : constant := 16#00001000#; SMBMSG_M_SYM_NO_JOB_CHECKPOINT : constant := 16#00002000#; SMBMSG_M_SYM_ALL_CHARACTERISTIC : constant := 16#00004000#; SMBMSG_M_NOTIFY_ON_INTERRUPT : constant := 16#00008000#; type SMBMSG_DEVICE_FLAGS_TYPE is -- Device flags record LOWERCASE : BOOLEAN; -- - supports lowercase PAUSE_TASK : BOOLEAN; -- - symbiont initiated pause REMOTE : BOOLEAN; -- - device is remote SERVER : BOOLEAN; -- - server symbiont STALLED : BOOLEAN; -- - task stalled STOP_STREAM : BOOLEAN; -- - symbiont requesting stop stream TERMINAL : BOOLEAN; -- - device is a terminal UNAVAILABLE : BOOLEAN; -- - device unavailable SYM_NOTIFIES : BOOLEAN; -- - Symbiont notifies for job completions SYM_REQUESTS_OPER : BOOLEAN; -- - Symbiont generates operator messages SYM_COPIES_FILE : BOOLEAN; -- - Symbiont generates multiple file copies SYM_COPIES_JOB : BOOLEAN; -- - Symbiont generates multiple job copies SYM_ACCEPTS_ALL_FORMS : BOOLEAN; -- - Symbiont processes all form types SYM_NO_JOB_CHECKPOINT : BOOLEAN; -- - Always reprocess full job on a restart SYM_ALL_CHARACTERISTIC : BOOLEAN; -- - Symbiont processes all characteristics NOTIFY_ON_INTERRUPT : BOOLEAN; -- - Symbiont notifies user on job interrupt FILLER_1 : UNSIGNED_16; -- - force longword end record; for SMBMSG_DEVICE_FLAGS_TYPE use record LOWERCASE at 0 range 0 .. 0; PAUSE_TASK at 0 range 1 .. 1; REMOTE at 0 range 2 .. 2; SERVER at 0 range 3 .. 3; STALLED at 0 range 4 .. 4; STOP_STREAM at 0 range 5 .. 5; TERMINAL at 0 range 6 .. 6; UNAVAILABLE at 0 range 7 .. 7; SYM_NOTIFIES at 1 range 0 .. 0; SYM_REQUESTS_OPER at 1 range 1 .. 1; SYM_COPIES_FILE at 1 range 2 .. 2; SYM_COPIES_JOB at 1 range 3 .. 3; SYM_ACCEPTS_ALL_FORMS at 1 range 4 .. 4; SYM_NO_JOB_CHECKPOINT at 1 range 5 .. 5; SYM_ALL_CHARACTERISTIC at 1 range 6 .. 6; NOTIFY_ON_INTERRUPT at 1 range 7 .. 7; FILLER_1 at 2 range 0 .. 15; end record; for SMBMSG_DEVICE_FLAGS_TYPE'SIZE use 32; SMBMSG_DEVICE_FLAGS_TYPE_INIT : constant SMBMSG_DEVICE_FLAGS_TYPE := (LOWERCASE => FALSE, PAUSE_TASK => FALSE, REMOTE => FALSE, SERVER => FALSE, STALLED => FALSE, STOP_STREAM => FALSE, TERMINAL => FALSE, UNAVAILABLE => FALSE, SYM_NOTIFIES => FALSE, SYM_REQUESTS_OPER => FALSE, SYM_COPIES_FILE => FALSE, SYM_COPIES_JOB => FALSE, SYM_ACCEPTS_ALL_FORMS => FALSE, SYM_NO_JOB_CHECKPOINT => FALSE, SYM_ALL_CHARACTERISTIC => FALSE, NOTIFY_ON_INTERRUPT => FALSE, FILLER_1 => 0); type SMBMSG_DEVICE_STATUS_TYPE is record DEVICE_FLAGS : SMBMSG_DEVICE_FLAGS_TYPE; -- Device flags end record; for SMBMSG_DEVICE_STATUS_TYPE use record DEVICE_FLAGS at 0 range 0 .. 31; end record; for SMBMSG_DEVICE_STATUS_TYPE'SIZE use 32; SMBMSG_DEVICE_STATUS_TYPE_INIT : constant SMBMSG_DEVICE_STATUS_TYPE := ( DEVICE_FLAGS => SMBMSG_DEVICE_FLAGS_TYPE_INIT ); -- -- PRINT_CONTROL item -- SMBMSG_M_DOUBLE_SPACE : constant := 16#00000001#; SMBMSG_M_PAGE_HEADER : constant := 16#00000002#; SMBMSG_M_PAGINATE : constant := 16#00000004#; SMBMSG_M_PASSALL : constant := 16#00000008#; SMBMSG_M_SEQUENCED : constant := 16#00000010#; SMBMSG_M_SHEET_FEED : constant := 16#00000020#; SMBMSG_M_TRUNCATE : constant := 16#00000040#; SMBMSG_M_WRAP : constant := 16#00000080#; SMBMSG_M_RECORD_BLOCKING : constant := 16#00000100#; SMBMSG_M_PAGE_FOOTER : constant := 16#00000200#; SMBMSG_M_DELETE_FILE : constant := 16#00000400#; SMBMSG_M_LOWERCASE_EXPLICIT : constant := 16#00000800#; SMBMSG_M_NOTIFY : constant := 16#00001000#; SMBMSG_M_RESTART : constant := 16#00002000#; SMBMSG_M_JOB_RETAIN : constant := 16#00004000#; SMBMSG_M_JOB_ERROR_RETAIN : constant := 16#00008000#; SMBMSG_M_NO_INITIAL_FF : constant := 16#00010000#; type SMBMSG_PRINT_FLAGS_TYPE is -- Print flags record DOUBLE_SPACE : BOOLEAN; -- - double space PAGE_HEADER : BOOLEAN; -- - print page headers PAGINATE : BOOLEAN; -- - insert 's PASSALL : BOOLEAN; -- - binary print file SEQUENCED : BOOLEAN; -- - print sequence numbers SHEET_FEED : BOOLEAN; -- - pause at every TOF TRUNCATE : BOOLEAN; -- - truncate on overflow WRAP : BOOLEAN; -- - wrap on overflow RECORD_BLOCKING : BOOLEAN; -- - block records in output buffer PAGE_FOOTER : BOOLEAN; -- - print page footers DELETE_FILE : BOOLEAN; -- - delete file after printing LOWERCASE_EXPLICIT : BOOLEAN; -- - job for printer that supports lowercase NOTIFY : BOOLEAN; -- - notify user when job completes RESTART : BOOLEAN; -- - restart job after crash or requeue JOB_RETAIN : BOOLEAN; -- - per job retain JOB_ERROR_RETAIN : BOOLEAN; -- - per job retain on error NO_INITIAL_FF : BOOLEAN; -- - output form feed on START/QUEUE FILLER_1 : UNSIGNED_15; -- - force longword end record; for SMBMSG_PRINT_FLAGS_TYPE use record DOUBLE_SPACE at 0 range 0 .. 0; PAGE_HEADER at 0 range 1 .. 1; PAGINATE at 0 range 2 .. 2; PASSALL at 0 range 3 .. 3; SEQUENCED at 0 range 4 .. 4; SHEET_FEED at 0 range 5 .. 5; TRUNCATE at 0 range 6 .. 6; WRAP at 0 range 7 .. 7; RECORD_BLOCKING at 1 range 0 .. 0; PAGE_FOOTER at 1 range 1 .. 1; DELETE_FILE at 1 range 2 .. 2; LOWERCASE_EXPLICIT at 1 range 3 .. 3; NOTIFY at 1 range 4 .. 4; RESTART at 1 range 5 .. 5; JOB_RETAIN at 1 range 6 .. 6; JOB_ERROR_RETAIN at 1 range 7 .. 7; NO_INITIAL_FF at 2 range 0 .. 0; FILLER_1 at 2 range 1 .. 15; end record; for SMBMSG_PRINT_FLAGS_TYPE'SIZE use 32; SMBMSG_PRINT_FLAGS_TYPE_INIT : constant SMBMSG_PRINT_FLAGS_TYPE := (DOUBLE_SPACE => FALSE, PAGE_HEADER => FALSE, PAGINATE => FALSE, PASSALL => FALSE, SEQUENCED => FALSE, SHEET_FEED => FALSE, TRUNCATE => FALSE, WRAP => FALSE, RECORD_BLOCKING => FALSE, PAGE_FOOTER => FALSE, DELETE_FILE => FALSE, LOWERCASE_EXPLICIT => FALSE, NOTIFY => FALSE, RESTART => FALSE, JOB_RETAIN => FALSE, JOB_ERROR_RETAIN => FALSE, NO_INITIAL_FF => FALSE, FILLER_1 => 0); type SMBMSG_PRINT_CONTROL_TYPE is record PRINT_FLAGS : SMBMSG_PRINT_FLAGS_TYPE; -- Print flags end record; for SMBMSG_PRINT_CONTROL_TYPE use record PRINT_FLAGS at 0 range 0 .. 31; end record; for SMBMSG_PRINT_CONTROL_TYPE'SIZE use 32; SMBMSG_PRINT_CONTROL_TYPE_INIT : constant SMBMSG_PRINT_CONTROL_TYPE := ( PRINT_FLAGS => SMBMSG_PRINT_FLAGS_TYPE_INIT ); -- -- REQUEST_CONTROL item -- SMBMSG_M_ALIGNMENT_MASK : constant := 16#00000001#; SMBMSG_M_PAUSE_COMPLETE : constant := 16#00000002#; SMBMSG_M_RESTARTING : constant := 16#00000004#; SMBMSG_M_TOP_OF_FILE : constant := 16#00000008#; type SMBMSG_REQUEST_FLAGS_TYPE is -- Print flags record ALIGNMENT_MASK : BOOLEAN; -- - print A's and 9's PAUSE_COMPLETE : BOOLEAN; -- - pause when request complete RESTARTING : BOOLEAN; -- - job is restarting TOP_OF_FILE : BOOLEAN; -- - rewind before resume FILLER_1 : UNSIGNED_28; -- - force longword end record; for SMBMSG_REQUEST_FLAGS_TYPE use record ALIGNMENT_MASK at 0 range 0 .. 0; PAUSE_COMPLETE at 0 range 1 .. 1; RESTARTING at 0 range 2 .. 2; TOP_OF_FILE at 0 range 3 .. 3; FILLER_1 at 0 range 4 .. 31; end record; for SMBMSG_REQUEST_FLAGS_TYPE'SIZE use 32; SMBMSG_REQUEST_FLAGS_TYPE_INIT : constant SMBMSG_REQUEST_FLAGS_TYPE := (ALIGNMENT_MASK => FALSE, PAUSE_COMPLETE => FALSE, RESTARTING => FALSE, TOP_OF_FILE => FALSE, FILLER_1 => 0); type SMBMSG_REQUEST_TYPE is record REQUEST_FLAGS : SMBMSG_REQUEST_FLAGS_TYPE; -- Print flags end record; for SMBMSG_REQUEST_TYPE use record REQUEST_FLAGS at 0 range 0 .. 31; end record; for SMBMSG_REQUEST_TYPE'SIZE use 32; SMBMSG_REQUEST_TYPE_INIT : constant SMBMSG_REQUEST_TYPE := ( REQUEST_FLAGS => SMBMSG_REQUEST_FLAGS_TYPE_INIT ); -- -- SEPARATION_CONTROL item -- SMBMSG_M_FILE_BURST : constant := 16#00000001#; SMBMSG_M_FILE_FLAG : constant := 16#00000002#; SMBMSG_M_FILE_TRAILER : constant := 16#00000004#; SMBMSG_M_FILE_TRAILER_ABORT : constant := 16#00000008#; SMBMSG_M_JOB_FLAG : constant := 16#00000010#; SMBMSG_M_JOB_BURST : constant := 16#00000020#; SMBMSG_M_JOB_RESET : constant := 16#00000040#; SMBMSG_M_JOB_RESET_ABORT : constant := 16#00000080#; SMBMSG_M_JOB_TRAILER : constant := 16#00000100#; SMBMSG_M_JOB_TRAILER_ABORT : constant := 16#00000200#; SMBMSG_M_FIRST_FILE_OF_JOB : constant := 16#00000400#; SMBMSG_M_LAST_FILE_OF_JOB : constant := 16#00000800#; type SMBMSG_SEPARATION_FLAGS_TYPE is -- Print flags record FILE_BURST : BOOLEAN; -- - print file burst page FILE_FLAG : BOOLEAN; -- - print file flag page FILE_TRAILER : BOOLEAN; -- - print file trailer page FILE_TRAILER_ABORT : BOOLEAN; -- - print file trailer page JOB_FLAG : BOOLEAN; -- - print job flag page JOB_BURST : BOOLEAN; -- - print job burst page JOB_RESET : BOOLEAN; -- - execute job reset sequence JOB_RESET_ABORT : BOOLEAN; -- - execute job reset sequence JOB_TRAILER : BOOLEAN; -- - print job trailer page JOB_TRAILER_ABORT : BOOLEAN; -- - print job trailer page FIRST_FILE_OF_JOB : BOOLEAN; -- - this is the first file of the current job LAST_FILE_OF_JOB : BOOLEAN; -- - this is the last file of the current job FILLER_1 : UNSIGNED_20; -- - force longword end record; for SMBMSG_SEPARATION_FLAGS_TYPE use record FILE_BURST at 0 range 0 .. 0; FILE_FLAG at 0 range 1 .. 1; FILE_TRAILER at 0 range 2 .. 2; FILE_TRAILER_ABORT at 0 range 3 .. 3; JOB_FLAG at 0 range 4 .. 4; JOB_BURST at 0 range 5 .. 5; JOB_RESET at 0 range 6 .. 6; JOB_RESET_ABORT at 0 range 7 .. 7; JOB_TRAILER at 1 range 0 .. 0; JOB_TRAILER_ABORT at 1 range 1 .. 1; FIRST_FILE_OF_JOB at 1 range 2 .. 2; LAST_FILE_OF_JOB at 1 range 3 .. 3; FILLER_1 at 1 range 4 .. 23; end record; for SMBMSG_SEPARATION_FLAGS_TYPE'SIZE use 32; SMBMSG_SEPARATION_FLAGS_TYPE_INIT : constant SMBMSG_SEPARATION_FLAGS_TYPE := (FILE_BURST => FALSE, FILE_FLAG => FALSE, FILE_TRAILER => FALSE, FILE_TRAILER_ABORT => FALSE, JOB_FLAG => FALSE, JOB_BURST => FALSE, JOB_RESET => FALSE, JOB_RESET_ABORT => FALSE, JOB_TRAILER => FALSE, JOB_TRAILER_ABORT => FALSE, FIRST_FILE_OF_JOB => FALSE, LAST_FILE_OF_JOB => FALSE, FILLER_1 => 0); type SMBMSG_SEPARATION_CONTROL_TYPE is record SEPARATION_FLAGS : SMBMSG_SEPARATION_FLAGS_TYPE; -- Print flags end record; for SMBMSG_SEPARATION_CONTROL_TYPE use record SEPARATION_FLAGS at 0 range 0 .. 31; end record; for SMBMSG_SEPARATION_CONTROL_TYPE'SIZE use 32; SMBMSG_SEPARATION_CONTROL_TYPE_INIT : constant SMBMSG_SEPARATION_CONTROL_TYPE := ( SEPARATION_FLAGS => SMBMSG_SEPARATION_FLAGS_TYPE_INIT ); -- -- QUEUING_CONTROL item -- SMBMSG_M_RETAIN_JOB : constant := 16#00000001#; type SMBMSG_QUEUING_FLAGS_TYPE is -- Queuing flags record RETAIN_JOB : BOOLEAN; -- - symbiont retained job on "fixable" error FILLER_1 : UNSIGNED_31; -- - force longword end record; for SMBMSG_QUEUING_FLAGS_TYPE use record RETAIN_JOB at 0 range 0 .. 0; FILLER_1 at 0 range 1 .. 31; end record; for SMBMSG_QUEUING_FLAGS_TYPE'SIZE use 32; SMBMSG_QUEUING_FLAGS_TYPE_INIT : constant SMBMSG_QUEUING_FLAGS_TYPE := (RETAIN_JOB => FALSE, FILLER_1 => 0); type SMBMSG_QUEUING_CONTROL_TYPE is record QUEUING_FLAGS : SMBMSG_QUEUING_FLAGS_TYPE; -- Queuing flags end record; for SMBMSG_QUEUING_CONTROL_TYPE use record QUEUING_FLAGS at 0 range 0 .. 31; end record; for SMBMSG_QUEUING_CONTROL_TYPE'SIZE use 32; SMBMSG_QUEUING_CONTROL_TYPE_INIT : constant SMBMSG_QUEUING_CONTROL_TYPE := ( QUEUING_FLAGS => SMBMSG_QUEUING_FLAGS_TYPE_INIT ); end SMBDEF;