Files
xen/tools/firmware/rombios/32bit/32bitbios.c
T
Keir Fraser 83833d973b rombios: Indirect through 32-bit jump table from within the 32-bit bios.
This gets rid of shenanigans with relocating the jump table around the
place.

Also clean up bios_info table while we are updating it.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
2009-01-23 14:32:41 +00:00

35 lines
1.2 KiB
C

/*
* 32bitbios - jumptable for those function reachable from 16bit area
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Copyright (C) IBM Corporation, 2006
*
* Author: Stefan Berger <stefanb@us.ibm.com>
*/
#include "rombios_compat.h"
asm (
" .text \n"
" movzwl %bx,%eax \n"
" jmp *jumptable(,%eax,4) \n"
" .data \n"
"jumptable: \n"
#define X(idx, ret, fn, args...) " .long "#fn"\n"
#include "32bitprotos.h"
#undef X
);