XenevaOS
Loading...
Searching...
No Matches
SafeIntLib.h
Go to the documentation of this file.
1
28#ifndef __INT_SAFE_LIB_H__
29#define __INT_SAFE_LIB_H__
30
31//
32// It is common for -1 to be used as an error value
33//
34#define INT8_ERROR ((INT8) -1)
35#define UINT8_ERROR MAX_UINT8
36#define CHAR8_ERROR ((CHAR8)(MAX_INT8))
37#define INT16_ERROR ((INT16) -1)
38#define UINT16_ERROR MAX_UINT16
39#define CHAR16_ERROR MAX_UINT16
40#define INT32_ERROR ((INT32) -1)
41#define UINT32_ERROR MAX_UINT32
42#define INT64_ERROR ((INT64) -1)
43#define UINT64_ERROR MAX_UINT64
44#define INTN_ERROR ((INTN) -1)
45#define UINTN_ERROR MAX_UINTN
46
47//
48// CHAR16 is defined to be the same as UINT16, so for CHAR16
49// operations redirect to the UINT16 ones:
50//
51#define SafeInt8ToChar16 SafeInt8ToUint16
52#define SafeInt16ToChar16 SafeInt16ToUint16
53#define SafeInt32ToChar16 SafeInt32ToUint16
54#define SafeUint32ToChar16 SafeUint32ToUint16
55#define SafeInt64ToChar16 SafeInt64ToUint16
56#define SafeUint64ToChar16 SafeUint64ToUint16
57#define SafeIntnToChar16 SafeIntnToUint16
58#define SafeUintnToChar16 SafeUintnToUint16
59
60#define SafeChar16ToInt8 SafeUint16ToInt8
61#define SafeChar16ToUint8 SafeUint16ToUint8
62#define SafeChar16ToChar8 SafeUint16ToChar8
63#define SafeChar16ToInt16 SafeUint16ToInt16
64
65#define SafeChar16Mult SafeUint16Mult
66#define SafeChar16Sub SafeUint16Sub
67#define SafeChar16Add SafeUint16Add
68
69//
70// Conversion functions
71//
72// There are three reasons for having conversion functions:
73//
74// 1. We are converting from a signed type to an unsigned type of the same
75// size, or vice-versa.
76//
77// 2. We are converting to a smaller type, and we could therefore possibly
78// overflow.
79//
80// 3. We are converting to a bigger type, and we are signed and the type we are
81// converting to is unsigned.
82//
83
105EFIAPI
107 IN INT8 Operand,
108 OUT UINT8 *Result
109 );
110
132EFIAPI
134 IN INT8 Operand,
135 OUT CHAR8 *Result
136 );
137
159EFIAPI
161 IN INT8 Operand,
162 OUT UINT16 *Result
163 );
164
186EFIAPI
188 IN INT8 Operand,
189 OUT UINT32 *Result
190 );
191
213EFIAPI
215 IN INT8 Operand,
216 OUT UINTN *Result
217 );
218
240EFIAPI
242 IN INT8 Operand,
243 OUT UINT64 *Result
244 );
245
267EFIAPI
269 IN UINT8 Operand,
270 OUT INT8 *Result
271 );
272
294EFIAPI
296 IN UINT8 Operand,
297 OUT CHAR8 *Result
298 );
299
321EFIAPI
323 IN INT16 Operand,
324 OUT INT8 *Result
325 );
326
348EFIAPI
350 IN INT16 Operand,
351 OUT CHAR8 *Result
352 );
353
375EFIAPI
377 IN INT16 Operand,
378 OUT UINT8 *Result
379 );
380
402EFIAPI
404 IN INT16 Operand,
405 OUT UINT16 *Result
406 );
407
429EFIAPI
431 IN INT16 Operand,
432 OUT UINT32 *Result
433 );
434
456EFIAPI
458 IN INT16 Operand,
459 OUT UINTN *Result
460 );
461
483EFIAPI
485 IN INT16 Operand,
486 OUT UINT64 *Result
487 );
488
510EFIAPI
512 IN UINT16 Operand,
513 OUT INT8 *Result
514 );
515
537EFIAPI
539 IN UINT16 Operand,
540 OUT CHAR8 *Result
541 );
542
564EFIAPI
566 IN UINT16 Operand,
567 OUT UINT8 *Result
568 );
569
591EFIAPI
593 IN UINT16 Operand,
594 OUT INT16 *Result
595 );
596
618EFIAPI
620 IN INT32 Operand,
621 OUT INT8 *Result
622 );
623
645EFIAPI
647 IN INT32 Operand,
648 OUT CHAR8 *Result
649 );
650
672EFIAPI
674 IN INT32 Operand,
675 OUT UINT8 *Result
676 );
677
699EFIAPI
701 IN INT32 Operand,
702 OUT INT16 *Result
703 );
704
726EFIAPI
728 IN INT32 Operand,
729 OUT UINT16 *Result
730 );
731
732
754EFIAPI
756 IN INT32 Operand,
757 OUT UINT32 *Result
758 );
759
781EFIAPI
783 IN INT32 Operand,
784 OUT UINTN *Result
785 );
786
808EFIAPI
810 IN INT32 Operand,
811 OUT UINT64 *Result
812 );
813
835EFIAPI
837 IN UINT32 Operand,
838 OUT INT8 *Result
839 );
840
862EFIAPI
864 IN UINT32 Operand,
865 OUT CHAR8 *Result
866 );
867
889EFIAPI
891 IN UINT32 Operand,
892 OUT UINT8 *Result
893 );
894
916EFIAPI
918 IN UINT32 Operand,
919 OUT INT16 *Result
920 );
921
943EFIAPI
945 IN UINT32 Operand,
946 OUT UINT16 *Result
947 );
948
970EFIAPI
972 IN UINT32 Operand,
973 OUT INT32 *Result
974 );
975
997EFIAPI
999 IN UINT32 Operand,
1000 OUT INTN *Result
1001 );
1002
1024EFIAPI
1026 IN INTN Operand,
1027 OUT INT8 *Result
1028 );
1029
1051EFIAPI
1053 IN INTN Operand,
1054 OUT CHAR8 *Result
1055 );
1056
1078EFIAPI
1080 IN INTN Operand,
1081 OUT UINT8 *Result
1082 );
1083
1105EFIAPI
1107 IN INTN Operand,
1108 OUT INT16 *Result
1109 );
1110
1132EFIAPI
1134 IN INTN Operand,
1135 OUT UINT16 *Result
1136 );
1137
1159EFIAPI
1161 IN INTN Operand,
1162 OUT INT32 *Result
1163 );
1164
1186EFIAPI
1188 IN INTN Operand,
1189 OUT UINT32 *Result
1190 );
1191
1213EFIAPI
1215 IN INTN Operand,
1216 OUT UINTN *Result
1217 );
1218
1240EFIAPI
1242 IN INTN Operand,
1243 OUT UINT64 *Result
1244 );
1245
1267EFIAPI
1269 IN UINTN Operand,
1270 OUT INT8 *Result
1271 );
1272
1294EFIAPI
1296 IN UINTN Operand,
1297 OUT CHAR8 *Result
1298 );
1299
1321EFIAPI
1323 IN UINTN Operand,
1324 OUT UINT8 *Result
1325 );
1326
1348EFIAPI
1350 IN UINTN Operand,
1351 OUT INT16 *Result
1352 );
1353
1375EFIAPI
1377 IN UINTN Operand,
1378 OUT UINT16 *Result
1379 );
1380
1402EFIAPI
1404 IN UINTN Operand,
1405 OUT INT32 *Result
1406 );
1407
1429EFIAPI
1431 IN UINTN Operand,
1432 OUT UINT32 *Result
1433 );
1434
1456EFIAPI
1458 IN UINTN Operand,
1459 OUT INTN *Result
1460 );
1461
1483EFIAPI
1485 IN UINTN Operand,
1486 OUT INT64 *Result
1487 );
1488
1510EFIAPI
1512 IN INT64 Operand,
1513 OUT INT8 *Result
1514 );
1515
1537EFIAPI
1539 IN INT64 Operand,
1540 OUT CHAR8 *Result
1541 );
1542
1564EFIAPI
1566 IN INT64 Operand,
1567 OUT UINT8 *Result
1568 );
1569
1591EFIAPI
1593 IN INT64 Operand,
1594 OUT INT16 *Result
1595 );
1596
1618EFIAPI
1620 IN INT64 Operand,
1621 OUT UINT16 *Result
1622 );
1623
1645EFIAPI
1647 IN INT64 Operand,
1648 OUT INT32 *Result
1649 );
1650
1672EFIAPI
1674 IN INT64 Operand,
1675 OUT UINT32 *Result
1676 );
1677
1699EFIAPI
1701 IN INT64 Operand,
1702 OUT INTN *Result
1703 );
1704
1726EFIAPI
1728 IN INT64 Operand,
1729 OUT UINTN *Result
1730 );
1731
1753EFIAPI
1755 IN INT64 Operand,
1756 OUT UINT64 *Result
1757 );
1758
1780EFIAPI
1782 IN UINT64 Operand,
1783 OUT INT8 *Result
1784 );
1785
1807EFIAPI
1809 IN UINT64 Operand,
1810 OUT CHAR8 *Result
1811 );
1812
1834EFIAPI
1836 IN UINT64 Operand,
1837 OUT UINT8 *Result
1838 );
1839
1861EFIAPI
1863 IN UINT64 Operand,
1864 OUT INT16 *Result
1865 );
1866
1888EFIAPI
1890 IN UINT64 Operand,
1891 OUT UINT16 *Result
1892 );
1893
1915EFIAPI
1917 IN UINT64 Operand,
1918 OUT INT32 *Result
1919 );
1920
1942EFIAPI
1944 IN UINT64 Operand,
1945 OUT UINT32 *Result
1946 );
1947
1969EFIAPI
1971 IN UINT64 Operand,
1972 OUT INTN *Result
1973 );
1974
1996EFIAPI
1998 IN UINT64 Operand,
1999 OUT UINTN *Result
2000 );
2001
2023EFIAPI
2025 IN UINT64 Operand,
2026 OUT INT64 *Result
2027 );
2028
2029//
2030// Addition functions
2031//
2032
2055EFIAPI
2057 IN UINT8 Augend,
2058 IN UINT8 Addend,
2059 OUT UINT8 *Result
2060 );
2061
2084EFIAPI
2086 IN UINT16 Augend,
2087 IN UINT16 Addend,
2088 OUT UINT16 *Result
2089 );
2090
2113EFIAPI
2115 IN UINT32 Augend,
2116 IN UINT32 Addend,
2117 OUT UINT32 *Result
2118 );
2119
2142EFIAPI
2144 IN UINTN Augend,
2145 IN UINTN Addend,
2146 OUT UINTN *Result
2147 );
2148
2171EFIAPI
2173 IN UINT64 Augend,
2174 IN UINT64 Addend,
2175 OUT UINT64 *Result
2176 );
2177
2178//
2179// Subtraction functions
2180//
2181
2204EFIAPI
2206 IN UINT8 Minuend,
2207 IN UINT8 Subtrahend,
2208 OUT UINT8 *Result
2209 );
2210
2233EFIAPI
2235 IN UINT16 Minuend,
2236 IN UINT16 Subtrahend,
2237 OUT UINT16 *Result
2238 );
2239
2262EFIAPI
2264 IN UINT32 Minuend,
2265 IN UINT32 Subtrahend,
2266 OUT UINT32 *Result
2267 );
2268
2291EFIAPI
2293 IN UINTN Minuend,
2294 IN UINTN Subtrahend,
2295 OUT UINTN *Result
2296 );
2297
2320EFIAPI
2322 IN UINT64 Minuend,
2323 IN UINT64 Subtrahend,
2324 OUT UINT64 *Result
2325 );
2326
2327//
2328// Multiplication functions
2329//
2330
2353EFIAPI
2355 IN UINT8 Multiplicand,
2356 IN UINT8 Multiplier,
2357 OUT UINT8 *Result
2358 );
2359
2382EFIAPI
2384 IN UINT16 Multiplicand,
2385 IN UINT16 Multiplier,
2386 OUT UINT16 *Result
2387 );
2388
2411EFIAPI
2413 IN UINT32 Multiplicand,
2414 IN UINT32 Multiplier,
2415 OUT UINT32 *Result
2416 );
2417
2440EFIAPI
2442 IN UINTN Multiplicand,
2443 IN UINTN Multiplier,
2444 OUT UINTN *Result
2445 );
2446
2469EFIAPI
2471 IN UINT64 Multiplicand,
2472 IN UINT64 Multiplier,
2473 OUT UINT64 *Result
2474 );
2475
2476//
2477// Signed operations
2478//
2479// Strongly consider using unsigned numbers.
2480//
2481// Signed numbers are often used where unsigned numbers should be used.
2482// For example file sizes and array indices should always be unsigned.
2483// Subtracting a larger positive signed number from a smaller positive
2484// signed number with SafeInt32Sub will succeed, producing a negative number,
2485// that then must not be used as an array index (but can occasionally be
2486// used as a pointer index.) Similarly for adding a larger magnitude
2487// negative number to a smaller magnitude positive number.
2488//
2489// This library does not protect you from such errors. It tells you if your
2490// integer operations overflowed, not if you are doing the right thing
2491// with your non-overflowed integers.
2492//
2493// Likewise you can overflow a buffer with a non-overflowed unsigned index.
2494//
2495
2496//
2497// Signed addition functions
2498//
2499
2522EFIAPI
2524 IN INT8 Augend,
2525 IN INT8 Addend,
2526 OUT INT8 *Result
2527 );
2528
2551EFIAPI
2553 IN CHAR8 Augend,
2554 IN CHAR8 Addend,
2555 OUT CHAR8 *Result
2556 );
2557
2580EFIAPI
2582 IN INT16 Augend,
2583 IN INT16 Addend,
2584 OUT INT16 *Result
2585 );
2586
2609EFIAPI
2611 IN INT32 Augend,
2612 IN INT32 Addend,
2613 OUT INT32 *Result
2614 );
2615
2638EFIAPI
2640 IN INTN Augend,
2641 IN INTN Addend,
2642 OUT INTN *Result
2643 );
2644
2667EFIAPI
2669 IN INT64 Augend,
2670 IN INT64 Addend,
2671 OUT INT64 *Result
2672 );
2673
2674//
2675// Signed subtraction functions
2676//
2677
2700EFIAPI
2702 IN INT8 Minuend,
2703 IN INT8 Subtrahend,
2704 OUT INT8 *Result
2705 );
2706
2729EFIAPI
2731 IN CHAR8 Minuend,
2732 IN CHAR8 Subtrahend,
2733 OUT CHAR8 *Result
2734 );
2735
2758EFIAPI
2760 IN INT16 Minuend,
2761 IN INT16 Subtrahend,
2762 OUT INT16 *Result
2763 );
2764
2787EFIAPI
2789 IN INT32 Minuend,
2790 IN INT32 Subtrahend,
2791 OUT INT32 *Result
2792 );
2793
2816EFIAPI
2818 IN INTN Minuend,
2819 IN INTN Subtrahend,
2820 OUT INTN *Result
2821 );
2822
2845EFIAPI
2847 IN INT64 Minuend,
2848 IN INT64 Subtrahend,
2849 OUT INT64 *Result
2850 );
2851
2852//
2853// Signed multiplication functions
2854//
2855
2878EFIAPI
2880 IN INT8 Multiplicand,
2881 IN INT8 Multiplier,
2882 OUT INT8 *Result
2883 );
2884
2907EFIAPI
2909 IN CHAR8 Multiplicand,
2910 IN CHAR8 Multiplier,
2911 OUT CHAR8 *Result
2912 );
2913
2936EFIAPI
2938 IN INT16 Multiplicand,
2939 IN INT16 Multiplier,
2940 OUT INT16 *Result
2941 );
2942
2965EFIAPI
2967 IN INT32 Multiplicand,
2968 IN INT32 Multiplier,
2969 OUT INT32 *Result
2970 );
2971
2994EFIAPI
2996 IN INTN Multiplicand,
2997 IN INTN Multiplier,
2998 OUT INTN *Result
2999 );
3000
3023EFIAPI
3025 IN INT64 Multiplicand,
3026 IN INT64 Multiplier,
3027 OUT INT64 *Result
3028 );
3029
3030#endif // __INT_SAFE_LIB_H__
char CHAR8
Definition ProcessorBind.h:109
UINT64 UINTN
Definition ProcessorBind.h:118
int INT32
Definition ProcessorBind.h:103
signed char INT8
Definition ProcessorBind.h:110
INT64 INTN
Definition ProcessorBind.h:124
#define EFIAPI
Definition ProcessorBind.h:172
unsigned int UINT32
Definition ProcessorBind.h:102
#define IN
Definition Base.h:347
UINTN RETURN_STATUS
Definition Base.h:965
#define OUT
Definition Base.h:352
RETURN_STATUS EFIAPI SafeInt16ToUint32(IN INT16 Operand, OUT UINT32 *Result)
RETURN_STATUS EFIAPI SafeUint64ToInt8(IN UINT64 Operand, OUT INT8 *Result)
RETURN_STATUS EFIAPI SafeInt64ToInt32(IN INT64 Operand, OUT INT32 *Result)
RETURN_STATUS EFIAPI SafeIntnToInt16(IN INTN Operand, OUT INT16 *Result)
RETURN_STATUS EFIAPI SafeInt32Sub(IN INT32 Minuend, IN INT32 Subtrahend, OUT INT32 *Result)
RETURN_STATUS EFIAPI SafeUint64ToInt32(IN UINT64 Operand, OUT INT32 *Result)
RETURN_STATUS EFIAPI SafeChar8Sub(IN CHAR8 Minuend, IN CHAR8 Subtrahend, OUT CHAR8 *Result)
RETURN_STATUS EFIAPI SafeIntnToInt8(IN INTN Operand, OUT INT8 *Result)
RETURN_STATUS EFIAPI SafeUint16Sub(IN UINT16 Minuend, IN UINT16 Subtrahend, OUT UINT16 *Result)
RETURN_STATUS EFIAPI SafeInt64ToIntn(IN INT64 Operand, OUT INTN *Result)
RETURN_STATUS EFIAPI SafeInt8ToUintn(IN INT8 Operand, OUT UINTN *Result)
RETURN_STATUS EFIAPI SafeUint8Sub(IN UINT8 Minuend, IN UINT8 Subtrahend, OUT UINT8 *Result)
RETURN_STATUS EFIAPI SafeInt8Mult(IN INT8 Multiplicand, IN INT8 Multiplier, OUT INT8 *Result)
RETURN_STATUS EFIAPI SafeUint32ToIntn(IN UINT32 Operand, OUT INTN *Result)
RETURN_STATUS EFIAPI SafeUint32ToInt32(IN UINT32 Operand, OUT INT32 *Result)
RETURN_STATUS EFIAPI SafeUintnAdd(IN UINTN Augend, IN UINTN Addend, OUT UINTN *Result)
RETURN_STATUS EFIAPI SafeUint32Add(IN UINT32 Augend, IN UINT32 Addend, OUT UINT32 *Result)
RETURN_STATUS EFIAPI SafeUintnToInt32(IN UINTN Operand, OUT INT32 *Result)
RETURN_STATUS EFIAPI SafeChar8Mult(IN CHAR8 Multiplicand, IN CHAR8 Multiplier, OUT CHAR8 *Result)
RETURN_STATUS EFIAPI SafeInt32ToUint32(IN INT32 Operand, OUT UINT32 *Result)
RETURN_STATUS EFIAPI SafeUint64ToUint16(IN UINT64 Operand, OUT UINT16 *Result)
RETURN_STATUS EFIAPI SafeIntnToChar8(IN INTN Operand, OUT CHAR8 *Result)
RETURN_STATUS EFIAPI SafeInt32ToInt16(IN INT32 Operand, OUT INT16 *Result)
RETURN_STATUS EFIAPI SafeUint32Mult(IN UINT32 Multiplicand, IN UINT32 Multiplier, OUT UINT32 *Result)
RETURN_STATUS EFIAPI SafeInt16ToChar8(IN INT16 Operand, OUT CHAR8 *Result)
RETURN_STATUS EFIAPI SafeInt8ToUint64(IN INT8 Operand, OUT UINT64 *Result)
RETURN_STATUS EFIAPI SafeInt16ToUint64(IN INT16 Operand, OUT UINT64 *Result)
RETURN_STATUS EFIAPI SafeIntnToInt32(IN INTN Operand, OUT INT32 *Result)
RETURN_STATUS EFIAPI SafeInt16ToUintn(IN INT16 Operand, OUT UINTN *Result)
RETURN_STATUS EFIAPI SafeUintnToInt8(IN UINTN Operand, OUT INT8 *Result)
RETURN_STATUS EFIAPI SafeUintnMult(IN UINTN Multiplicand, IN UINTN Multiplier, OUT UINTN *Result)
RETURN_STATUS EFIAPI SafeUint16Mult(IN UINT16 Multiplicand, IN UINT16 Multiplier, OUT UINT16 *Result)
RETURN_STATUS EFIAPI SafeInt32ToUint64(IN INT32 Operand, OUT UINT64 *Result)
RETURN_STATUS EFIAPI SafeUint64ToUint8(IN UINT64 Operand, OUT UINT8 *Result)
RETURN_STATUS EFIAPI SafeUint16ToInt16(IN UINT16 Operand, OUT INT16 *Result)
RETURN_STATUS EFIAPI SafeInt64ToUint32(IN INT64 Operand, OUT UINT32 *Result)
RETURN_STATUS EFIAPI SafeUintnToIntn(IN UINTN Operand, OUT INTN *Result)
RETURN_STATUS EFIAPI SafeUint64ToChar8(IN UINT64 Operand, OUT CHAR8 *Result)
RETURN_STATUS EFIAPI SafeIntnToUint32(IN INTN Operand, OUT UINT32 *Result)
RETURN_STATUS EFIAPI SafeInt64ToInt16(IN INT64 Operand, OUT INT16 *Result)
RETURN_STATUS EFIAPI SafeUint8ToInt8(IN UINT8 Operand, OUT INT8 *Result)
RETURN_STATUS EFIAPI SafeUintnToUint32(IN UINTN Operand, OUT UINT32 *Result)
RETURN_STATUS EFIAPI SafeUint16Add(IN UINT16 Augend, IN UINT16 Addend, OUT UINT16 *Result)
RETURN_STATUS EFIAPI SafeUintnToUint16(IN UINTN Operand, OUT UINT16 *Result)
RETURN_STATUS EFIAPI SafeIntnMult(IN INTN Multiplicand, IN INTN Multiplier, OUT INTN *Result)
RETURN_STATUS EFIAPI SafeInt32Mult(IN INT32 Multiplicand, IN INT32 Multiplier, OUT INT32 *Result)
RETURN_STATUS EFIAPI SafeInt64Mult(IN INT64 Multiplicand, IN INT64 Multiplier, OUT INT64 *Result)
RETURN_STATUS EFIAPI SafeUint32ToChar8(IN UINT32 Operand, OUT CHAR8 *Result)
RETURN_STATUS EFIAPI SafeInt16Mult(IN INT16 Multiplicand, IN INT16 Multiplier, OUT INT16 *Result)
RETURN_STATUS EFIAPI SafeInt32ToUint8(IN INT32 Operand, OUT UINT8 *Result)
RETURN_STATUS EFIAPI SafeIntnToUint8(IN INTN Operand, OUT UINT8 *Result)
RETURN_STATUS EFIAPI SafeUint64Sub(IN UINT64 Minuend, IN UINT64 Subtrahend, OUT UINT64 *Result)
RETURN_STATUS EFIAPI SafeIntnSub(IN INTN Minuend, IN INTN Subtrahend, OUT INTN *Result)
RETURN_STATUS EFIAPI SafeInt8Add(IN INT8 Augend, IN INT8 Addend, OUT INT8 *Result)
RETURN_STATUS EFIAPI SafeInt64ToInt8(IN INT64 Operand, OUT INT8 *Result)
RETURN_STATUS EFIAPI SafeUint64Add(IN UINT64 Augend, IN UINT64 Addend, OUT UINT64 *Result)
RETURN_STATUS EFIAPI SafeInt16ToUint8(IN INT16 Operand, OUT UINT8 *Result)
RETURN_STATUS EFIAPI SafeUint32ToUint16(IN UINT32 Operand, OUT UINT16 *Result)
RETURN_STATUS EFIAPI SafeInt16ToInt8(IN INT16 Operand, OUT INT8 *Result)
RETURN_STATUS EFIAPI SafeInt32ToInt8(IN INT32 Operand, OUT INT8 *Result)
RETURN_STATUS EFIAPI SafeUintnToChar8(IN UINTN Operand, OUT CHAR8 *Result)
RETURN_STATUS EFIAPI SafeUint64ToIntn(IN UINT64 Operand, OUT INTN *Result)
RETURN_STATUS EFIAPI SafeInt64ToChar8(IN INT64 Operand, OUT CHAR8 *Result)
RETURN_STATUS EFIAPI SafeUintnToInt64(IN UINTN Operand, OUT INT64 *Result)
RETURN_STATUS EFIAPI SafeUint64Mult(IN UINT64 Multiplicand, IN UINT64 Multiplier, OUT UINT64 *Result)
RETURN_STATUS EFIAPI SafeIntnToUint64(IN INTN Operand, OUT UINT64 *Result)
RETURN_STATUS EFIAPI SafeUint32ToInt8(IN UINT32 Operand, OUT INT8 *Result)
RETURN_STATUS EFIAPI SafeInt8ToUint8(IN INT8 Operand, OUT UINT8 *Result)
RETURN_STATUS EFIAPI SafeUint8Mult(IN UINT8 Multiplicand, IN UINT8 Multiplier, OUT UINT8 *Result)
RETURN_STATUS EFIAPI SafeInt32ToUintn(IN INT32 Operand, OUT UINTN *Result)
RETURN_STATUS EFIAPI SafeChar8Add(IN CHAR8 Augend, IN CHAR8 Addend, OUT CHAR8 *Result)
RETURN_STATUS EFIAPI SafeInt64Add(IN INT64 Augend, IN INT64 Addend, OUT INT64 *Result)
RETURN_STATUS EFIAPI SafeUint16ToChar8(IN UINT16 Operand, OUT CHAR8 *Result)
RETURN_STATUS EFIAPI SafeInt8ToUint32(IN INT8 Operand, OUT UINT32 *Result)
RETURN_STATUS EFIAPI SafeInt64ToUint64(IN INT64 Operand, OUT UINT64 *Result)
RETURN_STATUS EFIAPI SafeInt8Sub(IN INT8 Minuend, IN INT8 Subtrahend, OUT INT8 *Result)
RETURN_STATUS EFIAPI SafeInt8ToChar8(IN INT8 Operand, OUT CHAR8 *Result)
RETURN_STATUS EFIAPI SafeUint16ToInt8(IN UINT16 Operand, OUT INT8 *Result)
RETURN_STATUS EFIAPI SafeUint64ToInt64(IN UINT64 Operand, OUT INT64 *Result)
RETURN_STATUS EFIAPI SafeIntnAdd(IN INTN Augend, IN INTN Addend, OUT INTN *Result)
RETURN_STATUS EFIAPI SafeInt32ToChar8(IN INT32 Operand, OUT CHAR8 *Result)
RETURN_STATUS EFIAPI SafeInt32ToUint16(IN INT32 Operand, OUT UINT16 *Result)
RETURN_STATUS EFIAPI SafeInt64ToUintn(IN INT64 Operand, OUT UINTN *Result)
RETURN_STATUS EFIAPI SafeUint32Sub(IN UINT32 Minuend, IN UINT32 Subtrahend, OUT UINT32 *Result)
RETURN_STATUS EFIAPI SafeUint64ToUintn(IN UINT64 Operand, OUT UINTN *Result)
RETURN_STATUS EFIAPI SafeInt64ToUint8(IN INT64 Operand, OUT UINT8 *Result)
RETURN_STATUS EFIAPI SafeUintnToInt16(IN UINTN Operand, OUT INT16 *Result)
RETURN_STATUS EFIAPI SafeInt16Sub(IN INT16 Minuend, IN INT16 Subtrahend, OUT INT16 *Result)
RETURN_STATUS EFIAPI SafeInt64ToUint16(IN INT64 Operand, OUT UINT16 *Result)
RETURN_STATUS EFIAPI SafeUint16ToUint8(IN UINT16 Operand, OUT UINT8 *Result)
RETURN_STATUS EFIAPI SafeIntnToUint16(IN INTN Operand, OUT UINT16 *Result)
RETURN_STATUS EFIAPI SafeUint32ToInt16(IN UINT32 Operand, OUT INT16 *Result)
RETURN_STATUS EFIAPI SafeUint64ToInt16(IN UINT64 Operand, OUT INT16 *Result)
RETURN_STATUS EFIAPI SafeIntnToUintn(IN INTN Operand, OUT UINTN *Result)
RETURN_STATUS EFIAPI SafeInt8ToUint16(IN INT8 Operand, OUT UINT16 *Result)
RETURN_STATUS EFIAPI SafeInt16ToUint16(IN INT16 Operand, OUT UINT16 *Result)
RETURN_STATUS EFIAPI SafeUint32ToUint8(IN UINT32 Operand, OUT UINT8 *Result)
RETURN_STATUS EFIAPI SafeUintnSub(IN UINTN Minuend, IN UINTN Subtrahend, OUT UINTN *Result)
RETURN_STATUS EFIAPI SafeUintnToUint8(IN UINTN Operand, OUT UINT8 *Result)
RETURN_STATUS EFIAPI SafeUint64ToUint32(IN UINT64 Operand, OUT UINT32 *Result)
RETURN_STATUS EFIAPI SafeUint8Add(IN UINT8 Augend, IN UINT8 Addend, OUT UINT8 *Result)
RETURN_STATUS EFIAPI SafeInt16Add(IN INT16 Augend, IN INT16 Addend, OUT INT16 *Result)
RETURN_STATUS EFIAPI SafeUint8ToChar8(IN UINT8 Operand, OUT CHAR8 *Result)
RETURN_STATUS EFIAPI SafeInt32Add(IN INT32 Augend, IN INT32 Addend, OUT INT32 *Result)
RETURN_STATUS EFIAPI SafeInt64Sub(IN INT64 Minuend, IN INT64 Subtrahend, OUT INT64 *Result)
unsigned short UINT16
Definition actypes.h:237
COMPILER_DEPENDENT_INT64 INT64
Definition actypes.h:240
short INT16
Definition actypes.h:238
unsigned char UINT8
Definition actypes.h:236
COMPILER_DEPENDENT_UINT64 UINT64
Definition actypes.h:239