Redundant Host API

The corresponding callback can be used to handle this situation. The callback is called with the bus lock held. Parameters to the callback include a list of entries identifying domain devices in unsafe states. These devices should be reset before the domain can be software connected and the device drivers can be started. However, reset may not be necessary for a specific device if it is known that this device is harmless for the system or the device driver can bring the device into a safe state before the bus lock is cleared.

If registered, the callback is called after a switchover even if no devices are considered unsafe by the RH infrastructure. In that case, the list of entries, passed as a parameter, is empty.

The callback has the following prototype:

typedef void (*RH_UNSAFE_SWITCHOVER_CALLBACK) ( IN uint32 Domain,

IN RH_SWITCHOVER_TYPE SwitchoverType, IN BOOLEAN SlotResetSupported,

IN uint32 UnsafeSlotCount,

IN OUT RH_SLOT_DESCRIPTOR *pUnsafeSlotDescriptors, IN void *pContext );

The callback has the following parameters:

Domain -

the number of the domain that has been acquired by the current host

SwitchoverType

the switchover type

SlotResetSupported

the Boolean flag that indicates whether the infrastructure supports per-

 

slot resets on the domain

UnsafeSlotCount

the number of descriptors for unsafe slots provided with the call

pUnsafeSlotDescriptors

the array of descriptors, each of which describes one slot that contains a

 

device in unsafe state

pContext -

the opaque context pointer passed unchanged from

 

RhEnableUnsafeSwitchoverNotification

Each descriptor describes a device that is directly installed in a physical slot or nested below a physical slot in the PCI hierarchy (if the physical slot is occupied by a PCI-PCI bridge device), and has the following fields:

Size -

this is the size of the structure including the variable-length SlotPath

 

field. To get to the next structure in the array, the caller should add this

 

value to the address of the current structure.

Device addressing attributes:

PhysicalSlot

the number of the physical slot in the format (shelf-ID, physical-slot-ID);

 

the device described by this descriptor resides in this slot or below this

 

slot

PhysSlotDepth

The number of bridging levels between this device and the physical slot;

 

if the device occupies the physical slot, this value is 0, otherwise it

 

indicates is the depth of the device below the physical slot

OwningHost

is set to the number of the current host

RootBusNumber

the PCI bus number of the root bus of the PCI hierarchy the device

 

resides in; is 0 for single-root PCI hierarchies. This value is 16 bit to

accommodate possible future extensions to PCI that allow more than 256 PCI buses in the system

74

High Availability Software for the Intel® NetStructureTM ZT 4901 Technical Product Specification

Page 74
Image 74
Intel ZT 4901 manual Device in unsafe state, Indicates is the depth of the device below the physical slot