EDK2 doxygen online documents - Firmware Encoding Index 1
EDK2 doxygen online documents - Firmware Encoding Index

MdePkg/Library/BaseLib/BaseLibInternals.h

Go to the documentation of this file.
00001 
00015 #ifndef __BASE_LIB_INTERNALS__
00016 #define __BASE_LIB_INTERNALS__
00017 
00018 #include <Base.h>
00019 #include <Library/BaseLib.h>
00020 #include <Library/BaseMemoryLib.h>
00021 #include <Library/DebugLib.h>
00022 #include <Library/PcdLib.h>
00023 
00024 //
00025 // Math functions
00026 //
00027 
00041 UINT64
00042 EFIAPI
00043 InternalMathLShiftU64 (
00044   IN      UINT64                    Operand,
00045   IN      UINTN                     Count
00046   );
00047 
00061 UINT64
00062 EFIAPI
00063 InternalMathRShiftU64 (
00064   IN      UINT64                    Operand,
00065   IN      UINTN                     Count
00066   );
00067 
00081 UINT64
00082 EFIAPI
00083 InternalMathARShiftU64 (
00084   IN      UINT64                    Operand,
00085   IN      UINTN                     Count
00086   );
00087 
00102 UINT64
00103 EFIAPI
00104 InternalMathLRotU64 (
00105   IN      UINT64                    Operand,
00106   IN      UINTN                     Count
00107   );
00108 
00123 UINT64
00124 EFIAPI
00125 InternalMathRRotU64 (
00126   IN      UINT64                    Operand,
00127   IN      UINTN                     Count
00128   );
00129 
00142 UINT64
00143 EFIAPI
00144 InternalMathSwapBytes64 (
00145   IN      UINT64                    Operand
00146   );
00147 
00162 UINT64
00163 EFIAPI
00164 InternalMathMultU64x32 (
00165   IN      UINT64                    Multiplicand,
00166   IN      UINT32                    Multiplier
00167   );
00168 
00183 UINT64
00184 EFIAPI
00185 InternalMathMultU64x64 (
00186   IN      UINT64                    Multiplicand,
00187   IN      UINT64                    Multiplier
00188   );
00189 
00204 UINT64
00205 EFIAPI
00206 InternalMathDivU64x32 (
00207   IN      UINT64                    Dividend,
00208   IN      UINT32                    Divisor
00209   );
00210 
00225 UINT32
00226 EFIAPI
00227 InternalMathModU64x32 (
00228   IN      UINT64                    Dividend,
00229   IN      UINT32                    Divisor
00230   );
00231 
00249 UINT64
00250 EFIAPI
00251 InternalMathDivRemU64x32 (
00252   IN      UINT64                    Dividend,
00253   IN      UINT32                    Divisor,
00254   OUT     UINT32                    *Remainder OPTIONAL
00255   );
00256 
00274 UINT64
00275 EFIAPI
00276 InternalMathDivRemU64x64 (
00277   IN      UINT64                    Dividend,
00278   IN      UINT64                    Divisor,
00279   OUT     UINT64                    *Remainder OPTIONAL
00280   );
00281 
00299 INT64
00300 EFIAPI
00301 InternalMathDivRemS64x64 (
00302   IN      INT64                     Dividend,
00303   IN      INT64                     Divisor,
00304   OUT     INT64                     *Remainder  OPTIONAL
00305   );
00306 
00331 VOID
00332 EFIAPI
00333 InternalSwitchStack (
00334   IN      SWITCH_STACK_ENTRY_POINT  EntryPoint,
00335   IN      VOID                      *Context1,   OPTIONAL
00336   IN      VOID                      *Context2,   OPTIONAL
00337   IN      VOID                      *NewStack,
00338   IN      VA_LIST                   Marker
00339   );
00340 
00341 
00363 BOOLEAN
00364 EFIAPI
00365 IsNodeInList (
00366   IN      CONST LIST_ENTRY      *List,
00367   IN      CONST LIST_ENTRY      *Node
00368   );
00369 
00382 UINTN
00383 EFIAPI
00384 BitFieldReadUint (
00385   IN      UINTN                     Operand,
00386   IN      UINTN                     StartBit,
00387   IN      UINTN                     EndBit
00388   );
00389 
00390 
00407 UINTN
00408 EFIAPI
00409 BitFieldOrUint (
00410   IN      UINTN                     Operand,
00411   IN      UINTN                     StartBit,
00412   IN      UINTN                     EndBit,
00413   IN      UINTN                     OrData
00414   );
00415 
00416 
00433 UINTN
00434 EFIAPI
00435 BitFieldAndUint (
00436   IN      UINTN                     Operand,
00437   IN      UINTN                     StartBit,
00438   IN      UINTN                     EndBit,
00439   IN      UINTN                     AndData
00440   );
00441 
00442 
00454 VOID
00455 EFIAPI
00456 InternalAssertJumpBuffer (
00457   IN      BASE_LIBRARY_JUMP_BUFFER  *JumpBuffer
00458   );
00459 
00460 
00472 VOID
00473 EFIAPI
00474 InternalLongJump (
00475   IN      BASE_LIBRARY_JUMP_BUFFER  *JumpBuffer,
00476   IN      UINTN                     Value
00477   );
00478 
00479 
00480 //
00481 // Ia32 and x64 specific functions
00482 //
00483 #if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)
00484 
00494 VOID
00495 EFIAPI
00496 InternalX86ReadGdtr (
00497   OUT     IA32_DESCRIPTOR           *Gdtr
00498   );
00499 
00509 VOID
00510 EFIAPI
00511 InternalX86WriteGdtr (
00512   IN      CONST IA32_DESCRIPTOR     *Gdtr
00513   );
00514 
00524 VOID
00525 EFIAPI
00526 InternalX86ReadIdtr (
00527   OUT     IA32_DESCRIPTOR           *Idtr
00528   );
00529 
00539 VOID
00540 EFIAPI
00541 InternalX86WriteIdtr (
00542   IN      CONST IA32_DESCRIPTOR     *Idtr
00543   );
00544 
00555 VOID
00556 EFIAPI
00557 InternalX86FxSave (
00558   OUT     IA32_FX_BUFFER            *Buffer
00559   );
00560 
00571 VOID
00572 EFIAPI
00573 InternalX86FxRestore (
00574   IN      CONST IA32_FX_BUFFER      *Buffer
00575   );
00576 
00610 VOID
00611 EFIAPI
00612 InternalX86EnablePaging32 (
00613   IN      SWITCH_STACK_ENTRY_POINT  EntryPoint,
00614   IN      VOID                      *Context1,  OPTIONAL
00615   IN      VOID                      *Context2,  OPTIONAL
00616   IN      VOID                      *NewStack
00617   );
00618 
00649 VOID
00650 EFIAPI
00651 InternalX86DisablePaging32 (
00652   IN      SWITCH_STACK_ENTRY_POINT  EntryPoint,
00653   IN      VOID                      *Context1,  OPTIONAL
00654   IN      VOID                      *Context2,  OPTIONAL
00655   IN      VOID                      *NewStack
00656   );
00657 
00685 VOID
00686 EFIAPI
00687 InternalX86EnablePaging64 (
00688   IN      UINT16                    Cs,
00689   IN      UINT64                    EntryPoint,
00690   IN      UINT64                    Context1,  OPTIONAL
00691   IN      UINT64                    Context2,  OPTIONAL
00692   IN      UINT64                    NewStack
00693   );
00694 
00721 VOID
00722 EFIAPI
00723 InternalX86DisablePaging64 (
00724   IN      UINT16                    Cs,
00725   IN      UINT32                    EntryPoint,
00726   IN      UINT32                    Context1,  OPTIONAL
00727   IN      UINT32                    Context2,  OPTIONAL
00728   IN      UINT32                    NewStack
00729   );
00730 
00731 
00732 #elif defined (MDE_CPU_IPF)
00733 //
00734 //
00735 // IPF specific functions
00736 //
00737 
00747 UINT64
00748 EFIAPI
00749 AsmReadControlRegisterDcr (
00750   VOID
00751   );
00752 
00753 
00763 UINT64
00764 EFIAPI
00765 AsmReadControlRegisterItm (
00766   VOID
00767   );
00768 
00769 
00779 UINT64
00780 EFIAPI
00781 AsmReadControlRegisterIva (
00782   VOID
00783   );
00784 
00785 
00795 UINT64
00796 EFIAPI
00797 AsmReadControlRegisterPta (
00798   VOID
00799   );
00800 
00801 
00811 UINT64
00812 EFIAPI
00813 AsmReadControlRegisterIpsr (
00814   VOID
00815   );
00816 
00817 
00827 UINT64
00828 EFIAPI
00829 AsmReadControlRegisterIsr (
00830   VOID
00831   );
00832 
00833 
00843 UINT64
00844 EFIAPI
00845 AsmReadControlRegisterIip (
00846   VOID
00847   );
00848 
00849 
00859 UINT64
00860 EFIAPI
00861 AsmReadControlRegisterIfa (
00862   VOID
00863   );
00864 
00865 
00875 UINT64
00876 EFIAPI
00877 AsmReadControlRegisterItir (
00878   VOID
00879   );
00880 
00881 
00891 UINT64
00892 EFIAPI
00893 AsmReadControlRegisterIipa (
00894   VOID
00895   );
00896 
00897 
00907 UINT64
00908 EFIAPI
00909 AsmReadControlRegisterIfs (
00910   VOID
00911   );
00912 
00913 
00923 UINT64
00924 EFIAPI
00925 AsmReadControlRegisterIim (
00926   VOID
00927   );
00928 
00929 
00939 UINT64
00940 EFIAPI
00941 AsmReadControlRegisterIha (
00942   VOID
00943   );
00944 
00945 
00955 UINT64
00956 EFIAPI
00957 AsmReadControlRegisterLid (
00958   VOID
00959   );
00960 
00961 
00971 UINT64
00972 EFIAPI
00973 AsmReadControlRegisterIvr (
00974   VOID
00975   );
00976 
00977 
00987 UINT64
00988 EFIAPI
00989 AsmReadControlRegisterTpr (
00990   VOID
00991   );
00992 
00993 
01003 UINT64
01004 EFIAPI
01005 AsmReadControlRegisterEoi (
01006   VOID
01007   );
01008 
01009 
01019 UINT64
01020 EFIAPI
01021 AsmReadControlRegisterIrr0 (
01022   VOID
01023   );
01024 
01025 
01035 UINT64
01036 EFIAPI
01037 AsmReadControlRegisterIrr1 (
01038   VOID
01039   );
01040 
01041 
01051 UINT64
01052 EFIAPI
01053 AsmReadControlRegisterIrr2 (
01054   VOID
01055   );
01056 
01057 
01067 UINT64
01068 EFIAPI
01069 AsmReadControlRegisterIrr3 (
01070   VOID
01071   );
01072 
01073 
01083 UINT64
01084 EFIAPI
01085 AsmReadControlRegisterItv (
01086   VOID
01087   );
01088 
01089 
01099 UINT64
01100 EFIAPI
01101 AsmReadControlRegisterPmv (
01102   VOID
01103   );
01104 
01105 
01115 UINT64
01116 EFIAPI
01117 AsmReadControlRegisterCmcv (
01118   VOID
01119   );
01120 
01121 
01131 UINT64
01132 EFIAPI
01133 AsmReadControlRegisterLrr0 (
01134   VOID
01135   );
01136 
01137 
01147 UINT64
01148 EFIAPI
01149 AsmReadControlRegisterLrr1 (
01150   VOID
01151   );
01152 
01153 
01163 UINT64
01164 EFIAPI
01165 AsmReadApplicationRegisterK0 (
01166   VOID
01167   );
01168 
01169 
01170 
01180 UINT64
01181 EFIAPI
01182 AsmReadApplicationRegisterK1 (
01183   VOID
01184   );
01185 
01186 
01196 UINT64
01197 EFIAPI
01198 AsmReadApplicationRegisterK2 (
01199   VOID
01200   );
01201 
01202 
01212 UINT64
01213 EFIAPI
01214 AsmReadApplicationRegisterK3 (
01215   VOID
01216   );
01217 
01218 
01228 UINT64
01229 EFIAPI
01230 AsmReadApplicationRegisterK4 (
01231   VOID
01232   );
01233 
01234 
01244 UINT64
01245 EFIAPI
01246 AsmReadApplicationRegisterK5 (
01247   VOID
01248   );
01249 
01250 
01260 UINT64
01261 EFIAPI
01262 AsmReadApplicationRegisterK6 (
01263   VOID
01264   );
01265 
01266 
01276 UINT64
01277 EFIAPI
01278 AsmReadApplicationRegisterK7 (
01279   VOID
01280   );
01281 
01282 
01292 UINT64
01293 EFIAPI
01294 AsmReadApplicationRegisterRsc (
01295   VOID
01296   );
01297 
01298 
01308 UINT64
01309 EFIAPI
01310 AsmReadApplicationRegisterBsp (
01311   VOID
01312   );
01313 
01314 
01324 UINT64
01325 EFIAPI
01326 AsmReadApplicationRegisterBspstore (
01327   VOID
01328   );
01329 
01330 
01340 UINT64
01341 EFIAPI
01342 AsmReadApplicationRegisterRnat (
01343   VOID
01344   );
01345 
01346 
01356 UINT64
01357 EFIAPI
01358 AsmReadApplicationRegisterFcr (
01359   VOID
01360   );
01361 
01362 
01372 UINT64
01373 EFIAPI
01374 AsmReadApplicationRegisterEflag (
01375   VOID
01376   );
01377 
01378 
01388 UINT64
01389 EFIAPI
01390 AsmReadApplicationRegisterCsd (
01391   VOID
01392   );
01393 
01394 
01404 UINT64
01405 EFIAPI
01406 AsmReadApplicationRegisterSsd (
01407   VOID
01408   );
01409 
01410 
01420 UINT64
01421 EFIAPI
01422 AsmReadApplicationRegisterCflg (
01423   VOID
01424   );
01425 
01426 
01436 UINT64
01437 EFIAPI
01438 AsmReadApplicationRegisterFsr (
01439   VOID
01440   );
01441 
01442 
01452 UINT64
01453 EFIAPI
01454 AsmReadApplicationRegisterFir (
01455   VOID
01456   );
01457 
01458 
01468 UINT64
01469 EFIAPI
01470 AsmReadApplicationRegisterFdr (
01471   VOID
01472   );
01473 
01474 
01484 UINT64
01485 EFIAPI
01486 AsmReadApplicationRegisterCcv (
01487   VOID
01488   );
01489 
01490 
01500 UINT64
01501 EFIAPI
01502 AsmReadApplicationRegisterUnat (
01503   VOID
01504   );
01505 
01506 
01516 UINT64
01517 EFIAPI
01518 AsmReadApplicationRegisterFpsr (
01519   VOID
01520   );
01521 
01522 
01532 UINT64
01533 EFIAPI
01534 AsmReadApplicationRegisterItc (
01535   VOID
01536   );
01537 
01538 
01548 UINT64
01549 EFIAPI
01550 AsmReadApplicationRegisterPfs (
01551   VOID
01552   );
01553 
01554 
01564 UINT64
01565 EFIAPI
01566 AsmReadApplicationRegisterLc (
01567   VOID
01568   );
01569 
01570 
01580 UINT64
01581 EFIAPI
01582 AsmReadApplicationRegisterEc (
01583   VOID
01584   );
01585 
01586 
01587 
01610 VOID
01611 EFIAPI
01612 AsmSwitchStackAndBackingStore (
01613   IN      SWITCH_STACK_ENTRY_POINT  EntryPoint,
01614   IN      VOID                      *Context1,  OPTIONAL
01615   IN      VOID                      *Context2,  OPTIONAL
01616   IN      VOID                      *NewStack,
01617   IN      VOID                      *NewBsp
01618   );
01619 
01644 VOID *
01645 EFIAPI
01646 InternalFlushCacheRange (
01647   IN      VOID                      *Address,
01648   IN      UINTN                     Length
01649   );
01650 
01651 #else
01652 
01653 #endif
01654 
01655 #endif
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Defines