This command is for use on Alpha and Integrity servers only. It connects a hardware device and loads its driver, if the driver is not already loaded. On VAX systems, use the SYSGEN command CONNECT. You must have CMKRNL and SYSLCK privileges to use the SYSMAN IO CONNECT command. Format IO CONNECT device-name[:]
1 – Parameter
device-name[:] Specifies the name of the hardware device to be connected. The device name requires the following format: device-type controller unit-number For example, in the designation LPA0, LP is a line printer on controller A at unit number 0. If you use the /NOADAPTER qualifier, the device is the software to be loaded.
2 – Qualifiers
2.1 /ADAPTER
/ADAPTER=tr_number /NOADAPTER (default) Specifies the nexus number of the adapter to which the specified device is connected. It is a nonnegative 32-bit integer. The /NOADAPTER qualifier indicates that the device is not associated with any particular hardware. The /NOADAPTER qualifier is compatible with the /DRIVER_NAME qualifier only.
2.2 /CSR
/CSR=csr_address Specifies the CSR address for the device being configured. This address must be specified in hexadecimal. You must precede the CSR address with %X. The CSR address is a quadword value that is loaded into IDB$Q_CSR without any interpretation by SYSMAN. This address can be physical or virtual, depending on the specific device being connected: o /CSR=%X3A0140120 for a physical address o /CSR=%XFFFFFFFF807F8000 for a virtual address (the sign extension is required for Alpha and Integrity servers virtual addresses) This qualifier is required if /ADAPTER=tr_number is specified.
2.3 /DRIVER_NAME
/DRIVER_NAME=filespec Specifies the name of the device driver that you are loading. If you do not specify this qualifier, SYSMAN obtains the default in the same way that the SYSGEN default name is determined. For example, if you want to load the VSI-supplied SYS$ELDRIVER.EXE, the prefix SYS$ must be present. Without the SYS$, SYSMAN looks for ELDRIVER.EXE in SYS$LOADABLE_IMAGES. This implementation separates the user device driver namespace from the VSI-supplied device driver namespace.
2.4 /LOG
/LOG=(ALL,CRB,DDB,DPT,IDB,SB,UCB) /NOLOG (default) Controls whether SYSMAN displays the addresses of the specified control blocks. The default value for the /LOG qualifier is /LOG=ALL. If /LOG=UCB is specified, a message similar to the following one is displayed: %SYSMAN-I-IOADDRESS, the UCB is located at address 805AB000
2.5 /MAX_UNITS
/MAX_UNITS=maximum-number-of-units Specifies the maximum number of units the driver can support. The default is specified in the driver prologue table (DPT) of the driver. If the number is not specified in the DPT, the default is 8. This number must be greater than or equal to the number of units specified by /NUM_UNITS. This qualifier is optional.
2.6 /NUM_UNITS
/NUM_UNITS=number-of-units Specifies the number of units to be created. The starting device number is the number specified in the device name parameter. For example, the first device in DKA0 is 0. Subsequent devices are numbered sequentially. The default is 1. This qualifier is optional.
2.7 /NUM_VEC
/NUM_VEC=vector-count Specifies the number of vectors for this device. The default vector count is 1. The /NUM_VEC qualifier is optional. This qualifier should be used only when using the /VECTOR_SPACING qualifier. When using the /NUM_VEC qualifier, you must also use the /VECTOR qualifier to supply the base vector.
2.8 /SYS_ID
/SYS_ID=number-of-remote-system Indicates the SCS system ID of the remote system to which the device is to be connected. It is a 64-bit integer; you must specify the remote system number in hexadecimal. The default is the local system. This qualifier is optional.
2.9 /VECTOR
/VECTOR=(vector-address,...) Specifies the interrupt vectors for the device or lowest vector. This is either a byte offset into the SCB of the interrupt vector for directly vectored interrupts or a byte offset into the ADP vector table for indirectly vectored interrupts. The values must be longword aligned. To specify the vector address in octal or hexadecimal, precede the address with %O or %X, respectively. The /VECTOR qualifier is required when you use the /ADAPTER=tr_number qualifier or the /NUM_VEC=vector-count qualifier. You can list up to 64 vectors.
2.10 /VECTOR_SPACING
/VECTOR_SPACING=number-of-bytes-between-vectors Specifies the spacing between vectors. Specify the amount as a multiple of 16 bytes. The default is 16. You must specify both the base vector with /VECTOR and the number of vectors with /NUM_ VEC. This qualifier is optional.
3 – Description
The SYSMAN IO CONNECT command connects a hardware device and loads its driver, if the driver is not already loaded. You must have CMKRNL and SYSLCK privileges to use the SYSMAN IO CONNECT command. The chapter "Managing Peripheral Devices" in the VSI OpenVMS System Manager's Manual contains information about file-based device configuration support.
4 – Examples
1.SYSMAN> IO CONNECT DKA0:/DRIVER_NAME=SYS$DKDRIVER/CSR=%X80AD00- /ADAPTER=4/NUM_VEC=3/VECTOR_SPACING=%X10/VECTOR=%XA20/LOG %SYSMAN-I-IOADDRESS, the CRB is located at address 805AEC40 %SYSMAN-I-IOADDRESS, the DDB is located at address 805AA740 %SYSMAN-I-IOADDRESS, the DPT is located at address 80D2A000 %SYSMAN-I-IOADDRESS, the IDB is located at address 805AEE80 %SYSMAN-I-IOADDRESS, the SB is located at address 80417F80 %SYSMAN-I-IOADDRESS, the UCB is located at address 805B68C0 The command in this example connects device DKA0, loads driver SYS$DKDRIVER, and specifies the following data: Physical CSR address Adapter number Number of vectors Spacing between vectors Interrupt vector address The /LOG qualifier displays the addresses of all control blocks, as shown. 2.SYSMAN> IO CONNECT DKA0:/DRIVER_NAME=SYS$DKDRIVER/CSR=%X80AD00- /ADAPTER=4/VECTOR=(%XA20,%XA30,%XA40)/LOG=(CRB,DPT,UCB) %SYSMAN-I-IOADDRESS, the CRB is located at address 805AEC40 %SYSMAN-I-IOADDRESS, the DPT is located at address 80D2A000 %SYSMAN-I-IOADDRESS, the UCB is located at address 805B68C0 The command in this example connects device DKA0, loads driver SYS$DKDRIVER, and specifies the following data: Physical CSR address Adapter number Addresses for interrupt vectors The /LOG qualifier displays the addresses of the channel request block (CRB), the driver prologue table (DPT), and the unit control block (UCB). 3.SYSMAN> IO CONNECT FTA0:/DRIVER=SYS$FTDRIVER/NOADAPTER/LOG=(ALL) %SYSMAN-I-IOADDRESS, the CRB is located at address 805AEC40 %SYSMAN-I-IOADDRESS, the DDB is located at address 805AA740 %SYSMAN-I-IOADDRESS, the DPT is located at address 80D2A000 %SYSMAN-I-IOADDRESS, the IDB is located at address 805AEE80 %SYSMAN-I-IOADDRESS, the SB is located at address 80417F80 %SYSMAN-I-IOADDRESS, the UCB is located at address 805B68C0 The command in this example connects pseudoterminal FTA0, loads driver SYS$FTDRIVER, and uses the /NOADAPTER qualifier to indicate that FTA0 is not an actual hardware device. The /LOG=(ALL) qualifier displays the addresses of all control blocks, as shown. For more information about loading and configuring device drivers, see Writing OpenVMS Alpha Device Drivers in C (Margie Sherlock and Leonard S. Szubowicz, Digital Press, 1996).