Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys.

This commit is contained in:
Colin Finck 2017-10-03 07:45:34 +00:00
parent b94e2d8ca0
commit c2c66aff7d
24198 changed files with 0 additions and 37285 deletions

View file

@ -0,0 +1,23 @@
set_cpp(WITH_EXCEPTIONS)
include_directories(
${REACTOS_SOURCE_DIR}/sdk/lib/crt/include
${REACTOS_SOURCE_DIR}/sdk/include/c++)
list(APPEND SOURCE
ehvec.cpp
new_nothrow.cpp
typeinfo.cpp)
if(ARCH STREQUAL "i386")
add_asm_files(cpprt_asm i386/cpprt.s)
list(APPEND SOURCE i386/framehandler.c)
elseif(ARCH STREQUAL "amd64")
add_asm_files(cpprt_asm amd64/cpprt.s)
elseif(ARCH STREQUAL "arm")
add_asm_files(cpprt_asm arm/cpprt.s)
endif()
add_library(cpprt ${SOURCE} ${cpprt_asm})
add_dependencies(cpprt xdk)

View file

@ -0,0 +1,34 @@
#include <asm.inc>
.code
MACRO(DEFINE_ALIAS, alias, orig, type)
EXTERN &orig:&type
ALIAS <&alias> = <&orig>
ENDM
; void __cdecl `eh vector constructor iterator'(void * __ptr64,unsigned __int64,int,void (__cdecl*)(void * __ptr64),void (__cdecl*)(void * __ptr64))
DEFINE_ALIAS ??_L@YAXPEAX_KHP6AX0@Z2@Z, ?MSVCRTEX_eh_vector_constructor_iterator@@YAXPEAX_KHP6AX0@Z2@Z
; void __cdecl `eh vector constructor iterator'(void *,unsigned __int64,unsigned __int64,void (__cdecl*)(void *),void (__cdecl*)(void *))"
DEFINE_ALIAS ??_L@YAXPEAX_K1P6AX0@Z2@Z, ?MSVCRTEX_eh_vector_constructor_iterator@@YAXPEAX_KHP6AX0@Z2@Z
; void __cdecl `eh vector destructor iterator'(void *,unsigned __int64,unsigned __int64,void (__cdecl*)(void *))
DEFINE_ALIAS ??_M@YAXPEAX_K1P6AX0@Z@Z, ?MSVCRTEX_eh_vector_destructor_iterator@@YAXPEAX_KHP6AX0@Z@Z
; void __cdecl `eh vector destructor iterator'(void * __ptr64,unsigned __int64,int,void (__cdecl*)(void * __ptr64))
DEFINE_ALIAS ??_M@YAXPEAX_KHP6AX0@Z@Z, ?MSVCRTEX_eh_vector_destructor_iterator@@YAXPEAX_KHP6AX0@Z@Z
; These are the same
DEFINE_ALIAS __CxxFrameHandler3, __CxxFrameHandler
; void __cdecl operator delete(void * __ptr64,struct std::nothrow_t const & __ptr64)
DEFINE_ALIAS ??3@YAXPEAXAEBUnothrow_t@std@@@Z, ??3@YAXPEAX@Z
; void __cdecl operator delete[](void * __ptr64,struct std::nothrow_t const & __ptr64)
DEFINE_ALIAS ??_V@YAXPEAXAEBUnothrow_t@std@@@Z, ??3@YAXPEAX@Z
; void __cdecl operator delete(void *,unsigned __int64)
DEFINE_ALIAS ??3@YAXPEAX_K@Z, ??3@YAXPEAX@Z
END

33
sdk/lib/cpprt/arm/cpprt.s Normal file
View file

