forked from Bananymous/banan-os
38 lines
778 B
C++
38 lines
778 B
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <optional>
|
|
#include <ostream>
|
|
#include <string_view>
|
|
|
|
struct GUID
|
|
{
|
|
static std::optional<GUID> from_string(std::string_view);
|
|
|
|
uint32_t component1;
|
|
uint16_t component2;
|
|
uint16_t component3;
|
|
// last 2 components are combined so no packed needed
|
|
uint8_t component45[8];
|
|
|
|
bool operator==(const GUID& other) const;
|
|
};
|
|
|
|
std::ostream& operator<<(std::ostream& out, const GUID& guid);
|
|
|
|
// unused 00000000-0000-0000-0000-000000000000
|
|
static constexpr GUID unused_guid = {
|
|
0x00000000,
|
|
0x0000,
|
|
0x0000,
|
|
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
|
|
};
|
|
|
|
// bios boot 21686148-6449-6E6F-744E-656564454649
|
|
static constexpr GUID bios_boot_guid = {
|
|
0x21686148,
|
|
0x6449,
|
|
0x6E6F,
|
|
{ 0x74, 0x4E, 0x65, 0x65, 0x64, 0x45, 0x46, 0x49 }
|
|
};
|