Blame view
include/efi_selftest.h
3.27 KB
f739fcd83 SPDX: Convert a f... |
1 |
/* SPDX-License-Identifier: GPL-2.0+ */ |
623b3a579 efi_selftest: pro... |
2 3 4 5 |
/* * EFI application loader * * Copyright (c) 2017 Heinrich Schuchardt <xypron.glpk@gmx.de> |
623b3a579 efi_selftest: pro... |
6 7 8 9 10 11 12 13 |
*/ #ifndef _EFI_SELFTEST_H #define _EFI_SELFTEST_H #include <common.h> #include <efi.h> #include <efi_api.h> |
d78e40d65 efi_selftest: all... |
14 |
#include <efi_loader.h> |
623b3a579 efi_selftest: pro... |
15 |
#include <linker_lists.h> |
e67e7249c efi_selftest: mak... |
16 17 |
#define EFI_ST_SUCCESS 0 #define EFI_ST_FAILURE 1 |
a9a25cc3e efi_selftest: tes... |
18 |
#define EFI_ST_SUCCESS_STR L"SUCCESS" |
623b3a579 efi_selftest: pro... |
19 |
/* |
853540c84 efi_selftest: col... |
20 21 22 23 24 25 |
* Prints a message. */ #define efi_st_printf(...) \ (efi_st_printc(-1, __VA_ARGS__)) /* |
623b3a579 efi_selftest: pro... |
26 27 28 29 30 |
* Prints an error message. * * @... format string followed by fields to print */ #define efi_st_error(...) \ |
853540c84 efi_selftest: col... |
31 32 33 |
(efi_st_printc(EFI_LIGHTRED, "%s(%u): ERROR: ", __FILE__, __LINE__), \ efi_st_printc(EFI_LIGHTRED, __VA_ARGS__)) |
623b3a579 efi_selftest: pro... |
34 35 |
/* |
927ca890b efi_selftest: tes... |
36 37 38 39 40 |
* Prints a TODO message. * * @... format string followed by fields to print */ #define efi_st_todo(...) \ |
853540c84 efi_selftest: col... |
41 42 43 |
(efi_st_printc(EFI_YELLOW, "%s(%u): TODO: ", __FILE__, __LINE__), \ efi_st_printc(EFI_YELLOW, __VA_ARGS__)) \ |
927ca890b efi_selftest: tes... |
44 45 |
/* |
623b3a579 efi_selftest: pro... |
46 47 48 49 50 51 52 53 54 55 56 |
* A test may be setup and executed at boottime, * it may be setup at boottime and executed at runtime, * or it may be setup and executed at runtime. */ enum efi_test_phase { EFI_EXECUTE_BEFORE_BOOTTIME_EXIT = 1, EFI_SETUP_BEFORE_BOOTTIME_EXIT, EFI_SETUP_AFTER_BOOTTIME_EXIT, }; extern struct efi_simple_text_output_protocol *con_out; |
3e603ec75 efi_loader: struc... |
57 |
extern struct efi_simple_text_input_protocol *con_in; |
623b3a579 efi_selftest: pro... |
58 59 60 61 62 63 64 65 66 67 68 69 |
/* * Exit the boot services. * * The size of the memory map is determined. * Pool memory is allocated to copy the memory map. * The memory amp is copied and the map key is obtained. * The map key is used to exit the boot services. */ void efi_st_exit_boot_services(void); /* |
853540c84 efi_selftest: col... |
70 |
* Print a colored message |
623b3a579 efi_selftest: pro... |
71 |
* |
853540c84 efi_selftest: col... |
72 73 74 75 |
* @color color, see constants in efi_api.h, use -1 for no color * @fmt printf format * @... arguments to be printed * on return position of terminating zero word |
623b3a579 efi_selftest: pro... |
76 |
*/ |
853540c84 efi_selftest: col... |
77 78 |
void efi_st_printc(int color, const char *fmt, ...) __attribute__ ((format (__printf__, 2, 3))); |
623b3a579 efi_selftest: pro... |
79 |
|
262ff411c efi_selftest: ref... |
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
/** * efi_st_translate_char() - translate a unicode character to a string * * @code: unicode character * Return: string */ u16 *efi_st_translate_char(u16 code); /** * efi_st_translate_code() - translate a scan code to a human readable string * * @code: unicode character * Return: string */ u16 *efi_st_translate_code(u16 code); |
623b3a579 efi_selftest: pro... |
95 |
/* |
d78e40d65 efi_selftest: all... |
96 97 98 99 100 101 102 103 104 |
* Compare an u16 string to a char string. * * @buf1: u16 string * @buf2: char string * @return: 0 if both buffers contain the same bytes */ int efi_st_strcmp_16_8(const u16 *buf1, const char *buf2); /* |
623b3a579 efi_selftest: pro... |
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
* Reads an Unicode character from the input device. * * @return: Unicode character */ u16 efi_st_get_key(void); /** * struct efi_unit_test - EFI unit test * * An efi_unit_test provides a interface to an EFI unit test. * * @name: name of unit test * @phase: specifies when setup and execute are executed * @setup: set up the unit test * @teardown: tear down the unit test * @execute: execute the unit test |
d78e40d65 efi_selftest: all... |
121 |
* @on_request: test is only executed on request |
623b3a579 efi_selftest: pro... |
122 123 124 125 126 127 128 129 |
*/ struct efi_unit_test { const char *name; const enum efi_test_phase phase; int (*setup)(const efi_handle_t handle, const struct efi_system_table *systable); int (*execute)(void); int (*teardown)(void); |
d78e40d65 efi_selftest: all... |
130 |
bool on_request; |
623b3a579 efi_selftest: pro... |
131 132 133 134 135 136 137 |
}; /* Declare a new EFI unit test */ #define EFI_UNIT_TEST(__name) \ ll_entry_declare(struct efi_unit_test, __name, efi_unit_test) #endif /* _EFI_SELFTEST_H */ |