// IDENT "X-1" // /////////////////////////////////////////////////////////////////////////////// // Copyright (c) 2017,2018 VMS Software, Inc. Bolton, Massachusetts, USA // // HEADER: VMS_CONSOLE.H // FACILITY: VMS_BOOTMGR // DESCRIPTION: Boot Manager Console IO Services, Callbacks and Structures. // // REVISION HISTORY: // // X-1 AHM Drew Mason 24-Jul-2018 // Checkin this boot manager H file for Gary. Add #define // for va_list if needed. #define __cdecl as null. // X-03 GMN Gary M. Newsted 23-Jul-2018 // Cleaned up for use by SYSBOOT et al. // X-02 GMN Gary M. Newsted 2-Apr-2018 // Added BOOTMGR_ExitBootServices service (service table version 7) // X-01 GMN Gary M. Newsted 8-Aug-2017 // First VSI edition. // /////////////////////////////////////////////////////////////////////////////// // #ifndef __VMS_CONSOLE_LOADED #define __VMS_CONSOLE_LOADED 1 #include // A few common UEFI data types #ifndef CHAR8 #define CHAR8 char #endif #ifndef INT32 #define INT32 __int32 #endif #ifndef UINT32 #define UINT32 unsigned __int32 #endif #ifndef UINT64 #define UINT64 unsigned __int64 #endif #ifndef va_list #define va_list __va_list #endif #define __cdecl // Useful UEFI Colors (Format: 24-bit 0x00RRGGBB) #define K_COLOR_BLACK 0x00000000 // Default Background #define K_COLOR_WHITE 0x00FFFFFF // Default Text #define K_COLOR_BLUE 0x000000FF // Full blue #define K_COLOR_DKBLUE 0x006060FF // Major Labels #define K_COLOR_LTBLUE 0x0010FFFF // General Text #define K_COLOR_REBLUE 0x00AFE1E1 // Robins Egg Blue #define K_COLOR_GREEN 0x0010C010 // Progress and Success Text #define K_COLOR_RED 0x00FF1010 // Error Text #define K_COLOR_VIOLET 0x00D000D0 // Default Prompt Text #define K_COLOR_YELLOW 0x00E0E010 // Warning Text #define K_COLOR_ORANGE 0x00FF8000 // Graphical Outlines #define K_COLOR_LIGHTSLATE 0x00B9B9B9 // Greyed out Text #define K_COLOR_DARKSLATE 0x006E6E6E // Greyed out Text #define K_COLOR_LIGHTBLUE 0x00B2E9FF // General Use #define K_COLOR_LTGREEN 0x00A7FF86 // General Use #define K_COLOR_DARKTEAL 0x00004040 // General Use typedef CHAR8(__cdecl *KEYBOARD_CHAR) ( ); typedef CHAR8* (__cdecl *KEYBOARD_STRING) ( ); typedef void(*VOID_FUNCTION) ( ); typedef UINT64(*CONSOLE_PRINT) ( UINT32 color, // A RGB color constant, or any custom color (no Alpha channel byte) const char *pFmt, // Pointer to a pre-formatted character string to output. ... ); typedef UINT64(*CONSOLE_VPRINT) ( UINT32 color, // A RGB color constant, or any custom color (no Alpha channel byte) const char *pFmt, // Pointer to a pre-formatted character string to output. va_list argp ); typedef UINT64(*SPECIAL_PRINT) ( const char *pFmt, // Pointer to a pre-formatted character string to output. ... ); typedef void(*STRING_FUNCTION) ( CHAR8 *pString // Passed or returned string pointer (caller allocated) ); typedef void(*SET_UINT32) ( UINT32 value // Sets a 32 bit value ); typedef UINT32(__cdecl *GET_UINT32) ( ); #define K_CONIO_TABLE_VERSION 8 typedef struct { UINT64 Version; // *** KEEP TABLE QUADWORD ALIGNED *** // CONIN - Keyboard Functions KEYBOARD_CHAR KB_Getc; // (CHAR8) Keyboard Character Input KEYBOARD_STRING KB_Gets; // (CHAR8*) Keyboard String Input VOID_FUNCTION KB_EOC; // void Issue End-Of-Command // CONOUT - Display Functions CONSOLE_PRINT PRINT_Console; // (color, fmt, ...) Variable color General Purpose SPECIAL_PRINT PRINT_Error; // (fmt, ...) Fixed Red ERRORS Not gated SPECIAL_PRINT PRINT_Warning; // (fmt, ...) Fixed Yellow WARNINGS Not gated SPECIAL_PRINT PRINT_Info; // (fmt, ...) Fixed White INFO Not gated SPECIAL_PRINT PRINT_Progress; // (fmt, ...) Fixed Green, PROGRESS Gated by boot flag PROGRESS // GRAPHICAL Functions STRING_FUNCTION GRAPHICS_SetPrompt; VOID_FUNCTION GRAPHICS_RedrawPrompt; GET_UINT32 GRAPHICS_GetCursor; SET_UINT32 GRAPHICS_SetCursor; GET_UINT32 GRAPHICS_GetBackgroundColor; SET_UINT32 GRAPHICS_SetBackgroundColor; GET_UINT32 GRAPHICS_GetForegroundColor; SET_UINT32 GRAPHICS_SetForegroundColor; VOID_FUNCTION GRAPHICS_ClearDisplay; // DUMP KERNEL Functions VOID_FUNCTION COMMAND_DumpKernelBoot; STRING_FUNCTION COMMAND_DumpKernelDevList; // New in V7 SET_UINT32 BOOTMGR_ExitBootServices; // Wraps UEFI service to allow switching keyboard handler // New in V8 CONSOLE_VPRINT PRINT_ConsoleVA; // (fmt, va_list) } BOOTMGR_CONIO_TABLE; #endif