MOS Source Code
Toggle main menu visibility
Main Page
Topics
Classes
Class List
Class Index
Class Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
~
Functions
_
b
d
e
f
g
h
i
l
m
n
o
p
r
s
v
~
Variables
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
Enumerations
Enumerator
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
Typedefs
a
b
c
d
f
g
h
i
k
l
m
o
p
r
s
t
u
v
x
Enumerations
c
e
f
g
h
i
l
m
o
p
r
s
t
v
x
Enumerator
_
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
v
w
x
y
Macros
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
Examples
▼
MOS Source Code
►
Topics
►
Classes
▼
Files
▼
File List
►
build
▼
kernel
►
arch
►
device
►
filesystem
▼
include
▼
private
▼
mos
►
device
►
filesystem
►
interrupt
►
io
►
ipc
►
lib
►
locks
►
misc
▼
mm
▼
paging
►
pmlx
►
table_ops
►
dump.h
►
iterator.h
►
paging.h
►
pml_types.h
►
table_ops.h
►
physical
►
cow.h
►
dma.h
►
mm.h
►
mmap.h
►
mmstat.h
►
slab.h
►
slab_autoinit.h
►
platform
►
syslog
►
tasks
►
assert.h
►
ksyscall_entry.h
►
public
►
interrupt
►
io
►
ipc
►
lib
►
misc
►
mm
►
syslog
►
tasks
►
tests
►
kmain.c
►
ksyscall.c
►
ksyscall_entry.c
►
libs
►
File Members
►
Examples
•
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Loading...
Searching...
No Matches
iterator.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: GPL-3.0-or-later
2
3
#pragma once
4
5
#include "
mos/platform/platform.h
"
6
7
typedef
struct
8
{
9
bool
present
;
10
ptr_t
vaddr
, vaddr_end;
11
pfn_t
pfn
, pfn_end;
12
vm_flags
flags
;
13
}
pagetable_iter_range_t
;
7
typedef
struct
{
…
};
14
15
typedef
struct
16
{
17
pgd_t
pgd
;
18
19
ptr_t
start
;
20
ptr_t
end
;
21
ptr_t
vaddr
;
22
23
pagetable_iter_range_t
range
;
24
}
pagetable_iter_t
;
15
typedef
struct
{
…
};
25
34
void
pagetable_iter_init
(
pagetable_iter_t
*it,
pgd_t
pgd,
ptr_t
vaddr,
ptr_t
end);
35
42
pagetable_iter_range_t
*
pagetable_iter_next
(
pagetable_iter_t
*it);
pagetable_iter_init
void pagetable_iter_init(pagetable_iter_t *it, pgd_t pgd, ptr_t vaddr, ptr_t end)
Initialize a pagetable iterator.
Definition
iterator.c:82
pagetable_iter_next
pagetable_iter_range_t * pagetable_iter_next(pagetable_iter_t *it)
Get the next page table range.
Definition
iterator.c:97
platform.h
vm_flags
vm_flags
Definition
platform.h:40
pagetable_iter_range_t
Definition
iterator.h:8
pagetable_iter_range_t::vaddr
ptr_t vaddr
Definition
iterator.h:10
pagetable_iter_range_t::pfn
pfn_t pfn
Definition
iterator.h:11
pagetable_iter_range_t::present
bool present
Definition
iterator.h:9
pagetable_iter_range_t::flags
vm_flags flags
Definition
iterator.h:12
pagetable_iter_t
Definition
iterator.h:16
pagetable_iter_t::vaddr
ptr_t vaddr
Definition
iterator.h:21
pagetable_iter_t::pgd
pgd_t pgd
Definition
iterator.h:17
pagetable_iter_t::end
ptr_t end
Definition
iterator.h:20
pagetable_iter_t::start
ptr_t start
Definition
iterator.h:19
pagetable_iter_t::range
pagetable_iter_range_t range
Definition
iterator.h:23
pgd_t
Definition
pml_types.h:85
pfn_t
unsigned long long pfn_t
Definition
types.h:41
ptr_t
unsigned long ptr_t
Definition
types.h:25
kernel
include
private
mos
mm
paging
iterator.h
Generated on Sun Sep 1 2024 18:22:52 for MOS Source Code by
1.12.0