Lines Matching +full:ascii +full:. +full:d
4 This is the include file for any module of type base. Base modules only use
6 environment. There are a set of base libraries in the Mde Package that can
7 be used to implement base modules.
9 Copyright (c) 2006 - 2021, Intel Corporation. All rights reserved.<BR>
10 Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
21 #include <ProcessorBind.h>
25 // Disable warning when last field of data structure is a zero sized array.
32 // if the /OPT:REF linker option is used. We defined a macro as this is a
38 /// it after all compiler and linker optimizations have been performed.
45 /// to it after all compiler and linker optimizations have been performed.
53 // warnings.
58 /// Signal compilers and analyzers that this call is not reachable. It is
59 /// up to the compiler to remove any code past that point.
65 /// Signal compilers and analyzers that this call is not reachable. It is
66 /// up to the compiler to remove any code past that point.
74 /// Signal compilers and analyzers that this call is not reachable. It is
75 /// up to the compiler to remove any code past that point.
84 // false positives.
89 /// Signal compilers and analyzers that the function cannot return.
91 /// flagged with this attribute.
96 /// Signal compilers and analyzers that the function cannot return.
98 /// flagged with this attribute.
103 /// Signal compilers and analyzers that the function cannot return.
105 /// flagged with this attribute.
113 // returns warnings.
119 /// Signal the analyzer that this call is not reachable.
120 /// This excludes compilers.
128 /// Signal the analyzer that this call is not reachable.
129 /// This excludes compilers.
138 // NULL-check. This may lead to false positives, such as when using ASSERT()
139 // for verification.
145 /// Signal analyzers that the function cannot return.
146 /// This excludes compilers.
154 /// Signal the analyzer that the function cannot return.
155 /// This excludes compilers.
162 /// Tell the code optimizer that the function will return twice.
163 /// This prevents wrong optimizations which can cause bugs.
168 /// Tell the code optimizer that the function will return twice.
169 /// This prevents wrong optimizations which can cause bugs.
174 /// Tell the code optimizer that the function will return twice.
175 /// This prevents wrong optimizations which can cause bugs.
193 /// on symbols in assembly language.
200 // with assembly functions. Put at the end of your .S files
202 #define ASM_FUNCTION_REMOVE_IF_UNREFERENCED .subsections_via_symbols
210 /// 128 bit buffer containing a unique identifier value.
211 /// Unless otherwise specified, aligned on a 64 bit boundary.
221 /// 4-byte buffer. An IPv4 internet protocol address.
228 /// 16-byte buffer. An IPv6 internet protocol address.
235 // 8-bytes unsigned value that represents a physical system address.
240 /// LIST_ENTRY structure definition.
245 /// _LIST_ENTRY structure definition.
257 /// Datum is read-only.
262 /// Datum is scoped to the current file or function.
267 /// Undeclared type.
272 // Modifiers for Data Types used to self document code.
273 // This concept is borrowed for UEFI specification.
277 /// Datum is passed to the function.
282 /// Datum is returned from the function.
288 /// is passed if the value is not supplied.
293 // UEFI specification claims 1 and 0. We are concerned about the
294 // compiler portability so we did it this way.
298 /// Boolean true value. UEFI Specification defines this value to be 1,
299 /// but this form is more portable.
304 /// Boolean false value. UEFI Specification defines this value to be 0,
305 /// but this form is more portable.
523 // Support for variable argument lists in freestanding edk2 modules.
526 // argument lists, refer to "StdLib/Include/stdarg.h".
528 // VA_LIST - typedef for argument list.
529 // VA_START (VA_LIST Marker, argument before the ...) - Init Marker for use.
532 // the ... list. You must know the type and pass it in this macro. Type
534 // according to the default argument promotions.)
535 // VA_COPY (VA_LIST Dest, VA_LIST Start) - Initialize Dest as a copy of Start.
543 // ...
556 // // The ... list is a series of UINTN values, so sum them up.
567 // argument list and must be declared EFIAPI.
568 // - Functions that call VA_COPY() / VA_END() must be declared EFIAPI.
569 // - Functions that only use VA_LIST and VA_ARG() need not be EFIAPI.
573 Return the size of argument that has been aligned to sizeof (UINTN).
575 @param n The parameter size to be aligned.
577 @return The aligned size.
583 // MSFT ARM variable argument list support.
597 // X64 only. Use MS ABI version of GCC built-in macros for variable argument lists.
604 /// Variable used to traverse the list of arguments. This type can vary by
605 /// implementation and could be an array or structure.
619 // Use GCC built-in macros for variable argument lists.
623 /// Variable used to traverse the list of arguments. This type can vary by
624 /// implementation and could be an array or structure.
640 /// Variable used to traverse the list of arguments. This type can vary by
641 /// implementation and could be an array or structure.
647 the name of the parameter that immediately precedes the variable argument list.
650 argument list that immediately follows Parameter. The method for computing the
652 EFIAPI ABI.
654 @param Marker The VA_LIST used to traverse the list of arguments.
656 the variable argument list.
658 @return A pointer to the beginning of a variable argument list.
665 the pointer to the variable argument list to point to the next argument.
668 of the variable argument list specified by Marker. Marker is then updated to point
669 to the next argument in the variable argument list. The method for computing the
670 pointer to the next argument in the argument list is CPU-specific following the EFIAPI ABI.
672 @param Marker VA_LIST used to traverse the list of arguments.
674 of the variable argument list.
676 @return An argument of the type specified by TYPE.
682 Terminates the use of a variable argument list.
684 This function initializes Marker so it can no longer be used with VA_ARG().
686 by using VA_START() again.
688 @param Marker VA_LIST used to traverse the list of arguments.
694 Initializes a VA_LIST as a copy of an existing VA_LIST.
698 the present state of Start.
700 @param Dest VA_LIST used to traverse the list of arguments.
701 @param Start VA_LIST used to traverse the list of arguments.
709 /// Pointer to the start of a variable argument list stored in a memory buffer. Same as UINT8 *.
714 Returns the size of a data type in sizeof(UINTN) units rounded up to the nearest UINTN boundary.
716 @param TYPE The date type to determine the size of.
718 @return The size of TYPE in sizeof (UINTN) units rounded up to the nearest UINTN boundary.
724 the pointer to the variable argument list to point to the next argument.
727 of the variable argument list specified by Marker. Marker is then updated to point
728 to the next argument in the variable argument list. The method for computing the
729 pointer to the next argument in the argument list is CPU specific following the EFIAPI ABI.
731 @param Marker The pointer to the beginning of a variable argument list.
733 of the variable argument list.
735 @return An argument of the type specified by TYPE.
741 The macro that returns the byte offset of a field in a data structure.
744 beginning of the data structure specified by TYPE. If TYPE does not contain Field,
745 the module will not compile.
747 @param TYPE The name of the data structure that contains the field specified by Field.
748 @param Field The name of the field in the data structure.
750 @return Offset, in bytes, of field.
762 Portable definition for compile time assertions.
763 Equivalent to C11 static_assert macro from assert.h.
765 @param Expression Boolean expression.
766 @param Message Raised compiler diagnostic message when expression is false.
778 // Verify that ProcessorBind.h produced UEFI Data Types that are compliant with
779 // Section 2.3.1 of the UEFI 2.3 Specification.
800 // configuration for enum types is compliant with Section 2.3.1 of the
801 // UEFI 2.3 Specification. These enum types and enum values are not
802 // intended to be used. A prefix of '__' is used avoid conflicts with
803 // other types.
823 that data structure. This is a lightweight method to hide information by placing a
825 the public data structure to retrieve a pointer to the private data structure.
828 of the data structure specified by TYPE. This offset is subtracted from Record, and is
829 used to return a pointer to a data structure of the type specified by TYPE. If the data type
830 specified by TYPE does not contain the field specified by Field, then the module will not compile.
832 @param Record Pointer to the field specified by Field within a data structure of type TYPE.
833 @param TYPE The name of the data structure type to return. This data structure must
834 contain the field specified by Field.
835 …am Field The name of the field in the data structure specified by TYPE to which Record points.
837 @return A pointer to the structure from one of it's elements.
843 Rounds a value up to the next boundary using a specified alignment.
845 This function rounds Value up to the next boundary using the specified Alignment.
846 This aligned value is returned.
848 @param Value The value to round up.
849 @param Alignment The alignment boundary used to return the aligned value.
851 @return A value up to the next boundary.
858 a specified alignment boundary.
861 specified by Alignment. The pointer to the aligned address is returned.
863 @param Pointer The pointer to round up.
864 @param Alignment The alignment boundary to use to return an aligned pointer.
866 @return Pointer to the aligned address.
872 Rounds a value up to the next natural boundary for the current CPU.
873 This is 4-bytes for 32-bit CPUs and 8-bytes for 64-bit CPUs.
876 current CPU. This rounded value is returned.
878 @param Value The value to round up.
880 @return Rounded value specified by Value.
886 Return the maximum of two operands.
888 This macro returns the maximum of two operand specified by a and b.
889 Both a and b must be the same numerical types, signed or unsigned.
891 @param a The first operand with any numerical type.
892 @param b The second operand. Can be any numerical type as long as is
893 the same type as a.
895 @return Maximum of two operands.
902 Return the minimum of two operands.
904 This macro returns the minimal of two operand specified by a and b.
905 Both a and b must be the same numerical types, signed or unsigned.
907 @param a The first operand with any numerical type.
908 @param b The second operand. It should be the same any numerical type with a.
910 @return Minimum of two operands.
917 Return the absolute value of a signed operand.
919 This macro returns the absolute value of the signed operand specified by a.
921 @param a The signed operand.
923 @return The absolute value of the signed operand.
935 Produces a RETURN_STATUS code with the highest bit set.
937 @param StatusCode The status code value to convert into a warning code.
938 StatusCode must be in the range 0x00000000..0x7FFFFFFF.
940 @return The value specified by StatusCode with the highest bit set.
946 Produces a RETURN_STATUS code with the highest bit clear.
948 @param StatusCode The status code value to convert into a warning code.
949 StatusCode must be in the range 0x00000000..0x7FFFFFFF.
951 @return The value specified by StatusCode with the highest bit clear.
957 Returns TRUE if a specified RETURN_STATUS code is an error code.
959 This function returns TRUE if StatusCode has the high bit set. Otherwise, FALSE is returned.
961 @param StatusCode The status code value to evaluate.
963 @retval TRUE The high bit of StatusCode is set.
964 @retval FALSE The high bit of StatusCode is clear.
970 /// The operation completed successfully.
975 /// The image failed to load.
980 /// The parameter was incorrect.
985 /// The operation is not supported.
990 /// The buffer was not the proper size for the request.
995 /// The buffer was not large enough to hold the requested data.
997 /// parameter when this error occurs.
1002 /// There is no data pending upon return.
1008 /// operation.
1013 /// The device can not be written to.
1018 /// The resource has run out.
1024 /// operation to fail.
1029 /// There is no more space on the file system.
1035 /// operation.
1041 /// access.
1046 /// The item was not found.
1051 /// Access was denied.
1056 /// The server was not found or did not respond to the request.
1061 /// A mapping to the device does not exist.
1066 /// A timeout time expired.
1071 /// The protocol has not been started.
1076 /// The protocol has already been started.
1081 /// The operation was aborted.
1086 /// An ICMP error occurred during the network operation.
1091 /// A TFTP error occurred during the network operation.
1096 /// A protocol error occurred during the network operation.
1102 /// incompatible with a version requested by the caller.
1107 /// The function was not performed due to a security violation.
1112 /// A CRC error was detected.
1117 /// The beginning or end of media was reached.
1122 /// The end of the file was reached.
1127 /// The language specified was invalid.
1134 /// security status.
1139 /// A HTTP error occurred during the network operation.
1145 /// the device could not render and were skipped.
1150 /// The handle was closed, but the file was not deleted.
1156 /// flushed properly.
1162 /// truncated to the buffer size.
1168 /// local policy for this type of data.
1173 /// The resulting buffer contains UEFI-compliant file system.
1178 Returns a 16-bit signature built from 2 ASCII characters.
1180 This macro returns a 16-bit value built from the two ASCII characters specified
1181 by A and B.
1183 @param A The first ASCII character.
1184 @param B The second ASCII character.
1186 @return A 16-bit value built from the two ASCII characters specified by A and B.
1192 Returns a 32-bit signature built from 4 ASCII characters.
1194 This macro returns a 32-bit value built from the four ASCII characters specified
1195 by A, B, C, and D.
1197 @param A The first ASCII character.
1198 @param B The second ASCII character.
1199 @param C The third ASCII character.
1200 @param D The fourth ASCII character.
1202 @return A 32-bit value built from the two ASCII characters specified by A, B,
1203 C and D.
1206 #define SIGNATURE_32(A, B, C, D) (SIGNATURE_16 (A, B) | (SIGNATURE_16 (C, D) << 16)) argument
1209 Returns a 64-bit signature built from 8 ASCII characters.
1211 This macro returns a 64-bit value built from the eight ASCII characters specified
1212 by A, B, C, D, E, F, G,and H.
1214 @param A The first ASCII character.
1215 @param B The second ASCII character.
1216 @param C The third ASCII character.
1217 @param D The fourth ASCII character.
1218 @param E The fifth ASCII character.
1219 @param F The sixth ASCII character.
1220 @param G The seventh ASCII character.
1221 @param H The eighth ASCII character.
1223 @return A 64-bit value built from the two ASCII characters specified by A, B,
1224 C, D, E, F, G and H.
1227 #define SIGNATURE_64(A, B, C, D, E, F, G, H) \ argument
1228 (SIGNATURE_32 (A, B, C, D) | ((UINT64) (SIGNATURE_32 (E, F, G, H)) << 32))
1239 Get the return address of the calling function.
1243 control returns to the caller.
1245 @param L Return Level.
1247 @return The return address of the calling function or 0 if L != 0.
1254 Get the return address of the calling function.
1257 the return address of the current function, or of one of its callers.
1259 @param L Return Level.
1261 @return The return address of the calling function.
1268 Get the return address of the calling function.
1270 @param L Return Level.
1272 @return 0 as compilers don't support this feature.
1279 Return the number of elements in an array.
1281 @param Array An object of array type. Array is only used as an argument to
1282 the sizeof operator, therefore Array is never evaluated. The
1284 incomplete; that is, Array must have known constant size.
1286 @return The number of elements in Array. The result has type UINTN.