[NTOS]
authorAmine Khaldi <amine.khaldi@reactos.org>
Mon, 10 Feb 2014 17:12:41 +0000 (17:12 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Mon, 10 Feb 2014 17:12:41 +0000 (17:12 +0000)
* Prepare the CMake scripts for PCH.
* Add header guards to the main header.
* Improve header inclusions.
* Improve the GUIDs situation.
CORE-7716

svn path=/trunk/; revision=62103

reactos/ntoskrnl/CMakeLists.txt
reactos/ntoskrnl/guid.c [new file with mode: 0644]
reactos/ntoskrnl/include/ntoskrnl.h
reactos/ntoskrnl/ntkrnlmp/CMakeLists.txt [new file with mode: 0644]
reactos/ntoskrnl/ntos.cmake [new file with mode: 0644]
reactos/ntoskrnl/po/power.c

index d6a751a..5d3432d 100644 (file)
 
 PROJECT(NTOS)
 
-spec2def(ntoskrnl.exe ntoskrnl.spec ADD_IMPORTLIB)
-
-include_directories(
-    ${REACTOS_SOURCE_DIR}
-    ${REACTOS_SOURCE_DIR}/lib/cmlib
-    include
-    ${CMAKE_CURRENT_BINARY_DIR}/include
-    ${CMAKE_CURRENT_BINARY_DIR}/include/internal
-    ${REACTOS_SOURCE_DIR}/include/reactos/drivers)
-
-add_definitions(
-    -D__NTOSKRNL__
-    -D_NTOSKRNL_
-    -D_NTSYSTEM_
-    -D_IN_KERNEL_
-    -DNTDDI_VERSION=0x05020400)
-
-if(NOT DEFINED NEWCC)
-    set(NEWCC FALSE)
-endif()
-
-if(NEWCC)
-    add_definitions(-DNEWCC)
-    list(APPEND SOURCE
-        cache/cachesub.c
-        cache/copysup.c
-        cache/fssup.c
-        cache/lazyrite.c
-        cache/logsup.c
-        cache/mdlsup.c
-        cache/pinsup.c)
-else()
-    list(APPEND SOURCE
-        cc/cacheman.c
-        cc/copy.c
-        cc/fs.c
-        cc/mdl.c
-        cc/pin.c
-        cc/view.c)
-endif()
-
-list(APPEND SOURCE
-    cache/section/io.c
-    cache/section/data.c
-    cache/section/fault.c
-    cache/section/reqtools.c
-    cache/section/sptab.c
-    cache/section/swapout.c
-    config/cmalloc.c
-    config/cmapi.c
-    config/cmboot.c
-    config/cmcheck.c
-    config/cmconfig.c
-    config/cmcontrl.c
-    config/cmdata.c
-    config/cmdelay.c
-    config/cmhook.c
-    config/cmhvlist.c
-    config/cmindex.c
-    config/cminit.c
-    config/cmkcbncb.c
-    config/cmkeydel.c
-    config/cmlazy.c
-    config/cmmapvw.c
-    config/cmname.c
-    config/cmnotify.c
-    config/cmparse.c
-    config/cmquota.c
-    config/cmse.c
-    config/cmsecach.c
-    config/cmsysini.c
-    config/cmvalche.c
-    config/cmvalue.c
-    config/cmwraprs.c
-    config/ntapi.c
-    dbgk/dbgkobj.c
-    dbgk/dbgkutil.c
-    ex/atom.c
-    ex/callback.c
-    ex/dbgctrl.c
-    ex/efi.c
-    ex/event.c
-    ex/evtpair.c
-    ex/exintrin.c
-    ex/fmutex.c
-    ex/handle.c
-    ex/harderr.c
-    ex/hdlsterm.c
-    ex/init.c
-    ex/interlocked.c
-    ex/keyedevt.c
-    ex/locale.c
-    ex/lookas.c
-    ex/mutant.c
-    ex/profile.c
-    ex/pushlock.c
-    ex/resource.c
-    ex/rundown.c
-    ex/sem.c
-    ex/shutdown.c
-    ex/sysinfo.c
-    ex/time.c
-    ex/timer.c
-    ex/uuid.c
-    ex/win32k.c
-    ex/work.c
-    ex/xipdisp.c
-    ex/zone.c
-    fsrtl/dbcsname.c
-    fsrtl/fastio.c
-    fsrtl/faulttol.c
-    fsrtl/filelock.c
-    fsrtl/filter.c
-    fsrtl/filtrctx.c
-    fsrtl/fsfilter.c
-    fsrtl/fsrtlpc.c
-    fsrtl/largemcb.c
-    fsrtl/mcb.c
-    fsrtl/name.c
-    fsrtl/notify.c
-    fsrtl/oplock.c
-    fsrtl/pnp.c
-    fsrtl/stackovf.c
-    fsrtl/tunnel.c
-    fsrtl/unc.c
-    fstub/disksup.c
-    fstub/fstubex.c
-    fstub/halstub.c
-    fstub/translate.c
-    inbv/inbv.c
-    inbv/inbvport.c
-    io/iomgr/adapter.c
-    io/iomgr/arcname.c
-    io/iomgr/bootlog.c
-    io/iomgr/controller.c
-    io/iomgr/device.c
-    io/iomgr/deviface.c
-    io/iomgr/driver.c
-    io/iomgr/error.c
-    io/iomgr/file.c
-    io/iomgr/iocomp.c
-    io/iomgr/ioevent.c
-    io/iomgr/iofunc.c
-    io/iomgr/iomdl.c
-    io/iomgr/iomgr.c
-    io/iomgr/iorsrce.c
-    io/iomgr/iotimer.c
-    io/iomgr/iowork.c
-    io/iomgr/irp.c
-    io/iomgr/irq.c
-    io/iomgr/ramdisk.c
-    io/iomgr/rawfs.c
-    io/iomgr/remlock.c
-    io/iomgr/symlink.c
-    io/iomgr/util.c
-    io/iomgr/volume.c
-    io/pnpmgr/plugplay.c
-    io/pnpmgr/pnpdma.c
-    io/pnpmgr/pnpinit.c
-    io/pnpmgr/pnpmgr.c
-    io/pnpmgr/pnpnotify.c
-    io/pnpmgr/pnpreport.c
-    io/pnpmgr/pnpres.c
-    io/pnpmgr/pnproot.c
-    io/pnpmgr/pnputil.c
-    ke/apc.c
-    ke/balmgr.c
-    ke/bug.c
-    ke/clock.c
-    ke/config.c
-    ke/devqueue.c
-    ke/dpc.c
-    ke/eventobj.c
-    ke/except.c
-    ke/freeze.c
-    ke/gate.c
-    ke/gmutex.c
-    ke/ipi.c
-    ke/krnlinit.c
-    ke/mutex.c
-    ke/procobj.c
-    ke/profobj.c
-    ke/queue.c
-    ke/semphobj.c
-    ke/spinlock.c
-    ke/thrdobj.c
-    ke/thrdschd.c
-    ke/time.c
-    ke/timerobj.c
-    ke/wait.c
-    lpc/close.c
-    lpc/complete.c
-    lpc/connect.c
-    lpc/create.c
-    lpc/listen.c
-    lpc/port.c
-    lpc/reply.c
-    lpc/send.c
-    mm/ARM3/contmem.c
-    mm/ARM3/drvmgmt.c
-    mm/ARM3/dynamic.c
-    mm/ARM3/expool.c
-    mm/ARM3/hypermap.c
-    mm/ARM3/iosup.c
-    mm/ARM3/largepag.c
-    mm/ARM3/mdlsup.c
-    mm/ARM3/mmdbg.c
-    mm/ARM3/mminit.c
-    mm/ARM3/mmsup.c
-    mm/ARM3/ncache.c
-    mm/ARM3/pagfault.c
-    mm/ARM3/pfnlist.c
-    mm/ARM3/pool.c
-    mm/ARM3/procsup.c
-    mm/ARM3/section.c
-    mm/ARM3/session.c
-    mm/ARM3/special.c
-    mm/ARM3/sysldr.c
-    mm/ARM3/syspte.c
-    mm/ARM3/vadnode.c
-    mm/ARM3/virtual.c
-    mm/ARM3/zeropage.c
-    mm/balance.c
-    mm/freelist.c
-    mm/marea.c
-    mm/mmfault.c
-    mm/mminit.c
-    mm/pagefile.c
-    mm/region.c
-    mm/rmap.c
-    mm/section.c
-    ob/obdir.c
-    ob/obhandle.c
-    ob/obinit.c
-    ob/oblife.c
-    ob/oblink.c
-    ob/obname.c
-    ob/obref.c
-    ob/obsdcach.c
-    ob/obsecure.c
-    ob/obwait.c
-    po/events.c
-    po/guid.c
-    po/poshtdwn.c
-    po/povolume.c
-    po/power.c
-    ps/debug.c
-    ps/job.c
-    ps/kill.c
-    ps/process.c
-    ps/psmgr.c
-    ps/psnotify.c
-    ps/query.c
-    ps/quota.c
-    ps/security.c
-    ps/state.c
-    ps/thread.c
-    ps/win32.c
-    rtl/libsupp.c
-    rtl/misc.c
-    se/access.c
-    se/accesschk.c
-    se/acl.c
-    se/audit.c
-    se/lsa.c
-    se/priv.c
-    se/sd.c
-    se/semgr.c
-    se/sid.c
-    se/token.c
-    vf/driver.c
-    wmi/wmi.c
-    ntoskrnl.rc)
-
-list(APPEND ASM_SOURCE ex/zw.S)
-
-if(ARCH STREQUAL "i386")
-    list(APPEND ASM_SOURCE
-        ex/i386/fastinterlck_asm.S
-        ex/i386/ioport.S
-        ke/i386/ctxswitch.S
-        ke/i386/trap.s
-        ke/i386/usercall_asm.S
-        rtl/i386/stack.S)
-    list(APPEND SOURCE
-        config/i386/cmhardwr.c
-        ke/i386/abios.c
-        ke/i386/cpu.c
-        ke/i386/context.c
-        ke/i386/exp.c
-        ke/i386/irqobj.c
-        ke/i386/kiinit.c
-        ke/i386/ldt.c
-        ke/i386/mtrr.c
-        ke/i386/patpge.c
-        ke/i386/thrdini.c
-        ke/i386/traphdlr.c
-        ke/i386/usercall.c
-        ke/i386/v86vdm.c
-        mm/i386/page.c
-        mm/ARM3/i386/init.c
-        ps/i386/psctx.c
-        ps/i386/psldt.c
-        vdm/vdmmain.c
-        vdm/vdmexec.c)
-elseif(ARCH STREQUAL "amd64")
-    list(APPEND ASM_SOURCE
-        ke/amd64/boot.S
-        ke/amd64/ctxswitch.S
-        ke/amd64/trap.S)
-    list(APPEND SOURCE
-        config/i386/cmhardwr.c
-        ke/amd64/context.c
-        ke/amd64/cpu.c
-        ke/amd64/except.c
-        ke/amd64/interrupt.c
-        ke/amd64/irql.c
-        ke/amd64/kiinit.c
-        ke/amd64/krnlinit.c
-        ke/amd64/spinlock.c
-        ke/amd64/stubs.c
-        ke/amd64/thrdini.c
-        mm/amd64/init.c
-        mm/amd64/page.c
-        ps/amd64/psctx.c)
-elseif(ARCH STREQUAL "arm")
-    list(APPEND ASM_SOURCE
-        ke/arm/boot.s
-        ke/arm/ctxswtch.s
-        ke/arm/stubs_asm.s
-        ke/arm/trap.s)
-    list(APPEND SOURCE
-        config/arm/cmhardwr.c
-        ke/arm/cpu.c
-        ke/arm/exp.c
-        ke/arm/kiinit.c
-        ke/arm/thrdini.c
-        ke/arm/trapc.c
-        ke/arm/usercall.c
-        mm/arm/page.c
-        mm/ARM3/arm/init.c
-        ps/arm/psctx.c
-        rtl/arm/rtlexcpt.c)
-elseif(ARCH STREQUAL "powerpc")
-    list(APPEND ASM_SOURCE
-        ke/powerpc/main_asm.S
-        ke/powerpc/ctxhelp.S)
-    list(APPEND SOURCE
-        config/powerpc/cmhardwr.c
-        ke/powerpc/cpu.c
-        ke/powerpc/exp.c
-        ke/powerpc/kiinit.c
-        ke/powerpc/ppc_irq.c
-        ke/powerpc/stubs.c
-        ke/powerpc/systimer.c
-        ke/powerpc/thrdini.c
-        ke/powerpc/ctxswitch.c
-        mm/powerpc/pfault.c
-        mm/powerpc/page.c)
-endif()
-
-if(NOT _WINKD_)
-    if(ARCH STREQUAL "i386")
-        list(APPEND SOURCE
-            kd/i386/kdbg.c
-            kd/i386/kdmemsup.c
-            kd/wrappers/gdbstub.c)
-        if(KDBG)
-            list(APPEND ASM_SOURCE kdbg/i386/kdb_help.S)
-            list(APPEND SOURCE kdbg/i386/i386-dis.c)
-        endif()
-    elseif(ARCH STREQUAL "amd64")
-        list(APPEND SOURCE
-            kd/amd64/kd.c
-            kd/i386/kdbg.c  # Use the x86 file
-            kd/amd64/kdmemsup.c)
-        if(KDBG)
-            list(APPEND ASM_SOURCE kdbg/amd64/kdb_help.S)
-            list(APPEND SOURCE
-                kdbg/amd64/i386-dis.c
-                kdbg/amd64/kdb.c)
-        endif()
-    elseif(ARCH STREQUAL "arm")
-        list(APPEND SOURCE kd/arm/kdbg.c)
-    elseif(ARCH STREQUAL "powerpc")
-        list(APPEND SOURCE kd/wrappers/gdbstub_powerpc.c)
-    endif()
+include(ntos.cmake)
 
-    if(KDBG)
-        list(APPEND SOURCE
-            kdbg/kdb.c
-            kdbg/kdb_cli.c
-            kdbg/kdb_expr.c
-            kdbg/kdb_keyboard.c
-            kdbg/kdb_serial.c
-            kdbg/kdb_symbols.c)
-    endif()
+set(NTOSKRNL_SOURCE ${SOURCE})
+set(NTOSKRNL_ASM_SOURCE ${ASM_SOURCE})
 
-    list(APPEND SOURCE
-        kd/wrappers/bochs.c
-        kd/wrappers/kdbg.c
-        kd/kdinit.c
-        kd/kdio.c
-        kd/kdmain.c)
+set(NTKRNLMP_SOURCE ${SOURCE})
+set(NTKRNLMP_ASM_SOURCE ${ASM_SOURCE})
 
-else() # _WINKD_
-
-    list(APPEND SOURCE
-        kd64/kdapi.c
-        kd64/kdbreak.c
-        kd64/kddata.c
-        kd64/kdinit.c
-        kd64/kdlock.c
-        kd64/kdprint.c
-        kd64/kdtrap.c)
-
-    if(ARCH STREQUAL "i386")
-        list(APPEND SOURCE kd64/i386/kdx86.c)
-    elseif(ARCH STREQUAL "amd64")
-        list(APPEND SOURCE kd64/amd64/kdx64.c)
-    elseif(ARCH STREQUAL "arm")
-        list(APPEND SOURCE kd64/arm/kdarm.c)
-    endif()
-
-endif()
+spec2def(ntoskrnl.exe ntoskrnl.spec ADD_IMPORTLIB)
 
-add_asm_files(ntoskrnl_asm ${ASM_SOURCE})
+add_asm_files(ntoskrnl_asm ${NTOSKRNL_ASM_SOURCE})
 
 add_executable(ntoskrnl
     ${ntoskrnl_asm}
-    ${SOURCE}
+    ${NTOSKRNL_SOURCE}
+    guid.c
+    ntoskrnl.rc
     ${CMAKE_CURRENT_BINARY_DIR}/ntoskrnl.def)
 
 if(ARCH STREQUAL "i386")
@@ -464,48 +50,12 @@ target_link_libraries(ntoskrnl
     ioevent)
 
 add_importlibs(ntoskrnl hal kdcom bootvid)
-add_pch(ntoskrnl include/ntoskrnl.h)
+add_pch(ntoskrnl ${REACTOS_SOURCE_DIR}/ntoskrnl/include/ntoskrnl.h NTOSKRNL_SOURCE)
 add_dependencies(ntoskrnl psdk bugcodes asm)
 add_cd_file(TARGET ntoskrnl DESTINATION reactos/system32 NO_CAB FOR all)
 
 if(BUILD_MP)
-    spec2def(ntkrnlmp.exe ntoskrnl.spec)
-
-    if(MSVC_IDE AND (CMAKE_VERSION MATCHES "ReactOS"))
-        set_source_files_properties(${ASM_SOURCE} PROPERTIES COMPILE_DEFINITIONS "CONFIG_SMP")
-    endif()
-
-    add_asm_files(ntkrnlmp_asm ${ASM_SOURCE})
-
-    add_executable(ntkrnlmp
-        ${ntkrnlmp_asm}
-        ${SOURCE}
-        ${CMAKE_CURRENT_BINARY_DIR}/ntkrnlmp.def)
-
-    add_target_compile_definitions(ntkrnlmp CONFIG_SMP)
-
-    if(ARCH STREQUAL "i386")
-        set_entrypoint(ntkrnlmp KiSystemStartup 4)
-    else()
-        set_entrypoint(ntkrnlmp KiSystemStartup)
-    endif()
-    set_subsystem(ntkrnlmp native)
-
-    if(MSVC)
-        set_image_base(ntkrnlmp 0x00400000)
-    else()
-        set_image_base(ntkrnlmp 0x80800000)
-    endif()
-
-    # Linker bug
-    if(NOT MSVC AND LTCG)
-        add_target_link_flags(ntkrnlmp "-shared")
-    endif()
-
-    target_link_libraries(ntkrnlmp cportlib csq ${PSEH_LIB} cmlib rtl ${ROSSYM_LIB} libcntpr wdmguid ioevent)
-    add_importlibs(ntkrnlmp hal kdcom bootvid)
-    add_dependencies(ntkrnlmp psdk bugcodes asm)
-    add_cd_file(TARGET ntkrnlmp DESTINATION reactos/system32 NO_CAB FOR all)
+    add_subdirectory(ntkrnlmp)
 endif()
 
 add_asm_files(ntdllsys_asm ntdll.S)
diff --git a/reactos/ntoskrnl/guid.c b/reactos/ntoskrnl/guid.c
new file mode 100644 (file)
index 0000000..3465809
--- /dev/null
@@ -0,0 +1,8 @@
+/* DO NOT USE THE PRECOMPILED HEADER FOR THIS FILE! */
+
+#include <wdm.h>
+#include <batclass.h>
+#include <initguid.h>
+#include <poclass.h>
+
+/* NO CODE HERE, THIS IS JUST REQUIRED FOR THE GUID DEFINITIONS */
index 9a823e4..9e7f37d 100644 (file)
@@ -6,6 +6,9 @@
  * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
  */
 
+#ifndef _NTOSKRNL_PCH
+#define _NTOSKRNL_PCH
+
 /* INCLUDES ******************************************************************/
 
 /* ARM Bringup Hack */
@@ -69,9 +72,6 @@
 /* SEH support with PSEH */
 #include <pseh/pseh2.h>
 
-/* ReactOS Headers */
-#include <reactos/bugcodes.h>
-
 /* SetupLDR Support */
 #include <arc/setupblk.h>
 
@@ -125,3 +125,4 @@ extern UCHAR _KeNumberProcessors;
 #include "internal/probe.h"
 #include "resource.h"
 
+#endif /* _NTOSKRNL_PCH */
diff --git a/reactos/ntoskrnl/ntkrnlmp/CMakeLists.txt b/reactos/ntoskrnl/ntkrnlmp/CMakeLists.txt
new file mode 100644 (file)
index 0000000..f162c6f
--- /dev/null
@@ -0,0 +1,52 @@
+include(../ntos.cmake)
+
+spec2def(ntkrnlmp.exe ../ntoskrnl.spec)
+
+if(MSVC_IDE AND (CMAKE_VERSION MATCHES "ReactOS"))
+    set_source_files_properties(${NTKRNLMP_ASM_SOURCE} PROPERTIES COMPILE_DEFINITIONS "CONFIG_SMP")
+endif()
+
+add_asm_files(ntkrnlmp_asm ${NTKRNLMP_ASM_SOURCE})
+
+add_executable(ntkrnlmp
+    ${ntkrnlmp_asm}
+    ${NTKRNLMP_SOURCE}
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/guid.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ntoskrnl.rc
+    ${CMAKE_CURRENT_BINARY_DIR}/ntkrnlmp.def)
+
+add_target_compile_definitions(ntkrnlmp CONFIG_SMP)
+
+if(ARCH STREQUAL "i386")
+    set_entrypoint(ntkrnlmp KiSystemStartup 4)
+else()
+    set_entrypoint(ntkrnlmp KiSystemStartup)
+endif()
+set_subsystem(ntkrnlmp native)
+
+if(MSVC)
+    set_image_base(ntkrnlmp 0x00400000)
+else()
+    set_image_base(ntkrnlmp 0x80800000)
+endif()
+
+# Linker bug
+if(NOT MSVC AND LTCG)
+    add_target_link_flags(ntkrnlmp "-shared")
+endif()
+
+target_link_libraries(ntkrnlmp
+    cportlib
+    csq
+    ${PSEH_LIB}
+    cmlib
+    rtl
+    ${ROSSYM_LIB}
+    libcntpr
+    wdmguid
+    ioevent)
+
+add_importlibs(ntkrnlmp hal kdcom bootvid)
+add_pch(ntkrnlmp ${REACTOS_SOURCE_DIR}/ntoskrnl/include/ntoskrnl.h NTKRNLMP_SOURCE)
+add_dependencies(ntkrnlmp psdk bugcodes asm)
+add_cd_file(TARGET ntkrnlmp DESTINATION reactos/system32 NO_CAB FOR all)
diff --git a/reactos/ntoskrnl/ntos.cmake b/reactos/ntoskrnl/ntos.cmake
new file mode 100644 (file)
index 0000000..e42a2d9
--- /dev/null
@@ -0,0 +1,424 @@
+
+include_directories(
+    ${REACTOS_SOURCE_DIR}
+    ${REACTOS_SOURCE_DIR}/lib/cmlib
+    include
+    ${CMAKE_CURRENT_BINARY_DIR}/include
+    ${CMAKE_CURRENT_BINARY_DIR}/include/internal
+    ${REACTOS_SOURCE_DIR}/include/reactos/drivers)
+
+add_definitions(
+    -D__NTOSKRNL__
+    -D_NTOSKRNL_
+    -D_NTSYSTEM_
+    -D_IN_KERNEL_
+    -DNTDDI_VERSION=0x05020400)
+
+if(NOT DEFINED NEWCC)
+    set(NEWCC FALSE)
+endif()
+
+if(NEWCC)
+    add_definitions(-DNEWCC)
+    list(APPEND SOURCE
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/cache/cachesub.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/cache/copysup.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/cache/fssup.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/cache/lazyrite.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/cache/logsup.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/cache/mdlsup.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/cache/pinsup.c)
+else()
+    list(APPEND SOURCE
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/cc/cacheman.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/cc/copy.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/cc/fs.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/cc/mdl.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/cc/pin.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/cc/view.c)
+endif()
+
+list(APPEND SOURCE
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/include/ntoskrnl.h
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/cache/section/io.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/cache/section/data.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/cache/section/fault.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/cache/section/reqtools.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/cache/section/sptab.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/cache/section/swapout.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmalloc.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmapi.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmboot.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmcheck.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmconfig.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmcontrl.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmdata.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmdelay.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmhook.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmhvlist.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmindex.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cminit.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmkcbncb.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmkeydel.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmlazy.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmmapvw.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmname.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmnotify.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmparse.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmquota.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmse.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmsecach.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmsysini.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmvalche.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmvalue.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/cmwraprs.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/config/ntapi.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/dbgk/dbgkobj.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/dbgk/dbgkutil.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/atom.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/callback.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/dbgctrl.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/efi.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/event.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/evtpair.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/exintrin.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/fmutex.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/handle.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/harderr.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/hdlsterm.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/init.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/interlocked.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/keyedevt.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/locale.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/lookas.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/mutant.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/profile.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/pushlock.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/resource.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/rundown.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/sem.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/shutdown.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/sysinfo.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/time.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/timer.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/uuid.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/win32k.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/work.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/xipdisp.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/zone.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fsrtl/dbcsname.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fsrtl/fastio.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fsrtl/faulttol.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fsrtl/filelock.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fsrtl/filter.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fsrtl/filtrctx.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fsrtl/fsfilter.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fsrtl/fsrtlpc.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fsrtl/largemcb.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fsrtl/mcb.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fsrtl/name.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fsrtl/notify.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fsrtl/oplock.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fsrtl/pnp.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fsrtl/stackovf.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fsrtl/tunnel.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fsrtl/unc.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fstub/disksup.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fstub/fstubex.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fstub/halstub.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/fstub/translate.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/inbv/inbv.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/inbv/inbvport.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/adapter.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/arcname.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/bootlog.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/controller.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/device.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/deviface.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/driver.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/error.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/file.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/iocomp.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/ioevent.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/iofunc.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/iomdl.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/iomgr.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/iorsrce.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/iotimer.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/iowork.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/irp.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/irq.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/ramdisk.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/rawfs.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/remlock.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/symlink.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/util.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/iomgr/volume.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/pnpmgr/plugplay.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/pnpmgr/pnpdma.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/pnpmgr/pnpinit.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/pnpmgr/pnpmgr.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/pnpmgr/pnpnotify.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/pnpmgr/pnpreport.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/pnpmgr/pnpres.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/pnpmgr/pnproot.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/io/pnpmgr/pnputil.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/apc.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/balmgr.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/bug.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/clock.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/config.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/devqueue.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/dpc.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/eventobj.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/except.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/freeze.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/gate.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/gmutex.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/ipi.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/krnlinit.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/mutex.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/procobj.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/profobj.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/queue.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/semphobj.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/spinlock.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/thrdobj.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/thrdschd.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/time.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/timerobj.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/wait.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/lpc/close.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/lpc/complete.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/lpc/connect.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/lpc/create.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/lpc/listen.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/lpc/port.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/lpc/reply.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/lpc/send.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/contmem.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/drvmgmt.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/dynamic.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/expool.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/hypermap.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/iosup.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/largepag.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/mdlsup.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/mmdbg.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/mminit.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/mmsup.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/ncache.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/pagfault.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/pfnlist.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/pool.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/procsup.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/section.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/session.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/special.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/sysldr.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/syspte.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/vadnode.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/virtual.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/zeropage.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/balance.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/freelist.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/marea.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/mmfault.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/mminit.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/pagefile.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/region.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/rmap.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/section.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ob/obdir.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ob/obhandle.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ob/obinit.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ob/oblife.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ob/oblink.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ob/obname.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ob/obref.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ob/obsdcach.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ob/obsecure.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ob/obwait.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/po/events.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/po/guid.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/po/poshtdwn.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/po/povolume.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/po/power.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ps/debug.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ps/job.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ps/kill.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ps/process.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ps/psmgr.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ps/psnotify.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ps/query.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ps/quota.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ps/security.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ps/state.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ps/thread.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/ps/win32.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/rtl/libsupp.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/rtl/misc.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/se/access.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/se/accesschk.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/se/acl.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/se/audit.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/se/lsa.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/se/priv.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/se/sd.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/se/semgr.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/se/sid.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/se/token.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/vf/driver.c
+    ${REACTOS_SOURCE_DIR}/ntoskrnl/wmi/wmi.c)
+
+list(APPEND ASM_SOURCE ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/zw.S)
+
+if(ARCH STREQUAL "i386")
+    list(APPEND ASM_SOURCE
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/i386/fastinterlck_asm.S
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ex/i386/ioport.S
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/i386/ctxswitch.S
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/i386/trap.s
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/i386/usercall_asm.S
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/rtl/i386/stack.S)
+    list(APPEND SOURCE
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/config/i386/cmhardwr.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/i386/abios.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/i386/cpu.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/i386/context.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/i386/exp.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/i386/irqobj.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/i386/kiinit.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/i386/ldt.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/i386/mtrr.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/i386/patpge.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/i386/thrdini.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/i386/traphdlr.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/i386/usercall.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/i386/v86vdm.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/i386/page.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/i386/init.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ps/i386/psctx.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ps/i386/psldt.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/vdm/vdmmain.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/vdm/vdmexec.c)
+elseif(ARCH STREQUAL "amd64")
+    list(APPEND ASM_SOURCE
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/amd64/boot.S
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/amd64/ctxswitch.S
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/amd64/trap.S)
+    list(APPEND SOURCE
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/config/i386/cmhardwr.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/amd64/context.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/amd64/cpu.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/amd64/except.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/amd64/interrupt.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/amd64/irql.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/amd64/kiinit.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/amd64/krnlinit.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/amd64/spinlock.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/amd64/stubs.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/amd64/thrdini.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/amd64/init.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/amd64/page.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ps/amd64/psctx.c)
+elseif(ARCH STREQUAL "arm")
+    list(APPEND ASM_SOURCE
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/arm/boot.s
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/arm/ctxswtch.s
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/arm/stubs_asm.s
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/arm/trap.s)
+    list(APPEND SOURCE
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/config/arm/cmhardwr.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/arm/cpu.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/arm/exp.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/arm/kiinit.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/arm/thrdini.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/arm/trapc.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/arm/usercall.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/arm/page.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/ARM3/arm/init.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ps/arm/psctx.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/rtl/arm/rtlexcpt.c)
+elseif(ARCH STREQUAL "powerpc")
+    list(APPEND ASM_SOURCE
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/powerpc/main_asm.S
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/powerpc/ctxhelp.S)
+    list(APPEND SOURCE
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/config/powerpc/cmhardwr.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/powerpc/cpu.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/powerpc/exp.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/powerpc/kiinit.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/powerpc/ppc_irq.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/powerpc/stubs.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/powerpc/systimer.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/powerpc/thrdini.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/ke/powerpc/ctxswitch.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/powerpc/pfault.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/mm/powerpc/page.c)
+endif()
+
+if(NOT _WINKD_)
+    if(ARCH STREQUAL "i386")
+        list(APPEND SOURCE
+            ${REACTOS_SOURCE_DIR}/ntoskrnl/kd/i386/kdbg.c
+            ${REACTOS_SOURCE_DIR}/ntoskrnl/kd/i386/kdmemsup.c
+            ${REACTOS_SOURCE_DIR}/ntoskrnl/kd/wrappers/gdbstub.c)
+        if(KDBG)
+            list(APPEND ASM_SOURCE ${REACTOS_SOURCE_DIR}/ntoskrnl/kdbg/i386/kdb_help.S)
+            list(APPEND SOURCE ${REACTOS_SOURCE_DIR}/ntoskrnl/kdbg/i386/i386-dis.c)
+        endif()
+    elseif(ARCH STREQUAL "amd64")
+        list(APPEND SOURCE
+            ${REACTOS_SOURCE_DIR}/ntoskrnl/kd/amd64/kd.c
+            ${REACTOS_SOURCE_DIR}/ntoskrnl/kd/i386/kdbg.c  # Use the x86 file
+            ${REACTOS_SOURCE_DIR}/ntoskrnl/kd/amd64/kdmemsup.c)
+        if(KDBG)
+            list(APPEND ASM_SOURCE ${REACTOS_SOURCE_DIR}/ntoskrnl/kdbg/amd64/kdb_help.S)
+            list(APPEND SOURCE
+                ${REACTOS_SOURCE_DIR}/ntoskrnl/kdbg/amd64/i386-dis.c
+                ${REACTOS_SOURCE_DIR}/ntoskrnl/kdbg/amd64/kdb.c)
+        endif()
+    elseif(ARCH STREQUAL "arm")
+        list(APPEND SOURCE ${REACTOS_SOURCE_DIR}/ntoskrnl/kd/arm/kdbg.c)
+    elseif(ARCH STREQUAL "powerpc")
+        list(APPEND SOURCE ${REACTOS_SOURCE_DIR}/ntoskrnl/kd/wrappers/gdbstub_powerpc.c)
+    endif()
+
+    if(KDBG)
+        list(APPEND SOURCE
+            ${REACTOS_SOURCE_DIR}/ntoskrnl/kdbg/kdb.c
+            ${REACTOS_SOURCE_DIR}/ntoskrnl/kdbg/kdb_cli.c
+            ${REACTOS_SOURCE_DIR}/ntoskrnl/kdbg/kdb_expr.c
+            ${REACTOS_SOURCE_DIR}/ntoskrnl/kdbg/kdb_keyboard.c
+            ${REACTOS_SOURCE_DIR}/ntoskrnl/kdbg/kdb_serial.c
+            ${REACTOS_SOURCE_DIR}/ntoskrnl/kdbg/kdb_symbols.c)
+    endif()
+
+    list(APPEND SOURCE
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/kd/wrappers/bochs.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/kd/wrappers/kdbg.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/kd/kdinit.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/kd/kdio.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/kd/kdmain.c)
+
+else() # _WINKD_
+
+    list(APPEND SOURCE
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/kd64/kdapi.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/kd64/kdbreak.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/kd64/kddata.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/kd64/kdinit.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/kd64/kdlock.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/kd64/kdprint.c
+        ${REACTOS_SOURCE_DIR}/ntoskrnl/kd64/kdtrap.c)
+
+    if(ARCH STREQUAL "i386")
+        list(APPEND SOURCE ${REACTOS_SOURCE_DIR}/ntoskrnl/kd64/i386/kdx86.c)
+    elseif(ARCH STREQUAL "amd64")
+        list(APPEND SOURCE ${REACTOS_SOURCE_DIR}/ntoskrnl/kd64/amd64/kdx64.c)
+    elseif(ARCH STREQUAL "arm")
+        list(APPEND SOURCE ${REACTOS_SOURCE_DIR}/ntoskrnl/kd64/arm/kdarm.c)
+    endif()
+
+endif()
index 3b9e58c..598b60a 100644 (file)
@@ -9,7 +9,6 @@
 
 /* INCLUDES ******************************************************************/
 
-#include "initguid.h"
 #include <ntoskrnl.h>
 #define NDEBUG
 #include <debug.h>