diff options
author | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
---|---|---|
committer | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
commit | e611b132f9b8abe35b362e5870b74bce94a1e58e (patch) | |
tree | a5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/rpc/wx86rpc | |
download | NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2 NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip |
Diffstat (limited to 'private/rpc/wx86rpc')
-rw-r--r-- | private/rpc/wx86rpc/bldbreak.txt | 28 | ||||
-rw-r--r-- | private/rpc/wx86rpc/dirs | 28 | ||||
-rw-r--r-- | private/rpc/wx86rpc/ndrdll/chkheap.cxx | 7 | ||||
-rw-r--r-- | private/rpc/wx86rpc/ndrdll/makefile | 6 | ||||
-rw-r--r-- | private/rpc/wx86rpc/ndrdll/makefile.inc | 11 | ||||
-rw-r--r-- | private/rpc/wx86rpc/ndrdll/sources | 72 | ||||
-rw-r--r-- | private/rpc/wx86rpc/ndrdll/wxndrdll.rc | 17 | ||||
-rw-r--r-- | private/rpc/wx86rpc/rtdll/makefile | 6 | ||||
-rw-r--r-- | private/rpc/wx86rpc/rtdll/makefile.inc | 5 | ||||
-rw-r--r-- | private/rpc/wx86rpc/rtdll/sources | 60 | ||||
-rw-r--r-- | private/rpc/wx86rpc/rtdll/wxrtdll.rc | 17 |
11 files changed, 257 insertions, 0 deletions
diff --git a/private/rpc/wx86rpc/bldbreak.txt b/private/rpc/wx86rpc/bldbreak.txt new file mode 100644 index 000000000..dd55e72f5 --- /dev/null +++ b/private/rpc/wx86rpc/bldbreak.txt @@ -0,0 +1,28 @@ + The wx86rpc directory is designed to build wxrtdll.dll, wxndrdll.dll and +wxndr20.lib into \nt\public\sdk\lib\i386. These files are needed so that the +Wx86 project can properly build thunks for rpcrt4.dll. If a build break does +occur in one of these directories then a build break will occur when the Wx86 +thunks are built. + + The Wx86 rpc thunks are designed so that most of the rpcrt4 apis are +thunked to the native implementation in rpcrt4.dll with the exception of +most of the Ndr routines and the Ole proxy/stub code for IRpcStubBuffer and +IRpcProxyBuffer which are linked into the thunk dll and executed in x86 code. +Thus any functions that the emulated x86 code calls into the runtime must be +exported from the runtime and not rely on data variables in the runtime. + + \nt\private\rpc\runtime\rtdll\rpcrt4.src replaces rpcrt4.def and defines +which exported apis are thunked and which are emulated. When adding a new api +it is important to place it within the proper section. Under the EXPORT_RT +section are all functions that are thunked while under EXPORT_NDR are all +functions that are emulated. + + It is also important to contain all functionality for the emulated portion +of code in a set of files that does not have any functions that are thunked. +The wxndrdll build process will copy the standard rpcndr20.lib and remove +the functions from rpcssm.obj to create wxndr20.lib. Thus it is important that +the emulated code does not need any variables from rpcssm.cxx and if it +calls any functions in rpcssm.cxx then they will need to be exported from +rpcrt4. + + Also note that nothing should be built under wx86rpc on risc platforms.
\ No newline at end of file diff --git a/private/rpc/wx86rpc/dirs b/private/rpc/wx86rpc/dirs new file mode 100644 index 000000000..27d33276e --- /dev/null +++ b/private/rpc/wx86rpc/dirs @@ -0,0 +1,28 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + dirs. + +Abstract: + + This file specifies the subdirectories of the current directory that + contain component makefiles. + + +Author: + + Steve Wood (stevewo) 17-Apr-1990 + +NOTE: Commented description of this file is in \nt\bak\bin\dirs.tpl + +!ENDIF + +DIRS= \ + rtdll \ + ndrdll + +OPTIONAL_DIRS= + diff --git a/private/rpc/wx86rpc/ndrdll/chkheap.cxx b/private/rpc/wx86rpc/ndrdll/chkheap.cxx new file mode 100644 index 000000000..c4bc6d832 --- /dev/null +++ b/private/rpc/wx86rpc/ndrdll/chkheap.cxx @@ -0,0 +1,7 @@ +extern "C" int +RpcpCheckHeap ( + void + ) +{ + return 0; +} diff --git a/private/rpc/wx86rpc/ndrdll/makefile b/private/rpc/wx86rpc/ndrdll/makefile new file mode 100644 index 000000000..6ee4f43fa --- /dev/null +++ b/private/rpc/wx86rpc/ndrdll/makefile @@ -0,0 +1,6 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the components of NT OS/2 +# +!INCLUDE $(NTMAKEENV)\makefile.def diff --git a/private/rpc/wx86rpc/ndrdll/makefile.inc b/private/rpc/wx86rpc/ndrdll/makefile.inc new file mode 100644 index 000000000..2d0a0fedc --- /dev/null +++ b/private/rpc/wx86rpc/ndrdll/makefile.inc @@ -0,0 +1,11 @@ +clean: + del wx86ndr.src + +full: wx86ndr.src + +# +# copy the rpcrt4.src file so that all of the EXPORT_RT functions will be +# preprocessed out +wx86ndr.src: ..\..\runtime\rtdll\rpcrt4.src + copy ..\..\runtime\rtdll\rpcrt4.src wx86ndr.src + diff --git a/private/rpc/wx86rpc/ndrdll/sources b/private/rpc/wx86rpc/ndrdll/sources new file mode 100644 index 000000000..4d314363e --- /dev/null +++ b/private/rpc/wx86rpc/ndrdll/sources @@ -0,0 +1,72 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + sources. + +Abstract: + + This file specifies the target component being built and the list of + sources files needed to build that component. Also specifies optional + compiler switches and libraries that are unique for the component being + built. + + +Author: + + Steve Wood (stevewo) 12-Apr-1989 + + +Revision History: + +!ENDIF +# +# The TARGETNAME variable is defined by the developer. It is the name of +# the target (component) that is being built by this makefile. It +# should NOT include any path or file extension information. +# +TARGETNAME=wxndrdll + +# +# The TARGETPATH and TARGETTYPE varialbes are defined by the developer. +# The first specifies where the target is to be build. The second specifies +# the type of target (either PROGRAM, DYNLINK or LIBRARY) +# + +TARGETPATH=$(BASEDIR)\public\sdk\lib +TARGETTYPE=DYNLINK + +# We can base this anywhere since the dll is never used. It is only built to +# ensure that any routines needed by ndr are in fact exported from rpcrt4.dll +DLLBASE=0x20000000 + +TARGETLIBS= \ + $(BASEDIR)\public\sdk\lib\*\kernel32.lib \ + $(BASEDIR)\public\sdk\lib\*\wxrtdll.lib \ + $(BASEDIR)\public\sdk\lib\*\advapi32.lib + +!if "$(MIDL_NDR_ENGINE_DIR)" == "" +MIDL_NDR_ENGINE_DIR=$(BASEDIR)\public\sdk\lib +!endif + +LINKLIBS=$(BASEDIR)\public\sdk\lib\*\wxndr20.lib + +C_DEFINES=$(C_DEFINES) -DEXPORT_NDR + +DLLDEF=obj\*\wx86ndr.def + +!IF $(386) +NTTARGETFILE1=full +!ENDIF + +USE_CRTDLL=1 + +SOURCES= + +i386_sources=chkheap.cxx \ + wxndrdll.rc + + + diff --git a/private/rpc/wx86rpc/ndrdll/wxndrdll.rc b/private/rpc/wx86rpc/ndrdll/wxndrdll.rc new file mode 100644 index 000000000..0fa423c2d --- /dev/null +++ b/private/rpc/wx86rpc/ndrdll/wxndrdll.rc @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------- +// whuser32.rc +// +// Copyright (c) Microsoft Corporation, 1996- +//--------------------------------------------------------------------------- + + +#include <windows.h> +#include <ntverp.h> + +#define VER_FILETYPE VFT_DLL +#define VER_FILESUBTYPE VFT_UNKNOWN +#define VER_FILEDESCRIPTION_STR "" +#define VER_INTERNALNAME_STR "wxndrdll" +#define VER_ORIGINALFILENAME_STR "wxndrdll.dll" + +#include "common.ver" diff --git a/private/rpc/wx86rpc/rtdll/makefile b/private/rpc/wx86rpc/rtdll/makefile new file mode 100644 index 000000000..6ee4f43fa --- /dev/null +++ b/private/rpc/wx86rpc/rtdll/makefile @@ -0,0 +1,6 @@ +# +# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source +# file to this component. This file merely indirects to the real make file +# that is shared by all the components of NT OS/2 +# +!INCLUDE $(NTMAKEENV)\makefile.def diff --git a/private/rpc/wx86rpc/rtdll/makefile.inc b/private/rpc/wx86rpc/rtdll/makefile.inc new file mode 100644 index 000000000..f16ba3218 --- /dev/null +++ b/private/rpc/wx86rpc/rtdll/makefile.inc @@ -0,0 +1,5 @@ +clean: + del wxrtdll.src + +wxrtdll.src: ..\..\runtime\rtdll\rpcrt4.src + copy ..\..\runtime\rtdll\rpcrt4.src wxrtdll.src diff --git a/private/rpc/wx86rpc/rtdll/sources b/private/rpc/wx86rpc/rtdll/sources new file mode 100644 index 000000000..828a4a2b0 --- /dev/null +++ b/private/rpc/wx86rpc/rtdll/sources @@ -0,0 +1,60 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + sources. + +Abstract: + + This file specifies the target component being built and the list of + sources files needed to build that component. Also specifies optional + compiler switches and libraries that are unique for the component being + built. + + +Revision History: + +!ENDIF + +TARGETNAME=wxrtdll +TARGETPATH=$(BASEDIR)\public\sdk\lib +TARGETTYPE=DYNLINK + +DLLENTRY=InitializeDLL +TARGETLIBS= \ + $(BASEDIR)\public\sdk\lib\*\kernel32.lib \ + $(BASEDIR)\public\sdk\lib\*\advapi32.lib + +!if "$(MIDL_NDR_ENGINE_DIR)" == "" +MIDL_NDR_ENGINE_DIR=$(BASEDIR)\public\sdk\lib +!endif + +LINKLIBS=..\..\runtime\rtdll\*\rpcmtrt.lib \ + $(BASEDIR)\public\sdk\lib\*\rpcndrp.lib \ + $(BASEDIR)\public\sdk\lib\*\rpcndr.lib \ + $(BASEDIR)\private\rpc\runtime\rtifs\*\rtifs.lib \ + $(MIDL_NDR_ENGINE_DIR)\*\rpcndr20.lib + + +INCLUDES=..\..\runtime\mtrt;$(BASEDIR)\private\inc;..\..\runtime\rtifs\obj + +C_DEFINES=$(C_DEFINES) -DEXPORT_RT + +# it really doesn't matter where the dll is based since it is never used. It +# is only built so that anything imported from ndr by rt can be discovered +DLLBASE=0x20000000 + +DLLDEF=obj\*\wxrtdll.def + +USE_NTDLL=1 + +SOURCES= + +i386_sources = \ + wxrtdll.rc + +!IF $(386) +NTTARGETFILE0=wxrtdll.src +!ENDIF diff --git a/private/rpc/wx86rpc/rtdll/wxrtdll.rc b/private/rpc/wx86rpc/rtdll/wxrtdll.rc new file mode 100644 index 000000000..0fa423c2d --- /dev/null +++ b/private/rpc/wx86rpc/rtdll/wxrtdll.rc @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------- +// whuser32.rc +// +// Copyright (c) Microsoft Corporation, 1996- +//--------------------------------------------------------------------------- + + +#include <windows.h> +#include <ntverp.h> + +#define VER_FILETYPE VFT_DLL +#define VER_FILESUBTYPE VFT_UNKNOWN +#define VER_FILEDESCRIPTION_STR "" +#define VER_INTERNALNAME_STR "wxndrdll" +#define VER_ORIGINALFILENAME_STR "wxndrdll.dll" + +#include "common.ver" |