/* * IDENT "X-1" * ************************************************************************* * * * © Copyright 2002 Compaq Information Technologies Group, L.P. * * * * Compaq and the Compaq logo are trademarks of Compaq Information * * Technologies Group, L.P. in the U.S. and/or other countries. * * * * Confidential computer software. * * Valid license from Compaq required for possession, use or copying. * * Consistent with FAR 12.211 and 12.212, Commercial Computer Software, * * Computer Software Documentation, and Technical Data for Commercial * * Items are licensed to the U.S. Government under vendor's standard * * commercial license. * * * * Compaq shall not be liable for technical or editorial errors or * * omissions contained herein. The information is provided "as is" * * without warranty of any kind and is subject to change without notice. * * The warranties for Compaq products are set forth in the express * * warranty statements accompanying such products. Nothing herein * * should be construed as constituting an additional warranty. * * * ************************************************************************* * * * FACILITY: * * [IBOOTDRIVER] IBDTAB.H * * ABSTRACT: * * This module contains the boot driver selection support * for the Itanium OpenVMS. * * Author: * * Paul J. Rivera Creation Date: 25-Jul-2002 * * REVISION HISTORY: * * X-1 PJR102 Paul Rivera 23-OCT-2002 * Initial check-in. * */ #ifndef __IBDTAB_LOADED #define __IBDTAB_LOADED 1 #define IBDTAB$M_SUPPORT_DOSD 0x1 #define IBDTAB$M_SUPPORT_VA 0x2 struct ibdtab$r_ibdtab { void *ibdtab$q_bdtab_base; /* Boot Driver Table Base Entry */ unsigned int ibdtab$q_boot_device; /* Boot device type */ void *ibdtab$pl_driver_namtbl; /* Ptr to runtime driver name descriptor table */ int ibdtab$q_cpu_list; /* List of supported CPUs */ int (*ibdtab$q_qio) (); /* Driver QIO entry point */ int (*ibdtab$q_unit_init) (); /* Driver unit init entry */ int (*ibdtab$q_unit_disc) (); /* Driver unit disconnect entry */ int (*ibdtab$q_unit_reset) (); /* Driver unit reset */ int *ibdtab$q_node_number; /* Device node number */ unsigned int ibdtab$q_class_driver; /* Class driver device type */ unsigned int ibdtab$q_port_driver; /* Port driver device type */ unsigned int ibdtab$q_btdriver_name;/* PCI ID or name of the device */ unsigned int ibdtab$q_bdtab_size; /* Size of BDTAB */ __union { unsigned int ibdtab$q_flags; /* Driver flags defined as follows: */ __struct { /* ... */ unsigned ibdtab$v_support_dosd : 1; /* Driver supports dump file off system disk */ unsigned ibdtab$v_support_va : 1; /* Driver supports virtual addressing mode. */ unsigned ibdtab$v_fill_0_ : 6; } ibdtab$r_flag_fields; } ibdtab$r_flags_overlay; /* */ /* Define the LAN driver transfer vectors. */ /* */ int ibdtab$a_init_adapter; /* Address of the adapter initialization routine. */ int ibdtab$a_reinit_adapter; /* Address of the adapter reinitialization routine. */ int ibdtab$a_init_poll; /* Address of the initialization complete poll routine. */ int ibdtab$a_xmt_initiate; /* Address of the transmit initiate routine. */ int ibdtab$a_xmt_poll; /* Address of the transmit complete poll routine. */ int ibdtab$a_rcv_poll; /* Address of the receive complete poll routine. */ int ibdtab$a_rcv_release_buffer; /* Address of the release receive buffer routine. */ /* */ /* Define the LAN adapter characteristics. */ /* */ unsigned int ibdtab$l_lan_hdr_size; /* Minimum LAN header size. */ unsigned int ibdtab$l_min_xmt_size; /* Minimum transmit size (does not include minimum LAN header). */ unsigned int ibdtab$l_max_xmt_size; /* Maximum transmit size (does not include minimum LAN header). */ /* */ /* Define the device specific characteristics. */ /* */ unsigned int ibdtab$l_dma_map_regs_needed; /* Required number of DMA mapping registers. */ unsigned int ibdtab$l_initialization_time; /* Time in seconds required for selftest and initialization. */ /* */ /* Define ATA and ATAPI IDE characteristics. */ /* */ unsigned int ibdtab$l_ata_chan_pri; /* 0: Primary Channel 1: Secondary Channel */ unsigned int ibdtab$l_ata_drive_master; /* 0: Master Drive 1: Slave Drive */ unsigned int ibdtab$l_ata_lun; /* ATA Logical Unit Number */ unsigned int ibdtab$l_ata_pio; /* PIO mode setting */ unsigned int ibdtab$l_ata_dma; /* DMA mode setting */ /* */ /* Define SCSI characteristics. */ /* */ unsigned int ibdtab$l_scsi_id; /* Target SCSI ID */ unsigned int ibdtab$l_scsi_lun; /* Target SCSI LUN */ int *ibdtab$q_scsiDesc; /* SCSI Descriptor */ /* */ /* Define Fibre Channel characteristics. */ /* */ unsigned int ibdtab$l_fc_wwn; /* Target SCSI ID */ unsigned int ibdtab$l_fc_lun; /* Target SCSI LUN */ } ; #if !defined(__VAXC) #define ibdtab$q_flags ibdtab$r_flags_overlay.ibdtab$q_flags #define ibdtab$v_support_dosd ibdtab$r_flags_overlay.ibdtab$r_flag_fields.ibdtab$v_support_dosd #define ibdtab$v_support_va ibdtab$r_flags_overlay.ibdtab$r_flag_fields.ibdtab$v_support_va #endif /* #if !defined(__VAXC) */ struct namtbl$r_driver_namtbl { __union { __struct { /* only for bliss32 drivers */ unsigned int namtbl$l_designator_l; /* Counted string. ASCII device designator (eg. DK) */ unsigned int namtbl$l_designator_h; /* */ } namtbl$r_vector_fields; char namtbl$t_designator [8]; /* Counted string. ASCII device designator (eg. DK) */ } namtbl$r_designator_overlay; __union { /* Driver flags */ __int64 namtbl$iq_name_flags; unsigned int namtbl$l_name_flags_l; unsigned int namtbl$l_name_flags_h; } namtbl$r_name_flags_overlay; __union { __int64 namtbl$iq_driver_name_desc; __struct { unsigned short int namtbl$w_desc_length; unsigned short int namtbl$w_desc_flags; void *namtbl$pl_desc_ptr; } namtbl$r_desc_fields; } namtbl$r_name_desc_overlay; } ; #if !defined(__VAXC) #define namtbl$l_designator_l namtbl$r_designator_overlay.namtbl$r_vector_fields.namtbl$l_designator_l #define namtbl$l_designator_h namtbl$r_designator_overlay.namtbl$r_vector_fields.namtbl$l_designator_h #define namtbl$t_designator namtbl$r_designator_overlay.namtbl$t_designator #define namtbl$iq_name_flags namtbl$r_name_flags_overlay.namtbl$iq_name_flags #define namtbl$l_name_flags_l namtbl$r_name_flags_overlay.namtbl$l_name_flags_l #define namtbl$l_name_flags_h namtbl$r_name_flags_overlay.namtbl$l_name_flags_h #define namtbl$iq_driver_name_desc namtbl$r_name_desc_overlay.namtbl$iq_driver_name_desc #define namtbl$w_desc_length namtbl$r_name_desc_overlay.namtbl$r_desc_fields.namtbl$w_desc_length #define namtbl$w_desc_flags namtbl$r_name_desc_overlay.namtbl$r_desc_fields.namtbl$w_desc_flags #define namtbl$pl_desc_ptr namtbl$r_name_desc_overlay.namtbl$r_desc_fields.namtbl$pl_desc_ptr #endif /* #if !defined(__VAXC) */ #define NAME_FLAGS$M_HARDWARE 0x1 #define NAME_FLAGS$M_SYS_DEV 0x2 #define NAME_FLAGS$M_REMOTE 0x4 #define NAME_FLAGS$M_DEF_PREFIX 0x8 #define NAME_FLAGS$M_NO_CTRL_LTR 0x10 #define NAME_FLAGS$M_HW_CTRL_LTR 0x20 #define NAME_FLAGS$M_CTRL_LTR_A 0x40 #define NAME_FLAGS$M_UNIT_0 0x80 #define NAME_FLAGS$M_CREATE_DEV 0x100 struct name_flags$r_name_flags { unsigned name_flags$v_hardware : 1; /* Device requires CSR, vector and controller letter assignment, */ /* clear => no hardware. */ unsigned name_flags$v_sys_dev : 1; /* This is the driver for the system device, clear => not system device. */ unsigned name_flags$v_remote : 1; /* Use the SCS node name in the BTADP, clear => no node$ prefix. */ unsigned name_flags$v_def_prefix : 1; /* Use default name descriptor prefix, clear => use BTADP driver prefix. */ unsigned name_flags$v_no_ctrl_ltr : 1; /* Add controller letter, clear => ignore controller letter. */ unsigned name_flags$v_hw_ctrl_ltr : 1; /* Copy hardware controller letter to BTADP, clear => ignore HW ctrl ltr. */ unsigned name_flags$v_ctrl_ltr_a : 1; /* Use "A", clear => use (computed) controller letter in the BTADP. */ unsigned name_flags$v_unit_0 : 1; /* Use 0 as the unit number, clear => use the unit number in the BTADP. */ unsigned name_flags$v_create_dev : 1; /* Must create a new device, clear => device can already exist. */ unsigned name_flags$v_fill_1_ : 7; } ; #endif /* __IBDTAB_LOADED */