david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

rm_ss, rm_sp, and pm_esp don't need to be accessed from anywhere

outside of librm.S.
This commit is contained in:
Michael Brown 2007-09-25 19:20:38 +01:00
parent b8a8eea850
commit 0ed066bc50
3 changed files with 0 additions and 54 deletions

View File

@ -60,9 +60,6 @@ extern char *text16;
( ( ( void * ) &(variable) ) - ( ( void * ) text16 ) ) ) )
/* Variables in librm.S, present in the normal data segment */
extern uint16_t rm_sp;
extern uint16_t rm_ss;
extern uint32_t pm_esp;
extern uint16_t __data16 ( rm_cs );
#define rm_cs __use_data16 ( rm_cs )
extern uint16_t __text16 ( rm_ds );

View File

@ -528,11 +528,8 @@ rc_function: .word 0, 0
****************************************************************************
*/
.section ".data"
.globl rm_sp
rm_sp: .word 0
.globl rm_ss
rm_ss: .word 0
.globl pm_esp
pm_esp: .long _estack
/****************************************************************************

View File

@ -1,48 +0,0 @@
/*
* librm: a library for interfacing to real-mode code
*
* Michael Brown <mbrown@fensystems.co.uk>
*
*/
#ifdef KEEP_IT_REAL
/* Build a null object under -DKEEP_IT_REAL */
#else
#include <stdint.h>
#include <librm.h>
/*
* This file provides functions for managing librm.
*
*/
/*
* Allocate space on the real-mode stack and copy data there.
*
*/
uint16_t copy_to_rm_stack ( void *data, size_t size ) {
#ifdef DEBUG_LIBRM
if ( rm_sp <= size ) {
printf ( "librm: out of space in RM stack\n" );
lockup();
}
#endif
rm_sp -= size;
copy_to_real ( rm_ss, rm_sp, data, size );
return rm_sp;
};
/*
* Deallocate space on the real-mode stack, optionally copying back
* data.
*
*/
void remove_from_rm_stack ( void *data, size_t size ) {
if ( data ) {
copy_from_real ( data, rm_ss, rm_sp, size );
}
rm_sp += size;
};
#endif /* KEEP_IT_REAL */