exectos/xtoskrnl/includes/rtli.h
Rafal Kupiec 00cca9a1c1
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 29s
Add %U XTOS extension for UUID/GUID string argument support
2024-02-16 19:02:44 +01:00

342 lines
7.2 KiB
C

/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: xtoskrnl/includes/rtli.h
* DESCRIPTION: XT runtime library routines
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
*/
#ifndef __XTOSKRNL_RTLI_H
#define __XTOSKRNL_RTLI_H
#include <xtos.h>
/* Runtime Library routines forward references */
XTFASTCALL
CHAR
RtlAtomicAnd8(IN VOLATILE PCHAR Address,
IN CHAR Mask);
XTFASTCALL
SHORT
RtlAtomicAnd16(IN VOLATILE PSHORT Address,
IN SHORT Mask);
XTFASTCALL
LONG
RtlAtomicAnd32(IN VOLATILE PLONG Address,
IN LONG Mask);
XTFASTCALL
LONG_PTR
RtlAtomicAnd64(IN VOLATILE PLONG_PTR Address,
IN LONG_PTR Mask);
XTFASTCALL
UCHAR
RtlAtomicBitTestAndSet(IN VOLATILE PLONG Base,
IN LONG Offset);
XTFASTCALL
UCHAR
RtlAtomicBitTestAndSet64(IN VOLATILE PLONGLONG Base,
IN LONGLONG Offset);
XTFASTCALL
CHAR
RtlAtomicCompareExchange8(IN VOLATILE PCHAR Address,
IN CHAR Comperand,
IN CHAR Exchange);
XTFASTCALL
SHORT
RtlAtomicCompareExchange16(IN VOLATILE PSHORT Address,
IN SHORT Comperand,
IN SHORT Exchange);
XTFASTCALL
LONG
RtlAtomicCompareExchange32(IN VOLATILE PLONG Address,
IN LONG Comperand,
IN LONG Exchange);
XTFASTCALL
LONG_PTR
RtlAtomicCompareExchange64(IN VOLATILE PLONG_PTR Address,
IN LONG_PTR Comperand,
IN LONG_PTR Exchange);
XTFASTCALL
PVOID
RtlAtomicCompareExchangePointer(IN VOLATILE PVOID *Address,
IN PVOID Comperand,
IN PVOID Exchange);
XTFASTCALL
CHAR
RtlAtomicDecrement8(IN VOLATILE PCHAR Address);
XTFASTCALL
SHORT
RtlAtomicDecrement16(IN VOLATILE PSHORT Address);
XTFASTCALL
LONG
RtlAtomicDecrement32(IN VOLATILE PLONG Address);
XTFASTCALL
LONG_PTR
RtlAtomicDecrement64(IN VOLATILE PLONG_PTR Address);
XTFASTCALL
CHAR
RtlAtomicExchange8(IN VOLATILE PCHAR Address,
IN CHAR Exchange);
XTFASTCALL
SHORT
RtlAtomicExchange16(IN VOLATILE PSHORT Address,
IN SHORT Exchange);
XTFASTCALL
LONG
RtlAtomicExchange32(IN VOLATILE PLONG Address,
IN LONG Exchange);
XTFASTCALL
LONG_PTR
RtlAtomicExchange64(IN VOLATILE PLONG_PTR Address,
IN LONG_PTR Exchange);
XTFASTCALL
CHAR
RtlAtomicExchangeAdd8(IN VOLATILE PCHAR Address,
IN CHAR Value);
XTFASTCALL
SHORT
RtlAtomicExchangeAdd16(IN VOLATILE PSHORT Address,
IN SHORT Value);
XTFASTCALL
LONG
RtlAtomicExchangeAdd32(IN VOLATILE PLONG Address,
IN LONG Value);
XTFASTCALL
LONG_PTR
RtlAtomicExchangeAdd64(IN VOLATILE PLONG_PTR Address,
IN LONG_PTR Value);
XTFASTCALL
PVOID
RtlAtomicExchangePointer(IN VOLATILE PVOID *Address,
IN PVOID Exchange);
XTFASTCALL
PSINGLE_LIST_ENTRY
RtlAtomicFlushSingleList(IN PSINGLE_LIST_HEADER Header);
XTFASTCALL
CHAR
RtlAtomicIncrement8(IN VOLATILE PCHAR Address);
XTFASTCALL
SHORT
RtlAtomicIncrement16(IN VOLATILE PSHORT Address);
XTFASTCALL
LONG
RtlAtomicIncrement32(IN VOLATILE PLONG Address);
XTFASTCALL
LONG_PTR
RtlAtomicIncrement64(IN VOLATILE PLONG_PTR Address);
XTFASTCALL
CHAR
RtlAtomicOr8(IN VOLATILE PCHAR Address,
IN CHAR Mask);
XTFASTCALL
SHORT
RtlAtomicOr16(IN VOLATILE PSHORT Address,
IN SHORT Mask);
XTFASTCALL
LONG
RtlAtomicOr32(IN VOLATILE PLONG Address,
IN LONG Mask);
XTFASTCALL
LONG_PTR
RtlAtomicOr64(IN VOLATILE PLONG_PTR Address,
IN LONG_PTR Mask);
XTFASTCALL
PSINGLE_LIST_ENTRY
RtlAtomicPopEntrySingleList(IN PSINGLE_LIST_HEADER Header);
XTFASTCALL
PSINGLE_LIST_ENTRY
RtlAtomicPushEntrySingleList(IN PSINGLE_LIST_HEADER Header,
IN PSINGLE_LIST_ENTRY Entry);
XTFASTCALL
CHAR
RtlAtomicXor8(IN VOLATILE PCHAR Address,
IN CHAR Mask);
XTFASTCALL
SHORT
RtlAtomicXor16(IN VOLATILE PSHORT Address,
IN SHORT Mask);
XTFASTCALL
LONG
RtlAtomicXor32(IN VOLATILE PLONG Address,
IN LONG Mask);
XTFASTCALL
LONG_PTR
RtlAtomicXor64(IN VOLATILE PLONG_PTR Address,
IN LONG_PTR Mask);
XTFASTCALL
USHORT
RtlByteSwap16(IN USHORT Source);
XTFASTCALL
ULONG
RtlByteSwap32(IN ULONG Source);
XTFASTCALL
ULONGLONG
RtlByteSwap64(IN ULONGLONG Source);
XTAPI
INT
RtlCountLeadingZeroes32(IN ULONG Value);
XTAPI
INT
RtlCountLeadingZeroes64(IN ULONG Value);
XTAPI
INT
RtlCountTrailingZeroes32(IN ULONG Value);
XTAPI
INT
RtlCountTrailingZeroes64(IN ULONGLONG Value);
XTAPI
LONGLONG
RtlDivide32(IN LONG Dividend,
IN LONG Divisor,
OUT PLONG Remainder);
XTAPI
LONGLONG
RtlDivide64(IN LONGLONG Dividend,
IN LONGLONG Divisor,
OUT PLONGLONG Remainder);
XTAPI
ULONGLONG
RtlDivideUnsigned32(IN ULONG Dividend,
IN ULONG Divisor,
OUT PULONG Remainder);
XTAPI
ULONGLONG
RtlDivideUnsigned64(IN ULONGLONG Dividend,
IN ULONGLONG Divisor,
OUT PULONGLONG Remainder);
XTAPI
LONG
RtlGetBaseExponent(IN DOUBLE Value,
OUT PDOUBLE PowerOfTen);
XTCDECL
VOID
RtlInitializeListHead(IN PLIST_ENTRY ListHead);
XTCDECL
VOID
RtlInitializeListHead32(IN PLIST_ENTRY32 ListHead);
XTCDECL
VOID
RtlInsertHeadList(IN OUT PLIST_ENTRY ListHead,
IN PLIST_ENTRY Entry);
XTCDECL
VOID
RtlInsertTailList(IN OUT PLIST_ENTRY ListHead,
IN PLIST_ENTRY Entry);
XTCDECL
BOOLEAN
RtlListEmpty(PLIST_ENTRY ListHead);
XTCDECL
BOOLEAN
RtlListLoop(IN PLIST_ENTRY ListHead);
XTCDECL
VOID
RtlRemoveEntryList(IN PLIST_ENTRY Entry);
XTAPI
XTSTATUS
RtlpFormatWideStringArgumentSpecifier(IN PRTL_PRINT_CONTEXT Context,
IN PCWSTR Format,
IN PVA_LIST ArgumentList,
IN OUT PULONG Index);
XTAPI
ULONGLONG
RtlpGetWideStringArgument(IN PVA_LIST ArgumentList,
IN ULONG ArgumentNumber,
IN LONG ArgumentSize);
XTAPI
ULONGLONG
RtlpGetWideStringSpecifierValue(IN PWCHAR *Format);
XTAPI
XTSTATUS
RtlpWriteWideCharacter(IN PRTL_PRINT_CONTEXT Context,
IN WCHAR Character);
XTAPI
XTSTATUS
RtlpWriteWideStringCustomValue(IN PRTL_PRINT_CONTEXT Context,
IN PCWSTR Format,
IN ...);
XTAPI
XTSTATUS
RtlpWriteWideStringIntegerValue(IN PRTL_PRINT_CONTEXT Context,
IN PRTL_PRINT_FORMAT_PROPERTIES FormatProperties,
IN ULONGLONG Integer);
XTAPI
XTSTATUS
RtlpWriteWideStringStringValue(PRTL_PRINT_CONTEXT Context,
PRTL_PRINT_FORMAT_PROPERTIES FormatProperties,
PCHAR String,
SIZE_T StringLength);
XTAPI
XTSTATUS
RtlpWriteWideStringValue(PRTL_PRINT_CONTEXT Context,
PRTL_PRINT_FORMAT_PROPERTIES FormatProperties,
PWCHAR String,
SIZE_T StringLength);
#endif /* __XTOSKRNL_RTLI_H */