Windows NT 4.0 source code leak
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1993 Digital Equipment Corporation
Module Name:
bios.c
Abstract:
This module implements ROM BIOS call support for Alpha AXP NT.
Author:
Eric Rehm (rehm@zso.dec.com) 9-December-1993
Revision History:
--*/
#include "halp.h"
#include "arccodes.h"
#include "alpharef.h"
#include "fwcallbk.h"
//
// Static data.
//
// none.
BOOLEAN HalCallBios ( IN ULONG BiosCommand, IN OUT PULONG pEax, IN OUT PULONG pEbx, IN OUT PULONG pEcx, IN OUT PULONG pEdx, IN OUT PULONG pEsi, IN OUT PULONG pEdi, IN OUT PULONG pEbp )
/*++
Routine Description:
This function invokes specified ROM BIOS code by executing "INT BiosCommand." A callback to the i386 emulator loaded by the firmware accomplishes this task. This function always returns success reguardless of the result of the BIOS call.
Arguments:
BiosCommand - specifies which ROM BIOS function to invoke.
BiosArguments - specifies a pointer to the context which will be used to invoke ROM BIOS.
Return Value:
TRUE if function succees, FALSE otherwise.
--*/ {
X86_BIOS_ARGUMENTS context;
context.Edi = *pEdi; context.Esi = *pEsi; context.Eax = *pEax; context.Ebx = *pEbx; context.Ecx = *pEcx; context.Edx = *pEdx; context.Ebp = *pEbp;
//
// Now call the firmware to actually perform the int 10 operation.
//
VenCallBios(BiosCommand, &context);
//
// fill in struct with any return values from the context
//
*pEdi = context.Edi; *pEsi = context.Esi; *pEax = context.Eax; *pEbx = context.Ebx; *pEcx = context.Ecx; *pEdx = context.Edx; *pEbp = context.Ebp;
//
// Indicate success
//
return TRUE; }
|