!*** MODULE $WWIDDEF IDENT X-4 *** !DEC$ OPTIONS/ALIGN=(RECORDS=PACKED,COMMONS=PACKED)/NOWARN ! ! Longword header prefixed to the World-Wide Identifier used in fibre channel. ! A WWID can be in any one of the eleven formats specified here. At this time ! though, only seven of these formats (WWID types 1-4, 9-11) are implemented ! in OpenVMS. ! ! Note that this is a common header, used by OpenVMS, Digital UNIX, and the ! Console. Any changes to this structure should be made in cooperation with ! these other groups. ! PARAMETER WWIDHDR$M_WWID_LENGTH = '000FFFFF'X PARAMETER WWIDHDR$M_ASCII_DATA = '00100000'X PARAMETER WWIDHDR$M_WWID_TYPE = 'FF000000'X PARAMETER WWIDHDR$K_IEEE_REGEXT = '00000001'X ! 1: Page83, ID type 3, NAA 0110 PARAMETER WWIDHDR$K_IEEE_REG = '00000002'X ! 2: Page83, ID type 3, NAA 0101 PARAMETER WWIDHDR$K_PG83TY1_VID = '00000003'X ! 3: PID+Page83, ID type 1 PARAMETER WWIDHDR$K_PG80_SERIALNO = '00000004'X ! 4: VID+PID+Ser_No from Page80 PARAMETER WWIDHDR$K_INQ_SERIALNO = '00000005'X ! 5: VID+PID+Ser_No from std. inq. data PARAMETER WWIDHDR$K_TGT_IDENT = '00000006'X ! 6: VID+PID+Persistent_Tgt_ID PARAMETER WWIDHDR$K_BTL = '00000007'X ! 7: VID+PID+Bus_No+Tgt_ID+LUN PARAMETER WWIDHDR$K_DEC_UNIQUE = '00000008'X ! 8: HSZ-specific serial no's. PARAMETER WWIDHDR$K_HSZ_THISOTHER = '00000009'X ! 9: THIS/OTHER ser. no. (older HSZs) PARAMETER WWIDHDR$K_IEEE48_VEXT = '0000000A'X ! 10: Page83, ID type 3, NAA 0010 PARAMETER WWIDHDR$K_IEEE48_0EXT = '0000000B'X ! 11: Page83, ID type 3, NAA 0001 PARAMETER WWIDHDR$K_IEEE_EUI64 = '0000000C'X ! 12: Page83, ID type 2 PARAMETER WWIDHDR$K_ISCSI_NAME = '0000000D'X ! 13: X-4 iSCSI Name STRUCTURE /WWIDHDR/ PARAMETER WWIDHDR$S_WWID_LENGTH = 20 PARAMETER WWIDHDR$V_WWID_LENGTH = 0 ! Length of WWID data PARAMETER WWIDHDR$S_ASCII_DATA = 1 PARAMETER WWIDHDR$V_ASCII_DATA = 20 ! Data is in ASCII format PARAMETER WWIDHDR$S_RESERVED1 = 3 PARAMETER WWIDHDR$V_RESERVED1 = 21 ! Reserved PARAMETER WWIDHDR$S_WWID_TYPE = 8 PARAMETER WWIDHDR$V_WWID_TYPE = 24 BYTE %FILL (4) ! WWID format type END STRUCTURE ! WWIDHDR ! ! World-Wide Identifier ! ! Includes the 4-byte header defined above and the body of the WWID. The ! largest WWID is currently the type that includes Vendor ID (8 bytes), ! Product ID (16 bytes), and Serial Number (up to 251 bytes). Rounding up ! to the nearest quadword boundary, this comes out to 276 bytes. ! STRUCTURE /WWID/ RECORD /WWIDHDR/ WWID$R_HEADER BYTE WWID$B_DATA(1:276) END STRUCTURE ! WWID PARAMETER WWID$K_LENGTH = '00000118'X ! ! Serial Number WWID ! ! This is the WWID that gets put together from both standard and Page 80 ! inquiry data. The Product ID and Vendor ID come from standard inquiry data. ! The Serial Number comes from Vital Product Data Page 80. The Header is the ! standard WWID header defined above. ! STRUCTURE /SN_WWID/ RECORD /WWIDHDR/ SN_WWID$R_HEADER BYTE SN_WWID$B_VENDOR_ID(1:8) BYTE SN_WWID$B_PRODUCT_ID(1:16) BYTE SN_WWID$B_SERIAL_NO(1:252) END STRUCTURE ! SN_WWID PARAMETER SN_WWID$K_LENGTH = '00000118'X ! ! The longest WWID is one that is made from the device's serial number, ! product ID, and vendor ID. ! 4 8 16 <= 252 ! +------+------------+-------------------+-----------------------------------+ ! |Header| Vendor | Product | Serial Number | ! +------+------------+-------------------+-----------------------------------+ ! ! Maximum WWID length comes out to 4+8+16+252 = 280 bytes. ! PARAMETER WWID$K_MAX_LENGTH = '00000118'X ! ! WWID Table Entry ! ! The WWID table is created during boot by EXEC_INIT and is used by both ! EXEC_INIT and, later on in the boot, STACONFIG. The table stores informa- ! tion about all devices that have been registered by the user at the console. ! STRUCTURE /WWIDENT/ INTEGER*4 WWIDENT$L_UNIT_NO INTEGER*4 WWIDENT$L_DNP INTEGER*4 WWIDENT$L_WWIDLEN RECORD /WWIDHDR/ WWIDENT$R_HEADER BYTE WWIDENT$B_FCWWID(1:112) END STRUCTURE ! WWIDENT PARAMETER WWIDENT$K_LENGTH = '00000080'X PARAMETER WWIDTBL$K_MAX_ENTRIES = '000003E8'X ! Max. entries in a WWID Table ! ! This structure points to a Fibre Channel adapter ID. This WWID differs ! from the other WWIDs in this file in that it is obtained directly from ! the adapter rather than the SCSI Device Identification page. Consequently, ! there is no header, vendor, and product information associated with ! this 64 bit identifier. The format of this 64 bit WWID is an IEEE 48 bit ! address with additional information as defined in the FC-PH. But we ! don't really care about the FC-PH format since all we want to do is display ! the 64 bits using the asci hex format of XXXX-XXXX-XXXX-XXXX, which is the ! widely accepted format used to display this information. ! STRUCTURE /FC_WWID_64B/ BYTE FC_WWIDB_NAME(1:8) END STRUCTURE ! FC_WWID_64B !DEC$ END OPTIONS