iPXE
Main Page
Related Pages
Modules
+
Data Structures
Data Structures
Data Structure Index
+
Data Fields
+
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Functions
_
b
d
i
p
s
t
u
v
x
+
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
+
Files
File List
+
Globals
+
All
_
a
b
c
d
e
f
g
h
i
j
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
j
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
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Typedefs
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
x
+
Enumerations
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
arch
x86
interface
pcbios
basemem.c
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2007 Michael Brown <mbrown@fensystems.co.uk>.
3
*
4
* This program is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU General Public License as
6
* published by the Free Software Foundation; either version 2 of the
7
* License, or any later version.
8
*
9
* This program is distributed in the hope that it will be useful, but
10
* WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17
* 02110-1301, USA.
18
*
19
* You can also choose to distribute this program under the terms of
20
* the Unmodified Binary Distribution Licence (as given in the file
21
* COPYING.UBDL), provided that you have satisfied its requirements.
22
*/
23
24
FILE_LICENCE
( GPL2_OR_LATER_OR_UBDL );
25
26
#include <
stdint.h
>
27
#include <
realmode.h
>
28
#include <
bios.h
>
29
#include <
basemem.h
>
30
#include <
ipxe/hidemem.h
>
31
32
/** @file
33
*
34
* Base memory allocation
35
*
36
*/
37
38
/**
39
* Set the BIOS free base memory counter
40
*
41
* @v new_fbms New free base memory counter (in kB)
42
*/
43
void
set_fbms
(
unsigned
int
new_fbms ) {
44
uint16_t
fbms = new_fbms;
45
46
/* Update the BIOS memory counter */
47
put_real
( fbms,
BDA_SEG
,
BDA_FBMS
);
48
49
/* Update our hidden memory region map */
50
hide_basemem
();
51
}
FILE_LICENCE
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
uint16_t
unsigned short uint16_t
Definition:
stdint.h:11
BDA_FBMS
#define BDA_FBMS
Definition:
bios.h:14
basemem.h
Base memory allocation.
put_real
#define put_real
Definition:
libkir.h:150
realmode.h
BDA_SEG
#define BDA_SEG
Definition:
bios.h:6
hidemem.h
Hidden memory regions.
set_fbms
void set_fbms(unsigned int new_fbms)
Set the BIOS free base memory counter.
Definition:
basemem.c:43
stdint.h
hide_basemem
void hide_basemem(void)
Hide used base memory.
Definition:
hidemem.c:107
bios.h
Generated by
1.8.15