2 Declaration of internal functions in BaseLib.
4 Copyright (c) 2006, Intel Corporation<BR>
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 Module Name: BaseLibInternals.h
17 #ifndef __BASE_LIB_INTERNALS__
18 #define __BASE_LIB_INTERNALS__
26 InternalMathLShiftU64 (
33 InternalMathRShiftU64 (
40 InternalMathARShiftU64 (
61 InternalMathSwapBytes64 (
67 InternalMathMultU64x32 (
68 IN UINT64 Multiplicand
,
74 InternalMathMultU64x64 (
75 IN UINT64 Multiplicand
,
81 InternalMathDivU64x32 (
88 InternalMathModU64x32 (
95 InternalMathDivRemU64x32 (
103 InternalMathDivRemU64x64 (
106 OUT UINT64
*Remainder
111 InternalMathDivRemS64x64 (
118 // Ia32 and x64 specific functions
123 InternalX86ReadGdtr (
124 OUT IA32_DESCRIPTOR
*Gdtr
129 InternalX86WriteGdtr (
130 IN CONST IA32_DESCRIPTOR
*Gdtr
135 InternalX86ReadIdtr (
136 OUT IA32_DESCRIPTOR
*Idtr
141 InternalX86WriteIdtr (
142 IN CONST IA32_DESCRIPTOR
*Idtr
148 OUT IA32_FX_BUFFER
*Buffer
153 InternalX86FxRestore (
154 IN CONST IA32_FX_BUFFER
*Buffer
159 InternalX86EnablePaging32 (
160 IN SWITCH_STACK_ENTRY_POINT EntryPoint
,
161 IN VOID
*Context1
, OPTIONAL
162 IN VOID
*Context2
, OPTIONAL
168 InternalX86DisablePaging32 (
169 IN SWITCH_STACK_ENTRY_POINT EntryPoint
,
170 IN VOID
*Context1
, OPTIONAL
171 IN VOID
*Context2
, OPTIONAL
177 InternalX86EnablePaging64 (
179 IN UINT64 EntryPoint
,
180 IN UINT64 Context1
, OPTIONAL
181 IN UINT64 Context2
, OPTIONAL
187 InternalX86DisablePaging64 (
189 IN UINT32 EntryPoint
,
190 IN UINT32 Context1
, OPTIONAL
191 IN UINT32 Context2
, OPTIONAL