Iros
Loading...
Searching...
No Matches
initrd.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/util/prelude.h
"
4
5
namespace
iris::initrd
{
6
using
UUID
=
di::UUID
;
7
8
constexpr
inline
auto
signature
=
"b2bf882c-c789-4728-b4a0-b3b944078e29"
_uuid;
9
constexpr
inline
auto
block_size
= 4096_usize;
10
constexpr
inline
auto
directory_entry_align
= 8_usize;
11
12
// NOTE: keep this in sync with the iris::MetadataType enum.
13
enum class
Type
:
u8
{
14
Regular
= 1,
15
Directory
= 2,
16
};
17
18
struct
DirectoryEntry
{
19
u32
block_offset
;
20
u32
byte_size
;
21
u16
next_entry
;
22
Type
type
;
23
u8
name_length
;
24
25
auto
name
() const ->
di
::
TransparentStringView
{
26
return
di::TransparentStringView
{
reinterpret_cast<
char
const*
>
(
this
+ 1),
name_length
};
27
}
28
};
29
30
struct
SuperBlock
{
31
UUID
signature
;
32
UUID
generation
;
33
u64
created_at_seconds_since_epoch
;
34
u32
version
;
35
u32
total_size
;
36
DirectoryEntry
root_directory
;
37
};
38
}
di::util::UUID
Definition
uuid.h:18
prelude.h
di::container::TransparentStringView
string::StringViewImpl< string::TransparentEncoding > TransparentStringView
Definition
string_view.h:13
di::types::u64
__UINT64_TYPE__ u64
Definition
integers.h:12
di::types::u8
__UINT8_TYPE__ u8
Definition
integers.h:9
di::types::u32
__UINT32_TYPE__ u32
Definition
integers.h:11
di::types::u16
__UINT16_TYPE__ u16
Definition
integers.h:10
di
Definition
zstring_parser.h:9
iris::initrd
Definition
initrd.h:5
iris::initrd::signature
constexpr auto signature
Definition
initrd.h:8
iris::initrd::block_size
constexpr auto block_size
Definition
initrd.h:9
iris::initrd::UUID
di::UUID UUID
Definition
initrd.h:6
iris::initrd::Type
Type
Definition
initrd.h:13
iris::initrd::Type::Regular
@ Regular
Definition
initrd.h:14
iris::initrd::Type::Directory
@ Directory
Definition
initrd.h:15
iris::initrd::directory_entry_align
constexpr auto directory_entry_align
Definition
initrd.h:10
iris::initrd::DirectoryEntry
Definition
initrd.h:18
iris::initrd::DirectoryEntry::byte_size
u32 byte_size
Definition
initrd.h:20
iris::initrd::DirectoryEntry::block_offset
u32 block_offset
Definition
initrd.h:19
iris::initrd::DirectoryEntry::name
auto name() const -> di::TransparentStringView
Definition
initrd.h:25
iris::initrd::DirectoryEntry::name_length
u8 name_length
Definition
initrd.h:23
iris::initrd::DirectoryEntry::next_entry
u16 next_entry
Definition
initrd.h:21
iris::initrd::DirectoryEntry::type
Type type
Definition
initrd.h:22
iris::initrd::SuperBlock
Definition
initrd.h:30
iris::initrd::SuperBlock::total_size
u32 total_size
Definition
initrd.h:35
iris::initrd::SuperBlock::signature
UUID signature
Definition
initrd.h:31
iris::initrd::SuperBlock::version
u32 version
Definition
initrd.h:34
iris::initrd::SuperBlock::created_at_seconds_since_epoch
u64 created_at_seconds_since_epoch
Definition
initrd.h:33
iris::initrd::SuperBlock::root_directory
DirectoryEntry root_directory
Definition
initrd.h:36
iris::initrd::SuperBlock::generation
UUID generation
Definition
initrd.h:32
iris
include
iris
uapi
initrd.h
Generated by
1.13.0