mirror of
https://git.proxmox.com/git/efi-boot-shim
synced 2025-05-29 17:18:22 +00:00
Merge console_control.h and console.h
Since these are topically the same thing, they can live together. Signed-off-by: Peter Jones <pjones@redhat.com>
This commit is contained in:
parent
bc71a15ed5
commit
417077f8de
4
Makefile
4
Makefile
@ -38,9 +38,9 @@ VERSION = 0.4
|
|||||||
TARGET = shim.efi MokManager.efi.signed fallback.efi.signed
|
TARGET = shim.efi MokManager.efi.signed fallback.efi.signed
|
||||||
OBJS = shim.o netboot.o cert.o replacements.o
|
OBJS = shim.o netboot.o cert.o replacements.o
|
||||||
KEYS = shim_cert.h ocsp.* ca.* shim.crt shim.csr shim.p12 shim.pem shim.key
|
KEYS = shim_cert.h ocsp.* ca.* shim.crt shim.csr shim.p12 shim.pem shim.key
|
||||||
SOURCES = shim.c shim.h netboot.c include/PeImage.h include/wincert.h include/console.h replacements.c replacements.h include/console_control.h
|
SOURCES = shim.c shim.h netboot.c include/PeImage.h include/wincert.h include/console.h replacements.c replacements.h
|
||||||
MOK_OBJS = MokManager.o PasswordCrypt.o crypt_blowfish.o
|
MOK_OBJS = MokManager.o PasswordCrypt.o crypt_blowfish.o
|
||||||
MOK_SOURCES = MokManager.c shim.h include/console_control.h PasswordCrypt.c PasswordCrypt.h crypt_blowfish.c crypt_blowfish.h
|
MOK_SOURCES = MokManager.c shim.h include/console.h PasswordCrypt.c PasswordCrypt.h crypt_blowfish.c crypt_blowfish.h
|
||||||
FALLBACK_OBJS = fallback.o
|
FALLBACK_OBJS = fallback.o
|
||||||
FALLBACK_SRCS = fallback.c
|
FALLBACK_SRCS = fallback.c
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
#include <efilib.h>
|
#include <efilib.h>
|
||||||
#include <Library/BaseCryptLib.h>
|
#include <Library/BaseCryptLib.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include "console_control.h"
|
|
||||||
#include "shim.h"
|
#include "shim.h"
|
||||||
#include "PeImage.h"
|
#include "PeImage.h"
|
||||||
#include "PasswordCrypt.h"
|
#include "PasswordCrypt.h"
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
#ifndef _SHIM_LIB_CONSOLE_H
|
||||||
|
#define _SHIM_LIB_CONSOLE_H 1
|
||||||
|
|
||||||
EFI_INPUT_KEY
|
EFI_INPUT_KEY
|
||||||
console_get_keystroke(void);
|
console_get_keystroke(void);
|
||||||
void
|
void
|
||||||
@ -19,3 +22,47 @@ console_notify(CHAR16 *string);
|
|||||||
void
|
void
|
||||||
console_reset(void);
|
console_reset(void);
|
||||||
#define NOSEL 0x7fffffff
|
#define NOSEL 0x7fffffff
|
||||||
|
|
||||||
|
#define EFI_CONSOLE_CONTROL_PROTOCOL_GUID \
|
||||||
|
{ 0xf42f7782, 0x12e, 0x4c12, {0x99, 0x56, 0x49, 0xf9, 0x43, 0x4, 0xf7, 0x21} }
|
||||||
|
|
||||||
|
typedef struct _EFI_CONSOLE_CONTROL_PROTOCOL EFI_CONSOLE_CONTROL_PROTOCOL;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
EfiConsoleControlScreenText,
|
||||||
|
EfiConsoleControlScreenGraphics,
|
||||||
|
EfiConsoleControlScreenMaxValue
|
||||||
|
} EFI_CONSOLE_CONTROL_SCREEN_MODE;
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE) (
|
||||||
|
IN EFI_CONSOLE_CONTROL_PROTOCOL *This,
|
||||||
|
OUT EFI_CONSOLE_CONTROL_SCREEN_MODE *Mode,
|
||||||
|
OUT BOOLEAN *GopUgaExists, OPTIONAL
|
||||||
|
OUT BOOLEAN *StdInLocked OPTIONAL
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE) (
|
||||||
|
IN EFI_CONSOLE_CONTROL_PROTOCOL *This,
|
||||||
|
IN EFI_CONSOLE_CONTROL_SCREEN_MODE Mode
|
||||||
|
);
|
||||||
|
|
||||||
|
typedef
|
||||||
|
EFI_STATUS
|
||||||
|
(EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN) (
|
||||||
|
IN EFI_CONSOLE_CONTROL_PROTOCOL *This,
|
||||||
|
IN CHAR16 *Password
|
||||||
|
);
|
||||||
|
|
||||||
|
struct _EFI_CONSOLE_CONTROL_PROTOCOL {
|
||||||
|
EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE GetMode;
|
||||||
|
EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE SetMode;
|
||||||
|
EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN LockStdIn;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern VOID setup_console (int text);
|
||||||
|
|
||||||
|
#endif /* _SHIM_LIB_CONSOLE_H */
|
||||||
|
@ -1,46 +0,0 @@
|
|||||||
#ifndef _SHIM_CONSOLE_CONTROL_H
|
|
||||||
#define _SHIM_CONSOLE_CONTROL_H 1
|
|
||||||
|
|
||||||
#define EFI_CONSOLE_CONTROL_PROTOCOL_GUID \
|
|
||||||
{ 0xf42f7782, 0x12e, 0x4c12, {0x99, 0x56, 0x49, 0xf9, 0x43, 0x4, 0xf7, 0x21} }
|
|
||||||
|
|
||||||
typedef struct _EFI_CONSOLE_CONTROL_PROTOCOL EFI_CONSOLE_CONTROL_PROTOCOL;
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
EfiConsoleControlScreenText,
|
|
||||||
EfiConsoleControlScreenGraphics,
|
|
||||||
EfiConsoleControlScreenMaxValue
|
|
||||||
} EFI_CONSOLE_CONTROL_SCREEN_MODE;
|
|
||||||
|
|
||||||
typedef
|
|
||||||
EFI_STATUS
|
|
||||||
(EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE) (
|
|
||||||
IN EFI_CONSOLE_CONTROL_PROTOCOL *This,
|
|
||||||
OUT EFI_CONSOLE_CONTROL_SCREEN_MODE *Mode,
|
|
||||||
OUT BOOLEAN *GopUgaExists, OPTIONAL
|
|
||||||
OUT BOOLEAN *StdInLocked OPTIONAL
|
|
||||||
);
|
|
||||||
|
|
||||||
typedef
|
|
||||||
EFI_STATUS
|
|
||||||
(EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE) (
|
|
||||||
IN EFI_CONSOLE_CONTROL_PROTOCOL *This,
|
|
||||||
IN EFI_CONSOLE_CONTROL_SCREEN_MODE Mode
|
|
||||||
);
|
|
||||||
|
|
||||||
typedef
|
|
||||||
EFI_STATUS
|
|
||||||
(EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN) (
|
|
||||||
IN EFI_CONSOLE_CONTROL_PROTOCOL *This,
|
|
||||||
IN CHAR16 *Password
|
|
||||||
);
|
|
||||||
|
|
||||||
struct _EFI_CONSOLE_CONTROL_PROTOCOL {
|
|
||||||
EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE GetMode;
|
|
||||||
EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE SetMode;
|
|
||||||
EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN LockStdIn;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern VOID setup_console (int text);
|
|
||||||
|
|
||||||
#endif /* _SHIM_CONSOLE_CONTROL_H */
|
|
@ -1,6 +1,6 @@
|
|||||||
TARGET = lib.a
|
TARGET = lib.a
|
||||||
|
|
||||||
LIBFILES = simple_file.o guid.o console.o execute.o configtable.o shell.o variables.o security_policy.o console_control.o
|
LIBFILES = simple_file.o guid.o console.o execute.o configtable.o shell.o variables.o security_policy.o
|
||||||
|
|
||||||
ARCH = $(shell uname -m | sed s,i[3456789]86,ia32,)
|
ARCH = $(shell uname -m | sed s,i[3456789]86,ia32,)
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2012 <James.Bottomley@HansenPartnership.com>
|
* Copyright 2012 <James.Bottomley@HansenPartnership.com>
|
||||||
|
* Copyright 2013 Red Hat Inc. <pjones@redhat.com>
|
||||||
*
|
*
|
||||||
* see COPYING file
|
* see COPYING file
|
||||||
*/
|
*/
|
||||||
@ -400,3 +401,31 @@ console_reset(void)
|
|||||||
uefi_call_wrapper(co->SetMode, 2, co, 0);
|
uefi_call_wrapper(co->SetMode, 2, co, 0);
|
||||||
uefi_call_wrapper(co->ClearScreen, 1, co);
|
uefi_call_wrapper(co->ClearScreen, 1, co);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VOID setup_console (int text)
|
||||||
|
{
|
||||||
|
EFI_STATUS status;
|
||||||
|
EFI_GUID console_control_guid = EFI_CONSOLE_CONTROL_PROTOCOL_GUID;
|
||||||
|
EFI_CONSOLE_CONTROL_PROTOCOL *concon;
|
||||||
|
static EFI_CONSOLE_CONTROL_SCREEN_MODE mode =
|
||||||
|
EfiConsoleControlScreenGraphics;
|
||||||
|
EFI_CONSOLE_CONTROL_SCREEN_MODE new_mode;
|
||||||
|
|
||||||
|
status = LibLocateProtocol(&console_control_guid, (VOID **)&concon);
|
||||||
|
if (status != EFI_SUCCESS)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (text) {
|
||||||
|
new_mode = EfiConsoleControlScreenText;
|
||||||
|
|
||||||
|
status = uefi_call_wrapper(concon->GetMode, 4, concon, &mode,
|
||||||
|
0, 0);
|
||||||
|
/* If that didn't work, assume it's graphics */
|
||||||
|
if (status != EFI_SUCCESS)
|
||||||
|
mode = EfiConsoleControlScreenGraphics;
|
||||||
|
} else {
|
||||||
|
new_mode = mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
uefi_call_wrapper(concon->SetMode, 2, concon, new_mode);
|
||||||
|
}
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
#include <efi.h>
|
|
||||||
#include <efilib.h>
|
|
||||||
|
|
||||||
#include "console_control.h"
|
|
||||||
|
|
||||||
VOID setup_console (int text)
|
|
||||||
{
|
|
||||||
EFI_STATUS status;
|
|
||||||
EFI_GUID console_control_guid = EFI_CONSOLE_CONTROL_PROTOCOL_GUID;
|
|
||||||
EFI_CONSOLE_CONTROL_PROTOCOL *concon;
|
|
||||||
static EFI_CONSOLE_CONTROL_SCREEN_MODE mode =
|
|
||||||
EfiConsoleControlScreenGraphics;
|
|
||||||
EFI_CONSOLE_CONTROL_SCREEN_MODE new_mode;
|
|
||||||
|
|
||||||
status = LibLocateProtocol(&console_control_guid, (VOID **)&concon);
|
|
||||||
if (status != EFI_SUCCESS)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (text) {
|
|
||||||
new_mode = EfiConsoleControlScreenText;
|
|
||||||
|
|
||||||
status = uefi_call_wrapper(concon->GetMode, 4, concon, &mode,
|
|
||||||
0, 0);
|
|
||||||
/* If that didn't work, assume it's graphics */
|
|
||||||
if (status != EFI_SUCCESS)
|
|
||||||
mode = EfiConsoleControlScreenGraphics;
|
|
||||||
} else {
|
|
||||||
new_mode = mode;
|
|
||||||
}
|
|
||||||
|
|
||||||
uefi_call_wrapper(concon->SetMode, 2, concon, new_mode);
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user