Add support for writing floating point values

This commit is contained in:
Rafal Kupiec 2024-02-22 23:39:11 +01:00
parent 0c7cf6f6d3
commit f9714a79e4
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4
3 changed files with 1010 additions and 2 deletions

View File

@ -17,13 +17,20 @@
#define GUID_STRING_LENGTH 38 #define GUID_STRING_LENGTH 38
#define PARTUUID_STRING_LENGTH 13 #define PARTUUID_STRING_LENGTH 13
/* Maximum integer value string length */ /* Maximum double/integer value string length */
#define MAX_DOUBLE_STRING_SIZE 15
#define MAX_INTEGER_STRING_SIZE 25 #define MAX_INTEGER_STRING_SIZE 25
/* Floating point definitions */ /* Floating point definitions */
#define DOUBLE_EXPONENT_MASK 0x7FF0000000000000ULL #define DOUBLE_EXPONENT_MASK 0x7FF0000000000000ULL
#define DOUBLE_EXPONENT_SHIFT 0x34 #define DOUBLE_EXPONENT_SHIFT 0x34
#define DOUBLE_EXPONENT_BIAS 0x3FF #define DOUBLE_EXPONENT_BIAS 0x3FF
#define DOUBLE_HIGH_VALUE_MASK 0x000FFFFF
#define DOUBLE_HIGH_VALUE_SHIFT 0x20
#define DOUBLE_PRECISION 6
#define DOUBLE_HEX_PRECISION 13
#define DOUBLE_SCIENTIFIC_PRECISION -4
#define DOUBLE_SIGN_BIT 0x8000000000000000ULL
/* Print flag definitions */ /* Print flag definitions */
#define PFL_ALWAYS_PRINT_SIGN 0x00000001 #define PFL_ALWAYS_PRINT_SIGN 0x00000001

View File

@ -326,6 +326,18 @@ RtlpWriteWideStringCustomValue(IN PRTL_PRINT_CONTEXT Context,
IN PCWSTR Format, IN PCWSTR Format,
IN ...); IN ...);
XTAPI
XTSTATUS
RtlpWriteWideStringDoubleValue(IN PRTL_PRINT_CONTEXT Context,
IN PRTL_PRINT_FORMAT_PROPERTIES FormatProperties,
IN DOUBLE Value);
XTAPI
XTSTATUS
RtlpWriteWideStringHexDoubleValue(IN PRTL_PRINT_CONTEXT Context,
IN PRTL_PRINT_FORMAT_PROPERTIES FormatProperties,
IN DOUBLE Value);
XTAPI XTAPI
XTSTATUS XTSTATUS
RtlpWriteWideStringIntegerValue(IN PRTL_PRINT_CONTEXT Context, RtlpWriteWideStringIntegerValue(IN PRTL_PRINT_CONTEXT Context,

File diff suppressed because it is too large Load Diff