Skip to content

Commit

Permalink
[CSR][NTDLL] Move the CSR subsystem into its own "csr" sub-directory. (
Browse files Browse the repository at this point in the history
…reactos#4802)

Move CSRSS, CSRSRV there, as well as CSR client calls from NTDLL into a "CSRLIB" library.
  • Loading branch information
HBelusca committed Oct 29, 2022
1 parent a6df7dd commit d2aeaba
Show file tree
Hide file tree
Showing 27 changed files with 94 additions and 43 deletions.
5 changes: 1 addition & 4 deletions dll/ntdll/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,6 @@ include_directories(
${REACTOS_SOURCE_DIR}/sdk/include/reactos/subsys)

list(APPEND SOURCE
csr/api.c
csr/capture.c
csr/connect.c
dbg/dbgui.c
ldr/ldrapi.c
ldr/ldrinit.c
Expand Down Expand Up @@ -60,7 +57,7 @@ set_module_type(ntdll win32dll ENTRYPOINT 0)
set_subsystem(ntdll console)
################# END HACK #################

target_link_libraries(ntdll rtl rtl_vista ntdllsys libcntpr uuid ${PSEH_LIB})
target_link_libraries(ntdll csrlib rtl rtl_vista ntdllsys libcntpr uuid ${PSEH_LIB})

if (STACK_PROTECTOR)
target_sources(ntdll PRIVATE $<TARGET_OBJECTS:gcc_ssp_nt>)
Expand Down
3 changes: 0 additions & 3 deletions dll/ntdll/include/ntdll.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,6 @@
/* Internal NTDLL */
#include "ntdllp.h"

/* CSRSS Headers */
#include <csr/csr.h>

/* PSEH */
#include <pseh/pseh2.h>

Expand Down
2 changes: 1 addition & 1 deletion sdk/include/reactos/subsys/csr/csrsrv.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

/* TYPES **********************************************************************/

// Used in ntdll/csr/connect.c
// Used in csr/connect.c
#define CSR_CSRSS_SECTION_SIZE 65536

typedef struct _CSR_NT_SESSION
Expand Down
2 changes: 1 addition & 1 deletion subsystems/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

add_subdirectory(csr)
add_subdirectory(mvdm)
add_subdirectory(win)
add_subdirectory(win32)
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

add_subdirectory(csrlib)
add_subdirectory(csrsrv)
add_subdirectory(csrss)
13 changes: 13 additions & 0 deletions subsystems/csr/csrlib/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@

add_definitions(-D_NTSYSTEM_)

include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/subsys/csr)

list(APPEND SOURCE
api.c
capture.c
connect.c)

add_library(csrlib ${SOURCE})
add_pch(csrlib csrlib.h SOURCE)
add_dependencies(csrlib psdk)
19 changes: 9 additions & 10 deletions dll/ntdll/csr/api.c → subsystems/csr/csrlib/api.c
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: dll/ntdll/csr/api.c
* PURPOSE: CSR APIs exported through NTDLL
* PROGRAMMER: Alex Ionescu ([email protected])
* PROJECT: ReactOS Client/Server Runtime SubSystem
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
* PURPOSE: CSR Client Library - API LPC Implementation
* COPYRIGHT: Copyright 2005-2012 Alex Ionescu <[email protected]>
* Copyright 2012-2022 Hermès Bélusca-Maïto <[email protected]>
*/

/* INCLUDES *******************************************************************/

#include <ntdll.h>
#include "csrlib.h"

#define NTOS_MODE_USER
#include <ndk/psfuncs.h>

#define NDEBUG
#include <debug.h>

/* GLOBALS ********************************************************************/

extern HANDLE CsrApiPort;

/* FUNCTIONS ******************************************************************/

/*
Expand Down
17 changes: 6 additions & 11 deletions dll/ntdll/csr/capture.c → subsystems/csr/csrlib/capture.c
Original file line number Diff line number Diff line change
@@ -1,23 +1,18 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: dll/ntdll/csr/capture.c
* PURPOSE: Routines for probing and capturing CSR API Messages
* PROGRAMMERS: Alex Ionescu ([email protected])
* Hermes Belusca-Maito ([email protected])
* PROJECT: ReactOS Client/Server Runtime SubSystem
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
* PURPOSE: CSR Client Library - CSR API Messages probing and capturing
* COPYRIGHT: Copyright 2005 Alex Ionescu <[email protected]>
* Copyright 2012-2022 Hermès Bélusca-Maïto <[email protected]>
*/

/* INCLUDES *******************************************************************/

#include <ntdll.h>
#include "csrlib.h"

#define NDEBUG
#include <debug.h>

/* GLOBALS ********************************************************************/

extern HANDLE CsrPortHeap;

/* FUNCTIONS ******************************************************************/

/*
Expand Down
26 changes: 15 additions & 11 deletions dll/ntdll/csr/connect.c → subsystems/csr/csrlib/connect.c
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: dll/ntdll/csr/connect.c
* PURPOSE: Routines for connecting and calling CSR
* PROGRAMMER: Alex Ionescu ([email protected])
* PROJECT: ReactOS Client/Server Runtime SubSystem
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
* PURPOSE: CSR Client Library - CSR connection and calling
* COPYRIGHT: Copyright 2005-2013 Alex Ionescu <[email protected]>
* Copyright 2012-2022 Hermès Bélusca-Maïto <[email protected]>
*/

/* INCLUDES *******************************************************************/

#include <ntdll.h>
#include "csrlib.h"

#define NTOS_MODE_USER
#include <ndk/ldrfuncs.h>
#include <ndk/lpcfuncs.h>
#include <csr/csrsrv.h>
#include <ndk/mmfuncs.h>
#include <ndk/obfuncs.h>
#include <ndk/umfuncs.h>

#include <csrsrv.h> // For CSR_CSRSS_SECTION_SIZE

#define NDEBUG
#include <debug.h>
Expand All @@ -30,8 +36,6 @@ typedef NTSTATUS

PCSR_SERVER_API_ROUTINE CsrServerApiRoutine;

#define UNICODE_PATH_SEP L"\\"

/* FUNCTIONS ******************************************************************/

NTSTATUS
Expand Down Expand Up @@ -80,8 +84,8 @@ CsrpConnectToServer(IN PWSTR ObjectDirectory)
}

