blob: 105b019959ad0b22b16fe7d3fddc1f638d33e11c [file] [log] [blame]
/** @file
Callbacks required by the HII of the Opal UEFI Driver to help display
Opal device information.
Copyright (c) 2016 - 2019, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include "OpalHii.h"
/**
Get the driver image handle.
@retval the driver image handle.
**/
EFI_HANDLE
HiiGetDriverImageHandleCB (
VOID
)
{
return gImageHandle;
}
/**
Returns the opaque pointer to a physical disk context.
@param DiskIndex Input the disk index.
@retval The device pointer.
**/
VOID *
HiiGetDiskContextCB (
UINT8 DiskIndex
)
{
OPAL_DRIVER_DEVICE *Dev;
UINT8 CurrentDisk;
Dev = OpalDriverGetDeviceList ();
CurrentDisk = 0;
if (DiskIndex >= GetDeviceCount ()) {
return NULL;
}
while (Dev != NULL) {
if (CurrentDisk == DiskIndex) {
return Dev;
} else {
Dev = Dev->Next;
CurrentDisk++;
}
}
return NULL;
}
/**
Returns the opaque pointer to a physical disk context.
@param DiskIndex Input the disk index.
@retval The device pointer.
**/
OPAL_DISK *
HiiGetOpalDiskCB (
UINT8 DiskIndex
)
{
VOID *Ctx;
OPAL_DRIVER_DEVICE *Tmp;
Ctx = HiiGetDiskContextCB (DiskIndex);
if (Ctx == NULL) {
return NULL;
}
Tmp = (OPAL_DRIVER_DEVICE *)Ctx;
return &Tmp->OpalDisk;
}
/**
Returns the disk name.
@param DiskIndex Input the disk index.
@retval Returns the disk name.
**/
CHAR8 *
HiiDiskGetNameCB (
UINT8 DiskIndex
)
{
OPAL_DRIVER_DEVICE *Ctx;
Ctx = (OPAL_DRIVER_DEVICE *)HiiGetDiskContextCB (DiskIndex);
if (Ctx != NULL) {
if (Ctx->NameZ == NULL) {
OpalDriverGetDriverDeviceName (Ctx);
}
return Ctx->NameZ;
}
return NULL;
}