aboutsummaryrefslogtreecommitdiffstats
path: root/src/optionroms.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2008-12-21 17:51:36 -0500
committerKevin O'Connor <kevin@koconnor.net>2008-12-21 17:51:36 -0500
commit0c3068d2ef293f59241c0e10d308309ebaa60277 (patch)
treed2ba5ed58e23f35114759b1f0dd7338864a65721 /src/optionroms.c
parentfb630a9fa89264ff5cdd1e82c3b0854e5599731f (diff)
downloadseabios-0c3068d2ef293f59241c0e10d308309ebaa60277.tar.gz
Initial PnP bios call support.
This commit provides just enough PnP support for gPXE to not hook int19.
Diffstat (limited to 'src/optionroms.c')
-rw-r--r--src/optionroms.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/optionroms.c b/src/optionroms.c
index 389d528b..89381634 100644
--- a/src/optionroms.c
+++ b/src/optionroms.c
@@ -17,9 +17,6 @@
* Definitions
****************************************************************/
-// $PnP string with special alignment in romlayout.S
-extern char pnp_string[];
-
struct rom_header {
u16 signature;
u8 size;
@@ -93,7 +90,7 @@ callrom(struct rom_header *rom, u16 offset, u16 bdf)
br.bx = 0xffff;
br.dx = 0xffff;
br.es = SEG_BIOS;
- br.di = (u32)pnp_string - BUILD_BIOS_ADDR;
+ br.di = get_pnp_offset();
br.cs = seg;
br.ip = offset;
call16big(&br);
@@ -126,7 +123,7 @@ static struct pnp_data *
get_pnp_rom(struct rom_header *rom)
{
struct pnp_data *pnp = (struct pnp_data *)((u8*)rom + rom->pnpoffset);
- if (pnp->signature != *(u32*)pnp_string)
+ if (pnp->signature != PNP_SIGNATURE)
return NULL;
return pnp;
}
@@ -138,7 +135,7 @@ get_pnp_next(struct rom_header *rom, struct pnp_data *pnp)
if (! pnp->nextoffset)
return NULL;
pnp = (struct pnp_data *)((u8*)rom + pnp->nextoffset);
- if (pnp->signature != *(u32*)pnp_string)
+ if (pnp->signature != PNP_SIGNATURE)
return NULL;
return pnp;
}