Trailing-Edge
-
PDP-10 Archives
-
BB-P363B-SM_1985
-
mcb/cex/cexlib.r16
There is 1 other file named cexlib.r16 in the archive. Click here to see a list.
! CEXLIB.R16 - CEX Structure definitions for MCBDA
!
! COPYRIGHT (C) 1980, 1981, 1982
! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754
!
! THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A SINGLE
! COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLUSION OF THE
! ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANY OTHER COPIES THEREOF,
! MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON
! EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE
! TERMS. TITLE TO AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES
! REMAIN IN DEC.
!
! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
! AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
! CORPORATION.
!
! DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
!
!++
! FACILITY: MCB Communications Executive
!
! FUNCTIONAL ABSTRACT:
!
! This module contains the Comm/Exec specific macros
!
! ENVIRONMENT: RSX kernel mode with EIS
!
! AUTHOR: Alan D. Peckham, CREATION DATE: 20-MAR-80
!
! MODIFIED BY:
!
! 01 - Use macros from MCBLIB
! 02 - Process descriptor re-organized.
!--
%if not %declared (XPO$K_VERSION) %then library 'BLI:XPORT'; %fi
%if not %declared (MCB$K_VERSION) %then library 'MCB:MCBLIB'; %fi
$SHOW (FIELDS) $SHOW (LITERALS)
!
! EQUATED SYMBOLS:
!
%if %bliss (bliss16) %then
linkage
CEX_LL_ADD_LOW_HIGH = jsr (register = 2, register = 1, register = 0; register = 1, register = 0),
CEX_LL_BLKS = jsr (register = 1) : preserve (0) clearstack valuecbit,
CEX_LL_CNT_LOW_HIGH = jsr (register = 2, register = 1, register = 0; register = 1, register = 0),
CEX_LL_NUM_LOW_HIGH = jsr (register = 2, register = 1, register = 0; register = 0, register = 1),
CEX_LL_NUM_NUM = jsr (register = 2, register = 0; register = 1, register = 0),
CEX_LL_PDB_FNC_MOD = jsr (register = 0, register = 2, register = 3)
: nopreserve (0, 1, 2, 3, 4, 5),
CEX_LL_PDB_DSP = jsr (register = 0, register = 2)
: nopreserve (0, 1, 2, 3, 4, 5);
%fi
macro
CEX$$ADD_32 = %name ('$ADD32') %,
CEX$$ADDRESS_ERROR_TRAP = %name ('$EX4') %,
CEX$$ALLOCATE_CORE = %name ('$BLKGT') %,
CEX$$BREAKPOINT_TRAP = %name ('$EX14') %,
CEX$$CLEAR_PROCESS = %name ('$PDBCL') %,
CEX$$CLEAR_PROCESS_NAME = %name ('$PNMCL') %,
CEX$$CLEAR_VECTOR = %name ('$VECCL') %,
CEX$$DISPATCH_PROCESS = %name ('$PRCDS') %,
CEX$$DIVIDE_32 = %name ('$DIV32') %,
CEX$$EMT_INSTRUCTION_TRAP = %name ('$EX30') %,
CEX$$ENTER_CEX = %name ('$CEXSV') %,
CEX$$EXIT_CEX = %name ('$CEXXT') %,
CEX$$GET_LINE_NAME = %name ('$SLTNM') %,
CEX$$GET_LINE_PROCESSES = %name ('$SLTGT') %,
CEX$$GET_PROCESS_INDEX = %name ('$PNMGT') %,
CEX$$GET_PROCESS_NAME = %name ('$PRCNM') %,
CEX$$ILLEGAL_INSTRUCTION_TRAP = %name ('$EX10') %,
CEX$$IOT_INSTRUCTION_TRAP = %name ('$EX20') %,
CEX$$MULTIPLY_32 = %name ('$MUL32') %,
CEX$$PARITY_ERROR_TRAP = %name ('$EX114') %,
CEX$$POWER_FAILURE_TRAP = %name ('$EX24') %,
CEX$$SEGMENT_FAULT_TRAP = %name ('$EX250') %,
CEX$$SET_EXCEPTION = %name ('$EXVEN') %,
CEX$$SET_LINE_PROCESSES = %name ('$SLTST') %,
CEX$$SET_PROCESS = %name ('$PDBST') %,
CEX$$SET_PROCESS_NAME = %name ('$PNMST') %,
CEX$$SET_VECTOR = %name ('$VECST') %,
CEX$$SHIFT_32 = %name ('$ASH32') %,
CEX$$SYNCHRONIZE_PROCESS = %name ('$SYNDS') %,
CEX$$TRAP_INSTRUCTION_TRAP = %name ('$EX34') %,
CEX$GW_AVG_CCB_DISPATCHES = %name ('.SMDSP') %,
CEX$GW_AVG_INTERRUPTS = %name ('.SMINT') %,
CEX$GW_AVG_LONG_TIMERS = %name ('.SMLTM') %,
CEX$GW_AVG_SHORT_TIMERS = %name ('.SMSTM') %,
CEX$GW_AVG_SYNCHS = %name ('.SMSYN') %,
CEX$GW_BLOCK_POOL_BIAS = %name ('.BLKTB') %,
CEX$GH_BUFFER_POOL_COUNT = %name ('.CORNM') %,
CEX$GA_BUFFER_POOL_TABLE = %name ('.CORTA') %,
CEX$GW_CCB_DISPATCH_COUNT = %name ('.DSPCT') %,
CEX$AG_CCB_DSR_ALLOCATION = %name ('.CCBDM') %,
CEX$GR_CCB_POOL = %name ('.CCBTB') %,
CEX$AA_CCB_QUEUE_H = %name ('.CBHQH') %,
CEX$AA_CCB_QUEUE_L = %name ('.CBLQH') %,
CEX$GA_CEX_FORK_BLOCK = %name ('.FRKBK') %,
CEX$GG_CEX_PROCESSING_DEPTH = %name ('.CEXDP') %,
CEX$AR_CEX_SYNCH_BLOCK = %name ('.PDSYN') %,
CEX$GB_CURRENT_PROCESS_INDEX = %name ('.CRPIX') %,
CEX$GA_CURRENT_INTERRUPT = %name ('.INTCB') %,
CEX$GA_CURRENT_PROCESS = %name ('.CRPDB') %,
CEX$GA_DTE_BOOT_ROM_ADDRESS = %name ('.DTERG') %,
CEX$GR_DUMP_EXCEPTION = %name ('.MEXVD') %,
CEX$GR_INTERRUPT_4_BLOCK = %name ('.INTC4') %,
CEX$GR_INTERRUPT_5_BLOCK = %name ('.INTC5') %,
CEX$GR_INTERRUPT_6_BLOCK = %name ('.INTC6') %,
CEX$GR_INTERRUPT_7_BLOCK = %name ('.INTC7') %,
CEX$GR_LAST_CHANCE_EXCEPTION = %name ('.MEXVL') %,
CEX$GW_LONG_TIMER_COUNT = %name ('.LTMCT') %,
CEX$GW_MAXIMUM_PROCESSES = %name ('') %,
CEX$GA_PANIC_STACK = %name ('.PANSP') %,
CEX$GW_PANIC_STATUS = %name ('.PANPS') %,
CEX$GG_POWER_FAIL_COUNT = %name ('.PWRFL') %,
CEX$GR_PRIMARY_EXCEPTION = %name ('.MEXV1') %,
CEX$GH_PROCESS_COUNT = %name ('.PDBNM') %,
CEX$AG_PROCESS_DATA_BASE = %name ('.CRDAT') %,
CEX$GH_PROCESS_NAME_COUNT = %name ('.PNMNM') %,
CEX$GA_PROCESS_NAME_TABLE = %name ('.PNMTA') %,
CEX$AA_PROCESS_TABLE = %name ('.PDBVB') %,
CEX$GA_PROCESS_TABLE_END = %name ('.PDBVE') %,
CEX$AW_RANDOM_NUMBER_SEED = %name ('.RND') %,
CEX$AG_RDB_CORE_ALLOCATION = %name ('.RDBCM') %,
CEX$AG_RDB_DSR_ALLOCATION = %name ('.RDBDM') %,
CEX$GR_RDB_POOL = %name ('.RDBTB') %,
CEX$GG_RSX_APR6_MAPPING = %name ('.RSXMP') %,
CEX$GH_SCHEDULING_REQUESTS = %name ('.CEXRQ') %,
CEX$GR_SECONDARY_EXCEPTION = %name ('.MEXV2') %,
CEX$GW_SHORT_TIMER_COUNT = %name ('.STMCT') %,
CEX$GA_SHORT_TIMER_DISPATCH = %name ('.TIMDS') %,
CEX$GU_SIGNAL_CALLS = %name ('.DBGST') %,
CEX$GA_SIGNAL_CALL_FRAME = %name ('.DBGFP') %,
CEX$GA_SIGNAL_FRAME = %name ('.$IGREG') %,
CEX$GA_SIGNAL_MECHANISM = %name ('.MCHVC') %,
CEX$GG_SIGNAL_STACK_RELOCATION = %name ('$HANSP') %,
CEX$GG_SIGNAL_STATUS = %name ('.CEXST') %,
CEX$GU_SIGNAL_UNWIND_REQUEST = %name ('.UNWLV') %,
CEX$GW_STATISTICS_INTERVAL = %name ('.SMSEC') %,
CEX$GW_STATISTICS_TIMER = %name ('.SITIM') %,
CEX$GW_SYNCH_COUNT = %name ('.SYNCT') %,
CEX$AA_SYNCH_QUEUE = %name ('.SYNQH') %,
CEX$GH_SYSTEM_LINE_COUNT = %name ('.SLTNM') %,
CEX$GA_SYSTEM_LINE_TABLE = %name ('.SLTTA') %,
CEX$GA_UBM_DATA_BASE = %name ('.UBMTA') %;
literal
MCB$K_SET_EXCEPTION = 0^1,
MCB$K_SET_PROCESS = 1^1,
MCB$K_CLEAR_PROCESS = 2^1,
MCB$K_GET_PROCESS_INDEX = 3^1,
MCB$K_GET_PROCESS_NAME = 4^1,
MCB$K_SET_PROCESS_NAME = 5^1,
MCB$K_CLEAR_PROCESS_NAME = 6^1,
MCB$K_SET_VECTOR = 7^1,
MCB$K_CLEAR_VECTOR = 8^1,
MCB$K_GET_LINE_NAME = 9^1,
MCB$K_SET_LINE_PROCESSES = 10^1,
MCB$K_GET_LINE_PROCESSES = 11^1,
MCB$K_GET_DEVICE_NAME = 12^1;
!
! Buffer pool entry and buffer header.
!
macro
$CEX_BFPDEF =
field
$CEX_BFPFIELDS =
set
BFP$H_SIZE = [0, 0, 16, 0],
BFP$H_FREE_COUNT = [1, 0, 16, 0],
BFP$V_QUEUE = [2, 0, 0 %(4*16)%, 0],
BFP$W_QUEUE_FIRST_BIAS = [2, 0, 16, 0],
BFP$A_QUEUE_FIRST_ADDR = [3, 0, 16, 0],
BFP$W_QUEUE_LAST_BIAS = [4, 0, 16, 0],
BFP$A_QUEUE_LAST_ADDR = [5, 0, 16, 0],
BFP$G_ALLOCATION_FAILURES = [6, 0, 16, 0],
BFP$H_ALLOCATED = [7, 0, 16, 0],
BFP$W_ALLOCATED_BIAS = [8, 0, 16, 0],
BFP$W_ALLOCATED_BLKS = [9, 0, 16, 0],
! Initialization data
BFP$H_ALLOCATION_MAXIMUM = [8, 0, 16, 0],
BFP$H_ALLOCATION_MINIMUM = [9, 0, 16, 0]
tes,
$CEX_BFHFIELDS =
set
BFH$W_BIAS = [0, 0, 16, 0],
BFH$A_ADDRESS = [1, 0, 16, 0],
BFH$H_SIZE = [2, 0, 16, 0],
BFH$A_PROCESS = [3, 0, 16, 0]
tes;
literal
BFP$K_LENGTH = 10,
BFH$K_LENGTH = 4; %,
!
! CCB pool entry.
!
$CEX_CBPDEF =
field
$CEX_CBPFIELDS =
set
CBP$H_SIZE = [0, 0, 16, 0],
CBP$H_ALLOCATED = [1, 0, 16, 0],
CBP$G_ALLOCATION_FAILURES = [2, 0, 16, 0],
CBP$V_QUEUE = [3, 0, 0 %(2*16)%, 0],
CBP$A_QUEUE_FIRST = [3, 0, 16, 0],
CBP$A_QUEUE_LAST = [4, 0, 16, 0],
CBP$H_FREE_COUNT = [5, 0, 16, 0],
CBP$H_REQUESTS = [6, 0, 16, 0],
CBP$A_NEXT_PROCESS = [7, 0, 16, 0],
CBP$G_REQUEST_FLAG = [8, 0, 16, 0],
CBP$B_FUNCTION = [9, 0, 8, 0],
CBP$B_MODIFIER = [9, 8, 8, 0],
CBP$W_ALLOCATED_BIAS = [10, 0, 16, 0],
CBP$W_ALLOCATED_BLKS = [11, 0, 16, 0],
CBP$A_ALLOCATED_ADDRESS = [12, 0, 16, 0],
CBP$W_ALLOCATED_LENGTH = [13, 0, 16, 0],
! Initialization data
CBP$H_ALLOCATION_MAXIMUM = [10, 0, 16, 0],
CBP$H_ALLOCATION_MINIMUM = [11, 0, 16, 0]
tes;
literal
CBP$K_LENGTH = 14; %,
!
! CCB extensions
!
$CEX_CCBDEF =
field
$CEX_CCBFIELDS =
set
CCB$A_LINK = [0, 0, 16, 0],
CCB$A_CHAIN = [1, 0, 16, 0],
CCB$A_STACK = [2, 0, 16, 0],
CCB$B_OWNER_PROCESS_INDEX = [3, 0, 8, 0],
CCB$V_FLAGS = [3, 8, 8, 0],
CCB$V_RDB = [3, 8, 1, 0],
CCB$V_ACTIVE = [3, 9, 1, 0],
CCB$V_USED = [3, 10, 1, 0],
CCB$B_LINE_INDEX = [4, 0, 8, 0],
CCB$B_PROCESS_INDEX = [4, 8, 8, 0],
CCB$B_FUNCTION = [5, 0, 8, 0],
CCB$B_MODIFIER = [5, 8, 8, 0],
CCB$G_STATUS = [6, 0, 16, 1],
CCB$W_BIAS = [7, 0, 16, 0],
CCB$A_ADDRESS = [8, 0, 16, 0],
CCB$G_COUNT = [9, 0, 16, 0],
CCB$G_PARAMETER_1 = [10, 0, 16, 0],
CCB$G_PARAMETER_2 = [11, 0, 16, 0],
CCB$G_PARAMETER_3 = [12, 0, 16, 0],
CCB$G_PARAMETER_4 = [13, 0, 16, 0],
CCB$G_PARAMETER_5 = [14, 0, 16, 0],
CCB$A_DESTINATION_PROCESS = [15, 0, 16, 0],
CCB$A_SOURCE_PROCESS = [16, 0, 16, 0]
tes;
literal
CCB$K_LENGTH = 17; %,
!
! Exception vector
!
$CEX_EXVDEF =
field
$CEX_EXVFIELDS =
set
EXV$G_LEVEL = [0, 0, 16, 1],
EXV$A_PROCESS = [1, 0, 16, 0],
EXV$A_DISPATCH = [2, 0, 16, 0],
EXV$A_ENABLE_DATA = [3, 0, 16, 0]
tes;
literal
EXV$K_LENGTH = 4,
EXV$K_PRIMARY = 0,
EXV$K_SECONDARY = 1,
EXV$K_LAST_CHANCE = 2; %,
!
! Interrupt transfer and priority blocks
!
$CEX_ITBDEF =
field
$CEX_ITBFIELDS =
set
ITB$V_JSR_5 = [0, 0, 0 %(2*16)%, 0],
ITB$W_JSR_5_INSTRUCTION = [0, 0, 16, 0],
ITB$A_JSR_5_ADDRESS = [1, 0, 16, 0],
ITB$A_PROCESS = [2, 0, 16, 0],
ITB$A_DISPATCH = [3, 0, 16, 0]
tes,
$CEX_IPBFIELDS =
set
IPB$V_JSR_4 = [0, 0, 0 %(2*16)%, 0],
IPB$W_JSR_4_INSTRUCTION = [0, 0, 16, 0],
IPB$A_JSR_4_ADDRESS = [1, 0, 16, 0],
IPB$A_LINK = [2, 0, 16, 0],
IPB$A_PROCESS = [3, 0, 16, 0],
IPB$W_COUNT = [4, 0, 16, 0],
IPB$B_PRIORITY = [5, 0, 8, 0]
tes;
literal
ITB$K_LENGTH = 4,
IPB$K_LENGTH = 6; %,
!
! Process descriptor table
!
$CEX_PDTDEF =
field
$CEX_PDTFIELDS =
set
PDT$W_CODE_BIAS = [0, 0, 16, 0],
PDT$A_CODE_DISPATCH = [1, 0, 16, 0],
PDT$W_DATA_BIAS = [2, 0, 16, 0],
PDT$A_DATA_ADDRESS = [3, 0, 16, 0],
PDT$B_INDEX = [4, 0, 8, 0],
PDT$V_FLAGS = [4, 8, 8, 1],
PDT$V_UCB_INCLUDED = [4, 8, 1, 0],
PDT$V_DATA_BASE_INCLUDED = [4, 9, 1, 0],
PDT$V_PERMANENT = [4, 10, 1, 0],
PDT$V_KILL_PROCESS = [4, 11, 1, 0],
PDT$V_CCB_REQUESTED = [4, 12, 1, 0],
PDT$V_RDB_REQUESTED = [4, 14, 1, 0],
PDT$V_LONG_TIMER = [4, 15, 1, 1],
PDT$A_UCB = [5, 0, 16, 0],
! Initialization data
PDT$W_CODE_NAME = [0, 0, 16, 0],
PDT$A_DISPATCH_ADDRESS_ADDRESS = [1, 0, 16, 0]
tes;
literal
PDT$K_LENGTH = 6; %,
!
! Process header
!
$CEX_PHDDEF =
field
$CEX_PHDFIELDS =
set
PHD$W_NAME = [0, 0, 16, 0],
PHD$B_MCB_VERSION = [1, 0, 8, 0],
PHD$B_MCB_LEVEL = [1, 8, 8, 0],
PHD$W_BLKS = [2, 0, 16, 0],
PHD$A_PATCH = [3, 0, 16, 0],
PHD$A_SIGNAL = [4, 0, 16, 0],
PHD$A_LLC_TABLE = [5, 0, 16, 0],
PHD$A_DLC_TABLE = [6, 0, 16, 0],
PHD$A_DDM_TABLE = [7, 0, 16, 0],
PHD$L_CEX_IDENT = [8, 0, 0 %(32)%, 0],
PHD$W_CEX_IDENT_1 = [8, 0, 16, 0],
PHD$W_CEX_IDENT_2 = [9, 0, 16, 0],
PHD$V_BLISS = [12, 8, 1, 0],
PHD$V_RSX_TABLE_INCLUDED = [12, 9, 1, 0],
PHD$A_RSX_TABLE = [13, 0, 16, 0],
PHD$A_CEX_TABLE = [14, 0, 16, 0]
tes; %,
!
! Process name table
!
$CEX_PNMDEF =
field
$CEX_PNMFIELDS =
set
PNM$A_PROCESS = [0, 0, 16, 0],
PNM$W_NAME = [1, 0, 16, 0],
! Initialization data
PNM$W_PROCESS_INDEX = [0, 0, 16, 0]
tes;
literal
PNM$K_LENGTH = 2; %,
!
! System line table
!
$CEX_SLTDEF =
field
$CEX_SLTFIELDS =
set
SLT$V_BASE = [0, 0, %bpval, 0],
SLT$B_DDM_PROCESS_INDEX = [0, 0, 8, 0],
SLT$B_LINE_INDEX = [0, 8, 8, 0],
SLT$B_DLC_PROCESS_INDEX = [1, 0, 8, 0],
SLT$B_CONTROLLER = [1, 8, 8, 0],
SLT$B_LLC_PROCESS_INDEX = [2, 0, 8, 0],
SLT$B_UNIT = [2, 8, 8, 0],
SLT$A_DEVICE = [3, 0, 16, 0]
tes;
literal
SLT$K_LENGTH = 4; %,
!
! SYNCH block
!
$CEX_SYNDEF =
field
$CEX_SYNFIELDS =
set
SYN$A_LINK = [0, 0, 16, 0],
SYN$A_PROCESS = [1, 0, 16, 0],
SYN$A_DISPATCH = [2, 0, 16, 0]
tes;
literal
SYN$K_LENGTH = 3; %,
!
! Timer block
!
$CEX_TMBDEF =
field
$CEX_TMBFIELDS =
set
TMB$B_UNIT = [1, 8, 8, 0],
TMB$W_IDENTIFIER = [2, 0, 16, 0],
TMB$G_MAGNITUDE = [7, 0, 16, 0],
TMB$A_PROCESS = [8, 0, 16, 0]
tes;
literal
TMB$K_LENGTH = 9,
TMB$K_MILLISECONDS = 0,
TMB$K_SECONDS = 2; %,
!
! Unibus Mapping tabld
!
$CEX_UBMDEF =
field
$CEX_UBMFIELDS =
set
UBM$A_LINK = [0,0,16,0],
UBM$W_START_BLK = [1,0,16,0],
UBM$W_END_BLK = [2,0,16,0],
UBM$B_BASE_UBMR = [3,0,8,0]
tes;
literal
UBM$K_LENGTH = 4 ; %;
!
! [End of CEXLIB.R16]