@ -0,0 +1,33 @@
#include <kxarm.h>
TEXTAREA
MACRO
DEFINE_ALIAS $FuncName, $Target
LCLS _FuncName
LCLS _Target
_FuncName SETS "|$FuncName|"
_Target SETS "|$Target|"
IMPORT $_FuncName, WEAK $_Target
MEND
; void __cdecl `eh vector constructor iterator'(void *,unsigned int,int,void (__cdecl*)(void *),void (__cdecl*)(void *))
DEFINE_ALIAS ??_L@YAXPAXIHP6AX0@Z1@Z, ?MSVCRTEX_eh_vector_constructor_iterator@@YAXPAXIHP6AX0@Z1@Z
; void __cdecl `eh vector destructor iterator'(void *,unsigned int,int,void (__cdecl*)(void *))
DEFINE_ALIAS ??_M@YAXPAXIHP6AX0@Z@Z, ?MSVCRTEX_eh_vector_destructor_iterator@@YAXPAXIHP6AX0@Z@Z
; These are the same
//DEFINE_ALIAS __CxxFrameHandler3, __CxxFrameHandler
; void __cdecl operator delete(void *,struct std::nothrow_t const &)
DEFINE_ALIAS ??3@YAXPAXABUnothrow_t@std@@@Z, ??3@YAXPAX@Z
; void __cdecl operator delete[](void *,struct std::nothrow_t const &)
DEFINE_ALIAS ??_V@YAXPAXABUnothrow_t@std@@@Z, ??3@YAXPAX@Z
; void __cdecl operator delete(void *,unsigned int)
DEFINE_ALIAS ??3@YAXPAXI@Z, ??3@YAXPAX@Z
END

48
sdk/lib/cpprt/ehvec.cpp Normal file
View file

@ -0,0 +1,48 @@
/*
* PROJECT: ReactOS c++ runtime library
* LICENSE: GPLv2+ - See COPYING in the top level directory
* PURPOSE: Exception-handling vector ctor/dtor iterator implementation
* PROGRAMMER: Thomas Faber (thomas.faber@reactos.org)
*/
#include <stddef.h>
void __stdcall MSVCRTEX_eh_vector_constructor_iterator(void *pMem, size_t sizeOfItem, int nItems, void (__thiscall *ctor)(void *), void (__thiscall *dtor)(void *))
{
char *pEnd = static_cast<char *>(pMem) + nItems * sizeOfItem;
for (char *pItem = static_cast<char *>(pMem);
pItem < pEnd;
pItem += sizeOfItem)
{
try
{
ctor(pItem);
}
catch (...)
{
for (pItem -= sizeOfItem; pItem >= pMem; pItem -= sizeOfItem)
dtor(pItem);
throw;
}
}
}
void __stdcall MSVCRTEX_eh_vector_destructor_iterator(void *pMem, size_t sizeOfItem, int nItems, void (__thiscall *dtor)(void *))
{
char *pEnd = static_cast<char *>(pMem) + nItems * sizeOfItem;
for (char *pItem = pEnd - sizeOfItem;
pItem >= pMem;
pItem -= sizeOfItem)
{
try
{
dtor(pItem);
}
catch (...)
{
for (pItem -= sizeOfItem; pItem >= pMem; pItem -= sizeOfItem)
dtor(pItem);
throw;
}
}
}

View file

@ -0,0 +1,48 @@
#include <asm.inc>
.code
MACRO(DEFINE_ALIAS, alias, orig, type)
EXTERN &orig:&type
ALIAS <&alias> = <&orig>
ENDM
EXTERN _CxxHandleV8Frame@20 : PROC
PUBLIC ___CxxFrameHandler3
___CxxFrameHandler3:
push eax
push dword ptr [esp + 20]
push dword ptr [esp + 20]
push dword ptr [esp + 20]
push dword ptr [esp + 20]
call _CxxHandleV8Frame@20
ret
EXTERN ___CxxFrameHandler : PROC
PUBLIC _CallCxxFrameHandler
_CallCxxFrameHandler:
mov eax, dword ptr [esp + 20]
jmp ___CxxFrameHandler
; void __stdcall `eh vector constructor iterator'(void *,unsigned int,int,void (__thiscall*)(void *),void (__thiscall*)(void *))
DEFINE_ALIAS ??_L@YGXPAXIHP6EX0@Z1@Z, ?MSVCRTEX_eh_vector_constructor_iterator@@YGXPAXIHP6EX0@Z1@Z
; void __stdcall `eh vector constructor iterator'(void *,unsigned int,unsigned int,void (__thiscall*)(void *),void (__thiscall*)(void *))
DEFINE_ALIAS ??_L@YGXPAXIIP6EX0@Z1@Z, ?MSVCRTEX_eh_vector_constructor_iterator@@YGXPAXIHP6EX0@Z1@Z
; void __stdcall `eh vector destructor iterator'(void *,unsigned int,int,void (__thiscall*)(void *))
DEFINE_ALIAS ??_M@YGXPAXIHP6EX0@Z@Z, ?MSVCRTEX_eh_vector_destructor_iterator@@YGXPAXIHP6EX0@Z@Z
; void __stdcall `eh vector destructor iterator'(void *,unsigned int,unsigned int,void (__thiscall*)(void *))
DEFINE_ALIAS ??_M@YGXPAXIIP6EX0@Z@Z, ?MSVCRTEX_eh_vector_destructor_iterator@@YGXPAXIHP6EX0@Z@Z
; void __cdecl operator delete(void *,unsigned int)
DEFINE_ALIAS ??3@YAXPAXI@Z, ??3@YAXPAX@Z
; void __cdecl operator delete(void *,struct std::nothrow_t const &)
DEFINE_ALIAS ??3@YAXPAXABUnothrow_t@std@@@Z, ??3@YAXPAX@Z
; void __cdecl operator delete[](void *,struct std::nothrow_t const &)
DEFINE_ALIAS ??_V@YAXPAXABUnothrow_t@std@@@Z, ??3@YAXPAX@Z
END

