XenevaOS
Loading...
Searching...
No Matches
BaseLib.h
Go to the documentation of this file.
1
17#ifndef __BASE_LIB__
18#define __BASE_LIB__
19
20//
21// Definitions for architecture-specific types
22//
23#if defined (MDE_CPU_IA32)
27typedef struct {
28 UINT32 Ebx;
29 UINT32 Esi;
30 UINT32 Edi;
31 UINT32 Ebp;
32 UINT32 Esp;
33 UINT32 Eip;
34} BASE_LIBRARY_JUMP_BUFFER;
35
36#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 4
37
38#endif // defined (MDE_CPU_IA32)
39
40#if defined (MDE_CPU_X64)
44typedef struct {
45 UINT64 Rbx;
46 UINT64 Rsp;
47 UINT64 Rbp;
48 UINT64 Rdi;
49 UINT64 Rsi;
50 UINT64 R12;
51 UINT64 R13;
52 UINT64 R14;
53 UINT64 R15;
54 UINT64 Rip;
55 UINT64 MxCsr;
56 UINT8 XmmBuffer[160];
57} BASE_LIBRARY_JUMP_BUFFER;
58
59#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8
60
61#endif // defined (MDE_CPU_X64)
62
63#if defined (MDE_CPU_EBC)
67typedef struct {
68 UINT64 R0;
69 UINT64 R1;
70 UINT64 R2;
71 UINT64 R3;
72 UINT64 IP;
73} BASE_LIBRARY_JUMP_BUFFER;
74
75#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8
76
77#endif // defined (MDE_CPU_EBC)
78
79#if defined (MDE_CPU_ARM)
80
81typedef struct {
82 UINT32 R3;
83 UINT32 R4;
84 UINT32 R5;
85 UINT32 R6;
86 UINT32 R7;
87 UINT32 R8;
88 UINT32 R9;
89 UINT32 R10;
90 UINT32 R11;
91 UINT32 R12;
92 UINT32 R14;
93} BASE_LIBRARY_JUMP_BUFFER;
94
95#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 4
96
97#endif // defined (MDE_CPU_ARM)
98
99#if defined (MDE_CPU_AARCH64)
100typedef struct {
101 // GP regs
102 UINT64 X19;
103 UINT64 X20;
104 UINT64 X21;
105 UINT64 X22;
106 UINT64 X23;
107 UINT64 X24;
108 UINT64 X25;
109 UINT64 X26;
110 UINT64 X27;
111 UINT64 X28;
112 UINT64 FP;
113 UINT64 LR;
114 UINT64 IP0;
115
116 // FP regs
117 UINT64 D8;
118 UINT64 D9;
119 UINT64 D10;
120 UINT64 D11;
121 UINT64 D12;
122 UINT64 D13;
123 UINT64 D14;
124 UINT64 D15;
125} BASE_LIBRARY_JUMP_BUFFER;
126
127#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8
128
129#endif // defined (MDE_CPU_AARCH64)
130
131
132//
133// String Services
134//
135
136
153UINTN
154EFIAPI
156 IN CONST CHAR16 *String,
157 IN UINTN MaxSize
158 );
159
181UINTN
182EFIAPI
184 IN CONST CHAR16 *String,
185 IN UINTN MaxSize
186 );
187
216EFIAPI
218 OUT CHAR16 *Destination,
219 IN UINTN DestMax,
220 IN CONST CHAR16 *Source
221 );
222
254EFIAPI
256 OUT CHAR16 *Destination,
257 IN UINTN DestMax,
258 IN CONST CHAR16 *Source,
260 );
261
293EFIAPI
295 IN OUT CHAR16 *Destination,
296 IN UINTN DestMax,
297 IN CONST CHAR16 *Source
298 );
299
334EFIAPI
336 IN OUT CHAR16 *Destination,
337 IN UINTN DestMax,
338 IN CONST CHAR16 *Source,
340 );
341
391EFIAPI
393 IN CONST CHAR16 *String,
394 OUT CHAR16 **EndPointer, OPTIONAL
395 OUT UINTN *Data
396 );
397
447EFIAPI
449 IN CONST CHAR16 *String,
450 OUT CHAR16 **EndPointer, OPTIONAL
451 OUT UINT64 *Data
452 );
453
508EFIAPI
510 IN CONST CHAR16 *String,
511 OUT CHAR16 **EndPointer, OPTIONAL
512 OUT UINTN *Data
513 );
514
569EFIAPI
571 IN CONST CHAR16 *String,
572 OUT CHAR16 **EndPointer, OPTIONAL
573 OUT UINT64 *Data
574 );
575
590UINTN
591EFIAPI
593 IN CONST CHAR8 *String,
594 IN UINTN MaxSize
595 );
596
616UINTN
617EFIAPI
619 IN CONST CHAR8 *String,
620 IN UINTN MaxSize
621 );
622
649EFIAPI
651 OUT CHAR8 *Destination,
652 IN UINTN DestMax,
653 IN CONST CHAR8 *Source
654 );
655
685EFIAPI
687 OUT CHAR8 *Destination,
688 IN UINTN DestMax,
689 IN CONST CHAR8 *Source,
691 );
692
722EFIAPI
724 IN OUT CHAR8 *Destination,
725 IN UINTN DestMax,
726 IN CONST CHAR8 *Source
727 );
728
761EFIAPI
763 IN OUT CHAR8 *Destination,
764 IN UINTN DestMax,
765 IN CONST CHAR8 *Source,
767 );
768
817EFIAPI
819 IN CONST CHAR8 *String,
820 OUT CHAR8 **EndPointer, OPTIONAL
821 OUT UINTN *Data
822 );
823
872EFIAPI
874 IN CONST CHAR8 *String,
875 OUT CHAR8 **EndPointer, OPTIONAL
876 OUT UINT64 *Data
877 );
878
931EFIAPI
933 IN CONST CHAR8 *String,
934 OUT CHAR8 **EndPointer, OPTIONAL
935 OUT UINTN *Data
936 );
937
990EFIAPI
992 IN CONST CHAR8 *String,
993 OUT CHAR8 **EndPointer, OPTIONAL
994 OUT UINT64 *Data
995 );
996
997
998#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
999
1025CHAR16 *
1026EFIAPI
1028 OUT CHAR16 *Destination,
1029 IN CONST CHAR16 *Source
1030 );
1031
1032
1065CHAR16 *
1066EFIAPI
1068 OUT CHAR16 *Destination,
1069 IN CONST CHAR16 *Source,
1071 );
1072#endif // !defined (DISABLE_NEW_DEPRECATED_INTERFACES)
1073
1091UINTN
1092EFIAPI
1094 IN CONST CHAR16 *String
1095 );
1096
1097
1116UINTN
1117EFIAPI
1119 IN CONST CHAR16 *String
1120 );
1121
1122
1151INTN
1152EFIAPI
1154 IN CONST CHAR16 *FirstString,
1155 IN CONST CHAR16 *SecondString
1156 );
1157
1158
1191INTN
1192EFIAPI
1194 IN CONST CHAR16 *FirstString,
1195 IN CONST CHAR16 *SecondString,
1197 );
1198
1199
1200#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
1201
1236CHAR16 *
1237EFIAPI
1239 IN OUT CHAR16 *Destination,
1240 IN CONST CHAR16 *Source
1241 );
1242
1243
1284CHAR16 *
1285EFIAPI
1287 IN OUT CHAR16 *Destination,
1288 IN CONST CHAR16 *Source,
1290 );
1291#endif // !defined (DISABLE_NEW_DEPRECATED_INTERFACES)
1292
1318CHAR16 *
1319EFIAPI
1321 IN CONST CHAR16 *String,
1322 IN CONST CHAR16 *SearchString
1323 );
1324
1359UINTN
1360EFIAPI
1362 IN CONST CHAR16 *String
1363 );
1364
1399UINT64
1400EFIAPI
1402 IN CONST CHAR16 *String
1403 );
1404
1405
1441UINTN
1442EFIAPI
1444 IN CONST CHAR16 *String
1445 );
1446
1447
1483UINT64
1484EFIAPI
1486 IN CONST CHAR16 *String
1487 );
1488
1548EFIAPI
1550 IN CONST CHAR16 *String,
1551 OUT CHAR16 **EndPointer, OPTIONAL
1553 OUT UINT8 *PrefixLength OPTIONAL
1554 );
1555
1606EFIAPI
1608 IN CONST CHAR16 *String,
1609 OUT CHAR16 **EndPointer, OPTIONAL
1611 OUT UINT8 *PrefixLength OPTIONAL
1612 );
1613
1614#define GUID_STRING_LENGTH 36
1615
1661EFIAPI
1663 IN CONST CHAR16 *String,
1664 OUT GUID *Guid
1665 );
1666
1712EFIAPI
1714 IN CONST CHAR16 *String,
1715 IN UINTN Length,
1716 OUT UINT8 *Buffer,
1717 IN UINTN MaxBufferSize
1718 );
1719
1720#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
1721
1757CHAR8 *
1758EFIAPI
1760 IN CONST CHAR16 *Source,
1761 OUT CHAR8 *Destination
1762 );
1763
1764#endif // !defined (DISABLE_NEW_DEPRECATED_INTERFACES)
1765
1808EFIAPI
1810 IN CONST CHAR16 *Source,
1811 OUT CHAR8 *Destination,
1812 IN UINTN DestMax
1813 );
1814
1860EFIAPI
1862 IN CONST CHAR16 *Source,
1863 IN UINTN Length,
1864 OUT CHAR8 *Destination,
1865 IN UINTN DestMax,
1866 OUT UINTN *DestinationLength
1867 );
1868
1869#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
1870
1894CHAR8 *
1895EFIAPI
1897 OUT CHAR8 *Destination,
1898 IN CONST CHAR8 *Source
1899 );
1900
1901
1931CHAR8 *
1932EFIAPI
1934 OUT CHAR8 *Destination,
1935 IN CONST CHAR8 *Source,
1937 );
1938#endif // !defined (DISABLE_NEW_DEPRECATED_INTERFACES)
1939
1957UINTN
1958EFIAPI
1960 IN CONST CHAR8 *String
1961 );
1962
1963
1981UINTN
1982EFIAPI
1984 IN CONST CHAR8 *String
1985 );
1986
1987
2014INTN
2015EFIAPI
2017 IN CONST CHAR8 *FirstString,
2018 IN CONST CHAR8 *SecondString
2019 );
2020
2021
2051INTN
2052EFIAPI
2054 IN CONST CHAR8 *FirstString,
2055 IN CONST CHAR8 *SecondString
2056 );
2057
2058
2089INTN
2090EFIAPI
2092 IN CONST CHAR8 *FirstString,
2093 IN CONST CHAR8 *SecondString,
2095 );
2096
2097
2098#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
2099
2129CHAR8 *
2130EFIAPI
2132 IN OUT CHAR8 *Destination,
2133 IN CONST CHAR8 *Source
2134 );
2135
2136
2175CHAR8 *
2176EFIAPI
2178 IN OUT CHAR8 *Destination,
2179 IN CONST CHAR8 *Source,
2181 );
2182#endif // !defined (DISABLE_NEW_DEPRECATED_INTERFACES)
2183
2208CHAR8 *
2209EFIAPI
2211 IN CONST CHAR8 *String,
2212 IN CONST CHAR8 *SearchString
2213 );
2214
2215
2246UINTN
2247EFIAPI
2249 IN CONST CHAR8 *String
2250 );
2251
2252
2283UINT64
2284EFIAPI
2286 IN CONST CHAR8 *String
2287 );
2288
2289
2324UINTN
2325EFIAPI
2327 IN CONST CHAR8 *String
2328 );
2329
2330
2365UINT64
2366EFIAPI
2368 IN CONST CHAR8 *String
2369 );
2370
2424EFIAPI
2426 IN CONST CHAR8 *String,
2427 OUT CHAR8 **EndPointer, OPTIONAL
2429 OUT UINT8 *PrefixLength OPTIONAL
2430 );
2431
2476EFIAPI
2478 IN CONST CHAR8 *String,
2479 OUT CHAR8 **EndPointer, OPTIONAL
2481 OUT UINT8 *PrefixLength OPTIONAL
2482 );
2483
2528EFIAPI
2530 IN CONST CHAR8 *String,
2531 OUT GUID *Guid
2532 );
2533
2577EFIAPI
2579 IN CONST CHAR8 *String,
2580 IN UINTN Length,
2581 OUT UINT8 *Buffer,
2582 IN UINTN MaxBufferSize
2583 );
2584
2585#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
2586
2616CHAR16 *
2617EFIAPI
2619 IN CONST CHAR8 *Source,
2620 OUT CHAR16 *Destination
2621 );
2622
2623#endif // !defined (DISABLE_NEW_DEPRECATED_INTERFACES)
2624
2663EFIAPI
2665 IN CONST CHAR8 *Source,
2666 OUT CHAR16 *Destination,
2667 IN UINTN DestMax
2668 );
2669
2714EFIAPI
2716 IN CONST CHAR8 *Source,
2717 IN UINTN Length,
2718 OUT CHAR16 *Destination,
2719 IN UINTN DestMax,
2720 OUT UINTN *DestinationLength
2721 );
2722
2736UINT8
2737EFIAPI
2739 IN UINT8 Value
2740 );
2741
2742
2757UINT8
2758EFIAPI
2760 IN UINT8 Value
2761 );
2762
2763//
2764// File Path Manipulation Functions
2765//
2766
2775BOOLEAN
2776EFIAPI
2778 IN OUT CHAR16 *Path
2779 );
2780
2794CHAR16*
2795EFIAPI
2797 IN CHAR16 *Path
2798 );
2799
2800//
2801// Linked List Functions and Macros
2802//
2803
2818#define INITIALIZE_LIST_HEAD_VARIABLE(ListHead) {&(ListHead), &(ListHead)}
2819
2820
2840BOOLEAN
2841EFIAPI
2843 IN CONST LIST_ENTRY *FirstEntry,
2844 IN CONST LIST_ENTRY *SecondEntry
2845 );
2846
2847
2864LIST_ENTRY *
2865EFIAPI
2867 IN OUT LIST_ENTRY *ListHead
2868 );
2869
2870
2893LIST_ENTRY *
2894EFIAPI
2896 IN OUT LIST_ENTRY *ListHead,
2897 IN OUT LIST_ENTRY *Entry
2898 );
2899
2900
2923LIST_ENTRY *
2924EFIAPI
2926 IN OUT LIST_ENTRY *ListHead,
2927 IN OUT LIST_ENTRY *Entry
2928 );
2929
2930
2951LIST_ENTRY *
2952EFIAPI
2954 IN CONST LIST_ENTRY *List
2955 );
2956
2957
2979LIST_ENTRY *
2980EFIAPI
2982 IN CONST LIST_ENTRY *List,
2983 IN CONST LIST_ENTRY *Node
2984 );
2985
2986
3008LIST_ENTRY *
3009EFIAPI
3011 IN CONST LIST_ENTRY *List,
3012 IN CONST LIST_ENTRY *Node
3013 );
3014
3015
3035BOOLEAN
3036EFIAPI
3038 IN CONST LIST_ENTRY *ListHead
3039 );
3040
3041
3068BOOLEAN
3069EFIAPI
3071 IN CONST LIST_ENTRY *List,
3072 IN CONST LIST_ENTRY *Node
3073 );
3074
3075
3099BOOLEAN
3100EFIAPI
3102 IN CONST LIST_ENTRY *List,
3103 IN CONST LIST_ENTRY *Node
3104 );
3105
3106
3133LIST_ENTRY *
3134EFIAPI
3136 IN OUT LIST_ENTRY *FirstEntry,
3137 IN OUT LIST_ENTRY *SecondEntry
3138 );
3139
3140
3162LIST_ENTRY *
3163EFIAPI
3165 IN CONST LIST_ENTRY *Entry
3166 );
3167
3168//
3169// Math Services
3170//
3171
3187UINT64
3188EFIAPI
3190 IN UINT64 Operand,
3191 IN UINTN Count
3192 );
3193
3194
3210UINT64
3211EFIAPI
3213 IN UINT64 Operand,
3214 IN UINTN Count
3215 );
3216
3217
3233UINT64
3234EFIAPI
3236 IN UINT64 Operand,
3237 IN UINTN Count
3238 );
3239
3240
3257UINT32
3258EFIAPI
3260 IN UINT32 Operand,
3261 IN UINTN Count
3262 );
3263
3264
3281UINT32
3282EFIAPI
3284 IN UINT32 Operand,
3285 IN UINTN Count
3286 );
3287
3288
3305UINT64
3306EFIAPI
3308 IN UINT64 Operand,
3309 IN UINTN Count
3310 );
3311
3312
3329UINT64
3330EFIAPI
3332 IN UINT64 Operand,
3333 IN UINTN Count
3334 );
3335
3336
3350INTN
3351EFIAPI
3353 IN UINT32 Operand
3354 );
3355
3356
3371INTN
3372EFIAPI
3374 IN UINT64 Operand
3375 );
3376
3377
3392INTN
3393EFIAPI
3395 IN UINT32 Operand
3396 );
3397
3398
3413INTN
3414EFIAPI
3416 IN UINT64 Operand
3417 );
3418
3419
3433UINT32
3434EFIAPI
3436 IN UINT32 Operand
3437 );
3438
3439
3453UINT64
3454EFIAPI
3456 IN UINT64 Operand
3457 );
3458
3459
3472UINT16
3473EFIAPI
3475 IN UINT16 Value
3476 );
3477
3478
3491UINT32
3492EFIAPI
3494 IN UINT32 Value
3495 );
3496
3497
3510UINT64
3511EFIAPI
3513 IN UINT64 Value
3514 );
3515
3516
3531UINT64
3532EFIAPI
3534 IN UINT64 Multiplicand,
3535 IN UINT32 Multiplier
3536 );
3537
3538
3553UINT64
3554EFIAPI
3556 IN UINT64 Multiplicand,
3557 IN UINT64 Multiplier
3558 );
3559
3560
3575INT64
3576EFIAPI
3578 IN INT64 Multiplicand,
3579 IN INT64 Multiplier
3580 );
3581
3582
3599UINT64
3600EFIAPI
3602 IN UINT64 Dividend,
3603 IN UINT32 Divisor
3604 );
3605
3606
3623UINT32
3624EFIAPI
3626 IN UINT64 Dividend,
3627 IN UINT32 Divisor
3628 );
3629
3630
3650UINT64
3651EFIAPI
3653 IN UINT64 Dividend,
3654 IN UINT32 Divisor,
3655 OUT UINT32 *Remainder OPTIONAL
3656 );
3657
3658
3678UINT64
3679EFIAPI
3681 IN UINT64 Dividend,
3682 IN UINT64 Divisor,
3683 OUT UINT64 *Remainder OPTIONAL
3684 );
3685
3686
3710INT64
3711EFIAPI
3713 IN INT64 Dividend,
3714 IN INT64 Divisor,
3715 OUT INT64 *Remainder OPTIONAL
3716 );
3717
3718
3732UINT16
3733EFIAPI
3735 IN CONST UINT16 *Buffer
3736 );
3737
3738
3754UINT16
3755EFIAPI
3757 OUT UINT16 *Buffer,
3758 IN UINT16 Value
3759 );
3760
3761
3775UINT32
3776EFIAPI
3778 IN CONST UINT32 *Buffer
3779 );
3780
3781
3797UINT32
3798EFIAPI
3800 OUT UINT32 *Buffer,
3801 IN UINT32 Value
3802 );
3803
3804
3818UINT32
3819EFIAPI
3821 IN CONST UINT32 *Buffer
3822 );
3823
3824
3840UINT32
3841EFIAPI
3843 OUT UINT32 *Buffer,
3844 IN UINT32 Value
3845 );
3846
3847
3861UINT64
3862EFIAPI
3864 IN CONST UINT64 *Buffer
3865 );
3866
3867
3883UINT64
3884EFIAPI
3886 OUT UINT64 *Buffer,
3887 IN UINT64 Value
3888 );
3889
3890
3891//
3892// Bit Field Functions
3893//
3894
3914UINT8
3915EFIAPI
3917 IN UINT8 Operand,
3918 IN UINTN StartBit,
3919 IN UINTN EndBit
3920 );
3921
3922
3946UINT8
3947EFIAPI
3949 IN UINT8 Operand,
3950 IN UINTN StartBit,
3951 IN UINTN EndBit,
3952 IN UINT8 Value
3953 );
3954
3955
3980UINT8
3981EFIAPI
3983 IN UINT8 Operand,
3984 IN UINTN StartBit,
3985 IN UINTN EndBit,
3986 IN UINT8 OrData
3987 );
3988
3989
4014UINT8
4015EFIAPI
4017 IN UINT8 Operand,
4018 IN UINTN StartBit,
4019 IN UINTN EndBit,
4020 IN UINT8 AndData
4021 );
4022
4023
4051UINT8
4052EFIAPI
4054 IN UINT8 Operand,
4055 IN UINTN StartBit,
4056 IN UINTN EndBit,
4057 IN UINT8 AndData,
4058 IN UINT8 OrData
4059 );
4060
4061
4081UINT16
4082EFIAPI
4084 IN UINT16 Operand,
4085 IN UINTN StartBit,
4086 IN UINTN EndBit
4087 );
4088
4089
4113UINT16
4114EFIAPI
4116 IN UINT16 Operand,
4117 IN UINTN StartBit,
4118 IN UINTN EndBit,
4119 IN UINT16 Value
4120 );
4121
4122
4147UINT16
4148EFIAPI
4150 IN UINT16 Operand,
4151 IN UINTN StartBit,
4152 IN UINTN EndBit,
4153 IN UINT16 OrData
4154 );
4155
4156
4181UINT16
4182EFIAPI
4184 IN UINT16 Operand,
4185 IN UINTN StartBit,
4186 IN UINTN EndBit,
4187 IN UINT16 AndData
4188 );
4189
4190
4218UINT16
4219EFIAPI
4221 IN UINT16 Operand,
4222 IN UINTN StartBit,
4223 IN UINTN EndBit,
4224 IN UINT16 AndData,
4225 IN UINT16 OrData
4226 );
4227
4228
4248UINT32
4249EFIAPI
4251 IN UINT32 Operand,
4252 IN UINTN StartBit,
4253 IN UINTN EndBit
4254 );
4255
4256
4280UINT32
4281EFIAPI
4283 IN UINT32 Operand,
4284 IN UINTN StartBit,
4285 IN UINTN EndBit,
4286 IN UINT32 Value
4287 );
4288
4289
4314UINT32
4315EFIAPI
4317 IN UINT32 Operand,
4318 IN UINTN StartBit,
4319 IN UINTN EndBit,
4320 IN UINT32 OrData
4321 );
4322
4323
4348UINT32
4349EFIAPI
4351 IN UINT32 Operand,
4352 IN UINTN StartBit,
4353 IN UINTN EndBit,
4354 IN UINT32 AndData
4355 );
4356
4357
4385UINT32
4386EFIAPI
4388 IN UINT32 Operand,
4389 IN UINTN StartBit,
4390 IN UINTN EndBit,
4391 IN UINT32 AndData,
4392 IN UINT32 OrData
4393 );
4394
4395
4415UINT64
4416EFIAPI
4418 IN UINT64 Operand,
4419 IN UINTN StartBit,
4420 IN UINTN EndBit
4421 );
4422
4423
4447UINT64
4448EFIAPI
4450 IN UINT64 Operand,
4451 IN UINTN StartBit,
4452 IN UINTN EndBit,
4453 IN UINT64 Value
4454 );
4455
4456
4481UINT64
4482EFIAPI
4484 IN UINT64 Operand,
4485 IN UINTN StartBit,
4486 IN UINTN EndBit,
4487 IN UINT64 OrData
4488 );
4489
4490
4515UINT64
4516EFIAPI
4518 IN UINT64 Operand,
4519 IN UINTN StartBit,
4520 IN UINTN EndBit,
4521 IN UINT64 AndData
4522 );
4523
4524
4552UINT64
4553EFIAPI
4555 IN UINT64 Operand,
4556 IN UINTN StartBit,
4557 IN UINTN EndBit,
4558 IN UINT64 AndData,
4559 IN UINT64 OrData
4560 );
4561
4582UINT8
4583EFIAPI
4585 IN UINT32 Operand,
4586 IN UINTN StartBit,
4587 IN UINTN EndBit
4588 );
4589
4610UINT8
4611EFIAPI
4613 IN UINT64 Operand,
4614 IN UINTN StartBit,
4615 IN UINTN EndBit
4616 );
4617
4618//
4619// Base Library Checksum Functions
4620//
4621
4640UINT8
4641EFIAPI
4643 IN CONST UINT8 *Buffer,
4645 );
4646
4647
4666UINT8
4667EFIAPI
4669 IN CONST UINT8 *Buffer,
4671 );
4672
4673
4693UINT16
4694EFIAPI
4696 IN CONST UINT16 *Buffer,
4698 );
4699
4700
4721UINT16
4722EFIAPI
4724 IN CONST UINT16 *Buffer,
4726 );
4727
4728
4748UINT32
4749EFIAPI
4751 IN CONST UINT32 *Buffer,
4753 );
4754
4755
4776UINT32
4777EFIAPI
4779 IN CONST UINT32 *Buffer,
4781 );
4782
4783
4803UINT64
4804EFIAPI
4806 IN CONST UINT64 *Buffer,
4808 );
4809
4810
4831UINT64
4832EFIAPI
4834 IN CONST UINT64 *Buffer,
4836 );
4837
4851UINT32
4852EFIAPI
4854 IN VOID *Buffer,
4856 );
4857
4858//
4859// Base Library CPU Functions
4860//
4861
4869typedef
4872 IN VOID *Context1, OPTIONAL
4873 IN VOID *Context2 OPTIONAL
4874 );
4875
4876
4884VOID
4885EFIAPI
4887 VOID
4888 );
4889
4890
4913UINTN
4914EFIAPI
4916 OUT BASE_LIBRARY_JUMP_BUFFER *JumpBuffer
4917 );
4918
4919
4936VOID
4937EFIAPI
4939 IN BASE_LIBRARY_JUMP_BUFFER *JumpBuffer,
4940 IN UINTN Value
4941 );
4942
4943
4948VOID
4949EFIAPI
4951 VOID
4952 );
4953
4954
4959VOID
4960EFIAPI
4962 VOID
4963 );
4964
4965
4974BOOLEAN
4975EFIAPI
4977 VOID
4978 );
4979
4980
4986VOID
4987EFIAPI
4989 VOID
4990 );
4991
4992
5003BOOLEAN
5004EFIAPI
5006 VOID
5007 );
5008
5009
5024BOOLEAN
5025EFIAPI
5027 IN BOOLEAN InterruptState
5028 );
5029
5030
5038VOID
5039EFIAPI
5041 VOID
5042 );
5043
5044
5074VOID
5075EFIAPI
5077 IN SWITCH_STACK_ENTRY_POINT EntryPoint,
5078 IN VOID *Context1, OPTIONAL
5079 IN VOID *Context2, OPTIONAL
5080 IN VOID *NewStack,
5081 ...
5082 );
5083
5084
5092VOID
5093EFIAPI
5095 VOID
5096 );
5097
5098
5108VOID
5109EFIAPI
5111 VOID
5112 );
5113
5114#if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)
5119typedef union {
5120 struct {
5121 UINT32 CF:1;
5122 UINT32 Reserved_0:1;
5123 UINT32 PF:1;
5124 UINT32 Reserved_1:1;
5125 UINT32 AF:1;
5126 UINT32 Reserved_2:1;
5127 UINT32 ZF:1;
5128 UINT32 SF:1;
5129 UINT32 TF:1;
5130 UINT32 IF:1;
5131 UINT32 DF:1;
5132 UINT32 OF:1;
5133 UINT32 IOPL:2;
5134 UINT32 NT:1;
5135 UINT32 Reserved_3:1;
5136 } Bits;
5137 UINT16 Uint16;
5138} IA32_FLAGS16;
5139
5145typedef union {
5146 struct {
5147 UINT32 CF:1;
5148 UINT32 Reserved_0:1;
5149 UINT32 PF:1;
5150 UINT32 Reserved_1:1;
5151 UINT32 AF:1;
5152 UINT32 Reserved_2:1;
5153 UINT32 ZF:1;
5154 UINT32 SF:1;
5155 UINT32 TF:1;
5156 UINT32 IF:1;
5157 UINT32 DF:1;
5158 UINT32 OF:1;
5159 UINT32 IOPL:2;
5160 UINT32 NT:1;
5161 UINT32 Reserved_3:1;
5162 UINT32 RF:1;
5163 UINT32 VM:1;
5164 UINT32 AC:1;
5165 UINT32 VIF:1;
5166 UINT32 VIP:1;
5167 UINT32 ID:1;
5168 UINT32 Reserved_4:10;
5169 } Bits;
5170 UINTN UintN;
5171} IA32_EFLAGS32;
5172
5178typedef union {
5179 struct {
5180 UINT32 PE:1;
5181 UINT32 MP:1;
5182 UINT32 EM:1;
5183 UINT32 TS:1;
5184 UINT32 ET:1;
5185 UINT32 NE:1;
5186 UINT32 Reserved_0:10;
5187 UINT32 WP:1;
5188 UINT32 Reserved_1:1;
5189 UINT32 AM:1;
5190 UINT32 Reserved_2:10;
5191 UINT32 NW:1;
5192 UINT32 CD:1;
5193 UINT32 PG:1;
5194 } Bits;
5195 UINTN UintN;
5196} IA32_CR0;
5197
5203typedef union {
5204 struct {
5205 UINT32 VME:1;
5206 UINT32 PVI:1;
5207 UINT32 TSD:1;
5208 UINT32 DE:1;
5209 UINT32 PSE:1;
5210 UINT32 PAE:1;
5211 UINT32 MCE:1;
5212 UINT32 PGE:1;
5213 UINT32 PCE:1;
5215 UINT32 OSFXSR:1;
5217 UINT32 OSXMMEXCPT:1;
5220 UINT32 Reserved_0:2;
5221 UINT32 VMXE:1;
5222 UINT32 Reserved_1:18;
5223 } Bits;
5224 UINTN UintN;
5225} IA32_CR4;
5226
5230typedef union {
5231 struct {
5232 UINT32 LimitLow:16;
5233 UINT32 BaseLow:16;
5234 UINT32 BaseMid:8;
5235 UINT32 Type:4;
5236 UINT32 S:1;
5237 UINT32 DPL:2;
5238 UINT32 P:1;
5239 UINT32 LimitHigh:4;
5240 UINT32 AVL:1;
5241 UINT32 L:1;
5242 UINT32 DB:1;
5243 UINT32 G:1;
5244 UINT32 BaseHigh:8;
5245 } Bits;
5246 UINT64 Uint64;
5247} IA32_SEGMENT_DESCRIPTOR;
5248
5252#pragma pack (1)
5253typedef struct {
5254 UINT16 Limit;
5255 UINTN Base;
5256} IA32_DESCRIPTOR;
5257#pragma pack ()
5258
5259#define IA32_IDT_GATE_TYPE_TASK 0x85
5260#define IA32_IDT_GATE_TYPE_INTERRUPT_16 0x86
5261#define IA32_IDT_GATE_TYPE_TRAP_16 0x87
5262#define IA32_IDT_GATE_TYPE_INTERRUPT_32 0x8E
5263#define IA32_IDT_GATE_TYPE_TRAP_32 0x8F
5264
5265#define IA32_GDT_TYPE_TSS 0x9
5266#define IA32_GDT_ALIGNMENT 8
5267
5268#if defined (MDE_CPU_IA32)
5272typedef union {
5273 struct {
5274 UINT32 OffsetLow:16;
5275 UINT32 Selector:16;
5276 UINT32 Reserved_0:8;
5277 UINT32 GateType:8;
5278 UINT32 OffsetHigh:16;
5279 } Bits;
5280 UINT64 Uint64;
5281} IA32_IDT_GATE_DESCRIPTOR;
5282
5283#pragma pack (1)
5284//
5285// IA32 Task-State Segment Definition
5286//
5287typedef struct {
5288 UINT16 PreviousTaskLink;
5289 UINT16 Reserved_2;
5290 UINT32 ESP0;
5291 UINT16 SS0;
5292 UINT16 Reserved_10;
5293 UINT32 ESP1;
5294 UINT16 SS1;
5295 UINT16 Reserved_18;
5296 UINT32 ESP2;
5297 UINT16 SS2;
5298 UINT16 Reserved_26;
5299 UINT32 CR3;
5300 UINT32 EIP;
5301 UINT32 EFLAGS;
5302 UINT32 EAX;
5303 UINT32 ECX;
5304 UINT32 EDX;
5305 UINT32 EBX;
5306 UINT32 ESP;
5307 UINT32 EBP;
5308 UINT32 ESI;
5309 UINT32 EDI;
5310 UINT16 ES;
5311 UINT16 Reserved_74;
5312 UINT16 CS;
5313 UINT16 Reserved_78;
5314 UINT16 SS;
5315 UINT16 Reserved_82;
5316 UINT16 DS;
5317 UINT16 Reserved_86;
5318 UINT16 FS;
5319 UINT16 Reserved_90;
5320 UINT16 GS;
5321 UINT16 Reserved_94;
5322 UINT16 LDTSegmentSelector;
5323 UINT16 Reserved_98;
5324 UINT16 T;
5325 UINT16 IOMapBaseAddress;
5326} IA32_TASK_STATE_SEGMENT;
5327
5328typedef union {
5329 struct {
5330 UINT32 LimitLow:16;
5331 UINT32 BaseLow:16;
5332 UINT32 BaseMid:8;
5333 UINT32 Type:4;
5334 UINT32 Reserved_43:1;
5335 UINT32 DPL:2;
5336 UINT32 P:1;
5337 UINT32 LimitHigh:4;
5338 UINT32 AVL:1;
5339 UINT32 Reserved_52:2;
5340 UINT32 G:1;
5341 UINT32 BaseHigh:8;
5342 } Bits;
5343 UINT64 Uint64;
5344} IA32_TSS_DESCRIPTOR;
5345#pragma pack ()
5346
5347#endif // defined (MDE_CPU_IA32)
5348
5349#if defined (MDE_CPU_X64)
5353typedef union {
5354 struct {
5355 UINT32 OffsetLow:16;
5356 UINT32 Selector:16;
5357 UINT32 Reserved_0:8;
5358 UINT32 GateType:8;
5359 UINT32 OffsetHigh:16;
5360 UINT32 OffsetUpper:32;
5361 UINT32 Reserved_1:32;
5362 } Bits;
5363 struct {
5364 UINT64 Uint64;
5365 UINT64 Uint64_1;
5366 } Uint128;
5367} IA32_IDT_GATE_DESCRIPTOR;
5368
5369#pragma pack (1)
5370//
5371// IA32 Task-State Segment Definition
5372//
5373typedef struct {
5374 UINT32 Reserved_0;
5375 UINT64 RSP0;
5376 UINT64 RSP1;
5377 UINT64 RSP2;
5378 UINT64 Reserved_28;
5379 UINT64 IST[7];
5380 UINT64 Reserved_92;
5381 UINT16 Reserved_100;
5382 UINT16 IOMapBaseAddress;
5383} IA32_TASK_STATE_SEGMENT;
5384
5385typedef union {
5386 struct {
5387 UINT32 LimitLow:16;
5388 UINT32 BaseLow:16;
5389 UINT32 BaseMidl:8;
5390 UINT32 Type:4;
5391 UINT32 Reserved_43:1;
5392 UINT32 DPL:2;
5393 UINT32 P:1;
5394 UINT32 LimitHigh:4;
5395 UINT32 AVL:1;
5396 UINT32 Reserved_52:2;
5397 UINT32 G:1;
5398 UINT32 BaseMidh:8;
5399 UINT32 BaseHigh:32;
5400 UINT32 Reserved_96:32;
5401 } Bits;
5402 struct {
5403 UINT64 Uint64;
5404 UINT64 Uint64_1;
5405 } Uint128;
5406} IA32_TSS_DESCRIPTOR;
5407#pragma pack ()
5408
5409#endif // defined (MDE_CPU_X64)
5410
5414typedef struct {
5415 UINT8 Buffer[512];
5416} IA32_FX_BUFFER;
5417
5421typedef struct {
5423 UINT32 Reserved2;
5424 UINT32 Reserved3;
5425 UINT32 Reserved4;
5426 UINT8 BL;
5427 UINT8 BH;
5428 UINT16 Reserved5;
5429 UINT8 DL;
5430 UINT8 DH;
5431 UINT16 Reserved6;
5432 UINT8 CL;
5433 UINT8 CH;
5434 UINT16 Reserved7;
5435 UINT8 AL;
5436 UINT8 AH;
5437 UINT16 Reserved8;
5438} IA32_BYTE_REGS;
5439
5440typedef struct {
5441 UINT16 DI;
5443 UINT16 SI;
5444 UINT16 Reserved2;
5445 UINT16 BP;
5446 UINT16 Reserved3;
5447 UINT16 SP;
5448 UINT16 Reserved4;
5449 UINT16 BX;
5450 UINT16 Reserved5;
5451 UINT16 DX;
5452 UINT16 Reserved6;
5453 UINT16 CX;
5454 UINT16 Reserved7;
5455 UINT16 AX;
5456 UINT16 Reserved8;
5457} IA32_WORD_REGS;
5458
5459typedef struct {
5460 UINT32 EDI;
5461 UINT32 ESI;
5462 UINT32 EBP;
5463 UINT32 ESP;
5464 UINT32 EBX;
5465 UINT32 EDX;
5466 UINT32 ECX;
5467 UINT32 EAX;
5468 UINT16 DS;
5469 UINT16 ES;
5470 UINT16 FS;
5471 UINT16 GS;
5472 IA32_EFLAGS32 EFLAGS;
5473 UINT32 Eip;
5474 UINT16 CS;
5475 UINT16 SS;
5476} IA32_DWORD_REGS;
5477
5478typedef union {
5479 IA32_DWORD_REGS E;
5480 IA32_WORD_REGS X;
5481 IA32_BYTE_REGS H;
5482} IA32_REGISTER_SET;
5483
5487typedef struct {
5488 IA32_REGISTER_SET *RealModeState;
5489 VOID *RealModeBuffer;
5490 UINT32 RealModeBufferSize;
5491 UINT32 ThunkAttributes;
5492} THUNK_CONTEXT;
5493
5494#define THUNK_ATTRIBUTE_BIG_REAL_MODE 0x00000001
5495#define THUNK_ATTRIBUTE_DISABLE_A20_MASK_INT_15 0x00000002
5496#define THUNK_ATTRIBUTE_DISABLE_A20_MASK_KBD_CTRL 0x00000004
5497
5510typedef VOID (X86_ASSEMBLY_PATCH_LABEL) (VOID);
5511
5537UINT32
5538EFIAPI
5539AsmCpuid (
5540 IN UINT32 Index,
5541 OUT UINT32 *Eax, OPTIONAL
5542 OUT UINT32 *Ebx, OPTIONAL
5543 OUT UINT32 *Ecx, OPTIONAL
5544 OUT UINT32 *Edx OPTIONAL
5545 );
5546
5547
5580UINT32
5581EFIAPI
5582AsmCpuidEx (
5583 IN UINT32 Index,
5584 IN UINT32 SubIndex,
5585 OUT UINT32 *Eax, OPTIONAL
5586 OUT UINT32 *Ebx, OPTIONAL
5587 OUT UINT32 *Ecx, OPTIONAL
5588 OUT UINT32 *Edx OPTIONAL
5589 );
5590
5591
5599VOID
5600EFIAPI
5601AsmDisableCache (
5602 VOID
5603 );
5604
5605
5613VOID
5614EFIAPI
5615AsmEnableCache (
5616 VOID
5617 );
5618
5619
5634UINT32
5635EFIAPI
5636AsmReadMsr32 (
5637 IN UINT32 Index
5638 );
5639
5640
5658UINT32
5659EFIAPI
5660AsmWriteMsr32 (
5661 IN UINT32 Index,
5662 IN UINT32 Value
5663 );
5664
5665
5685UINT32
5686EFIAPI
5687AsmMsrOr32 (
5688 IN UINT32 Index,
5689 IN UINT32 OrData
5690 );
5691
5692
5712UINT32
5713EFIAPI
5714AsmMsrAnd32 (
5715 IN UINT32 Index,
5716 IN UINT32 AndData
5717 );
5718
5719
5742UINT32
5743EFIAPI
5744AsmMsrAndThenOr32 (
5745 IN UINT32 Index,
5746 IN UINT32 AndData,
5747 IN UINT32 OrData
5748 );
5749
5750
5773UINT32
5774EFIAPI
5775AsmMsrBitFieldRead32 (
5776 IN UINT32 Index,
5777 IN UINTN StartBit,
5778 IN UINTN EndBit
5779 );
5780
5781
5807UINT32
5808EFIAPI
5809AsmMsrBitFieldWrite32 (
5810 IN UINT32 Index,
5811 IN UINTN StartBit,
5812 IN UINTN EndBit,
5813 IN UINT32 Value
5814 );
5815
5816
5844UINT32
5845EFIAPI
5846AsmMsrBitFieldOr32 (
5847 IN UINT32 Index,
5848 IN UINTN StartBit,
5849 IN UINTN EndBit,
5850 IN UINT32 OrData
5851 );
5852
5853
5881UINT32
5882EFIAPI
5883AsmMsrBitFieldAnd32 (
5884 IN UINT32 Index,
5885 IN UINTN StartBit,
5886 IN UINTN EndBit,
5887 IN UINT32 AndData
5888 );
5889
5890
5922UINT32
5923EFIAPI
5924AsmMsrBitFieldAndThenOr32 (
5925 IN UINT32 Index,
5926 IN UINTN StartBit,
5927 IN UINTN EndBit,
5928 IN UINT32 AndData,
5929 IN UINT32 OrData
5930 );
5931
5932
5947UINT64
5948EFIAPI
5949AsmReadMsr64 (
5950 IN UINT32 Index
5951 );
5952
5953
5971UINT64
5972EFIAPI
5973AsmWriteMsr64 (
5974 IN UINT32 Index,
5975 IN UINT64 Value
5976 );
5977
5978
5997UINT64
5998EFIAPI
5999AsmMsrOr64 (
6000 IN UINT32 Index,
6001 IN UINT64 OrData
6002 );
6003
6004
6023UINT64
6024EFIAPI
6025AsmMsrAnd64 (
6026 IN UINT32 Index,
6027 IN UINT64 AndData
6028 );
6029
6030
6052UINT64
6053EFIAPI
6054AsmMsrAndThenOr64 (
6055 IN UINT32 Index,
6056 IN UINT64 AndData,
6057 IN UINT64 OrData
6058 );
6059
6060
6083UINT64
6084EFIAPI
6085AsmMsrBitFieldRead64 (
6086 IN UINT32 Index,
6087 IN UINTN StartBit,
6088 IN UINTN EndBit
6089 );
6090
6091
6116UINT64
6117EFIAPI
6118AsmMsrBitFieldWrite64 (
6119 IN UINT32 Index,
6120 IN UINTN StartBit,
6121 IN UINTN EndBit,
6122 IN UINT64 Value
6123 );
6124
6125
6153UINT64
6154EFIAPI
6155AsmMsrBitFieldOr64 (
6156 IN UINT32 Index,
6157 IN UINTN StartBit,
6158 IN UINTN EndBit,
6159 IN UINT64 OrData
6160 );
6161
6162
6190UINT64
6191EFIAPI
6192AsmMsrBitFieldAnd64 (
6193 IN UINT32 Index,
6194 IN UINTN StartBit,
6195 IN UINTN EndBit,
6196 IN UINT64 AndData
6197 );
6198
6199
6230UINT64
6231EFIAPI
6232AsmMsrBitFieldAndThenOr64 (
6233 IN UINT32 Index,
6234 IN UINTN StartBit,
6235 IN UINTN EndBit,
6236 IN UINT64 AndData,
6237 IN UINT64 OrData
6238 );
6239
6240
6251UINTN
6252EFIAPI
6253AsmReadEflags (
6254 VOID
6255 );
6256
6257
6268UINTN
6269EFIAPI
6270AsmReadCr0 (
6271 VOID
6272 );
6273
6274
6285UINTN
6286EFIAPI
6287AsmReadCr2 (
6288 VOID
6289 );
6290
6291
6302UINTN
6303EFIAPI
6304AsmReadCr3 (
6305 VOID
6306 );
6307
6308
6319UINTN
6320EFIAPI
6321AsmReadCr4 (
6322 VOID
6323 );
6324
6325
6337UINTN
6338EFIAPI
6339AsmWriteCr0 (
6340 UINTN Cr0
6341 );
6342
6343
6355UINTN
6356EFIAPI
6357AsmWriteCr2 (
6358 UINTN Cr2
6359 );
6360
6361
6373UINTN
6374EFIAPI
6375AsmWriteCr3 (
6376 UINTN Cr3
6377 );
6378
6379
6391UINTN
6392EFIAPI
6393AsmWriteCr4 (
6394 UINTN Cr4
6395 );
6396
6397
6408UINTN
6409EFIAPI
6410AsmReadDr0 (
6411 VOID
6412 );
6413
6414
6425UINTN
6426EFIAPI
6427AsmReadDr1 (
6428 VOID
6429 );
6430
6431
6442UINTN
6443EFIAPI
6444AsmReadDr2 (
6445 VOID
6446 );
6447
6448
6459UINTN
6460EFIAPI
6461AsmReadDr3 (
6462 VOID
6463 );
6464
6465
6476UINTN
6477EFIAPI
6478AsmReadDr4 (
6479 VOID
6480 );
6481
6482
6493UINTN
6494EFIAPI
6495AsmReadDr5 (
6496 VOID
6497 );
6498
6499
6510UINTN
6511EFIAPI
6512AsmReadDr6 (
6513 VOID
6514 );
6515
6516
6527UINTN
6528EFIAPI
6529AsmReadDr7 (
6530 VOID
6531 );
6532
6533
6545UINTN
6546EFIAPI
6547AsmWriteDr0 (
6548 UINTN Dr0
6549 );
6550
6551
6563UINTN
6564EFIAPI
6565AsmWriteDr1 (
6566 UINTN Dr1
6567 );
6568
6569
6581UINTN
6582EFIAPI
6583AsmWriteDr2 (
6584 UINTN Dr2
6585 );
6586
6587
6599UINTN
6600EFIAPI
6601AsmWriteDr3 (
6602 UINTN Dr3
6603 );
6604
6605
6617UINTN
6618EFIAPI
6619AsmWriteDr4 (
6620 UINTN Dr4
6621 );
6622
6623
6635UINTN
6636EFIAPI
6637AsmWriteDr5 (
6638 UINTN Dr5
6639 );
6640
6641
6653UINTN
6654EFIAPI
6655AsmWriteDr6 (
6656 UINTN Dr6
6657 );
6658
6659
6671UINTN
6672EFIAPI
6673AsmWriteDr7 (
6674 UINTN Dr7
6675 );
6676
6677
6687UINT16
6688EFIAPI
6689AsmReadCs (
6690 VOID
6691 );
6692
6693
6703UINT16
6704EFIAPI
6705AsmReadDs (
6706 VOID
6707 );
6708
6709
6719UINT16
6720EFIAPI
6721AsmReadEs (
6722 VOID
6723 );
6724
6725
6735UINT16
6736EFIAPI
6737AsmReadFs (
6738 VOID
6739 );
6740
6741
6751UINT16
6752EFIAPI
6753AsmReadGs (
6754 VOID
6755 );
6756
6757
6767UINT16
6768EFIAPI
6769AsmReadSs (
6770 VOID
6771 );
6772
6773
6783UINT16
6784EFIAPI
6785AsmReadTr (
6786 VOID
6787 );
6788
6789
6801VOID
6802EFIAPI
6803AsmReadGdtr (
6804 OUT IA32_DESCRIPTOR *Gdtr
6805 );
6806
6807
6819VOID
6820EFIAPI
6821AsmWriteGdtr (
6822 IN CONST IA32_DESCRIPTOR *Gdtr
6823 );
6824
6825
6837VOID
6838EFIAPI
6839AsmReadIdtr (
6840 OUT IA32_DESCRIPTOR *Idtr
6841 );
6842
6843
6855VOID
6856EFIAPI
6857AsmWriteIdtr (
6858 IN CONST IA32_DESCRIPTOR *Idtr
6859 );
6860
6861
6871UINT16
6872EFIAPI
6873AsmReadLdtr (
6874 VOID
6875 );
6876
6877
6887VOID
6888EFIAPI
6889AsmWriteLdtr (
6890 IN UINT16 Ldtr
6891 );
6892
6893
6907VOID
6908EFIAPI
6909AsmFxSave (
6910 OUT IA32_FX_BUFFER *Buffer
6911 );
6912
6913
6928VOID
6929EFIAPI
6930AsmFxRestore (
6931 IN CONST IA32_FX_BUFFER *Buffer
6932 );
6933
6934
6944UINT64
6945EFIAPI
6946AsmReadMm0 (
6947 VOID
6948 );
6949
6950
6960UINT64
6961EFIAPI
6962AsmReadMm1 (
6963 VOID
6964 );
6965
6966
6976UINT64
6977EFIAPI
6978AsmReadMm2 (
6979 VOID
6980 );
6981
6982
6992UINT64
6993EFIAPI
6994AsmReadMm3 (
6995 VOID
6996 );
6997
6998
7008UINT64
7009EFIAPI
7010AsmReadMm4 (
7011 VOID
7012 );
7013
7014
7024UINT64
7025EFIAPI
7026AsmReadMm5 (
7027 VOID
7028 );
7029
7030
7040UINT64
7041EFIAPI
7042AsmReadMm6 (
7043 VOID
7044 );
7045
7046
7056UINT64
7057EFIAPI
7058AsmReadMm7 (
7059 VOID
7060 );
7061
7062
7072VOID
7073EFIAPI
7074AsmWriteMm0 (
7075 IN UINT64 Value
7076 );
7077
7078
7088VOID
7089EFIAPI
7090AsmWriteMm1 (
7091 IN UINT64 Value
7092 );
7093
7094
7104VOID
7105EFIAPI
7106AsmWriteMm2 (
7107 IN UINT64 Value
7108 );
7109
7110
7120VOID
7121EFIAPI
7122AsmWriteMm3 (
7123 IN UINT64 Value
7124 );
7125
7126
7136VOID
7137EFIAPI
7138AsmWriteMm4 (
7139 IN UINT64 Value
7140 );
7141
7142
7152VOID
7153EFIAPI
7154AsmWriteMm5 (
7155 IN UINT64 Value
7156 );
7157
7158
7168VOID
7169EFIAPI
7170AsmWriteMm6 (
7171 IN UINT64 Value
7172 );
7173
7174
7184VOID
7185EFIAPI
7186AsmWriteMm7 (
7187 IN UINT64 Value
7188 );
7189
7190
7200UINT64
7201EFIAPI
7202AsmReadTsc (
7203 VOID
7204 );
7205
7206
7218UINT64
7219EFIAPI
7220AsmReadPmc (
7221 IN UINT32 Index
7222 );
7223
7224
7241UINTN
7242EFIAPI
7243AsmMonitor (
7244 IN UINTN Eax,
7245 IN UINTN Ecx,
7246 IN UINTN Edx
7247 );
7248
7249
7264UINTN
7265EFIAPI
7266AsmMwait (
7267 IN UINTN Eax,
7268 IN UINTN Ecx
7269 );
7270
7271
7279VOID
7280EFIAPI
7281AsmWbinvd (
7282 VOID
7283 );
7284
7285
7293VOID
7294EFIAPI
7295AsmInvd (
7296 VOID
7297 );
7298
7299
7315VOID *
7316EFIAPI
7317AsmFlushCacheLine (
7318 IN VOID *LinearAddress
7319 );
7320
7321
7359VOID
7360EFIAPI
7361AsmEnablePaging32 (
7362 IN SWITCH_STACK_ENTRY_POINT EntryPoint,
7363 IN VOID *Context1, OPTIONAL
7364 IN VOID *Context2, OPTIONAL
7365 IN VOID *NewStack
7366 );
7367
7368
7403VOID
7404EFIAPI
7405AsmDisablePaging32 (
7406 IN SWITCH_STACK_ENTRY_POINT EntryPoint,
7407 IN VOID *Context1, OPTIONAL
7408 IN VOID *Context2, OPTIONAL
7409 IN VOID *NewStack
7410 );
7411
7412
7445VOID
7446EFIAPI
7447AsmEnablePaging64 (
7448 IN UINT16 Cs,
7449 IN UINT64 EntryPoint,
7450 IN UINT64 Context1, OPTIONAL
7451 IN UINT64 Context2, OPTIONAL
7452 IN UINT64 NewStack
7453 );
7454
7455
7486VOID
7487EFIAPI
7488AsmDisablePaging64 (
7489 IN UINT16 Cs,
7490 IN UINT32 EntryPoint,
7491 IN UINT32 Context1, OPTIONAL
7492 IN UINT32 Context2, OPTIONAL
7493 IN UINT32 NewStack
7494 );
7495
7496
7497//
7498// 16-bit thunking services
7499//
7500
7522VOID
7523EFIAPI
7524AsmGetThunk16Properties (
7525 OUT UINT32 *RealModeBufferSize,
7526 OUT UINT32 *ExtraStackSize
7527 );
7528
7529
7544VOID
7545EFIAPI
7546AsmPrepareThunk16 (
7547 IN OUT THUNK_CONTEXT *ThunkContext
7548 );
7549
7550
7604VOID
7605EFIAPI
7606AsmThunk16 (
7607 IN OUT THUNK_CONTEXT *ThunkContext
7608 );
7609
7610
7631VOID
7632EFIAPI
7633AsmPrepareAndThunk16 (
7634 IN OUT THUNK_CONTEXT *ThunkContext
7635 );
7636
7648BOOLEAN
7649EFIAPI
7650AsmRdRand16 (
7651 OUT UINT16 *Rand
7652 );
7653
7665BOOLEAN
7666EFIAPI
7667AsmRdRand32 (
7668 OUT UINT32 *Rand
7669 );
7670
7682BOOLEAN
7683EFIAPI
7684AsmRdRand64 (
7685 OUT UINT64 *Rand
7686 );
7687
7693VOID
7694EFIAPI
7695AsmWriteTr (
7696 IN UINT16 Selector
7697 );
7698
7706VOID
7707EFIAPI
7708AsmLfence (
7709 VOID
7710 );
7711
7746VOID
7747EFIAPI
7748PatchInstructionX86 (
7749 OUT X86_ASSEMBLY_PATCH_LABEL *InstructionEnd,
7750 IN UINT64 PatchValue,
7751 IN UINTN ValueSize
7752 );
7753
7754#endif // defined (MDE_CPU_IA32) || defined (MDE_CPU_X64)
7755#endif // !defined (__BASE_LIB__)
char CHAR8
Definition ProcessorBind.h:109
UINT64 UINTN
Definition ProcessorBind.h:118
unsigned short CHAR16
Definition ProcessorBind.h:105
INT64 INTN
Definition ProcessorBind.h:124
#define EFIAPI
Definition ProcessorBind.h:172
unsigned int UINT32
Definition ProcessorBind.h:102
PACKED struct @21::@35 Bits
UINT32 EFIAPI BitFieldAnd32(IN UINT32 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 AndData)
UINTN EFIAPI AsciiStrnLenS(IN CONST CHAR8 *String, IN UINTN MaxSize)
CHAR8 *EFIAPI AsciiStrnCpy(OUT CHAR8 *Destination, IN CONST CHAR8 *Source, IN UINTN Length)
UINT64 EFIAPI BitFieldOr64(IN UINT64 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT64 OrData)
UINT8 EFIAPI BitFieldCountOnes64(IN UINT64 Operand, IN UINTN StartBit, IN UINTN EndBit)
RETURN_STATUS EFIAPI AsciiStrDecimalToUint64S(IN CONST CHAR8 *String, OUT CHAR8 **EndPointer, OPTIONAL OUT UINT64 *Data)
UINT16 EFIAPI BitFieldAnd16(IN UINT16 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT16 AndData)
UINT64 EFIAPI CalculateCheckSum64(IN CONST UINT64 *Buffer, IN UINTN Length)
INTN EFIAPI AsciiStriCmp(IN CONST CHAR8 *FirstString, IN CONST CHAR8 *SecondString)
UINT32 EFIAPI RRotU32(IN UINT32 Operand, IN UINTN Count)
UINT64 EFIAPI StrHexToUint64(IN CONST CHAR16 *String)
BOOLEAN EFIAPI IsNull(IN CONST LIST_ENTRY *List, IN CONST LIST_ENTRY *Node)
UINT8 EFIAPI BcdToDecimal8(IN UINT8 Value)
LIST_ENTRY *EFIAPI GetPreviousNode(IN CONST LIST_ENTRY *List, IN CONST LIST_ENTRY *Node)
BOOLEAN EFIAPI SetInterruptState(IN BOOLEAN InterruptState)
UINT64 EFIAPI BitFieldAndThenOr64(IN UINT64 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT64 AndData, IN UINT64 OrData)
UINTN EFIAPI StrSize(IN CONST CHAR16 *String)
UINT8 EFIAPI BitFieldAndThenOr8(IN UINT8 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT8 AndData, IN UINT8 OrData)
BOOLEAN EFIAPI IsListEmpty(IN CONST LIST_ENTRY *ListHead)
RETURN_STATUS EFIAPI AsciiStrnCpyS(OUT CHAR8 *Destination, IN UINTN DestMax, IN CONST CHAR8 *Source, IN UINTN Length)
CHAR8 *EFIAPI UnicodeStrToAsciiStr(IN CONST CHAR16 *Source, OUT CHAR8 *Destination)
UINT32 EFIAPI BitFieldAndThenOr32(IN UINT32 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 AndData, IN UINT32 OrData)
CHAR8 *EFIAPI AsciiStrnCat(IN OUT CHAR8 *Destination, IN CONST CHAR8 *Source, IN UINTN Length)
INTN EFIAPI LowBitSet32(IN UINT32 Operand)
RETURN_STATUS EFIAPI StrCpyS(OUT CHAR16 *Destination, IN UINTN DestMax, IN CONST CHAR16 *Source)
LIST_ENTRY *EFIAPI GetNextNode(IN CONST LIST_ENTRY *List, IN CONST LIST_ENTRY *Node)
BOOLEAN EFIAPI GetInterruptState(VOID)
CHAR16 *EFIAPI StrnCpy(OUT CHAR16 *Destination, IN CONST CHAR16 *Source, IN UINTN Length)
UINT64 EFIAPI DivU64x32(IN UINT64 Dividend, IN UINT32 Divisor)
UINTN EFIAPI StrDecimalToUintn(IN CONST CHAR16 *String)
UINT32 EFIAPI WriteUnaligned24(OUT UINT32 *Buffer, IN UINT32 Value)
INTN EFIAPI StrCmp(IN CONST CHAR16 *FirstString, IN CONST CHAR16 *SecondString)
RETURNS_TWICE UINTN EFIAPI SetJump(OUT BASE_LIBRARY_JUMP_BUFFER *JumpBuffer)
UINT64 EFIAPI MultU64x64(IN UINT64 Multiplicand, IN UINT64 Multiplier)
UINT32 EFIAPI CalculateSum32(IN CONST UINT32 *Buffer, IN UINTN Length)
BOOLEAN EFIAPI SaveAndDisableInterrupts(VOID)
UINT16 EFIAPI SwapBytes16(IN UINT16 Value)
BOOLEAN EFIAPI IsNodeAtEnd(IN CONST LIST_ENTRY *List, IN CONST LIST_ENTRY *Node)
UINT64 EFIAPI ReadUnaligned64(IN CONST UINT64 *Buffer)
UINT32 EFIAPI CalculateCrc32(IN VOID *Buffer, IN UINTN Length)
INT64 EFIAPI DivS64x64Remainder(IN INT64 Dividend, IN INT64 Divisor, OUT INT64 *Remainder OPTIONAL)
UINT64 EFIAPI AsciiStrDecimalToUint64(IN CONST CHAR8 *String)
UINTN EFIAPI AsciiStrLen(IN CONST CHAR8 *String)
CHAR16 *EFIAPI AsciiStrToUnicodeStr(IN CONST CHAR8 *Source, OUT CHAR16 *Destination)
UINT64 EFIAPI StrDecimalToUint64(IN CONST CHAR16 *String)
RETURN_STATUS EFIAPI StrToIpv6Address(IN CONST CHAR16 *String, OUT CHAR16 **EndPointer, OPTIONAL OUT IPv6_ADDRESS *Address, OUT UINT8 *PrefixLength OPTIONAL)
LIST_ENTRY *EFIAPI InsertHeadList(IN OUT LIST_ENTRY *ListHead, IN OUT LIST_ENTRY *Entry)
RETURN_STATUS EFIAPI AsciiStrCatS(IN OUT CHAR8 *Destination, IN UINTN DestMax, IN CONST CHAR8 *Source)
UINT32 EFIAPI GetPowerOfTwo32(IN UINT32 Operand)
UINT32 EFIAPI BitFieldWrite32(IN UINT32 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 Value)
LIST_ENTRY *EFIAPI GetFirstNode(IN CONST LIST_ENTRY *List)
UINT16 EFIAPI BitFieldAndThenOr16(IN UINT16 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT16 AndData, IN UINT16 OrData)
UINT16 EFIAPI CalculateSum16(IN CONST UINT16 *Buffer, IN UINTN Length)
UINT32 EFIAPI BitFieldOr32(IN UINT32 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT32 OrData)
UINT16 EFIAPI ReadUnaligned16(IN CONST UINT16 *Buffer)
UINT64 EFIAPI BitFieldWrite64(IN UINT64 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT64 Value)
INTN EFIAPI AsciiStrCmp(IN CONST CHAR8 *FirstString, IN CONST CHAR8 *SecondString)
UINTN EFIAPI StrnSizeS(IN CONST CHAR16 *String, IN UINTN MaxSize)
VOID EFIAPI CpuDeadLoop(VOID)
UINT8 EFIAPI CalculateSum8(IN CONST UINT8 *Buffer, IN UINTN Length)
INTN EFIAPI AsciiStrnCmp(IN CONST CHAR8 *FirstString, IN CONST CHAR8 *SecondString, IN UINTN Length)
RETURN_STATUS EFIAPI UnicodeStrToAsciiStrS(IN CONST CHAR16 *Source, OUT CHAR8 *Destination, IN UINTN DestMax)
VOID EFIAPI MemoryFence(VOID)
VOID EFIAPI CpuPause(VOID)
UINT8 EFIAPI CalculateCheckSum8(IN CONST UINT8 *Buffer, IN UINTN Length)
RETURN_STATUS EFIAPI StrDecimalToUintnS(IN CONST CHAR16 *String, OUT CHAR16 **EndPointer, OPTIONAL OUT UINTN *Data)
VOID EFIAPI EnableInterrupts(VOID)
UINTN EFIAPI AsciiStrDecimalToUintn(IN CONST CHAR8 *String)
LIST_ENTRY *EFIAPI SwapListEntries(IN OUT LIST_ENTRY *FirstEntry, IN OUT LIST_ENTRY *SecondEntry)
RETURN_STATUS EFIAPI StrCatS(IN OUT CHAR16 *Destination, IN UINTN DestMax, IN CONST CHAR16 *Source)
UINT32 EFIAPI SwapBytes32(IN UINT32 Value)
UINT32 EFIAPI ModU64x32(IN UINT64 Dividend, IN UINT32 Divisor)
VOID EFIAPI DisableInterrupts(VOID)
RETURN_STATUS EFIAPI StrToIpv4Address(IN CONST CHAR16 *String, OUT CHAR16 **EndPointer, OPTIONAL OUT IPv4_ADDRESS *Address, OUT UINT8 *PrefixLength OPTIONAL)
UINT8 EFIAPI BitFieldWrite8(IN UINT8 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT8 Value)
VOID(EFIAPI * SWITCH_STACK_ENTRY_POINT)(IN VOID *Context1, OPTIONAL IN VOID *Context2 OPTIONAL)
Definition BaseLib.h:4871
UINTN EFIAPI StrHexToUintn(IN CONST CHAR16 *String)
UINTN EFIAPI StrnLenS(IN CONST CHAR16 *String, IN UINTN MaxSize)
INTN EFIAPI StrnCmp(IN CONST CHAR16 *FirstString, IN CONST CHAR16 *SecondString, IN UINTN Length)
UINT8 EFIAPI BitFieldRead8(IN UINT8 Operand, IN UINTN StartBit, IN UINTN EndBit)
LIST_ENTRY *EFIAPI RemoveEntryList(IN CONST LIST_ENTRY *Entry)
UINT64 EFIAPI RShiftU64(IN UINT64 Operand, IN UINTN Count)
UINT64 EFIAPI ARShiftU64(IN UINT64 Operand, IN UINTN Count)
RETURN_STATUS EFIAPI AsciiStrToGuid(IN CONST CHAR8 *String, OUT GUID *Guid)
UINT64 EFIAPI MultU64x32(IN UINT64 Multiplicand, IN UINT32 Multiplier)
RETURN_STATUS EFIAPI StrToGuid(IN CONST CHAR16 *String, OUT GUID *Guid)
CHAR16 *EFIAPI PathCleanUpDirectories(IN CHAR16 *Path)
UINT16 EFIAPI CalculateCheckSum16(IN CONST UINT16 *Buffer, IN UINTN Length)
CHAR16 *EFIAPI StrCat(IN OUT CHAR16 *Destination, IN CONST CHAR16 *Source)
RETURN_STATUS EFIAPI StrHexToUintnS(IN CONST CHAR16 *String, OUT CHAR16 **EndPointer, OPTIONAL OUT UINTN *Data)
UINT64 EFIAPI DivU64x32Remainder(IN UINT64 Dividend, IN UINT32 Divisor, OUT UINT32 *Remainder OPTIONAL)
UINT8 EFIAPI BitFieldAnd8(IN UINT8 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT8 AndData)
UINTN EFIAPI AsciiStrnSizeS(IN CONST CHAR8 *String, IN UINTN MaxSize)
VOID EFIAPI SwitchStack(IN SWITCH_STACK_ENTRY_POINT EntryPoint, IN VOID *Context1, OPTIONAL IN VOID *Context2, OPTIONAL IN VOID *NewStack,...)
UINT64 EFIAPI DivU64x64Remainder(IN UINT64 Dividend, IN UINT64 Divisor, OUT UINT64 *Remainder OPTIONAL)
UINT64 EFIAPI GetPowerOfTwo64(IN UINT64 Operand)
UINT32 EFIAPI WriteUnaligned32(OUT UINT32 *Buffer, IN UINT32 Value)
BOOLEAN EFIAPI PathRemoveLastItem(IN OUT CHAR16 *Path)
LIST_ENTRY *EFIAPI InitializeListHead(IN OUT LIST_ENTRY *ListHead)
RETURN_STATUS EFIAPI AsciiStrHexToUintnS(IN CONST CHAR8 *String, OUT CHAR8 **EndPointer, OPTIONAL OUT UINTN *Data)
RETURN_STATUS EFIAPI AsciiStrDecimalToUintnS(IN CONST CHAR8 *String, OUT CHAR8 **EndPointer, OPTIONAL OUT UINTN *Data)
CHAR8 *EFIAPI AsciiStrCpy(OUT CHAR8 *Destination, IN CONST CHAR8 *Source)
UINT16 EFIAPI BitFieldWrite16(IN UINT16 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT16 Value)
RETURN_STATUS EFIAPI StrDecimalToUint64S(IN CONST CHAR16 *String, OUT CHAR16 **EndPointer, OPTIONAL OUT UINT64 *Data)
RETURN_STATUS EFIAPI StrHexToBytes(IN CONST CHAR16 *String, IN UINTN Length, OUT UINT8 *Buffer, IN UINTN MaxBufferSize)
UINT64 EFIAPI RRotU64(IN UINT64 Operand, IN UINTN Count)
UINTN EFIAPI AsciiStrHexToUintn(IN CONST CHAR8 *String)
INT64 EFIAPI MultS64x64(IN INT64 Multiplicand, IN INT64 Multiplier)
INTN EFIAPI LowBitSet64(IN UINT64 Operand)
RETURN_STATUS EFIAPI StrnCatS(IN OUT CHAR16 *Destination, IN UINTN DestMax, IN CONST CHAR16 *Source, IN UINTN Length)
VOID EFIAPI CpuBreakpoint(VOID)
UINT8 EFIAPI DecimalToBcd8(IN UINT8 Value)
UINT16 EFIAPI WriteUnaligned16(OUT UINT16 *Buffer, IN UINT16 Value)
UINT64 EFIAPI BitFieldRead64(IN UINT64 Operand, IN UINTN StartBit, IN UINTN EndBit)
UINT64 EFIAPI LShiftU64(IN UINT64 Operand, IN UINTN Count)
UINT64 EFIAPI BitFieldAnd64(IN UINT64 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT64 AndData)
RETURN_STATUS EFIAPI AsciiStrToUnicodeStrS(IN CONST CHAR8 *Source, OUT CHAR16 *Destination, IN UINTN DestMax)
UINT32 EFIAPI ReadUnaligned24(IN CONST UINT32 *Buffer)
UINT64 EFIAPI SwapBytes64(IN UINT64 Value)
UINT16 EFIAPI BitFieldOr16(IN UINT16 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT16 OrData)
UINT64 EFIAPI CalculateSum64(IN CONST UINT64 *Buffer, IN UINTN Length)
RETURN_STATUS EFIAPI AsciiStrToIpv4Address(IN CONST CHAR8 *String, OUT CHAR8 **EndPointer, OPTIONAL OUT IPv4_ADDRESS *Address, OUT UINT8 *PrefixLength OPTIONAL)
UINT8 EFIAPI BitFieldCountOnes32(IN UINT32 Operand, IN UINTN StartBit, IN UINTN EndBit)
CHAR16 *EFIAPI StrnCat(IN OUT CHAR16 *Destination, IN CONST CHAR16 *Source, IN UINTN Length)
UINT16 EFIAPI BitFieldRead16(IN UINT16 Operand, IN UINTN StartBit, IN UINTN EndBit)
UINTN EFIAPI AsciiStrSize(IN CONST CHAR8 *String)
UINT32 EFIAPI LRotU32(IN UINT32 Operand, IN UINTN Count)
RETURN_STATUS EFIAPI AsciiStrToIpv6Address(IN CONST CHAR8 *String, OUT CHAR8 **EndPointer, OPTIONAL OUT IPv6_ADDRESS *Address, OUT UINT8 *PrefixLength OPTIONAL)
VOID EFIAPI LongJump(IN BASE_LIBRARY_JUMP_BUFFER *JumpBuffer, IN UINTN Value)
RETURN_STATUS EFIAPI StrnCpyS(OUT CHAR16 *Destination, IN UINTN DestMax, IN CONST CHAR16 *Source, IN UINTN Length)
INTN EFIAPI HighBitSet64(IN UINT64 Operand)
RETURN_STATUS EFIAPI AsciiStrHexToBytes(IN CONST CHAR8 *String, IN UINTN Length, OUT UINT8 *Buffer, IN UINTN MaxBufferSize)
UINT8 EFIAPI BitFieldOr8(IN UINT8 Operand, IN UINTN StartBit, IN UINTN EndBit, IN UINT8 OrData)
UINT32 EFIAPI CalculateCheckSum32(IN CONST UINT32 *Buffer, IN UINTN Length)
RETURN_STATUS EFIAPI AsciiStrnCatS(IN OUT CHAR8 *Destination, IN UINTN DestMax, IN CONST CHAR8 *Source, IN UINTN Length)
UINT64 EFIAPI WriteUnaligned64(OUT UINT64 *Buffer, IN UINT64 Value)
UINT64 EFIAPI LRotU64(IN UINT64 Operand, IN UINTN Count)
CHAR16 *EFIAPI StrCpy(OUT CHAR16 *Destination, IN CONST CHAR16 *Source)
RETURN_STATUS EFIAPI AsciiStrnToUnicodeStrS(IN CONST CHAR8 *Source, IN UINTN Length, OUT CHAR16 *Destination, IN UINTN DestMax, OUT UINTN *DestinationLength)
UINTN EFIAPI StrLen(IN CONST CHAR16 *String)
CHAR8 *EFIAPI AsciiStrStr(IN CONST CHAR8 *String, IN CONST CHAR8 *SearchString)
RETURN_STATUS EFIAPI StrHexToUint64S(IN CONST CHAR16 *String, OUT CHAR16 **EndPointer, OPTIONAL OUT UINT64 *Data)
BOOLEAN EFIAPI IsNodeInList(IN CONST LIST_ENTRY *FirstEntry, IN CONST LIST_ENTRY *SecondEntry)
UINT64 EFIAPI AsciiStrHexToUint64(IN CONST CHAR8 *String)
RETURN_STATUS EFIAPI UnicodeStrnToAsciiStrS(IN CONST CHAR16 *Source, IN UINTN Length, OUT CHAR8 *Destination, IN UINTN DestMax, OUT UINTN *DestinationLength)
RETURN_STATUS EFIAPI AsciiStrCpyS(OUT CHAR8 *Destination, IN UINTN DestMax, IN CONST CHAR8 *Source)
VOID EFIAPI EnableDisableInterrupts(VOID)
CHAR16 *EFIAPI StrStr(IN CONST CHAR16 *String, IN CONST CHAR16 *SearchString)
INTN EFIAPI HighBitSet32(IN UINT32 Operand)
LIST_ENTRY *EFIAPI InsertTailList(IN OUT LIST_ENTRY *ListHead, IN OUT LIST_ENTRY *Entry)
UINT32 EFIAPI BitFieldRead32(IN UINT32 Operand, IN UINTN StartBit, IN UINTN EndBit)
RETURN_STATUS EFIAPI AsciiStrHexToUint64S(IN CONST CHAR8 *String, OUT CHAR8 **EndPointer, OPTIONAL OUT UINT64 *Data)
CHAR8 *EFIAPI AsciiStrCat(IN OUT CHAR8 *Destination, IN CONST CHAR8 *Source)
UINT32 EFIAPI ReadUnaligned32(IN CONST UINT32 *Buffer)
#define CONST
Definition Base.h:327
#define RETURNS_TWICE
Definition Base.h:237
#define IN
Definition Base.h:347
UINTN RETURN_STATUS
Definition Base.h:965
#define OUT
Definition Base.h:352
#define OPTIONAL
Definition Base.h:358
#define SS
Definition string.cpp:35
uint32_t Reserved1
Definition pe.h:18
#define VOID
Definition acefi.h:190
ACPI_PHYSICAL_ADDRESS Address
Definition acpixf.h:637
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE ACPI_HANDLE ACPI_HANDLE *OutHandle ACPI_HANDLE *OutHandle void *Context void *Context ACPI_EVENT_HANDLER Handler UINT32 UINT32 Type
Definition acpixf.h:894
ACPI_PHYSICAL_ADDRESS ACPI_SIZE Length
Definition acpixf.h:638
unsigned short UINT16
Definition actypes.h:237
unsigned char BOOLEAN
Definition actypes.h:235
COMPILER_DEPENDENT_INT64 INT64
Definition actypes.h:240
unsigned char UINT8
Definition actypes.h:236
COMPILER_DEPENDENT_UINT64 UINT64
Definition actypes.h:239
Definition Base.h:281
Definition Base.h:291
Definition Base.h:298
Definition Base.h:315
#define CR3
Definition termios.h:102