80 lines
2.1 KiB
C
80 lines
2.1 KiB
C
/**
|
|
* PROJECT: ExectOS
|
|
* COPYRIGHT: See COPYING.md in the top level directory
|
|
* FILE: sdk/xtdk/rtltypes.h
|
|
* DESCRIPTION: Runtime library structures definitions
|
|
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
|
*/
|
|
|
|
#ifndef __XTDK_RTLTYPES_H
|
|
#define __XTDK_RTLTYPES_H
|
|
|
|
#include <xtbase.h>
|
|
#include <xttypes.h>
|
|
|
|
|
|
/* UUID string lengths */
|
|
#define GUID_STRING_LENGTH 38
|
|
#define PARTUUID_STRING_LENGTH 13
|
|
|
|
/* Maximum integer value string length */
|
|
#define MAX_INTEGER_STRING_SIZE 25
|
|
|
|
/* Floating point definitions */
|
|
#define DOUBLE_EXPONENT_MASK 0x7FF0000000000000ULL
|
|
#define DOUBLE_EXPONENT_SHIFT 0x34
|
|
#define DOUBLE_EXPONENT_BIAS 0x3FF
|
|
|
|
/* Runtime Library routine callbacks */
|
|
typedef XTSTATUS (*PWRITE_CHARACTER)(IN CHAR Character);
|
|
typedef XTSTATUS (*PWRITE_WIDE_CHARACTER)(IN WCHAR Character);
|
|
|
|
/* Variable types enumeration list */
|
|
typedef enum _RTL_VARIABLE_TYPE
|
|
{
|
|
Unknown,
|
|
AnsiString,
|
|
Boolean,
|
|
Char,
|
|
Float,
|
|
Guid,
|
|
Integer,
|
|
String,
|
|
UnicodeString,
|
|
WideChar,
|
|
WideString
|
|
} RTL_VARIABLE_TYPE, *PRTL_VARIABLE_TYPE;
|
|
|
|
/* Runtime Library print context structure definition */
|
|
typedef struct _RTL_PRINT_CONTEXT
|
|
{
|
|
PWRITE_CHARACTER WriteCharacter;
|
|
PWRITE_WIDE_CHARACTER WriteWideCharacter;
|
|
ULONG CharactersWritten;
|
|
} RTL_PRINT_CONTEXT, *PRTL_PRINT_CONTEXT;
|
|
|
|
/* Runtime Library print format properties structure definition */
|
|
typedef struct _RTL_PRINT_FORMAT_PROPERTIES
|
|
{
|
|
RTL_VARIABLE_TYPE VariableType;
|
|
ULONG Radix;
|
|
LONG FieldWidth;
|
|
LONG IntegerSize;
|
|
LONG Precision;
|
|
BOOLEAN AlwaysPrintSign;
|
|
BOOLEAN LongDouble;
|
|
BOOLEAN LongInteger;
|
|
BOOLEAN LeftJustified;
|
|
BOOLEAN PrintUpperCase;
|
|
BOOLEAN PrintLeadingZeroes;
|
|
BOOLEAN PrintRadix;
|
|
BOOLEAN SpaceForPlus;
|
|
BOOLEAN ThousandsGrouping;
|
|
BOOLEAN UnsignedValue;
|
|
BOOLEAN FloatFormat;
|
|
BOOLEAN ScientificFormat;
|
|
BOOLEAN SignificantDigitPrecision;
|
|
} RTL_PRINT_FORMAT_PROPERTIES, *PRTL_PRINT_FORMAT_PROPERTIES;
|
|
|
|
#endif /* __XTDK_RTLTYPES_H */
|