View file

@ -0,0 +1,46 @@
/*
* PROJECT: ReactOS C++ runtime library
* LICENSE: GPLv2+ - See COPYING in the top level directory
* PURPOSE: __CxxFrameHandler3 to __CxxFrameHandler wrapper
* PROGRAMMER: Thomas Faber (thomas.faber@reactos.org)
*/
#define WIN32_NO_STATUS
#include <windef.h>
#include <winbase.h>
#include <ndk/rtltypes.h>
#define WINE_NO_TRACE_MSGS
#include <wine/debug.h>
#include <wine/exception.h>
#include <internal/wine/msvcrt.h>
#include <internal/wine/cppexcept.h>
extern DWORD CDECL CallCxxFrameHandler(PEXCEPTION_RECORD rec, EXCEPTION_REGISTRATION_RECORD *frame,
PCONTEXT context, EXCEPTION_REGISTRATION_RECORD **dispatch,
const cxx_function_descr *descr);
DWORD
__stdcall
CxxHandleV8Frame(
_In_ PEXCEPTION_RECORD rec,
_In_ EXCEPTION_REGISTRATION_RECORD *frame,
_In_ PCONTEXT context,
_In_ EXCEPTION_REGISTRATION_RECORD **dispatch,
_In_ const cxx_function_descr *descr)
{
cxx_function_descr stub_descr;
if (descr->magic != CXX_FRAME_MAGIC_VC8)
return CallCxxFrameHandler(rec, frame, context, dispatch, descr);
if ((descr->flags & FUNC_DESCR_SYNCHRONOUS) &&
(rec->ExceptionCode != CXX_EXCEPTION))
{
return ExceptionContinueSearch; /* handle only c++ exceptions */
}
stub_descr = *descr;
stub_descr.magic = CXX_FRAME_MAGIC_VC7;
return CallCxxFrameHandler(rec, frame, context, dispatch, &stub_descr);
}

View file

@ -0,0 +1,37 @@
/*
* PROJECT: ReactOS C++ runtime library
* LICENSE: LGPLv2.1+ - See COPYING.LIB in the top level directory
* PURPOSE: nothrow version of the new operators
* PROGRAMMER: Thomas Faber (thomas.faber@reactos.org)
*/
#include <new>
void* operator new (std::size_t) throw(std::bad_alloc);
void* operator new[] (std::size_t) throw(std::bad_alloc);
const std::nothrow_t std::nothrow;
void* operator new (std::size_t size, const std::nothrow_t& nothrow_constant) throw()
{
try
{
return operator new (size);
}
catch (std::bad_alloc)
{
return NULL;
}
}
void* operator new[] (std::size_t size, const std::nothrow_t& nothrow_constant) throw()
{
try
{
return operator new[] (size);
}
catch (std::bad_alloc)
{
return NULL;
}
}

View file

@ -0,0 +1,20 @@
/*
* PROJECT: ReactOS c++ runtime library
* LICENSE: GPLv2+ - See COPYING in the top level directory
* PURPOSE: Type info stub implementation
* PROGRAMMER: Thomas Faber (thomas.faber@reactos.org)
*/
#include <typeinfo>
/* These stubs don't need to do anything (those private functions are never
* called). They need to be in cpprt, though, in order to have the vtable
* and generated destructor thunks available to programs */
type_info::type_info(const type_info &)
{
}
type_info &type_info::operator=(const type_info &)
{
return *this;
}