Lines Matching +full:per +full:- +full:string
3 * Module Name: utstrtoul64 - String-to-integer conversion support for both
4 * 64-bit and 32-bit integers
12 * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp.
29 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
105 * re-exports any such software from a foreign destination, Licensee shall
106 * ensure that the distribution and export/re-export of the software is in
109 * any of its subsidiaries will export/re-export any technical data, process,
131 * 3. Neither the names of the above-listed copyright holders nor the names
162 * This module contains the top-level string to 64/32-bit unsigned integer
165 * 1) A standard strtoul() function that supports 64-bit integers, base
168 * constants than the runtime (interpreter) integer-to-string conversions.
174 * iASL - Preprocessor (constants and math expressions)
175 * iASL - Main parser, conversion of constants to integers
176 * iASL - Data Table Compiler parser (constants and math expressions)
177 * Interpreter - Implicit and explicit conversions, GPE method names
178 * Interpreter - Repair code for return values from predefined names
179 * Debugger - Command line input string conversion
180 * AcpiDump - ACPI table physical addresses
181 * AcpiExec - Support for namespace overrides
190 * but error checking is performed later to flag cases where a 64-bit constant
191 * is wrongly defined in a 32-bit DSDT/SSDT.
196 * support (explicit/implicit) for octal string conversions.
205 * PARAMETERS: String - Null terminated input string,
207 * ReturnValue - Where the converted integer is
211 * 64-bit numeric overflow
213 * DESCRIPTION: Convert a string into an unsigned integer. Always performs a
214 * full 64-bit conversion, regardless of the current global
219 * iASL - Preprocessor (constants and math expressions)
220 * iASL - Main ASL parser, conversion of ASL constants to integers
221 * iASL - Data Table Compiler parser (constants and math expressions)
222 * Interpreter - Repair code for return values from predefined names
223 * AcpiDump - ACPI table physical addresses
224 * AcpiExec - Support for namespace overrides
230 char *String,
238 ACPI_FUNCTION_TRACE_STR (UtStrtoul64, String);
243 /* A NULL return string returns a value of zero */
245 if (*String == 0)
250 if (!AcpiUtRemoveWhitespace (&String))
258 if (AcpiUtDetectHexPrefix (&String))
265 * followed by sequence of octal digits (0-7)
267 else if (AcpiUtDetectOctalPrefix (&String))
272 if (!AcpiUtRemoveLeadingZeros (&String))
278 * Force a full 64-bit conversion. The caller (usually iASL) must
279 * check for a 32-bit overflow later as necessary (If current mode
280 * is 32-bit, meaning a 32-bit DSDT).
286 * Perform the base 8, 10, or 16 conversion. A 64-bit numeric overflow
292 Status = AcpiUtConvertOctalString (String, ReturnValue);
296 Status = AcpiUtConvertDecimalString (String, ReturnValue);
301 Status = AcpiUtConvertHexString (String, ReturnValue);
305 /* Only possible exception from above is a 64-bit overflow */
316 * PARAMETERS: String - Null terminated input string,
321 * DESCRIPTION: Perform a 64-bit conversion with restrictions placed upon
324 * an automatic (implicit) conversion from a string operand
328 * -----------------------------------------------------------------------------
331 * Octal strings are not supported, as per the ACPI specification.
340 * The ASCII string is always interpreted as a hexadecimal constant.
349 * 3) The first non-hex character terminates the conversion and returns
352 * 4) Conversion of a null (zero-length) string to an integer is
361 * Interpreter - All runtime implicit conversions, as per ACPI specification
362 * iASL - Data Table Compiler parser (constants and math expressions)
368 char *String)
373 ACPI_FUNCTION_TRACE_STR (UtImplicitStrtoul64, String);
376 if (!AcpiUtRemoveWhitespace (&String))
382 * Per the ACPI specification, only hexadecimal is supported for
386 AcpiUtRemoveHexPrefix (&String);
388 if (!AcpiUtRemoveLeadingZeros (&String))
394 * Ignore overflow as per the ACPI specification. This is implemented by
396 * On overflow, the input string is simply truncated.
398 AcpiUtConvertHexString (String, &ConvertedInteger);
407 * PARAMETERS: String - Null terminated input string,
412 * DESCRIPTION: Perform a 64-bit conversion with the restrictions placed upon
416 * -----------------------------------------------------------------------------
419 * are not supported, as per the ACPI specification.
427 * 1) The input string is either a decimal or hexadecimal numeric string.
435 * 3) Behavior on the first non-hex character is not defined by the ACPI
441 * 4) Conversion of a null (zero-length) string to an integer is
450 * Interpreter - Runtime ASL ToInteger operator, as per the ACPI specification
456 char *String)
462 ACPI_FUNCTION_TRACE_STR (UtExplicitStrtoul64, String);
465 if (!AcpiUtRemoveWhitespace (&String))
471 * Only Hex and Decimal are supported, as per the ACPI specification.
474 if (AcpiUtDetectHexPrefix (&String))
479 if (!AcpiUtRemoveLeadingZeros (&String))
485 * Ignore overflow as per the ACPI specification. This is implemented by
487 * On overflow, the input string is simply truncated.
493 AcpiUtConvertDecimalString (String, &ConvertedInteger);
497 AcpiUtConvertHexString (String, &ConvertedInteger);