/* Create the name */
RtlAppendUnicodeToString(&PortName, ObjectDirectory );
RtlAppendUnicodeToString(&PortName, UNICODE_PATH_SEP);
RtlAppendUnicodeToString(&PortName, ObjectDirectory);
RtlAppendUnicodeToString(&PortName, L"\\");
RtlAppendUnicodeToString(&PortName, CSR_PORT_NAME);

/* Create a section for the port memory */
Expand Down
17 changes: 17 additions & 0 deletions subsystems/csr/csrlib/csrdll.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
@ stdcall CsrAllocateCaptureBuffer(long long)
@ stdcall CsrAllocateMessagePointer(ptr long ptr)
@ stdcall CsrCaptureMessageBuffer(ptr ptr long ptr)
@ stdcall CsrCaptureMessageMultiUnicodeStringsInPlace(ptr long ptr)
@ stdcall CsrCaptureMessageString(ptr str long long ptr)
@ stdcall CsrCaptureTimeout(long ptr)
@ stdcall CsrClientCallServer(ptr ptr long long)
@ stdcall CsrClientConnectToServer(str long ptr ptr ptr)
@ stdcall CsrFreeCaptureBuffer(ptr)
@ stdcall CsrGetProcessId()
@ stdcall CsrIdentifyAlertableThread()
@ stdcall -version=0x502 CsrNewThread()
@ stdcall -version=0x502 CsrProbeForRead(ptr long long)
@ stdcall -version=0x502 CsrProbeForWrite(ptr long long)
@ stdcall CsrSetPriorityClass(ptr ptr)
@ stdcall -stub -version=0x600+ CsrVerifyRegion(ptr long)
@ stdcall -stub -version=0x600+ RtlRegisterThreadWithCsrss()
29 changes: 29 additions & 0 deletions subsystems/csr/csrlib/csrlib.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* PROJECT: ReactOS Client/Server Runtime SubSystem
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
* PURPOSE: CSR Client Library - Main Header
* COPYRIGHT: Copyright 2022 Hermès Bélusca-Maïto <[email protected]>
*/

#ifndef _CSRLIB_H_
#define _CSRLIB_H_

/* INCLUDES ******************************************************************/

/* PSDK/NDK Headers */
#define WIN32_NO_STATUS
//#include <windef.h>
#define NTOS_MODE_USER
#include <ndk/rtlfuncs.h>

/* CSRSS Headers */
#include <csr.h>

/* GLOBALS ********************************************************************/

extern HANDLE CsrApiPort;
extern HANDLE CsrPortHeap;

#endif /* _CSRLIB_H_ */

/* EOF */
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

include_directories(${REACTOS_SOURCE_DIR}/subsystems/win32/csrss/include)
include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/subsys)

spec2def(csrsrv.dll csrsrv.spec ADD_IMPORTLIB)
Expand All @@ -20,7 +19,7 @@ add_library(csrsrv MODULE
${CMAKE_CURRENT_BINARY_DIR}/csrsrv.def)

set_module_type(csrsrv nativedll)
target_link_libraries(csrsrv ${PSEH_LIB} smlib)
target_link_libraries(csrsrv smlib ${PSEH_LIB})
add_importlibs(csrsrv ntdll)
add_pch(csrsrv srv.h SOURCE)
add_dependencies(csrsrv psdk bugcodes)
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit d2aeaba

Please sign in to comment.