david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

Allow ourselves to be freed by basemem.c without being damaged.

This commit is contained in:
Michael Brown 2005-04-09 16:14:09 +00:00
parent 97ced37c71
commit 1f6dfd7047
1 changed files with 16 additions and 0 deletions

View File

@ -8,6 +8,9 @@
/* Drag in local definitions */
#include "librm.h"
/* Drag in FREE_BASEMEM_HEADER_SIZE */
#include "basemem.h"
/****************************************************************************
* This file defines librm: a block of code that is designed to reside
* permanently in base memory and provide the interface between
@ -129,6 +132,19 @@ _librm_start:
.equ _ ## sym, OFFSET(sym) ; \
sym
/****************************************************************************
* Note that the first sizeof(struct free_base_memory_header) bytes of
* librm will get vapourised by free_base_memory(). Since we need
* librm to continue working even when this happens, we put some
* padding here.
*
* We must also ensure that the total size of librm is <1kB, otherwise
* free_base_memory() will stomp somewhere in the middle of us as
* well...
****************************************************************************
*/
.fill FREE_BASEMEM_HEADER_SIZE, 1, 0
/****************************************************************************
* GDT for initial transition to protected mode
*