Ejemplos de secuencias de comandos de shell, Ejemplos – HP UEFI Manual del usuario

Página 72

Advertising
background image

Esta secuencia de comandos de ejemplo muestra algunas funciones de protocolo.

Código de ejemplo

Ejemplos de secuencias de comandos de Shell

Ejemplos

Los siguientes ejemplos de secuencias de comandos muestran cómo capturar una configuración
(exportar) para replicarla (importar) desde el archivo startup.nsh montado en un soporte virtual
de iLO.

fs0:\>

/** @file
Este es un ejemplo de aplicación Shell. Tenga en cuenta que existen
otras maneras de agregar comandos al shell. Este ejemplo
solo muestra una de ellas.

Copyright (c) 2013 Hewlett-Packard Development Company, L.P.

Este software contiene información confidencial propiedad de
Hewlett-Packard Company. Queda prohibida la reproducción total o parcial,
la transferencia de contenido a otros documentos, la divulgación de datos a terceros o la utilización
para cualquier otro fin distinto del fin para el que se obtuvo sin el previo
consentimiento por escrito de Hewlett-Packard Company.

**/

#include <Protocol/EfiShell.h>
#include <Library/UefiLib.h>
#include <Library/UefiBootServicesTableLib.h>

/**
Implementa la aplicación shell HelloWorld que imprime la
cadena "Hello World" en la pantalla y, a continuación, muestra la
revisión de UEFI Shell junto con las variables de entorno registradas en el sistema.
Este ejemplo muestra cómo crear una aplicación de UEFI Shell nueva
para ejecutar desde el símbolo del sistema de UEFI Shell.

@param ImageHandle Handle to the Image
@param SystemTable Pointer to the System Table

@retval EFI_SUCCESS In all cases
**/
EFI_STATUS
EFIAPI
UefiMain (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_SHELL_PROTOCOL *UefiShellProtocol;
CONST CHAR16 *ConstEnvNameList;
CONST CHAR16 *Value;
EFI_STATUS Status;

Print (L"Hello World!\n");

//
// Localización del protocolo de UEFI Shell
//
Status = gBS->OpenProtocol (
ImageHandle,
&gEfiShellProtocolGuid,
(VOID **)&UefiShellProtocol,
ImageHandle,
NULL,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
);

if (EFI_ERROR(Status)) {
//
// Búsqueda del protocolo de shell
//
Status = gBS->LocateProtocol (
&gEfiShellProtocolGuid,
NULL,
(VOID **)&UefiShellProtocol
);
if (EFI_ERROR(Status)) {
UefiShellProtocol = NULL;
return EFI_SUCCESS;
}
}

72

Uso del modelo de programación UEFI

Advertising
Este manual se refiere a los siguientes productos: