mirror of
https://github.com/reactos/reactos.git
synced 2024-08-30 15:18:33 +00:00
![Hermès Bélusca-Maïto](/assets/img/avatar_default.png)
... as it should have always been done (and must be done for NTDLL and NTOS kernel as well). This allows using the RTL with the correct definitions and the reduced functionality available at boot-time. + Make the RTL main header compatible. In addition, this will permit re-using existing code that already uses the RTL (mostly string conversions). See commits427c90af3
(r36761) andb46e8cc18
(r36980) for some background.
69 lines
1.6 KiB
C
69 lines
1.6 KiB
C
/*
|
|
* COPYRIGHT: See COPYING in the top level directory
|
|
* PROJECT: ReactOS System Libraries
|
|
* FILE: lib/rtl/rtl.h
|
|
* PURPOSE: Run-Time Libary Header
|
|
* PROGRAMMER: Alex Ionescu
|
|
*/
|
|
|
|
#ifndef RTL_H
|
|
#define RTL_H
|
|
|
|
/* We are a core NT DLL, we don't import syscalls */
|
|
#define _INC_SWPRINTF_INL_
|
|
#undef __MSVCRT__
|
|
|
|
/* C Headers */
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
#ifndef _BLDR_
|
|
|
|
/* PSDK/NDK Headers */
|
|
#define WIN32_NO_STATUS
|
|
#define _INC_WINDOWS
|
|
#define COM_NO_WINDOWS_H
|
|
#define COBJMACROS
|
|
#define CONST_VTABLE
|
|
#include <windef.h>
|
|
#include <winbase.h>
|
|
#include <winreg.h>
|
|
#include <objbase.h>
|
|
#include <ntintsafe.h>
|
|
#include <ndk/exfuncs.h>
|
|
#include <ndk/iofuncs.h>
|
|
#include <ndk/kefuncs.h>
|
|
#include <ndk/ldrfuncs.h>
|
|
#include <ndk/mmfuncs.h>
|
|
#include <ndk/obfuncs.h>
|
|
#include <ndk/psfuncs.h>
|
|
#include <ndk/rtlfuncs.h>
|
|
#include <ndk/setypes.h>
|
|
#include <ndk/sefuncs.h>
|
|
#include <ndk/umfuncs.h>
|
|
|
|
/* SEH support with PSEH */
|
|
#include <pseh/pseh2.h>
|
|
|
|
#else
|
|
|
|
#include <ndk/rtlfuncs.h>
|
|
|
|
#endif /* _BLDR_ */
|
|
|
|
/* Internal RTL header */
|
|
#include "rtlp.h"
|
|
|
|
/* Use intrinsics for x86 and x64 */
|
|
#if defined(_M_IX86) || defined(_M_AMD64)
|
|
#define InterlockedCompareExchange _InterlockedCompareExchange
|
|
#define InterlockedIncrement _InterlockedIncrement
|
|
#define InterlockedDecrement _InterlockedDecrement
|
|
#define InterlockedExchangeAdd _InterlockedExchangeAdd
|
|
#define InterlockedExchange _InterlockedExchange
|
|
#define InterlockedBitTestAndSet _interlockedbittestandset
|
|
#define InterlockedBitTestAndSet64 _interlockedbittestandset64
|
|
#endif
|
|
|
|
#endif /* RTL_H */
|