Skip to content

Commit

Permalink
Set carry flag before calling INT 15,e801 and INT 15,e820.
Browse files Browse the repository at this point in the history
Ignore carry flag for INT 15,88; the Ralf Brown interrupt list says
that CF is unreliable for this call.
  • Loading branch information
Michael Brown committed May 24, 2006
1 parent 7a53d07 commit 53935e9
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/arch/i386/firmware/pcbios/memmap.c
Expand Up @@ -76,6 +76,7 @@ static unsigned int extmemsize_e801 ( void ) {
unsigned int extmem;

REAL_EXEC ( rm_mem_e801,
"stc\n\t"
"int $0x15\n\t"
"pushfw\n\t"
"popw %w0\n\t",
Expand Down Expand Up @@ -111,10 +112,8 @@ static unsigned int extmemsize_88 ( void ) {
uint16_t extmem;

REAL_EXEC ( rm_mem_88,
"int $0x15\n\t"
"jnc 1f\n\t"
"xorw %%ax, %%ax\n\t"
"\n1:\n\t",
/* Ignore CF; it is not reliable for this call */
"int $0x15\n\t",
1,
OUT_CONSTRAINTS ( "=a" ( extmem ) ),
IN_CONSTRAINTS ( "a" ( 0x8800 ) ),
Expand Down Expand Up @@ -155,6 +154,7 @@ static int meme820 ( struct memory_region *memmap, unsigned int entries ) {

do {
REAL_EXEC ( rm_mem_e820,
"stc\n\t"
"int $0x15\n\t"
"pushfw\n\t"
"popw %w0\n\t",
Expand Down

0 comments on commit 53935e9

Please sign in to comment.