Specifications

OpenVMS System Routines Called by OpenVMS AXP Device Drivers
IOC$CRAM_CMD
IOC$CRAM_CMD
Generates values for the command, mask, and remote I/O interconnect address
fields of the hardware I/O mailbox that are specific to the interconnect that is the
target of the mailbox operation, inserting these values into the indicated mailbox,
buffer, or both.
Module
[CPUxxxx]IO_SUPPORT_xxxx
Macro
CRAM_CMD
Format
IOC$CRAM_CMD cmd_index ,byte_offset ,adp_ptr [,cram_ptr] [,buffer_ptr]
Context
IOC$CRAM_CMD conforms to the OpenVMS AXP calling standard. It acquires
no spin locks and leaves IPL unchanged. After inserting the hardware I/O
mailbox values into the CRAM or specified buffer, IOC$CRAM_CMD returns to
its caller.
Arguments
cmd_index
VMS Usage: longword_unsigned
type: longword (unsigned)
access: read only
mechanism: by value
Command index. IOC$CRAM_CMD uses this index to generate a mailbox
command that is specific to the tightly-coupled interconnect that is to be the
target of a request using this CRAM.
You can specify any of the following values (defined by the $CRAMDEF
macro), although which of these I/O operations is supported depends on the
I/O interconnect that is to be the object of the mailbox operation.
Command Index Description
CRAMCMD$K_RDQUAD32 Quadword read in 32-bit space
CRAMCMD$K_RDLONG32 Longword read in 32-bit space
CRAMCMD$K_RDWORD32 Word read in 32-bit space
CRAMCMD$K_RDBYTE32 Byte read in 32-bit space
CRAMCMD$K_WTQUAD32 Quadword write in 32-bit space
CRAMCMD$K_WTLONG32 Longword write in 32-bit space
CRAMCMD$K_WTWORD32 Word write in 32-bit space
where xxxx represents the internal OpenVMS code number for an AXP CPU
A–14