Add create_event to boot services

This commit is contained in:
Justin C. Miller
2020-02-22 14:27:53 -08:00
parent 3767a07d8e
commit fa5b91af51
2 changed files with 25 additions and 1 deletions

View File

@@ -14,6 +14,7 @@
namespace uefi {
namespace bs_impl {
using allocate_pages = status (*)(allocate_type, memory_type, uint64_t, uintptr_t*);
using create_event = status (*)(evt, tpl, event_notify, void*, event*);
using locate_protocol = status (*)(const guid *, void *, void **);
}
@@ -34,7 +35,7 @@ struct boot_services {
void *free_pool;
// Event & Timer Services
void *create_event;
bs_impl::create_event create_event;
void *set_timer;
void *wait_for_event;
void *signal_event;

View File

@@ -12,6 +12,7 @@
namespace uefi {
using handle = void *;
using event = void *;
constexpr uint64_t error_bit = 0x8000000000000000ull;
constexpr uint64_t make_error(uint64_t e) { return e|error_bit; }
@@ -57,6 +58,28 @@ enum class allocate_type : uint32_t
address
};
enum class evt : uint32_t
{
notify_wait = 0x00000100,
notify_signal = 0x00000200,
signal_exit_boot_services = 0x00000201,
signal_virtual_address_change = 0x60000201,
runtime = 0x40000000,
timer = 0x80000000
};
enum class tpl : uint64_t
{
application = 4,
callback = 8,
notify = 16,
high_level = 31
};
using event_notify = status (*)(event, void*);
} // namespace uefi
#endif