From fae2044a23d373a0a217567d751aed87122ebbb6 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Mon, 16 May 2011 13:12:07 +0000 Subject: [PATCH] [CMAKE] Integrate cmake stuff into trunk Only files added. svn path=/trunk/; revision=51783 --- reactos/CMakeLists.txt | 206 +++ reactos/CMakeMacros.cmake | 178 ++ reactos/PreLoad.cmake | 10 + reactos/base/CMakeLists.txt | 6 + reactos/base/applications/CMakeLists.txt | 37 + .../base/applications/cacls/CMakeLists.txt | 15 + reactos/base/applications/calc/CMakeLists.txt | 22 + .../base/applications/charmap/CMakeLists.txt | 22 + .../base/applications/cmdutils/CMakeLists.txt | 8 + .../cmdutils/dbgprint/CMakeLists.txt | 5 + .../cmdutils/doskey/CMakeLists.txt | 9 + .../applications/cmdutils/find/CMakeLists.txt | 7 + .../cmdutils/hostname/CMakeLists.txt | 7 + .../cmdutils/lodctr/CMakeLists.txt | 8 + .../applications/cmdutils/more/CMakeLists.txt | 6 + .../applications/cmdutils/reg/CMakeLists.txt | 11 + .../cmdutils/xcopy/CMakeLists.txt | 10 + .../base/applications/control/CMakeLists.txt | 9 + .../base/applications/dxdiag/CMakeLists.txt | 33 + .../base/applications/extrac32/CMakeLists.txt | 10 + .../base/applications/findstr/CMakeLists.txt | 10 + .../base/applications/fontview/CMakeLists.txt | 11 + .../base/applications/games/CMakeLists.txt | 4 + .../games/solitaire/CMakeLists.txt | 20 + .../applications/games/spider/CMakeLists.txt | 20 + .../applications/games/winmine/CMakeLists.txt | 15 + reactos/base/applications/hh/CMakeLists.txt | 6 + .../base/applications/iexplore/CMakeLists.txt | 6 + .../base/applications/kbswitch/CMakeLists.txt | 11 + .../kbswitch/kbsdll/CMakeLists.txt | 15 + .../base/applications/logoff/CMakeLists.txt | 15 + .../base/applications/magnify/CMakeLists.txt | 11 + reactos/base/applications/mmc/CMakeLists.txt | 16 + .../base/applications/mplay32/CMakeLists.txt | 9 + .../base/applications/msconfig/CMakeLists.txt | 21 + .../base/applications/mscutils/CMakeLists.txt | 4 + .../mscutils/devmgmt/CMakeLists.txt | 18 + .../mscutils/eventvwr/CMakeLists.txt | 13 + .../mscutils/servman/CMakeLists.txt | 35 + .../base/applications/mspaint/CMakeLists.txt | 21 + .../base/applications/mstsc/CMakeLists.txt | 34 + .../base/applications/network/CMakeLists.txt | 16 + .../applications/network/arp/CMakeLists.txt | 8 + .../applications/network/dwnl/CMakeLists.txt | 16 + .../network/finger/CMakeLists.txt | 15 + .../applications/network/ftp/CMakeLists.txt | 24 + .../network/ipconfig/CMakeLists.txt | 5 + .../applications/network/net/CMakeLists.txt | 15 + .../network/netstat/CMakeLists.txt | 5 + .../network/nslookup/CMakeLists.txt | 9 + .../applications/network/ping/CMakeLists.txt | 16 + .../applications/network/route/CMakeLists.txt | 10 + .../network/telnet/CMakeLists.txt | 32 + .../network/tracert/CMakeLists.txt | 13 + .../applications/network/whois/CMakeLists.txt | 8 + .../base/applications/notepad/CMakeLists.txt | 17 + .../base/applications/rapps/CMakeLists.txt | 35 + .../base/applications/regedit/CMakeLists.txt | 37 + .../applications/regedit/clb/CMakeLists.txt | 14 + .../base/applications/regedt32/CMakeLists.txt | 9 + reactos/base/applications/sc/CMakeLists.txt | 22 + .../screensavers/3dtext/CMakeLists.txt | 16 + .../applications/screensavers/CMakeLists.txt | 3 + .../screensavers/logon/CMakeLists.txt | 12 + .../base/applications/shutdown/CMakeLists.txt | 15 + .../base/applications/sndrec32/CMakeLists.txt | 20 + .../base/applications/sndvol32/CMakeLists.txt | 19 + .../base/applications/taskmgr/CMakeLists.txt | 32 + .../base/applications/winhlp32/CMakeLists.txt | 26 + .../base/applications/winver/CMakeLists.txt | 7 + .../base/applications/wordpad/CMakeLists.txt | 23 + .../base/applications/write/CMakeLists.txt | 7 + reactos/base/services/CMakeLists.txt | 11 + reactos/base/services/audiosrv/CMakeLists.txt | 15 + reactos/base/services/eventlog/CMakeLists.txt | 22 + reactos/base/services/rpcss/CMakeLists.txt | 21 + reactos/base/services/spoolsv/CMakeLists.txt | 10 + reactos/base/services/svchost/CMakeLists.txt | 6 + reactos/base/services/tcpsvcs/CMakeLists.txt | 23 + reactos/base/services/telnetd/CMakeLists.txt | 13 + reactos/base/services/tftpd/CMakeLists.txt | 7 + reactos/base/services/umpnpmgr/CMakeLists.txt | 14 + reactos/base/services/wlansvc/CMakeLists.txt | 11 + reactos/base/setup/CMakeLists.txt | 6 + reactos/base/setup/reactos/CMakeLists.txt | 11 + reactos/base/setup/setup/CMakeLists.txt | 8 + reactos/base/setup/usetup/CMakeLists.txt | 47 + reactos/base/setup/vmwinst/CMakeLists.txt | 21 + reactos/base/setup/welcome/CMakeLists.txt | 8 + reactos/base/shell/CMakeLists.txt | 7 + reactos/base/shell/cmd/CMakeLists.txt | 82 + .../base/shell/explorer-new/CMakeLists.txt | 41 + reactos/base/shell/explorer/CMakeLists.txt | 77 + .../shell/explorer/notifyhook/CMakeLists.txt | 17 + .../shell/explorer/notifyhook/notifyhook.spec | 4 + reactos/base/system/CMakeLists.txt | 15 + reactos/base/system/autochk/CMakeLists.txt | 8 + reactos/base/system/bootok/CMakeLists.txt | 10 + reactos/base/system/expand/CMakeLists.txt | 10 + reactos/base/system/format/CMakeLists.txt | 11 + reactos/base/system/lsass/CMakeLists.txt | 10 + reactos/base/system/msiexec/CMakeLists.txt | 19 + reactos/base/system/regsvr32/CMakeLists.txt | 12 + reactos/base/system/rundll32/CMakeLists.txt | 10 + reactos/base/system/runonce/CMakeLists.txt | 9 + reactos/base/system/services/CMakeLists.txt | 27 + reactos/base/system/smss/CMakeLists.txt | 38 + reactos/base/system/subst/CMakeLists.txt | 11 + reactos/base/system/userinit/CMakeLists.txt | 12 + reactos/base/system/winlogon/CMakeLists.txt | 19 + reactos/baseaddress.cmake | 261 +++ reactos/boot/CMakeLists.txt | 37 + reactos/boot/bootdata/CMakeLists.txt | 47 + reactos/boot/bootdata/packages/CMakeLists.txt | 45 + reactos/boot/bootdata/packages/reactos.dff.in | 56 + reactos/boot/freeldr/CMakeLists.txt | 3 + reactos/boot/freeldr/bootsect/CMakeLists.txt | 14 + reactos/boot/freeldr/freeldr/CMakeLists.txt | 243 +++ .../boot/freeldr/freeldr/arch/i386/fathelp.S | 239 +++ .../boot/freeldr/freeldr/arch/i386/realmode.S | 80 + reactos/cmake/CMakeParseArguments.cmake | 138 ++ reactos/cmake/Platform/Windows-cl.cmake | 276 +++ reactos/cmake/Platform/Windows.cmake | 36 + reactos/cmake/idl-support.cmake | 159 ++ reactos/config-amd64.cmake | 43 + reactos/config-arm.cmake | 46 + reactos/config.cmake | 51 + reactos/configure.cmd | 145 ++ reactos/dll/3rdparty/CMakeLists.txt | 11 + reactos/dll/3rdparty/dxtn/CMakeLists.txt | 19 + reactos/dll/3rdparty/libjpeg/CMakeLists.txt | 73 + reactos/dll/3rdparty/libpng/CMakeLists.txt | 39 + reactos/dll/3rdparty/libtiff/CMakeLists.txt | 62 + reactos/dll/3rdparty/libxslt/CMakeLists.txt | 46 + reactos/dll/3rdparty/mesa32/CMakeLists.txt | 272 +++ reactos/dll/CMakeLists.txt | 9 + reactos/dll/cpl/CMakeLists.txt | 19 + reactos/dll/cpl/access/CMakeLists.txt | 27 + reactos/dll/cpl/appwiz/CMakeLists.txt | 26 + reactos/dll/cpl/console/CMakeLists.txt | 27 + reactos/dll/cpl/desk/CMakeLists.txt | 50 + reactos/dll/cpl/hdwwiz/CMakeLists.txt | 23 + reactos/dll/cpl/input/CMakeLists.txt | 26 + reactos/dll/cpl/intl/CMakeLists.txt | 35 + reactos/dll/cpl/joy/CMakeLists.txt | 22 + reactos/dll/cpl/main/CMakeLists.txt | 29 + reactos/dll/cpl/mmsys/CMakeLists.txt | 34 + reactos/dll/cpl/ncpa/CMakeLists.txt | 16 + reactos/dll/cpl/odbccp32/CMakeLists.txt | 11 + reactos/dll/cpl/powercfg/CMakeLists.txt | 28 + reactos/dll/cpl/sysdm/CMakeLists.txt | 41 + reactos/dll/cpl/telephon/CMakeLists.txt | 22 + reactos/dll/cpl/timedate/CMakeLists.txt | 30 + reactos/dll/cpl/usrmgr/CMakeLists.txt | 34 + reactos/dll/directx/CMakeLists.txt | 26 + reactos/dll/directx/amstream/CMakeLists.txt | 36 + reactos/dll/directx/d3d8thk/CMakeLists.txt | 12 + reactos/dll/directx/devenum/CMakeLists.txt | 38 + reactos/dll/directx/dinput/CMakeLists.txt | 41 + reactos/dll/directx/dinput8/CMakeLists.txt | 36 + reactos/dll/directx/dmusic/CMakeLists.txt | 44 + reactos/dll/directx/dplay/CMakeLists.txt | 31 + reactos/dll/directx/dplayx/CMakeLists.txt | 40 + reactos/dll/directx/dsound/CMakeLists.txt | 43 + reactos/dll/directx/dxdiagn/CMakeLists.txt | 28 + reactos/dll/directx/ksproxy/CMakeLists.txt | 55 + reactos/dll/directx/ksuser/CMakeLists.txt | 11 + reactos/dll/directx/msdmo/CMakeLists.txt | 29 + reactos/dll/directx/qedit/CMakeLists.txt | 38 + reactos/dll/directx/quartz/CMakeLists.txt | 75 + reactos/dll/directx/wine/CMakeLists.txt | 24 + reactos/dll/directx/wine/d3d8/CMakeLists.txt | 51 + reactos/dll/directx/wine/d3d9/CMakeLists.txt | 55 + .../dll/directx/wine/d3dx9_24/CMakeLists.txt | 34 + .../dll/directx/wine/d3dx9_25/CMakeLists.txt | 35 + .../dll/directx/wine/d3dx9_26/CMakeLists.txt | 34 + .../dll/directx/wine/d3dx9_27/CMakeLists.txt | 34 + .../dll/directx/wine/d3dx9_28/CMakeLists.txt | 34 + .../dll/directx/wine/d3dx9_29/CMakeLists.txt | 34 + .../dll/directx/wine/d3dx9_30/CMakeLists.txt | 34 + .../dll/directx/wine/d3dx9_31/CMakeLists.txt | 33 + .../dll/directx/wine/d3dx9_32/CMakeLists.txt | 33 + .../dll/directx/wine/d3dx9_33/CMakeLists.txt | 33 + .../dll/directx/wine/d3dx9_34/CMakeLists.txt | 33 + .../dll/directx/wine/d3dx9_35/CMakeLists.txt | 32 + .../dll/directx/wine/d3dx9_36/CMakeLists.txt | 42 + .../dll/directx/wine/d3dx9_37/CMakeLists.txt | 32 + .../dll/directx/wine/d3dx9_38/CMakeLists.txt | 32 + .../dll/directx/wine/d3dx9_39/CMakeLists.txt | 32 + .../dll/directx/wine/d3dx9_40/CMakeLists.txt | 32 + .../dll/directx/wine/d3dx9_41/CMakeLists.txt | 32 + .../dll/directx/wine/d3dx9_42/CMakeLists.txt | 32 + reactos/dll/directx/wine/ddraw/CMakeLists.txt | 58 + .../dll/directx/wine/wined3d/CMakeLists.txt | 78 + reactos/dll/keyboard/CMakeLists.txt | 80 + reactos/dll/keyboard/kbda1/CMakeLists.txt | 12 + reactos/dll/keyboard/kbda2/CMakeLists.txt | 12 + reactos/dll/keyboard/kbda3/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdal/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdarme/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdarmw/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdaze/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdazel/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdbe/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdbga/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdbgm/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdbgt/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdblr/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdbr/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdbur/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdcan/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdcr/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdcz/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdcz1/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdda/CMakeLists.txt | 12 + reactos/dll/keyboard/kbddv/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdes/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdest/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdfc/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdfi/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdfr/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdgeo/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdgerg/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdgneo/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdgr/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdgrist/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdhe/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdheb/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdhu/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdic/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdinasa/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdinben/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdindev/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdinguj/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdinmal/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdir/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdit/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdja/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdkaz/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdko/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdla/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdlt1/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdlv/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdmac/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdne/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdno/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdpl1/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdpo/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdro/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdru/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdru1/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdsg/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdsk/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdsk1/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdsw/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdtat/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdth0/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdth1/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdth2/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdth3/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdtuf/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdtuq/CMakeLists.txt | 12 + reactos/dll/keyboard/kbduk/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdur/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdurs/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdus/CMakeLists.txt | 11 + reactos/dll/keyboard/kbdusa/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdusl/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdusr/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdusx/CMakeLists.txt | 12 + reactos/dll/keyboard/kbduzb/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdvntc/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdycc/CMakeLists.txt | 12 + reactos/dll/keyboard/kbdycl/CMakeLists.txt | 12 + reactos/dll/nls/CMakeLists.txt | 3 + reactos/dll/nls/idndl/CMakeLists.txt | 21 + reactos/dll/nls/normaliz/CMakeLists.txt | 10 + reactos/dll/nls/normaliz/normaliz.spec | 6 + reactos/dll/ntdll/CMakeLists.txt | 62 + reactos/dll/ntdll/def/ntdll.spec | 1431 +++++++++++++++ reactos/dll/shellext/CMakeLists.txt | 6 + reactos/dll/shellext/deskadp/CMakeLists.txt | 29 + reactos/dll/shellext/deskmon/CMakeLists.txt | 30 + reactos/dll/shellext/devcpux/CMakeLists.txt | 19 + reactos/dll/shellext/fontext/CMakeLists.txt | 28 + reactos/dll/shellext/slayer/CMakeLists.txt | 30 + reactos/dll/win32/CMakeLists.txt | 230 +++ reactos/dll/win32/acledit/CMakeLists.txt | 17 + reactos/dll/win32/aclui/CMakeLists.txt | 29 + reactos/dll/win32/activeds/CMakeLists.txt | 21 + reactos/dll/win32/actxprxy/CMakeLists.txt | 52 + reactos/dll/win32/advapi32/CMakeLists.txt | 65 + reactos/dll/win32/advpack/CMakeLists.txt | 22 + reactos/dll/win32/atl/CMakeLists.txt | 43 + reactos/dll/win32/authz/CMakeLists.txt | 23 + reactos/dll/win32/avicap32/CMakeLists.txt | 18 + reactos/dll/win32/avifil32/CMakeLists.txt | 46 + reactos/dll/win32/batt/CMakeLists.txt | 18 + reactos/dll/win32/bcrypt/CMakeLists.txt | 21 + reactos/dll/win32/beepmidi/CMakeLists.txt | 17 + reactos/dll/win32/browseui/CMakeLists.txt | 65 + reactos/dll/win32/cabinet/CMakeLists.txt | 26 + reactos/dll/win32/cards/CMakeLists.txt | 21 + reactos/dll/win32/cfgmgr32/CMakeLists.txt | 14 + reactos/dll/win32/clusapi/CMakeLists.txt | 22 + reactos/dll/win32/comcat/CMakeLists.txt | 25 + reactos/dll/win32/comctl32/CMakeLists.txt | 75 + reactos/dll/win32/comdlg32/CMakeLists.txt | 46 + reactos/dll/win32/compstui/CMakeLists.txt | 20 + reactos/dll/win32/credui/CMakeLists.txt | 24 + reactos/dll/win32/crtdll/CMakeLists.txt | 35 + reactos/dll/win32/crtdll/crtdll.def | 530 ++++++ reactos/dll/win32/crypt32/CMakeLists.txt | 59 + reactos/dll/win32/cryptdlg/CMakeLists.txt | 31 + reactos/dll/win32/cryptdll/CMakeLists.txt | 18 + reactos/dll/win32/cryptnet/CMakeLists.txt | 26 + reactos/dll/win32/cryptui/CMakeLists.txt | 39 + reactos/dll/win32/dbghelp/CMakeLists.txt | 60 + reactos/dll/win32/dciman32/CMakeLists.txt | 20 + reactos/dll/win32/devmgr/CMakeLists.txt | 35 + reactos/dll/win32/dhcpcsvc/CMakeLists.txt | 37 + reactos/dll/win32/dnsapi/CMakeLists.txt | 39 + reactos/dll/win32/dwmapi/CMakeLists.txt | 21 + reactos/dll/win32/dwmapi/dwmapi_ros.diff | 48 + reactos/dll/win32/faultrep/CMakeLists.txt | 20 + reactos/dll/win32/fmifs/CMakeLists.txt | 25 + reactos/dll/win32/fusion/CMakeLists.txt | 25 + reactos/dll/win32/gdi32/CMakeLists.txt | 64 + reactos/dll/win32/gdiplus/CMakeLists.txt | 54 + reactos/dll/win32/getuname/CMakeLists.txt | 16 + reactos/dll/win32/glu32/CMakeLists.txt | 124 ++ reactos/dll/win32/hhctrl.ocx/CMakeLists.txt | 41 + reactos/dll/win32/hid/CMakeLists.txt | 20 + reactos/dll/win32/hlink/CMakeLists.txt | 31 + reactos/dll/win32/hnetcfg/CMakeLists.txt | 35 + reactos/dll/win32/httpapi/CMakeLists.txt | 18 + reactos/dll/win32/iccvid/CMakeLists.txt | 20 + reactos/dll/win32/icmp/CMakeLists.txt | 21 + reactos/dll/win32/imaadp32.acm/CMakeLists.txt | 23 + reactos/dll/win32/imagehlp/CMakeLists.txt | 32 + reactos/dll/win32/imm32/CMakeLists.txt | 29 + reactos/dll/win32/inetcomm/CMakeLists.txt | 40 + reactos/dll/win32/inetmib1/CMakeLists.txt | 28 + reactos/dll/win32/initpki/CMakeLists.txt | 18 + reactos/dll/win32/inseng/CMakeLists.txt | 30 + reactos/dll/win32/iphlpapi/CMakeLists.txt | 33 + reactos/dll/win32/itircl/CMakeLists.txt | 20 + reactos/dll/win32/itss/CMakeLists.txt | 39 + reactos/dll/win32/jscript/CMakeLists.txt | 64 + reactos/dll/win32/kernel32/CMakeLists.txt | 125 ++ reactos/dll/win32/kernel32/kernel32.spec | 1456 +++++++++++++++ reactos/dll/win32/loadperf/CMakeLists.txt | 16 + reactos/dll/win32/localspl/CMakeLists.txt | 35 + reactos/dll/win32/localui/CMakeLists.txt | 21 + reactos/dll/win32/lpk/CMakeLists.txt | 21 + reactos/dll/win32/lsasrv/CMakeLists.txt | 34 + reactos/dll/win32/lz32/CMakeLists.txt | 19 + reactos/dll/win32/mapi32/CMakeLists.txt | 26 + reactos/dll/win32/mciavi32/CMakeLists.txt | 20 + reactos/dll/win32/mcicda/CMakeLists.txt | 17 + reactos/dll/win32/mciqtz32/CMakeLists.txt | 18 + reactos/dll/win32/mciseq/CMakeLists.txt | 17 + reactos/dll/win32/mciwave/CMakeLists.txt | 21 + reactos/dll/win32/mlang/CMakeLists.txt | 36 + reactos/dll/win32/mmdrv/CMakeLists.txt | 23 + reactos/dll/win32/modemui/CMakeLists.txt | 17 + reactos/dll/win32/mpr/CMakeLists.txt | 30 + reactos/dll/win32/mpr/mpr_ros.diff | 47 + reactos/dll/win32/mprapi/CMakeLists.txt | 17 + reactos/dll/win32/msacm32/CMakeLists.txt | 34 + .../win32/msacm32/msacm32.drv/CMakeLists.txt | 18 + reactos/dll/win32/msadp32.acm/CMakeLists.txt | 21 + reactos/dll/win32/msafd/CMakeLists.txt | 28 + reactos/dll/win32/mscat32/CMakeLists.txt | 17 + reactos/dll/win32/mscms/CMakeLists.txt | 25 + reactos/dll/win32/mscoree/CMakeLists.txt | 18 + reactos/dll/win32/msctf/CMakeLists.txt | 37 + reactos/dll/win32/msftedit/CMakeLists.txt | 21 + reactos/dll/win32/msg711.acm/CMakeLists.txt | 22 + reactos/dll/win32/msgina/CMakeLists.txt | 24 + reactos/dll/win32/msgsm32.acm/CMakeLists.txt | 23 + reactos/dll/win32/mshtml.tlb/CMakeLists.txt | 14 + reactos/dll/win32/mshtml/CMakeLists.txt | 108 ++ reactos/dll/win32/msi/CMakeLists.txt | 99 + reactos/dll/win32/msimg32/CMakeLists.txt | 17 + reactos/dll/win32/msimtf/CMakeLists.txt | 22 + reactos/dll/win32/msisip/CMakeLists.txt | 18 + reactos/dll/win32/msisys.ocx/CMakeLists.txt | 16 + reactos/dll/win32/msnet32/CMakeLists.txt | 15 + reactos/dll/win32/msrle32/CMakeLists.txt | 22 + reactos/dll/win32/mssign32/CMakeLists.txt | 20 + reactos/dll/win32/mssip32/CMakeLists.txt | 20 + reactos/dll/win32/mstask/CMakeLists.txt | 37 + reactos/dll/win32/msvcrt/CMakeLists.txt | 45 + reactos/dll/win32/msvcrt20/CMakeLists.txt | 20 + reactos/dll/win32/msvcrt40/CMakeLists.txt | 21 + reactos/dll/win32/msvfw32/CMakeLists.txt | 27 + reactos/dll/win32/msvidc32/CMakeLists.txt | 20 + reactos/dll/win32/mswsock/CMakeLists.txt | 20 + reactos/dll/win32/msxml3/CMakeLists.txt | 84 + reactos/dll/win32/msxml3/msxml3_ros.diff | 22 + reactos/dll/win32/nddeapi/CMakeLists.txt | 19 + reactos/dll/win32/netapi32/CMakeLists.txt | 32 + reactos/dll/win32/netcfgx/CMakeLists.txt | 27 + reactos/dll/win32/netevent/CMakeLists.txt | 13 + reactos/dll/win32/netid/CMakeLists.txt | 14 + reactos/dll/win32/netid/netid.def | 5 + reactos/dll/win32/netshell/CMakeLists.txt | 47 + reactos/dll/win32/newdev/CMakeLists.txt | 23 + reactos/dll/win32/ntdsapi/CMakeLists.txt | 20 + reactos/dll/win32/ntlanman/CMakeLists.txt | 20 + reactos/dll/win32/ntmarta/CMakeLists.txt | 27 + reactos/dll/win32/ntprint/CMakeLists.txt | 21 + reactos/dll/win32/objsel/CMakeLists.txt | 32 + reactos/dll/win32/odbc32/CMakeLists.txt | 27 + reactos/dll/win32/odbccp32/CMakeLists.txt | 27 + reactos/dll/win32/ole32/CMakeLists.txt | 90 + reactos/dll/win32/oleacc/CMakeLists.txt | 23 + reactos/dll/win32/oleaut32/CMakeLists.txt | 68 + reactos/dll/win32/olecli32/CMakeLists.txt | 20 + reactos/dll/win32/oledlg/CMakeLists.txt | 20 + reactos/dll/win32/olepro32/CMakeLists.txt | 23 + reactos/dll/win32/olesvr32/CMakeLists.txt | 22 + reactos/dll/win32/olethk32/CMakeLists.txt | 22 + reactos/dll/win32/opengl32/CMakeLists.txt | 34 + reactos/dll/win32/pdh/CMakeLists.txt | 24 + reactos/dll/win32/pidgen/CMakeLists.txt | 22 + reactos/dll/win32/powrprof/CMakeLists.txt | 17 + reactos/dll/win32/printui/CMakeLists.txt | 21 + reactos/dll/win32/psapi/CMakeLists.txt | 19 + reactos/dll/win32/pstorec/CMakeLists.txt | 22 + reactos/dll/win32/qmgr/CMakeLists.txt | 32 + reactos/dll/win32/qmgrprxy/CMakeLists.txt | 26 + reactos/dll/win32/query/CMakeLists.txt | 22 + reactos/dll/win32/rasadhlp/CMakeLists.txt | 19 + reactos/dll/win32/rasapi32/CMakeLists.txt | 21 + reactos/dll/win32/rasdlg/CMakeLists.txt | 21 + reactos/dll/win32/rasman/CMakeLists.txt | 20 + reactos/dll/win32/resutils/CMakeLists.txt | 20 + reactos/dll/win32/riched20/CMakeLists.txt | 55 + reactos/dll/win32/riched20/msvc-thiscall.c | 124 ++ reactos/dll/win32/riched20/msvc.h | 138 ++ reactos/dll/win32/riched32/CMakeLists.txt | 17 + reactos/dll/win32/rpcrt4/CMakeLists.txt | 53 + reactos/dll/win32/rsabase/CMakeLists.txt | 16 + reactos/dll/win32/rsaenh/CMakeLists.txt | 31 + reactos/dll/win32/samlib/CMakeLists.txt | 22 + reactos/dll/win32/samsrv/CMakeLists.txt | 16 + reactos/dll/win32/sccbase/CMakeLists.txt | 20 + reactos/dll/win32/schannel/CMakeLists.txt | 23 + reactos/dll/win32/secur32/CMakeLists.txt | 29 + reactos/dll/win32/security/CMakeLists.txt | 16 + reactos/dll/win32/sensapi/CMakeLists.txt | 17 + reactos/dll/win32/serialui/CMakeLists.txt | 15 + reactos/dll/win32/setupapi/CMakeLists.txt | 63 + reactos/dll/win32/sfc/CMakeLists.txt | 18 + reactos/dll/win32/sfc_os/CMakeLists.txt | 18 + reactos/dll/win32/shdoclc/CMakeLists.txt | 17 + reactos/dll/win32/shdocvw/CMakeLists.txt | 58 + reactos/dll/win32/shell32/CMakeLists.txt | 106 ++ reactos/dll/win32/shfolder/CMakeLists.txt | 18 + reactos/dll/win32/shimgvw/CMakeLists.txt | 27 + reactos/dll/win32/shlwapi/CMakeLists.txt | 57 + reactos/dll/win32/slbcsp/CMakeLists.txt | 20 + reactos/dll/win32/smdll/CMakeLists.txt | 18 + reactos/dll/win32/sndblst/CMakeLists.txt | 18 + reactos/dll/win32/snmpapi/CMakeLists.txt | 26 + reactos/dll/win32/softpub/CMakeLists.txt | 16 + reactos/dll/win32/spoolss/CMakeLists.txt | 22 + reactos/dll/win32/srclient/CMakeLists.txt | 15 + reactos/dll/win32/stdole2.tlb/CMakeLists.txt | 18 + reactos/dll/win32/stdole32.tlb/CMakeLists.txt | 19 + reactos/dll/win32/sti/CMakeLists.txt | 42 + reactos/dll/win32/sxs/CMakeLists.txt | 20 + reactos/dll/win32/syssetup/CMakeLists.txt | 42 + reactos/dll/win32/t2embed/CMakeLists.txt | 22 + reactos/dll/win32/tapi32/CMakeLists.txt | 24 + reactos/dll/win32/tapiui/CMakeLists.txt | 7 + reactos/dll/win32/traffic/CMakeLists.txt | 20 + reactos/dll/win32/twain_32/CMakeLists.txt | 21 + reactos/dll/win32/uext2/CMakeLists.txt | 14 + reactos/dll/win32/ufat/CMakeLists.txt | 14 + reactos/dll/win32/ufatx/CMakeLists.txt | 16 + reactos/dll/win32/unicows/CMakeLists.txt | 29 + reactos/dll/win32/untfs/CMakeLists.txt | 14 + reactos/dll/win32/updspapi/CMakeLists.txt | 20 + reactos/dll/win32/url/CMakeLists.txt | 20 + reactos/dll/win32/urlmon/CMakeLists.txt | 77 + reactos/dll/win32/user32/CMakeLists.txt | 84 + reactos/dll/win32/user32/user32.spec | 777 ++++++++ reactos/dll/win32/userenv/CMakeLists.txt | 32 + reactos/dll/win32/usp10/CMakeLists.txt | 25 + reactos/dll/win32/uxtheme/CMakeLists.txt | 31 + reactos/dll/win32/vdmdbg/CMakeLists.txt | 17 + reactos/dll/win32/version/CMakeLists.txt | 22 + reactos/dll/win32/wdmaud.drv/CMakeLists.txt | 34 + .../dll/win32/windowscodecs/CMakeLists.txt | 49 + reactos/dll/win32/winemp3.acm/CMakeLists.txt | 34 + reactos/dll/win32/winfax/CMakeLists.txt | 15 + reactos/dll/win32/wing32/CMakeLists.txt | 16 + reactos/dll/win32/winhttp/CMakeLists.txt | 23 + reactos/dll/win32/wininet/CMakeLists.txt | 37 + reactos/dll/win32/winmm/CMakeLists.txt | 36 + .../dll/win32/winmm/midimap/CMakeLists.txt | 18 + reactos/dll/win32/winspool/CMakeLists.txt | 25 + reactos/dll/win32/winsta/CMakeLists.txt | 23 + reactos/dll/win32/wintrust/CMakeLists.txt | 31 + reactos/dll/win32/wlanapi/CMakeLists.txt | 24 + reactos/dll/win32/wldap32/CMakeLists.txt | 41 + reactos/dll/win32/wmi/CMakeLists.txt | 14 + reactos/dll/win32/ws2_32/CMakeLists.txt | 36 + reactos/dll/win32/ws2_32_new/CMakeLists.txt | 55 + reactos/dll/win32/ws2help/CMakeLists.txt | 19 + reactos/dll/win32/wshirda/CMakeLists.txt | 15 + reactos/dll/win32/wshtcpip/CMakeLists.txt | 20 + reactos/dll/win32/wsock32/CMakeLists.txt | 10 + reactos/dll/win32/wsock32/wsock32.spec | 84 + reactos/dll/win32/wtsapi32/CMakeLists.txt | 20 + reactos/dll/win32/wuapi/CMakeLists.txt | 28 + reactos/dll/win32/xinput1_1/CMakeLists.txt | 16 + reactos/dll/win32/xinput1_2/CMakeLists.txt | 16 + reactos/dll/win32/xinput1_3/CMakeLists.txt | 18 + reactos/dll/win32/xinput9_1_0/CMakeLists.txt | 16 + reactos/dll/win32/xmllite/CMakeLists.txt | 22 + reactos/drivers/CMakeLists.txt | 17 + reactos/drivers/base/CMakeLists.txt | 12 + reactos/drivers/base/beep/CMakeLists.txt | 5 + reactos/drivers/base/bootvid/CMakeLists.txt | 29 + reactos/drivers/base/kdcom/CMakeLists.txt | 23 + reactos/drivers/base/kddll/CMakeLists.txt | 17 + reactos/drivers/base/kddll/kdcom.spec | 8 + reactos/drivers/base/nmidebug/CMakeLists.txt | 7 + reactos/drivers/base/null/CMakeLists.txt | 9 + reactos/drivers/battery/CMakeLists.txt | 2 + reactos/drivers/battery/battc/CMakeLists.txt | 15 + reactos/drivers/bus/CMakeLists.txt | 6 + reactos/drivers/bus/acpi/CMakeLists.txt | 153 ++ .../drivers/bus/acpi/cmbatt/CMakeLists.txt | 17 + .../drivers/bus/acpi/compbatt/CMakeLists.txt | 15 + reactos/drivers/bus/isapnp/CMakeLists.txt | 12 + reactos/drivers/bus/pci/CMakeLists.txt | 11 + reactos/drivers/bus/pcix/CMakeLists.txt | 47 + reactos/drivers/bus/pcmcia/CMakeLists.txt | 11 + reactos/drivers/directx/CMakeLists.txt | 4 + reactos/drivers/directx/dxapi/CMakeLists.txt | 14 + reactos/drivers/directx/dxg/CMakeLists.txt | 15 + reactos/drivers/directx/dxgthk/CMakeLists.txt | 16 + reactos/drivers/filesystems/CMakeLists.txt | 10 + .../drivers/filesystems/cdfs/CMakeLists.txt | 27 + .../drivers/filesystems/ext2/CMakeLists.txt | 31 + .../filesystems/fastfat/CMakeLists.txt | 33 + .../filesystems/fastfat_new/CMakeLists.txt | 37 + .../drivers/filesystems/fs_rec/CMakeLists.txt | 15 + .../drivers/filesystems/msfs/CMakeLists.txt | 17 + .../drivers/filesystems/mup/CMakeLists.txt | 10 + .../drivers/filesystems/npfs/CMakeLists.txt | 19 + .../drivers/filesystems/ntfs/CMakeLists.txt | 27 + reactos/drivers/input/CMakeLists.txt | 5 + reactos/drivers/input/i8042prt/CMakeLists.txt | 20 + reactos/drivers/input/kbdclass/CMakeLists.txt | 14 + reactos/drivers/input/mouclass/CMakeLists.txt | 13 + reactos/drivers/input/sermouse/CMakeLists.txt | 15 + reactos/drivers/ksfilter/CMakeLists.txt | 3 + reactos/drivers/ksfilter/ks/CMakeLists.txt | 48 + .../drivers/ksfilter/swenum/CMakeLists.txt | 10 + reactos/drivers/network/CMakeLists.txt | 6 + reactos/drivers/network/afd/CMakeLists.txt | 29 + reactos/drivers/network/dd/CMakeLists.txt | 3 + .../drivers/network/dd/ne2000/CMakeLists.txt | 14 + .../drivers/network/dd/pcnet/CMakeLists.txt | 18 + reactos/drivers/network/ndis/CMakeLists.txt | 46 + reactos/drivers/network/tcpip/CMakeLists.txt | 42 + reactos/drivers/network/tdi/CMakeLists.txt | 30 + reactos/drivers/parallel/CMakeLists.txt | 2 + .../drivers/parallel/parallel/CMakeLists.txt | 5 + reactos/drivers/serial/CMakeLists.txt | 3 + reactos/drivers/serial/serenum/CMakeLists.txt | 13 + reactos/drivers/serial/serial/CMakeLists.txt | 20 + reactos/drivers/setup/CMakeLists.txt | 2 + reactos/drivers/setup/blue/CMakeLists.txt | 9 + reactos/drivers/storage/CMakeLists.txt | 7 + reactos/drivers/storage/class/CMakeLists.txt | 5 + .../storage/class/cdrom/CMakeLists.txt | 13 + .../storage/class/class2/CMakeLists.txt | 18 + .../drivers/storage/class/disk/CMakeLists.txt | 13 + .../storage/class/ramdisk/CMakeLists.txt | 11 + .../drivers/storage/classpnp/CMakeLists.txt | 46 + reactos/drivers/storage/floppy/CMakeLists.txt | 15 + reactos/drivers/storage/ide/CMakeLists.txt | 5 + .../drivers/storage/ide/atapi/CMakeLists.txt | 9 + .../drivers/storage/ide/pciide/CMakeLists.txt | 7 + .../storage/ide/pciidex/CMakeLists.txt | 19 + .../drivers/storage/ide/uniata/CMakeLists.txt | 21 + reactos/drivers/storage/port/CMakeLists.txt | 2 + .../storage/port/buslogic/CMakeLists.txt | 11 + .../drivers/storage/scsiport/CMakeLists.txt | 17 + .../drivers/storage/scsiport/scsiport.spec | 70 + reactos/drivers/usb/CMakeLists.txt | 6 + reactos/drivers/usb/nt4compat/CMakeLists.txt | 2 + .../usb/nt4compat/usbdriver/CMakeLists.txt | 35 + reactos/drivers/usb/usbd/CMakeLists.txt | 11 + reactos/drivers/usb/usbehci/CMakeLists.txt | 21 + reactos/drivers/usb/usbhub/CMakeLists.txt | 15 + reactos/drivers/usb/usbstor/CMakeLists.txt | 10 + reactos/drivers/video/CMakeLists.txt | 5 + reactos/drivers/video/displays/CMakeLists.txt | 4 + .../video/displays/framebuf/CMakeLists.txt | 19 + .../displays/framebuf_new/CMakeLists.txt | 31 + .../drivers/video/displays/vga/CMakeLists.txt | 25 + reactos/drivers/video/font/CMakeLists.txt | 3 + .../drivers/video/font/bmfd/CMakeLists.txt | 14 + .../drivers/video/font/ftfd/CMakeLists.txt | 25 + reactos/drivers/video/font/ftfd/ftfd.spec | 28 + reactos/drivers/video/miniport/CMakeLists.txt | 6 + .../drivers/video/miniport/vbe/CMakeLists.txt | 12 + .../drivers/video/miniport/vga/CMakeLists.txt | 13 + .../video/miniport/vga_new/CMakeLists.txt | 25 + .../video/miniport/vmx_svga/CMakeLists.txt | 9 + .../video/miniport/xboxvmp/CMakeLists.txt | 4 + reactos/drivers/video/videoprt/CMakeLists.txt | 33 + reactos/drivers/wdm/CMakeLists.txt | 2 + reactos/drivers/wdm/audio/CMakeLists.txt | 6 + .../drivers/wdm/audio/backpln/CMakeLists.txt | 3 + .../audio/backpln/audio_test/CMakeLists.txt | 16 + .../wdm/audio/backpln/portcls/CMakeLists.txt | 73 + reactos/drivers/wdm/audio/drm/CMakeLists.txt | 2 + .../drivers/wdm/audio/drm/drmk/CMakeLists.txt | 29 + .../drivers/wdm/audio/filters/CMakeLists.txt | 2 + .../wdm/audio/filters/kmixer/CMakeLists.txt | 17 + .../drivers/wdm/audio/legacy/CMakeLists.txt | 2 + .../wdm/audio/legacy/wdmaud/CMakeLists.txt | 26 + .../drivers/wdm/audio/sysaudio/CMakeLists.txt | 18 + reactos/drivers/wmi/CMakeLists.txt | 28 + reactos/gcc.cmake | 338 ++++ reactos/global.lds | 103 ++ reactos/hal/CMakeLists.txt | 8 + reactos/hal/hal.spec | 100 ++ reactos/hal/halx86/CMakeLists.txt | 115 ++ reactos/importlibs/.gitignore | 0 reactos/include/asm/CMakeLists.txt | 25 + reactos/include/asm/asm.inc | 289 +++ reactos/include/asm/genincdata.c | 81 + reactos/include/asm/ks386.template.h | 468 +++++ reactos/include/asm/ksamd64.template.h | 581 ++++++ reactos/include/asm/ksx.template.h | 761 ++++++++ reactos/include/asm/syscalls.inc | 94 + reactos/include/dxsdk/CMakeLists.txt | 29 + reactos/include/host/config.h | 145 ++ reactos/include/host/debug.h | 6 + reactos/include/host/guiddef.h | 1 + reactos/include/host/wine/list.h | 1 + reactos/include/host/wine/port.h | 1 + reactos/include/host/wine/rpcfc.h | 1 + reactos/include/host/wine/wpp.h | 36 + reactos/include/psdk/CMakeLists.txt | 115 ++ reactos/include/reactos/buildno.h.cmake | 18 + reactos/include/reactos/idl/CMakeLists.txt | 12 + reactos/include/reactos/mc/CMakeLists.txt | 9 + reactos/include/reactos/msvchelper.h | 32 + reactos/include/reactos/version.cmake | 64 + reactos/include/reactos/version.h.cmake | 31 + reactos/include/reactos/wine/CMakeLists.txt | 9 + reactos/include/reactos/wine/alloca.h | 2 + reactos/include/reactos/wine/math.h | 26 + reactos/lib/3rdparty/CMakeLists.txt | 15 + reactos/lib/3rdparty/adns/CMakeLists.txt | 24 + reactos/lib/3rdparty/bzip2/CMakeLists.txt | 20 + reactos/lib/3rdparty/cardlib/CMakeLists.txt | 18 + reactos/lib/3rdparty/expat/CMakeLists.txt | 13 + reactos/lib/3rdparty/freetype/CMakeLists.txt | 52 + reactos/lib/3rdparty/fullfat/CMakeLists.txt | 20 + reactos/lib/3rdparty/icu4ros/CMakeLists.txt | 52 + reactos/lib/3rdparty/libmpg123/CMakeLists.txt | 43 + .../lib/3rdparty/libsamplerate/CMakeLists.txt | 9 + reactos/lib/3rdparty/libwine/CMakeLists.txt | 13 + reactos/lib/3rdparty/libxml2/CMakeLists.txt | 63 + reactos/lib/3rdparty/mingw/CMakeLists.txt | 78 + reactos/lib/3rdparty/mingw/mscmain.c | 43 + reactos/lib/3rdparty/zlib/CMakeLists.txt | 25 + reactos/lib/CMakeLists.txt | 30 + reactos/lib/atl/CMakeLists.txt | 8 + reactos/lib/cmlib/CMakeLists.txt | 25 + reactos/lib/cportlib/CMakeLists.txt | 2 + reactos/lib/dnslib/CMakeLists.txt | 26 + reactos/lib/drivers/CMakeLists.txt | 6 + reactos/lib/drivers/chew/CMakeLists.txt | 4 + reactos/lib/drivers/csq/CMakeLists.txt | 4 + reactos/lib/drivers/ip/CMakeLists.txt | 35 + reactos/lib/drivers/oskittcp/CMakeLists.txt | 51 + reactos/lib/drivers/sound/CMakeLists.txt | 8 + .../lib/drivers/sound/legacy/CMakeLists.txt | 11 + .../lib/drivers/sound/mmebuddy/CMakeLists.txt | 29 + .../lib/drivers/sound/mment4/CMakeLists.txt | 14 + .../lib/drivers/sound/mmixer/CMakeLists.txt | 19 + .../lib/drivers/sound/shared/CMakeLists.txt | 11 + .../drivers/sound/soundblaster/CMakeLists.txt | 16 + .../lib/drivers/sound/uartmidi/CMakeLists.txt | 11 + reactos/lib/epsapi/CMakeLists.txt | 8 + reactos/lib/fslib/CMakeLists.txt | 5 + reactos/lib/fslib/ext2lib/CMakeLists.txt | 13 + reactos/lib/fslib/ntfslib/CMakeLists.txt | 4 + reactos/lib/fslib/vfatlib/CMakeLists.txt | 15 + reactos/lib/fslib/vfatxlib/CMakeLists.txt | 4 + reactos/lib/host/wcsfuncs/CMakeLists.txt | 2 + reactos/lib/inflib/CMakeLists.txt | 15 + reactos/lib/lsalib/CMakeLists.txt | 3 + reactos/lib/newinflib/CMakeLists.txt | 28 + reactos/lib/nls/CMakeLists.txt | 4 + reactos/lib/nls/idna/CMakeLists.txt | 8 + reactos/lib/nls/normalize/CMakeLists.txt | 8 + reactos/lib/nls/scripts/CMakeLists.txt | 8 + reactos/lib/ppcmmu/CMakeLists.txt | 8 + reactos/lib/pseh/CMakeLists.txt | 29 + reactos/lib/pseh/dummy.c | 2 + reactos/lib/pseh/i386/seh.s | 441 +++++ reactos/lib/pseh/i386/seh_prolog.s | 152 ++ reactos/lib/recyclebin/CMakeLists.txt | 12 + reactos/lib/rossym/CMakeLists.txt | 27 + reactos/lib/rossym/compat.h | 41 + reactos/lib/rossym/dummy.c | 32 + reactos/lib/rossym/dwarf.h | 471 +++++ reactos/lib/rossym/dwarf386.c | 25 + reactos/lib/rossym/dwarfabbrev.c | 141 ++ reactos/lib/rossym/dwarfaranges.c | 71 + reactos/lib/rossym/dwarfcfa.c | 407 +++++ reactos/lib/rossym/dwarfdump.c | 143 ++ reactos/lib/rossym/dwarfeval.c | 61 + reactos/lib/rossym/dwarfget.c | 225 +++ reactos/lib/rossym/dwarfinfo.c | 661 +++++++ reactos/lib/rossym/dwarfopen.c | 70 + reactos/lib/rossym/dwarfpc.c | 385 ++++ reactos/lib/rossym/dwarfpubnames.c | 81 + reactos/lib/rossym/iofile.c | 34 + reactos/lib/rossym/pe.c | 142 ++ reactos/lib/rossym/pe.h | 61 + reactos/lib/rossym_new/CMakeLists.txt | 27 + reactos/lib/rossym_new/compat.h | 41 + reactos/lib/rossym_new/delete.c | 28 + reactos/lib/rossym_new/dummy.c | 32 + reactos/lib/rossym_new/dwarf.h | 471 +++++ reactos/lib/rossym_new/dwarf386.c | 25 + reactos/lib/rossym_new/dwarfabbrev.c | 141 ++ reactos/lib/rossym_new/dwarfaranges.c | 71 + reactos/lib/rossym_new/dwarfcfa.c | 407 +++++ reactos/lib/rossym_new/dwarfdump.c | 143 ++ reactos/lib/rossym_new/dwarfeval.c | 61 + reactos/lib/rossym_new/dwarfget.c | 225 +++ reactos/lib/rossym_new/dwarfinfo.c | 661 +++++++ reactos/lib/rossym_new/dwarfopen.c | 70 + reactos/lib/rossym_new/dwarfpc.c | 385 ++++ reactos/lib/rossym_new/dwarfpubnames.c | 81 + reactos/lib/rossym_new/find.c | 86 + reactos/lib/rossym_new/fromfile.c | 210 +++ reactos/lib/rossym_new/frommem.c | 160 ++ reactos/lib/rossym_new/fromraw.c | 55 + reactos/lib/rossym_new/getraw.c | 43 + reactos/lib/rossym_new/init.c | 22 + reactos/lib/rossym_new/initkm.c | 48 + reactos/lib/rossym_new/initum.c | 46 + reactos/lib/rossym_new/iofile.c | 34 + reactos/lib/rossym_new/pe.c | 142 ++ reactos/lib/rossym_new/pe.h | 61 + reactos/lib/rossym_new/rossympriv.h | 30 + reactos/lib/rossym_new/zwfile.c | 54 + reactos/lib/rtl/CMakeLists.txt | 102 ++ reactos/lib/sdk/CMakeLists.txt | 10 + reactos/lib/sdk/crt/CMakeLists.txt | 643 +++++++ reactos/lib/sdk/crt/except/i386/seh_prolog.s | 152 ++ .../lib/sdk/crt/include/internal/wine_msc.h | 50 + reactos/lib/sdk/crt/math/sqrtf.c | 12 + reactos/lib/sdk/crt/misc/fltused.c | 2 + reactos/lib/sdk/crt/misc/i386/readcr4.S | 12 + reactos/lib/sdk/delayimp/CMakeLists.txt | 4 + reactos/lib/sdk/dxguid/CMakeLists.txt | 2 + reactos/lib/sdk/ioevent/CMakeLists.txt | 2 + reactos/lib/sdk/nt/CMakeLists.txt | 3 + reactos/lib/sdk/scrnsave/CMakeLists.txt | 4 + reactos/lib/sdk/strmiids/CMakeLists.txt | 2 + reactos/lib/sdk/uuid/CMakeLists.txt | 217 +++ reactos/lib/sdk/uuid/bthguid.c | 85 + reactos/lib/sdk/uuid/cguid_i.c | 86 + reactos/lib/sdk/uuid/cluscfgguids.c | 47 + reactos/lib/sdk/uuid/cmdtreeiid.c | 5 + reactos/lib/sdk/uuid/hnclsid.c | 12 + reactos/lib/sdk/uuid/ieguids.c | 241 +++ reactos/lib/sdk/uuid/iid.c | 384 ++++ reactos/lib/sdk/uuid/ncclsid.c | 13 + reactos/lib/sdk/uuid/ndisguid.c | 145 ++ reactos/lib/sdk/uuid/netfwv6clsid.c | 4 + reactos/lib/sdk/uuid/oledbdat.c | 191 ++ reactos/lib/sdk/uuid/oledbdepiid.c | 18 + reactos/lib/sdk/uuid/oledbiid.c | 84 + reactos/lib/sdk/uuid/oledbnewiid.c | 4 + reactos/lib/sdk/uuid/otherguids.c | 55 + reactos/lib/sdk/uuid/qosguid.c | 19 + reactos/lib/sdk/uuid/shguids.c | 118 ++ reactos/lib/sdk/uuid/tapi3iid.c | 23 + reactos/lib/sdk/uuid/undoc.c | 8 + reactos/lib/sdk/uuid/vcguids.c | 44 + reactos/lib/sdk/uuid/wdmguids.c | 4 + reactos/lib/sdk/wdmguid/CMakeLists.txt | 2 + reactos/lib/smlib/CMakeLists.txt | 13 + reactos/lib/tdilib/CMakeLists.txt | 5 + reactos/media/CMakeLists.txt | 9 + reactos/media/fonts/CMakeLists.txt | 38 + reactos/media/inf/CMakeLists.txt | 36 + reactos/media/inf/syssetup.inf | 83 + reactos/media/nls/CMakeLists.txt | 68 + reactos/media/vgafonts/CMakeLists.txt | 19 + reactos/modules/CMakeLists.txt | 4 + reactos/msc.cmake | 208 +++ reactos/ntoskrnl/CMakeLists.txt | 455 +++++ reactos/ntoskrnl/kdbg/kdb_symbols.cmake.c | 641 +++++++ reactos/ntoskrnl/ntoskrnl.spec | 1597 +++++++++++++++++ reactos/ntoskrnl/po/guid.c | 4 + reactos/ros_cd.cmake | 159 ++ reactos/subsystems/CMakeLists.txt | 4 + reactos/subsystems/ntvdm/CMakeLists.txt | 19 + reactos/subsystems/win32/CMakeLists.txt | 3 + reactos/subsystems/win32/csrss/CMakeLists.txt | 16 + .../win32/csrss/csrsrv/CMakeLists.txt | 33 + .../win32/csrss/win32csr/CMakeLists.txt | 44 + .../subsystems/win32/win32k/CMakeLists.txt | 201 +++ reactos/subsystems/win32/win32k/win32k.spec | 226 +++ reactos/toolchain-mingw32.cmake | 49 + reactos/toolchain-msvc.cmake | 26 + reactos/tools/CMakeLists.txt | 16 + reactos/tools/cabman/CMakeLists.txt | 12 + reactos/tools/cdmake/CMakeLists.txt | 2 + reactos/tools/gendib/CMakeLists.txt | 2 + reactos/tools/geninc/CMakeLists.txt | 2 + reactos/tools/getdate.c | 13 + reactos/tools/getdate.cmd | 1 + reactos/tools/getdate.exe | Bin 0 -> 5632 bytes reactos/tools/mkhive/CMakeLists.txt | 20 + reactos/tools/rsym/CMakeLists.txt | 3 + reactos/tools/rsym/rsym.cmake.c | 116 ++ reactos/tools/spec2def/CMakeLists.txt | 1 + reactos/tools/spec2def/spec2def.c | 806 +++++++++ reactos/tools/unicode/CMakeLists.txt | 76 + reactos/tools/widl/CMakeLists.txt | 25 + reactos/tools/wmc/CMakeLists.txt | 14 + reactos/tools/wpp/CMakeLists.txt | 10 + reactos/tools/wrc/CMakeLists.txt | 19 + 844 files changed, 41236 insertions(+) create mode 100644 reactos/CMakeLists.txt create mode 100644 reactos/CMakeMacros.cmake create mode 100644 reactos/PreLoad.cmake create mode 100644 reactos/base/CMakeLists.txt create mode 100644 reactos/base/applications/CMakeLists.txt create mode 100644 reactos/base/applications/cacls/CMakeLists.txt create mode 100644 reactos/base/applications/calc/CMakeLists.txt create mode 100644 reactos/base/applications/charmap/CMakeLists.txt create mode 100644 reactos/base/applications/cmdutils/CMakeLists.txt create mode 100644 reactos/base/applications/cmdutils/dbgprint/CMakeLists.txt create mode 100644 reactos/base/applications/cmdutils/doskey/CMakeLists.txt create mode 100644 reactos/base/applications/cmdutils/find/CMakeLists.txt create mode 100644 reactos/base/applications/cmdutils/hostname/CMakeLists.txt create mode 100644 reactos/base/applications/cmdutils/lodctr/CMakeLists.txt create mode 100644 reactos/base/applications/cmdutils/more/CMakeLists.txt create mode 100644 reactos/base/applications/cmdutils/reg/CMakeLists.txt create mode 100644 reactos/base/applications/cmdutils/xcopy/CMakeLists.txt create mode 100644 reactos/base/applications/control/CMakeLists.txt create mode 100644 reactos/base/applications/dxdiag/CMakeLists.txt create mode 100644 reactos/base/applications/extrac32/CMakeLists.txt create mode 100644 reactos/base/applications/findstr/CMakeLists.txt create mode 100644 reactos/base/applications/fontview/CMakeLists.txt create mode 100644 reactos/base/applications/games/CMakeLists.txt create mode 100644 reactos/base/applications/games/solitaire/CMakeLists.txt create mode 100644 reactos/base/applications/games/spider/CMakeLists.txt create mode 100644 reactos/base/applications/games/winmine/CMakeLists.txt create mode 100644 reactos/base/applications/hh/CMakeLists.txt create mode 100644 reactos/base/applications/iexplore/CMakeLists.txt create mode 100644 reactos/base/applications/kbswitch/CMakeLists.txt create mode 100644 reactos/base/applications/kbswitch/kbsdll/CMakeLists.txt create mode 100644 reactos/base/applications/logoff/CMakeLists.txt create mode 100644 reactos/base/applications/magnify/CMakeLists.txt create mode 100644 reactos/base/applications/mmc/CMakeLists.txt create mode 100644 reactos/base/applications/mplay32/CMakeLists.txt create mode 100644 reactos/base/applications/msconfig/CMakeLists.txt create mode 100644 reactos/base/applications/mscutils/CMakeLists.txt create mode 100644 reactos/base/applications/mscutils/devmgmt/CMakeLists.txt create mode 100644 reactos/base/applications/mscutils/eventvwr/CMakeLists.txt create mode 100644 reactos/base/applications/mscutils/servman/CMakeLists.txt create mode 100644 reactos/base/applications/mspaint/CMakeLists.txt create mode 100644 reactos/base/applications/mstsc/CMakeLists.txt create mode 100644 reactos/base/applications/network/CMakeLists.txt create mode 100644 reactos/base/applications/network/arp/CMakeLists.txt create mode 100644 reactos/base/applications/network/dwnl/CMakeLists.txt create mode 100644 reactos/base/applications/network/finger/CMakeLists.txt create mode 100644 reactos/base/applications/network/ftp/CMakeLists.txt create mode 100644 reactos/base/applications/network/ipconfig/CMakeLists.txt create mode 100644 reactos/base/applications/network/net/CMakeLists.txt create mode 100644 reactos/base/applications/network/netstat/CMakeLists.txt create mode 100644 reactos/base/applications/network/nslookup/CMakeLists.txt create mode 100644 reactos/base/applications/network/ping/CMakeLists.txt create mode 100644 reactos/base/applications/network/route/CMakeLists.txt create mode 100644 reactos/base/applications/network/telnet/CMakeLists.txt create mode 100644 reactos/base/applications/network/tracert/CMakeLists.txt create mode 100644 reactos/base/applications/network/whois/CMakeLists.txt create mode 100644 reactos/base/applications/notepad/CMakeLists.txt create mode 100644 reactos/base/applications/rapps/CMakeLists.txt create mode 100644 reactos/base/applications/regedit/CMakeLists.txt create mode 100644 reactos/base/applications/regedit/clb/CMakeLists.txt create mode 100644 reactos/base/applications/regedt32/CMakeLists.txt create mode 100644 reactos/base/applications/sc/CMakeLists.txt create mode 100644 reactos/base/applications/screensavers/3dtext/CMakeLists.txt create mode 100644 reactos/base/applications/screensavers/CMakeLists.txt create mode 100644 reactos/base/applications/screensavers/logon/CMakeLists.txt create mode 100644 reactos/base/applications/shutdown/CMakeLists.txt create mode 100644 reactos/base/applications/sndrec32/CMakeLists.txt create mode 100644 reactos/base/applications/sndvol32/CMakeLists.txt create mode 100644 reactos/base/applications/taskmgr/CMakeLists.txt create mode 100644 reactos/base/applications/winhlp32/CMakeLists.txt create mode 100644 reactos/base/applications/winver/CMakeLists.txt create mode 100644 reactos/base/applications/wordpad/CMakeLists.txt create mode 100644 reactos/base/applications/write/CMakeLists.txt create mode 100644 reactos/base/services/CMakeLists.txt create mode 100644 reactos/base/services/audiosrv/CMakeLists.txt create mode 100644 reactos/base/services/eventlog/CMakeLists.txt create mode 100644 reactos/base/services/rpcss/CMakeLists.txt create mode 100644 reactos/base/services/spoolsv/CMakeLists.txt create mode 100644 reactos/base/services/svchost/CMakeLists.txt create mode 100644 reactos/base/services/tcpsvcs/CMakeLists.txt create mode 100644 reactos/base/services/telnetd/CMakeLists.txt create mode 100644 reactos/base/services/tftpd/CMakeLists.txt create mode 100644 reactos/base/services/umpnpmgr/CMakeLists.txt create mode 100644 reactos/base/services/wlansvc/CMakeLists.txt create mode 100644 reactos/base/setup/CMakeLists.txt create mode 100644 reactos/base/setup/reactos/CMakeLists.txt create mode 100644 reactos/base/setup/setup/CMakeLists.txt create mode 100644 reactos/base/setup/usetup/CMakeLists.txt create mode 100644 reactos/base/setup/vmwinst/CMakeLists.txt create mode 100644 reactos/base/setup/welcome/CMakeLists.txt create mode 100644 reactos/base/shell/CMakeLists.txt create mode 100644 reactos/base/shell/cmd/CMakeLists.txt create mode 100644 reactos/base/shell/explorer-new/CMakeLists.txt create mode 100644 reactos/base/shell/explorer/CMakeLists.txt create mode 100644 reactos/base/shell/explorer/notifyhook/CMakeLists.txt create mode 100644 reactos/base/shell/explorer/notifyhook/notifyhook.spec create mode 100644 reactos/base/system/CMakeLists.txt create mode 100644 reactos/base/system/autochk/CMakeLists.txt create mode 100644 reactos/base/system/bootok/CMakeLists.txt create mode 100644 reactos/base/system/expand/CMakeLists.txt create mode 100644 reactos/base/system/format/CMakeLists.txt create mode 100644 reactos/base/system/lsass/CMakeLists.txt create mode 100644 reactos/base/system/msiexec/CMakeLists.txt create mode 100644 reactos/base/system/regsvr32/CMakeLists.txt create mode 100644 reactos/base/system/rundll32/CMakeLists.txt create mode 100644 reactos/base/system/runonce/CMakeLists.txt create mode 100644 reactos/base/system/services/CMakeLists.txt create mode 100644 reactos/base/system/smss/CMakeLists.txt create mode 100644 reactos/base/system/subst/CMakeLists.txt create mode 100644 reactos/base/system/userinit/CMakeLists.txt create mode 100644 reactos/base/system/winlogon/CMakeLists.txt create mode 100644 reactos/baseaddress.cmake create mode 100644 reactos/boot/CMakeLists.txt create mode 100644 reactos/boot/bootdata/CMakeLists.txt create mode 100644 reactos/boot/bootdata/packages/CMakeLists.txt create mode 100644 reactos/boot/bootdata/packages/reactos.dff.in create mode 100644 reactos/boot/freeldr/CMakeLists.txt create mode 100644 reactos/boot/freeldr/bootsect/CMakeLists.txt create mode 100644 reactos/boot/freeldr/freeldr/CMakeLists.txt create mode 100644 reactos/boot/freeldr/freeldr/arch/i386/fathelp.S create mode 100644 reactos/boot/freeldr/freeldr/arch/i386/realmode.S create mode 100644 reactos/cmake/CMakeParseArguments.cmake create mode 100644 reactos/cmake/Platform/Windows-cl.cmake create mode 100644 reactos/cmake/Platform/Windows.cmake create mode 100644 reactos/cmake/idl-support.cmake create mode 100644 reactos/config-amd64.cmake create mode 100644 reactos/config-arm.cmake create mode 100644 reactos/config.cmake create mode 100644 reactos/configure.cmd create mode 100644 reactos/dll/3rdparty/CMakeLists.txt create mode 100644 reactos/dll/3rdparty/dxtn/CMakeLists.txt create mode 100644 reactos/dll/3rdparty/libjpeg/CMakeLists.txt create mode 100644 reactos/dll/3rdparty/libpng/CMakeLists.txt create mode 100644 reactos/dll/3rdparty/libtiff/CMakeLists.txt create mode 100644 reactos/dll/3rdparty/libxslt/CMakeLists.txt create mode 100644 reactos/dll/3rdparty/mesa32/CMakeLists.txt create mode 100644 reactos/dll/CMakeLists.txt create mode 100644 reactos/dll/cpl/CMakeLists.txt create mode 100644 reactos/dll/cpl/access/CMakeLists.txt create mode 100644 reactos/dll/cpl/appwiz/CMakeLists.txt create mode 100644 reactos/dll/cpl/console/CMakeLists.txt create mode 100644 reactos/dll/cpl/desk/CMakeLists.txt create mode 100644 reactos/dll/cpl/hdwwiz/CMakeLists.txt create mode 100644 reactos/dll/cpl/input/CMakeLists.txt create mode 100644 reactos/dll/cpl/intl/CMakeLists.txt create mode 100644 reactos/dll/cpl/joy/CMakeLists.txt create mode 100644 reactos/dll/cpl/main/CMakeLists.txt create mode 100644 reactos/dll/cpl/mmsys/CMakeLists.txt create mode 100644 reactos/dll/cpl/ncpa/CMakeLists.txt create mode 100644 reactos/dll/cpl/odbccp32/CMakeLists.txt create mode 100644 reactos/dll/cpl/powercfg/CMakeLists.txt create mode 100644 reactos/dll/cpl/sysdm/CMakeLists.txt create mode 100644 reactos/dll/cpl/telephon/CMakeLists.txt create mode 100644 reactos/dll/cpl/timedate/CMakeLists.txt create mode 100644 reactos/dll/cpl/usrmgr/CMakeLists.txt create mode 100644 reactos/dll/directx/CMakeLists.txt create mode 100644 reactos/dll/directx/amstream/CMakeLists.txt create mode 100644 reactos/dll/directx/d3d8thk/CMakeLists.txt create mode 100644 reactos/dll/directx/devenum/CMakeLists.txt create mode 100644 reactos/dll/directx/dinput/CMakeLists.txt create mode 100644 reactos/dll/directx/dinput8/CMakeLists.txt create mode 100644 reactos/dll/directx/dmusic/CMakeLists.txt create mode 100644 reactos/dll/directx/dplay/CMakeLists.txt create mode 100644 reactos/dll/directx/dplayx/CMakeLists.txt create mode 100644 reactos/dll/directx/dsound/CMakeLists.txt create mode 100644 reactos/dll/directx/dxdiagn/CMakeLists.txt create mode 100644 reactos/dll/directx/ksproxy/CMakeLists.txt create mode 100644 reactos/dll/directx/ksuser/CMakeLists.txt create mode 100644 reactos/dll/directx/msdmo/CMakeLists.txt create mode 100644 reactos/dll/directx/qedit/CMakeLists.txt create mode 100644 reactos/dll/directx/quartz/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3d8/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3d9/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_24/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_25/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_26/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_27/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_28/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_29/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_30/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_31/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_32/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_33/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_34/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_35/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_36/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_37/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_38/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_39/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_40/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_41/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/d3dx9_42/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/ddraw/CMakeLists.txt create mode 100644 reactos/dll/directx/wine/wined3d/CMakeLists.txt create mode 100644 reactos/dll/keyboard/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbda1/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbda2/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbda3/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdal/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdarme/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdarmw/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdaze/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdazel/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdbe/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdbga/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdbgm/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdbgt/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdblr/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdbr/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdbur/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdcan/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdcr/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdcz/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdcz1/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdda/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbddv/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdes/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdest/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdfc/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdfi/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdfr/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdgeo/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdgerg/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdgneo/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdgr/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdgrist/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdhe/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdheb/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdhu/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdic/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdinasa/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdinben/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdindev/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdinguj/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdinmal/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdir/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdit/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdja/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdkaz/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdko/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdla/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdlt1/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdlv/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdmac/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdne/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdno/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdpl1/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdpo/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdro/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdru/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdru1/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdsg/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdsk/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdsk1/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdsw/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdtat/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdth0/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdth1/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdth2/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdth3/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdtuf/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdtuq/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbduk/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdur/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdurs/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdus/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdusa/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdusl/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdusr/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdusx/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbduzb/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdvntc/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdycc/CMakeLists.txt create mode 100644 reactos/dll/keyboard/kbdycl/CMakeLists.txt create mode 100644 reactos/dll/nls/CMakeLists.txt create mode 100644 reactos/dll/nls/idndl/CMakeLists.txt create mode 100644 reactos/dll/nls/normaliz/CMakeLists.txt create mode 100644 reactos/dll/nls/normaliz/normaliz.spec create mode 100644 reactos/dll/ntdll/CMakeLists.txt create mode 100644 reactos/dll/ntdll/def/ntdll.spec create mode 100644 reactos/dll/shellext/CMakeLists.txt create mode 100644 reactos/dll/shellext/deskadp/CMakeLists.txt create mode 100644 reactos/dll/shellext/deskmon/CMakeLists.txt create mode 100644 reactos/dll/shellext/devcpux/CMakeLists.txt create mode 100644 reactos/dll/shellext/fontext/CMakeLists.txt create mode 100644 reactos/dll/shellext/slayer/CMakeLists.txt create mode 100644 reactos/dll/win32/CMakeLists.txt create mode 100644 reactos/dll/win32/acledit/CMakeLists.txt create mode 100644 reactos/dll/win32/aclui/CMakeLists.txt create mode 100644 reactos/dll/win32/activeds/CMakeLists.txt create mode 100644 reactos/dll/win32/actxprxy/CMakeLists.txt create mode 100644 reactos/dll/win32/advapi32/CMakeLists.txt create mode 100644 reactos/dll/win32/advpack/CMakeLists.txt create mode 100644 reactos/dll/win32/atl/CMakeLists.txt create mode 100644 reactos/dll/win32/authz/CMakeLists.txt create mode 100644 reactos/dll/win32/avicap32/CMakeLists.txt create mode 100644 reactos/dll/win32/avifil32/CMakeLists.txt create mode 100644 reactos/dll/win32/batt/CMakeLists.txt create mode 100644 reactos/dll/win32/bcrypt/CMakeLists.txt create mode 100644 reactos/dll/win32/beepmidi/CMakeLists.txt create mode 100644 reactos/dll/win32/browseui/CMakeLists.txt create mode 100644 reactos/dll/win32/cabinet/CMakeLists.txt create mode 100644 reactos/dll/win32/cards/CMakeLists.txt create mode 100644 reactos/dll/win32/cfgmgr32/CMakeLists.txt create mode 100644 reactos/dll/win32/clusapi/CMakeLists.txt create mode 100644 reactos/dll/win32/comcat/CMakeLists.txt create mode 100644 reactos/dll/win32/comctl32/CMakeLists.txt create mode 100644 reactos/dll/win32/comdlg32/CMakeLists.txt create mode 100644 reactos/dll/win32/compstui/CMakeLists.txt create mode 100644 reactos/dll/win32/credui/CMakeLists.txt create mode 100644 reactos/dll/win32/crtdll/CMakeLists.txt create mode 100644 reactos/dll/win32/crtdll/crtdll.def create mode 100644 reactos/dll/win32/crypt32/CMakeLists.txt create mode 100644 reactos/dll/win32/cryptdlg/CMakeLists.txt create mode 100644 reactos/dll/win32/cryptdll/CMakeLists.txt create mode 100644 reactos/dll/win32/cryptnet/CMakeLists.txt create mode 100644 reactos/dll/win32/cryptui/CMakeLists.txt create mode 100644 reactos/dll/win32/dbghelp/CMakeLists.txt create mode 100644 reactos/dll/win32/dciman32/CMakeLists.txt create mode 100644 reactos/dll/win32/devmgr/CMakeLists.txt create mode 100644 reactos/dll/win32/dhcpcsvc/CMakeLists.txt create mode 100644 reactos/dll/win32/dnsapi/CMakeLists.txt create mode 100644 reactos/dll/win32/dwmapi/CMakeLists.txt create mode 100644 reactos/dll/win32/dwmapi/dwmapi_ros.diff create mode 100644 reactos/dll/win32/faultrep/CMakeLists.txt create mode 100644 reactos/dll/win32/fmifs/CMakeLists.txt create mode 100644 reactos/dll/win32/fusion/CMakeLists.txt create mode 100644 reactos/dll/win32/gdi32/CMakeLists.txt create mode 100644 reactos/dll/win32/gdiplus/CMakeLists.txt create mode 100644 reactos/dll/win32/getuname/CMakeLists.txt create mode 100644 reactos/dll/win32/glu32/CMakeLists.txt create mode 100644 reactos/dll/win32/hhctrl.ocx/CMakeLists.txt create mode 100644 reactos/dll/win32/hid/CMakeLists.txt create mode 100644 reactos/dll/win32/hlink/CMakeLists.txt create mode 100644 reactos/dll/win32/hnetcfg/CMakeLists.txt create mode 100644 reactos/dll/win32/httpapi/CMakeLists.txt create mode 100644 reactos/dll/win32/iccvid/CMakeLists.txt create mode 100644 reactos/dll/win32/icmp/CMakeLists.txt create mode 100644 reactos/dll/win32/imaadp32.acm/CMakeLists.txt create mode 100644 reactos/dll/win32/imagehlp/CMakeLists.txt create mode 100644 reactos/dll/win32/imm32/CMakeLists.txt create mode 100644 reactos/dll/win32/inetcomm/CMakeLists.txt create mode 100644 reactos/dll/win32/inetmib1/CMakeLists.txt create mode 100644 reactos/dll/win32/initpki/CMakeLists.txt create mode 100644 reactos/dll/win32/inseng/CMakeLists.txt create mode 100644 reactos/dll/win32/iphlpapi/CMakeLists.txt create mode 100644 reactos/dll/win32/itircl/CMakeLists.txt create mode 100644 reactos/dll/win32/itss/CMakeLists.txt create mode 100644 reactos/dll/win32/jscript/CMakeLists.txt create mode 100644 reactos/dll/win32/kernel32/CMakeLists.txt create mode 100644 reactos/dll/win32/kernel32/kernel32.spec create mode 100644 reactos/dll/win32/loadperf/CMakeLists.txt create mode 100644 reactos/dll/win32/localspl/CMakeLists.txt create mode 100644 reactos/dll/win32/localui/CMakeLists.txt create mode 100644 reactos/dll/win32/lpk/CMakeLists.txt create mode 100644 reactos/dll/win32/lsasrv/CMakeLists.txt create mode 100644 reactos/dll/win32/lz32/CMakeLists.txt create mode 100644 reactos/dll/win32/mapi32/CMakeLists.txt create mode 100644 reactos/dll/win32/mciavi32/CMakeLists.txt create mode 100644 reactos/dll/win32/mcicda/CMakeLists.txt create mode 100644 reactos/dll/win32/mciqtz32/CMakeLists.txt create mode 100644 reactos/dll/win32/mciseq/CMakeLists.txt create mode 100644 reactos/dll/win32/mciwave/CMakeLists.txt create mode 100644 reactos/dll/win32/mlang/CMakeLists.txt create mode 100644 reactos/dll/win32/mmdrv/CMakeLists.txt create mode 100644 reactos/dll/win32/modemui/CMakeLists.txt create mode 100644 reactos/dll/win32/mpr/CMakeLists.txt create mode 100644 reactos/dll/win32/mpr/mpr_ros.diff create mode 100644 reactos/dll/win32/mprapi/CMakeLists.txt create mode 100644 reactos/dll/win32/msacm32/CMakeLists.txt create mode 100644 reactos/dll/win32/msacm32/msacm32.drv/CMakeLists.txt create mode 100644 reactos/dll/win32/msadp32.acm/CMakeLists.txt create mode 100644 reactos/dll/win32/msafd/CMakeLists.txt create mode 100644 reactos/dll/win32/mscat32/CMakeLists.txt create mode 100644 reactos/dll/win32/mscms/CMakeLists.txt create mode 100644 reactos/dll/win32/mscoree/CMakeLists.txt create mode 100644 reactos/dll/win32/msctf/CMakeLists.txt create mode 100644 reactos/dll/win32/msftedit/CMakeLists.txt create mode 100644 reactos/dll/win32/msg711.acm/CMakeLists.txt create mode 100644 reactos/dll/win32/msgina/CMakeLists.txt create mode 100644 reactos/dll/win32/msgsm32.acm/CMakeLists.txt create mode 100644 reactos/dll/win32/mshtml.tlb/CMakeLists.txt create mode 100644 reactos/dll/win32/mshtml/CMakeLists.txt create mode 100644 reactos/dll/win32/msi/CMakeLists.txt create mode 100644 reactos/dll/win32/msimg32/CMakeLists.txt create mode 100644 reactos/dll/win32/msimtf/CMakeLists.txt create mode 100644 reactos/dll/win32/msisip/CMakeLists.txt create mode 100644 reactos/dll/win32/msisys.ocx/CMakeLists.txt create mode 100644 reactos/dll/win32/msnet32/CMakeLists.txt create mode 100644 reactos/dll/win32/msrle32/CMakeLists.txt create mode 100644 reactos/dll/win32/mssign32/CMakeLists.txt create mode 100644 reactos/dll/win32/mssip32/CMakeLists.txt create mode 100644 reactos/dll/win32/mstask/CMakeLists.txt create mode 100644 reactos/dll/win32/msvcrt/CMakeLists.txt create mode 100644 reactos/dll/win32/msvcrt20/CMakeLists.txt create mode 100644 reactos/dll/win32/msvcrt40/CMakeLists.txt create mode 100644 reactos/dll/win32/msvfw32/CMakeLists.txt create mode 100644 reactos/dll/win32/msvidc32/CMakeLists.txt create mode 100644 reactos/dll/win32/mswsock/CMakeLists.txt create mode 100644 reactos/dll/win32/msxml3/CMakeLists.txt create mode 100644 reactos/dll/win32/msxml3/msxml3_ros.diff create mode 100644 reactos/dll/win32/nddeapi/CMakeLists.txt create mode 100644 reactos/dll/win32/netapi32/CMakeLists.txt create mode 100644 reactos/dll/win32/netcfgx/CMakeLists.txt create mode 100644 reactos/dll/win32/netevent/CMakeLists.txt create mode 100644 reactos/dll/win32/netid/CMakeLists.txt create mode 100644 reactos/dll/win32/netid/netid.def create mode 100644 reactos/dll/win32/netshell/CMakeLists.txt create mode 100644 reactos/dll/win32/newdev/CMakeLists.txt create mode 100644 reactos/dll/win32/ntdsapi/CMakeLists.txt create mode 100644 reactos/dll/win32/ntlanman/CMakeLists.txt create mode 100644 reactos/dll/win32/ntmarta/CMakeLists.txt create mode 100644 reactos/dll/win32/ntprint/CMakeLists.txt create mode 100644 reactos/dll/win32/objsel/CMakeLists.txt create mode 100644 reactos/dll/win32/odbc32/CMakeLists.txt create mode 100644 reactos/dll/win32/odbccp32/CMakeLists.txt create mode 100644 reactos/dll/win32/ole32/CMakeLists.txt create mode 100644 reactos/dll/win32/oleacc/CMakeLists.txt create mode 100644 reactos/dll/win32/oleaut32/CMakeLists.txt create mode 100644 reactos/dll/win32/olecli32/CMakeLists.txt create mode 100644 reactos/dll/win32/oledlg/CMakeLists.txt create mode 100644 reactos/dll/win32/olepro32/CMakeLists.txt create mode 100644 reactos/dll/win32/olesvr32/CMakeLists.txt create mode 100644 reactos/dll/win32/olethk32/CMakeLists.txt create mode 100644 reactos/dll/win32/opengl32/CMakeLists.txt create mode 100644 reactos/dll/win32/pdh/CMakeLists.txt create mode 100644 reactos/dll/win32/pidgen/CMakeLists.txt create mode 100644 reactos/dll/win32/powrprof/CMakeLists.txt create mode 100644 reactos/dll/win32/printui/CMakeLists.txt create mode 100644 reactos/dll/win32/psapi/CMakeLists.txt create mode 100644 reactos/dll/win32/pstorec/CMakeLists.txt create mode 100644 reactos/dll/win32/qmgr/CMakeLists.txt create mode 100644 reactos/dll/win32/qmgrprxy/CMakeLists.txt create mode 100644 reactos/dll/win32/query/CMakeLists.txt create mode 100644 reactos/dll/win32/rasadhlp/CMakeLists.txt create mode 100644 reactos/dll/win32/rasapi32/CMakeLists.txt create mode 100644 reactos/dll/win32/rasdlg/CMakeLists.txt create mode 100644 reactos/dll/win32/rasman/CMakeLists.txt create mode 100644 reactos/dll/win32/resutils/CMakeLists.txt create mode 100644 reactos/dll/win32/riched20/CMakeLists.txt create mode 100644 reactos/dll/win32/riched20/msvc-thiscall.c create mode 100644 reactos/dll/win32/riched20/msvc.h create mode 100644 reactos/dll/win32/riched32/CMakeLists.txt create mode 100644 reactos/dll/win32/rpcrt4/CMakeLists.txt create mode 100644 reactos/dll/win32/rsabase/CMakeLists.txt create mode 100644 reactos/dll/win32/rsaenh/CMakeLists.txt create mode 100644 reactos/dll/win32/samlib/CMakeLists.txt create mode 100644 reactos/dll/win32/samsrv/CMakeLists.txt create mode 100644 reactos/dll/win32/sccbase/CMakeLists.txt create mode 100644 reactos/dll/win32/schannel/CMakeLists.txt create mode 100644 reactos/dll/win32/secur32/CMakeLists.txt create mode 100644 reactos/dll/win32/security/CMakeLists.txt create mode 100644 reactos/dll/win32/sensapi/CMakeLists.txt create mode 100644 reactos/dll/win32/serialui/CMakeLists.txt create mode 100644 reactos/dll/win32/setupapi/CMakeLists.txt create mode 100644 reactos/dll/win32/sfc/CMakeLists.txt create mode 100644 reactos/dll/win32/sfc_os/CMakeLists.txt create mode 100644 reactos/dll/win32/shdoclc/CMakeLists.txt create mode 100644 reactos/dll/win32/shdocvw/CMakeLists.txt create mode 100644 reactos/dll/win32/shell32/CMakeLists.txt create mode 100644 reactos/dll/win32/shfolder/CMakeLists.txt create mode 100644 reactos/dll/win32/shimgvw/CMakeLists.txt create mode 100644 reactos/dll/win32/shlwapi/CMakeLists.txt create mode 100644 reactos/dll/win32/slbcsp/CMakeLists.txt create mode 100644 reactos/dll/win32/smdll/CMakeLists.txt create mode 100644 reactos/dll/win32/sndblst/CMakeLists.txt create mode 100644 reactos/dll/win32/snmpapi/CMakeLists.txt create mode 100644 reactos/dll/win32/softpub/CMakeLists.txt create mode 100644 reactos/dll/win32/spoolss/CMakeLists.txt create mode 100644 reactos/dll/win32/srclient/CMakeLists.txt create mode 100644 reactos/dll/win32/stdole2.tlb/CMakeLists.txt create mode 100644 reactos/dll/win32/stdole32.tlb/CMakeLists.txt create mode 100644 reactos/dll/win32/sti/CMakeLists.txt create mode 100644 reactos/dll/win32/sxs/CMakeLists.txt create mode 100644 reactos/dll/win32/syssetup/CMakeLists.txt create mode 100644 reactos/dll/win32/t2embed/CMakeLists.txt create mode 100644 reactos/dll/win32/tapi32/CMakeLists.txt create mode 100644 reactos/dll/win32/tapiui/CMakeLists.txt create mode 100644 reactos/dll/win32/traffic/CMakeLists.txt create mode 100644 reactos/dll/win32/twain_32/CMakeLists.txt create mode 100644 reactos/dll/win32/uext2/CMakeLists.txt create mode 100644 reactos/dll/win32/ufat/CMakeLists.txt create mode 100644 reactos/dll/win32/ufatx/CMakeLists.txt create mode 100644 reactos/dll/win32/unicows/CMakeLists.txt create mode 100644 reactos/dll/win32/untfs/CMakeLists.txt create mode 100644 reactos/dll/win32/updspapi/CMakeLists.txt create mode 100644 reactos/dll/win32/url/CMakeLists.txt create mode 100644 reactos/dll/win32/urlmon/CMakeLists.txt create mode 100644 reactos/dll/win32/user32/CMakeLists.txt create mode 100644 reactos/dll/win32/user32/user32.spec create mode 100644 reactos/dll/win32/userenv/CMakeLists.txt create mode 100644 reactos/dll/win32/usp10/CMakeLists.txt create mode 100644 reactos/dll/win32/uxtheme/CMakeLists.txt create mode 100644 reactos/dll/win32/vdmdbg/CMakeLists.txt create mode 100644 reactos/dll/win32/version/CMakeLists.txt create mode 100644 reactos/dll/win32/wdmaud.drv/CMakeLists.txt create mode 100644 reactos/dll/win32/windowscodecs/CMakeLists.txt create mode 100644 reactos/dll/win32/winemp3.acm/CMakeLists.txt create mode 100644 reactos/dll/win32/winfax/CMakeLists.txt create mode 100644 reactos/dll/win32/wing32/CMakeLists.txt create mode 100644 reactos/dll/win32/winhttp/CMakeLists.txt create mode 100644 reactos/dll/win32/wininet/CMakeLists.txt create mode 100644 reactos/dll/win32/winmm/CMakeLists.txt create mode 100644 reactos/dll/win32/winmm/midimap/CMakeLists.txt create mode 100644 reactos/dll/win32/winspool/CMakeLists.txt create mode 100644 reactos/dll/win32/winsta/CMakeLists.txt create mode 100644 reactos/dll/win32/wintrust/CMakeLists.txt create mode 100644 reactos/dll/win32/wlanapi/CMakeLists.txt create mode 100644 reactos/dll/win32/wldap32/CMakeLists.txt create mode 100644 reactos/dll/win32/wmi/CMakeLists.txt create mode 100644 reactos/dll/win32/ws2_32/CMakeLists.txt create mode 100644 reactos/dll/win32/ws2_32_new/CMakeLists.txt create mode 100644 reactos/dll/win32/ws2help/CMakeLists.txt create mode 100644 reactos/dll/win32/wshirda/CMakeLists.txt create mode 100644 reactos/dll/win32/wshtcpip/CMakeLists.txt create mode 100644 reactos/dll/win32/wsock32/CMakeLists.txt create mode 100644 reactos/dll/win32/wsock32/wsock32.spec create mode 100644 reactos/dll/win32/wtsapi32/CMakeLists.txt create mode 100644 reactos/dll/win32/wuapi/CMakeLists.txt create mode 100644 reactos/dll/win32/xinput1_1/CMakeLists.txt create mode 100644 reactos/dll/win32/xinput1_2/CMakeLists.txt create mode 100644 reactos/dll/win32/xinput1_3/CMakeLists.txt create mode 100644 reactos/dll/win32/xinput9_1_0/CMakeLists.txt create mode 100644 reactos/dll/win32/xmllite/CMakeLists.txt create mode 100644 reactos/drivers/CMakeLists.txt create mode 100644 reactos/drivers/base/CMakeLists.txt create mode 100644 reactos/drivers/base/beep/CMakeLists.txt create mode 100644 reactos/drivers/base/bootvid/CMakeLists.txt create mode 100644 reactos/drivers/base/kdcom/CMakeLists.txt create mode 100644 reactos/drivers/base/kddll/CMakeLists.txt create mode 100644 reactos/drivers/base/kddll/kdcom.spec create mode 100644 reactos/drivers/base/nmidebug/CMakeLists.txt create mode 100644 reactos/drivers/base/null/CMakeLists.txt create mode 100644 reactos/drivers/battery/CMakeLists.txt create mode 100644 reactos/drivers/battery/battc/CMakeLists.txt create mode 100644 reactos/drivers/bus/CMakeLists.txt create mode 100644 reactos/drivers/bus/acpi/CMakeLists.txt create mode 100644 reactos/drivers/bus/acpi/cmbatt/CMakeLists.txt create mode 100644 reactos/drivers/bus/acpi/compbatt/CMakeLists.txt create mode 100644 reactos/drivers/bus/isapnp/CMakeLists.txt create mode 100644 reactos/drivers/bus/pci/CMakeLists.txt create mode 100644 reactos/drivers/bus/pcix/CMakeLists.txt create mode 100644 reactos/drivers/bus/pcmcia/CMakeLists.txt create mode 100644 reactos/drivers/directx/CMakeLists.txt create mode 100644 reactos/drivers/directx/dxapi/CMakeLists.txt create mode 100644 reactos/drivers/directx/dxg/CMakeLists.txt create mode 100644 reactos/drivers/directx/dxgthk/CMakeLists.txt create mode 100644 reactos/drivers/filesystems/CMakeLists.txt create mode 100644 reactos/drivers/filesystems/cdfs/CMakeLists.txt create mode 100644 reactos/drivers/filesystems/ext2/CMakeLists.txt create mode 100644 reactos/drivers/filesystems/fastfat/CMakeLists.txt create mode 100644 reactos/drivers/filesystems/fastfat_new/CMakeLists.txt create mode 100644 reactos/drivers/filesystems/fs_rec/CMakeLists.txt create mode 100644 reactos/drivers/filesystems/msfs/CMakeLists.txt create mode 100644 reactos/drivers/filesystems/mup/CMakeLists.txt create mode 100644 reactos/drivers/filesystems/npfs/CMakeLists.txt create mode 100644 reactos/drivers/filesystems/ntfs/CMakeLists.txt create mode 100644 reactos/drivers/input/CMakeLists.txt create mode 100644 reactos/drivers/input/i8042prt/CMakeLists.txt create mode 100644 reactos/drivers/input/kbdclass/CMakeLists.txt create mode 100644 reactos/drivers/input/mouclass/CMakeLists.txt create mode 100644 reactos/drivers/input/sermouse/CMakeLists.txt create mode 100644 reactos/drivers/ksfilter/CMakeLists.txt create mode 100644 reactos/drivers/ksfilter/ks/CMakeLists.txt create mode 100644 reactos/drivers/ksfilter/swenum/CMakeLists.txt create mode 100644 reactos/drivers/network/CMakeLists.txt create mode 100644 reactos/drivers/network/afd/CMakeLists.txt create mode 100644 reactos/drivers/network/dd/CMakeLists.txt create mode 100644 reactos/drivers/network/dd/ne2000/CMakeLists.txt create mode 100644 reactos/drivers/network/dd/pcnet/CMakeLists.txt create mode 100644 reactos/drivers/network/ndis/CMakeLists.txt create mode 100644 reactos/drivers/network/tcpip/CMakeLists.txt create mode 100644 reactos/drivers/network/tdi/CMakeLists.txt create mode 100644 reactos/drivers/parallel/CMakeLists.txt create mode 100644 reactos/drivers/parallel/parallel/CMakeLists.txt create mode 100644 reactos/drivers/serial/CMakeLists.txt create mode 100644 reactos/drivers/serial/serenum/CMakeLists.txt create mode 100644 reactos/drivers/serial/serial/CMakeLists.txt create mode 100644 reactos/drivers/setup/CMakeLists.txt create mode 100644 reactos/drivers/setup/blue/CMakeLists.txt create mode 100644 reactos/drivers/storage/CMakeLists.txt create mode 100644 reactos/drivers/storage/class/CMakeLists.txt create mode 100644 reactos/drivers/storage/class/cdrom/CMakeLists.txt create mode 100644 reactos/drivers/storage/class/class2/CMakeLists.txt create mode 100644 reactos/drivers/storage/class/disk/CMakeLists.txt create mode 100644 reactos/drivers/storage/class/ramdisk/CMakeLists.txt create mode 100644 reactos/drivers/storage/classpnp/CMakeLists.txt create mode 100644 reactos/drivers/storage/floppy/CMakeLists.txt create mode 100644 reactos/drivers/storage/ide/CMakeLists.txt create mode 100644 reactos/drivers/storage/ide/atapi/CMakeLists.txt create mode 100644 reactos/drivers/storage/ide/pciide/CMakeLists.txt create mode 100644 reactos/drivers/storage/ide/pciidex/CMakeLists.txt create mode 100644 reactos/drivers/storage/ide/uniata/CMakeLists.txt create mode 100644 reactos/drivers/storage/port/CMakeLists.txt create mode 100644 reactos/drivers/storage/port/buslogic/CMakeLists.txt create mode 100644 reactos/drivers/storage/scsiport/CMakeLists.txt create mode 100644 reactos/drivers/storage/scsiport/scsiport.spec create mode 100644 reactos/drivers/usb/CMakeLists.txt create mode 100644 reactos/drivers/usb/nt4compat/CMakeLists.txt create mode 100644 reactos/drivers/usb/nt4compat/usbdriver/CMakeLists.txt create mode 100644 reactos/drivers/usb/usbd/CMakeLists.txt create mode 100644 reactos/drivers/usb/usbehci/CMakeLists.txt create mode 100644 reactos/drivers/usb/usbhub/CMakeLists.txt create mode 100644 reactos/drivers/usb/usbstor/CMakeLists.txt create mode 100644 reactos/drivers/video/CMakeLists.txt create mode 100644 reactos/drivers/video/displays/CMakeLists.txt create mode 100644 reactos/drivers/video/displays/framebuf/CMakeLists.txt create mode 100644 reactos/drivers/video/displays/framebuf_new/CMakeLists.txt create mode 100644 reactos/drivers/video/displays/vga/CMakeLists.txt create mode 100644 reactos/drivers/video/font/CMakeLists.txt create mode 100644 reactos/drivers/video/font/bmfd/CMakeLists.txt create mode 100644 reactos/drivers/video/font/ftfd/CMakeLists.txt create mode 100644 reactos/drivers/video/font/ftfd/ftfd.spec create mode 100644 reactos/drivers/video/miniport/CMakeLists.txt create mode 100644 reactos/drivers/video/miniport/vbe/CMakeLists.txt create mode 100644 reactos/drivers/video/miniport/vga/CMakeLists.txt create mode 100644 reactos/drivers/video/miniport/vga_new/CMakeLists.txt create mode 100644 reactos/drivers/video/miniport/vmx_svga/CMakeLists.txt create mode 100644 reactos/drivers/video/miniport/xboxvmp/CMakeLists.txt create mode 100644 reactos/drivers/video/videoprt/CMakeLists.txt create mode 100644 reactos/drivers/wdm/CMakeLists.txt create mode 100644 reactos/drivers/wdm/audio/CMakeLists.txt create mode 100644 reactos/drivers/wdm/audio/backpln/CMakeLists.txt create mode 100644 reactos/drivers/wdm/audio/backpln/audio_test/CMakeLists.txt create mode 100644 reactos/drivers/wdm/audio/backpln/portcls/CMakeLists.txt create mode 100644 reactos/drivers/wdm/audio/drm/CMakeLists.txt create mode 100644 reactos/drivers/wdm/audio/drm/drmk/CMakeLists.txt create mode 100644 reactos/drivers/wdm/audio/filters/CMakeLists.txt create mode 100644 reactos/drivers/wdm/audio/filters/kmixer/CMakeLists.txt create mode 100644 reactos/drivers/wdm/audio/legacy/CMakeLists.txt create mode 100644 reactos/drivers/wdm/audio/legacy/wdmaud/CMakeLists.txt create mode 100644 reactos/drivers/wdm/audio/sysaudio/CMakeLists.txt create mode 100644 reactos/drivers/wmi/CMakeLists.txt create mode 100644 reactos/gcc.cmake create mode 100644 reactos/global.lds create mode 100644 reactos/hal/CMakeLists.txt create mode 100644 reactos/hal/hal.spec create mode 100644 reactos/hal/halx86/CMakeLists.txt create mode 100644 reactos/importlibs/.gitignore create mode 100644 reactos/include/asm/CMakeLists.txt create mode 100644 reactos/include/asm/asm.inc create mode 100644 reactos/include/asm/genincdata.c create mode 100644 reactos/include/asm/ks386.template.h create mode 100644 reactos/include/asm/ksamd64.template.h create mode 100644 reactos/include/asm/ksx.template.h create mode 100644 reactos/include/asm/syscalls.inc create mode 100644 reactos/include/dxsdk/CMakeLists.txt create mode 100644 reactos/include/host/config.h create mode 100644 reactos/include/host/debug.h create mode 100644 reactos/include/host/guiddef.h create mode 100644 reactos/include/host/wine/list.h create mode 100644 reactos/include/host/wine/port.h create mode 100644 reactos/include/host/wine/rpcfc.h create mode 100644 reactos/include/host/wine/wpp.h create mode 100644 reactos/include/psdk/CMakeLists.txt create mode 100644 reactos/include/reactos/buildno.h.cmake create mode 100644 reactos/include/reactos/idl/CMakeLists.txt create mode 100644 reactos/include/reactos/mc/CMakeLists.txt create mode 100644 reactos/include/reactos/msvchelper.h create mode 100644 reactos/include/reactos/version.cmake create mode 100644 reactos/include/reactos/version.h.cmake create mode 100644 reactos/include/reactos/wine/CMakeLists.txt create mode 100644 reactos/include/reactos/wine/alloca.h create mode 100644 reactos/include/reactos/wine/math.h create mode 100644 reactos/lib/3rdparty/CMakeLists.txt create mode 100644 reactos/lib/3rdparty/adns/CMakeLists.txt create mode 100644 reactos/lib/3rdparty/bzip2/CMakeLists.txt create mode 100644 reactos/lib/3rdparty/cardlib/CMakeLists.txt create mode 100644 reactos/lib/3rdparty/expat/CMakeLists.txt create mode 100644 reactos/lib/3rdparty/freetype/CMakeLists.txt create mode 100644 reactos/lib/3rdparty/fullfat/CMakeLists.txt create mode 100644 reactos/lib/3rdparty/icu4ros/CMakeLists.txt create mode 100644 reactos/lib/3rdparty/libmpg123/CMakeLists.txt create mode 100644 reactos/lib/3rdparty/libsamplerate/CMakeLists.txt create mode 100644 reactos/lib/3rdparty/libwine/CMakeLists.txt create mode 100644 reactos/lib/3rdparty/libxml2/CMakeLists.txt create mode 100644 reactos/lib/3rdparty/mingw/CMakeLists.txt create mode 100644 reactos/lib/3rdparty/mingw/mscmain.c create mode 100644 reactos/lib/3rdparty/zlib/CMakeLists.txt create mode 100644 reactos/lib/CMakeLists.txt create mode 100644 reactos/lib/atl/CMakeLists.txt create mode 100644 reactos/lib/cmlib/CMakeLists.txt create mode 100644 reactos/lib/cportlib/CMakeLists.txt create mode 100644 reactos/lib/dnslib/CMakeLists.txt create mode 100644 reactos/lib/drivers/CMakeLists.txt create mode 100644 reactos/lib/drivers/chew/CMakeLists.txt create mode 100644 reactos/lib/drivers/csq/CMakeLists.txt create mode 100644 reactos/lib/drivers/ip/CMakeLists.txt create mode 100644 reactos/lib/drivers/oskittcp/CMakeLists.txt create mode 100644 reactos/lib/drivers/sound/CMakeLists.txt create mode 100644 reactos/lib/drivers/sound/legacy/CMakeLists.txt create mode 100644 reactos/lib/drivers/sound/mmebuddy/CMakeLists.txt create mode 100644 reactos/lib/drivers/sound/mment4/CMakeLists.txt create mode 100644 reactos/lib/drivers/sound/mmixer/CMakeLists.txt create mode 100644 reactos/lib/drivers/sound/shared/CMakeLists.txt create mode 100644 reactos/lib/drivers/sound/soundblaster/CMakeLists.txt create mode 100644 reactos/lib/drivers/sound/uartmidi/CMakeLists.txt create mode 100644 reactos/lib/epsapi/CMakeLists.txt create mode 100644 reactos/lib/fslib/CMakeLists.txt create mode 100644 reactos/lib/fslib/ext2lib/CMakeLists.txt create mode 100644 reactos/lib/fslib/ntfslib/CMakeLists.txt create mode 100644 reactos/lib/fslib/vfatlib/CMakeLists.txt create mode 100644 reactos/lib/fslib/vfatxlib/CMakeLists.txt create mode 100644 reactos/lib/host/wcsfuncs/CMakeLists.txt create mode 100644 reactos/lib/inflib/CMakeLists.txt create mode 100644 reactos/lib/lsalib/CMakeLists.txt create mode 100644 reactos/lib/newinflib/CMakeLists.txt create mode 100644 reactos/lib/nls/CMakeLists.txt create mode 100644 reactos/lib/nls/idna/CMakeLists.txt create mode 100644 reactos/lib/nls/normalize/CMakeLists.txt create mode 100644 reactos/lib/nls/scripts/CMakeLists.txt create mode 100644 reactos/lib/ppcmmu/CMakeLists.txt create mode 100644 reactos/lib/pseh/CMakeLists.txt create mode 100644 reactos/lib/pseh/dummy.c create mode 100644 reactos/lib/pseh/i386/seh.s create mode 100644 reactos/lib/pseh/i386/seh_prolog.s create mode 100644 reactos/lib/recyclebin/CMakeLists.txt create mode 100644 reactos/lib/rossym/CMakeLists.txt create mode 100644 reactos/lib/rossym/compat.h create mode 100644 reactos/lib/rossym/dummy.c create mode 100644 reactos/lib/rossym/dwarf.h create mode 100644 reactos/lib/rossym/dwarf386.c create mode 100644 reactos/lib/rossym/dwarfabbrev.c create mode 100644 reactos/lib/rossym/dwarfaranges.c create mode 100644 reactos/lib/rossym/dwarfcfa.c create mode 100644 reactos/lib/rossym/dwarfdump.c create mode 100644 reactos/lib/rossym/dwarfeval.c create mode 100644 reactos/lib/rossym/dwarfget.c create mode 100644 reactos/lib/rossym/dwarfinfo.c create mode 100644 reactos/lib/rossym/dwarfopen.c create mode 100644 reactos/lib/rossym/dwarfpc.c create mode 100644 reactos/lib/rossym/dwarfpubnames.c create mode 100644 reactos/lib/rossym/iofile.c create mode 100644 reactos/lib/rossym/pe.c create mode 100644 reactos/lib/rossym/pe.h create mode 100644 reactos/lib/rossym_new/CMakeLists.txt create mode 100644 reactos/lib/rossym_new/compat.h create mode 100644 reactos/lib/rossym_new/delete.c create mode 100644 reactos/lib/rossym_new/dummy.c create mode 100644 reactos/lib/rossym_new/dwarf.h create mode 100644 reactos/lib/rossym_new/dwarf386.c create mode 100644 reactos/lib/rossym_new/dwarfabbrev.c create mode 100644 reactos/lib/rossym_new/dwarfaranges.c create mode 100644 reactos/lib/rossym_new/dwarfcfa.c create mode 100644 reactos/lib/rossym_new/dwarfdump.c create mode 100644 reactos/lib/rossym_new/dwarfeval.c create mode 100644 reactos/lib/rossym_new/dwarfget.c create mode 100644 reactos/lib/rossym_new/dwarfinfo.c create mode 100644 reactos/lib/rossym_new/dwarfopen.c create mode 100644 reactos/lib/rossym_new/dwarfpc.c create mode 100644 reactos/lib/rossym_new/dwarfpubnames.c create mode 100644 reactos/lib/rossym_new/find.c create mode 100644 reactos/lib/rossym_new/fromfile.c create mode 100644 reactos/lib/rossym_new/frommem.c create mode 100644 reactos/lib/rossym_new/fromraw.c create mode 100644 reactos/lib/rossym_new/getraw.c create mode 100644 reactos/lib/rossym_new/init.c create mode 100644 reactos/lib/rossym_new/initkm.c create mode 100644 reactos/lib/rossym_new/initum.c create mode 100644 reactos/lib/rossym_new/iofile.c create mode 100644 reactos/lib/rossym_new/pe.c create mode 100644 reactos/lib/rossym_new/pe.h create mode 100644 reactos/lib/rossym_new/rossympriv.h create mode 100644 reactos/lib/rossym_new/zwfile.c create mode 100644 reactos/lib/rtl/CMakeLists.txt create mode 100644 reactos/lib/sdk/CMakeLists.txt create mode 100644 reactos/lib/sdk/crt/CMakeLists.txt create mode 100644 reactos/lib/sdk/crt/except/i386/seh_prolog.s create mode 100644 reactos/lib/sdk/crt/include/internal/wine_msc.h create mode 100644 reactos/lib/sdk/crt/math/sqrtf.c create mode 100644 reactos/lib/sdk/crt/misc/fltused.c create mode 100644 reactos/lib/sdk/crt/misc/i386/readcr4.S create mode 100644 reactos/lib/sdk/delayimp/CMakeLists.txt create mode 100644 reactos/lib/sdk/dxguid/CMakeLists.txt create mode 100644 reactos/lib/sdk/ioevent/CMakeLists.txt create mode 100644 reactos/lib/sdk/nt/CMakeLists.txt create mode 100644 reactos/lib/sdk/scrnsave/CMakeLists.txt create mode 100644 reactos/lib/sdk/strmiids/CMakeLists.txt create mode 100644 reactos/lib/sdk/uuid/CMakeLists.txt create mode 100644 reactos/lib/sdk/uuid/bthguid.c create mode 100644 reactos/lib/sdk/uuid/cguid_i.c create mode 100644 reactos/lib/sdk/uuid/cluscfgguids.c create mode 100644 reactos/lib/sdk/uuid/cmdtreeiid.c create mode 100644 reactos/lib/sdk/uuid/hnclsid.c create mode 100644 reactos/lib/sdk/uuid/ieguids.c create mode 100644 reactos/lib/sdk/uuid/iid.c create mode 100644 reactos/lib/sdk/uuid/ncclsid.c create mode 100644 reactos/lib/sdk/uuid/ndisguid.c create mode 100644 reactos/lib/sdk/uuid/netfwv6clsid.c create mode 100644 reactos/lib/sdk/uuid/oledbdat.c create mode 100644 reactos/lib/sdk/uuid/oledbdepiid.c create mode 100644 reactos/lib/sdk/uuid/oledbiid.c create mode 100644 reactos/lib/sdk/uuid/oledbnewiid.c create mode 100644 reactos/lib/sdk/uuid/otherguids.c create mode 100644 reactos/lib/sdk/uuid/qosguid.c create mode 100644 reactos/lib/sdk/uuid/shguids.c create mode 100644 reactos/lib/sdk/uuid/tapi3iid.c create mode 100644 reactos/lib/sdk/uuid/undoc.c create mode 100644 reactos/lib/sdk/uuid/vcguids.c create mode 100644 reactos/lib/sdk/uuid/wdmguids.c create mode 100644 reactos/lib/sdk/wdmguid/CMakeLists.txt create mode 100644 reactos/lib/smlib/CMakeLists.txt create mode 100644 reactos/lib/tdilib/CMakeLists.txt create mode 100644 reactos/media/CMakeLists.txt create mode 100644 reactos/media/fonts/CMakeLists.txt create mode 100644 reactos/media/inf/CMakeLists.txt create mode 100644 reactos/media/inf/syssetup.inf create mode 100644 reactos/media/nls/CMakeLists.txt create mode 100644 reactos/media/vgafonts/CMakeLists.txt create mode 100644 reactos/modules/CMakeLists.txt create mode 100644 reactos/msc.cmake create mode 100644 reactos/ntoskrnl/CMakeLists.txt create mode 100644 reactos/ntoskrnl/kdbg/kdb_symbols.cmake.c create mode 100644 reactos/ntoskrnl/ntoskrnl.spec create mode 100644 reactos/ntoskrnl/po/guid.c create mode 100644 reactos/ros_cd.cmake create mode 100644 reactos/subsystems/CMakeLists.txt create mode 100644 reactos/subsystems/ntvdm/CMakeLists.txt create mode 100644 reactos/subsystems/win32/CMakeLists.txt create mode 100644 reactos/subsystems/win32/csrss/CMakeLists.txt create mode 100644 reactos/subsystems/win32/csrss/csrsrv/CMakeLists.txt create mode 100644 reactos/subsystems/win32/csrss/win32csr/CMakeLists.txt create mode 100644 reactos/subsystems/win32/win32k/CMakeLists.txt create mode 100644 reactos/subsystems/win32/win32k/win32k.spec create mode 100644 reactos/toolchain-mingw32.cmake create mode 100644 reactos/toolchain-msvc.cmake create mode 100644 reactos/tools/CMakeLists.txt create mode 100644 reactos/tools/cabman/CMakeLists.txt create mode 100644 reactos/tools/cdmake/CMakeLists.txt create mode 100644 reactos/tools/gendib/CMakeLists.txt create mode 100644 reactos/tools/geninc/CMakeLists.txt create mode 100644 reactos/tools/getdate.c create mode 100644 reactos/tools/getdate.cmd create mode 100644 reactos/tools/getdate.exe create mode 100644 reactos/tools/mkhive/CMakeLists.txt create mode 100644 reactos/tools/rsym/CMakeLists.txt create mode 100644 reactos/tools/rsym/rsym.cmake.c create mode 100644 reactos/tools/spec2def/CMakeLists.txt create mode 100644 reactos/tools/spec2def/spec2def.c create mode 100644 reactos/tools/unicode/CMakeLists.txt create mode 100644 reactos/tools/widl/CMakeLists.txt create mode 100644 reactos/tools/wmc/CMakeLists.txt create mode 100644 reactos/tools/wpp/CMakeLists.txt create mode 100644 reactos/tools/wrc/CMakeLists.txt diff --git a/reactos/CMakeLists.txt b/reactos/CMakeLists.txt new file mode 100644 index 00000000000..d1f8eb3276f --- /dev/null +++ b/reactos/CMakeLists.txt @@ -0,0 +1,206 @@ + +cmake_minimum_required(VERSION 2.6) + +if(POLICY CMP0017) + # Shadow cmake provided modules + cmake_policy(SET CMP0017 OLD) +endif() + +project(REACTOS) + +#versioning +include(include/reactos/version.cmake) + +# Don't escape preprocessor definition values added via add_definitions +cmake_policy(SET CMP0005 OLD) +cmake_policy(SET CMP0002 NEW) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON) +set(CMAKE_SHARED_LIBRARY_PREFIX "") +set(CMAKE_SKIP_PREPROCESSED_SOURCE_RULES TRUE) +set(CMAKE_SKIP_ASSEMBLY_SOURCE_RULES TRUE) +set(CMAKE_COLOR_MAKEFILE OFF) +#set_property(GLOBAL PROPERTY RULE_MESSAGES OFF) + +if(NOT ARCH) + set(ARCH i386) +endif() +string(TOLOWER ${ARCH} ARCH) + +# Compile options +if(ARCH MATCHES i386) + include(config.cmake) +elseif(ARCH MATCHES amd64) + include(config-amd64.cmake) +elseif(ARCH MATCHES arm) + include(config-arm.cmake) +endif() + +add_definitions(-D__REACTOS__) + +if(NOT CMAKE_CROSSCOMPILING) + + add_definitions(-DTARGET_${ARCH}) + + if(MSVC) + add_definitions(-Dinline=__inline) + else() + add_definitions(-fshort-wchar) + endif() + + include_directories( + ${REACTOS_SOURCE_DIR}/tools/unicode + include + include/host + ${REACTOS_BINARY_DIR}/include) + + add_subdirectory(tools) + add_subdirectory(lib) + + if(NOT MSVC) + export(TARGETS widl wrc gendib cabman cdmake mkhive spec2def geninc FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- ) + else() + export(TARGETS gendib cabman cdmake mkhive spec2def geninc FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- ) + endif() + +else() + + # adjust the default behaviour of the FIND_XXX() commands: + # search headers and libraries in the target environment, search + # programs in the host environment + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER) + + #useful stuff! + include(CMakeParseArguments) + + # Do some cleanup + file(REMOVE + ${REACTOS_BINARY_DIR}/dependencies.graphml + ${REACTOS_BINARY_DIR}/boot/ros_livecd.txt + ${REACTOS_BINARY_DIR}/boot/ros_livecd_target.txt + ${REACTOS_BINARY_DIR}/boot/ros_minicd.txt + ${REACTOS_BINARY_DIR}/boot/ros_minicd_target.txt + ${REACTOS_BINARY_DIR}/boot/ros_cab.txt + ${REACTOS_BINARY_DIR}/boot/ros_cab_target.txt) + + if(NOT DEFINED REACTOS_BUILD_TOOLS_DIR) + set(REACTOS_BUILD_TOOLS_DIR ${REACTOS_SOURCE_DIR}/build) + endif() + + set(IMPORT_EXECUTABLES "${REACTOS_BUILD_TOOLS_DIR}/ImportExecutables.cmake" CACHE FILEPATH "Host executables") + include(${IMPORT_EXECUTABLES}) + + # Compiler specific definitions and macros + if(MSVC) + include(msc.cmake) + else() + include(gcc.cmake) + endif() + + # Generic macros + include(CMakeMacros.cmake) + + # IDL macros for widl/midl + include(cmake/idl-support.cmake) + + # Activate support for assembly source files + enable_language(ASM) + + # Activate language support for resource files + enable_language(RC) + + if(DBG) + add_definitions(-DDBG=1 -D_SEH_ENABLE_TRACE) + endif() + + if(KDBG) + add_definitions(-DKDBG=1) + endif() + + if(_WINKD_) + add_definitions(-D_WINKD_=1) + endif() + + # Version Options + add_definitions(-DWINVER=0x502 + -D_WIN32_IE=0x600 + -D_WIN32_WINNT=0x502 + -D_WIN32_WINDOWS=0x502 + -D_SETUPAPI_VER=0x502) + + # Arch Options + if(ARCH MATCHES i386) + add_definitions(-D_M_IX86 -D_X86_ -D__i386__) + elseif(ARCH MATCHES amd64) + add_definitions(-D_M_AMD64 -D_AMD64_ -D__x86_64__ -D_WIN64) + elseif(ARCH MATCHES arm) + # _M_ARM is already defined by toolchain + add_definitions(-D_ARM_ -D__arm__) + endif() + + # Other + if(ARCH MATCHES i386) + add_definitions(-DUSE_COMPILER_EXCEPTIONS -D_USE_32BIT_TIME_T) + elseif(ARCH MATCHES amd64) + add_definitions(-DUSE_COMPILER_EXCEPTIONS -DNO_UNDERSCORE_PREFIX) + elseif(ARCH MATCHES arm) + add_definitions(-DUSE_COMPILER_EXCEPTIONS) + endif() + + include_directories( + include + include/psdk + include/dxsdk + ${REACTOS_BINARY_DIR}/include + ${REACTOS_BINARY_DIR}/include/dxsdk + ${REACTOS_BINARY_DIR}/include/psdk + ${REACTOS_BINARY_DIR}/include/reactos + include/crt + include/ddk + include/ndk + include/reactos + include/reactos/libs) + + if(ARCH MATCHES arm) + include_directories(${REACTOS_SOURCE_DIR}/include/reactos/arm) + endif() + + if(MSVC) + include_directories(include/crt/msc) + else() + include_directories(include/crt/mingw32) + endif() + + add_dependency_header() + + add_subdirectory(include/psdk) + add_subdirectory(include/dxsdk) + add_subdirectory(include/reactos/idl) + add_subdirectory(include/reactos/wine) + add_subdirectory(include/reactos/mc) + add_subdirectory(include/asm) + + include(baseaddress.cmake) + + #begin with boot so reactos_cab target is defined before all other modules + add_subdirectory(boot) + add_subdirectory(base) + add_subdirectory(dll) + add_subdirectory(drivers) + add_subdirectory(hal) + add_subdirectory(lib) + add_subdirectory(media) + add_subdirectory(modules) + add_subdirectory(ntoskrnl) + add_subdirectory(subsystems) + + file(MAKE_DIRECTORY ${REACTOS_BINARY_DIR}/include/reactos) + + file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/importlibs) + + add_dependency_footer() + +endif() diff --git a/reactos/CMakeMacros.cmake b/reactos/CMakeMacros.cmake new file mode 100644 index 00000000000..ce0225917b9 --- /dev/null +++ b/reactos/CMakeMacros.cmake @@ -0,0 +1,178 @@ + +if (NOT MSVC) + +macro(CreateBootSectorTarget _target_name _asm_file _object_file) + get_filename_component(OBJECT_PATH ${_object_file} PATH) + get_filename_component(OBJECT_NAME ${_object_file} NAME) + file(MAKE_DIRECTORY ${OBJECT_PATH}) + get_directory_property(defines COMPILE_DEFINITIONS) + get_directory_property(includes INCLUDE_DIRECTORIES) + + foreach(arg ${defines}) + set(result_defs ${result_defs} -D${arg}) + endforeach() + + foreach(arg ${includes}) + set(result_incs -I${arg} ${result_incs}) + endforeach() + + add_custom_command( + OUTPUT ${_object_file} + COMMAND nasm -o ${_object_file} ${result_incs} ${result_defs} -f bin ${_asm_file} + DEPENDS ${_asm_file}) + set_source_files_properties(${_object_file} PROPERTIES GENERATED TRUE) + add_custom_target(${_target_name} ALL DEPENDS ${_object_file}) +endmacro() + +else() + +macro(CreateBootSectorTarget _target_name _asm_file _object_file) +endmacro() + +endif() + +macro(set_cpp) + include_directories(BEFORE ${REACTOS_SOURCE_DIR}/include/c++/stlport) + set(IS_CPP 1) + add_definitions( + -DNATIVE_CPP_INCLUDE=${REACTOS_SOURCE_DIR}/include/c++ + -DNATIVE_C_INCLUDE=${REACTOS_SOURCE_DIR}/include/crt) +endmacro() + +macro(add_dependency_node _node) + if(GENERATE_DEPENDENCY_GRAPH) + get_target_property(_type ${_node} TYPE) + if(_type MATCHES SHARED_LIBRARY) + file(APPEND ${REACTOS_BINARY_DIR}/dependencies.graphml " \n") + endif() + endif() +endmacro() + +macro(add_dependency_edge _source _target) + if(GENERATE_DEPENDENCY_GRAPH) + get_target_property(_type ${_source} TYPE) + if(_type MATCHES SHARED_LIBRARY) + file(APPEND ${REACTOS_BINARY_DIR}/dependencies.graphml " \n") + endif() + endif() +endmacro() + +macro(add_dependency_header) + file(APPEND ${REACTOS_BINARY_DIR}/dependencies.graphml "\n\n \n") + add_dependency_node(ntdll) +endmacro() + +macro(add_dependency_footer) + file(APPEND ${REACTOS_BINARY_DIR}/dependencies.graphml " \n\n") +endmacro() + +macro(add_message_headers) + foreach(_in_FILE ${ARGN}) + get_filename_component(FILE ${_in_FILE} NAME_WE) + macro_mc(${FILE}) + add_custom_command( + OUTPUT ${REACTOS_BINARY_DIR}/include/reactos/${FILE}.rc ${REACTOS_BINARY_DIR}/include/reactos/${FILE}.h + COMMAND ${COMMAND_MC} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}.mc) + set_source_files_properties( + ${REACTOS_BINARY_DIR}/include/reactos/${FILE}.h ${REACTOS_BINARY_DIR}/include/reactos/${FILE}.rc + PROPERTIES GENERATED TRUE) + add_custom_target(${FILE} ALL DEPENDS ${REACTOS_BINARY_DIR}/include/reactos/${FILE}.h ${REACTOS_BINARY_DIR}/include/reactos/${FILE}.rc) + endforeach() +endmacro() + +macro(dir_to_num dir var) + if(${dir} STREQUAL reactos/system32) + set(${var} 1) + elseif(${dir} STREQUAL reactos/system32/drivers) + set(${var} 2) + elseif(${dir} STREQUAL reactos/Fonts) + set(${var} 3) + elseif(${dir} STREQUAL reactos) + set(${var} 4) + elseif(${dir} STREQUAL reactos/system32/drivers/etc) + set(${var} 5) + elseif(${dir} STREQUAL reactos/inf) + set(${var} 6) + elseif(${dir} STREQUAL reactos/bin) + set(${var} 7) + elseif(${dir} STREQUAL reactos/media) + set(${var} 8) + else() + message(ERROR "Wrong destination: ${dir}") + endif() +endmacro() + +function(add_cd_file) + cmake_parse_arguments(_CD "NO_CAB" "DESTINATION;NAME_ON_CD;TARGET" "FILE;FOR" ${ARGN}) + if(NOT (_CD_TARGET OR _CD_FILE)) + message(FATAL_ERROR "You must provide a target or a file to install!") + endif() + + if(NOT _CD_DESTINATION) + message(FATAL_ERROR "You must provide a destination") + elseif(${_CD_DESTINATION} STREQUAL root) + set(_CD_DESTINATION "") + endif() + + if(NOT _CD_FOR) + message(FATAL_ERROR "You must provide a cd name (or "all" for all of them) to install the file on!") + endif() + + #get file if we need to + if(NOT _CD_FILE) + get_target_property(_CD_FILE ${_CD_TARGET} LOCATION) + endif() + + #do we add it to all CDs? + if(_CD_FOR STREQUAL all) + set(_CD_FOR "bootcd;livecd;regtest") + endif() + + #do we add it to bootcd? + list(FIND _CD_FOR bootcd __cd) + if(NOT __cd EQUAL -1) + #whether or not we should put it in reactos.cab or directly on cd + if(_CD_NO_CAB) + #directly on cd + foreach(item ${_CD_FILE}) + file(APPEND ${REACTOS_BINARY_DIR}/boot/bootcd.cmake "file(COPY \"${item}\" DESTINATION \"\${CD_DIR}/${_CD_DESTINATION}\")\n") + endforeach() + if(_CD_NAME_ON_CD) + get_filename_component(__file ${_CD_FILE} NAME) + #rename it in the cd tree + file(APPEND ${REACTOS_BINARY_DIR}/boot/bootcd.cmake "file(RENAME \${CD_DIR}/${_CD_DESTINATION}/${__file} \${CD_DIR}/${_CD_DESTINATION}/${_CD_NAME_ON_CD})\n") + endif() + if(_CD_TARGET) + #manage dependency + add_dependencies(bootcd ${_CD_TARGET}) + endif() + else() + #add it in reactos.cab + dir_to_num(${_CD_DESTINATION} _num) + file(APPEND ${REACTOS_BINARY_DIR}/boot/bootdata/packages/reactos.dff.dyn "${_CD_FILE} ${_num}\n") + if(_CD_TARGET) + #manage dependency + add_dependencies(reactos_cab ${_CD_TARGET}) + endif() + endif() + endif() #end bootcd + + #do we add it to livecd? + list(FIND _CD_FOR livecd __cd) + if(NOT __cd EQUAL -1) + #manage dependency + if(_CD_TARGET) + add_dependencies(livecd ${_CD_TARGET}) + endif() + foreach(item ${_CD_FILE}) + file(APPEND ${REACTOS_BINARY_DIR}/boot/livecd.cmake "file(COPY \"${item}\" DESTINATION \"\${CD_DIR}/${_CD_DESTINATION}\")\n") + endforeach() + if(_CD_NAME_ON_CD) + get_filename_component(__file ${_CD_FILE} NAME) + #rename it in the cd tree + file(APPEND ${REACTOS_BINARY_DIR}/boot/livecd.cmake "file(RENAME \${CD_DIR}/${_CD_DESTINATION}/${__file} \${CD_DIR}/${_CD_DESTINATION}/${_CD_NAME_ON_CD})\n") + endif() + endif() #end livecd + +endfunction() diff --git a/reactos/PreLoad.cmake b/reactos/PreLoad.cmake new file mode 100644 index 00000000000..e74b5d9df1d --- /dev/null +++ b/reactos/PreLoad.cmake @@ -0,0 +1,10 @@ + +# small trick to get the real source directory at this stage +STRING(REPLACE "/PreLoad.cmake" "" REACTOS_HOME_DIR ${CMAKE_CURRENT_LIST_FILE}) + +#message("/PreLoad.cmake ... ${REACTOS_HOME_DIR}") + +SET(CMAKE_MODULE_PATH "${REACTOS_HOME_DIR}/cmake" CACHE INTERNAL "") + +#message("CMAKE_MODULE_PATH = ${CMAKE_MODULE_PATH}") + diff --git a/reactos/base/CMakeLists.txt b/reactos/base/CMakeLists.txt new file mode 100644 index 00000000000..5dafa0b5aff --- /dev/null +++ b/reactos/base/CMakeLists.txt @@ -0,0 +1,6 @@ + +add_subdirectory(applications) +add_subdirectory(services) +add_subdirectory(setup) +add_subdirectory(shell) +add_subdirectory(system) diff --git a/reactos/base/applications/CMakeLists.txt b/reactos/base/applications/CMakeLists.txt new file mode 100644 index 00000000000..0540d69e2e3 --- /dev/null +++ b/reactos/base/applications/CMakeLists.txt @@ -0,0 +1,37 @@ + +add_subdirectory(cacls) +add_subdirectory(calc) +add_subdirectory(charmap) +add_subdirectory(cmdutils) +add_subdirectory(control) +add_subdirectory(dxdiag) +add_subdirectory(extrac32) +add_subdirectory(findstr) +add_subdirectory(fontview) +add_subdirectory(games) +add_subdirectory(hh) +add_subdirectory(iexplore) +add_subdirectory(kbswitch) +add_subdirectory(logoff) +add_subdirectory(magnify) +add_subdirectory(mmc) +add_subdirectory(mplay32) +# add_subdirectory(msconfig) +add_subdirectory(mscutils) +add_subdirectory(mstsc) +add_subdirectory(network) +add_subdirectory(notepad) +add_subdirectory(mspaint) +add_subdirectory(rapps) +add_subdirectory(regedit) +add_subdirectory(regedt32) +add_subdirectory(sc) +add_subdirectory(screensavers) +add_subdirectory(shutdown) +add_subdirectory(sndrec32) +add_subdirectory(sndvol32) +add_subdirectory(taskmgr) +add_subdirectory(winhlp32) +add_subdirectory(winver) +add_subdirectory(wordpad) +add_subdirectory(write) \ No newline at end of file diff --git a/reactos/base/applications/cacls/CMakeLists.txt b/reactos/base/applications/cacls/CMakeLists.txt new file mode 100644 index 00000000000..cfb03ed2377 --- /dev/null +++ b/reactos/base/applications/cacls/CMakeLists.txt @@ -0,0 +1,15 @@ + +set_unicode() +set_rc_compiler() + +list(APPEND SOURCE cacls.c cacls.rc) + +add_executable(cacls + ${CMAKE_CURRENT_BINARY_DIR}/cacls_precomp.h.gch + ${SOURCE}) + +add_pch(cacls ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +set_module_type(cacls win32cui) +add_importlibs(cacls advapi32 user32 shell32 msvcrt kernel32) +add_cd_file(TARGET cacls DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/calc/CMakeLists.txt b/reactos/base/applications/calc/CMakeLists.txt new file mode 100644 index 00000000000..3e1372e0752 --- /dev/null +++ b/reactos/base/applications/calc/CMakeLists.txt @@ -0,0 +1,22 @@ + +set_unicode() +set_rc_compiler() + +add_definitions(-DDISABLE_HTMLHELP_SUPPORT=1) + +add_executable(calc + about.c + convert.c + function.c + rpn.c + utl.c + winmain.c + resource.rc) + +set_module_type(calc win32gui) +add_importlibs(calc advapi32 user32 gdi32 msvcrt kernel32) +if(MSVC) +add_importlibs(calc ntdll) +endif() + +add_cd_file(TARGET calc DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/charmap/CMakeLists.txt b/reactos/base/applications/charmap/CMakeLists.txt new file mode 100644 index 00000000000..a63a7da7343 --- /dev/null +++ b/reactos/base/applications/charmap/CMakeLists.txt @@ -0,0 +1,22 @@ + +set_unicode() +set_rc_compiler() + +list(APPEND SOURCE + about.c + charmap.c + lrgcell.c + map.c + charmap.rc) + +add_executable(charmap + ${CMAKE_CURRENT_BINARY_DIR}/charmap_precomp.h.gch + ${SOURCE}) + +add_pch(charmap ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +set_module_type(charmap win32gui) + +add_importlibs(charmap user32 gdi32 comctl32 kernel32 msvcrt) + +add_cd_file(TARGET charmap DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/cmdutils/CMakeLists.txt b/reactos/base/applications/cmdutils/CMakeLists.txt new file mode 100644 index 00000000000..b36bbb77325 --- /dev/null +++ b/reactos/base/applications/cmdutils/CMakeLists.txt @@ -0,0 +1,8 @@ +add_subdirectory(dbgprint) +add_subdirectory(doskey) +add_subdirectory(find) +add_subdirectory(hostname) +add_subdirectory(lodctr) +add_subdirectory(more) +add_subdirectory(reg) +add_subdirectory(xcopy) diff --git a/reactos/base/applications/cmdutils/dbgprint/CMakeLists.txt b/reactos/base/applications/cmdutils/dbgprint/CMakeLists.txt new file mode 100644 index 00000000000..728678d3d5c --- /dev/null +++ b/reactos/base/applications/cmdutils/dbgprint/CMakeLists.txt @@ -0,0 +1,5 @@ + +add_executable(dbgprint dbgprint.c) +set_module_type(dbgprint win32cui) +add_importlibs(dbgprint msvcrt kernel32) +add_cd_file(TARGET dbgprint DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/cmdutils/doskey/CMakeLists.txt b/reactos/base/applications/cmdutils/doskey/CMakeLists.txt new file mode 100644 index 00000000000..09805d87b2d --- /dev/null +++ b/reactos/base/applications/cmdutils/doskey/CMakeLists.txt @@ -0,0 +1,9 @@ + +set_unicode() +set_rc_compiler() + +add_executable(doskey doskey.c doskey.rc) + +set_module_type(doskey win32cui) +add_importlibs(doskey user32 msvcrt kernel32) +add_cd_file(TARGET doskey DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/cmdutils/find/CMakeLists.txt b/reactos/base/applications/cmdutils/find/CMakeLists.txt new file mode 100644 index 00000000000..f94e42eee18 --- /dev/null +++ b/reactos/base/applications/cmdutils/find/CMakeLists.txt @@ -0,0 +1,7 @@ +add_definitions(-D_DLL -D__USE_CRTIMP) + +add_executable(find find.c find.rc) + +set_module_type(find win32cui) +add_importlibs(find user32 msvcrt kernel32) +add_cd_file(TARGET find DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/cmdutils/hostname/CMakeLists.txt b/reactos/base/applications/cmdutils/hostname/CMakeLists.txt new file mode 100644 index 00000000000..528d64f04ec --- /dev/null +++ b/reactos/base/applications/cmdutils/hostname/CMakeLists.txt @@ -0,0 +1,7 @@ +add_definitions(-D_DLL -D__USE_CRTIMP) + +add_executable(hostname hostname.c hostname.rc) + +set_module_type(hostname win32cui) +add_importlibs(hostname msvcrt kernel32) +add_cd_file(TARGET hostname DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/cmdutils/lodctr/CMakeLists.txt b/reactos/base/applications/cmdutils/lodctr/CMakeLists.txt new file mode 100644 index 00000000000..9e2fa8b4a67 --- /dev/null +++ b/reactos/base/applications/cmdutils/lodctr/CMakeLists.txt @@ -0,0 +1,8 @@ + +set_unicode() + +add_executable(lodctr lodctr_main.c) + +set_module_type(lodctr win32cui) +add_importlibs(lodctr loadperf msvcrt kernel32) +add_cd_file(TARGET lodctr DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/cmdutils/more/CMakeLists.txt b/reactos/base/applications/cmdutils/more/CMakeLists.txt new file mode 100644 index 00000000000..34b841a09e2 --- /dev/null +++ b/reactos/base/applications/cmdutils/more/CMakeLists.txt @@ -0,0 +1,6 @@ + +add_executable(more more.c more.rc) + +set_module_type(more win32cui) +add_importlibs(more user32 msvcrt kernel32) +add_cd_file(TARGET more DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/cmdutils/reg/CMakeLists.txt b/reactos/base/applications/cmdutils/reg/CMakeLists.txt new file mode 100644 index 00000000000..d33a5dc270c --- /dev/null +++ b/reactos/base/applications/cmdutils/reg/CMakeLists.txt @@ -0,0 +1,11 @@ + +set_unicode() + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +add_executable(reg reg.c rsrc.rc) + +set_module_type(reg win32cui) +add_importlibs(reg advapi32 user32 msvcrt kernel32) +add_cd_file(TARGET reg DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/cmdutils/xcopy/CMakeLists.txt b/reactos/base/applications/cmdutils/xcopy/CMakeLists.txt new file mode 100644 index 00000000000..6ef21593877 --- /dev/null +++ b/reactos/base/applications/cmdutils/xcopy/CMakeLists.txt @@ -0,0 +1,10 @@ + +set_unicode() + +add_executable(xcopy xcopy.c rsrc.rc) + +target_link_libraries(xcopy wine) + +set_module_type(xcopy win32cui) +add_importlibs(xcopy shell32 user32 msvcrt kernel32 ntdll) +add_cd_file(TARGET xcopy DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/control/CMakeLists.txt b/reactos/base/applications/control/CMakeLists.txt new file mode 100644 index 00000000000..1ad30337427 --- /dev/null +++ b/reactos/base/applications/control/CMakeLists.txt @@ -0,0 +1,9 @@ + +set_unicode() +set_rc_compiler() + +add_executable(control control.c control.rc) + +set_module_type(control win32gui) +add_importlibs(control advapi32 shell32 msvcrt kernel32) +add_cd_file(TARGET control DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/dxdiag/CMakeLists.txt b/reactos/base/applications/dxdiag/CMakeLists.txt new file mode 100644 index 00000000000..d234cc13f6a --- /dev/null +++ b/reactos/base/applications/dxdiag/CMakeLists.txt @@ -0,0 +1,33 @@ + +set_unicode() +set_rc_compiler() + +list(APPEND SOURCE + system.c + display.c + sound.c + music.c + input.c + network.c + help.c + dxdiag.c + dxdiag.rc + ddtest.c + d3dtest.c + d3dtest7.c + d3dtest8.c + d3dtest9.c) + +add_executable(dxdiag + ${CMAKE_CURRENT_BINARY_DIR}/dxdiag_precomp.h.gch + ${SOURCE}) + +add_pch(dxdiag ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +set_module_type(dxdiag win32gui) + +target_link_libraries(dxdiag dxguid) + +add_importlibs(dxdiag user32 advapi32 comctl32 dinput8 setupapi dsound ddraw version gdi32 winmm d3d9 msvcrt kernel32 ntdll) + +add_cd_file(TARGET dxdiag DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/extrac32/CMakeLists.txt b/reactos/base/applications/extrac32/CMakeLists.txt new file mode 100644 index 00000000000..f9699b878a9 --- /dev/null +++ b/reactos/base/applications/extrac32/CMakeLists.txt @@ -0,0 +1,10 @@ + +set_unicode() + +add_executable(extrac32 extrac32.c) + +target_link_libraries(extrac32 wine) + +set_module_type(extrac32 win32gui) +add_importlibs(extrac32 shell32 setupapi shlwapi user32 msvcrt kernel32 ntdll) +add_cd_file(TARGET extrac32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/findstr/CMakeLists.txt b/reactos/base/applications/findstr/CMakeLists.txt new file mode 100644 index 00000000000..68b0e741727 --- /dev/null +++ b/reactos/base/applications/findstr/CMakeLists.txt @@ -0,0 +1,10 @@ + +add_definitions(-D_DLL -D__USE_CRTIMP) + +add_executable(findstr + findstr.c + findstr.rc) + +set_module_type(findstr win32cui) +add_importlibs(findstr user32 msvcrt kernel32) +add_cd_file(TARGET findstr DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/fontview/CMakeLists.txt b/reactos/base/applications/fontview/CMakeLists.txt new file mode 100644 index 00000000000..b22915098d0 --- /dev/null +++ b/reactos/base/applications/fontview/CMakeLists.txt @@ -0,0 +1,11 @@ + +set_rc_compiler() +add_executable(fontview + display.c + fontview.c + fontview.rc) + +set_module_type(fontview win32gui) +add_importlibs(fontview gdi32 shell32 user32 msvcrt kernel32) + +add_cd_file(TARGET fontview DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/games/CMakeLists.txt b/reactos/base/applications/games/CMakeLists.txt new file mode 100644 index 00000000000..1bab767b62d --- /dev/null +++ b/reactos/base/applications/games/CMakeLists.txt @@ -0,0 +1,4 @@ + +add_subdirectory(solitaire) +add_subdirectory(spider) +add_subdirectory(winmine) diff --git a/reactos/base/applications/games/solitaire/CMakeLists.txt b/reactos/base/applications/games/solitaire/CMakeLists.txt new file mode 100644 index 00000000000..c0daaa0ebeb --- /dev/null +++ b/reactos/base/applications/games/solitaire/CMakeLists.txt @@ -0,0 +1,20 @@ + +set_unicode() +set_cpp() +set_rc_compiler() + +include_directories(${REACTOS_SOURCE_DIR}/lib/3rdparty/cardlib) + +add_executable(sol + solcreate.cpp + solgame.cpp + solitaire.cpp + rsrc.rc) + +target_link_libraries(sol cardlib) + +set_module_type(sol win32gui) + +add_importlibs(sol advapi32 comctl32 user32 gdi32 kernel32 msvcrt) + +add_cd_file(TARGET sol DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/games/spider/CMakeLists.txt b/reactos/base/applications/games/spider/CMakeLists.txt new file mode 100644 index 00000000000..560c6d5b18e --- /dev/null +++ b/reactos/base/applications/games/spider/CMakeLists.txt @@ -0,0 +1,20 @@ + +set_unicode() +set_cpp() + +include_directories(${REACTOS_SOURCE_DIR}/lib/3rdparty/cardlib ${CMAKE_CURRENT_SOURCE_DIR}) + +set_rc_compiler() + +add_executable(spider + spider.cpp + spigame.cpp + rsrc.rc) + +target_link_libraries(spider cardlib) + +set_module_type(spider win32gui) + +add_importlibs(spider advapi32 comctl32 user32 gdi32 kernel32 msvcrt) + +add_cd_file(TARGET spider DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/games/winmine/CMakeLists.txt b/reactos/base/applications/games/winmine/CMakeLists.txt new file mode 100644 index 00000000000..f4e99a16789 --- /dev/null +++ b/reactos/base/applications/games/winmine/CMakeLists.txt @@ -0,0 +1,15 @@ + +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) + +set_rc_compiler() + +add_executable(winmine + main.c + dialog.c + rsrc.rc) + +set_module_type(winmine win32gui) +target_link_libraries(winmine wine) +add_importlibs(winmine user32 gdi32 advapi32 shell32 msvcrt kernel32 ntdll) + +add_cd_file(TARGET winmine DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/hh/CMakeLists.txt b/reactos/base/applications/hh/CMakeLists.txt new file mode 100644 index 00000000000..5de0b1a0282 --- /dev/null +++ b/reactos/base/applications/hh/CMakeLists.txt @@ -0,0 +1,6 @@ + +set_rc_compiler() +add_executable(hh main.c hh.rc) +set_module_type(hh win32gui) +add_importlibs(hh gdi32 user32 msvcrt kernel32) +add_cd_file(TARGET hh DESTINATION reactos FOR all) diff --git a/reactos/base/applications/iexplore/CMakeLists.txt b/reactos/base/applications/iexplore/CMakeLists.txt new file mode 100644 index 00000000000..b86174114db --- /dev/null +++ b/reactos/base/applications/iexplore/CMakeLists.txt @@ -0,0 +1,6 @@ + +set_rc_compiler() +add_executable(iexplore main.c iexplore.rc) +set_module_type(iexplore win32gui) +add_importlibs(iexplore shdocvw msvcrt kernel32) +add_cd_file(TARGET iexplore DESTINATION reactos FOR all) diff --git a/reactos/base/applications/kbswitch/CMakeLists.txt b/reactos/base/applications/kbswitch/CMakeLists.txt new file mode 100644 index 00000000000..19374115fa4 --- /dev/null +++ b/reactos/base/applications/kbswitch/CMakeLists.txt @@ -0,0 +1,11 @@ + +set_unicode() +set_rc_compiler() + +add_executable(kbswitch kbswitch.c kbswitch.rc) + +set_module_type(kbswitch win32gui) +add_importlibs(kbswitch advapi32 user32 shell32 gdi32 msvcrt kernel32) + +add_cd_file(TARGET kbswitch DESTINATION reactos/system32 FOR all) +add_subdirectory(kbsdll) diff --git a/reactos/base/applications/kbswitch/kbsdll/CMakeLists.txt b/reactos/base/applications/kbswitch/kbsdll/CMakeLists.txt new file mode 100644 index 00000000000..1f51b602899 --- /dev/null +++ b/reactos/base/applications/kbswitch/kbsdll/CMakeLists.txt @@ -0,0 +1,15 @@ + +set_unicode() + +spec2def(kbsdll.dll kbsdll.spec) + +list(APPEND SOURCE + kbsdll.c + kbsdll.rc + ${CMAKE_CURRENT_BINARY_DIR}/kbsdll.def) + +add_library(kbsdll SHARED ${SOURCE}) + +set_module_type(kbsdll win32dll) +add_importlibs(kbsdll user32 comctl32 kernel32 msvcrt) +add_cd_file(TARGET kbsdll DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/logoff/CMakeLists.txt b/reactos/base/applications/logoff/CMakeLists.txt new file mode 100644 index 00000000000..c560717531a --- /dev/null +++ b/reactos/base/applications/logoff/CMakeLists.txt @@ -0,0 +1,15 @@ + +add_definitions(-D_DLL -D__USE_CRTIMP) + +list(APPEND SOURCE + misc.c + logoff.c + logoff.rc) + +add_executable(logoff ${CMAKE_CURRENT_BINARY_DIR}/logoff_precomp.h.gch ${SOURCE}) + +add_pch(logoff ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +set_module_type(logoff win32cui) +add_importlibs(logoff advapi32 user32 msvcrt kernel32) +add_cd_file(TARGET logoff DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/magnify/CMakeLists.txt b/reactos/base/applications/magnify/CMakeLists.txt new file mode 100644 index 00000000000..e7ab404c53c --- /dev/null +++ b/reactos/base/applications/magnify/CMakeLists.txt @@ -0,0 +1,11 @@ + +set_rc_compiler() + +add_executable(magnify + magnifier.c + settings.c + magnify.rc) + +set_module_type(magnify win32gui) +add_importlibs(magnify user32 gdi32 advapi32 shell32 msvcrt kernel32) +add_cd_file(TARGET magnify DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/mmc/CMakeLists.txt b/reactos/base/applications/mmc/CMakeLists.txt new file mode 100644 index 00000000000..765cf2e2b3b --- /dev/null +++ b/reactos/base/applications/mmc/CMakeLists.txt @@ -0,0 +1,16 @@ + +set_rc_compiler() +set_unicode() + +list(APPEND SOURCE + console.c + misc.c + mmc.c + mmc.rc) + +add_executable(mmcclient ${CMAKE_CURRENT_BINARY_DIR}/mmcclient_precomp.h.gch ${SOURCE}) + +add_pch(mmcclient ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +set_module_type(mmcclient win32gui) +add_importlibs(mmcclient user32 gdi32 comdlg32 advapi32 shell32 comctl32 msvcrt kernel32) diff --git a/reactos/base/applications/mplay32/CMakeLists.txt b/reactos/base/applications/mplay32/CMakeLists.txt new file mode 100644 index 00000000000..5cacd87cf4d --- /dev/null +++ b/reactos/base/applications/mplay32/CMakeLists.txt @@ -0,0 +1,9 @@ + +set_unicode() +set_rc_compiler() + +add_executable(mplay32 mplay32.c mplay32.rc) + +set_module_type(mplay32 win32gui) +add_importlibs(mplay32 advapi32 comctl32 comdlg32 user32 gdi32 winmm shell32 msvcrt kernel32) +add_cd_file(TARGET mplay32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/msconfig/CMakeLists.txt b/reactos/base/applications/msconfig/CMakeLists.txt new file mode 100644 index 00000000000..cf9c7e0d1ed --- /dev/null +++ b/reactos/base/applications/msconfig/CMakeLists.txt @@ -0,0 +1,21 @@ + +set_unicode() +set_rc_compiler() + +list(APPEND SOURCE + toolspage.c + srvpage.c + systempage.c + startuppage.c + freeldrpage.c + generalpage.c + msconfig.c + msconfig.rc) + +add_executable(msconfig ${CMAKE_CURRENT_BINARY_DIR}/msconfig_precomp.h.gch ${SOURCE}) + +add_pch(msconfig ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +set_module_type(msconfig win32gui) +add_importlibs(msconfig user32 advapi32 version comctl32 shell32 shlwapi msvcrt kernel32) +add_cd_file(TARGET msconfig DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/mscutils/CMakeLists.txt b/reactos/base/applications/mscutils/CMakeLists.txt new file mode 100644 index 00000000000..4f577ffa3a4 --- /dev/null +++ b/reactos/base/applications/mscutils/CMakeLists.txt @@ -0,0 +1,4 @@ + +add_subdirectory(devmgmt) +add_subdirectory(eventvwr) +add_subdirectory(servman) diff --git a/reactos/base/applications/mscutils/devmgmt/CMakeLists.txt b/reactos/base/applications/mscutils/devmgmt/CMakeLists.txt new file mode 100644 index 00000000000..703c0e1dceb --- /dev/null +++ b/reactos/base/applications/mscutils/devmgmt/CMakeLists.txt @@ -0,0 +1,18 @@ + +set_unicode() + +list(APPEND SOURCE + about.c + devmgmt.c + enumdevices.c + mainwnd.c + misc.c + devmgmt.rc) + +add_executable(devmgmt ${CMAKE_CURRENT_BINARY_DIR}/devmgmt_precomp.h.gch ${SOURCE}) + +add_pch(devmgmt ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +set_module_type(devmgmt win32gui) +add_importlibs(devmgmt setupapi gdi32 user32 comctl32 advapi32 devmgr msvcrt kernel32) +add_cd_file(TARGET devmgmt DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/mscutils/eventvwr/CMakeLists.txt b/reactos/base/applications/mscutils/eventvwr/CMakeLists.txt new file mode 100644 index 00000000000..ca96c17e8ae --- /dev/null +++ b/reactos/base/applications/mscutils/eventvwr/CMakeLists.txt @@ -0,0 +1,13 @@ + +set_unicode() + +add_executable(eventvwr eventvwr.c eventvwr.rc) + +set_module_type(eventvwr win32gui) + +add_importlibs(eventvwr user32 comctl32 advapi32 msvcrt kernel32) +if(MSVC) +add_importlibs(eventvwr ntdll) +endif() + +add_cd_file(TARGET eventvwr DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/mscutils/servman/CMakeLists.txt b/reactos/base/applications/mscutils/servman/CMakeLists.txt new file mode 100644 index 00000000000..87bd84b08d1 --- /dev/null +++ b/reactos/base/applications/mscutils/servman/CMakeLists.txt @@ -0,0 +1,35 @@ + +set_unicode() +set_rc_compiler() + +list(APPEND SOURCE + about.c + control.c + create.c + delete.c + dependencies_tv1.c + dependencies_tv2.c + export.c + listview.c + mainwnd.c + misc.c + progress.c + propsheet.c + propsheet_depends.c + propsheet_general.c + query.c + servman.c + start.c + stop.c + stop_dependencies.c + servman.rc) + +add_executable(servman ${CMAKE_CURRENT_BINARY_DIR}/servman_precomp.h.gch ${SOURCE}) + +add_pch(servman ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +set_module_type(servman win32gui) + +add_importlibs(servman user32 gdi32 advapi32 version comctl32 shell32 comdlg32 msvcrt kernel32) + +add_cd_file(TARGET servman DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/mspaint/CMakeLists.txt b/reactos/base/applications/mspaint/CMakeLists.txt new file mode 100644 index 00000000000..fb701d814a6 --- /dev/null +++ b/reactos/base/applications/mspaint/CMakeLists.txt @@ -0,0 +1,21 @@ + +set_unicode() + +add_executable(paint + dialogs.c + dib.c + drawing.c + history.c + main.c + mouse.c + palette.c + registry.c + selection.c + sizebox.c + toolsettings.c + winproc.c + rsrc.rc) + +set_module_type(paint win32gui) +add_importlibs(paint comdlg32 shell32 user32 gdi32 advapi32 comctl32 msvcrt kernel32) +add_cab_target(paint 1) diff --git a/reactos/base/applications/mstsc/CMakeLists.txt b/reactos/base/applications/mstsc/CMakeLists.txt new file mode 100644 index 00000000000..ef37c8fd823 --- /dev/null +++ b/reactos/base/applications/mstsc/CMakeLists.txt @@ -0,0 +1,34 @@ + +set_unicode() + +list(APPEND SOURCE + bitmap.c + bsops.c + cache.c + channels.c + connectdialog.c + iso.c + licence.c + mcs.c + mppc.c + orders.c + pstcache.c + rdp5.c + rdp.c + secure.c + settings.c + ssl_calls.c + tcp.c + uimain.c + win32.c + rdc.rc) + +add_executable(mstsc ${CMAKE_CURRENT_BINARY_DIR}/mstsc_precomp.h.gch ${SOURCE}) + +add_pch(mstsc ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +set_module_type(mstsc win32gui) + +add_importlibs(mstsc user32 gdi32 comctl32 ws2_32 advapi32 shell32 ole32 comdlg32 msvcrt kernel32) + +add_cd_file(TARGET mstsc DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/network/CMakeLists.txt b/reactos/base/applications/network/CMakeLists.txt new file mode 100644 index 00000000000..d961ff60aa5 --- /dev/null +++ b/reactos/base/applications/network/CMakeLists.txt @@ -0,0 +1,16 @@ + +add_subdirectory(arp) +add_subdirectory(dwnl) +add_subdirectory(finger) +add_subdirectory(ftp) +add_subdirectory(ipconfig) +add_subdirectory(net) +add_subdirectory(netstat) +add_subdirectory(nslookup) +add_subdirectory(ping) +add_subdirectory(route) +if(NOT MSVC) +add_subdirectory(telnet) +endif() +add_subdirectory(tracert) +add_subdirectory(whois) diff --git a/reactos/base/applications/network/arp/CMakeLists.txt b/reactos/base/applications/network/arp/CMakeLists.txt new file mode 100644 index 00000000000..31e3066e219 --- /dev/null +++ b/reactos/base/applications/network/arp/CMakeLists.txt @@ -0,0 +1,8 @@ + +add_executable(arp arp.c arp.rc) + +set_module_type(arp win32cui) + +add_importlibs(arp iphlpapi ws2_32 shlwapi msvcrt kernel32) + +add_cd_file(TARGET arp DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/network/dwnl/CMakeLists.txt b/reactos/base/applications/network/dwnl/CMakeLists.txt new file mode 100644 index 00000000000..b1aff5f18b6 --- /dev/null +++ b/reactos/base/applications/network/dwnl/CMakeLists.txt @@ -0,0 +1,16 @@ +add_definitions(-D_DLL -D__USE_CRTIMP) + +set_unicode() + +add_executable(dwnl dwnl.c) + +set_module_type(dwnl win32cui) + +target_link_libraries(dwnl uuid) + +add_importlibs(dwnl urlmon wininet msvcrt kernel32) +if(MSVC) +add_importlibs(dwnl ntdll) +endif() + +add_cd_file(TARGET dwnl DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/network/finger/CMakeLists.txt b/reactos/base/applications/network/finger/CMakeLists.txt new file mode 100644 index 00000000000..88e1076475f --- /dev/null +++ b/reactos/base/applications/network/finger/CMakeLists.txt @@ -0,0 +1,15 @@ + +add_definitions( + -D__USE_W32_SOCKETS + -D_DLL -D__USE_CRTIMP) + +add_executable(finger + finger.c + err.c + getopt.c + net.c + finger.rc) + +set_module_type(finger win32cui) +add_importlibs(finger ws2_32 msvcrt kernel32) +add_cd_file(TARGET finger DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/network/ftp/CMakeLists.txt b/reactos/base/applications/network/ftp/CMakeLists.txt new file mode 100644 index 00000000000..522da951bec --- /dev/null +++ b/reactos/base/applications/network/ftp/CMakeLists.txt @@ -0,0 +1,24 @@ + +add_definitions( + -D_DLL -D__USE_CRTIMP + -Dlint) + +add_executable(ftp + cmds.c + cmdtab.c + domacro.c + fake.c + ftp.c + main.c + ruserpass.c + ftp.rc) + +set_module_type(ftp win32cui) +add_importlibs(ftp ws2_32 iphlpapi msvcrt kernel32) + +if(MSVC) + target_link_libraries(ftp oldnames) + add_importlibs(ftp ntdll) +endif() + +add_cd_file(TARGET ftp DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/network/ipconfig/CMakeLists.txt b/reactos/base/applications/network/ipconfig/CMakeLists.txt new file mode 100644 index 00000000000..d772922feed --- /dev/null +++ b/reactos/base/applications/network/ipconfig/CMakeLists.txt @@ -0,0 +1,5 @@ + +add_executable(ipconfig ipconfig.c ipconfig.rc) +set_module_type(ipconfig win32cui) +add_importlibs(ipconfig user32 iphlpapi advapi32 msvcrt kernel32) +add_cd_file(TARGET ipconfig DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/network/net/CMakeLists.txt b/reactos/base/applications/network/net/CMakeLists.txt new file mode 100644 index 00000000000..215d6a58d35 --- /dev/null +++ b/reactos/base/applications/network/net/CMakeLists.txt @@ -0,0 +1,15 @@ + +add_definitions(-D__USE_W32_SOCKETS) + +list(APPEND SOURCE + main.c + cmdstart.c + cmdStop.c + help.c + process.c) + +add_executable(net ${SOURCE}) + +set_module_type(net win32cui) +add_importlibs(net ws2_32 msvcrt kernel32) +add_cd_file(TARGET net DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/network/netstat/CMakeLists.txt b/reactos/base/applications/network/netstat/CMakeLists.txt new file mode 100644 index 00000000000..055e28f50c9 --- /dev/null +++ b/reactos/base/applications/network/netstat/CMakeLists.txt @@ -0,0 +1,5 @@ + +add_executable(netstat netstat.c netstat.rc) +set_module_type(netstat win32cui) +add_importlibs(netstat user32 ws2_32 snmpapi iphlpapi msvcrt kernel32) +add_cd_file(TARGET netstat DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/network/nslookup/CMakeLists.txt b/reactos/base/applications/network/nslookup/CMakeLists.txt new file mode 100644 index 00000000000..bc6fe21eaa0 --- /dev/null +++ b/reactos/base/applications/network/nslookup/CMakeLists.txt @@ -0,0 +1,9 @@ + +add_executable(nslookup + nslookup.c + utility.c + nslookup.rc) + +set_module_type(nslookup win32cui) +add_importlibs(nslookup user32 ws2_32 snmpapi iphlpapi msvcrt kernel32) +add_cd_file(TARGET nslookup DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/network/ping/CMakeLists.txt b/reactos/base/applications/network/ping/CMakeLists.txt new file mode 100644 index 00000000000..db5e7fc7206 --- /dev/null +++ b/reactos/base/applications/network/ping/CMakeLists.txt @@ -0,0 +1,16 @@ + +set_unicode() +add_definitions(-D__USE_W32_SOCKETS) + +set_unicode() + +add_executable(ping ping.c ping.rc) + +set_module_type(ping win32cui) + +add_importlibs(ping ws2_32 msvcrt kernel32) +if(MSVC) +add_importlibs(ping ntdll) +endif() + +add_cd_file(TARGET ping DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/network/route/CMakeLists.txt b/reactos/base/applications/network/route/CMakeLists.txt new file mode 100644 index 00000000000..7dde646d9ff --- /dev/null +++ b/reactos/base/applications/network/route/CMakeLists.txt @@ -0,0 +1,10 @@ + +add_definitions(-D_DLL -D__USE_CRTIMP) + +set_unicode() + +add_executable(route route.c route.rc) + +set_module_type(route win32cui) +add_importlibs(route ws2_32 iphlpapi msvcrt kernel32) +add_cd_file(TARGET route DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/network/telnet/CMakeLists.txt b/reactos/base/applications/network/telnet/CMakeLists.txt new file mode 100644 index 00000000000..eb4962e2f6c --- /dev/null +++ b/reactos/base/applications/network/telnet/CMakeLists.txt @@ -0,0 +1,32 @@ + +add_definitions( + -D_CRT_NONSTDC_NO_DEPRECATE + -D_DLL -D__USE_CRTIMP) + +set_cpp() + +add_executable(telnet + src/ansiprsr.cpp + src/keytrans.cpp + src/tcharmap.cpp + src/tconsole.cpp + src/tkeydef.cpp + src/tkeymap.cpp + src/tmapldr.cpp + src/tmouse.cpp + src/tnclass.cpp + src/tnclip.cpp + src/tncon.cpp + src/tnconfig.cpp + src/tnerror.cpp + src/tnetwork.cpp + src/tnmain.cpp + src/tnmisc.cpp + src/tscript.cpp + src/tscroll.cpp + src/ttelhndl.cpp + telnet.rc) + +set_module_type(telnet win32cui) +add_importlibs(telnet ws2_32 user32 kernel32 msvcrt) +add_cd_file(TARGET telnet DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/network/tracert/CMakeLists.txt b/reactos/base/applications/network/tracert/CMakeLists.txt new file mode 100644 index 00000000000..9b55089ec37 --- /dev/null +++ b/reactos/base/applications/network/tracert/CMakeLists.txt @@ -0,0 +1,13 @@ + +add_definitions(-D__USE_W32_SOCKETS) + +add_executable(tracert tracert.c tracert.rc) + +set_module_type(tracert win32cui) + +add_importlibs(tracert ws2_32 msvcrt kernel32) +if(MSVC) +add_importlibs(tracert ntdll) +endif() + +add_cd_file(TARGET tracert DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/network/whois/CMakeLists.txt b/reactos/base/applications/network/whois/CMakeLists.txt new file mode 100644 index 00000000000..fb67240d921 --- /dev/null +++ b/reactos/base/applications/network/whois/CMakeLists.txt @@ -0,0 +1,8 @@ + +add_definitions(-D_DLL -D__USE_CRTIMP) + +add_executable(whois whois.c whois.rc) + +set_module_type(whois win32cui) +add_importlibs(whois ws2_32 msvcrt kernel32) +add_cd_file(TARGET whois DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/notepad/CMakeLists.txt b/reactos/base/applications/notepad/CMakeLists.txt new file mode 100644 index 00000000000..c59cd26f2bb --- /dev/null +++ b/reactos/base/applications/notepad/CMakeLists.txt @@ -0,0 +1,17 @@ + +list(APPEND SOURCE + dialog.c + main.c + settings.c + text.c + rsrc.rc) + +set_rc_compiler() + +add_pch(notepad ${CMAKE_CURRENT_SOURCE_DIR}/notepad.h ${SOURCE}) + +add_executable(notepad ${CMAKE_CURRENT_BINARY_DIR}/notepad_notepad.h.gch ${SOURCE}) + +set_module_type(notepad win32gui) +add_importlibs(notepad user32 gdi32 comctl32 comdlg32 advapi32 shell32 msvcrt kernel32) +add_cd_file(TARGET notepad DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/rapps/CMakeLists.txt b/reactos/base/applications/rapps/CMakeLists.txt new file mode 100644 index 00000000000..e3a053e5519 --- /dev/null +++ b/reactos/base/applications/rapps/CMakeLists.txt @@ -0,0 +1,35 @@ + +set_unicode() + +list(APPEND SOURCE + aboutdlg.c + available.c + installdlg.c + installed.c + listview.c + loaddlg.c + misc.c + parser.c + richedit.c + settingsdlg.c + splitter.c + statusbar.c + toolbar.c + treeview.c + winmain.c + rapps.rc) + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${REACTOS_BINARY_DIR}/include/reactos) + +set_rc_compiler() + +add_executable(rapps ${SOURCE}) +set_module_type(rapps win32gui) +target_link_libraries(rapps uuid) + +add_importlibs(rapps advapi32 comctl32 gdi32 urlmon user32 shell32 shlwapi kernel32 msvcrt ntdll) +add_dependencies(rapps rappsmsg) +add_message_headers(rappsmsg.mc) +add_cd_file(TARGET rapps DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/regedit/CMakeLists.txt b/reactos/base/applications/regedit/CMakeLists.txt new file mode 100644 index 00000000000..4fb1946f698 --- /dev/null +++ b/reactos/base/applications/regedit/CMakeLists.txt @@ -0,0 +1,37 @@ + +add_definitions(-D_DLL -D__USE_CRTIMP) + +set_unicode() +set_rc_compiler() + +include_directories(BEFORE .) + +list(APPEND SOURCE + about.c + childwnd.c + edit.c + error.c + find.c + framewnd.c + hexedit.c + listview.c + main.c + regedit.c + regproc.c + security.c + treeview.c + regedit.rc) + +add_pch(regedit ${CMAKE_CURRENT_SOURCE_DIR}/regedit.h ${SOURCE}) + +add_executable(regedit ${CMAKE_CURRENT_BINARY_DIR}/regedit_regedit.h.gch ${SOURCE}) + +set_module_type(regedit win32gui) + +target_link_libraries(regedit uuid) + +add_importlibs(regedit user32 gdi32 advapi32 ole32 shell32 comctl32 comdlg32 shlwapi msvcrt kernel32) + +#add_subdirectory(clb) + +add_cd_file(TARGET regedit DESTINATION reactos FOR all) diff --git a/reactos/base/applications/regedit/clb/CMakeLists.txt b/reactos/base/applications/regedit/clb/CMakeLists.txt new file mode 100644 index 00000000000..4024c925df2 --- /dev/null +++ b/reactos/base/applications/regedit/clb/CMakeLists.txt @@ -0,0 +1,14 @@ + +spec2def(clb.dll clb.spec) + +set_unicode() +set_rc_compiler() + +add_library(clb SHARED + clb.c + clb.rc + ${CMAKE_CURRENT_BINARY_DIR}/clb.def) + +set_module_type(clb win32dll) +add_importlibs(clb user32 gdi32 comctl32 kernel32 ntdll) + \ No newline at end of file diff --git a/reactos/base/applications/regedt32/CMakeLists.txt b/reactos/base/applications/regedt32/CMakeLists.txt new file mode 100644 index 00000000000..563098cd4c7 --- /dev/null +++ b/reactos/base/applications/regedt32/CMakeLists.txt @@ -0,0 +1,9 @@ + +set_unicode() +set_rc_compiler() + +add_executable(regedt32 regedt32.c resource.rc) + +set_module_type(regedt32 win32gui) +add_importlibs(regedt32 shell32 shlwapi msvcrt kernel32) +add_cd_file(TARGET regedt32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/sc/CMakeLists.txt b/reactos/base/applications/sc/CMakeLists.txt new file mode 100644 index 00000000000..0854d5b229c --- /dev/null +++ b/reactos/base/applications/sc/CMakeLists.txt @@ -0,0 +1,22 @@ + +set_unicode() +add_definitions(-DDEFINE_GUID) + +list(APPEND SOURCE + control.c + create.c + delete.c + print.c + query.c + sc.c + start.c + usage.c + sc.rc) + +add_executable(sc ${CMAKE_CURRENT_BINARY_DIR}/sc_sc.h.gch ${SOURCE}) + +add_pch(sc ${CMAKE_CURRENT_SOURCE_DIR}/sc.h ${SOURCE}) + +set_module_type(sc win32cui) +add_importlibs(sc advapi32 msvcrt kernel32) +add_cd_file(TARGET sc DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/screensavers/3dtext/CMakeLists.txt b/reactos/base/applications/screensavers/3dtext/CMakeLists.txt new file mode 100644 index 00000000000..083b0b0304d --- /dev/null +++ b/reactos/base/applications/screensavers/3dtext/CMakeLists.txt @@ -0,0 +1,16 @@ + +set_rc_compiler() +set_unicode() + +add_executable(3dtext + 3dtext.c + settings.c + rsrc.rc) + +set_module_type(3dtext win32gui) +set_target_properties(3dtext PROPERTIES SUFFIX ".scr") + +target_link_libraries(3dtext scrnsave) +add_importlibs(3dtext user32 gdi32 opengl32 glu32 advapi32 msvcrt kernel32) + +add_cd_file(TARGET 3dtext DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/screensavers/CMakeLists.txt b/reactos/base/applications/screensavers/CMakeLists.txt new file mode 100644 index 00000000000..d232c3c7476 --- /dev/null +++ b/reactos/base/applications/screensavers/CMakeLists.txt @@ -0,0 +1,3 @@ + +add_subdirectory(3dtext) +add_subdirectory(logon) diff --git a/reactos/base/applications/screensavers/logon/CMakeLists.txt b/reactos/base/applications/screensavers/logon/CMakeLists.txt new file mode 100644 index 00000000000..0e0a02f9e58 --- /dev/null +++ b/reactos/base/applications/screensavers/logon/CMakeLists.txt @@ -0,0 +1,12 @@ + +set_rc_compiler() +set_unicode() + +add_executable(logon logon.c logon.rc) + +set_module_type(logon win32gui) +set_target_properties(logon PROPERTIES SUFFIX ".scr") + +target_link_libraries(logon scrnsave) +add_importlibs(logon user32 gdi32 msvcrt kernel32) +add_cd_file(TARGET logon DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/shutdown/CMakeLists.txt b/reactos/base/applications/shutdown/CMakeLists.txt new file mode 100644 index 00000000000..196d558ce82 --- /dev/null +++ b/reactos/base/applications/shutdown/CMakeLists.txt @@ -0,0 +1,15 @@ + +add_definitions(-D_DLL -D__USE_CRTIMP) + +list(APPEND SOURCE + misc.c + shutdown.c + shutdown.rc) + +add_executable(shutdown ${CMAKE_CURRENT_BINARY_DIR}/shutdown_precomp.h.gch ${SOURCE}) + +add_pch(shutdown ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +set_module_type(shutdown win32cui) +add_importlibs(shutdown advapi32 user32 msvcrt kernel32) +add_cd_file(TARGET shutdown DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/sndrec32/CMakeLists.txt b/reactos/base/applications/sndrec32/CMakeLists.txt new file mode 100644 index 00000000000..e189437896e --- /dev/null +++ b/reactos/base/applications/sndrec32/CMakeLists.txt @@ -0,0 +1,20 @@ + +set_unicode() +set_cpp() +set_rc_compiler() + +add_executable(sndrec32 + audio_format.cpp + audio_membuffer.cpp + audio_producer.cpp + audio_receiver.cpp + audio_resampler_acm.cpp + audio_wavein.cpp + audio_waveout.cpp + sndrec32.cpp + rsrc.rc) + +target_link_libraries(sndrec32 stlport) +set_module_type(sndrec32 win32gui) +add_importlibs(sndrec32 winmm user32 msacm32 comctl32 comdlg32 gdi32 msvcrt kernel32) +add_cd_file(TARGET sndrec32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/sndvol32/CMakeLists.txt b/reactos/base/applications/sndvol32/CMakeLists.txt new file mode 100644 index 00000000000..9208072f08e --- /dev/null +++ b/reactos/base/applications/sndvol32/CMakeLists.txt @@ -0,0 +1,19 @@ + +add_definitions(-D_DLL -D__USE_CRTIMP) + +set_unicode() + +list(APPEND SOURCE + dialog.c + misc.c + mixer.c + sndvol32.c + sndvol32.rc) + +add_executable(sndvol32 ${CMAKE_CURRENT_BINARY_DIR}/sndvol32_sndvol32.h.gch ${SOURCE}) + +add_pch(sndvol32 ${CMAKE_CURRENT_SOURCE_DIR}/sndvol32.h ${SOURCE}) + +set_module_type(sndvol32 win32gui) +add_importlibs(sndvol32 user32 advapi32 gdi32 comctl32 shell32 winmm msvcrt kernel32 ntdll) +add_cd_file(TARGET sndvol32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/taskmgr/CMakeLists.txt b/reactos/base/applications/taskmgr/CMakeLists.txt new file mode 100644 index 00000000000..b36860362e5 --- /dev/null +++ b/reactos/base/applications/taskmgr/CMakeLists.txt @@ -0,0 +1,32 @@ + +set_unicode() +set_rc_compiler() + +list(APPEND SOURCE + about.c + affinity.c + applpage.c + column.c + dbgchnl.c + debug.c + endproc.c + graph.c + optnmenu.c + perfdata.c + perfpage.c + priority.c + procpage.c + proclist.c + run.c + trayicon.c + taskmgr.c + graphctl.c + taskmgr.rc) + +add_executable(taskmgr ${CMAKE_CURRENT_BINARY_DIR}/taskmgr_precomp.h.gch ${SOURCE}) + +add_pch(taskmgr ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +set_module_type(taskmgr win32gui) +add_importlibs(taskmgr advapi32 user32 gdi32 shell32 comctl32 msvcrt kernel32 ntdll) +add_cd_file(TARGET taskmgr DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/winhlp32/CMakeLists.txt b/reactos/base/applications/winhlp32/CMakeLists.txt new file mode 100644 index 00000000000..8b1e1fe154f --- /dev/null +++ b/reactos/base/applications/winhlp32/CMakeLists.txt @@ -0,0 +1,26 @@ + +set_rc_compiler() + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_definitions( + -D__ROS_LONG64__ + -D_CRT_NONSTDC_NO_DEPRECATE + -Dfileno=_fileno + -Disatty=_isatty + -D_DLL -D__USE_CRTIMP) + +add_executable(winhlp32 + callback.c + hlpfile.c + macro.c + string.c + winhelp.c + lex.yy.c + rsrc.rc) + +set_module_type(winhlp32 win32gui) + +target_link_libraries(winhlp32 wine) +add_importlibs(winhlp32 user32 gdi32 shell32 comctl32 comdlg32 msvcrt kernel32 ntdll) +add_cd_file(TARGET winhlp32 DESTINATION reactos FOR all) diff --git a/reactos/base/applications/winver/CMakeLists.txt b/reactos/base/applications/winver/CMakeLists.txt new file mode 100644 index 00000000000..005d1a3ce47 --- /dev/null +++ b/reactos/base/applications/winver/CMakeLists.txt @@ -0,0 +1,7 @@ + +set_unicode() + +add_executable(winver winver.c) +set_module_type(winver win32gui) +add_importlibs(winver shell32 msvcrt kernel32) +add_cd_file(TARGET winver DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/wordpad/CMakeLists.txt b/reactos/base/applications/wordpad/CMakeLists.txt new file mode 100644 index 00000000000..e8f3906dda9 --- /dev/null +++ b/reactos/base/applications/wordpad/CMakeLists.txt @@ -0,0 +1,23 @@ + +include_directories(BEFORE ${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_definitions( + -D__ROS_LONG64__ + -D_DLL -D__USE_CRTIMP) + +set_rc_compiler() + +list(APPEND SOURCE + olecallback.c + print.c + registry.c + wordpad.c + rsrc.rc) + +add_executable(wordpad ${SOURCE}) + +set_module_type(wordpad win32gui) + +target_link_libraries(wordpad wine uuid) +add_importlibs(wordpad comdlg32 ole32 shell32 user32 gdi32 advapi32 comctl32 msvcrt kernel32 ntdll) +add_cd_file(TARGET wordpad DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/applications/write/CMakeLists.txt b/reactos/base/applications/write/CMakeLists.txt new file mode 100644 index 00000000000..4660a307f7a --- /dev/null +++ b/reactos/base/applications/write/CMakeLists.txt @@ -0,0 +1,7 @@ + +set_unicode() + +add_executable(write write.c rsrc.rc) +set_module_type(write win32gui) +add_importlibs(write user32 gdi32 msvcrt kernel32) +add_cd_file(TARGET write DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/services/CMakeLists.txt b/reactos/base/services/CMakeLists.txt new file mode 100644 index 00000000000..c49d77ba533 --- /dev/null +++ b/reactos/base/services/CMakeLists.txt @@ -0,0 +1,11 @@ + +add_subdirectory(audiosrv) +add_subdirectory(eventlog) +add_subdirectory(rpcss) +add_subdirectory(spoolsv) +add_subdirectory(svchost) +add_subdirectory(tcpsvcs) +add_subdirectory(telnetd) +#add_subdirectory(tftpd) +add_subdirectory(umpnpmgr) +add_subdirectory(wlansvc) diff --git a/reactos/base/services/audiosrv/CMakeLists.txt b/reactos/base/services/audiosrv/CMakeLists.txt new file mode 100644 index 00000000000..bd96bf7f3a6 --- /dev/null +++ b/reactos/base/services/audiosrv/CMakeLists.txt @@ -0,0 +1,15 @@ + +set_unicode(audiosrv yes) + +add_executable(audiosrv + main.c + pnp_list_manager.c + pnp_list_lock.c + pnp.c + services.c + debug.c + audiosrv.rc) + +set_module_type(audiosrv win32cui) +add_importlibs(audiosrv advapi32 user32 setupapi msvcrt kernel32) +add_cd_file(TARGET audiosrv DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/services/eventlog/CMakeLists.txt b/reactos/base/services/eventlog/CMakeLists.txt new file mode 100644 index 00000000000..424606205c4 --- /dev/null +++ b/reactos/base/services/eventlog/CMakeLists.txt @@ -0,0 +1,22 @@ + +include_directories(${REACTOS_BINARY_DIR}/include/reactos/idl) + +set_unicode() + +list(APPEND SOURCE + eventlog.c + eventsource.c + logport.c + eventlog.rc + rpc.c + file.c) + +add_executable(eventlog ${CMAKE_CURRENT_BINARY_DIR}/eventlog_eventlog.h.gch ${SOURCE}) + +target_link_libraries(eventlog eventlogrpc ${PSEH_LIB}) + +add_pch(eventlog ${CMAKE_CURRENT_SOURCE_DIR}/eventlog.h ${SOURCE}) + +set_module_type(eventlog win32cui) +add_importlibs(eventlog advapi32 rpcrt4 msvcrt kernel32 ntdll) +add_cd_file(TARGET eventlog DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/services/rpcss/CMakeLists.txt b/reactos/base/services/rpcss/CMakeLists.txt new file mode 100644 index 00000000000..f84c816f951 --- /dev/null +++ b/reactos/base/services/rpcss/CMakeLists.txt @@ -0,0 +1,21 @@ + +set_unicode() + +list(APPEND SOURCE + epmp.c + irotp.c + rpcss_main.c + service_main.c + rpcss.rc) + +include_directories(${REACTOS_BINARY_DIR}/include/reactos/wine) + +add_executable(rpcss ${SOURCE}) + +target_link_libraries(rpcss epmrpc irotrpc ${PSEH_LIB} wine) + +set_module_type(rpcss win32cui) + +add_importlibs(rpcss advapi32 rpcrt4 msvcrt kernel32 ntdll) +add_cd_file(TARGET rpcss DESTINATION reactos/system32 FOR all) +add_dependencies(rpcss winesdk) diff --git a/reactos/base/services/spoolsv/CMakeLists.txt b/reactos/base/services/spoolsv/CMakeLists.txt new file mode 100644 index 00000000000..2724ed06c4a --- /dev/null +++ b/reactos/base/services/spoolsv/CMakeLists.txt @@ -0,0 +1,10 @@ + +set_unicode() + +add_executable(spoolsv spoolsv.c spoolsv.rc) + +target_link_libraries(spoolsv wine) + +set_module_type(spoolsv win32cui) +add_importlibs(spoolsv advapi32 msvcrt kernel32 ntdll) +add_cd_file(TARGET spoolsv DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/services/svchost/CMakeLists.txt b/reactos/base/services/svchost/CMakeLists.txt new file mode 100644 index 00000000000..637b6931edd --- /dev/null +++ b/reactos/base/services/svchost/CMakeLists.txt @@ -0,0 +1,6 @@ + +add_executable(svchost svchost.c svchost.rc) + +set_module_type(svchost win32cui) +add_importlibs(svchost advapi32 msvcrt kernel32 ntdll) +add_cd_file(TARGET svchost DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/services/tcpsvcs/CMakeLists.txt b/reactos/base/services/tcpsvcs/CMakeLists.txt new file mode 100644 index 00000000000..02439ab483a --- /dev/null +++ b/reactos/base/services/tcpsvcs/CMakeLists.txt @@ -0,0 +1,23 @@ + +set_unicode() + +list(APPEND SOURCE + tcpsvcs.c + skelserver.c + echo.c + discard.c + daytime.c + qotd.c + chargen.c + tcpsvcs.rc + log.c) + +add_executable(tcpsvcs ${CMAKE_CURRENT_BINARY_DIR}/tcpsvcs_tcpsvcs.h.gch ${SOURCE}) + +add_pch(tcpsvcs ${CMAKE_CURRENT_SOURCE_DIR}/tcpsvcs.h ${SOURCE}) +set_module_type(tcpsvcs win32cui) +add_importlibs(tcpsvcs ws2_32 advapi32 msvcrt kernel32 ntdll) + + +add_cd_file(TARGET tcpsvcs DESTINATION reactos/system32 FOR all) +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/quotes DESTINATION reactos/system32/drivers/etc FOR all) \ No newline at end of file diff --git a/reactos/base/services/telnetd/CMakeLists.txt b/reactos/base/services/telnetd/CMakeLists.txt new file mode 100644 index 00000000000..225696094d5 --- /dev/null +++ b/reactos/base/services/telnetd/CMakeLists.txt @@ -0,0 +1,13 @@ + +add_definitions(-D_DLL -D__USE_CRTIMP) + +add_executable(telnetd + telnetd.c + serviceentry.c + telnetd.rc) + +target_link_libraries(telnetd wine) + +set_module_type(telnetd win32cui) +add_importlibs(telnetd advapi32 ws2_32 msvcrt kernel32 ntdll) +add_cd_file(TARGET telnetd DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/services/tftpd/CMakeLists.txt b/reactos/base/services/tftpd/CMakeLists.txt new file mode 100644 index 00000000000..967dd158ca1 --- /dev/null +++ b/reactos/base/services/tftpd/CMakeLists.txt @@ -0,0 +1,7 @@ + +add_executable(tftpd tftpd.cpp) + +target_link_libraries(tftpd wine) + +set_module_type(tftpd win32cui) +add_importlibs(tftpd advapi32 ws2_32 msvcrt kernel32 ntdll) diff --git a/reactos/base/services/umpnpmgr/CMakeLists.txt b/reactos/base/services/umpnpmgr/CMakeLists.txt new file mode 100644 index 00000000000..d02270ebe3f --- /dev/null +++ b/reactos/base/services/umpnpmgr/CMakeLists.txt @@ -0,0 +1,14 @@ + +set_unicode() + +include_directories(${REACTOS_BINARY_DIR}/include/reactos/idl) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +add_executable(umpnpmgr umpnpmgr.c umpnpmgr.rc) +target_link_libraries(umpnpmgr pnprpc wdmguid ${PSEH_LIB}) + +set_module_type(umpnpmgr win32cui) +add_importlibs(umpnpmgr advapi32 rpcrt4 userenv msvcrt kernel32 ntdll) +add_cd_file(TARGET umpnpmgr DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/services/wlansvc/CMakeLists.txt b/reactos/base/services/wlansvc/CMakeLists.txt new file mode 100644 index 00000000000..91edbdaf48b --- /dev/null +++ b/reactos/base/services/wlansvc/CMakeLists.txt @@ -0,0 +1,11 @@ + +set_unicode() +include_directories(${REACTOS_BINARY_DIR}/include/reactos/idl) + +add_executable(wlansvc wlansvc.c rpcserver.c) + +target_link_libraries(wlansvc wlansvcrpc ${PSEH_LIB}) + +set_module_type(wlansvc win32cui) +add_importlibs(wlansvc advapi32 rpcrt4 iphlpapi msvcrt kernel32 ntdll) +add_cd_file(TARGET wlansvc DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/setup/CMakeLists.txt b/reactos/base/setup/CMakeLists.txt new file mode 100644 index 00000000000..02a7bc1c2e9 --- /dev/null +++ b/reactos/base/setup/CMakeLists.txt @@ -0,0 +1,6 @@ + +add_subdirectory(reactos) +add_subdirectory(setup) +add_subdirectory(usetup) +add_subdirectory(vmwinst) +add_subdirectory(welcome) diff --git a/reactos/base/setup/reactos/CMakeLists.txt b/reactos/base/setup/reactos/CMakeLists.txt new file mode 100644 index 00000000000..85abb83efba --- /dev/null +++ b/reactos/base/setup/reactos/CMakeLists.txt @@ -0,0 +1,11 @@ + +set_unicode() +set_rc_compiler() + +add_executable(reactos reactos.c reactos.rc) + +target_link_libraries(reactos uuid) + +set_module_type(reactos win32gui) +add_importlibs(reactos gdi32 user32 comctl32 setupapi msvcrt kernel32 ntdll) +add_cd_file(TARGET reactos DESTINATION reactos NO_CAB FOR bootcd) diff --git a/reactos/base/setup/setup/CMakeLists.txt b/reactos/base/setup/setup/CMakeLists.txt new file mode 100644 index 00000000000..5bff8ecc28a --- /dev/null +++ b/reactos/base/setup/setup/CMakeLists.txt @@ -0,0 +1,8 @@ + +set_unicode() + +add_executable(setup setup.c setup.rc) + +set_module_type(setup win32gui) +add_importlibs(setup userenv msvcrt kernel32 ntdll) +add_cd_file(TARGET setup DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/setup/usetup/CMakeLists.txt b/reactos/base/setup/usetup/CMakeLists.txt new file mode 100644 index 00000000000..a0f6410702c --- /dev/null +++ b/reactos/base/setup/usetup/CMakeLists.txt @@ -0,0 +1,47 @@ + +include_directories( + ${REACTOS_SOURCE_DIR}/lib/newinflib + ${REACTOS_SOURCE_DIR}/lib/3rdparty/zlib + ${REACTOS_SOURCE_DIR}/include/reactos/drivers) + +add_executable(usetup + interface/usetup.c + interface/devinst.c + interface/consup.c + native/utils/keytrans.c + native/utils/console.c + native/fslist.c + native/console.c + bootsup.c + cabinet.c + chkdsk.c + drivesup.c + filesup.c + filequeue.c + format.c + fslist.c + genlist.c + inffile.c + inicache.c + mui.c + partlist.c + progress.c + registry.c + settings.c + usetup.rc) + +target_link_libraries(usetup + mingw_main + zlib + inflib + ext2lib + vfatlib + mingw_common) + +if(MSVC) + target_link_libraries(usetup msvcsup) +endif() + +set_module_type(usetup nativecui) +add_importlibs(usetup kernel32 ntdll) +add_cd_file(TARGET usetup DESTINATION reactos/system32 NO_CAB NAME_ON_CD smss.exe FOR bootcd) diff --git a/reactos/base/setup/vmwinst/CMakeLists.txt b/reactos/base/setup/vmwinst/CMakeLists.txt new file mode 100644 index 00000000000..975d16d5dc4 --- /dev/null +++ b/reactos/base/setup/vmwinst/CMakeLists.txt @@ -0,0 +1,21 @@ + +set_unicode() + +add_executable(vmwinst vmwinst.c vmwinst.rc) + +target_link_libraries(vmwinst ${PSEH_LIB}) + +set_module_type(vmwinst win32gui) +add_importlibs(vmwinst + advapi32 + comctl32 + comdlg32 + newdev + user32 + setupapi + shell32 + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET vmwinst DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/setup/welcome/CMakeLists.txt b/reactos/base/setup/welcome/CMakeLists.txt new file mode 100644 index 00000000000..f4252dbaa88 --- /dev/null +++ b/reactos/base/setup/welcome/CMakeLists.txt @@ -0,0 +1,8 @@ + +set_unicode() + +add_executable(welcome welcome.c welcome.rc) + +set_module_type(welcome win32gui) +add_importlibs(welcome gdi32 user32 msvcrt kernel32 ntdll) +add_cd_file(TARGET welcome DESTINATION reactos NO_CAB FOR bootcd) diff --git a/reactos/base/shell/CMakeLists.txt b/reactos/base/shell/CMakeLists.txt new file mode 100644 index 00000000000..4849ec112a6 --- /dev/null +++ b/reactos/base/shell/CMakeLists.txt @@ -0,0 +1,7 @@ + +add_subdirectory(cmd) +if(NOT MSVC) +add_subdirectory(explorer) +endif() +add_subdirectory(explorer-new) + diff --git a/reactos/base/shell/cmd/CMakeLists.txt b/reactos/base/shell/cmd/CMakeLists.txt new file mode 100644 index 00000000000..855d5fa458a --- /dev/null +++ b/reactos/base/shell/cmd/CMakeLists.txt @@ -0,0 +1,82 @@ + +set_unicode() + +add_definitions( + -DANONYMOUSUNIONS + -D_DEBUG_MEM) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +list(APPEND SOURCE main.c cmd.rc) + +list(APPEND SOURCE + alias.c + assoc.c + attrib.c + batch.c + beep.c + call.c + chcp.c + choice.c + cls.c + cmd.c + cmddbg.c + cmdinput.c + cmdtable.c + color.c + console.c + copy.c + date.c + del.c + delay.c + dir.c + dirstack.c + echo.c + error.c + filecomp.c + for.c + free.c + goto.c + history.c + if.c + internal.c + label.c + locale.c + memory.c + misc.c + mklink.c + move.c + msgbox.c + parser.c + path.c + pause.c + prompt.c + redir.c + ren.c + replace.c + screen.c + set.c + setlocal.c + shift.c + start.c + strtoclr.c + time.c + timer.c + title.c + type.c + ver.c + verify.c + vol.c + where.c + window.c) + +add_executable(cmd ${CMAKE_CURRENT_BINARY_DIR}/cmd_precomp.h.gch ${SOURCE}) + +target_link_libraries(cmd wine) + +add_pch(cmd ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h SOURCE) +set_module_type(cmd win32cui) +add_importlibs(cmd advapi32 user32 msvcrt kernel32 ntdll) +add_cd_file(TARGET cmd DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/shell/explorer-new/CMakeLists.txt b/reactos/base/shell/explorer-new/CMakeLists.txt new file mode 100644 index 00000000000..6066f89dc5a --- /dev/null +++ b/reactos/base/shell/explorer-new/CMakeLists.txt @@ -0,0 +1,41 @@ + +set_unicode() + +add_definitions(-DWIN32) + +set_rc_compiler() + +list(APPEND SOURCE + desktop.c + dragdrop.c + explorer.c + startmnu.c + taskband.c + taskswnd.c + tbsite.c + trayntfy.c + trayprop.c + traywnd.c + explorer.rc) + +add_executable(explorer_new ${CMAKE_CURRENT_BINARY_DIR}/explorer_new_precomp.h.gch ${SOURCE}) + +target_link_libraries(explorer_new uuid) + +add_pch(explorer_new ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) +set_module_type(explorer_new win32gui) +add_importlibs(explorer_new + advapi32 + gdi32 + user32 + comctl32 + ole32 + oleaut32 + shell32 + shlwapi + version + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET explorer_new DESTINATION reactos FOR all) diff --git a/reactos/base/shell/explorer/CMakeLists.txt b/reactos/base/shell/explorer/CMakeLists.txt new file mode 100644 index 00000000000..6f01f7ee00f --- /dev/null +++ b/reactos/base/shell/explorer/CMakeLists.txt @@ -0,0 +1,77 @@ + +add_subdirectory(notifyhook) + +set_unicode() + +#NOTE : explorer doesn't follow standard c++, and so doesn't compile with stlport headers +#I'm not willing to do it if explorer_new is hanging around. +#jgardou +#set_cpp() + +add_definitions( + -DWIN32 + -D__WINDRES__ + -D_DLL -D__USE_CRTIMP) + +#add_pch(explorer ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h SOURCE) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) + +list(APPEND SOURCE + shell/mainframe.cpp + shell/unixfs.cpp + shell/ntobjfs.cpp + shell/filechild.cpp + shell/shellfs.cpp + shell/fatfs.cpp + shell/pane.cpp + shell/regfs.cpp + shell/webchild.cpp + shell/entries.cpp + shell/shellbrowser.cpp + shell/winfs.cpp + dialogs/searchprogram.cpp + dialogs/settings.cpp + i386-stub-win32.c + taskbar/taskbar.cpp + taskbar/favorites.cpp + taskbar/quicklaunch.cpp + taskbar/desktopbar.cpp + taskbar/startmenu.cpp + taskbar/traynotify.cpp + precomp.cpp + explorer.rc + services/startup.c + services/shellservices.cpp + desktop/desktop.cpp + explorer.cpp + utility/xs-native.cpp + utility/shellclasses.cpp + utility/dragdropimpl.cpp + utility/utility.cpp + utility/xmlstorage.cpp +# utility/splitpath.c msvcrt has _wsplitpath already + utility/window.cpp + utility/shellbrowserimpl.cpp) # utility/shelltests.cpp + +add_executable(explorer ${SOURCE}) #${CMAKE_CURRENT_BINARY_DIR}/explorer_precomp.h.gch ${SOURCE}) + +set_subsystem(explorer windows) +set_entrypoint(explorer WinMainCRTStartup) + +target_link_libraries(explorer + -lsupc++ + -lstdc++ + -lgcc + -lmingwex + wine + mingw_wmain + mingw_common + uuid) + +add_importlibs(explorer advapi32 gdi32 user32 ws2_32 msimg32 comctl32 ole32 oleaut32 shell32 notifyhook msvcrt kernel32 ntdll) + +set_image_base(explorer 0x00400000) + +add_dependencies(explorer psdk) +add_cd_file(TARGET explorer DESTINATION reactos FOR all) +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/explorer-cfg-template.xml DESTINATION reactos FOR all) diff --git a/reactos/base/shell/explorer/notifyhook/CMakeLists.txt b/reactos/base/shell/explorer/notifyhook/CMakeLists.txt new file mode 100644 index 00000000000..b3eda1e7589 --- /dev/null +++ b/reactos/base/shell/explorer/notifyhook/CMakeLists.txt @@ -0,0 +1,17 @@ + +add_definitions(-D_NOTIFYHOOK_IMPL) + +spec2def(notifyhook.dll notifyhook.spec) + +list(APPEND SOURCE + notifyhook.c + notifyhook.rc + ${CMAKE_CURRENT_BINARY_DIR}/notifyhook.def) + +add_library(notifyhook SHARED ${SOURCE}) + +set_module_type(notifyhook win32dll) + +add_importlibs(notifyhook user32 msvcrt kernel32) +add_importlib_target(notifyhook.spec) +add_cd_file(TARGET notifyhook DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/shell/explorer/notifyhook/notifyhook.spec b/reactos/base/shell/explorer/notifyhook/notifyhook.spec new file mode 100644 index 00000000000..e27ea751426 --- /dev/null +++ b/reactos/base/shell/explorer/notifyhook/notifyhook.spec @@ -0,0 +1,4 @@ +@ cdecl DeinstallNotifyHook() +@ cdecl GetWindowModulePath(ptr) +@ cdecl GetWindowModulePathCopyData(ptr ptr ptr long) +@ cdecl InstallNotifyHook() \ No newline at end of file diff --git a/reactos/base/system/CMakeLists.txt b/reactos/base/system/CMakeLists.txt new file mode 100644 index 00000000000..80232bcae26 --- /dev/null +++ b/reactos/base/system/CMakeLists.txt @@ -0,0 +1,15 @@ + +add_subdirectory(autochk) +add_subdirectory(bootok) +add_subdirectory(expand) +add_subdirectory(format) +add_subdirectory(lsass) +add_subdirectory(msiexec) +add_subdirectory(regsvr32) +add_subdirectory(rundll32) +add_subdirectory(runonce) +add_subdirectory(services) +add_subdirectory(smss) +add_subdirectory(subst) +add_subdirectory(userinit) +add_subdirectory(winlogon) diff --git a/reactos/base/system/autochk/CMakeLists.txt b/reactos/base/system/autochk/CMakeLists.txt new file mode 100644 index 00000000000..fe3a4cdc718 --- /dev/null +++ b/reactos/base/system/autochk/CMakeLists.txt @@ -0,0 +1,8 @@ + +add_executable(autochk WIN32 autochk.c autochk.rc) + +set_module_type(autochk nativecui) + +target_link_libraries(autochk mingw_common nt) +add_importlibs(autochk kernel32 ntdll) +add_cd_file(TARGET autochk DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/system/bootok/CMakeLists.txt b/reactos/base/system/bootok/CMakeLists.txt new file mode 100644 index 00000000000..e59cd62ce20 --- /dev/null +++ b/reactos/base/system/bootok/CMakeLists.txt @@ -0,0 +1,10 @@ + +add_definitions(-D_DLL -D__USE_CRTIMP) + +set_unicode() + +add_executable(bootok bootok.c bootok.rc) + +set_module_type(bootok win32cui) +add_importlibs(bootok advapi32 msvcrt kernel32 ntdll) +add_cd_file(TARGET bootok DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/system/expand/CMakeLists.txt b/reactos/base/system/expand/CMakeLists.txt new file mode 100644 index 00000000000..d82276adcfc --- /dev/null +++ b/reactos/base/system/expand/CMakeLists.txt @@ -0,0 +1,10 @@ + +add_definitions(-D_DLL -D__USE_CRTIMP) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_executable(expand expand.c expand.rc) + +set_module_type(expand win32cui) +add_importlibs(expand lz32 setupapi user32 msvcrt kernel32 ntdll) +add_cd_file(TARGET expand DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/system/format/CMakeLists.txt b/reactos/base/system/format/CMakeLists.txt new file mode 100644 index 00000000000..ba1aa8da7c5 --- /dev/null +++ b/reactos/base/system/format/CMakeLists.txt @@ -0,0 +1,11 @@ + +add_definitions(-D_DLL -D__USE_CRTIMP) + +include_directories(.) +set_rc_compiler() + +add_executable(format format.c format.rc) + +set_module_type(format win32cui) +add_importlibs(format user32 fmifs msvcrt kernel32 ntdll) +add_cd_file(TARGET format DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/system/lsass/CMakeLists.txt b/reactos/base/system/lsass/CMakeLists.txt new file mode 100644 index 00000000000..6411aa40460 --- /dev/null +++ b/reactos/base/system/lsass/CMakeLists.txt @@ -0,0 +1,10 @@ + +set_unicode() + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/subsys) + +add_executable(lsass lsass.c lsass.rc) + +set_module_type(lsass win32gui) +add_importlibs(lsass advapi32 lsasrv msvcrt kernel32 ntdll) +add_cd_file(TARGET lsass DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/system/msiexec/CMakeLists.txt b/reactos/base/system/msiexec/CMakeLists.txt new file mode 100644 index 00000000000..9e4c2562343 --- /dev/null +++ b/reactos/base/system/msiexec/CMakeLists.txt @@ -0,0 +1,19 @@ + +add_definitions( + -D_DLL -D__USE_CRTIMP + -D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/wine) + +set_rc_compiler() + +add_executable(msiexec + msiexec.c + service.c + rsrc.rc) + +set_module_type(msiexec win32gui) + +target_link_libraries(msiexec uuid wine) +add_importlibs(msiexec user32 advapi32 ole32 msi msvcrt kernel32 ntdll) +add_cd_file(TARGET msiexec DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/system/regsvr32/CMakeLists.txt b/reactos/base/system/regsvr32/CMakeLists.txt new file mode 100644 index 00000000000..c784511eb63 --- /dev/null +++ b/reactos/base/system/regsvr32/CMakeLists.txt @@ -0,0 +1,12 @@ + +add_definitions(-D_DLL -D__USE_CRTIMP) + +set_unicode() +include_directories(.) +set_rc_compiler() + +add_executable(regsvr32 regsvr32.c regsvr32.rc) + +set_module_type(regsvr32 win32gui) +add_importlibs(regsvr32 user32 shell32 ole32 msvcrt kernel32 ntdll) +add_cd_file(TARGET regsvr32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/system/rundll32/CMakeLists.txt b/reactos/base/system/rundll32/CMakeLists.txt new file mode 100644 index 00000000000..9f7d43f4232 --- /dev/null +++ b/reactos/base/system/rundll32/CMakeLists.txt @@ -0,0 +1,10 @@ + +set_unicode() +include_directories(.) +set_rc_compiler() + +add_executable(rundll32 rundll32.c rundll32.rc) + +set_module_type(rundll32 win32gui) +add_importlibs(rundll32 user32 msvcrt kernel32 ntdll) +add_cd_file(TARGET rundll32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/system/runonce/CMakeLists.txt b/reactos/base/system/runonce/CMakeLists.txt new file mode 100644 index 00000000000..6fd8005a4ae --- /dev/null +++ b/reactos/base/system/runonce/CMakeLists.txt @@ -0,0 +1,9 @@ + +set_unicode() +set_rc_compiler() + +add_executable(runonce runonce.c runonce.rc) + +set_module_type(runonce win32gui) +add_importlibs(runonce advapi32 user32 msvcrt kernel32 ntdll) +add_cd_file(TARGET runonce DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/system/services/CMakeLists.txt b/reactos/base/system/services/CMakeLists.txt new file mode 100644 index 00000000000..5384849da3c --- /dev/null +++ b/reactos/base/system/services/CMakeLists.txt @@ -0,0 +1,27 @@ + +set_unicode() + +include_directories( + ${REACTOS_BINARY_DIR}/include/reactos/idl + ${REACTOS_SOURCE_DIR}/include/reactos/subsys) + +list(APPEND SOURCE + config.c + database.c + driver.c + groupdb.c + rpcserver.c + services.c + services.rc) + +add_executable(services ${CMAKE_CURRENT_BINARY_DIR}/services_services.h.gch ${SOURCE}) + +target_link_libraries(services + svcctlrpc + ${PSEH_LIB}) + +add_pch(services ${CMAKE_CURRENT_SOURCE_DIR}/services.h ${SOURCE}) + +set_module_type(services win32cui) +add_importlibs(services user32 advapi32 rpcrt4 msvcrt kernel32 ntdll) +add_cd_file(TARGET services DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/system/smss/CMakeLists.txt b/reactos/base/system/smss/CMakeLists.txt new file mode 100644 index 00000000000..b1c77a3b491 --- /dev/null +++ b/reactos/base/system/smss/CMakeLists.txt @@ -0,0 +1,38 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/subsys) + +list(APPEND SOURCE + client.c + debug.c + init.c + initdosdev.c + initenv.c + initheap.c + initmv.c + initobdir.c + initpage.c + initreg.c + initrun.c + initss.c + initwkdll.c + print.c + smapi.c + smapicomp.c + smapiexec.c + smapiquery.c + smss.c + smss.rc) + +add_executable(smss WIN32 ${CMAKE_CURRENT_BINARY_DIR}/smss_smss.h.gch ${SOURCE}) + +target_link_libraries(smss mingw_common nt smlib) +if(MSVC) + target_link_libraries(smss msvcsup) + set_entrypoint(smss DllMainCRTStartup) +endif() + +add_pch(smss ${CMAKE_CURRENT_SOURCE_DIR}/smss.h ${SOURCE}) + +set_module_type(smss nativecui) +add_importlibs(smss ntdll) +add_cd_file(TARGET smss DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/system/subst/CMakeLists.txt b/reactos/base/system/subst/CMakeLists.txt new file mode 100644 index 00000000000..4319b5e9b34 --- /dev/null +++ b/reactos/base/system/subst/CMakeLists.txt @@ -0,0 +1,11 @@ + +include_directories(.) +set_rc_compiler() + +add_definitions(-D_DLL -D__USE_CRTIMP) + +add_executable(subst subst.c subst.rc) + +set_module_type(subst win32cui) +add_importlibs(subst msvcrt kernel32 user32 ntdll) +add_cd_file(TARGET subst DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/system/userinit/CMakeLists.txt b/reactos/base/system/userinit/CMakeLists.txt new file mode 100644 index 00000000000..e2089b75e34 --- /dev/null +++ b/reactos/base/system/userinit/CMakeLists.txt @@ -0,0 +1,12 @@ + +set_unicode() +include_directories(.) +set_rc_compiler() + +add_executable(userinit userinit.c userinit.rc) + +target_link_libraries(userinit wine) + +set_module_type(userinit win32gui) +add_importlibs(userinit user32 gdi32 advapi32 shell32 shlwapi msvcrt kernel32 ntdll) +add_cd_file(TARGET userinit DESTINATION reactos/system32 FOR all) diff --git a/reactos/base/system/winlogon/CMakeLists.txt b/reactos/base/system/winlogon/CMakeLists.txt new file mode 100644 index 00000000000..945de9935fa --- /dev/null +++ b/reactos/base/system/winlogon/CMakeLists.txt @@ -0,0 +1,19 @@ + +list(APPEND SOURCE + environment.c + sas.c + screensaver.c + setup.c + winlogon.c + wlx.c + winlogon.rc) + +add_executable(winlogon ${CMAKE_CURRENT_BINARY_DIR}/winlogon_winlogon.h.gch ${SOURCE}) + +target_link_libraries(winlogon wine) + +add_pch(winlogon ${CMAKE_CURRENT_SOURCE_DIR}/winlogon.h ${SOURCE}) + +set_module_type(winlogon win32gui) +add_importlibs(winlogon user32 advapi32 userenv secur32 msvcrt kernel32 ntdll) +add_cd_file(TARGET winlogon DESTINATION reactos/system32 FOR all) diff --git a/reactos/baseaddress.cmake b/reactos/baseaddress.cmake new file mode 100644 index 00000000000..9a3128c702e --- /dev/null +++ b/reactos/baseaddress.cmake @@ -0,0 +1,261 @@ +set(baseaddress_regtests 0x07000000) +set(baseaddress_notifyhook 0x08000000) +set(baseaddress_faultrep 0x107a0000) +set(baseaddress_qmgrprxy 0x1f710000) +set(baseaddress_cryptdlg 0x209c0000) +set(baseaddress_comcat 0x20a50000) +set(baseaddress_windowscodecs 0x26c40000) +set(baseaddress_devenum 0x35670000) +set(baseaddress_rsabase 0x35700000) +set(baseaddress_rsaenh 0x35780000) +set(baseaddress_url 0x42ea0000) +set(baseaddress_wlanapi 0x470f0000) +set(baseaddress_pidgen 0x473e0000) +set(baseaddress_dwmapi 0x4a3f0000) +set(baseaddress_t2embed 0x4b310000) +set(baseaddress_msftedit 0x4b460000) +set(baseaddress_loadperf 0x4b920000) +set(baseaddress_mprapi 0x4c400000) +set(baseaddress_wuapi 0x506a0000) +set(baseaddress_srclient 0x512c0000) +set(baseaddress_pstorec 0x513d0000) +set(baseaddress_lpk 0x516c0000) +set(baseaddress_msgsm32acm 0x56db0000) +set(baseaddress_msdvbnp 0x58280000) +set(baseaddress_msg711acm 0x584f0000) +set(baseaddress_imaadp32acm 0x585e0000) +set(baseaddress_bdaplgin 0x58600000) +set(baseaddress_telephon 0x58750000) +set(baseaddress_pwrcfg 0x587e0000) +set(baseaddress_mmsys 0x588a0000) +set(baseaddress_joy 0x589b0000) +set(baseaddress_qmgr 0x59620000) +set(baseaddress_msvidctl 0x59660000) +set(baseaddress_uxtheme 0x5ad70000) +set(baseaddress_vdmdbg 0x5b0d0000) +set(baseaddress_untfs 0x5b340000) +set(baseaddress_objsel 0x5b400000) +set(baseaddress_ufat 0x5b570000) +set(baseaddress_tapiui 0x5b770000) +set(baseaddress_uext2 0x5b7a0000) +set(baseaddress_slayer 0x5c7e0000) +set(baseaddress_usrmgr 0x5c900000) +set(baseaddress_shimgvw 0x5cb00000) +set(baseaddress_commctrl 0x5d090000) +set(baseaddress_dplayx 0x5e080000) +set(baseaddress_input 0x5e400000) +set(baseaddress_ntlanman 0x5f380000) +set(baseaddress_dinput 0x5f580000) +set(baseaddress_netid 0x5f660000) +set(baseaddress_ntprint 0x5f6a0000) +set(baseaddress_mssip32 0x60430000) +set(baseaddress_msisip 0x60b10000) +set(baseaddress_inseng 0x61000000) +set(baseaddress_qedit 0x611c0000) +set(baseaddress_modemui 0x61650000) +set(baseaddress_mapi32 0x62250000) +set(baseaddress_mciwave 0x622a0000) +set(baseaddress_mciseq 0x622b0000) +set(baseaddress_mciqtz32 0x622c0000) +set(baseaddress_mcicda 0x622e0000) +set(baseaddress_localui 0x62f70000) +set(baseaddress_hdwwiz 0x64d40000) +set(baseaddress_timedate 0x64da0000) +set(baseaddress_sysdm 0x64dd0000) +set(baseaddress_ncpl 0x64ea0000) +set(baseaddress_main 0x64f40000) +set(baseaddress_intl 0x64fb0000) +set(baseaddress_desk 0x65080000) +set(baseaddress_appwiz 0x65100000) +set(baseaddress_mlang 0x65140000) +set(baseaddress_access 0x65180000) +set(baseaddress_itss 0x66370000) +set(baseaddress_itircl 0x663a0000) +set(baseaddress_inetmib1 0x666f0000) +set(baseaddress_initpki 0x66b00000) +set(baseaddress_wshtcpip 0x677b0000) +set(baseaddress_crypt32 0x67ab0000) +set(baseaddress_httpapi 0x67ae0000) +set(baseaddress_hid 0x688f0000) +set(baseaddress_psxdll 0x68eb0000) +set(baseaddress_psapi 0x68f70000) +set(baseaddress_ksproxy 0x68f90000) +set(baseaddress_getuname 0x69110000) +set(baseaddress_oleacc 0x69640000) +set(baseaddress_winmm 0x697d0000) +set(baseaddress_msimg32 0x69cc0000) + +set(baseaddress_netplwiz 0x6a240000) +set(baseaddress_shell32 0x6a360000) +set(baseaddress_unicode 0x6b200000) +set(baseaddress_advpack 0x6b300000) +set(baseaddress_control 0x6b310000) +set(baseaddress_ncpa 0x6b320000) +set(baseaddress_dbghelp 0x6b330000) +set(baseaddress_dinput8 0x6b340000) +set(baseaddress_dxdiagn 0x6b350000) +set(baseaddress_glu32 0x6b370000) +set(baseaddress_mesa32 0x6b380000) +set(baseaddress_opengl32 0x6b390000) +set(baseaddress_secur32 0x6b3a0000) +set(baseaddress_smdll 0x6b3b0000) +set(baseaddress_serialui 0x6b3d0000) +set(baseaddress_hlink 0x6c6e0000) +set(baseaddress_deskmon 0x6d400000) +set(baseaddress_deskadp 0x6d410000) +set(baseaddress_wldap32 0x6e130000) +set(baseaddress_sxs 0x6e160000) +set(baseaddress_schannel 0x6e360000) +set(baseaddress_console 0x6e4d0000) +set(baseaddress_compstui 0x6ec10000) +set(baseaddress_hnetcfg 0x6edb0000) +set(baseaddress_clb 0x6f2b0000) +set(baseaddress_fontext 0x6f7b0000) +set(baseaddress_jscript 0x6fe80000) +set(baseaddress_cards 0x701a0000) +set(baseaddress_wininet 0x70200000) +set(baseaddress_winhttp 0x70c60000) +set(baseaddress_batt 0x70cb0000) +set(baseaddress_amstream 0x71030000) +set(baseaddress_aclui 0x71550000) +set(baseaddress_dhcpcsvc 0x71650000) +set(baseaddress_shdocvw 0x71700000) +set(baseaddress_actxprxy 0x71800000) +set(baseaddress_mswsock 0x71a30000) +set(baseaddress_wsock32 0x71ab0000) +set(baseaddress_acledit 0x71b70000) +set(baseaddress_netapi32 0x71c00000) +set(baseaddress_olesvr32 0x71dd0000) +set(baseaddress_olecli32 0x71df0000) +set(baseaddress_olethk32 0x71e10000) +set(baseaddress_netevent 0x71e70000) +set(baseaddress_dplay 0x71e80000) +set(baseaddress_security 0x71f10000) +set(baseaddress_mssign32 0x720c0000) +set(baseaddress_cryptui 0x720d0000) +set(baseaddress_winfax 0x722c0000) +set(baseaddress_winscard 0x723d0000) +set(baseaddress_devmgr 0x72a90000) +set(baseaddress_msadp32acm 0x72cb0000) +set(baseaddress_wdmaud.drv 0x72d20000) +set(baseaddress_winspool 0x72f50000) +set(baseaddress_softpub 0x73290000) +set(baseaddress_mscat32 0x732b0000) +set(baseaddress_mstask 0x73520000) +set(baseaddress_traffic 0x73550000) +set(baseaddress_mciavi32 0x73610000) +set(baseaddress_msvidc32 0x73650000) +set(baseaddress_msrle32 0x73660000) +set(baseaddress_msdmo 0x73670000) +set(baseaddress_avicap32 0x739e0000) +set(baseaddress_avifil32 0x73ac0000) +set(baseaddress_mscms 0x73af0000) +set(baseaddress_dciman32 0x73b10000) +set(baseaddress_sti 0x73b60000) +set(baseaddress_iccvid 0x73bc0000) +set(baseaddress_coredll 0x73d80000) +set(baseaddress_lz32 0x73d80000) +set(baseaddress_ksuser 0x73ea0000) +set(baseaddress_icmp 0x741f0000) +set(baseaddress_spoolss 0x742a0000) +set(baseaddress_msimtf 0x746b0000) +set(baseaddress_msctf 0x746e0000) +set(baseaddress_kbsdll 0x74720000) +set(baseaddress_userenv 0x74850000) +set(baseaddress_powrprof 0x74ad0000) +set(baseaddress_msxml3 0x74ae0000) +set(baseaddress_printui 0x74b40000) +set(baseaddress_sndblst 0x74c30000) +set(baseaddress_pdh 0x74c70000) +set(baseaddress_oledlg 0x74d00000) +set(baseaddress_samsrv 0x74f30000) +set(baseaddress_resutils 0x75070000) +set(baseaddress_samlib 0x750c0000) +set(baseaddress_cabinet 0x75120000) +set(baseaddress_netcfgx 0x755f0000) +set(baseaddress_iphlpapi 0x75700000) +set(baseaddress_nddeapi 0x75940000) +set(baseaddress_msgina 0x75970000) +set(baseaddress_localspl 0x75b80000) +set(baseaddress_cryptnet 0x75e60000) +set(baseaddress_rpcrt4 0x76000000) +set(baseaddress_inetcomm 0x76140000) +set(baseaddress_winsta 0x762f0000) +set(baseaddress_imm32 0x76320000) +set(baseaddress_d3d8thk 0x76340000) +set(baseaddress_riched32 0x76340000) +set(baseaddress_riched20 0x76360000) +set(baseaddress_odbccp32 0x76380000) +set(baseaddress_twain_32 0x76380000) +set(baseaddress_netshell 0x76390000) +set(baseaddress_lsasrv 0x76540000) +set(baseaddress_midimap 0x76600000) +set(baseaddress_wavemap 0x76610000) +set(baseaddress_mpr 0x76620000) +set(baseaddress_odbc32 0x76710000) +set(baseaddress_setupapi 0x76730000) +set(baseaddress_cryptdll 0x768f0000) +set(baseaddress_shfolder 0x76900000) +set(baseaddress_ntdsapi 0x76910000) +set(baseaddress_rasdlg 0x76930000) +set(baseaddress_gdiplus 0x76a70000) +set(baseaddress_atl 0x76ac0000) +set(baseaddress_sfc 0x76b50000) +set(baseaddress_credui 0x76bf0000) +set(baseaddress_sfc_os 0x76c10000) +set(baseaddress_wintrust 0x76c30000) +set(baseaddress_imagehlp 0x76c90000) +set(baseaddress_clusapi 0x76d10000) +set(baseaddress_wmi 0x76d20000) +set(baseaddress_dhcpcsvc 0x76d80000) +set(baseaddress_fmifs 0x76df0000) +set(baseaddress_oleaut32 0x76e00000) +set(baseaddress_tapi32 0x76e60000) +set(baseaddress_rasman 0x76e90000) +set(baseaddress_rasapi32 0x76ee0000) +set(baseaddress_wtsapi32 0x76f50000) +set(baseaddress_msacm32 0x77400000) +set(baseaddress_crtdll 0x77630000) +set(baseaddress_authz 0x77690000) +set(baseaddress_cfgmgr32 0x77700000) +set(baseaddress_sensapi 0x77700000) +set(baseaddress_msafd 0x77780000) +set(baseaddress_packet 0x77780000) +set(baseaddress_msi 0x77790000) +set(baseaddress_snmpapi 0x777a0000) +set(baseaddress_usp10 0x777b0000) +set(baseaddress_iprtprio 0x777c0000) +set(baseaddress_ws2help 0x777e0000) +set(baseaddress_wshirda 0x777f0000) +set(baseaddress_version 0x77a40000) +set(baseaddress_ole32 0x77a50000) +set(baseaddress_olepro32 0x77b20000) +set(baseaddress_activeds 0x77cb0000) +set(baseaddress_advapi32 0x77dc0000) +set(baseaddress_dnsapi 0x77fb0000) +set(baseaddress_msvcrt 0x78000000) +set(baseaddress_msvcrt20 0x78500000) +set(baseaddress_msvcrt40 0x78700000) +set(baseaddress_mscoree 0x79000000) +set(baseaddress_fusion 0x79040000) +set(baseaddress_ntdll 0x7c900000) +set(baseaddress_kernel32 0x7cb10000) +set(baseaddress_user32 0x7ccf0000) +set(baseaddress_gdi32 0x7ced0000) +set(baseaddress_comctl32 0x7cf60000) +set(baseaddress_comdlg32 0x7d110000) +set(baseaddress_shlwapi 0x7d210000) +set(baseaddress_urlmon 0x7d2e0000) +set(baseaddress_ws2_32 0x7d3f0000) +set(baseaddress_syssetup 0x7d440000) +set(baseaddress_browseui 0x7d510000) +set(baseaddress_dsound 0x7d630000) +set(baseaddress_quartz 0x7d6e0000) +set(baseaddress_msvfw32 0x7d8a0000) +set(baseaddress_mshtml 0x7d8f0000) +set(baseaddress_query 0x7db30000) +set(baseaddress_hhctrl 0x7db60000) +set(baseaddress_sxs 0x7dbd0000) +set(baseaddress_beepmidi 0x7dc00000) +set(baseaddress_ntmarta 0x7dc20000) +set(baseaddress_ftfd 0x7f000000) diff --git a/reactos/boot/CMakeLists.txt b/reactos/boot/CMakeLists.txt new file mode 100644 index 00000000000..3ab10be6768 --- /dev/null +++ b/reactos/boot/CMakeLists.txt @@ -0,0 +1,37 @@ +##bootcd +#clear it out +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bootcd.cmake + "file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bootcd)\n") + +add_custom_target(bootcd + ${CMAKE_COMMAND} -D CD_DIR=${CMAKE_CURRENT_BINARY_DIR}/bootcd + -P ${CMAKE_CURRENT_BINARY_DIR}/bootcd.cmake + COMMAND native-cdmake -v -j -m -b ${CMAKE_CURRENT_BINARY_DIR}/freeldr/bootsect/isoboot.bin ${CMAKE_CURRENT_BINARY_DIR}/bootcd REACTOS ${REACTOS_BINARY_DIR}/bootcd.iso + VERBATIM) + +##livecd +#clear it out +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/livecd.cmake + "file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/livecd)\n") +#create profiles directories too +file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/livecd.cmake + "file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/livecd/Profiles)\n") +file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/livecd.cmake + "file(MAKE_DIRECTORY \"${CMAKE_CURRENT_BINARY_DIR}/livecd/Profiles/All Users\")\n") +file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/livecd.cmake + "file(MAKE_DIRECTORY \"${CMAKE_CURRENT_BINARY_DIR}/livecd/Profiles/All Users/Desktop\")\n") +file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/livecd.cmake + "file(MAKE_DIRECTORY \"${CMAKE_CURRENT_BINARY_DIR}/livecd/Profiles/Default User\")\n") +file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/livecd.cmake + "file(MAKE_DIRECTORY \"${CMAKE_CURRENT_BINARY_DIR}/livecd/Profiles/Default User/Desktop\")\n") +file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/livecd.cmake + "file(MAKE_DIRECTORY \"${CMAKE_CURRENT_BINARY_DIR}/livecd/Profiles/Default User/My Documents\")\n") + +add_custom_target(livecd + ${CMAKE_COMMAND} -D CD_DIR=${CMAKE_CURRENT_BINARY_DIR}/livecd + -P ${CMAKE_CURRENT_BINARY_DIR}/livecd.cmake + COMMAND native-cdmake -v -j -m -b ${CMAKE_CURRENT_BINARY_DIR}/freeldr/bootsect/isoboot.bin ${CMAKE_CURRENT_BINARY_DIR}/livecd REACTOS ${REACTOS_BINARY_DIR}/livecd.iso + VERBATIM) + +add_subdirectory(freeldr) +add_subdirectory(bootdata) diff --git a/reactos/boot/bootdata/CMakeLists.txt b/reactos/boot/bootdata/CMakeLists.txt new file mode 100644 index 00000000000..edf577bdccb --- /dev/null +++ b/reactos/boot/bootdata/CMakeLists.txt @@ -0,0 +1,47 @@ + +add_subdirectory(packages) + +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/txtsetup.sif DESTINATION reactos NO_CAB FOR bootcd) +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivecls_${ARCH}.inf DESTINATION reactos NO_CAB NAME_ON_CD hivecls.inf FOR bootcd) +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivedef_${ARCH}.inf DESTINATION reactos NO_CAB NAME_ON_CD hivedef.inf FOR bootcd) +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivesft_${ARCH}.inf DESTINATION reactos NO_CAB NAME_ON_CD hivesft.inf FOR bootcd) +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivesys_${ARCH}.inf DESTINATION reactos NO_CAB NAME_ON_CD hivesys.inf FOR bootcd) + +# livecd hives +list(APPEND CD_HIVES + ${CMAKE_CURRENT_SOURCE_DIR}/livecd.inf + ${CMAKE_CURRENT_SOURCE_DIR}/hiveinst_${ARCH}.inf) + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/sam + ${CMAKE_CURRENT_BINARY_DIR}/default + ${CMAKE_CURRENT_BINARY_DIR}/security + ${CMAKE_CURRENT_BINARY_DIR}/software + ${CMAKE_CURRENT_BINARY_DIR}/system + COMMAND native-mkhive ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${ARCH} ${CD_HIVES} + DEPENDS native-mkhive ${CD_HIVES}) + +add_custom_target(livecd_hives + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/sam + ${CMAKE_CURRENT_BINARY_DIR}/default + ${CMAKE_CURRENT_BINARY_DIR}/security + ${CMAKE_CURRENT_BINARY_DIR}/software + ${CMAKE_CURRENT_BINARY_DIR}/system) + +add_cd_file( + FILE ${CMAKE_CURRENT_BINARY_DIR}/sam + ${CMAKE_CURRENT_BINARY_DIR}/default + ${CMAKE_CURRENT_BINARY_DIR}/security + ${CMAKE_CURRENT_BINARY_DIR}/software + ${CMAKE_CURRENT_BINARY_DIR}/system + TARGET livecd_hives + DESTINATION reactos/system32/config + FOR livecd) + +#regtest +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/bootcdregtest/regtest.cmd DESTINATION reactos/bin FOR all) + +#freeldr.ini +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/bootcd.ini DESTINATION root NO_CAB NAME_ON_CD freeldr.ini FOR bootcd) +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/livecd.ini DESTINATION root NAME_ON_CD freeldr.ini FOR livecd) + diff --git a/reactos/boot/bootdata/packages/CMakeLists.txt b/reactos/boot/bootdata/packages/CMakeLists.txt new file mode 100644 index 00000000000..9f0ca7eac9a --- /dev/null +++ b/reactos/boot/bootdata/packages/CMakeLists.txt @@ -0,0 +1,45 @@ +#reactos.dff + +# reactos.dff is the concatenation of two files : +# - reactos.dff.in, which is a static one and can be altered to +# add custom modules/files to reactos.cab +# - reactos.dff.dyn (dyn as dynamic) which is generated at configure time by our cmake scripts +# If you want to slip-stream anything into the bootcd, then you want to alter reactos.dff.in + +# Idea taken from there : http://www.cmake.org/pipermail/cmake/2010-July/038028.html +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/concat.cmake " + file(READ \${SRC1} S1) + file(READ \${SRC2} S2) + file(WRITE \${DST} \"\${S1}\${S2}\") +") + +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/reactos.dff.dyn "") + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/reactos.dff + COMMAND ${CMAKE_COMMAND} -D SRC1=${CMAKE_CURRENT_SOURCE_DIR}/reactos.dff.in + -D SRC2=${CMAKE_CURRENT_BINARY_DIR}/reactos.dff.dyn + -D DST=${CMAKE_CURRENT_BINARY_DIR}/reactos.dff + -P ${CMAKE_CURRENT_BINARY_DIR}/concat.cmake + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/reactos.dff.in + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/reactos.dff.dyn +) + +# And now we build reactos.cab +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/reactos.inf + COMMAND native-cabman -C ${CMAKE_CURRENT_BINARY_DIR}/reactos.dff -L ${CMAKE_CURRENT_BINARY_DIR} -I -P ${REACTOS_SOURCE_DIR} + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/reactos.dff +) +# add_custom_command( + # OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/reactos.cab + # COMMAND native-cabman -C ${CMAKE_CURRENT_BINARY_DIR}/reactos.dff -RC ${CMAKE_CURRENT_BINARY_DIR}/reactos.inf -L ${CMAKE_CURRENT_BINARY_DIR} -N -P ${REACTOS_SOURCE_DIR} + # DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/reactos.inf +# ) + +add_custom_target(reactos_cab + native-cabman -C ${CMAKE_CURRENT_BINARY_DIR}/reactos.dff -RC ${CMAKE_CURRENT_BINARY_DIR}/reactos.inf -L ${CMAKE_CURRENT_BINARY_DIR} -N -P ${REACTOS_SOURCE_DIR} + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/reactos.inf + VERBATIM) + +add_cd_file(TARGET reactos_cab FILE ${CMAKE_CURRENT_BINARY_DIR}/reactos.cab ${CMAKE_CURRENT_BINARY_DIR}/reactos.inf DESTINATION reactos NO_CAB FOR bootcd) diff --git a/reactos/boot/bootdata/packages/reactos.dff.in b/reactos/boot/bootdata/packages/reactos.dff.in new file mode 100644 index 00000000000..cb44b08862a --- /dev/null +++ b/reactos/boot/bootdata/packages/reactos.dff.in @@ -0,0 +1,56 @@ + +; Main ReactOS package + +.Set DiskLabelTemplate="ReactOS" ; Label of disk +.Set CabinetNameTemplate="reactos.cab" ; reactos.cab +.Set InfFileName="reactos.inf" ; reactos.inf + + +;.Set Cabinet=on +;.Set Compress=on + +.InfBegin +[Version] +Signature = "$ReactOS$" + +[Directories] +1 = system32 +2 = system32\drivers +3 = Fonts +4 = +5 = system32\drivers\etc +6 = inf +7 = bin +8 = media + +.InfEnd + +; Contents of disk +.InfBegin +[SourceFiles] +.InfEnd + +; Optional/proprietary files +modules\optional\DroidSansFallback.ttf 3 optional +modules\optional\NOTICE_for_Droid_Font.txt 4 optional +modules\optional\netkvm2k.inf 6 optional +modules\optional\netkvm2k.cat 6 optional +modules\optional\netkvm.sys 2 optional +modules\optional\alcxwdm.inf 6 optional +modules\optional\alcxwdm.sys 2 optional +modules\optional\mfc42.dll 1 optional +modules\optional\mfc42u.dll 1 optional +modules\optional\mfc71.dll 1 optional +modules\optional\mfc71u.dll 1 optional +modules\optional\msvbvm50.dll 1 optional +modules\optional\msvbvm60.dll 1 optional +modules\optional\msvcirt.dll 1 optional +modules\optional\msvcp71.dll 1 optional +modules\optional\msvcr71.dll 1 optional +modules\optional\vmx_fb.dll 1 optional +modules\optional\vmx_mode.dll 1 optional +modules\optional\vmx_svga.inf 6 optional +modules\optional\vmx_svga.sys 2 optional +modules\optional\wine_gecko-1.0.0-x86.cab 4 optional + +modules\wallpaper\Angelus_02_ROSWP.bmp 4 optional diff --git a/reactos/boot/freeldr/CMakeLists.txt b/reactos/boot/freeldr/CMakeLists.txt new file mode 100644 index 00000000000..859c73a52e6 --- /dev/null +++ b/reactos/boot/freeldr/CMakeLists.txt @@ -0,0 +1,3 @@ + +add_subdirectory(bootsect) +add_subdirectory(freeldr) \ No newline at end of file diff --git a/reactos/boot/freeldr/bootsect/CMakeLists.txt b/reactos/boot/freeldr/bootsect/CMakeLists.txt new file mode 100644 index 00000000000..406799a62bf --- /dev/null +++ b/reactos/boot/freeldr/bootsect/CMakeLists.txt @@ -0,0 +1,14 @@ + +CreateBootSectorTarget(dosmbr ${CMAKE_CURRENT_SOURCE_DIR}/dosmbr.asm ${CMAKE_CURRENT_BINARY_DIR}/dosmbr.bin) +CreateBootSectorTarget(ext2 ${CMAKE_CURRENT_SOURCE_DIR}/ext2.asm ${CMAKE_CURRENT_BINARY_DIR}/ext2.bin) +CreateBootSectorTarget(fat32 ${CMAKE_CURRENT_SOURCE_DIR}/fat32.asm ${CMAKE_CURRENT_BINARY_DIR}/fat32.bin) +CreateBootSectorTarget(fat ${CMAKE_CURRENT_SOURCE_DIR}/fat.asm ${CMAKE_CURRENT_BINARY_DIR}/fat.bin) +CreateBootSectorTarget(isoboot ${CMAKE_CURRENT_SOURCE_DIR}/isoboot.asm ${CMAKE_CURRENT_BINARY_DIR}/isoboot.bin) +CreateBootSectorTarget(isobtrt ${CMAKE_CURRENT_SOURCE_DIR}/isobtrt.asm ${CMAKE_CURRENT_BINARY_DIR}/isobtrt.bin) + +add_cd_file(TARGET dosmbr DESTINATION loader NO_CAB FILE ${CMAKE_CURRENT_BINARY_DIR}/dosmbr.bin FOR all) +add_cd_file(TARGET ext2 DESTINATION loader NO_CAB FILE ${CMAKE_CURRENT_BINARY_DIR}/ext2.bin FOR all) +add_cd_file(TARGET fat32 DESTINATION loader NO_CAB FILE ${CMAKE_CURRENT_BINARY_DIR}/fat32.bin FOR all) +add_cd_file(TARGET fat DESTINATION loader NO_CAB FILE ${CMAKE_CURRENT_BINARY_DIR}/fat.bin FOR all) +add_cd_file(TARGET isoboot DESTINATION loader NO_CAB FILE ${CMAKE_CURRENT_BINARY_DIR}/isoboot.bin FOR all) +add_cd_file(TARGET isobtrt DESTINATION loader NO_CAB FILE ${CMAKE_CURRENT_BINARY_DIR}/isobtrt.bin FOR all) \ No newline at end of file diff --git a/reactos/boot/freeldr/freeldr/CMakeLists.txt b/reactos/boot/freeldr/freeldr/CMakeLists.txt new file mode 100644 index 00000000000..f5f362519c6 --- /dev/null +++ b/reactos/boot/freeldr/freeldr/CMakeLists.txt @@ -0,0 +1,243 @@ + +include_directories(BEFORE include) +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +if(ARCH MATCHES arm) + if(SARCH MATCHES omap-zoom2) + add_definitions(-D_ZOOM2_) + endif() +endif() + +if(ARCH MATCHES i386) + if(MSVC) + list(APPEND FREELDR_BASE64K_SOURCE + arch/i386/realmode.S) + else() + list(APPEND FREELDR_STARTUP_SOURCE + arch/i386/fathelp.S + arch/i386/arch.S) + endif() +elseif(ARCH MATCHES amd64) + list(APPEND FREELDR_STARTUP_SOURCE + arch/i386/fathelp.S + arch/amd64/arch.S) +endif() + +if(ARCH MATCHES i386) + if(NOT MSVC) + list(APPEND FREELDR_BASE64K_SOURCE + arch/i386/boot.S + arch/i386/drvmap.S + arch/i386/i386cpu.S + arch/i386/i386idt.S + arch/i386/i386pnp.S + arch/i386/i386pxe.S + arch/i386/i386trap.S + arch/i386/int386.S + arch/i386/linux.S + arch/i386/mb.S + arch/i386/i386bug.c) + endif() +elseif(ARCH MATCHES amd64) + list(APPEND FREELDR_BASE64K_SOURCE + arch/i386/drvmap.S + arch/i386/i386cpu.S + arch/i386/i386idt.S + arch/i386/i386trap.S + arch/amd64/mb.S) +endif() + +set_source_files_properties(${FREELDR_BASE64K_SOURCE} PROPERTIES COMPILE_DEFINITIONS "_NTHAL_") + +include_directories(${REACTOS_SOURCE_DIR}/lib/cmlib) + +list(APPEND FREELDR_BASE_SOURCE + arcemul/mm.c + arcemul/time.c + cache/blocklist.c + cache/cache.c + comm/rs232.c + disk/disk.c + disk/partition.c + disk/ramdisk.c + disk/scsiport.c + fs/ext2.c + fs/fat.c + fs/fs.c + fs/iso.c + fs/ntfs.c + fs/pxe.c + inifile/ini_init.c + inifile/inifile.c + inifile/parse.c + mm/meminit.c + mm/mm.c + reactos/registry.c + reactos/arcname.c + reactos/archwsup.c + reactos/binhive.c + reactos/reactos.c + reactos/imageldr.c + rtl/bget.c + rtl/libsupp.c + ui/directui.c + ui/gui.c + ui/minitui.c + ui/noui.c + ui/tui.c + ui/tuimenu.c + ui/ui.c + video/fade.c + video/palette.c + video/video.c + windows/conversion.c + windows/peloader.c + windows/winldr.c + windows/wlmemory.c + windows/wlregistry.c + freeldr.c + debug.c + version.c + cmdline.c + machine.c + options.c + linuxboot.c + oslist.c) + +if(ARCH MATCHES i386) + list(APPEND FREELDR_BASE_SOURCE + windows/headless.c + disk/scsiport.c) +endif() + +set_source_files_properties(${FREELDR_BASE_SOURCE} PROPERTIES COMPILE_DEFINITIONS "_NTHAL_;_BLDR_;_NTSYSTEM_") + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/libs) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/elf) + +if(ARCH MATCHES i386) + list(APPEND FREELDR_ARCH_SOURCE + arch/i386/archmach.c + arch/i386/custom.c + arch/i386/drivemap.c + arch/i386/halstub.c + arch/i386/hardware.c + arch/i386/hwacpi.c + arch/i386/hwapm.c + arch/i386/hwpci.c + arch/i386/i386disk.c + arch/i386/i386rtl.c + arch/i386/i386vid.c + arch/i386/loader.c + arch/i386/machpc.c + arch/i386/miscboot.c + arch/i386/ntoskrnl.c + arch/i386/pccons.c + arch/i386/pcdisk.c + arch/i386/pcmem.c + arch/i386/pcrtc.c + arch/i386/pcvideo.c + arch/i386/machxbox.c + arch/i386/xboxcons.c + arch/i386/xboxdisk.c + arch/i386/xboxfont.c + arch/i386/xboxhw.c + arch/i386/xboxi2c.c + arch/i386/xboxmem.c + arch/i386/xboxrtc.c + arch/i386/xboxvideo.c + windows/i386/ntsetup.c + windows/i386/wlmemory.c) +else() +#TBD +endif() + +set_source_files_properties(${FREELDR_ARCH_SOURCE} PROPERTIES COMPILE_DEFINITIONS "_NTHAL_;_BLDR_;_NTSYSTEM_") +add_library(freeldr_arch ${FREELDR_ARCH_SOURCE}) + +list(APPEND FREELDR_SOURCE + bootmgr.c + ${FREELDR_STARTUP_SOURCE} + ${FREELDR_BASE64K_SOURCE} + ${FREELDR_BASE_SOURCE} + ) + +add_library(freeldr SHARED + ${CMAKE_CURRENT_BINARY_DIR}/freeldr_freeldr.h.gch + ${FREELDR_SOURCE}) + +if(NOT MSVC) + set_target_properties(freeldr PROPERTIES LINK_FLAGS "-Wl,--strip-all -Wl,--exclude-all-symbols -Wl,--file-alignment,0x1000 -Wl,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lnk" SUFFIX ".sys") +set_image_base(freeldr 0x8000) +else() + set_target_properties(freeldr PROPERTIES LINK_FLAGS "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text /SUBSYSTEM:BOOT_APPLICATION" SUFFIX ".sys") +set_image_base(freeldr 0x10000) +endif() + +set_subsystem(freeldr native) +set_entrypoint(freeldr mainCRTStartup) + +if(ARCH MATCHES i386) + target_link_libraries(freeldr mini_hal) +endif() + +target_link_libraries(freeldr + freeldr_arch + cportlib + rossym + cmlib + rtl + libcntpr) + +add_pch(freeldr ${CMAKE_CURRENT_SOURCE_DIR}/include/freeldr.h ${FREELDR_SOURCE}) +add_dependencies(freeldr asm) + +add_cd_file(TARGET freeldr DESTINATION loader NO_CAB FOR all) + +list(APPEND SETUPLDR_MAIN_SOURCE + bootmgr.c + inffile/inffile.c + reactos/setupldr.c) + +if(ARCH MATCHES i386 OR ARCH MATCHES amd64) + list(APPEND SETUPLDR_MAIN_SOURCE windows/setupldr2.c) +endif() + +if(NOT MSVC) + set_source_files_properties(${SETUPLDR_MAIN_SOURCE} PROPERTIES COMPILE_FLAGS "-ffreestanding -fno-builtin -fno-inline -fno-zero-initialized-in-bss") +endif() + +list(APPEND SETUPLDR_SOURCE + ${FREELDR_STARTUP_SOURCE} + ${FREELDR_BASE64K_SOURCE} + ${FREELDR_BASE_SOURCE} + ${SETUPLDR_MAIN_SOURCE}) + +add_library(setupldr SHARED ${SETUPLDR_SOURCE}) + +if(NOT MSVC) + set_target_properties(setupldr PROPERTIES LINK_FLAGS "-Wl,--strip-all -Wl,--exclude-all-symbols -Wl,--file-alignment,0x1000 -Wl,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lnk" SUFFIX ".sys" COMPILE_DEFINITIONS "FREELDR_REACTOS_SETUP") +set_image_base(setupldr 0x8000) +else() + set_target_properties(setupldr PROPERTIES LINK_FLAGS "/DRIVER /SECTION:.text,ERWP,ALIGN=0x1000" SUFFIX ".sys" COMPILE_DEFINITIONS "FREELDR_REACTOS_SETUP") +endif() + +set_subsystem(setupldr native) +set_entrypoint(setupldr mainCRTStartup) + +if(ARCH MATCHES i386) + target_link_libraries(setupldr mini_hal) +endif() + +target_link_libraries(setupldr + freeldr_arch + cportlib + rossym + cmlib + rtl + libcntpr) + +add_dependencies(setupldr asm) + +add_cd_file(TARGET setupldr DESTINATION loader NO_CAB FOR all) + diff --git a/reactos/boot/freeldr/freeldr/arch/i386/fathelp.S b/reactos/boot/freeldr/freeldr/arch/i386/fathelp.S new file mode 100644 index 00000000000..7bd7fb33d95 --- /dev/null +++ b/reactos/boot/freeldr/freeldr/arch/i386/fathelp.S @@ -0,0 +1,239 @@ +// fathelp.S +// FAT12/16 Boot Sector Helper Code +// Copyright (c) 1998, 2001, 2002, 2003 Brian Palmer + +#include + +//org 8000h + +//.text + +.code16 + + +#define BootSectorStackTop HEX(7bf2) +#define DataAreaStartHigh 2 +#define DataAreaStartLow 4 +#define BiosCHSDriveSizeHigh 6 +#define BiosCHSDriveSizeLow 8 +#define BiosCHSDriveSize 8 +#define ReadSectorsOffset 10 +#define ReadClusterOffset 12 +#define PutCharsOffset 14 + +#define OEMName 3 +#define BytesPerSector 11 +#define SectsPerCluster 13 +#define ReservedSectors 14 +#define NumberOfFats 16 +#define MaxRootEntries 17 +#define TotalSectors 19 +#define MediaDescriptor 21 +#define SectorsPerFat 22 +#define SectorsPerTrack 24 +#define NumberOfHeads 26 +#define HiddenSectors 28 +#define TotalSectorsBig 32 +#define BootDrive 36 +#define Reserved 37 +#define ExtendSig 38 +#define SerialNumber 39 +#define VolumeLabel 43 +#define FileSystem 54 + +#define BootPartition HEX(7dfd) + + +// This code will be stored in the first 512 bytes +// of freeldr.sys. The first 3 bytes will be a jmp +// instruction to skip past the FAT helper code +// that is stored in the rest of the 512 bytes. +// +// This code is loaded at 0000:8000 so we have to +// encode a jmp instruction to jump to 0000:8200 + +PUBLIC _mainCRTStartup // For Mingw32 builds where the linker looks for this symbol +_mainCRTStartup: +PUBLIC start +start: + .byte HEX(e9) + .byte HEX(fd) + .byte HEX(01) + +// Now starts the extra boot code that we will store +// in the first 512 bytes of freeldr.sys. This code +// allows the FAT12/16 bootsector to navigate the +// FAT table so that we can still load freeldr.sys +// even if it is fragmented. + + +FatHelperEntryPoint: + + push ax // First save AX - the start cluster of freeldr.sys + + + // Display "Loading FreeLoader..." message + mov esi, offset msgLoading // Loading message + call word ptr [bp-PutCharsOffset] // Display it + + + call ReadFatIntoMemory + + pop ax // Restore AX (start cluster) + // AX has start cluster of freeldr.sys + + mov bx, HEX(800) + mov es,bx + +LoadFile: + push ax + call IsFat12 + pop ax + jnc LoadFile2 + cmp ax, HEX(0ff8) // Check to see if this is the last cluster in the chain + jmp LoadFile3 +LoadFile2: + cmp ax, HEX(0fff8) +LoadFile3: + jae LoadFile_Done // If so continue, if not then read then next one + push ax + xor bx,bx // Load ROSLDR starting at 0000:8000h + push es + call word ptr [bp-ReadClusterOffset] + pop es + + xor bx,bx + mov bl, [bp+SectsPerCluster] + shl bx,5 // BX = BX * 512 / 16 + mov ax,es // Increment the load address by + add ax,bx // The size of a cluster + mov es,ax + + call IsFat12 + pop ax + push es + jnc LoadFile4 + call GetFatEntry12 // Get the next entry + jmp LoadFile5 +LoadFile4: + call GetFatEntry16 +LoadFile5: + pop es + + jmp LoadFile // Load the next cluster (if any) + +LoadFile_Done: + mov dl, byte ptr [bp+BootDrive] // Load the boot drive into DL + mov dh, byte ptr ds:[BootPartition] // Load the boot partition into DH + + push 0 // push segment (0x0000) + mov bx, ds: [HEX(8000) + HEX(A8)] // load the RVA of the EntryPoint into eax + add bx, HEX(8000) // RVA -> VA and skip 3 bytes (jump to fathelper code) + push bx // push offset + retf // Transfer control to FreeLoader + +// Reads the entire FAT into memory at 7000:0000 +ReadFatIntoMemory: + mov ax, [bp+HiddenSectors] + mov dx, [bp+HiddenSectors+2] + add ax, [bp+ReservedSectors] + adc dx, 0 + mov cx, [bp+SectorsPerFat] + mov bx, HEX(7000) + mov es,bx + xor bx,bx + call word ptr [bp-ReadSectorsOffset] + ret + + +// Returns the FAT entry for a given cluster number for 16-bit FAT +// On entry AX has cluster number +// On return AX has FAT entry for that cluster +GetFatEntry16: + + mov cx,2 // AX = AX * 2 (since FAT16 entries are 2 bytes) + mul cx + shl dx,12 + + mov bx, HEX(7000) + add bx,dx + mov es,bx + mov bx,ax // Restore FAT entry offset + mov ax, es:[bx] // Get FAT entry + + ret + + +// Returns the FAT entry for a given cluster number for 12-bit FAT +// On entry AX has cluster number +// On return AX has FAT entry for that cluster +GetFatEntry12: + + push ax + mov cx,ax + shr ax,1 + add ax,cx // AX = AX * 1.5 (AX = AX + (AX / 2)) (since FAT12 entries are 12 bits) + + mov bx, HEX(7000) + mov es,bx + mov bx,ax // Put FAT entry offset into BX + mov ax, es:[bx] // Get FAT entry + pop cx // Get cluster number from stack + and cx,1 + jz UseLow12Bits + and ax, HEX(0fff0) + shr ax,4 + jmp GetFatEntry12_Done + +UseLow12Bits: + and ax, HEX(0fff) + +GetFatEntry12_Done: + + ret + + +// Returns CF = 1 if this is a FAT12 file system +// Otherwise CF = 0 for FAT16 +IsFat12: + + mov ebx, dword ptr [bp-DataAreaStartLow] + // EBX now has the number of the starting sector of the data area + // starting from the beginning of the disk, so subtrace hidden sectors + sub ebx, dword ptr [bp+HiddenSectors] + + + xor eax,eax + mov ax, word ptr [bp+TotalSectors] + cmp ax, 0 + jnz IsFat12_2 + mov eax, dword ptr [bp+TotalSectorsBig] + + // EAX now contains the number of sectors on the volume + +IsFat12_2: + sub eax,ebx // Subtract data area start sector + xor edx,edx // from total sectors of volume + + // EDX:EAX now contains the number of data sectors on the volume + movzx ebx, byte ptr [bp+SectsPerCluster] + div ebx + // EAX now has the number of clusters on the volume + stc + cmp eax,4085 + jb IsFat12_Done + clc + +IsFat12_Done: + ret + + + +msgLoading: .asciz "Loading FreeLoader...\r\n" + + .org HEX(1fe) // Pad to 510 bytes + .word HEX(0aa55) // BootSector signature + +.endcode16 + +END diff --git a/reactos/boot/freeldr/freeldr/arch/i386/realmode.S b/reactos/boot/freeldr/freeldr/arch/i386/realmode.S new file mode 100644 index 00000000000..4464a17ad70 --- /dev/null +++ b/reactos/boot/freeldr/freeldr/arch/i386/realmode.S @@ -0,0 +1,80 @@ + + +#include + +.code16 +PUBLIC _mainCRTStartup +_mainCRTStartup: +_LoaderEntry: + ret + +.endcode16 + +.code32 + + +// globals +PUBLIC _BootPartition +_BootPartition: +PUBLIC _BootDrive +_BootDrive: + +PUBLIC _PageDirectoryStart +_PageDirectoryStart: +PUBLIC _PageDirectoryEnd +_PageDirectoryEnd: + +PUBLIC _startup_pagedirectory +_startup_pagedirectory: +PUBLIC _apic_pagetable +_apic_pagetable: +PUBLIC _kernel_pagetable +_kernel_pagetable: +PUBLIC _lowmem_pagetable +_lowmem_pagetable: + + +PUBLIC RealEntryPoint +RealEntryPoint: + +PUBLIC _EnableA20 +_EnableA20: + +PUBLIC _ChainLoadBiosBootSectorCode +_ChainLoadBiosBootSectorCode: + +PUBLIC _BootOldLinuxKernel +_BootOldLinuxKernel: + +PUBLIC _BootNewLinuxKernel +_BootNewLinuxKernel: + +PUBLIC _SoftReboot +_SoftReboot: + +PUBLIC _DriveMapOldInt13HandlerAddress +_DriveMapOldInt13HandlerAddress: + +PUBLIC _DriveMapInt13HandlerStart +_DriveMapInt13HandlerStart: + +PUBLIC _DriveMapInt13HandlerEnd +_DriveMapInt13HandlerEnd: + +PUBLIC _DriveMapInt13HandlerMapList +_DriveMapInt13HandlerMapList: + +PUBLIC _PnpBiosGetDeviceNode +_PnpBiosGetDeviceNode: + +PUBLIC _PnpBiosGetDeviceNodeCount +_PnpBiosGetDeviceNodeCount: + +PUBLIC _PnpBiosSupported +_PnpBiosSupported: + +PUBLIC _Int386 +_Int386: + + +END diff --git a/reactos/cmake/CMakeParseArguments.cmake b/reactos/cmake/CMakeParseArguments.cmake new file mode 100644 index 00000000000..7ce4c49ae5b --- /dev/null +++ b/reactos/cmake/CMakeParseArguments.cmake @@ -0,0 +1,138 @@ +# CMAKE_PARSE_ARGUMENTS( args...) +# +# CMAKE_PARSE_ARGUMENTS() is intended to be used in macros or functions for +# parsing the arguments given to that macro or function. +# It processes the arguments and defines a set of variables which hold the +# values of the respective options. +# +# The argument contains all options for the respective macro, +# i.e. keywords which can be used when calling the macro without any value +# following, like e.g. the OPTIONAL keyword of the install() command. +# +# The argument contains all keywords for this macro +# which are followed by one value, like e.g. DESTINATION keyword of the +# install() command. +# +# The argument contains all keywords for this macro +# which can be followed by more than one value, like e.g. the TARGETS or +# FILES keywords of the install() command. +# +# When done, CMAKE_PARSE_ARGUMENTS() will have defined for each of the +# keywords listed in , and +# a variable composed of the given +# followed by "_" and the name of the respective keyword. +# These variables will then hold the respective value from the argument list. +# For the keywords this will be TRUE or FALSE. +# +# All remaining arguments are collected in a variable +# _UNPARSED_ARGUMENTS, this can be checked afterwards to see whether +# your macro was called with unrecognized parameters. +# +# As an example here a my_install() macro, which takes similar arguments as the +# real install() command: +# +# function(MY_INSTALL) +# set(options OPTIONAL FAST) +# set(oneValueArgs DESTINATION RENAME) +# set(multiValueArgs TARGETS CONFIGURATIONS) +# cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) +# ... +# +# Assume my_install() has been called like this: +# my_install(TARGETS foo bar DESTINATION bin OPTIONAL blub) +# +# After the cmake_parse_arguments() call the macro will have set the following +# variables: +# MY_INSTALL_OPTIONAL = TRUE +# MY_INSTALL_FAST = FALSE (this option was not used when calling my_install() +# MY_INSTALL_DESTINATION = "bin" +# MY_INSTALL_RENAME = "" (was not used) +# MY_INSTALL_TARGETS = "foo;bar" +# MY_INSTALL_CONFIGURATIONS = "" (was not used) +# MY_INSTALL_UNPARSED_ARGUMENTS = "blub" (no value expected after "OPTIONAL" +# +# You can the continue and process these variables. +# +# Keywords terminate lists of values, e.g. if directly after a one_value_keyword +# another recognized keyword follows, this is interpreted as the beginning of +# the new option. +# E.g. my_install(TARGETS foo DESTINATION OPTIONAL) would result in +# MY_INSTALL_DESTINATION set to "OPTIONAL", but MY_INSTALL_DESTINATION would +# be empty and MY_INSTALL_OPTIONAL would be set to TRUE therefor. + +#============================================================================= +# Copyright 2010 Alexander Neundorf +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + + +if(__CMAKE_PARSE_ARGUMENTS_INCLUDED) + return() +endif() +set(__CMAKE_PARSE_ARGUMENTS_INCLUDED TRUE) + + +function(CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgNames) + # first set all result variables to empty/FALSE + foreach(arg_name ${_singleArgNames} ${_multiArgNames}) + set(${prefix}_${arg_name}) + endforeach(arg_name) + + foreach(option ${_optionNames}) + set(${prefix}_${option} FALSE) + endforeach(option) + + set(${prefix}_UNPARSED_ARGUMENTS) + + set(insideValues FALSE) + set(currentArgName) + + # now iterate over all arguments and fill the result variables + foreach(currentArg ${ARGN}) + list(FIND _optionNames "${currentArg}" optionIndex) # ... then this marks the end of the arguments belonging to this keyword + list(FIND _singleArgNames "${currentArg}" singleArgIndex) # ... then this marks the end of the arguments belonging to this keyword + list(FIND _multiArgNames "${currentArg}" multiArgIndex) # ... then this marks the end of the arguments belonging to this keyword + + if(${optionIndex} EQUAL -1 AND ${singleArgIndex} EQUAL -1 AND ${multiArgIndex} EQUAL -1) + if(insideValues) + if("${insideValues}" STREQUAL "SINGLE") + set(${prefix}_${currentArgName} ${currentArg}) + set(insideValues FALSE) + elseif("${insideValues}" STREQUAL "MULTI") + list(APPEND ${prefix}_${currentArgName} ${currentArg}) + endif() + else(insideValues) + list(APPEND ${prefix}_UNPARSED_ARGUMENTS ${currentArg}) + endif(insideValues) + else() + if(NOT ${optionIndex} EQUAL -1) + set(${prefix}_${currentArg} TRUE) + set(insideValues FALSE) + elseif(NOT ${singleArgIndex} EQUAL -1) + set(currentArgName ${currentArg}) + set(${prefix}_${currentArgName}) + set(insideValues "SINGLE") + elseif(NOT ${multiArgIndex} EQUAL -1) + set(currentArgName ${currentArg}) + set(${prefix}_${currentArgName}) + set(insideValues "MULTI") + endif() + endif() + + endforeach(currentArg) + + # propagate the result variables to the caller: + foreach(arg_name ${_singleArgNames} ${_multiArgNames} ${_optionNames}) + set(${prefix}_${arg_name} ${${prefix}_${arg_name}} PARENT_SCOPE) + endforeach(arg_name) + set(${prefix}_UNPARSED_ARGUMENTS ${${prefix}_UNPARSED_ARGUMENTS} PARENT_SCOPE) + +endfunction(CMAKE_PARSE_ARGUMENTS _options _singleArgs _multiArgs) diff --git a/reactos/cmake/Platform/Windows-cl.cmake b/reactos/cmake/Platform/Windows-cl.cmake new file mode 100644 index 00000000000..b06cdf3444e --- /dev/null +++ b/reactos/cmake/Platform/Windows-cl.cmake @@ -0,0 +1,276 @@ +# try to load any previously computed information for C on this platform +INCLUDE( ${CMAKE_PLATFORM_ROOT_BIN}/CMakeCPlatform.cmake OPTIONAL) +# try to load any previously computed information for CXX on this platform +INCLUDE( ${CMAKE_PLATFORM_ROOT_BIN}/CMakeCXXPlatform.cmake OPTIONAL) + +SET(WIN32 1) + +INCLUDE(Platform/cl) + +############ +# Detect WDK build environment +IF($ENV{DDKBUILDENV} MATCHES "chk") + MESSAGE(STATUS "DDK/WDK checked build environment detected.") + SET(CMAKE_USE_WDK_ENV 1) +ENDIF() + +IF($ENV{DDKBUILDENV} MATCHES "fre") + MESSAGE(STATUS "DDK/WDK free build environment detected.") + SET(CMAKE_USE_WDK_ENV 1) +ENDIF() + +if(CMAKE_USE_WDK_ENV) + + # Detect output architecture + if(NOT ARCH) + if($ENV{AMD64} MATCHES 1) + set(ARCH amd64) + set(MSVC_C_ARCHITECTURE_ID 64) + else() + set(ARCH i386) + endif() + endif() + + # Add library directories + STRING(REPLACE * ${ARCH} ATL_LIB_PATH $ENV{ATL_LIB_PATH}) + STRING(REPLACE * ${ARCH} CRT_LIB_PATH $ENV{CRT_LIB_PATH}) + STRING(REPLACE * ${ARCH} DDK_LIB_PATH $ENV{DDK_LIB_PATH}) + STRING(REPLACE * ${ARCH} KMDF_LIB_PATH $ENV{KMDF_LIB_PATH}) + STRING(REPLACE * ${ARCH} MFC_LIB_PATH $ENV{MFC_LIB_PATH}) + STRING(REPLACE * ${ARCH} SDK_LIB_PATH $ENV{SDK_LIB_PATH}) + LINK_DIRECTORIES(${ATL_LIB_PATH} + ${CRT_LIB_PATH} + ${DDK_LIB_PATH} + ${IFSKIT_LIB_PATH} + ${KMDF_LIB_PATH} + ${MFC_LIB_PATH} + ${SDK_LIB_PATH}) + + # Add environment variables + if(NOT CMAKE_CROSSCOMPILING) + set(ENV{INCLUDE} "$ENV{CRT_INC_PATH};$ENV{SDK_INC_PATH};$ENV{SDK_INC_PATH}\\crt\\stl60") + include_directories($ENV{INCLUDE}) + set(ENV{LIBPATH} "${CRT_LIB_PATH};${SDK_LIB_PATH}") + set(ENV{USE_MSVCRT} 1) + set(ENV{USE_STL} 1) + set(ENV{STL_VER} 60) + endif() +endif() + +############ + +SET(CMAKE_CREATE_WIN32_EXE /subsystem:windows) +SET(CMAKE_CREATE_CONSOLE_EXE /subsystem:console) + +IF(CMAKE_GENERATOR MATCHES "Visual Studio 6") + SET (CMAKE_NO_BUILD_TYPE 1) +ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 6") +IF(NOT CMAKE_NO_BUILD_TYPE AND CMAKE_GENERATOR MATCHES "Visual Studio") + SET (CMAKE_NO_BUILD_TYPE 1) + SET (CMAKE_CONFIGURATION_TYPES "Debug;Release;MinSizeRel;RelWithDebInfo" CACHE STRING + "Semicolon separated list of supported configuration types, only supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything else will be ignored.") + MARK_AS_ADVANCED(CMAKE_CONFIGURATION_TYPES) +ENDIF(NOT CMAKE_NO_BUILD_TYPE AND CMAKE_GENERATOR MATCHES "Visual Studio") +# does the compiler support pdbtype and is it the newer compiler +IF(CMAKE_GENERATOR MATCHES "Visual Studio 8") + SET(CMAKE_COMPILER_2005 1) +ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 8") + +# make sure to enable languages after setting configuration types +ENABLE_LANGUAGE(RC) +SET(CMAKE_COMPILE_RESOURCE "rc /fo ") + +# for nmake we need to compute some information about the compiler +# that is being used. +# the compiler may be free command line, 6, 7, or 71, and +# each have properties that must be determined. +# to avoid running these tests with each cmake run, the +# test results are saved in CMakeCPlatform.cmake, a file +# that is automatically copied into try_compile directories +# by the global generator. +SET(MSVC_IDE 1) +IF(CMAKE_GENERATOR MATCHES "Makefiles") + SET(MSVC_IDE 0) + IF(NOT CMAKE_VC_COMPILER_TESTS_RUN) + SET(CMAKE_VC_COMPILER_TESTS 1) + SET(testNmakeCLVersionFile + "${CMAKE_ROOT}/Modules/CMakeTestNMakeCLVersion.c") + STRING(REGEX REPLACE "/" "\\\\" testNmakeCLVersionFile "${testNmakeCLVersionFile}") + MESSAGE(STATUS "Check for CL compiler version") + SET(CMAKE_TEST_COMPILER ${CMAKE_C_COMPILER}) + IF (NOT CMAKE_C_COMPILER) + SET(CMAKE_TEST_COMPILER ${CMAKE_CXX_COMPILER}) + ENDIF(NOT CMAKE_C_COMPILER) + EXEC_PROGRAM(${CMAKE_TEST_COMPILER} + ARGS /nologo -EP \"${testNmakeCLVersionFile}\" + OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT + RETURN_VALUE CMAKE_COMPILER_RETURN + ) + IF(NOT CMAKE_COMPILER_RETURN) + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining the version of compiler passed with the following output:\n" + "${CMAKE_COMPILER_OUTPUT}\n\n") + STRING(REGEX REPLACE "\n" " " compilerVersion "${CMAKE_COMPILER_OUTPUT}") + STRING(REGEX REPLACE ".*VERSION=(.*)" "\\1" + compilerVersion "${compilerVersion}") + MESSAGE(STATUS "Check for CL compiler version - ${compilerVersion}") + SET(MSVC60) + SET(MSVC70) + SET(MSVC71) + SET(MSVC80) + SET(CMAKE_COMPILER_2005) + IF("${compilerVersion}" LESS 1300) + SET(MSVC60 1) + SET(CMAKE_COMPILER_SUPPORTS_PDBTYPE 1) + ENDIF("${compilerVersion}" LESS 1300) + IF("${compilerVersion}" EQUAL 1300) + SET(MSVC70 1) + SET(CMAKE_COMPILER_SUPPORTS_PDBTYPE 0) + ENDIF("${compilerVersion}" EQUAL 1300) + IF("${compilerVersion}" EQUAL 1310) + SET(MSVC71 1) + SET(CMAKE_COMPILER_SUPPORTS_PDBTYPE 0) + ENDIF("${compilerVersion}" EQUAL 1310) + IF("${compilerVersion}" EQUAL 1400) + SET(MSVC80 1) + SET(CMAKE_COMPILER_2005 1) + ENDIF("${compilerVersion}" EQUAL 1400) + IF("${compilerVersion}" EQUAL 1500) + SET(MSVC90 1) + ENDIF("${compilerVersion}" EQUAL 1500) + IF("${compilerVersion}" EQUAL 1600) + SET(MSVC10 1) + ENDIF("${compilerVersion}" EQUAL 1600) + SET(MSVC_VERSION "${compilerVersion}") + ELSE(NOT CMAKE_COMPILER_RETURN) + MESSAGE(STATUS "Check for CL compiler version - failed") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining the version of compiler failed with the following output:\n" + "${CMAKE_COMPILER_OUTPUT}\n\n") + ENDIF(NOT CMAKE_COMPILER_RETURN) + # try to figure out if we are running the free command line + # tools from Microsoft. These tools do not provide debug libraries, + # so the link flags used have to be different. + MAKE_DIRECTORY("${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp2") + SET(testForFreeVCFile + "${CMAKE_ROOT}/Modules/CMakeTestForFreeVC.cxx") + STRING(REGEX REPLACE "/" "\\\\" testForFreeVCFile "${testForFreeVCFile}") + MESSAGE(STATUS "Check if this is a free VC compiler") + EXEC_PROGRAM(${CMAKE_TEST_COMPILER} ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp2 + ARGS /nologo /EHsc + \"${testForFreeVCFile}\" + OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT + RETURN_VALUE CMAKE_COMPILER_RETURN + ) + IF(CMAKE_COMPILER_RETURN) + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if this is a free VC compiler failed with the following output:\n" + "${CMAKE_COMPILER_OUTPUT}\n\n") + MESSAGE(STATUS "Check if this is a free VC compiler - yes") + SET(CMAKE_USING_VC_FREE_TOOLS 1) + ELSE(CMAKE_COMPILER_RETURN) + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if this is a free VC compiler passed with the following output:\n" + "${CMAKE_COMPILER_OUTPUT}\n\n") + MESSAGE(STATUS "Check if this is a free VC compiler - no") + SET(CMAKE_USING_VC_FREE_TOOLS 0) + ENDIF(CMAKE_COMPILER_RETURN) + MAKE_DIRECTORY("${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp3") + ENDIF(NOT CMAKE_VC_COMPILER_TESTS_RUN) +ENDIF(CMAKE_GENERATOR MATCHES "Makefiles") + +IF(MSVC_C_ARCHITECTURE_ID MATCHES 64) + SET(CMAKE_CL_64 1) +ELSE(MSVC_C_ARCHITECTURE_ID MATCHES 64) + SET(CMAKE_CL_64 0) +ENDIF(MSVC_C_ARCHITECTURE_ID MATCHES 64) +IF(CMAKE_FORCE_WIN64) + SET(CMAKE_CL_64 1) +ENDIF(CMAKE_FORCE_WIN64) + +#IF("${MSVC_VERSION}" GREATER 1599) +# SET(MSVC_INCREMENTAL_DEFAULT ON) +#ENDIF() + +# No support for old versions +if(MSVC_VERSION LESS 1310) +message(FATAL_ERROR "Your compiler is too old. Get a newer version!") +endif() + +# for 2005 make sure the manifest is put in the dll with mt +#SET(CMAKE_CXX_CREATE_SHARED_LIBRARY " -E vs_link_dll ${CMAKE_CXX_CREATE_SHARED_LIBRARY}") +#SET(CMAKE_CXX_CREATE_SHARED_MODULE " -E vs_link_dll ${CMAKE_CXX_CREATE_SHARED_MODULE}") +# create a C shared library +#SET(CMAKE_C_CREATE_SHARED_LIBRARY "${CMAKE_CXX_CREATE_SHARED_LIBRARY}") +# create a C shared module just copy the shared library rule +#SET(CMAKE_C_CREATE_SHARED_MODULE "${CMAKE_CXX_CREATE_SHARED_MODULE}") +#SET(CMAKE_CXX_LINK_EXECUTABLE " -E vs_link_exe ${CMAKE_CXX_LINK_EXECUTABLE}") +#SET(CMAKE_C_LINK_EXECUTABLE " -E vs_link_exe ${CMAKE_C_LINK_EXECUTABLE}") + +SET(CMAKE_BUILD_TYPE_INIT Debug) +SET(CMAKE_CXX_FLAGS_DEBUG_INIT "/D_DEBUG /Zi /Ob0 /Od") +SET(CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /Zi /Ob0 /Od") +SET(CMAKE_CXX_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000 /EHsc") +SET(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "/O1 /Ob1 /D NDEBUG") +SET(CMAKE_CXX_FLAGS_RELEASE_INIT "/O2 /Ob2 /D NDEBUG") +SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "/Zi /O2 /Ob1") +SET(CMAKE_C_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000") +SET(CMAKE_C_FLAGS_MINSIZEREL_INIT "/O1 /Ob1 /D NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE_INIT "/O2 /Ob2 /D NDEBUG") +SET(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "/Zi /O2 /Ob1") +SET(CMAKE_C_STANDARD_LIBRARIES_INIT "") +SET(CMAKE_EXE_LINKER_FLAGS_INIT "${CMAKE_EXE_LINKER_FLAGS_INIT}") +SET(CMAKE_CXX_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}") + +# executable linker flags +SET (CMAKE_LINK_DEF_FILE_FLAG "/DEF:") +# set the stack size and the machine type +SET(_MACHINE_ARCH_FLAG ${MSVC_C_ARCHITECTURE_ID}) +IF(NOT _MACHINE_ARCH_FLAG) + SET(_MACHINE_ARCH_FLAG ${MSVC_CXX_ARCHITECTURE_ID}) +ENDIF(NOT _MACHINE_ARCH_FLAG) +SET (CMAKE_EXE_LINKER_FLAGS_INIT + "${CMAKE_EXE_LINKER_FLAGS_INIT} /STACK:10000000 /machine:${_MACHINE_ARCH_FLAG}") + +# add /debug and /INCREMENTAL:YES to DEBUG and RELWITHDEBINFO also add pdbtype +# on versions that support it +SET( MSVC_INCREMENTAL_YES_FLAG "") +IF(NOT MSVC_INCREMENTAL_DEFAULT) + SET( MSVC_INCREMENTAL_YES_FLAG "/INCREMENTAL:YES") +ENDIF() + +IF (CMAKE_COMPILER_SUPPORTS_PDBTYPE) + SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug /pdbtype:sept") + SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug /pdbtype:sept ${MSVC_INCREMENTAL_YES_FLAG}") +ELSE (CMAKE_COMPILER_SUPPORTS_PDBTYPE) + SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug") + SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug ${MSVC_INCREMENTAL_YES_FLAG}") +ENDIF (CMAKE_COMPILER_SUPPORTS_PDBTYPE) +# for release and minsize release default to no incremental linking +SET(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT "/INCREMENTAL:NO") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT "/INCREMENTAL:NO") + +# copy the EXE_LINKER flags to SHARED and MODULE linker flags +# shared linker flags +SET (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT}) +SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) +SET (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT}) +SET (CMAKE_SHARED_LINKER_FLAGS_RELEASE_INIT ${CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT}) +SET (CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL_INIT ${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT}) +# module linker flags +SET (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_RELEASE_INIT ${CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT}) +SET (CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL_INIT ${CMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT}) + +# save computed information for this platform +IF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCPlatform.cmake") + CONFIGURE_FILE(${CMAKE_ROOT}/Modules/Platform/Windows-cl.cmake.in + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCPlatform.cmake IMMEDIATE) +ENDIF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCPlatform.cmake") + +IF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCXXPlatform.cmake") + CONFIGURE_FILE(${CMAKE_ROOT}/Modules/Platform/Windows-cl.cmake.in + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCXXPlatform.cmake IMMEDIATE) +ENDIF(NOT EXISTS "${CMAKE_PLATFORM_ROOT_BIN}/CMakeCXXPlatform.cmake") diff --git a/reactos/cmake/Platform/Windows.cmake b/reactos/cmake/Platform/Windows.cmake new file mode 100644 index 00000000000..a858e0c939f --- /dev/null +++ b/reactos/cmake/Platform/Windows.cmake @@ -0,0 +1,36 @@ +SET(WIN32 1) + +SET(CMAKE_STATIC_LIBRARY_PREFIX "") +SET(CMAKE_STATIC_LIBRARY_SUFFIX ".lib") +SET(CMAKE_SHARED_LIBRARY_PREFIX "") # lib +SET(CMAKE_SHARED_LIBRARY_SUFFIX ".dll") # .so +SET(CMAKE_IMPORT_LIBRARY_PREFIX "") +SET(CMAKE_IMPORT_LIBRARY_SUFFIX ".lib") +SET(CMAKE_EXECUTABLE_SUFFIX ".exe") # .exe +SET(CMAKE_LINK_LIBRARY_SUFFIX ".lib") +SET(CMAKE_DL_LIBS "") + +SET(CMAKE_FIND_LIBRARY_PREFIXES "") +SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib") + +# for borland make long command lines are redirected to a file +# with the following syntax, see Windows-bcc32.cmake for use +IF(CMAKE_GENERATOR MATCHES "Borland") + SET(CMAKE_START_TEMP_FILE "@&&|\n") + SET(CMAKE_END_TEMP_FILE "\n|") +ENDIF(CMAKE_GENERATOR MATCHES "Borland") + +# for nmake make long command lines are redirected to a file +# with the following syntax, see Windows-bcc32.cmake for use +IF(CMAKE_GENERATOR MATCHES "NMake") +# SET(CMAKE_START_TEMP_FILE "@<<\n") +# SET(CMAKE_END_TEMP_FILE "\n<<") +ENDIF(CMAKE_GENERATOR MATCHES "NMake") + +INCLUDE(Platform/WindowsPaths) + +# uncomment these out to debug nmake and borland makefiles +SET(CMAKE_START_TEMP_FILE "") +SET(CMAKE_END_TEMP_FILE "") +#SET(CMAKE_VERBOSE_MAKEFILE 1) + diff --git a/reactos/cmake/idl-support.cmake b/reactos/cmake/idl-support.cmake new file mode 100644 index 00000000000..a627d0c7d6a --- /dev/null +++ b/reactos/cmake/idl-support.cmake @@ -0,0 +1,159 @@ + +#idl files support +if(MSVC) + set(IDL_COMPILER midl) + set(IDL_HEADER_ARG /h) #.h + set(IDL_HEADER_ARG2 /header) #.h + set(IDL_TYPELIB_ARG /tlb) #.tlb + set(IDL_SERVER_ARG /sstub) #.c for stub server library + set(IDL_CLIENT_ARG /cstub) #.c for stub client library + set(IDL_PROXY_ARG /proxy) + set(IDL_INTERFACE_ARG /iid) + if(ARCH MATCHES i386) + set(IDL_FLAGS /win32) + elseif(ARCH MATCHES amd64) + set(IDL_FLAGS /amd64) + else() + set(IDL_FLAGS "") + endif() +else() + set(IDL_COMPILER native-widl) + set(IDL_HEADER_ARG -h -o) #.h + set(IDL_HEADER_ARG2 -h -H) #.h + set(IDL_TYPELIB_ARG -t -o) #.tlb + set(IDL_SERVER_ARG -s -o) #.c for server library + set(IDL_CLIENT_ARG -c -o) #.c for stub client library + set(IDL_PROXY_ARG -p -o) + set(IDL_INTERFACE_ARG -u -o) + if(ARCH MATCHES i386) + set(IDL_FLAGS -m32 --win32) + elseif(ARCH MATCHES amd64) + set(IDL_FLAGS -m64 --win64) + else() + set(IDL_FLAGS "") + endif() +endif() + + +macro(get_includes OUTPUT_VAR) + set(${OUTPUT_VAR} "") + get_directory_property(_includes INCLUDE_DIRECTORIES) + foreach(arg ${_includes}) + set(${OUTPUT_VAR} -I${arg} ${${OUTPUT_VAR}}) + endforeach() +endmacro() + +macro(get_defines OUTPUT_VAR) + set(${OUTPUT_VAR} "") + get_directory_property(_defines COMPILE_DEFINITIONS) + foreach(arg ${_defines}) + set(${OUTPUT_VAR} ${${OUTPUT_VAR}} -D${arg}) + endforeach() +endmacro() + +macro(add_typelib TARGET) + get_includes(INCLUDES) + get_defines(DEFINES) + foreach(FILE ${ARGN}) + get_filename_component(NAME ${FILE} NAME_WE) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.tlb + COMMAND ${IDL_COMPILER} ${INCLUDES} ${DEFINES} ${IDL_FLAGS} ${IDL_TYPELIB_ARG} ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.tlb ${CMAKE_CURRENT_SOURCE_DIR}/${FILE} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}) + list(APPEND OBJECTS ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.tlb) + endforeach() + add_custom_target(${TARGET} ALL DEPENDS ${OBJECTS}) +endmacro() + +macro(add_idl_headers TARGET) + get_includes(INCLUDES) + get_defines(DEFINES) + foreach(FILE ${ARGN}) + get_filename_component(NAME ${FILE} NAME_WE) + set(HEADER ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.h) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.h + COMMAND ${IDL_COMPILER} ${INCLUDES} ${DEFINES} ${IDL_FLAGS} ${IDL_HEADER_ARG} ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.h ${CMAKE_CURRENT_SOURCE_DIR}/${FILE} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}) + list(APPEND HEADERS ${HEADER}) + endforeach() + add_custom_target(${TARGET} ALL DEPENDS ${HEADERS}) +endmacro() + +macro(add_rpcproxy_files) + get_includes(INCLUDES) + get_defines(DEFINES) + + if(MSVC) + set(DLLDATA_ARG /dlldata ${CMAKE_CURRENT_BINARY_DIR}/proxy.dlldata.c) + endif() + foreach(FILE ${ARGN}) + get_filename_component(NAME ${FILE} NAME_WE) + if(NOT MSVC) + list(APPEND IDLS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}) + endif() + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_p.c + COMMAND ${IDL_COMPILER} ${INCLUDES} ${DEFINES} ${IDL_FLAGS} ${IDL_PROXY_ARG} ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_p.c ${IDL_HEADER_ARG2} ${NAME}_p.h ${CMAKE_CURRENT_SOURCE_DIR}/${FILE} ${DLLDATA_ARG} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}) + endforeach() + + # Extra pass to generate dlldata + if(MSVC) + #nobody told how to generate it, so mark it as generated + set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/proxy.dlldata.c PROPERTIES GENERATED TRUE) + else() + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/proxy.dlldata.c + COMMAND ${IDL_COMPILER} ${INCLUDES} ${DEFINES} ${IDL_FLAGS} --dlldata-only -o ${CMAKE_CURRENT_BINARY_DIR}/proxy.dlldata.c ${IDLS} + DEPENDS ${IDLS}) + endif() +endmacro() + +macro(add_rpc_library TARGET) + get_includes(INCLUDES) + get_defines(DEFINES) + foreach(FILE ${ARGN}) + get_filename_component(NAME ${FILE} NAME_WE) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_s.c + COMMAND ${IDL_COMPILER} ${INCLUDES} ${DEFINES} ${IDL_FLAGS} ${IDL_HEADER_ARG2} ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_s.h ${IDL_SERVER_ARG} ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_s.c ${CMAKE_CURRENT_SOURCE_DIR}/${FILE} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}) + list(APPEND server_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_s.c) + + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_c.c + COMMAND ${IDL_COMPILER} ${INCLUDES} ${DEFINES} ${IDL_FLAGS} ${IDL_HEADER_ARG2} ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_c.h ${IDL_CLIENT_ARG} ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_c.c ${CMAKE_CURRENT_SOURCE_DIR}/${FILE} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}) + list(APPEND client_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_c.c) + endforeach() + add_library(${TARGET} ${server_SOURCES} ${client_SOURCES}) + add_dependencies(${TARGET} psdk) +endmacro() + +macro(generate_idl_iids IDL_FILE) + get_filename_component(FILE ${IDL_FILE} NAME) + if(FILE STREQUAL "${IDL_FILE}") + set(IDL_FILE_FULL "${CMAKE_CURRENT_SOURCE_DIR}/${IDL_FILE}") + else() + set(IDL_FILE_FULL ${IDL_FILE}) + endif() + get_includes(INCLUDES) + get_defines(DEFINES) + get_filename_component(NAME ${IDL_FILE} NAME_WE) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_i.c + COMMAND ${IDL_COMPILER} ${INCLUDES} ${DEFINES} ${IDL_FLAGS} ${IDL_INTERFACE_ARG} ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_i.c ${IDL_FILE_FULL} + DEPENDS ${IDL_FILE_FULL}) + set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${NAME}_i.c PROPERTIES GENERATED TRUE) +endmacro() + +macro(add_iid_library TARGET) + foreach(IDL_FILE ${ARGN}) + get_filename_component(NAME ${IDL_FILE} NAME_WE) + generate_idl_iids(${IDL_FILE}) + list(APPEND IID_SOURCES ${NAME}_i.c) + endforeach() + add_library(${TARGET} ${IID_SOURCES}) + add_dependencies(${TARGET} psdk) +endmacro() diff --git a/reactos/config-amd64.cmake b/reactos/config-amd64.cmake new file mode 100644 index 00000000000..d4d5a444bac --- /dev/null +++ b/reactos/config-amd64.cmake @@ -0,0 +1,43 @@ + +set(SARCH "" CACHE STRING +"Sub-architecture to build for.") + +set(OARCH "athlon64" CACHE STRING +"Generate instructions for this CPU type. Specify one of: + k8 opteron athlon64 athlon-fx") + +set (OPTIMIZE "1" CACHE STRING +"What level of optimisation to use. + 0 = off + 1 = Default option, optimize for size (-Os) with some additional options + 2 = -Os + 3 = -O1 + 4 = -O2 + 5 = -O3") + +set(DBG TRUE CACHE BOOL +"Whether to compile for debugging.") + +set(KDBG FALSE CACHE BOOL +"Whether to compile in the integrated kernel debugger.") + +set(GDB FALSE CACHE BOOL +"Whether to compile for debugging with GDB. +If you don't use GDB, don't enable this.") + +set(_WINKD_ TRUE CACHE BOOL +"Whether to compile with the KD protocol.") + +set(_ELF_ FALSE CACHE BOOL +"Whether to compile support for ELF files. +Do not enable unless you know what you're doing.") + +set(NSWPAT FALSE CACHE BOOL +"Whether to compile apps/libs with features covered software patents or not. +If you live in a country where software patents are valid/apply, don't +enable this (except they/you purchased a license from the patent owner). +This settings is disabled (0) by default.") + +set(USERMODE TRUE CACHE BOOL +"Whether to compile any usermode parts. This is while kernel mode is under + heavy development and usermode part not relevant for bootcd.") diff --git a/reactos/config-arm.cmake b/reactos/config-arm.cmake new file mode 100644 index 00000000000..79f4ae58b8c --- /dev/null +++ b/reactos/config-arm.cmake @@ -0,0 +1,46 @@ + +set(SARCH "omap3-zoom2" CACHE STRING +"Sub-architecture (board) to build for. Specify one of: + kurobox versatile omap3-zoom2 omap3-beagle") + +set(OARCH "armv7-a" CACHE STRING +"Generate instructions for this CPU type. Specify one of: + armv5te armv7-a") + +set (OPTIMIZE "1" CACHE STRING +"What level of optimisation to use. + 0 = off + 1 = Default option, optimize for size (-Os) with some additional options + 2 = -Os + 3 = -O1 + 4 = -O2 + 5 = -O3") + +set(DBG TRUE CACHE BOOL +"Whether to compile for debugging.") + +set(KDBG FALSE CACHE BOOL +"Whether to compile in the integrated kernel debugger.") + +set(GDB FALSE CACHE BOOL +"Whether to compile for debugging with GDB. +If you don't use GDB, don't enable this.") + +set(_WINKD_ TRUE CACHE BOOL +"Whether to compile with the KD protocol.") + +set(_ELF_ FALSE CACHE BOOL +"Whether to compile support for ELF files. +Do not enable unless you know what you're doing.") + +set(NSWPAT FALSE CACHE BOOL +"Whether to compile apps/libs with features covered software patents or not. +If you live in a country where software patents are valid/apply, don't +enable this (except they/you purchased a license from the patent owner). +This settings is disabled (0) by default.") + +set(BUILD_MP TRUE CACHE BOOL +"Whether to compile the multi processor versions for ntoskrnl and hal.") + +set(NEWSPRINTF FALSE CACHE BOOL +"Whether to compile the new sprintf.") diff --git a/reactos/config.cmake b/reactos/config.cmake new file mode 100644 index 00000000000..4bf055480a6 --- /dev/null +++ b/reactos/config.cmake @@ -0,0 +1,51 @@ + +set(SARCH "pc" CACHE STRING +"Sub-architecture to build for. Specify one of: xbox") + +set(OARCH "pentium" CACHE STRING +"Generate instructions for this CPU type. Specify one of: + native, i386, i486, pentium, pentium-mmx, pentiumpro, i686, + pentium2, pentium3, pentium-m, pentium4, prescott, nocona, + core2, k6, k6-2, athlon, athlon-xp, opteron, opteron-sse3, + barcelona, winchip-c6, winchip2, c3, c3-2, geode") + +set(TUNE "i686" CACHE STRING +"Which CPU ReactOS should be optimized for.") + +set(OPTIMIZE "1" CACHE STRING +"What level of optimisation to use. + 0 = off + 1 = Default option, optimize for size (-Os) with some additional options + 2 = -Os + 3 = -O1 + 4 = -O2 + 5 = -O3") + +set(DBG TRUE CACHE BOOL +"Whether to compile for debugging.") + +set(KDBG TRUE CACHE BOOL +"Whether to compile in the integrated kernel debugger.") + +set(GDB FALSE CACHE BOOL +"Whether to compile for debugging with GDB. +If you don't use GDB, don't enable this.") + +set(_WINKD_ FALSE CACHE BOOL +"Whether to compile with the KD protocol.") + +set(_ELF_ FALSE CACHE BOOL +"Whether to compile support for ELF files. +Do not enable unless you know what you're doing.") + +set(NSWPAT FALSE CACHE BOOL +"Whether to compile apps/libs with features covered software patents or not. +If you live in a country where software patents are valid/apply, don't +enable this (except they/you purchased a license from the patent owner). +This settings is disabled (0) by default.") + +set(BUILD_MP TRUE CACHE BOOL +"Whether to compile the multi processor versions for ntoskrnl and hal.") + +set(GENERATE_DEPENDENCY_GRAPH FALSE CACHE BOOL +"Whether to create a graphml dependency of dlls.") diff --git a/reactos/configure.cmd b/reactos/configure.cmd new file mode 100644 index 00000000000..f93b74ab14e --- /dev/null +++ b/reactos/configure.cmd @@ -0,0 +1,145 @@ +@echo off + +:: Get the source root directory +set REACTOS_SOURCE_DIR=%~dp0 +set USE_NMAKE= + +:: Detect build environment (MinGW, VS, WDK, ...) +if defined ROS_ARCH ( + set BUILD_ENVIRONMENT=MinGW + set ARCH=%ROS_ARCH% + echo Detected RosBE for %ROS_ARCH% +) else if defined DDK_TARGET_OS ( + if "%_BUILDARCH%" == "x86" ( + set ARCH=i386 + ) + if "%_BUILDARCH%" == "AMD64" ( + set ARCH=amd64 + ) + set BUILD_ENVIRONMENT=WDK + set USE_NMAKE=1 + echo Detected DDK/WDK for %DDK_TARGET_OS%-%ARCH% +)else if defined VCINSTALLDIR ( +:: VS command prompt does not put this in enviroment vars + cl 2>&1 | find "x86" > NUL && set ARCH=i386 + cl 2>&1 | find "x64" > NUL && set ARCH=amd64 + cl 2>&1 | find "14." > NUL && set BUILD_ENVIRONMENT=VS8 + cl 2>&1 | find "15." > NUL && set BUILD_ENVIRONMENT=VS9 + cl 2>&1 | find "16." > NUL && set BUILD_ENVIRONMENT=VS10 + if not defined BUILD_ENVIRONMENT ( + echo Error: Visual Studio version too old or version detection failed. + exit /b + ) + echo Detected Visual Studio Environment %BUILD_ENVIRONMENT%-%ARCH% + if not "%1" == "VSSolution" ( + set USE_NMAKE=1 + echo This script defaults to nmake. To use Visual Studio GUI specify "VSSolution" as a parameter. + ) +) else if defined sdkdir ( + if "%TARGET_CPU%" == "x86" ( + set ARCH=i386 + ) + if "%TARGET_CPU%" == "x64" ( + set ARCH=amd64 + ) + set BUILD_ENVIRONMENT=SDK + set USE_NMAKE=1 + echo Detected Windows SDK %TARGET_PLATFORM%-%ARCH% +) + +if defined ARCH if defined BUILD_ENVIRONMENT ( + goto createdirs +) + +echo Error: Unable to detect a build environment. Configure script failure. +exit /b + +:: Create directories +:createdirs + +set REACTOS_OUTPUT_PATH=output-%BUILD_ENVIRONMENT%-%ARCH% +if "%REACTOS_SOURCE_DIR%" == "%CD%\" ( + echo Creating directories in %REACTOS_OUTPUT_PATH% + + if not exist %REACTOS_OUTPUT_PATH% ( + mkdir %REACTOS_OUTPUT_PATH% + ) + cd %REACTOS_OUTPUT_PATH% +) + +if not exist host-tools ( + mkdir host-tools +) +if not exist reactos ( + mkdir reactos +) + +:hostprep +echo Preparing host tools... +cd host-tools +if EXIST CMakeCache.txt ( + del CMakeCache.txt /q +) +set REACTOS_BUILD_TOOLS_DIR=%CD% + +if "%BUILD_ENVIRONMENT%" == "MinGW" ( + cmake -G "MinGW Makefiles" -DARCH=%ARCH% %REACTOS_SOURCE_DIR% +) else if defined USE_NMAKE ( + cmake -G "NMake Makefiles" -DARCH=%ARCH% %REACTOS_SOURCE_DIR% +) else if "%BUILD_ENVIRONMENT%" == "VS8" ( + if "%ARCH%" == "amd64" ( + cmake -G "Visual Studio 8 2005 Win64" -DARCH=%ARCH% %REACTOS_SOURCE_DIR% + ) else ( + cmake -G "Visual Studio 8 2005" -DARCH=%ARCH% %REACTOS_SOURCE_DIR% + ) +) else if "%BUILD_ENVIRONMENT%" == "VS9" ( + if "%ARCH%" == "amd64" ( + cmake -G "Visual Studio 9 2008 Win64" -DARCH=%ARCH% %REACTOS_SOURCE_DIR% + ) else ( + cmake -G "Visual Studio 9 2008" -DARCH=%ARCH% %REACTOS_SOURCE_DIR% + ) +) else if "%BUILD_ENVIRONMENT%" == "VS10" ( + if "%ARCH%" == "amd64" ( + cmake -G "Visual Studio 10 Win64" -DARCH=%ARCH% %REACTOS_SOURCE_DIR% + ) else ( + cmake -G "Visual Studio 10" -DARCH=%ARCH% %REACTOS_SOURCE_DIR% + ) +) +cd.. + +:reactprep +echo Preparing reactos... + +cd reactos +if EXIST CMakeCache.txt ( + del CMakeCache.txt /q +) + +if "%BUILD_ENVIRONMENT%" == "MinGW" ( + cmake -G "MinGW Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain-mingw32.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" %REACTOS_SOURCE_DIR% +) else if defined USE_NMAKE ( + cmake -G "NMake Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain-msvc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" %REACTOS_SOURCE_DIR% +) else if "%BUILD_ENVIRONMENT%" == "VS8" ( + if "%ARCH%" == "amd64" ( + cmake -G "Visual Studio 8 2005 Win64" -DCMAKE_TOOLCHAIN_FILE=toolchain-msvc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" %REACTOS_SOURCE_DIR% + ) else ( + cmake -G "Visual Studio 8 2005" -DCMAKE_TOOLCHAIN_FILE=toolchain-msvc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" %REACTOS_SOURCE_DIR% + ) +) else if "%BUILD_ENVIRONMENT%" == "VS9" ( + if "%ARCH%" == "amd64" ( + cmake -G "Visual Studio 9 2008 Win64" -DCMAKE_TOOLCHAIN_FILE=toolchain-msvc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" %REACTOS_SOURCE_DIR% + ) else ( + cmake -G "Visual Studio 9 2008" -DCMAKE_TOOLCHAIN_FILE=toolchain-msvc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" %REACTOS_SOURCE_DIR% + ) +) else if "%BUILD_ENVIRONMENT%" == "VS10" ( + if "%ARCH%" == "amd64" ( + cmake -G "Visual Studio 10 Win64" -DCMAKE_TOOLCHAIN_FILE=toolchain-msvc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" %REACTOS_SOURCE_DIR% + ) else ( + cmake -G "Visual Studio 10" -DCMAKE_TOOLCHAIN_FILE=toolchain-msvc.cmake -DARCH=%ARCH% -DREACTOS_BUILD_TOOLS_DIR:DIR="%REACTOS_BUILD_TOOLS_DIR%" %REACTOS_SOURCE_DIR% + ) +) + +cd.. + +echo Configure script complete! Enter directories and execute appropriate build commands(ex: make, nmake, etc...). + diff --git a/reactos/dll/3rdparty/CMakeLists.txt b/reactos/dll/3rdparty/CMakeLists.txt new file mode 100644 index 00000000000..bf606568afe --- /dev/null +++ b/reactos/dll/3rdparty/CMakeLists.txt @@ -0,0 +1,11 @@ + +if(NSWPAT) +add_subdirectory(dxtn) +endif() +add_subdirectory(libjpeg) +add_subdirectory(libpng) +add_subdirectory(libtiff) +add_subdirectory(libxslt) +if(NOT MSVC) +add_subdirectory(mesa32) +endif() diff --git a/reactos/dll/3rdparty/dxtn/CMakeLists.txt b/reactos/dll/3rdparty/dxtn/CMakeLists.txt new file mode 100644 index 00000000000..d581cbc516b --- /dev/null +++ b/reactos/dll/3rdparty/dxtn/CMakeLists.txt @@ -0,0 +1,19 @@ + +add_definitions(-D_DLL -D__USE_CRTIMP) + +spec2def(dxtn.dll dxtn.spec) + +add_library(dxtn SHARED + fxt1.c + dxtn.c + wrapper.c + texstore.c + ${CMAKE_CURRENT_BINARY_DIR}/dxtn.def) + +set_entrypoint(dxtn 0) + +add_importlibs(dxtn msvcrt) + +add_dependencies(dxtn psdk) + +add_cd_file(TARGET dxtn DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/3rdparty/libjpeg/CMakeLists.txt b/reactos/dll/3rdparty/libjpeg/CMakeLists.txt new file mode 100644 index 00000000000..124a4fb7a82 --- /dev/null +++ b/reactos/dll/3rdparty/libjpeg/CMakeLists.txt @@ -0,0 +1,73 @@ + +add_definitions( + -DWIN32 + -D_WINDOWS + -D_MBCS + -DJPEG_DLL + -Dmain=mainptr + -D_DLL -D__USE_CRTIMP) + +include_directories( + ${REACTOS_SOURCE_DIR}/include/reactos/libs/libjpeg + ${REACTOS_SOURCE_DIR}/include/reactos/libs/zlib) + +add_library(libjpeg SHARED + jaricom.c + jcapimin.c + jcapistd.c + jcarith.c + jccoefct.c + jccolor.c + jcdctmgr.c + jchuff.c + jcinit.c + jcmainct.c + jcmarker.c + jcmaster.c + jcomapi.c + jcparam.c + jcprepct.c + jcsample.c + jctrans.c + jdapimin.c + jdapistd.c + jdarith.c + jdatadst.c + jdatasrc.c + jdcoefct.c + jdcolor.c + jddctmgr.c + jdhuff.c + jdinput.c + jdmainct.c + jdmarker.c + jdmaster.c + jdmerge.c + jdpostct.c + jdsample.c + jdtrans.c + jerror.c + jfdctflt.c + jfdctfst.c + jfdctint.c + jidctflt.c + jidctfst.c + jidctint.c + jquant1.c + jquant2.c + jutils.c + jmemmgr.c + jmemnobs.c) + +set_entrypoint(libjpeg 0) + +if(MSVC) +# for _fltused +target_link_libraries(libjpeg mingw_common) +endif() + +add_importlibs(libjpeg msvcrt kernel32) + +add_dependencies(libjpeg psdk) + +add_cd_file(TARGET libjpeg DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/3rdparty/libpng/CMakeLists.txt b/reactos/dll/3rdparty/libpng/CMakeLists.txt new file mode 100644 index 00000000000..a3704f37418 --- /dev/null +++ b/reactos/dll/3rdparty/libpng/CMakeLists.txt @@ -0,0 +1,39 @@ + +add_definitions( + -DWIN32 + -DNDEBUG + -D_WINDOWS + -DPNG_BUILD_DLL + -D_DLL -D__USE_CRTIMP) + +include_directories( + ${REACTOS_SOURCE_DIR}/include/reactos/libs/libpng + ${REACTOS_SOURCE_DIR}/include/reactos/libs/zlib) + +add_library(libpng SHARED + png.c + pngerror.c + pngget.c + pngmem.c + pngpread.c + pngread.c + pngrio.c + pngrtran.c + pngrutil.c + pngset.c + pngtest.c + pngtrans.c + pngwio.c + pngwrite.c + pngwtran.c + pngwutil.c) + +set_entrypoint(libpng 0) + +target_link_libraries(libpng mingw_common zlib) + +add_importlibs(libpng msvcrt kernel32) + +add_dependencies(libpng psdk) + +add_cd_file(TARGET libpng DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/3rdparty/libtiff/CMakeLists.txt b/reactos/dll/3rdparty/libtiff/CMakeLists.txt new file mode 100644 index 00000000000..9be13ae70dc --- /dev/null +++ b/reactos/dll/3rdparty/libtiff/CMakeLists.txt @@ -0,0 +1,62 @@ + +add_definitions( + -DWIN32 + -DNDEBUG + -DBUILD_LIBTIFF_DLL + -DDLL_EXPORT + -DUSE_WIN32_FILEIO + -D_DLL -D__USE_CRTIMP) + +include_directories( + ${REACTOS_SOURCE_DIR}/include/reactos/libs/libtiff + ${REACTOS_SOURCE_DIR}/include/reactos/libs/zlib) + +add_library(libtiff SHARED + mkg3states.c + tif_aux.c + tif_close.c + tif_codec.c + tif_color.c + tif_compress.c + tif_dir.c + tif_dirinfo.c + tif_dirread.c + tif_dirwrite.c + tif_dumpmode.c + tif_error.c + tif_extension.c + tif_fax3.c + tif_fax3sm.c + tif_flush.c + tif_getimage.c + tif_jbig.c + tif_jpeg.c + tif_luv.c + tif_lzw.c + tif_next.c + tif_ojpeg.c + tif_open.c + tif_packbits.c + tif_pixarlog.c + tif_predict.c + tif_print.c + tif_read.c + tif_strip.c + tif_swab.c + tif_thunder.c + tif_tile.c + tif_version.c + tif_warning.c + tif_win32.c + tif_write.c + tif_zip.c) + +set_entrypoint(libtiff 0) + +target_link_libraries(libtiff mingw_common zlib getopt) + +add_importlibs(libtiff user32 msvcrt kernel32) + +add_dependencies(libtiff psdk) + +add_cd_file(TARGET libtiff DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/3rdparty/libxslt/CMakeLists.txt b/reactos/dll/3rdparty/libxslt/CMakeLists.txt new file mode 100644 index 00000000000..b56c8b4d1e3 --- /dev/null +++ b/reactos/dll/3rdparty/libxslt/CMakeLists.txt @@ -0,0 +1,46 @@ + +add_definitions( + -DHAVE_CONFIG_H + -DWIN32 + -D_WINDOWS + -D_MBCS + -DHAVE_STAT + -DHAVE_WIN32_THREADS + -D_REENTRANT + -D_WINSOCKAPI_ + -DLIBXML_STATIC + -D_DLL -D__USE_CRTIMP) + +add_library(libxslt SHARED + attributes.c + attrvt.c + documents.c + extensions.c + extra.c + functions.c + imports.c + keys.c + namespaces.c + numbers.c + pattern.c + preproc.c + security.c + templates.c + transform.c + variables.c + xslt.c + xsltlocale.c + xsltutils.c) + +set_entrypoint(libxslt 0) + +target_link_libraries(libxslt libxml2) + +add_importlibs(libxslt msvcrt ws2_32 kernel32) +if(MSVC) +add_importlibs(libxslt ntdll) +endif() + +add_dependencies(libxslt psdk) + +add_cd_file(TARGET libxslt DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/3rdparty/mesa32/CMakeLists.txt b/reactos/dll/3rdparty/mesa32/CMakeLists.txt new file mode 100644 index 00000000000..49e25ec7fb1 --- /dev/null +++ b/reactos/dll/3rdparty/mesa32/CMakeLists.txt @@ -0,0 +1,272 @@ + +if(NOT MSVC) +add_definitions(-w) +endif() + +add_definitions( + -DUSE_EXTERNAL_DXTN_LIB=1 + -DBUILD_GL32 + -DWIN32 + -DUSE_3DNOW_ASM + -D_DLL -D__USE_CRTIMP) + +if(ARCH MATCHES i386) +add_definitions( + -DUSE_X86_ASM + -DUSE_MMX_ASM + -DUSE_SSE_ASM) +else() +add_definitions(-DGL_NO_STDCALL) +endif(ARCH MATCHES i386) + +if(NOT MSVC) + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS_INIT} -Wl,--enable-stdcall-fixup") +endif() + +include_directories( + BEFORE include + src + src/main + src/glapi + src/math + src/tnl + src/shader + src/shader/grammar + src/shader/slang + src/shader/slang/OSDependent/Linux + src/shader/slang/OGLCompilersDLL) + +list(APPEND SOURCE + src/drivers/common/driverfuncs.c + src/drivers/windows/gdi/wgl.c + src/drivers/windows/gdi/wmesa.c + src/drivers/windows/icd/icd.c + src/glapi/glapi.c + src/glapi/glapi_getproc.c + src/glapi/glthread.c + src/main/accum.c + src/main/api_arrayelt.c + src/main/api_exec.c + src/main/api_loopback.c + src/main/api_noop.c + src/main/api_validate.c + src/main/arrayobj.c + src/main/attrib.c + src/main/blend.c + src/main/bufferobj.c + src/main/buffers.c + src/main/clear.c + src/main/clip.c + src/main/colortab.c + src/main/context.c + src/main/convolve.c + src/main/debug.c + src/main/depth.c + src/main/depthstencil.c + src/main/dispatch.c + src/main/dlist.c + src/main/dlopen.c + src/main/drawpix.c + src/main/enable.c + src/main/enums.c + src/main/eval.c + src/main/execmem.c + src/main/extensions.c + src/main/fbobject.c + src/main/feedback.c + src/main/ffvertex_prog.c + src/main/fog.c + src/main/framebuffer.c + src/main/get.c + src/main/getstring.c + src/main/hash.c + src/main/hint.c + src/main/histogram.c + src/main/image.c + src/main/imports.c + src/main/light.c + src/main/lines.c + src/main/matrix.c + src/main/mipmap.c + src/main/mm.c + src/main/multisample.c + src/main/pixel.c + src/main/pixelstore.c + src/main/points.c + src/main/polygon.c + src/main/queryobj.c + src/main/rastpos.c + src/main/rbadaptors.c + src/main/readpix.c + src/main/renderbuffer.c + src/main/scissor.c + src/main/shaders.c + src/main/state.c + src/main/stencil.c + src/main/texcompress.c + src/main/texcompress_fxt1.c + src/main/texcompress_s3tc.c + src/main/texenv.c + src/main/texenvprogram.c + src/main/texformat.c + src/main/texgen.c + src/main/teximage.c + src/main/texobj.c + src/main/texparam.c + src/main/texrender.c + src/main/texstate.c + src/main/texstore.c + src/main/varray.c + src/main/vtxfmt.c + src/math/m_debug_clip.c + src/math/m_debug_norm.c + src/math/m_debug_xform.c + src/math/m_eval.c + src/math/m_matrix.c + src/math/m_translate.c + src/math/m_vector.c + src/math/m_xform.c + src/shader/arbprogparse.c + src/shader/arbprogram.c + src/shader/atifragshader.c + src/shader/grammar/grammar_mesa.c + src/shader/nvfragparse.c + src/shader/nvprogram.c + src/shader/nvvertparse.c + src/shader/program.c + src/shader/programopt.c + src/shader/prog_cache.c + src/shader/prog_debug.c + src/shader/prog_execute.c + src/shader/prog_instruction.c + src/shader/prog_noise.c + src/shader/prog_parameter.c + src/shader/prog_print.c + src/shader/prog_statevars.c + src/shader/prog_uniform.c + src/shader/shader_api.c + src/shader/slang/slang_builtin.c + src/shader/slang/slang_codegen.c + src/shader/slang/slang_compile.c + src/shader/slang/slang_compile_function.c + src/shader/slang/slang_compile_operation.c + src/shader/slang/slang_compile_struct.c + src/shader/slang/slang_compile_variable.c + src/shader/slang/slang_emit.c + src/shader/slang/slang_ir.c + src/shader/slang/slang_label.c + src/shader/slang/slang_link.c + src/shader/slang/slang_log.c + src/shader/slang/slang_mem.c + src/shader/slang/slang_preprocess.c + src/shader/slang/slang_print.c + src/shader/slang/slang_simplify.c + src/shader/slang/slang_storage.c + src/shader/slang/slang_typeinfo.c + src/shader/slang/slang_utility.c + src/shader/slang/slang_vartable.c + src/swrast/s_aaline.c + src/swrast/s_aatriangle.c + src/swrast/s_accum.c + src/swrast/s_alpha.c + src/swrast/s_atifragshader.c + src/swrast/s_bitmap.c + src/swrast/s_blend.c + src/swrast/s_blit.c + src/swrast/s_buffers.c + src/swrast/s_context.c + src/swrast/s_copypix.c + src/swrast/s_depth.c + src/swrast/s_drawpix.c + src/swrast/s_feedback.c + src/swrast/s_fog.c + src/swrast/s_fragprog.c + src/swrast/s_imaging.c + src/swrast/s_lines.c + src/swrast/s_logic.c + src/swrast/s_masking.c + src/swrast/s_points.c + src/swrast/s_readpix.c + src/swrast/s_span.c + src/swrast/s_stencil.c + src/swrast/s_texcombine.c + src/swrast/s_texfilter.c + src/swrast/s_texstore.c + src/swrast/s_triangle.c + src/swrast/s_zoom.c + src/swrast_setup/ss_context.c + src/swrast_setup/ss_triangle.c + src/tnl/t_context.c + src/tnl/t_draw.c + src/tnl/t_pipeline.c + src/tnl/t_rasterpos.c + src/tnl/t_vb_cull.c + src/tnl/t_vb_fog.c + src/tnl/t_vb_light.c + src/tnl/t_vb_normals.c + src/tnl/t_vb_points.c + src/tnl/t_vb_program.c + src/tnl/t_vb_render.c + src/tnl/t_vb_texgen.c + src/tnl/t_vb_texmat.c + src/tnl/t_vb_vertex.c + src/tnl/t_vertex.c + src/tnl/t_vertex_generic.c + src/tnl/t_vp_build.c + src/vbo/vbo_context.c + src/vbo/vbo_exec.c + src/vbo/vbo_exec_api.c + src/vbo/vbo_exec_array.c + src/vbo/vbo_exec_draw.c + src/vbo/vbo_exec_eval.c + src/vbo/vbo_rebase.c + src/vbo/vbo_save.c + src/vbo/vbo_save_api.c + src/vbo/vbo_save_draw.c + src/vbo/vbo_save_loopback.c + src/vbo/vbo_split.c + src/vbo/vbo_split_copy.c + src/vbo/vbo_split_inplace.c + src/drivers/windows/icd/mesa.def) + +set_source_files_properties(src/drivers/windows/icd/mesa.def PROPERTIES EXTERNAL_OBJECT TRUE) + +if(ARCH MATCHES i386) +list(APPEND SOURCE + src/tnl/t_vertex_sse.c + src/x86/3dnow.c + src/x86/3dnow_normal.S + src/x86/3dnow_xform1.S + src/x86/3dnow_xform2.S + src/x86/3dnow_xform3.S + src/x86/3dnow_xform4.S + src/x86/common_x86.c + src/x86/common_x86_asm.S + src/x86/glapi_x86.S + src/x86/mmx_blend.S + src/x86/read_rgba_span_x86.S + src/x86/sse_normal.S + src/x86/sse_xform1.S + src/x86/sse_xform2.S + src/x86/sse_xform3.S + src/x86/sse_xform4.S + src/x86/sse.c + src/x86/x86.c + src/x86/x86_cliptest.S + src/x86/x86_xform2.S + src/x86/x86_xform3.S + src/x86/x86_xform4.S + src/x86/rtasm/x86sse.c) +else() +list(APPEND SOURCE src/x86-64/x86-64.c src/x86-64/xform4.S) +endif(ARCH MATCHES i386) + +add_library(mesa32 SHARED ${SOURCE}) + +set_entrypoint(mesa32 0) + +add_importlibs(mesa32 gdi32 user32 msvcrt kernel32 ntdll) + +add_dependencies(mesa32 psdk) + +add_cd_file(TARGET mesa32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/CMakeLists.txt b/reactos/dll/CMakeLists.txt new file mode 100644 index 00000000000..77a2635c05c --- /dev/null +++ b/reactos/dll/CMakeLists.txt @@ -0,0 +1,9 @@ + +add_subdirectory(3rdparty) +add_subdirectory(cpl) +add_subdirectory(directx) +add_subdirectory(keyboard) +add_subdirectory(nls) +add_subdirectory(ntdll) +add_subdirectory(shellext) +add_subdirectory(win32) diff --git a/reactos/dll/cpl/CMakeLists.txt b/reactos/dll/cpl/CMakeLists.txt new file mode 100644 index 00000000000..a81c845dcab --- /dev/null +++ b/reactos/dll/cpl/CMakeLists.txt @@ -0,0 +1,19 @@ + +add_subdirectory(access) +add_subdirectory(appwiz) +add_subdirectory(console)#Warning: console\\/lang/cs-CZ.rc:143: unrecognized escape sequence +add_subdirectory(desk) +add_subdirectory(hdwwiz) +add_subdirectory(input) +add_subdirectory(intl) +add_subdirectory(joy) +#add_subdirectory(liccpa)#disabled in trunk +add_subdirectory(main) +add_subdirectory(mmsys) +add_subdirectory(ncpa) +add_subdirectory(odbccp32) +add_subdirectory(powercfg) +add_subdirectory(sysdm) +add_subdirectory(telephon) +add_subdirectory(timedate) +add_subdirectory(usrmgr) diff --git a/reactos/dll/cpl/access/CMakeLists.txt b/reactos/dll/cpl/access/CMakeLists.txt new file mode 100644 index 00000000000..6ee6db7d6e7 --- /dev/null +++ b/reactos/dll/cpl/access/CMakeLists.txt @@ -0,0 +1,27 @@ + +set_unicode() +set_rc_compiler() + +spec2def(access.cpl access.spec) + +add_library(access SHARED + access.c + display.c + general.c + keyboard.c + mouse.c + sound.c + access.rc + ${CMAKE_CURRENT_BINARY_DIR}/access.def) + +set_module_type(access cpl) + +add_importlibs(access + msvcrt + user32 + gdi32 + advapi32 + comctl32 + kernel32) + +add_cd_file(TARGET access DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/cpl/appwiz/CMakeLists.txt b/reactos/dll/cpl/appwiz/CMakeLists.txt new file mode 100644 index 00000000000..cf5b76fa428 --- /dev/null +++ b/reactos/dll/cpl/appwiz/CMakeLists.txt @@ -0,0 +1,26 @@ + +set_unicode() +set_rc_compiler() + +spec2def(appwiz.cpl appwiz.spec) + +add_library(appwiz SHARED + appwiz.c + createlink.c + appwiz.rc + ${CMAKE_CURRENT_BINARY_DIR}/appwiz.def) + +set_module_type(appwiz cpl) + +target_link_libraries(appwiz uuid) + +add_importlibs(appwiz + msvcrt + user32 + ole32 + advapi32 + comctl32 + shell32 + kernel32) + +add_cd_file(TARGET appwiz DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/cpl/console/CMakeLists.txt b/reactos/dll/cpl/console/CMakeLists.txt new file mode 100644 index 00000000000..a16f09aedb4 --- /dev/null +++ b/reactos/dll/cpl/console/CMakeLists.txt @@ -0,0 +1,27 @@ + +set_unicode() + +spec2def(console.dll console.spec) + +list(APPEND SOURCE + console.c + options.c + font.c + layout.c + colors.c + console.rc + ${CMAKE_CURRENT_BINARY_DIR}/console.def) + +add_library(console SHARED ${CMAKE_CURRENT_BINARY_DIR}/console_console.h.gch ${SOURCE}) + +set_module_type(console win32dll) + +add_importlibs(console + msvcrt + user32 + gdi32 + comctl32 + kernel32) + +add_pch(console ${CMAKE_CURRENT_SOURCE_DIR}/console.h ${SOURCE}) +add_cd_file(TARGET console DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/cpl/desk/CMakeLists.txt b/reactos/dll/cpl/desk/CMakeLists.txt new file mode 100644 index 00000000000..51909fc6525 --- /dev/null +++ b/reactos/dll/cpl/desk/CMakeLists.txt @@ -0,0 +1,50 @@ + +set_unicode() + +add_definitions( + -D_WIN32 + -D_DLL -D__USE_CRTIMP) + +set_rc_compiler() +spec2def(desk.cpl desk.spec) + +add_library(desk SHARED + advmon.c + appearance.c + background.c + classinst.c + desk.c + devsett.c + dibitmap.c + misc.c + preview.c + screensaver.c + advappdlg.c + effappdlg.c + settings.c + monslctl.c + general.c + desk.rc + draw.c + theme.c + ${CMAKE_CURRENT_BINARY_DIR}/desk.def) + +set_module_type(desk cpl) + +target_link_libraries(desk uuid) + +add_importlibs(desk + msvcrt + user32 + advapi32 + gdi32 + comctl32 + comdlg32 + ole32 + setupapi + shell32 + msimg32 + kernel32 + ntdll) + +add_cd_file(TARGET desk DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/cpl/hdwwiz/CMakeLists.txt b/reactos/dll/cpl/hdwwiz/CMakeLists.txt new file mode 100644 index 00000000000..4102f024387 --- /dev/null +++ b/reactos/dll/cpl/hdwwiz/CMakeLists.txt @@ -0,0 +1,23 @@ + +set_unicode() +set_rc_compiler() + +spec2def(hdwwiz.cpl hdwwiz.spec) + +add_library(hdwwiz SHARED hdwwiz.c hdwwiz.rc ${CMAKE_CURRENT_BINARY_DIR}/hdwwiz.def) + +set_module_type(hdwwiz cpl) + +add_importlibs(hdwwiz + msvcrt + setupapi + advapi32 + comctl32 + rpcrt4 + user32 + gdi32 + devmgr + kernel32 + ntdll) + +add_cd_file(TARGET hdwwiz DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/cpl/input/CMakeLists.txt b/reactos/dll/cpl/input/CMakeLists.txt new file mode 100644 index 00000000000..f6da9712807 --- /dev/null +++ b/reactos/dll/cpl/input/CMakeLists.txt @@ -0,0 +1,26 @@ + +set_unicode() +set_rc_compiler() + +spec2def(input.dll input.spec) + +add_library(input SHARED + input.c + settings.c + keysettings.c + add.c + changekeyseq.c + input.rc + ${CMAKE_CURRENT_BINARY_DIR}/input.def) + +set_module_type(input win32dll) + +add_importlibs(input + msvcrt + advapi32 + user32 + comctl32 + gdi32 + kernel32) + +add_cd_file(TARGET input DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/cpl/intl/CMakeLists.txt b/reactos/dll/cpl/intl/CMakeLists.txt new file mode 100644 index 00000000000..cae9ec0d80e --- /dev/null +++ b/reactos/dll/cpl/intl/CMakeLists.txt @@ -0,0 +1,35 @@ + +set_unicode() +set_rc_compiler() + +add_definitions(-D_DLL -D__USE_CRTIMP) + +spec2def(intl.cpl intl.spec) + +add_library(intl SHARED + currency.c + date.c + generalp.c + intl.c + inplocale.c + numbers.c + time.c + misc.c + kblayouts.c + languages.c + advanced.c + sort.c + intl.rc) + +set_module_type(intl cpl) + +add_importlibs(intl + msvcrt + user32 + comctl32 + advapi32 + setupapi + shell32 + kernel32) + +add_cd_file(TARGET intl DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/cpl/joy/CMakeLists.txt b/reactos/dll/cpl/joy/CMakeLists.txt new file mode 100644 index 00000000000..3377dcde1e6 --- /dev/null +++ b/reactos/dll/cpl/joy/CMakeLists.txt @@ -0,0 +1,22 @@ + +set_unicode() +set_rc_compiler() + +spec2def(joy.cpl joy.spec) + +add_library(joy SHARED joy.c joy.rc ${CMAKE_CURRENT_BINARY_DIR}/joy.def) + +set_module_type(joy cpl) + +target_link_libraries(joy uuid) + +add_importlibs(joy + user32 + comctl32 + ole32 + shell32 + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET joy DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/cpl/main/CMakeLists.txt b/reactos/dll/cpl/main/CMakeLists.txt new file mode 100644 index 00000000000..0f6a5f56840 --- /dev/null +++ b/reactos/dll/cpl/main/CMakeLists.txt @@ -0,0 +1,29 @@ + +set_unicode() +set_rc_compiler() + +add_definitions(-D_DLL -D__USE_CRTIMP) + +spec2def(main.cpl main.spec) + +add_library(main SHARED + keyboard.c + main.c + mouse.c + main.rc + ${CMAKE_CURRENT_BINARY_DIR}/main.def) + +set_module_type(main cpl) + +add_importlibs(main + msvcrt + advapi32 + user32 + comctl32 + devmgr + comdlg32 + shell32 + gdi32 + kernel32) + +add_cd_file(TARGET main DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/cpl/mmsys/CMakeLists.txt b/reactos/dll/cpl/mmsys/CMakeLists.txt new file mode 100644 index 00000000000..f0078e88a03 --- /dev/null +++ b/reactos/dll/cpl/mmsys/CMakeLists.txt @@ -0,0 +1,34 @@ + +set_unicode() +set_rc_compiler() + +add_definitions(-D_DLL -D__USE_CRTIMP) + +spec2def(mmsys.cpl mmsys.spec) + +add_library(mmsys SHARED + mmsys.c + sounds.c + volume.c + audio.c + voice.c + mmsys.rc + ${CMAKE_CURRENT_BINARY_DIR}/mmsys.def) + +set_module_type(mmsys cpl) + +add_importlibs(mmsys + msvcrt + user32 + comctl32 + devmgr + gdi32 + winmm + advapi32 + shell32 + setupapi + shlwapi + ntdll + kernel32) + +add_cd_file(TARGET mmsys DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/cpl/ncpa/CMakeLists.txt b/reactos/dll/cpl/ncpa/CMakeLists.txt new file mode 100644 index 00000000000..f1a9d0434a9 --- /dev/null +++ b/reactos/dll/cpl/ncpa/CMakeLists.txt @@ -0,0 +1,16 @@ + +set_unicode() + +spec2def(ncpa.cpl ncpa.spec) + +add_library(ncpa SHARED ncpa.c ${CMAKE_CURRENT_BINARY_DIR}/ncpa.def) + +set_module_type(ncpa cpl) + +add_importlibs(ncpa + msvcrt + advapi32 + shell32 + kernel32) + +add_cd_file(TARGET ncpa DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/cpl/odbccp32/CMakeLists.txt b/reactos/dll/cpl/odbccp32/CMakeLists.txt new file mode 100644 index 00000000000..b1ca92fa203 --- /dev/null +++ b/reactos/dll/cpl/odbccp32/CMakeLists.txt @@ -0,0 +1,11 @@ + +set_unicode() + +spec2def(odbccp32i.cpl odbccp32.spec) + +add_library(odbccp32i SHARED odbccp32.c odbccp32.rc ${CMAKE_CURRENT_BINARY_DIR}/odbccp32.def) + +set_module_type(odbccp32i cpl) + +add_importlibs(odbccp32i user32 comctl32 msvcrt kernel32) +add_cd_file(TARGET odbccp32i DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/cpl/powercfg/CMakeLists.txt b/reactos/dll/cpl/powercfg/CMakeLists.txt new file mode 100644 index 00000000000..c0beaa6ecef --- /dev/null +++ b/reactos/dll/cpl/powercfg/CMakeLists.txt @@ -0,0 +1,28 @@ + +set_unicode() +set_rc_compiler() + +spec2def(powercfg.cpl powercfg.spec) + +add_library(powercfg SHARED + powercfg.c + powershemes.c + alarms.c + advanced.c + hibernate.c + powercfg.rc + ${CMAKE_CURRENT_BINARY_DIR}/powercfg.def) + +set_module_type(powercfg cpl) + +add_importlibs(powercfg + msvcrt + user32 + powrprof + comctl32 + shell32 + advapi32 + kernel32 + ntdll) + +add_cd_file(TARGET powercfg DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/cpl/sysdm/CMakeLists.txt b/reactos/dll/cpl/sysdm/CMakeLists.txt new file mode 100644 index 00000000000..14c585c0044 --- /dev/null +++ b/reactos/dll/cpl/sysdm/CMakeLists.txt @@ -0,0 +1,41 @@ + +set_unicode() +set_rc_compiler() + +spec2def(sysdm.cpl sysdm.spec) + +list(APPEND SOURCE + advanced.c + environment.c + general.c + hardprof.c + hardware.c + licence.c + startrec.c + sysdm.c + userprofile.c + virtmem.c + sysdm.rc + ${CMAKE_CURRENT_BINARY_DIR}/sysdm.def) + +add_library(sysdm SHARED ${CMAKE_CURRENT_BINARY_DIR}/sysdm_precomp.h.gch ${SOURCE}) + +set_module_type(sysdm cpl) + +add_importlibs(sysdm + msvcrt + advapi32 + setupapi + user32 + gdi32 + comctl32 + msimg32 + shell32 + shlwapi + ole32 + powrprof + kernel32 + ntdll) + +add_pch(sysdm ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) +add_cd_file(TARGET sysdm DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/cpl/telephon/CMakeLists.txt b/reactos/dll/cpl/telephon/CMakeLists.txt new file mode 100644 index 00000000000..5b7b8a81553 --- /dev/null +++ b/reactos/dll/cpl/telephon/CMakeLists.txt @@ -0,0 +1,22 @@ + +set_unicode() +set_rc_compiler() + +spec2def(telephon.cpl telephon.spec) + +add_library(telephon SHARED telephon.c telephon.rc ${CMAKE_CURRENT_BINARY_DIR}/telephon.def) + +set_module_type(telephon cpl) + +target_link_libraries(telephon uuid) + +add_importlibs(telephon + advapi32 + user32 + comctl32 + ole32 + shell32 + msvcrt + kernel32) + +add_cd_file(TARGET telephon DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/cpl/timedate/CMakeLists.txt b/reactos/dll/cpl/timedate/CMakeLists.txt new file mode 100644 index 00000000000..9dbc98ee293 --- /dev/null +++ b/reactos/dll/cpl/timedate/CMakeLists.txt @@ -0,0 +1,30 @@ + +set_unicode() +set_rc_compiler() + +spec2def(timedate.cpl timedate.spec) + +add_library(timedate SHARED + clock.c + dateandtime.c + internettime.c + monthcal.c + ntpclient.c + timedate.c + timezone.c + timedate.rc + ${CMAKE_CURRENT_BINARY_DIR}/timedate.def) + +set_module_type(timedate cpl) + +add_importlibs(timedate + advapi32 + user32 + gdi32 + comctl32 + ws2_32 + iphlpapi + msvcrt + kernel32) + +add_cd_file(TARGET timedate DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/cpl/usrmgr/CMakeLists.txt b/reactos/dll/cpl/usrmgr/CMakeLists.txt new file mode 100644 index 00000000000..a1d0ec5e12a --- /dev/null +++ b/reactos/dll/cpl/usrmgr/CMakeLists.txt @@ -0,0 +1,34 @@ + +set_unicode() + +include_directories(BEFORE ${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(usrmgr.cpl usrmgr.spec) + +add_library(usrmgr SHARED + extra.c + groupprops.c + groups.c + misc.c + userprops.c + users.c + usrmgr.c + usrmgr.rc + ${CMAKE_CURRENT_BINARY_DIR}/usrmgr.def) + +set_module_type(usrmgr cpl) + +add_importlibs(usrmgr + advapi32 + user32 + gdi32 + comctl32 + netapi32 + msvcrt + kernel32 + ntdll) + + +add_cd_file(TARGET usrmgr DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/CMakeLists.txt b/reactos/dll/directx/CMakeLists.txt new file mode 100644 index 00000000000..5a92a036a35 --- /dev/null +++ b/reactos/dll/directx/CMakeLists.txt @@ -0,0 +1,26 @@ + +if (NOT MSVC) +add_subdirectory(amstream) +add_subdirectory(d3d8thk) +endif() +#add_subdirectory(bdaplgin) #disabled in trunk +#add_subdirectory(d3d8) #disabled in trunk +#add_subdirectory(d3d9) #disabled in trunk +#add_subdirectory(ddraw) #disabled in trunk +add_subdirectory(devenum) +add_subdirectory(dinput) +add_subdirectory(dinput8) +add_subdirectory(dmusic) +add_subdirectory(dplay) +add_subdirectory(dplayx) +add_subdirectory(dsound) +#add_subdirectory(dsound_new) #disabled in trunk +add_subdirectory(dxdiagn) +add_subdirectory(ksproxy) +add_subdirectory(ksuser) +add_subdirectory(msdmo) +#add_subdirectory(msdvbnp) #disabled in trunk +#add_subdirectory(msvidctl) #disabled in trunk +add_subdirectory(qedit) +add_subdirectory(quartz) +add_subdirectory(wine) diff --git a/reactos/dll/directx/amstream/CMakeLists.txt b/reactos/dll/directx/amstream/CMakeLists.txt new file mode 100644 index 00000000000..ef51b60ebf6 --- /dev/null +++ b/reactos/dll/directx/amstream/CMakeLists.txt @@ -0,0 +1,36 @@ + +add_definitions(-D__WINESRC__) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(amstream.dll amstream.spec) + +add_library(amstream SHARED + amstream.c + main.c + mediastream.c + mediastreamfilter.c + regsvr.c + amstream_i.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/amstream.def) + +set_module_type(amstream win32dll) + +target_link_libraries(amstream + strmiids + uuid + wine) + +add_importlibs(amstream + ole32 + advapi32 + msvcrt + kernel32 + ntdll) + +add_dependencies(amstream dxsdk) +add_cd_file(TARGET amstream DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/d3d8thk/CMakeLists.txt b/reactos/dll/directx/d3d8thk/CMakeLists.txt new file mode 100644 index 00000000000..d3142b43293 --- /dev/null +++ b/reactos/dll/directx/d3d8thk/CMakeLists.txt @@ -0,0 +1,12 @@ + +spec2def(d3d8thk.dll d3d8thk.spec) + +add_library(d3d8thk SHARED d3d8thk.rc ${CMAKE_CURRENT_BINARY_DIR}/d3d8thk.def) + +set_entrypoint(d3d8thk 0) + +add_importlibs(d3d8thk gdi32) + +add_dependencies(d3d8thk psdk) + +add_cd_file(TARGET d3d8thk DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/devenum/CMakeLists.txt b/reactos/dll/directx/devenum/CMakeLists.txt new file mode 100644 index 00000000000..c31eefaaf50 --- /dev/null +++ b/reactos/dll/directx/devenum/CMakeLists.txt @@ -0,0 +1,38 @@ + +set_unicode() + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(devenum.dll devenum.spec) + +add_library(devenum SHARED + createdevenum.c + devenum_main.c + factory.c + mediacatenum.c + parsedisplayname.c + devenum.rc + ${CMAKE_CURRENT_BINARY_DIR}/devenum.def) + +set_module_type(devenum win32dll) + +target_link_libraries(devenum + strmiids + uuid + wine) + +add_importlibs(devenum + advapi32 + ole32 + oleaut32 + winmm + user32 + avicap32 + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET devenum DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/dinput/CMakeLists.txt b/reactos/dll/directx/dinput/CMakeLists.txt new file mode 100644 index 00000000000..142e22d7b07 --- /dev/null +++ b/reactos/dll/directx/dinput/CMakeLists.txt @@ -0,0 +1,41 @@ + +set_unicode() + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(dinput.dll dinput.spec) + +add_library(dinput SHARED + data_formats.c + device.c + dinput_main.c + effect_linuxinput.c + joystick_linux.c + joystick_linuxinput.c + keyboard.c + mouse.c + regsvr.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/dinput.def) + +set_module_type(dinput win32dll) + +target_link_libraries(dinput + dxguid + uuid + wine) + +add_importlibs(dinput + user32 + advapi32 + ole32 + winmm + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET dinput DESTINATION reactos/system32 FOR all) +add_importlib_target(dinput.spec) diff --git a/reactos/dll/directx/dinput8/CMakeLists.txt b/reactos/dll/directx/dinput8/CMakeLists.txt new file mode 100644 index 00000000000..5f2fab45510 --- /dev/null +++ b/reactos/dll/directx/dinput8/CMakeLists.txt @@ -0,0 +1,36 @@ + +set_unicode() + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(dinput8.dll dinput8.spec) + +add_library(dinput8 SHARED + dinput8_main.c + regsvr.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/dinput8.def) + +set_entrypoint(dinput8 0) + +target_link_libraries(dinput8 + dxguid + uuid + wine) + +add_importlibs(dinput8 + user32 + advapi32 + ole32 + winmm + dinput + kernel32 + ntdll) + +add_dependencies(dinput8 psdk) + +add_cd_file(TARGET dinput8 DESTINATION reactos/system32 FOR all) +add_importlib_target(dinput8.spec) diff --git a/reactos/dll/directx/dmusic/CMakeLists.txt b/reactos/dll/directx/dmusic/CMakeLists.txt new file mode 100644 index 00000000000..df15dcf81f4 --- /dev/null +++ b/reactos/dll/directx/dmusic/CMakeLists.txt @@ -0,0 +1,44 @@ + +set_unicode() + +add_definitions(-D__WINESRC__) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(dmusic.dll dmusic.spec) + +add_library(dmusic SHARED + buffer.c + clock.c + collection.c + dmusic.c + dmusic_main.c + download.c + downloadedinstrument.c + instrument.c + port.c + regsvr.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/dmusic.def) + +set_entrypoint(dmusic 0) + +target_link_libraries(dmusic + dxguid + uuid + wine) + +add_importlibs(dmusic + user32 + advapi32 + ole32 + dsound + kernel32 + ntdll) + +add_dependencies(dmusic psdk) + +add_cd_file(TARGET dmusic DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/dplay/CMakeLists.txt b/reactos/dll/directx/dplay/CMakeLists.txt new file mode 100644 index 00000000000..1626bceb34d --- /dev/null +++ b/reactos/dll/directx/dplay/CMakeLists.txt @@ -0,0 +1,31 @@ + +set_unicode() + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(dplay.dll dplay.spec) + +add_library(dplay SHARED + dplay_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/dplay.def) + +set_entrypoint(dplay 0) + +target_link_libraries(dplay + uuid + wine) + +add_importlibs(dplay + user32 + advapi32 + ole32 + winmm + dinput + dplayx + ntdll) + +add_dependencies(dplay psdk) + +add_cd_file(TARGET dplay DESTINATION reactos/system32 FOR all) +add_importlib_target(dplay.spec libdplayx) diff --git a/reactos/dll/directx/dplayx/CMakeLists.txt b/reactos/dll/directx/dplayx/CMakeLists.txt new file mode 100644 index 00000000000..77c80743427 --- /dev/null +++ b/reactos/dll/directx/dplayx/CMakeLists.txt @@ -0,0 +1,40 @@ + +set_rc_compiler() + +spec2def(dplayx.dll dplayx.spec) + +list(APPEND SOURCE + dpclassfactory.c + dplay.c + dplaysp.c + dplayx_global.c + dplayx_main.c + dplayx_messages.c + dplobby.c + lobbysp.c + name_server.c + regsvr.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/dplayx.def) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(dplayx SHARED ${SOURCE}) +set_module_type(dplayx win32dll) + +target_link_libraries(dplayx + wine + uuid + dxguid) + +add_importlibs(dplayx + advapi32 + ole32 + user32 + winmm + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET dplayx DESTINATION reactos/system32 FOR all) +add_importlib_target(dplayx.spec) diff --git a/reactos/dll/directx/dsound/CMakeLists.txt b/reactos/dll/directx/dsound/CMakeLists.txt new file mode 100644 index 00000000000..c4b7218871a --- /dev/null +++ b/reactos/dll/directx/dsound/CMakeLists.txt @@ -0,0 +1,43 @@ + +add_definitions( + -D_WINE + -D_USE_MATH_DEFINES + -D_DLL -D__USE_CRTIMP) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(dsound.dll dsound.spec) + +add_library(dsound SHARED + buffer.c + capture.c + dsound.c + dsound_convert.c + dsound_main.c + duplex.c + mixer.c + primary.c + propset.c + regsvr.c + sound3d.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/dsound.def) + +set_module_type(dsound win32dll) + +target_link_libraries(dsound + dxguid + uuid + wine) + +add_importlibs(dsound + msvcrt + user32 + advapi32 + ole32 + winmm + kernel32 + ntdll) + +add_cd_file(TARGET dsound DESTINATION reactos/system32 FOR all) +add_importlib_target(dsound.spec) diff --git a/reactos/dll/directx/dxdiagn/CMakeLists.txt b/reactos/dll/directx/dxdiagn/CMakeLists.txt new file mode 100644 index 00000000000..59b0dc31d47 --- /dev/null +++ b/reactos/dll/directx/dxdiagn/CMakeLists.txt @@ -0,0 +1,28 @@ + +set_unicode() + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(dxdiagn.dll dxdiagn.spec) + +add_library(dxdiagn SHARED + container.c + dxdiag_main.c + provider.c + regsvr.c + ${CMAKE_CURRENT_BINARY_DIR}/dxdiagn.def) + +set_module_type(dxdiagn win32dll) + +target_link_libraries(dxdiagn uuid wine) + +add_importlibs(dxdiagn + user32 + advapi32 + ole32 + oleaut32 + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET dxdiagn DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/ksproxy/CMakeLists.txt b/reactos/dll/directx/ksproxy/CMakeLists.txt new file mode 100644 index 00000000000..c1ab338b565 --- /dev/null +++ b/reactos/dll/directx/ksproxy/CMakeLists.txt @@ -0,0 +1,55 @@ + +spec2def(ksproxy.ax ksproxy.spec) + +add_definitions( + -D_DLL -D__USE_CRTIMP + -DNATIVE_CPP_INCLUDE=${REACTOS_SOURCE_DIR}/include/c++ + -DNATIVE_C_INCLUDE=${REACTOS_SOURCE_DIR}/include/crt) + +include_directories(BEFORE ${REACTOS_SOURCE_DIR}/include/c++/stlport) + +add_library(ksproxy SHARED + allocator.cpp + basicaudio.cpp + classfactory.cpp + clockforward.cpp + cvpconfig.cpp + cvpvbiconfig.cpp + datatype.cpp + enum_mediatypes.cpp + enumpins.cpp + input_pin.cpp + interface.cpp + ksproxy.cpp + ksproxy.rc + mediasample.cpp + node.cpp + output_pin.cpp + proxy.cpp + qualityforward.cpp + ${CMAKE_CURRENT_BINARY_DIR}/ksproxy.def) + +set_entrypoint(ksproxy 0) +set_target_properties(ksproxy PROPERTIES SUFFIX ".ax") +if(MSVC) + set_target_properties(ksproxy PROPERTIES COMPILE_FLAGS "/GR-") +else() + #FIXME : can't build if this is enabled, check if this is needed + #set_target_properties(ksproxy PROPERTIES COMPILE_FLAGS "-fno-exceptions -fno-rtti") + target_link_libraries(ksproxy -lsupc++ -lgcc -lmingw32 -lcoldname) +endif(MSVC) + +target_link_libraries(ksproxy stlport strmiids) + +add_importlibs(ksproxy + advapi32 + ole32 + setupapi + ksuser + msvcrt + kernel32 + ntdll) + +add_dependencies(ksproxy psdk) + +add_cd_file(TARGET ksproxy DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/ksuser/CMakeLists.txt b/reactos/dll/directx/ksuser/CMakeLists.txt new file mode 100644 index 00000000000..5f3acb71205 --- /dev/null +++ b/reactos/dll/directx/ksuser/CMakeLists.txt @@ -0,0 +1,11 @@ + +spec2def(ksuser.dll ksuser.spec) + +add_library(ksuser SHARED ksuser.c ksuser.rc ${CMAKE_CURRENT_BINARY_DIR}/ksuser.def) + +set_module_type(ksuser win32dll) + +add_importlibs(ksuser advapi32 msvcrt kernel32 ntdll) +add_dependencies(ksuser psdk bugcodes) +add_cd_file(TARGET ksuser DESTINATION reactos/system32 FOR all) +add_importlib_target(ksuser.spec) diff --git a/reactos/dll/directx/msdmo/CMakeLists.txt b/reactos/dll/directx/msdmo/CMakeLists.txt new file mode 100644 index 00000000000..91d6283324d --- /dev/null +++ b/reactos/dll/directx/msdmo/CMakeLists.txt @@ -0,0 +1,29 @@ + +set_unicode() + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(msdmo.dll msdmo.spec) + +add_library(msdmo SHARED + dmoreg.c + dmort.c + stubs.c + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/msdmo.def) + +set_entrypoint(msdmo 0) + +target_link_libraries(msdmo uuid wine mediaobj_guid) + +add_importlibs(msdmo + user32 + advapi32 + ole32 + kernel32 + ntdll) + +add_dependencies(msdmo dxsdk psdk) + +add_cd_file(TARGET msdmo DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/qedit/CMakeLists.txt b/reactos/dll/directx/qedit/CMakeLists.txt new file mode 100644 index 00000000000..2d393e1ae44 --- /dev/null +++ b/reactos/dll/directx/qedit/CMakeLists.txt @@ -0,0 +1,38 @@ + +set_unicode() + +add_definitions( + -D__WINESRC__ + -D_DLL -D__USE_CRTIMP) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(qedit.dll qedit.spec) + +add_library(qedit SHARED + main.c + mediadet.c + regsvr.c + samplegrabber.c + ${CMAKE_CURRENT_BINARY_DIR}/qedit.def) + +set_module_type(qedit win32dll) + +target_link_libraries(qedit + strmiids + uuid + wine) + +add_importlibs(qedit + msvcrt + advapi32 + ole32 + oleaut32 + kernel32 + ntdll) + +add_dependencies(qedit dxsdk) +add_cd_file(TARGET qedit DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/quartz/CMakeLists.txt b/reactos/dll/directx/quartz/CMakeLists.txt new file mode 100644 index 00000000000..946d73eba30 --- /dev/null +++ b/reactos/dll/directx/quartz/CMakeLists.txt @@ -0,0 +1,75 @@ + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +add_definitions( + -D__WINESRC__ + -DENTRY_PREFIX=QUARTZ_ + -DREGISTER_PROXY_DLL + -DPROXY_DELEGATION + -D_DLL + -D__USE_CRTIMP) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(quartz.dll quartz.spec) + +add_rpcproxy_files(quartz_strmif.idl) + +list(APPEND SOURCE + avidec.c + acmwrapper.c + waveparser.c + videorenderer.c + transform.c + systemclock.c + regsvr.c + pin.c + parser.c + nullrenderer.c + mpegsplit.c + memallocator.c + main.c + filtermapper.c + filtergraph.c + filesource.c + enumregfilters.c + enumpins.c + enummoniker.c + enumfilters.c + dsoundrender.c + enummedia.c + control.c + avisplit.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/proxy.dlldata.c + ${CMAKE_CURRENT_BINARY_DIR}/quartz_strmif_p.c + ${CMAKE_CURRENT_BINARY_DIR}/quartz.def) + +add_library(quartz SHARED ${SOURCE}) + +set_module_type(quartz win32dll) + +target_link_libraries(quartz + strmiids + uuid + wine + ${PSEH_LIB}) + +add_importlibs(quartz + msvcrt + advapi32 + dsound + ole32 + oleaut32 + shlwapi + user32 + gdi32 + advapi32 + msvfw32 + msacm32 + rpcrt4 + kernel32 + ntdll) + +add_cd_file(TARGET quartz DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/CMakeLists.txt b/reactos/dll/directx/wine/CMakeLists.txt new file mode 100644 index 00000000000..be9f27b8150 --- /dev/null +++ b/reactos/dll/directx/wine/CMakeLists.txt @@ -0,0 +1,24 @@ + +add_subdirectory(d3d8) +add_subdirectory(d3d9) +add_subdirectory(d3dx9_24) +add_subdirectory(d3dx9_25) +add_subdirectory(d3dx9_26) +add_subdirectory(d3dx9_27) +add_subdirectory(d3dx9_28) +add_subdirectory(d3dx9_29) +add_subdirectory(d3dx9_30) +add_subdirectory(d3dx9_31) +add_subdirectory(d3dx9_32) +add_subdirectory(d3dx9_33) +add_subdirectory(d3dx9_34) +add_subdirectory(d3dx9_35) +add_subdirectory(d3dx9_36) +add_subdirectory(d3dx9_37) +add_subdirectory(d3dx9_38) +add_subdirectory(d3dx9_39) +add_subdirectory(d3dx9_40) +add_subdirectory(d3dx9_41) +add_subdirectory(d3dx9_42) +add_subdirectory(ddraw) +add_subdirectory(wined3d) diff --git a/reactos/dll/directx/wine/d3d8/CMakeLists.txt b/reactos/dll/directx/wine/d3d8/CMakeLists.txt new file mode 100644 index 00000000000..a8cc0a720d0 --- /dev/null +++ b/reactos/dll/directx/wine/d3d8/CMakeLists.txt @@ -0,0 +1,51 @@ + +set_unicode() + +add_definitions( + -D__WINESRC__ + -DUSE_WIN32_OPENGL) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +if(MSVC) + add_definitions(-FImsvchelper.h) +endif() + +set_rc_compiler() + +spec2def(d3d8.dll d3d8.spec) + +list(APPEND SOURCE + buffer.c + cubetexture.c + d3d8_main.c + device.c + directx.c + shader.c + surface.c + swapchain.c + texture.c + vertexdeclaration.c + volume.c + volumetexture.c + version.rc + #${REACTOS_BINARY_DIR}/include/reactos/wine/wined3d_i.c + ${CMAKE_CURRENT_BINARY_DIR}/d3d8.def) + +add_library(d3d8 SHARED ${SOURCE}) + +set_module_type(d3d8 win32dll) + +target_link_libraries(d3d8 uuid wine) + +add_importlibs(d3d8 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3d8 wineheaders) +add_cd_file(TARGET d3d8 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/d3d9/CMakeLists.txt b/reactos/dll/directx/wine/d3d9/CMakeLists.txt new file mode 100644 index 00000000000..bdd13db21b7 --- /dev/null +++ b/reactos/dll/directx/wine/d3d9/CMakeLists.txt @@ -0,0 +1,55 @@ + +set_unicode() + +add_definitions( + -D__WINESRC__ + -DUSE_WIN32_OPENGL) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +if(MSVC) + add_definitions(-FImsvchelper.h) +endif() + +set_rc_compiler() + +spec2def(d3d9.dll d3d9.spec) + +list(APPEND SOURCE + buffer.c + cubetexture.c + d3d9_main.c + device.c + directx.c + query.c + shader.c + stateblock.c + surface.c + swapchain.c + texture.c + vertexdeclaration.c + volume.c + volumetexture.c + version.rc + #${REACTOS_BINARY_DIR}/include/reactos/wine/wined3d_i.c + ${CMAKE_CURRENT_BINARY_DIR}/d3d9_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/d3d9.def) + +add_library(d3d9 SHARED ${SOURCE}) + +set_module_type(d3d9 win32dll) + +target_link_libraries(d3d9 uuid wine) + +add_importlibs(d3d9 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3d9 wineheaders) +add_cd_file(TARGET d3d9 DESTINATION reactos/system32 FOR all) +add_importlib_target(d3d9.spec) diff --git a/reactos/dll/directx/wine/d3dx9_24/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_24/CMakeLists.txt new file mode 100644 index 00000000000..39ce0ce0371 --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_24/CMakeLists.txt @@ -0,0 +1,34 @@ +set_rc_compiler() + +spec2def(d3dx9_24.dll d3dx9_24.spec) + +list(APPEND SOURCE + d3dx9_24_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_24_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_24.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_24 SHARED ${SOURCE}) +set_module_type(d3dx9_24 win32dll) + +target_link_libraries(d3dx9_24 + wine) + +add_importlibs(d3dx9_24 + d3dx9_36 + d3d9 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_24 wineheaders) +add_cd_file(TARGET d3dx9_24 DESTINATION reactos/system32 FOR all) +add_importlib_target(d3dx9_24.spec libd3dx9_36) diff --git a/reactos/dll/directx/wine/d3dx9_25/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_25/CMakeLists.txt new file mode 100644 index 00000000000..98c9a7f9e79 --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_25/CMakeLists.txt @@ -0,0 +1,35 @@ +set_rc_compiler() + +spec2def(d3dx9_25.dll d3dx9_25.spec) + +list(APPEND SOURCE + d3dx9_25_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_25_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_25.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_25 SHARED ${SOURCE}) +set_module_type(d3dx9_25 win32dll) + +target_link_libraries(d3dx9_25 + wine) + +add_importlibs(d3dx9_25 + d3dx9_36 + d3dx9_24 + d3d9 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_25 wineheaders) +add_cd_file(TARGET d3dx9_25 DESTINATION reactos/system32 FOR all) +add_importlib_target(d3dx9_25.spec libd3dx9_24 libd3dx9_36) diff --git a/reactos/dll/directx/wine/d3dx9_26/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_26/CMakeLists.txt new file mode 100644 index 00000000000..82f45db4c0e --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_26/CMakeLists.txt @@ -0,0 +1,34 @@ +set_rc_compiler() + +spec2def(d3dx9_26.dll d3dx9_26.spec) + +list(APPEND SOURCE + d3dx9_26_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_26_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_26.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_26 SHARED ${SOURCE}) +set_module_type(d3dx9_26 win32dll) + +target_link_libraries(d3dx9_26 + wine) + +add_importlibs(d3dx9_26 + d3d9 + d3dx9_36 + d3dx9_24 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_26 wineheaders) +add_cd_file(TARGET d3dx9_26 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/d3dx9_27/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_27/CMakeLists.txt new file mode 100644 index 00000000000..595fb303814 --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_27/CMakeLists.txt @@ -0,0 +1,34 @@ +set_rc_compiler() + +spec2def(d3dx9_27.dll d3dx9_27.spec) + +list(APPEND SOURCE + d3dx9_27_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_27_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_27.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_27 SHARED ${SOURCE}) +set_module_type(d3dx9_27 win32dll) + +target_link_libraries(d3dx9_27 + wine) + +add_importlibs(d3dx9_27 + d3d9 + d3dx9_24 + d3dx9_36 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_27 wineheaders) +add_cd_file(TARGET d3dx9_27 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/d3dx9_28/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_28/CMakeLists.txt new file mode 100644 index 00000000000..1abdaf0b692 --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_28/CMakeLists.txt @@ -0,0 +1,34 @@ +set_rc_compiler() + +spec2def(d3dx9_28.dll d3dx9_28.spec) + +list(APPEND SOURCE + d3dx9_28_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_28_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_28.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_28 SHARED ${SOURCE}) +set_module_type(d3dx9_28 win32dll) + +target_link_libraries(d3dx9_28 + wine) + +add_importlibs(d3dx9_28 + d3d9 + d3dx9_24 + d3dx9_36 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_28 wineheaders) +add_cd_file(TARGET d3dx9_28 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/d3dx9_29/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_29/CMakeLists.txt new file mode 100644 index 00000000000..431a7830835 --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_29/CMakeLists.txt @@ -0,0 +1,34 @@ +set_rc_compiler() + +spec2def(d3dx9_29.dll d3dx9_29.spec) + +list(APPEND SOURCE + d3dx9_29_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_29_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_29.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_29 SHARED ${SOURCE}) +set_module_type(d3dx9_29 win32dll) + +target_link_libraries(d3dx9_29 + wine) + +add_importlibs(d3dx9_29 + d3d9 + d3dx9_24 + d3dx9_36 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_29 wineheaders) +add_cd_file(TARGET d3dx9_29 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/d3dx9_30/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_30/CMakeLists.txt new file mode 100644 index 00000000000..d6d00c81cf3 --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_30/CMakeLists.txt @@ -0,0 +1,34 @@ +set_rc_compiler() + +spec2def(d3dx9_30.dll d3dx9_30.spec) + +list(APPEND SOURCE + d3dx9_30_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_30_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_30.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_30 SHARED ${SOURCE}) +set_module_type(d3dx9_30 win32dll) + +target_link_libraries(d3dx9_30 + wine) + +add_importlibs(d3dx9_30 + d3d9 + d3dx9_24 + d3dx9_36 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_30 wineheaders) +add_cd_file(TARGET d3dx9_30 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/d3dx9_31/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_31/CMakeLists.txt new file mode 100644 index 00000000000..aa45584de71 --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_31/CMakeLists.txt @@ -0,0 +1,33 @@ +set_rc_compiler() + +spec2def(d3dx9_31.dll d3dx9_31.spec) + +list(APPEND SOURCE + d3dx9_31_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_31_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_31.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_31 SHARED ${SOURCE}) +set_module_type(d3dx9_31 win32dll) + +target_link_libraries(d3dx9_31 + wine) + +add_importlibs(d3dx9_31 + d3d9 + d3dx9_36 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_31 wineheaders) +add_cd_file(TARGET d3dx9_31 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/d3dx9_32/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_32/CMakeLists.txt new file mode 100644 index 00000000000..249e8195303 --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_32/CMakeLists.txt @@ -0,0 +1,33 @@ +set_rc_compiler() + +spec2def(d3dx9_32.dll d3dx9_32.spec) + +list(APPEND SOURCE + d3dx9_32_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_32.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_32 SHARED ${SOURCE}) +set_module_type(d3dx9_32 win32dll) + +target_link_libraries(d3dx9_32 + wine) + +add_importlibs(d3dx9_32 + d3d9 + d3dx9_36 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_32 wineheaders) +add_cd_file(TARGET d3dx9_32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/d3dx9_33/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_33/CMakeLists.txt new file mode 100644 index 00000000000..cefe373c27c --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_33/CMakeLists.txt @@ -0,0 +1,33 @@ +set_rc_compiler() + +spec2def(d3dx9_33.dll d3dx9_33.spec) + +list(APPEND SOURCE + d3dx9_33_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_33_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_33.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_33 SHARED ${SOURCE}) +set_module_type(d3dx9_33 win32dll) + +target_link_libraries(d3dx9_33 + wine) + +add_importlibs(d3dx9_33 + d3d9 + d3dx9_36 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_33 wineheaders) +add_cd_file(TARGET d3dx9_33 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/d3dx9_34/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_34/CMakeLists.txt new file mode 100644 index 00000000000..7353481b206 --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_34/CMakeLists.txt @@ -0,0 +1,33 @@ +set_rc_compiler() + +spec2def(d3dx9_34.dll d3dx9_34.spec) + +list(APPEND SOURCE + d3dx9_34_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_34_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_34.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_34 SHARED ${SOURCE}) +set_module_type(d3dx9_34 win32dll) + +target_link_libraries(d3dx9_34 + wine) + +add_importlibs(d3dx9_34 + d3d9 + d3dx9_36 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_34 wineheaders) +add_cd_file(TARGET d3dx9_34 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/d3dx9_35/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_35/CMakeLists.txt new file mode 100644 index 00000000000..361ffa4671e --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_35/CMakeLists.txt @@ -0,0 +1,32 @@ +set_rc_compiler() + +spec2def(d3dx9_35.dll d3dx9_35.spec) + +list(APPEND SOURCE + d3dx9_35_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_35.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_35 SHARED ${SOURCE}) +set_module_type(d3dx9_35 win32dll) + +target_link_libraries(d3dx9_35 + wine) + +add_importlibs(d3dx9_35 + d3dx9_36 + d3d9 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_35 wineheaders) +add_cd_file(TARGET d3dx9_35 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/d3dx9_36/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_36/CMakeLists.txt new file mode 100644 index 00000000000..34ca20bf6a6 --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_36/CMakeLists.txt @@ -0,0 +1,42 @@ +set_rc_compiler() + +spec2def(d3dx9_36.dll d3dx9_36.spec) + +list(APPEND SOURCE + core.c + d3dx9_36_main.c + font.c + math.c + mesh.c + shader.c + sprite.c + surface.c + texture.c + util.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_36_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_36.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_36 SHARED ${SOURCE}) +set_module_type(d3dx9_36 win32dll) + +target_link_libraries(d3dx9_36 + wine) + +add_importlibs(d3dx9_36 + d3d9 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_36 wineheaders) +add_cd_file(TARGET d3dx9_36 DESTINATION reactos/system32 FOR all) +add_importlib_target(d3dx9_36.spec) diff --git a/reactos/dll/directx/wine/d3dx9_37/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_37/CMakeLists.txt new file mode 100644 index 00000000000..cd49aee8e97 --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_37/CMakeLists.txt @@ -0,0 +1,32 @@ +set_rc_compiler() + +spec2def(d3dx9_37.dll d3dx9_37.spec) + +list(APPEND SOURCE + d3dx9_37_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_37.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_37 SHARED ${SOURCE}) +set_module_type(d3dx9_37 win32dll) + +target_link_libraries(d3dx9_37 + wine) + +add_importlibs(d3dx9_37 + d3dx9_36 + d3d9 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_37 wineheaders) +add_cd_file(TARGET d3dx9_37 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/d3dx9_38/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_38/CMakeLists.txt new file mode 100644 index 00000000000..a5d8f25ac4a --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_38/CMakeLists.txt @@ -0,0 +1,32 @@ +set_rc_compiler() + +spec2def(d3dx9_38.dll d3dx9_38.spec) + +list(APPEND SOURCE + d3dx9_38_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_38.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_38 SHARED ${SOURCE}) +set_module_type(d3dx9_38 win32dll) + +target_link_libraries(d3dx9_38 + wine) + +add_importlibs(d3dx9_38 + d3dx9_36 + d3d9 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_38 wineheaders) +add_cd_file(TARGET d3dx9_38 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/d3dx9_39/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_39/CMakeLists.txt new file mode 100644 index 00000000000..84597ea257c --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_39/CMakeLists.txt @@ -0,0 +1,32 @@ +set_rc_compiler() + +spec2def(d3dx9_39.dll d3dx9_39.spec) + +list(APPEND SOURCE + d3dx9_39_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_39.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_39 SHARED ${SOURCE}) +set_module_type(d3dx9_39 win32dll) + +target_link_libraries(d3dx9_39 + wine) + +add_importlibs(d3dx9_39 + d3dx9_36 + d3d9 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_39 wineheaders) +add_cd_file(TARGET d3dx9_39 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/d3dx9_40/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_40/CMakeLists.txt new file mode 100644 index 00000000000..c9cfe0ae082 --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_40/CMakeLists.txt @@ -0,0 +1,32 @@ +set_rc_compiler() + +spec2def(d3dx9_40.dll d3dx9_40.spec) + +list(APPEND SOURCE + d3dx9_40_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_40.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_40 SHARED ${SOURCE}) +set_module_type(d3dx9_40 win32dll) + +target_link_libraries(d3dx9_40 + wine) + +add_importlibs(d3dx9_40 + d3dx9_36 + d3d9 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_40 wineheaders) +add_cd_file(TARGET d3dx9_40 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/d3dx9_41/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_41/CMakeLists.txt new file mode 100644 index 00000000000..e8fbf0eeee0 --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_41/CMakeLists.txt @@ -0,0 +1,32 @@ +set_rc_compiler() + +spec2def(d3dx9_41.dll d3dx9_41.spec) + +list(APPEND SOURCE + d3dx9_41_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_41.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_41 SHARED ${SOURCE}) +set_module_type(d3dx9_41 win32dll) + +target_link_libraries(d3dx9_41 + wine) + +add_importlibs(d3dx9_41 + d3dx9_36 + d3d9 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_41 wineheaders) +add_cd_file(TARGET d3dx9_41 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/d3dx9_42/CMakeLists.txt b/reactos/dll/directx/wine/d3dx9_42/CMakeLists.txt new file mode 100644 index 00000000000..75ee61b765d --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_42/CMakeLists.txt @@ -0,0 +1,32 @@ +set_rc_compiler() + +spec2def(d3dx9_42.dll d3dx9_42.spec) + +list(APPEND SOURCE + d3dx9_42_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/d3dx9_42.def) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(d3dx9_42 SHARED ${SOURCE}) +set_module_type(d3dx9_42 win32dll) + +target_link_libraries(d3dx9_42 + wine) + +add_importlibs(d3dx9_42 + d3dx9_36 + d3d9 + user32 + gdi32 + advapi32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(d3dx9_42 wineheaders) +add_cd_file(TARGET d3dx9_42 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/ddraw/CMakeLists.txt b/reactos/dll/directx/wine/ddraw/CMakeLists.txt new file mode 100644 index 00000000000..81732d6678b --- /dev/null +++ b/reactos/dll/directx/wine/ddraw/CMakeLists.txt @@ -0,0 +1,58 @@ + +add_definitions( + -D__WINESRC__ + -DUSE_WIN32_OPENGL) + +if(MSVC) + add_definitions(/FIwine/typeof.h) +endif() + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(ddraw.dll ddraw.spec) + +list(APPEND SOURCE + clipper.c + ddraw.c + device.c + executebuffer.c + light.c + main.c + material.c + palette.c + parent.c + regsvr.c + stubs.c + surface.c + utils.c + vertexbuffer.c + viewport.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/ddraw_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/ddraw.def) + +add_library(ddraw SHARED ${SOURCE}) +set_module_type(ddraw win32dll) + +target_link_libraries(ddraw + wine + uuid + dxguid + wined3d_guid + ${PSEH_LIB}) + +add_importlibs(ddraw + advapi32 + gdi32 + ole32 + user32 + wined3d + msvcrt + kernel32 + ntdll) + +add_dependencies(ddraw wineheaders) +add_cd_file(TARGET ddraw DESTINATION reactos/system32 FOR all) +add_importlib_target(ddraw.spec) diff --git a/reactos/dll/directx/wine/wined3d/CMakeLists.txt b/reactos/dll/directx/wine/wined3d/CMakeLists.txt new file mode 100644 index 00000000000..4a45c3b7b58 --- /dev/null +++ b/reactos/dll/directx/wine/wined3d/CMakeLists.txt @@ -0,0 +1,78 @@ + +add_definitions( + -D__WINESRC__ + -D_USE_MATH_DEFINES + -DUSE_WIN32_OPENGL) + +include_directories(BEFORE ${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +if(MSVC) + add_definitions(-Disnan=_isnan) + add_definitions(-Disinf=!_finite) +endif() + +spec2def(wined3d.dll wined3d.spec) + +list(APPEND SOURCE + ati_fragment_shader.c + arb_program_shader.c + basetexture.c + buffer.c + clipper.c + context.c + cubetexture.c + device.c + directx.c + drawprim.c + gl_compat.c + glsl_shader.c + nvidia_texture_shader.c + palette.c + query.c + resource.c + shader.c + shader_sm1.c + shader_sm4.c + state.c + stateblock.c + surface_base.c + surface.c + surface_gdi.c + swapchain.c + swapchain_base.c + swapchain_gdi.c + texture.c + utils.c + vertexdeclaration.c + view.c + volume.c + volumetexture.c + wined3d_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/wined3d.def) + +if(ARCH MATCHES amd64) +list(APPEND SOURCE + powf.c + sqrtf.c) +endif() + +add_library(wined3d SHARED ${SOURCE}) +set_module_type(wined3d win32dll) + +target_link_libraries(wined3d wine uuid wined3d_guid) + +add_importlibs(wined3d + user32 + opengl32 + gdi32 + advapi32 + msvcrt + kernel32 + ntdll) + +add_dependencies(wined3d wineheaders) +add_cd_file(TARGET wined3d DESTINATION reactos/system32 FOR all) +add_importlib_target(wined3d.spec) diff --git a/reactos/dll/keyboard/CMakeLists.txt b/reactos/dll/keyboard/CMakeLists.txt new file mode 100644 index 00000000000..5abf32bcc0b --- /dev/null +++ b/reactos/dll/keyboard/CMakeLists.txt @@ -0,0 +1,80 @@ + +add_subdirectory(kbda1) +add_subdirectory(kbda2) +add_subdirectory(kbda3) +add_subdirectory(kbdal) +add_subdirectory(kbdarme) +add_subdirectory(kbdarmw) +add_subdirectory(kbdaze) +add_subdirectory(kbdazel) +add_subdirectory(kbdbe) +add_subdirectory(kbdbga) +add_subdirectory(kbdbgm) +add_subdirectory(kbdbgt) +add_subdirectory(kbdblr) +add_subdirectory(kbdbr) +add_subdirectory(kbdbur) +add_subdirectory(kbdcan) +add_subdirectory(kbdcr) +add_subdirectory(kbdcz) +add_subdirectory(kbdcz1) +add_subdirectory(kbdda) +add_subdirectory(kbddv) +add_subdirectory(kbdes) +add_subdirectory(kbdest) +add_subdirectory(kbdfc) +add_subdirectory(kbdfi) +add_subdirectory(kbdfr) +add_subdirectory(kbdgeo) +add_subdirectory(kbdgerg) +add_subdirectory(kbdgneo) +add_subdirectory(kbdgr) +add_subdirectory(kbdgrist) +add_subdirectory(kbdhe) +add_subdirectory(kbdheb) +add_subdirectory(kbdhu) +add_subdirectory(kbdic) +add_subdirectory(kbdinasa) +add_subdirectory(kbdinben) +add_subdirectory(kbdindev) +add_subdirectory(kbdinguj) +add_subdirectory(kbdinmal) +add_subdirectory(kbdir) +add_subdirectory(kbdit) +add_subdirectory(kbdja) +add_subdirectory(kbdkaz) +add_subdirectory(kbdko) +add_subdirectory(kbdla) +add_subdirectory(kbdlt1) +add_subdirectory(kbdlv) +add_subdirectory(kbdmac) +add_subdirectory(kbdne) +add_subdirectory(kbdno) +add_subdirectory(kbdpl1) +add_subdirectory(kbdpo) +add_subdirectory(kbdro) +add_subdirectory(kbdru) +add_subdirectory(kbdru1) +add_subdirectory(kbdsg) +add_subdirectory(kbdsk) +add_subdirectory(kbdsk1) +add_subdirectory(kbdsw) +add_subdirectory(kbdtat) +add_subdirectory(kbdth0) +add_subdirectory(kbdth1) +add_subdirectory(kbdth2) +add_subdirectory(kbdth3) +add_subdirectory(kbdtuf) +add_subdirectory(kbdtuq) +add_subdirectory(kbduk) +add_subdirectory(kbdur) +add_subdirectory(kbdurs) +add_subdirectory(kbdus) +add_subdirectory(kbdusa) +add_subdirectory(kbdusl) +add_subdirectory(kbdusr) +add_subdirectory(kbdusx) +add_subdirectory(kbduzb) +add_subdirectory(kbdvntc) +add_subdirectory(kbdycc) +add_subdirectory(kbdycl) diff --git a/reactos/dll/keyboard/kbda1/CMakeLists.txt b/reactos/dll/keyboard/kbda1/CMakeLists.txt new file mode 100644 index 00000000000..09a6bf03494 --- /dev/null +++ b/reactos/dll/keyboard/kbda1/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbda1.dll kbda1.spec) + +add_library(kbda1 SHARED kbda1.c kbda1.rc ${CMAKE_CURRENT_BINARY_DIR}/kbda1.def) + +set_entrypoint(kbda1 0) + +add_dependencies(kbda1 psdk) + +add_cd_file(TARGET kbda1 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbda2/CMakeLists.txt b/reactos/dll/keyboard/kbda2/CMakeLists.txt new file mode 100644 index 00000000000..8f784b08118 --- /dev/null +++ b/reactos/dll/keyboard/kbda2/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbda2.dll kbda2.spec) + +add_library(kbda2 SHARED kbda2.c kbda2.rc ${CMAKE_CURRENT_BINARY_DIR}/kbda2.def) + +set_entrypoint(kbda2 0) + +add_dependencies(kbda2 psdk) + +add_cd_file(TARGET kbda2 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbda3/CMakeLists.txt b/reactos/dll/keyboard/kbda3/CMakeLists.txt new file mode 100644 index 00000000000..30e0d84ab9e --- /dev/null +++ b/reactos/dll/keyboard/kbda3/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbda3.dll kbda3.spec) + +add_library(kbda3 SHARED kbda3.c kbda3.rc ${CMAKE_CURRENT_BINARY_DIR}/kbda3.def) + +set_entrypoint(kbda3 0) + +add_dependencies(kbda3 psdk) + +add_cd_file(TARGET kbda3 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdal/CMakeLists.txt b/reactos/dll/keyboard/kbdal/CMakeLists.txt new file mode 100644 index 00000000000..59a2116dd1a --- /dev/null +++ b/reactos/dll/keyboard/kbdal/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdal.dll kbdal.spec) + +add_library(kbdal SHARED kbdal.c kbdal.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdal.def) + +set_entrypoint(kbdal 0) + +add_dependencies(kbdal psdk) + +add_cd_file(TARGET kbdal DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdarme/CMakeLists.txt b/reactos/dll/keyboard/kbdarme/CMakeLists.txt new file mode 100644 index 00000000000..035020ad44d --- /dev/null +++ b/reactos/dll/keyboard/kbdarme/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdarme.dll kbdarme.spec) + +add_library(kbdarme SHARED kbdarme.c kbdarme.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdarme.def) + +set_entrypoint(kbdarme 0) + +add_dependencies(kbdarme psdk) + +add_cd_file(TARGET kbdarme DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdarmw/CMakeLists.txt b/reactos/dll/keyboard/kbdarmw/CMakeLists.txt new file mode 100644 index 00000000000..4f52189b797 --- /dev/null +++ b/reactos/dll/keyboard/kbdarmw/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdarmw.dll kbdarmw.spec) + +add_library(kbdarmw SHARED kbdarmw.c kbdarmw.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdarmw.def) + +set_entrypoint(kbdarmw 0) + +add_dependencies(kbdarmw psdk) + +add_cd_file(TARGET kbdarmw DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdaze/CMakeLists.txt b/reactos/dll/keyboard/kbdaze/CMakeLists.txt new file mode 100644 index 00000000000..4f3f4fea775 --- /dev/null +++ b/reactos/dll/keyboard/kbdaze/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdaze.dll kbdaze.spec) + +add_library(kbdaze SHARED kbdaze.c kbdaze.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdaze.def) + +set_entrypoint(kbdaze 0) + +add_dependencies(kbdaze psdk) + +add_cd_file(TARGET kbdaze DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdazel/CMakeLists.txt b/reactos/dll/keyboard/kbdazel/CMakeLists.txt new file mode 100644 index 00000000000..0944e992d08 --- /dev/null +++ b/reactos/dll/keyboard/kbdazel/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdazel.dll kbdazel.spec) + +add_library(kbdazel SHARED kbdazel.c kbdazel.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdazel.def) + +set_entrypoint(kbdazel 0) + +add_dependencies(kbdazel psdk) + +add_cd_file(TARGET kbdazel DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdbe/CMakeLists.txt b/reactos/dll/keyboard/kbdbe/CMakeLists.txt new file mode 100644 index 00000000000..5d1c6a370ef --- /dev/null +++ b/reactos/dll/keyboard/kbdbe/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdbe.dll kbdbe.spec) + +add_library(kbdbe SHARED kbdbe.c kbdbe.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdbe.def) + +set_entrypoint(kbdbe 0) + +add_dependencies(kbdbe psdk) + +add_cd_file(TARGET kbdbe DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdbga/CMakeLists.txt b/reactos/dll/keyboard/kbdbga/CMakeLists.txt new file mode 100644 index 00000000000..c009a41a2b5 --- /dev/null +++ b/reactos/dll/keyboard/kbdbga/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdbga.dll kbdbga.spec) + +add_library(kbdbga SHARED kbdbga.c kbdbga.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdbga.def) + +set_entrypoint(kbdbga 0) + +add_dependencies(kbdbga psdk) + +add_cd_file(TARGET kbdbga DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdbgm/CMakeLists.txt b/reactos/dll/keyboard/kbdbgm/CMakeLists.txt new file mode 100644 index 00000000000..67820d98d7b --- /dev/null +++ b/reactos/dll/keyboard/kbdbgm/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdbgm.dll kbdbgm.spec) + +add_library(kbdbgm SHARED kbdbgm.c kbdbgm.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdbgm.def) + +set_entrypoint(kbdbgm 0) + +add_dependencies(kbdbgm psdk) + +add_cd_file(TARGET kbdbgm DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdbgt/CMakeLists.txt b/reactos/dll/keyboard/kbdbgt/CMakeLists.txt new file mode 100644 index 00000000000..74a9f45511a --- /dev/null +++ b/reactos/dll/keyboard/kbdbgt/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdbgt.dll kbdbgt.spec) + +add_library(kbdbgt SHARED kbdbgt.c kbdbgt.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdbgt.def) + +set_entrypoint(kbdbgt 0) + +add_dependencies(kbdbgt psdk) + +add_cd_file(TARGET kbdbgt DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdblr/CMakeLists.txt b/reactos/dll/keyboard/kbdblr/CMakeLists.txt new file mode 100644 index 00000000000..0a2941d54e2 --- /dev/null +++ b/reactos/dll/keyboard/kbdblr/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdblr.dll kbdblr.spec) + +add_library(kbdblr SHARED kbdblr.c kbdblr.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdblr.def) + +set_entrypoint(kbdblr 0) + +add_dependencies(kbdblr psdk) + +add_cd_file(TARGET kbdblr DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdbr/CMakeLists.txt b/reactos/dll/keyboard/kbdbr/CMakeLists.txt new file mode 100644 index 00000000000..f8ea3619f07 --- /dev/null +++ b/reactos/dll/keyboard/kbdbr/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdbr.dll kbdbr.spec) + +add_library(kbdbr SHARED kbdbr.c kbdbr.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdbr.def) + +set_entrypoint(kbdbr 0) + +add_dependencies(kbdbr psdk) + +add_cd_file(TARGET kbdbr DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdbur/CMakeLists.txt b/reactos/dll/keyboard/kbdbur/CMakeLists.txt new file mode 100644 index 00000000000..9800c1358f2 --- /dev/null +++ b/reactos/dll/keyboard/kbdbur/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdbur.dll kbdbur.spec) + +add_library(kbdbur SHARED kbdbur.c kbdbur.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdbur.def) + +set_entrypoint(kbdbur 0) + +add_dependencies(kbdbur psdk) + +add_cd_file(TARGET kbdbur DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdcan/CMakeLists.txt b/reactos/dll/keyboard/kbdcan/CMakeLists.txt new file mode 100644 index 00000000000..7c244ba201f --- /dev/null +++ b/reactos/dll/keyboard/kbdcan/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdcan.dll kbdcan.spec) + +add_library(kbdcan SHARED kbdcan.c kbdcan.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdcan.def) + +set_entrypoint(kbdcan 0) + +add_dependencies(kbdcan psdk) + +add_cd_file(TARGET kbdcan DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdcr/CMakeLists.txt b/reactos/dll/keyboard/kbdcr/CMakeLists.txt new file mode 100644 index 00000000000..f69e7eaf0f5 --- /dev/null +++ b/reactos/dll/keyboard/kbdcr/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdcr.dll kbdcr.spec) + +add_library(kbdcr SHARED kbdcr.c kbdcr.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdcr.def) + +set_entrypoint(kbdcr 0) + +add_dependencies(kbdcr psdk) + +add_cd_file(TARGET kbdcr DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdcz/CMakeLists.txt b/reactos/dll/keyboard/kbdcz/CMakeLists.txt new file mode 100644 index 00000000000..6321509342e --- /dev/null +++ b/reactos/dll/keyboard/kbdcz/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdcz.dll kbdcz.spec) + +add_library(kbdcz SHARED kbdcz.c kbdcz.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdcz.def) + +set_entrypoint(kbdcz 0) + +add_dependencies(kbdcz psdk) + +add_cd_file(TARGET kbdcz DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdcz1/CMakeLists.txt b/reactos/dll/keyboard/kbdcz1/CMakeLists.txt new file mode 100644 index 00000000000..1e99681acea --- /dev/null +++ b/reactos/dll/keyboard/kbdcz1/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdcz1.dll kbdcz1.spec) + +add_library(kbdcz1 SHARED kbdcz1.c kbdcz1.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdcz1.def) + +set_entrypoint(kbdcz1 0) + +add_dependencies(kbdcz1 psdk) + +add_cd_file(TARGET kbdcz1 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdda/CMakeLists.txt b/reactos/dll/keyboard/kbdda/CMakeLists.txt new file mode 100644 index 00000000000..98d9b5bc607 --- /dev/null +++ b/reactos/dll/keyboard/kbdda/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdda.dll kbdda.spec) + +add_library(kbdda SHARED kbdda.c kbdda.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdda.def) + +set_entrypoint(kbdda 0) + +add_dependencies(kbdda psdk) + +add_cd_file(TARGET kbdda DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbddv/CMakeLists.txt b/reactos/dll/keyboard/kbddv/CMakeLists.txt new file mode 100644 index 00000000000..04e6c0c0b0f --- /dev/null +++ b/reactos/dll/keyboard/kbddv/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbddv.dll kbddv.spec) + +add_library(kbddv SHARED kbddv.c kbddv.rc ${CMAKE_CURRENT_BINARY_DIR}/kbddv.def) + +set_entrypoint(kbddv 0) + +add_dependencies(kbddv psdk) + +add_cd_file(TARGET kbddv DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdes/CMakeLists.txt b/reactos/dll/keyboard/kbdes/CMakeLists.txt new file mode 100644 index 00000000000..499266a7885 --- /dev/null +++ b/reactos/dll/keyboard/kbdes/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdes.dll kbdes.spec) + +add_library(kbdes SHARED kbdes.c kbdes.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdes.def) + +set_entrypoint(kbdes 0) + +add_dependencies(kbdes psdk) + +add_cd_file(TARGET kbdes DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdest/CMakeLists.txt b/reactos/dll/keyboard/kbdest/CMakeLists.txt new file mode 100644 index 00000000000..58c6199aca7 --- /dev/null +++ b/reactos/dll/keyboard/kbdest/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdest.dll kbdest.spec) + +add_library(kbdest SHARED kbdest.c kbdest.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdest.def) + +set_entrypoint(kbdest 0) + +add_dependencies(kbdest psdk) + +add_cd_file(TARGET kbdest DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdfc/CMakeLists.txt b/reactos/dll/keyboard/kbdfc/CMakeLists.txt new file mode 100644 index 00000000000..ce7a5cf3770 --- /dev/null +++ b/reactos/dll/keyboard/kbdfc/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdfc.dll kbdfc.spec) + +add_library(kbdfc SHARED kbdfc.c kbdfc.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdfc.def) + +set_entrypoint(kbdfc 0) + +add_dependencies(kbdfc psdk) + +add_cd_file(TARGET kbdfc DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdfi/CMakeLists.txt b/reactos/dll/keyboard/kbdfi/CMakeLists.txt new file mode 100644 index 00000000000..3b922e5a524 --- /dev/null +++ b/reactos/dll/keyboard/kbdfi/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdfi.dll kbdfi.spec) + +add_library(kbdfi SHARED kbdfi.c kbdfi.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdfi.def) + +set_entrypoint(kbdfi 0) + +add_dependencies(kbdfi psdk) + +add_cd_file(TARGET kbdfi DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdfr/CMakeLists.txt b/reactos/dll/keyboard/kbdfr/CMakeLists.txt new file mode 100644 index 00000000000..85b13850923 --- /dev/null +++ b/reactos/dll/keyboard/kbdfr/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdfr.dll kbdfr.spec) + +add_library(kbdfr SHARED kbdfr.c kbdfr.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdfr.def) + +set_entrypoint(kbdfr 0) + +add_dependencies(kbdfr psdk) + +add_cd_file(TARGET kbdfr DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdgeo/CMakeLists.txt b/reactos/dll/keyboard/kbdgeo/CMakeLists.txt new file mode 100644 index 00000000000..965855edf27 --- /dev/null +++ b/reactos/dll/keyboard/kbdgeo/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdgeo.dll kbdgeo.spec) + +add_library(kbdgeo SHARED kbdgeo.c kbdgeo.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdgeo.def) + +set_entrypoint(kbdgeo 0) + +add_dependencies(kbdgeo psdk) + +add_cd_file(TARGET kbdgeo DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdgerg/CMakeLists.txt b/reactos/dll/keyboard/kbdgerg/CMakeLists.txt new file mode 100644 index 00000000000..db17d6930fe --- /dev/null +++ b/reactos/dll/keyboard/kbdgerg/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdgerg.dll kbdgerg.spec) + +add_library(kbdgerg SHARED kbdgerg.c kbdgerg.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdgerg.def) + +set_entrypoint(kbdgerg 0) + +add_dependencies(kbdgerg psdk) + +add_cd_file(TARGET kbdgerg DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdgneo/CMakeLists.txt b/reactos/dll/keyboard/kbdgneo/CMakeLists.txt new file mode 100644 index 00000000000..3227429ea93 --- /dev/null +++ b/reactos/dll/keyboard/kbdgneo/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdgneo.dll kbdgneo.spec) + +add_library(kbdgneo SHARED kbdgneo.c kbdgneo.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdgneo.def) + +set_entrypoint(kbdgneo 0) + +add_dependencies(kbdgneo psdk) + +add_cd_file(TARGET kbdgneo DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdgr/CMakeLists.txt b/reactos/dll/keyboard/kbdgr/CMakeLists.txt new file mode 100644 index 00000000000..c488873b654 --- /dev/null +++ b/reactos/dll/keyboard/kbdgr/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdgr.dll kbdgr.spec) + +add_library(kbdgr SHARED kbdgr.c kbdgr.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdgr.def) + +set_entrypoint(kbdgr 0) + +add_dependencies(kbdgr psdk) + +add_cd_file(TARGET kbdgr DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdgrist/CMakeLists.txt b/reactos/dll/keyboard/kbdgrist/CMakeLists.txt new file mode 100644 index 00000000000..19ffbd7a056 --- /dev/null +++ b/reactos/dll/keyboard/kbdgrist/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdgrist.dll kbdgrist.spec) + +add_library(kbdgrist SHARED kbdgrist.c kbdgrist.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdgrist.def) + +set_entrypoint(kbdgrist 0) + +add_dependencies(kbdgrist psdk) + +add_cd_file(TARGET kbdgrist DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdhe/CMakeLists.txt b/reactos/dll/keyboard/kbdhe/CMakeLists.txt new file mode 100644 index 00000000000..b9af2891de7 --- /dev/null +++ b/reactos/dll/keyboard/kbdhe/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdhe.dll kbdhe.spec) + +add_library(kbdhe SHARED kbdhe.c kbdhe.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdhe.def) + +set_entrypoint(kbdhe 0) + +add_dependencies(kbdhe psdk) + +add_cd_file(TARGET kbdhe DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdheb/CMakeLists.txt b/reactos/dll/keyboard/kbdheb/CMakeLists.txt new file mode 100644 index 00000000000..59e64bc2c30 --- /dev/null +++ b/reactos/dll/keyboard/kbdheb/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdheb.dll kbdheb.spec) + +add_library(kbdheb SHARED kbdheb.c kbdheb.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdheb.def) + +set_entrypoint(kbdheb 0) + +add_dependencies(kbdheb psdk) + +add_cd_file(TARGET kbdheb DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdhu/CMakeLists.txt b/reactos/dll/keyboard/kbdhu/CMakeLists.txt new file mode 100644 index 00000000000..a78195adbb9 --- /dev/null +++ b/reactos/dll/keyboard/kbdhu/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdhu.dll kbdhu.spec) + +add_library(kbdhu SHARED kbdhu.c kbdhu.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdhu.def) + +set_entrypoint(kbdhu 0) + +add_dependencies(kbdhu psdk) + +add_cd_file(TARGET kbdhu DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdic/CMakeLists.txt b/reactos/dll/keyboard/kbdic/CMakeLists.txt new file mode 100644 index 00000000000..3d910a2a429 --- /dev/null +++ b/reactos/dll/keyboard/kbdic/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdic.dll kbdic.spec) + +add_library(kbdic SHARED kbdic.c kbdic.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdic.def) + +set_entrypoint(kbdic 0) + +add_dependencies(kbdic psdk) + +add_cd_file(TARGET kbdic DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdinasa/CMakeLists.txt b/reactos/dll/keyboard/kbdinasa/CMakeLists.txt new file mode 100644 index 00000000000..bd975973b68 --- /dev/null +++ b/reactos/dll/keyboard/kbdinasa/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdinasa.dll kbdinasa.spec) + +add_library(kbdinasa SHARED kbdinasa.c kbdinasa.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdinasa.def) + +set_entrypoint(kbdinasa 0) + +add_dependencies(kbdinasa psdk) + +add_cd_file(TARGET kbdinasa DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdinben/CMakeLists.txt b/reactos/dll/keyboard/kbdinben/CMakeLists.txt new file mode 100644 index 00000000000..9579cf1f6f0 --- /dev/null +++ b/reactos/dll/keyboard/kbdinben/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdinben.dll kbdinben.spec) + +add_library(kbdinben SHARED kbdinben.c kbdinben.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdinben.def) + +set_entrypoint(kbdinben 0) + +add_dependencies(kbdinben psdk) + +add_cd_file(TARGET kbdinben DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdindev/CMakeLists.txt b/reactos/dll/keyboard/kbdindev/CMakeLists.txt new file mode 100644 index 00000000000..624f7859457 --- /dev/null +++ b/reactos/dll/keyboard/kbdindev/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdindev.dll kbdindev.spec) + +add_library(kbdindev SHARED kbdindev.c kbdindev.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdindev.def) + +set_entrypoint(kbdindev 0) + +add_dependencies(kbdindev psdk) + +add_cd_file(TARGET kbdindev DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdinguj/CMakeLists.txt b/reactos/dll/keyboard/kbdinguj/CMakeLists.txt new file mode 100644 index 00000000000..e10c4d17540 --- /dev/null +++ b/reactos/dll/keyboard/kbdinguj/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdinguj.dll kbdinguj.spec) + +add_library(kbdinguj SHARED kbdinguj.c kbdinguj.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdinguj.def) + +set_entrypoint(kbdinguj 0) + +add_dependencies(kbdinguj psdk) + +add_cd_file(TARGET kbdinguj DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdinmal/CMakeLists.txt b/reactos/dll/keyboard/kbdinmal/CMakeLists.txt new file mode 100644 index 00000000000..5bbfb8a68dc --- /dev/null +++ b/reactos/dll/keyboard/kbdinmal/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdinmal.dll kbdinmal.spec) + +add_library(kbdinmal SHARED kbdinmal.c kbdinmal.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdinmal.def) + +set_entrypoint(kbdinmal 0) + +add_dependencies(kbdinmal psdk) + +add_cd_file(TARGET kbdinmal DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdir/CMakeLists.txt b/reactos/dll/keyboard/kbdir/CMakeLists.txt new file mode 100644 index 00000000000..49817b73386 --- /dev/null +++ b/reactos/dll/keyboard/kbdir/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdir.dll kbdir.spec) + +add_library(kbdir SHARED kbdir.c kbdir.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdir.def) + +set_entrypoint(kbdir 0) + +add_dependencies(kbdir psdk) + +add_cd_file(TARGET kbdir DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdit/CMakeLists.txt b/reactos/dll/keyboard/kbdit/CMakeLists.txt new file mode 100644 index 00000000000..052f75b0c05 --- /dev/null +++ b/reactos/dll/keyboard/kbdit/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdit.dll kbdit.spec) + +add_library(kbdit SHARED kbdit.c kbdit.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdit.def) + +set_entrypoint(kbdit 0) + +add_dependencies(kbdit psdk) + +add_cd_file(TARGET kbdit DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdja/CMakeLists.txt b/reactos/dll/keyboard/kbdja/CMakeLists.txt new file mode 100644 index 00000000000..af982889ebf --- /dev/null +++ b/reactos/dll/keyboard/kbdja/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdja.dll kbdja.spec) + +add_library(kbdja SHARED kbdja.c kbdja.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdja.def) + +set_entrypoint(kbdja 0) + +add_dependencies(kbdja psdk) + +add_cd_file(TARGET kbdja DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdkaz/CMakeLists.txt b/reactos/dll/keyboard/kbdkaz/CMakeLists.txt new file mode 100644 index 00000000000..587a4acfc96 --- /dev/null +++ b/reactos/dll/keyboard/kbdkaz/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdkaz.dll kbdkaz.spec) + +add_library(kbdkaz SHARED kbdkaz.c kbdkaz.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdkaz.def) + +set_entrypoint(kbdkaz 0) + +add_dependencies(kbdkaz psdk) + +add_cd_file(TARGET kbdkaz DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdko/CMakeLists.txt b/reactos/dll/keyboard/kbdko/CMakeLists.txt new file mode 100644 index 00000000000..d7525fd42d2 --- /dev/null +++ b/reactos/dll/keyboard/kbdko/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdko.dll kbdko.spec) + +add_library(kbdko SHARED kbdko.c kbdko.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdko.def) + +set_entrypoint(kbdko 0) + +add_dependencies(kbdko psdk) + +add_cd_file(TARGET kbdko DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdla/CMakeLists.txt b/reactos/dll/keyboard/kbdla/CMakeLists.txt new file mode 100644 index 00000000000..a34ab26e2c5 --- /dev/null +++ b/reactos/dll/keyboard/kbdla/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdla.dll kbdla.spec) + +add_library(kbdla SHARED kbdla.c kbdla.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdla.def) + +set_entrypoint(kbdla 0) + +add_dependencies(kbdla psdk) + +add_cd_file(TARGET kbdla DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdlt1/CMakeLists.txt b/reactos/dll/keyboard/kbdlt1/CMakeLists.txt new file mode 100644 index 00000000000..17cdce162d0 --- /dev/null +++ b/reactos/dll/keyboard/kbdlt1/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdlt1.dll kbdlt1.spec) + +add_library(kbdlt1 SHARED kbdlt1.c kbdlt1.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdlt1.def) + +set_entrypoint(kbdlt1 0) + +add_dependencies(kbdlt1 psdk) + +add_cd_file(TARGET kbdlt1 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdlv/CMakeLists.txt b/reactos/dll/keyboard/kbdlv/CMakeLists.txt new file mode 100644 index 00000000000..31a5a3754d5 --- /dev/null +++ b/reactos/dll/keyboard/kbdlv/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdlv.dll kbdlv.spec) + +add_library(kbdlv SHARED kbdlv.c kbdlv.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdlv.def) + +set_entrypoint(kbdlv 0) + +add_dependencies(kbdlv psdk) + +add_cd_file(TARGET kbdlv DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdmac/CMakeLists.txt b/reactos/dll/keyboard/kbdmac/CMakeLists.txt new file mode 100644 index 00000000000..0c96cc0ff3d --- /dev/null +++ b/reactos/dll/keyboard/kbdmac/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdmac.dll kbdmac.spec) + +add_library(kbdmac SHARED kbdmac.c kbdmac.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdmac.def) + +set_entrypoint(kbdmac 0) + +add_dependencies(kbdmac psdk) + +add_cd_file(TARGET kbdmac DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdne/CMakeLists.txt b/reactos/dll/keyboard/kbdne/CMakeLists.txt new file mode 100644 index 00000000000..b9695b36e7d --- /dev/null +++ b/reactos/dll/keyboard/kbdne/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdne.dll kbdne.spec) + +add_library(kbdne SHARED kbdne.c kbdne.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdne.def) + +set_entrypoint(kbdne 0) + +add_dependencies(kbdne psdk) + +add_cd_file(TARGET kbdne DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdno/CMakeLists.txt b/reactos/dll/keyboard/kbdno/CMakeLists.txt new file mode 100644 index 00000000000..7f971891fa8 --- /dev/null +++ b/reactos/dll/keyboard/kbdno/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdno.dll kbdno.spec) + +add_library(kbdno SHARED kbdno.c kbdno.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdno.def) + +set_entrypoint(kbdno 0) + +add_dependencies(kbdno psdk) + +add_cd_file(TARGET kbdno DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdpl1/CMakeLists.txt b/reactos/dll/keyboard/kbdpl1/CMakeLists.txt new file mode 100644 index 00000000000..2b482b47679 --- /dev/null +++ b/reactos/dll/keyboard/kbdpl1/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdpl1.dll kbdpl1.spec) + +add_library(kbdpl1 SHARED kbdpl1.c kbdpl1.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdpl1.def) + +set_entrypoint(kbdpl1 0) + +add_dependencies(kbdpl1 psdk) + +add_cd_file(TARGET kbdpl1 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdpo/CMakeLists.txt b/reactos/dll/keyboard/kbdpo/CMakeLists.txt new file mode 100644 index 00000000000..496d776f9a7 --- /dev/null +++ b/reactos/dll/keyboard/kbdpo/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdpo.dll kbdpo.spec) + +add_library(kbdpo SHARED kbdpo.c kbdpo.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdpo.def) + +set_entrypoint(kbdpo 0) + +add_dependencies(kbdpo psdk) + +add_cd_file(TARGET kbdpo DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdro/CMakeLists.txt b/reactos/dll/keyboard/kbdro/CMakeLists.txt new file mode 100644 index 00000000000..2d1d3d87c1e --- /dev/null +++ b/reactos/dll/keyboard/kbdro/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdro.dll kbdro.spec) + +add_library(kbdro SHARED kbdro.c kbdro.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdro.def) + +set_entrypoint(kbdro 0) + +add_dependencies(kbdro psdk) + +add_cd_file(TARGET kbdro DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdru/CMakeLists.txt b/reactos/dll/keyboard/kbdru/CMakeLists.txt new file mode 100644 index 00000000000..7c513274102 --- /dev/null +++ b/reactos/dll/keyboard/kbdru/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdru.dll kbdru.spec) + +add_library(kbdru SHARED kbdru.c kbdru.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdru.def) + +set_entrypoint(kbdru 0) + +add_dependencies(kbdru psdk) + +add_cd_file(TARGET kbdru DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdru1/CMakeLists.txt b/reactos/dll/keyboard/kbdru1/CMakeLists.txt new file mode 100644 index 00000000000..62b1672938f --- /dev/null +++ b/reactos/dll/keyboard/kbdru1/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdru1.dll kbdru1.spec) + +add_library(kbdru1 SHARED kbdru1.c kbdru1.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdru1.def) + +set_entrypoint(kbdru1 0) + +add_dependencies(kbdru1 psdk) + +add_cd_file(TARGET kbdru1 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdsg/CMakeLists.txt b/reactos/dll/keyboard/kbdsg/CMakeLists.txt new file mode 100644 index 00000000000..2338afac9a6 --- /dev/null +++ b/reactos/dll/keyboard/kbdsg/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdsg.dll kbdsg.spec) + +add_library(kbdsg SHARED kbdsg.c kbdsg.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdsg.def) + +set_entrypoint(kbdsg 0) + +add_dependencies(kbdsg psdk) + +add_cd_file(TARGET kbdsg DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdsk/CMakeLists.txt b/reactos/dll/keyboard/kbdsk/CMakeLists.txt new file mode 100644 index 00000000000..3445d1d98cb --- /dev/null +++ b/reactos/dll/keyboard/kbdsk/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdsk.dll kbdsk.spec) + +add_library(kbdsk SHARED kbdsk.c kbdsk.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdsk.def) + +set_entrypoint(kbdsk 0) + +add_dependencies(kbdsk psdk) + +add_cd_file(TARGET kbdsk DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdsk1/CMakeLists.txt b/reactos/dll/keyboard/kbdsk1/CMakeLists.txt new file mode 100644 index 00000000000..1860bede0a1 --- /dev/null +++ b/reactos/dll/keyboard/kbdsk1/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdsk1.dll kbdsk1.spec) + +add_library(kbdsk1 SHARED kbdsk1.c kbdsk1.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdsk1.def) + +set_entrypoint(kbdsk1 0) + +add_dependencies(kbdsk1 psdk) + +add_cd_file(TARGET kbdsk1 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdsw/CMakeLists.txt b/reactos/dll/keyboard/kbdsw/CMakeLists.txt new file mode 100644 index 00000000000..4bbda232c9b --- /dev/null +++ b/reactos/dll/keyboard/kbdsw/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdsw.dll kbdsw.spec) + +add_library(kbdsw SHARED kbdsw.c kbdsw.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdsw.def) + +set_entrypoint(kbdsw 0) + +add_dependencies(kbdsw psdk) + +add_cd_file(TARGET kbdsw DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdtat/CMakeLists.txt b/reactos/dll/keyboard/kbdtat/CMakeLists.txt new file mode 100644 index 00000000000..0ee6b976f01 --- /dev/null +++ b/reactos/dll/keyboard/kbdtat/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdtat.dll kbdtat.spec) + +add_library(kbdtat SHARED kbdtat.c kbdtat.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdtat.def) + +set_entrypoint(kbdtat 0) + +add_dependencies(kbdtat psdk) + +add_cd_file(TARGET kbdtat DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdth0/CMakeLists.txt b/reactos/dll/keyboard/kbdth0/CMakeLists.txt new file mode 100644 index 00000000000..57b49fce51f --- /dev/null +++ b/reactos/dll/keyboard/kbdth0/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdth0.dll kbdth0.spec) + +add_library(kbdth0 SHARED kbdth0.c kbdth0.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdth0.def) + +set_entrypoint(kbdth0 0) + +add_dependencies(kbdth0 psdk) + +add_cd_file(TARGET kbdth0 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdth1/CMakeLists.txt b/reactos/dll/keyboard/kbdth1/CMakeLists.txt new file mode 100644 index 00000000000..1ccaa3ec662 --- /dev/null +++ b/reactos/dll/keyboard/kbdth1/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdth1.dll kbdth1.spec) + +add_library(kbdth1 SHARED kbdth1.c kbdth1.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdth1.def) + +set_entrypoint(kbdth1 0) + +add_dependencies(kbdth1 psdk) + +add_cd_file(TARGET kbdth1 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdth2/CMakeLists.txt b/reactos/dll/keyboard/kbdth2/CMakeLists.txt new file mode 100644 index 00000000000..54f7b675424 --- /dev/null +++ b/reactos/dll/keyboard/kbdth2/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdth2.dll kbdth2.spec) + +add_library(kbdth2 SHARED kbdth2.c kbdth2.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdth2.def) + +set_entrypoint(kbdth2 0) + +add_dependencies(kbdth2 psdk) + +add_cd_file(TARGET kbdth2 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdth3/CMakeLists.txt b/reactos/dll/keyboard/kbdth3/CMakeLists.txt new file mode 100644 index 00000000000..f40d878ed80 --- /dev/null +++ b/reactos/dll/keyboard/kbdth3/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdth3.dll kbdth3.spec) + +add_library(kbdth3 SHARED kbdth3.c kbdth3.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdth3.def) + +set_entrypoint(kbdth3 0) + +add_dependencies(kbdth3 psdk) + +add_cd_file(TARGET kbdth3 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdtuf/CMakeLists.txt b/reactos/dll/keyboard/kbdtuf/CMakeLists.txt new file mode 100644 index 00000000000..7203a80d578 --- /dev/null +++ b/reactos/dll/keyboard/kbdtuf/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdtuf.dll kbdtuf.spec) + +add_library(kbdtuf SHARED kbdtuf.c kbdtuf.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdtuf.def) + +set_entrypoint(kbdtuf 0) + +add_dependencies(kbdtuf psdk) + +add_cd_file(TARGET kbdtuf DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdtuq/CMakeLists.txt b/reactos/dll/keyboard/kbdtuq/CMakeLists.txt new file mode 100644 index 00000000000..da03c035551 --- /dev/null +++ b/reactos/dll/keyboard/kbdtuq/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdtuq.dll kbdtuq.spec) + +add_library(kbdtuq SHARED kbdtuq.c kbdtuq.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdtuq.def) + +set_entrypoint(kbdtuq 0) + +add_dependencies(kbdtuq psdk) + +add_cd_file(TARGET kbdtuq DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbduk/CMakeLists.txt b/reactos/dll/keyboard/kbduk/CMakeLists.txt new file mode 100644 index 00000000000..6f92fcab0a2 --- /dev/null +++ b/reactos/dll/keyboard/kbduk/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbduk.dll kbduk.spec) + +add_library(kbduk SHARED kbduk.c kbduk.rc ${CMAKE_CURRENT_BINARY_DIR}/kbduk.def) + +set_entrypoint(kbduk 0) + +add_dependencies(kbduk psdk) + +add_cd_file(TARGET kbduk DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdur/CMakeLists.txt b/reactos/dll/keyboard/kbdur/CMakeLists.txt new file mode 100644 index 00000000000..eb17d88e204 --- /dev/null +++ b/reactos/dll/keyboard/kbdur/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdur.dll kbdur.spec) + +add_library(kbdur SHARED kbdur.c kbdur.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdur.def) + +set_entrypoint(kbdur 0) + +add_dependencies(kbdur psdk) + +add_cd_file(TARGET kbdur DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdurs/CMakeLists.txt b/reactos/dll/keyboard/kbdurs/CMakeLists.txt new file mode 100644 index 00000000000..1ab666a813c --- /dev/null +++ b/reactos/dll/keyboard/kbdurs/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdurs.dll kbdurs.spec) + +add_library(kbdurs SHARED kbdurs.c kbdurs.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdurs.def) + +set_entrypoint(kbdurs 0) + +add_dependencies(kbdurs psdk) + +add_cd_file(TARGET kbdurs DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdus/CMakeLists.txt b/reactos/dll/keyboard/kbdus/CMakeLists.txt new file mode 100644 index 00000000000..8eecc6db687 --- /dev/null +++ b/reactos/dll/keyboard/kbdus/CMakeLists.txt @@ -0,0 +1,11 @@ +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdus.dll kbdus.spec) + +add_library(kbdus SHARED kbdus.c kbdus.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdus.def) + +set_entrypoint(kbdus 0) + +add_dependencies(kbdus psdk) + +add_cd_file(TARGET kbdus DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdusa/CMakeLists.txt b/reactos/dll/keyboard/kbdusa/CMakeLists.txt new file mode 100644 index 00000000000..eb146859eef --- /dev/null +++ b/reactos/dll/keyboard/kbdusa/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdusa.dll kbdusa.spec) + +add_library(kbdusa SHARED kbdusa.c kbdusa.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdusa.def) + +set_entrypoint(kbdusa 0) + +add_dependencies(kbdusa psdk) + +add_cd_file(TARGET kbdusa DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdusl/CMakeLists.txt b/reactos/dll/keyboard/kbdusl/CMakeLists.txt new file mode 100644 index 00000000000..e459e894fc8 --- /dev/null +++ b/reactos/dll/keyboard/kbdusl/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdusl.dll kbdusl.spec) + +add_library(kbdusl SHARED kbdusl.c kbdusl.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdusl.def) + +set_entrypoint(kbdusl 0) + +add_dependencies(kbdusl psdk) + +add_cd_file(TARGET kbdusl DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdusr/CMakeLists.txt b/reactos/dll/keyboard/kbdusr/CMakeLists.txt new file mode 100644 index 00000000000..8ae497238a7 --- /dev/null +++ b/reactos/dll/keyboard/kbdusr/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdusr.dll kbdusr.spec) + +add_library(kbdusr SHARED kbdusr.c kbdusr.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdusr.def) + +set_entrypoint(kbdusr 0) + +add_dependencies(kbdusr psdk) + +add_cd_file(TARGET kbdusr DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdusx/CMakeLists.txt b/reactos/dll/keyboard/kbdusx/CMakeLists.txt new file mode 100644 index 00000000000..1994501979d --- /dev/null +++ b/reactos/dll/keyboard/kbdusx/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdusx.dll kbdusx.spec) + +add_library(kbdusx SHARED kbdusx.c kbdusx.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdusx.def) + +set_entrypoint(kbdusx 0) + +add_dependencies(kbdusx psdk) + +add_cd_file(TARGET kbdusx DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbduzb/CMakeLists.txt b/reactos/dll/keyboard/kbduzb/CMakeLists.txt new file mode 100644 index 00000000000..2ad14e5fcda --- /dev/null +++ b/reactos/dll/keyboard/kbduzb/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbduzb.dll kbduzb.spec) + +add_library(kbduzb SHARED kbduzb.c kbduzb.rc ${CMAKE_CURRENT_BINARY_DIR}/kbduzb.def) + +set_entrypoint(kbduzb 0) + +add_dependencies(kbduzb psdk) + +add_cd_file(TARGET kbduzb DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdvntc/CMakeLists.txt b/reactos/dll/keyboard/kbdvntc/CMakeLists.txt new file mode 100644 index 00000000000..d180991f214 --- /dev/null +++ b/reactos/dll/keyboard/kbdvntc/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdvntc.dll kbdvntc.spec) + +add_library(kbdvntc SHARED kbdvntc.c kbdvntc.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdvntc.def) + +set_entrypoint(kbdvntc 0) + +add_dependencies(kbdvntc psdk) + +add_cd_file(TARGET kbdvntc DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdycc/CMakeLists.txt b/reactos/dll/keyboard/kbdycc/CMakeLists.txt new file mode 100644 index 00000000000..2711771377a --- /dev/null +++ b/reactos/dll/keyboard/kbdycc/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdycc.dll kbdycc.spec) + +add_library(kbdycc SHARED kbdycc.c kbdycc.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdycc.def) + +set_entrypoint(kbdycc 0) + +add_dependencies(kbdycc psdk) + +add_cd_file(TARGET kbdycc DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/keyboard/kbdycl/CMakeLists.txt b/reactos/dll/keyboard/kbdycl/CMakeLists.txt new file mode 100644 index 00000000000..5726970a10c --- /dev/null +++ b/reactos/dll/keyboard/kbdycl/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +spec2def(kbdycl.dll kbdycl.spec) + +add_library(kbdycl SHARED kbdycl.c kbdycl.rc ${CMAKE_CURRENT_BINARY_DIR}/kbdycl.def) + +set_entrypoint(kbdycl 0) + +add_dependencies(kbdycl psdk) + +add_cd_file(TARGET kbdycl DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/nls/CMakeLists.txt b/reactos/dll/nls/CMakeLists.txt new file mode 100644 index 00000000000..fbc21b3dd20 --- /dev/null +++ b/reactos/dll/nls/CMakeLists.txt @@ -0,0 +1,3 @@ + +add_subdirectory(idndl) +add_subdirectory(normaliz) diff --git a/reactos/dll/nls/idndl/CMakeLists.txt b/reactos/dll/nls/idndl/CMakeLists.txt new file mode 100644 index 00000000000..7604698f11d --- /dev/null +++ b/reactos/dll/nls/idndl/CMakeLists.txt @@ -0,0 +1,21 @@ + +remove_definitions(-DWINVER=0x502) +add_definitions(-DWINVER=0x600) + +spec2def(idndl.dll idndl.spec) + +add_library(idndl SHARED + idndl.cpp + ${CMAKE_CURRENT_BINARY_DIR}/idndl.def) + +set_entrypoint(idndl 0) + +if(NOT MSVC) + set_target_properties(idndl PROPERTIES COMPILE_FLAGS "-fno-exceptions -fno-rtti") +endif(NOT MSVC) + +add_importlibs(idndl kernel32) + +add_dependencies(idndl psdk) + +add_cd_file(TARGET idndl DESTINATION reactos FOR all) diff --git a/reactos/dll/nls/normaliz/CMakeLists.txt b/reactos/dll/nls/normaliz/CMakeLists.txt new file mode 100644 index 00000000000..1180cea06df --- /dev/null +++ b/reactos/dll/nls/normaliz/CMakeLists.txt @@ -0,0 +1,10 @@ + +spec2def(normaliz.dll normaliz.spec) + +add_library(normaliz SHARED dummy.c ${CMAKE_CURRENT_BINARY_DIR}/normaliz.def) + +set_entrypoint(normaliz 0) + +add_importlibs(normaliz kernel32) + +add_dependencies(normaliz psdk) diff --git a/reactos/dll/nls/normaliz/normaliz.spec b/reactos/dll/nls/normaliz/normaliz.spec new file mode 100644 index 00000000000..54e3206fa69 --- /dev/null +++ b/reactos/dll/nls/normaliz/normaliz.spec @@ -0,0 +1,6 @@ + + @ stdcall IdnToAscii(long wstr long wstr long) kernel32.IdnToAscii + @ stdcall IdnToNameprepUnicode(long wstr long wstr long) kernel32.IdnToNameprepUnicode + @ stdcall IdnToUnicode(long wstr long wstr long) kernel32.IdnToUnicode + @ stdcall IsNormalizedString(long wstr long) kernel32.IsNormalizedString + @ stdcall NormalizeString(long wstr long wstr long) kernel32.NormalizeString diff --git a/reactos/dll/ntdll/CMakeLists.txt b/reactos/dll/ntdll/CMakeLists.txt new file mode 100644 index 00000000000..31090630436 --- /dev/null +++ b/reactos/dll/ntdll/CMakeLists.txt @@ -0,0 +1,62 @@ + +spec2def(ntdll.dll def/ntdll.spec) + +add_definitions( + -D__NTDLL__ + -D_NTOSKRNL_ + -DCRTDLL) + +include_directories( + BEFORE include + ${REACTOS_SOURCE_DIR}/include/reactos/subsys) + +list(APPEND SOURCE + csr/api.c + csr/capture.c + csr/connect.c + dbg/dbgui.c + ldr/actctx.c + ldr/ldrapi.c + ldr/ldrinit.c + ldr/ldrpe.c + ldr/ldrutils.c + ldr/startup.c + ldr/utils.c + rtl/libsupp.c + rtl/version.c + def/ntdll.rc + ${CMAKE_CURRENT_BINARY_DIR}/ntdll.def) + +if(ARCH MATCHES i386) +list(APPEND SOURCE dispatch/i386/dispatch.S) +elseif(ARCH MATCHES amd64) +list(APPEND SOURCE dispatch/amd64/stubs.c) +elseif(ARCH MATCHES arm) +list(APPEND SOURCE dispatch/arm/stubs_asm.s) +else() +list(APPEND SOURCE dispatch/dispatch.c) +endif(ARCH MATCHES i386) + +add_library(ntdll SHARED + ${CMAKE_CURRENT_BINARY_DIR}/ntdll_ntdll.h.gch + ${SOURCE}) + +set_entrypoint(ntdll 0) + +if(MSVC) +target_link_libraries(ntdll rtl) +else() +target_link_libraries(ntdll -Wl,--whole-archive rtl -Wl,--no-whole-archive) +endif() + +target_link_libraries(ntdll + ntdllsys + libcntpr + ${PSEH_LIB}) + +set_image_base(ntdll ${baseaddress_ntdll}) +add_pch(ntdll ${CMAKE_CURRENT_SOURCE_DIR}/include/ntdll.h ${SOURCE}) +add_dependencies(ntdll ntstatus asm) + +add_cd_file(TARGET ntdll DESTINATION reactos/system32 NO_CAB FOR all) +add_importlib_target(def/ntdll.spec) diff --git a/reactos/dll/ntdll/def/ntdll.spec b/reactos/dll/ntdll/def/ntdll.spec new file mode 100644 index 00000000000..b1805ae7f3d --- /dev/null +++ b/reactos/dll/ntdll/def/ntdll.spec @@ -0,0 +1,1431 @@ + +;@ stdcall A_SHAFinal ; 6.0 and higher +;@ stdcall A_SHAInit ; 6.0 and higher +;@ stdcall A_SHAUpdate ; 6.0 and higher +;@ stdcall AitFireParentUsageEvent ; 6.1 and higher +;@ stdcall AitLogFeatureUsageByApp ; 6.1 and higher +;@ stdcall AlpcAdjustCompletionListConcurrencyCount ; 6.0 and higher +;@ stdcall AlpcFreeCompletionListMessage ; 6.0 and higher +;@ stdcall AlpcGetCompletionListLastMessageInformation ; 6.0 and higher +;@ stdcall AlpcGetCompletionListMessageAttributes ; 6.0 and higher +;@ stdcall AlpcGetHeaderSize ; 6.0 and higher +;@ stdcall AlpcGetMessageAttribute ; 6.0 and higher +;@ stdcall AlpcGetMessageFromCompletionList ; 6.0 and higher +;@ stdcall AlpcGetOutstandingCompletionListMessageCount ; 6.0 and higher +;@ stdcall AlpcInitializeMessageAttribute ; 6.0 and higher +;@ stdcall AlpcMaxAllowedMessageLength ; 6.0 and higher +;@ stdcall AlpcRegisterCompletionList ; 6.0 and higher +;@ stdcall AlpcRegisterCompletionListWorkerThread ; 6.0 and higher +;@ stdcall AlpcRundownCompletionList ; 6.1 and higher +;@ stdcall AlpcUnregisterCompletionList ; 6.0 and higher +;@ stdcall AlpcUnregisterCompletionListWorkerThread ; 6.0 and higher +@ stdcall CsrAllocateCaptureBuffer(long long) +;@ stdcall CsrAllocateCapturePointer ; NT3, NT4 only +@ 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 CsrClientMaxMessage ; NT3 only +;@ stdcall CsrClientSendMessage ; NT3 only +;@ stdcall CsrClientThreadConnect ; NT3 only +@ stdcall CsrFreeCaptureBuffer(ptr) +@ stdcall CsrGetProcessId() +@ stdcall CsrIdentifyAlertableThread() +@ stdcall CsrNewThread() +@ stdcall CsrProbeForRead(ptr long long) +@ stdcall CsrProbeForWrite(ptr long long) +@ stdcall CsrSetPriorityClass(ptr ptr) +;@ stdcall CsrpProcessCallbackRequest ; 3.51 only +@ stdcall DbgBreakPoint() +@ varargs DbgPrint(str) +@ varargs DbgPrintEx(long long str) +@ varargs DbgPrintReturnControlC(str) +@ stdcall DbgPrompt(ptr ptr long) +@ stdcall DbgQueryDebugFilterState(long long) +@ stdcall DbgSetDebugFilterState(long long long) +@ stdcall DbgUiConnectToDbg() +@ stdcall DbgUiContinue(ptr long) +@ stdcall DbgUiConvertStateChangeStructure(ptr ptr) +@ stdcall DbgUiDebugActiveProcess(ptr) +@ stdcall DbgUiGetThreadDebugObject() +@ stdcall DbgUiIssueRemoteBreakin(ptr) +@ stdcall DbgUiRemoteBreakin() +@ stdcall DbgUiSetThreadDebugObject(ptr) +@ stdcall DbgUiStopDebugging(ptr) +@ stdcall DbgUiWaitStateChange(ptr ptr) +@ stdcall DbgUserBreakPoint() +@ stdcall -arch=i386 KiFastSystemCall() +@ stdcall -arch=i386 KiFastSystemCallRet() +@ stdcall -arch=i386 KiIntSystemCall() +@ stdcall -arch=i386 ExpInterlockedPopEntrySListEnd() +@ stdcall -arch=i386 ExpInterlockedPopEntrySListFault() +@ stdcall -arch=i386 ExpInterlockedPopEntrySListResume() +@ stdcall KiRaiseUserExceptionDispatcher() +@ stdcall KiUserApcDispatcher(ptr ptr ptr ptr) +@ stdcall KiUserCallbackDispatcher(ptr ptr long) ; CHECKME +@ stdcall KiUserExceptionDispatcher(ptr ptr) +;@ stdcall LdrAccessOutOfProcessResource +@ stdcall LdrAccessResource(long ptr ptr ptr) +@ stdcall LdrAddRefDll(long ptr) +;@ stdcall LdrAlternateResourcesEnabled +;@ stdcall LdrCreateOutOfProcessImage +;@ stdcall LdrDestroyOutOfProcessImage +@ stdcall LdrDisableThreadCalloutsForDll(long) +@ stdcall LdrEnumResources(ptr ptr long ptr ptr) +@ stdcall LdrEnumerateLoadedModules(long ptr long) +;@ stdcall LdrFindCreateProcessManifest ; 5.1 and 5.2 only +@ stdcall LdrFindEntryForAddress(ptr ptr) +@ stdcall LdrFindResourceDirectory_U(long ptr long ptr) +;@ stdcall LdrFindResourceEx_U ; 5.1 and higher +@ stdcall LdrFindResource_U(long ptr long ptr) +;@ stdcall LdrFlushAlternateResourceModules +@ stdcall LdrGetDllHandle(wstr long ptr ptr) +;@ stdcall LdrGetDllHandleEx +@ stdcall LdrGetProcedureAddress(ptr ptr long ptr) +;@ stdcall LdrHotPatchRoutine +;@ stdcall LdrInitShimEngineDynamic +@ stdcall LdrInitializeThunk(long long long long) +;@ stdcall LdrLoadAlternateResourceModule +@ stdcall LdrLoadDll(wstr long ptr ptr) +@ stdcall LdrLockLoaderLock(long ptr ptr) +;@ stdcall LdrOpenImageFileOptionsKey ; 5.2 SP1 and higher +@ stdcall LdrProcessRelocationBlock(ptr long ptr long) +@ stdcall LdrQueryImageFileExecutionOptions(ptr str long ptr long ptr) +@ stdcall LdrQueryProcessModuleInformation(ptr long ptr) +;@ stdcall LdrSetAppCompatDllRedirectionCallback +;@ stdcall LdrSetDllManifestProber +@ stdcall LdrShutdownProcess() +@ stdcall LdrShutdownThread() +@ stdcall LdrUnloadAlternateResourceModule(ptr) +@ stdcall LdrUnloadDll(ptr) +@ stdcall LdrUnlockLoaderLock(long long) +@ stdcall LdrVerifyImageMatchesChecksum(ptr long long long) +@ extern NlsAnsiCodePage +@ extern NlsMbCodePageTag +@ extern NlsMbOemCodePageTag +@ stdcall NtAcceptConnectPort(ptr long ptr long long ptr) +@ stdcall NtAccessCheck(ptr long long ptr ptr ptr ptr ptr) +@ stdcall NtAccessCheckAndAuditAlarm(ptr long ptr ptr ptr long ptr long ptr ptr ptr) +@ stdcall NtAccessCheckByType(ptr ptr ptr long ptr long ptr ptr long ptr ptr) +@ stdcall NtAccessCheckByTypeAndAuditAlarm(ptr ptr ptr ptr ptr ptr long long long ptr long ptr long ptr ptr ptr) +@ stdcall NtAccessCheckByTypeResultList(ptr ptr ptr long ptr long ptr ptr long ptr ptr) +@ stdcall NtAccessCheckByTypeResultListAndAuditAlarm(ptr ptr ptr ptr ptr ptr long long long ptr long ptr long ptr ptr ptr) +@ stdcall NtAccessCheckByTypeResultListAndAuditAlarmByHandle(ptr ptr ptr ptr ptr ptr ptr long long long ptr long ptr long ptr ptr ptr) +@ stdcall NtAddAtom(ptr long ptr) +@ stdcall NtAddBootEntry(ptr long) +@ stdcall NtAddDriverEntry(ptr long) ; 5.2 and higher +@ stdcall NtAdjustGroupsToken(long long ptr long ptr ptr) +@ stdcall NtAdjustPrivilegesToken(long long long long long long) +@ stdcall NtAlertResumeThread(long ptr) +@ stdcall NtAlertThread(long) +@ stdcall NtAllocateLocallyUniqueId(ptr) +@ stdcall NtAllocateUserPhysicalPages(ptr ptr ptr) +@ stdcall NtAllocateUuids(ptr ptr ptr ptr) +@ stdcall NtAllocateVirtualMemory(long ptr ptr ptr long long) +@ stdcall NtApphelpCacheControl(long ptr) +@ stdcall NtAreMappedFilesTheSame(ptr ptr) +@ stdcall NtAssignProcessToJobObject(long long) +@ stdcall NtCallbackReturn(ptr long long) +@ stdcall NtCancelDeviceWakeupRequest(ptr) +@ stdcall NtCancelIoFile(long ptr) +;@ stdcall NtCancelIoFileEx(long ptr ptr) ; 6.0 and higher +@ stdcall NtCancelTimer(long ptr) +@ stdcall NtClearEvent(long) +@ stdcall NtClose(long) +@ stdcall NtCloseObjectAuditAlarm(ptr ptr long) +@ stdcall NtCompactKeys(long ptr) +@ stdcall NtCompareTokens(ptr ptr ptr) +@ stdcall NtCompleteConnectPort(ptr) +@ stdcall NtCompressKey(ptr) +@ stdcall NtConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr) +@ stdcall NtContinue(ptr long) +@ stdcall NtCreateDebugObject(ptr long ptr long) +@ stdcall NtCreateDirectoryObject(long long long) +@ stdcall NtCreateEvent(long long long long long) +@ stdcall NtCreateEventPair(ptr long ptr) +@ stdcall NtCreateFile(ptr long ptr ptr long long long ptr long long ptr) +@ stdcall NtCreateIoCompletion(ptr long ptr long) +@ stdcall NtCreateJobObject(ptr long ptr) +@ stdcall NtCreateJobSet(long ptr long) +@ stdcall NtCreateKey(ptr long ptr long ptr long long) +@ stdcall NtCreateKeyedEvent(ptr long ptr long) +@ stdcall NtCreateMailslotFile(long long long long long long long long) +@ stdcall NtCreateMutant(ptr long ptr long) +@ stdcall NtCreateNamedPipeFile(ptr long ptr ptr long long long long long long long long long ptr) +@ stdcall NtCreatePagingFile(long long long long) +@ stdcall NtCreatePort(ptr ptr long long ptr) +@ stdcall NtCreateProcess(ptr long ptr ptr long ptr ptr ptr) +@ stdcall NtCreateProcessEx(ptr long ptr ptr long ptr ptr ptr long) +@ stdcall NtCreateProfile(ptr ptr ptr long long ptr long long long) ; CHECKME +@ stdcall NtCreateSection(ptr long ptr ptr long long long) +@ stdcall NtCreateSemaphore(ptr long ptr long long) +@ stdcall NtCreateSymbolicLinkObject(ptr long ptr ptr) +@ stdcall NtCreateThread(ptr long ptr ptr ptr ptr ptr long) +@ stdcall NtCreateTimer(ptr long ptr long) +@ stdcall NtCreateToken(ptr long ptr long ptr ptr ptr ptr ptr ptr ptr ptr ptr) +@ stdcall NtCreateWaitablePort(ptr ptr long long long) +@ stdcall -arch=win32 NtCurrentTeb() _NtCurrentTeb +@ stdcall NtDebugActiveProcess(ptr ptr) +@ stdcall NtDebugContinue(ptr ptr long) +@ stdcall NtDelayExecution(long ptr) +@ stdcall NtDeleteAtom(long) +@ stdcall NtDeleteBootEntry(long) +@ stdcall NtDeleteFile(ptr) +@ stdcall NtDeleteKey(long) +@ stdcall NtDeleteObjectAuditAlarm(ptr ptr long) +@ stdcall NtDeleteValueKey(long ptr) +@ stdcall NtDeviceIoControlFile(long long long long long long long long long long) +@ stdcall NtDisplayString(ptr) +@ stdcall NtDuplicateObject(long long long ptr long long long) +@ stdcall NtDuplicateToken(long long long long long long) +@ stdcall NtEnumerateBootEntries(ptr ptr) +;@ stdcall NtEnumerateBus ; 3.51 only +@ stdcall NtEnumerateKey (long long long long long long) +@ stdcall NtEnumerateSystemEnvironmentValuesEx(long ptr long) +@ stdcall NtEnumerateValueKey(long long long long long long) +@ stdcall NtExtendSection(ptr ptr) +@ stdcall NtFilterToken(ptr long ptr ptr ptr ptr) +@ stdcall NtFindAtom(ptr long ptr) +@ stdcall NtFlushBuffersFile(long ptr) +@ stdcall NtFlushInstructionCache(long ptr long) +@ stdcall NtFlushKey(long) +@ stdcall NtFlushVirtualMemory(long ptr ptr long) +@ stdcall NtFlushWriteBuffer() +@ stdcall NtFreeUserPhysicalPages(ptr ptr ptr) +@ stdcall NtFreeVirtualMemory(long ptr ptr long) +@ stdcall NtFsControlFile(long long long long long long long long long long) +@ stdcall NtGetContextThread(long ptr) +@ stdcall NtGetCurrentProcessorNumber() ; 5.2 and higher +@ stdcall NtGetDevicePowerState(ptr ptr) +@ stdcall NtGetPlugPlayEvent(long long ptr long) +;@ stdcall NtGetTickCount() +@ stdcall NtGetWriteWatch(long long ptr long ptr ptr ptr) +@ stdcall NtImpersonateAnonymousToken(ptr) +@ stdcall NtImpersonateClientOfPort(ptr ptr) +@ stdcall NtImpersonateThread(ptr ptr ptr) +@ stdcall NtInitializeRegistry(long) +@ stdcall NtInitiatePowerAction (long long long long) +@ stdcall NtIsProcessInJob(long long) +@ stdcall NtIsSystemResumeAutomatic() +@ stdcall NtListenPort(ptr ptr) +@ stdcall NtLoadDriver(ptr) +@ stdcall NtLoadKey2(ptr ptr long) +@ stdcall NtLoadKey(ptr ptr) +@ stdcall NtLockFile(long long ptr ptr ptr ptr ptr ptr long long) +@ stdcall NtLockProductActivationKeys(ptr ptr) +@ stdcall NtLockRegistryKey(ptr) +@ stdcall NtLockVirtualMemory(long ptr ptr long) +@ stdcall NtMakePermanentObject(ptr) +@ stdcall NtMakeTemporaryObject(long) +@ stdcall NtMapUserPhysicalPages(ptr ptr ptr) +@ stdcall NtMapUserPhysicalPagesScatter(ptr ptr ptr) +@ stdcall NtMapViewOfSection(long long ptr long long ptr ptr long long long) +@ stdcall NtModifyBootEntry(ptr) +@ stdcall NtNotifyChangeDirectoryFile(long long ptr ptr ptr ptr long long long) +@ stdcall NtNotifyChangeKey(long long ptr ptr ptr long long ptr long long) +@ stdcall NtNotifyChangeMultipleKeys(ptr long ptr ptr ptr ptr ptr long long ptr long long) +@ stdcall NtOpenDirectoryObject(long long long) +@ stdcall NtOpenEvent(long long long) +@ stdcall NtOpenEventPair(ptr long ptr) +@ stdcall NtOpenFile(ptr long ptr ptr long long) +@ stdcall NtOpenIoCompletion(ptr long ptr) +@ stdcall NtOpenJobObject(ptr long ptr) +@ stdcall NtOpenKey(ptr long ptr) +@ stdcall NtOpenKeyedEvent(ptr long ptr) +@ stdcall NtOpenMutant(ptr long ptr) +@ stdcall NtOpenObjectAuditAlarm(ptr ptr ptr ptr ptr ptr long long ptr long long ptr) +@ stdcall NtOpenProcess(ptr long ptr ptr) +@ stdcall NtOpenProcessToken(long long ptr) +@ stdcall NtOpenProcessTokenEx(long long long ptr) +@ stdcall NtOpenSection(ptr long ptr) +@ stdcall NtOpenSemaphore(long long ptr) +@ stdcall NtOpenSymbolicLinkObject (ptr long ptr) +@ stdcall NtOpenThread(ptr long ptr ptr) +@ stdcall NtOpenThreadToken(long long long ptr) +@ stdcall NtOpenThreadTokenEx(long long long long ptr) +@ stdcall NtOpenTimer(ptr long ptr) +@ stdcall NtPlugPlayControl(ptr ptr long) +@ stdcall NtPowerInformation(long ptr long ptr long) +@ stdcall NtPrivilegeCheck(ptr ptr ptr) +@ stdcall NtPrivilegeObjectAuditAlarm(ptr ptr ptr long ptr long) +@ stdcall NtPrivilegedServiceAuditAlarm(ptr ptr ptr ptr long) +@ stdcall NtProtectVirtualMemory(long ptr ptr long ptr) +@ stdcall NtPulseEvent(long ptr) +@ stdcall NtQueryAttributesFile(ptr ptr) +@ stdcall NtQueryBootEntryOrder(ptr ptr) +@ stdcall NtQueryBootOptions(ptr ptr) +@ stdcall NtQueryDebugFilterState(long long) +@ stdcall NtQueryDefaultLocale(long ptr) +@ stdcall NtQueryDefaultUILanguage(ptr) +@ stdcall NtQueryDirectoryFile(long long ptr ptr ptr ptr long long long ptr long) +@ stdcall NtQueryDirectoryObject(long ptr long long long ptr ptr) +@ stdcall NtQueryEaFile(long ptr ptr long long ptr long ptr long) +@ stdcall NtQueryEvent(long long ptr long ptr) +@ stdcall NtQueryFullAttributesFile(ptr ptr) +@ stdcall NtQueryInformationAtom(long long ptr long ptr) +@ stdcall NtQueryInformationFile(long ptr ptr long long) +@ stdcall NtQueryInformationJobObject(long long ptr long ptr) +@ stdcall NtQueryInformationPort(ptr long ptr long ptr) +@ stdcall NtQueryInformationProcess(long long ptr long ptr) +@ stdcall NtQueryInformationThread(long long ptr long ptr) +@ stdcall NtQueryInformationToken(long long ptr long ptr) +@ stdcall NtQueryInstallUILanguage(ptr) +@ stdcall NtQueryIntervalProfile(long ptr) +@ stdcall NtQueryIoCompletion(long long ptr long ptr) +@ stdcall NtQueryKey (long long ptr long ptr) +@ stdcall NtQueryMultipleValueKey(long ptr long ptr long ptr) +@ stdcall NtQueryMutant(long long ptr long ptr) +@ stdcall NtQueryObject(long long long long long) +@ stdcall NtQueryOpenSubKeys(ptr ptr) +@ stdcall NtQueryPerformanceCounter(ptr ptr) +@ stdcall NtQueryPortInformationProcess() +@ stdcall NtQueryQuotaInformationFile(ptr ptr ptr long long ptr long ptr long) +@ stdcall NtQuerySection (long long long long long) +@ stdcall NtQuerySecurityObject (long long long long long) +@ stdcall NtQuerySemaphore (long long ptr long ptr) +@ stdcall NtQuerySymbolicLinkObject(long ptr ptr) +@ stdcall NtQuerySystemEnvironmentValue(ptr ptr long ptr) +@ stdcall NtQuerySystemEnvironmentValueEx(ptr ptr ptr ptr ptr) +@ stdcall NtQuerySystemInformation(long long long long) +@ stdcall NtQuerySystemTime(ptr) +@ stdcall NtQueryTimer(ptr long ptr long ptr) +@ stdcall NtQueryTimerResolution(long long long) +@ stdcall NtQueryValueKey(long long long long long long) +@ stdcall NtQueryVirtualMemory(long ptr long ptr long ptr) +@ stdcall NtQueryVolumeInformationFile(long ptr ptr long long) +@ stdcall NtQueueApcThread(long ptr long long long) +@ stdcall NtRaiseException(ptr ptr long) +@ stdcall NtRaiseHardError(long long long ptr long ptr) +@ stdcall NtReadFile(long long ptr ptr ptr ptr long ptr ptr) +@ stdcall NtReadFileScatter(long long ptr ptr ptr ptr long ptr ptr) +@ stdcall NtReadRequestData(ptr ptr long ptr long ptr) +@ stdcall NtReadVirtualMemory(long ptr ptr long ptr) +;@ stdcall NtRegisterNewDevice ; 3.51 only +@ stdcall NtRegisterThreadTerminatePort(ptr) +@ stdcall NtReleaseKeyedEvent(ptr ptr long ptr) +@ stdcall NtReleaseMutant(long ptr) +;@ stdcall NtReleaseProcessMutant ; 3.51 only +@ stdcall NtReleaseSemaphore(long long ptr) +@ stdcall NtRemoveIoCompletion(ptr ptr ptr ptr ptr) +@ stdcall NtRemoveProcessDebug(ptr ptr) +@ stdcall NtRenameKey(ptr ptr) +@ stdcall NtReplaceKey(ptr long ptr) +@ stdcall NtReplyPort(ptr ptr) +@ stdcall NtReplyWaitReceivePort(ptr ptr ptr ptr) +@ stdcall NtReplyWaitReceivePortEx(ptr ptr ptr ptr ptr) +@ stdcall NtReplyWaitReplyPort(ptr ptr) +@ stdcall NtRequestDeviceWakeup(ptr) +@ stdcall NtRequestPort(ptr ptr) +@ stdcall NtRequestWaitReplyPort(ptr ptr ptr) +@ stdcall NtRequestWakeupLatency(long) +@ stdcall NtResetEvent(long ptr) +@ stdcall NtResetWriteWatch(long ptr long) +@ stdcall NtRestoreKey(long long long) +@ stdcall NtResumeProcess(ptr) +@ stdcall NtResumeThread(long long) +@ stdcall NtSaveKey(long long) +@ stdcall NtSaveKeyEx(ptr ptr long) +@ stdcall NtSaveMergedKeys(ptr ptr ptr) +@ stdcall NtSecureConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr ptr) +@ stdcall NtSetBootEntryOrder(ptr ptr) +@ stdcall NtSetBootOptions(ptr long) +@ stdcall NtSetContextThread(long ptr) +@ stdcall NtSetDebugFilterState(long long long) +@ stdcall NtSetDefaultHardErrorPort(ptr) +@ stdcall NtSetDefaultLocale(long long) +@ stdcall NtSetDefaultUILanguage(long) +@ stdcall NtSetEaFile(long ptr ptr long) +@ stdcall NtSetEvent(long long) +@ stdcall NtSetEventBoostPriority(ptr) +@ stdcall NtSetHighEventPair(ptr) +@ stdcall NtSetHighWaitLowEventPair(ptr) +;@ stdcall NtSetHighWaitLowThread ; 3.51 and 4.0 only +@ stdcall NtSetInformationDebugObject(ptr long ptr long ptr) +@ stdcall NtSetInformationFile(long long long long long) +@ stdcall NtSetInformationJobObject(long long ptr long) +@ stdcall NtSetInformationKey(long long ptr long) +@ stdcall NtSetInformationObject(long long ptr long) +@ stdcall NtSetInformationProcess(long long long long) +@ stdcall NtSetInformationThread(long long ptr long) +@ stdcall NtSetInformationToken(long long ptr long) +@ stdcall NtSetIntervalProfile(long long) +@ stdcall NtSetIoCompletion(ptr long ptr long long) +@ stdcall NtSetLdtEntries(long double long double) ; CHECKME +@ stdcall NtSetLowEventPair(ptr) +@ stdcall NtSetLowWaitHighEventPair(ptr) +;@ stdcall NtSetLowWaitHighThread ; 3.51 and 4.0 only +@ stdcall NtSetQuotaInformationFile(ptr ptr ptr long) +@ stdcall NtSetSecurityObject(long long ptr) +@ stdcall NtSetSystemEnvironmentValue(ptr ptr) +@ stdcall NtSetSystemEnvironmentValueEx(ptr ptr) +@ stdcall NtSetSystemInformation(long ptr long) +@ stdcall NtSetSystemPowerState(long long long) +@ stdcall NtSetSystemTime(ptr ptr) +@ stdcall NtSetThreadExecutionState(long ptr) +@ stdcall NtSetTimer(long ptr ptr ptr long long ptr) +@ stdcall NtSetTimerResolution(long long ptr) +@ stdcall NtSetUuidSeed(ptr) +@ stdcall NtSetValueKey(long long long long long long) +@ stdcall NtSetVolumeInformationFile(long ptr ptr long long) +@ stdcall NtShutdownSystem(long) +@ stdcall NtSignalAndWaitForSingleObject(long long long ptr) +@ stdcall NtStartProfile(ptr) +@ stdcall NtStopProfile(ptr) +@ stdcall NtSuspendProcess(ptr) +@ stdcall NtSuspendThread(long ptr) +@ stdcall NtSystemDebugControl(long ptr long ptr long ptr) +@ stdcall NtTerminateJobObject(long long) +@ stdcall NtTerminateProcess(long long) +@ stdcall NtTerminateThread(long long) +@ stdcall NtTestAlert() +@ stdcall NtTraceEvent(long long long ptr) +@ stdcall NtTranslateFilePath(ptr long ptr long) +@ stdcall NtUnloadDriver(ptr) +@ stdcall NtUnloadKey(long) +@ stdcall NtUnloadKeyEx(ptr ptr) +@ stdcall NtUnlockFile(long ptr ptr ptr ptr) +@ stdcall NtUnlockVirtualMemory(long ptr ptr long) +@ stdcall NtUnmapViewOfSection(long ptr) +@ stdcall NtVdmControl(long ptr) +;@ stdcall NtW32Call(long ptr long ptr ptr) +@ stdcall NtWaitForDebugEvent(ptr long ptr ptr) +@ stdcall NtWaitForKeyedEvent(ptr ptr long ptr) +@ stdcall NtWaitForMultipleObjects(long ptr long long ptr) +;@ stdcall NtWaitForProcessMutant ; 3.51 only +@ stdcall NtWaitForSingleObject(long long long) +@ stdcall NtWaitHighEventPair(ptr) +@ stdcall NtWaitLowEventPair(ptr) +@ stdcall NtWriteFile(long long ptr ptr ptr ptr long ptr ptr) +@ stdcall NtWriteFileGather(long long ptr ptr ptr ptr long ptr ptr) +@ stdcall NtWriteRequestData(ptr ptr long ptr long ptr) +@ stdcall NtWriteVirtualMemory(long ptr ptr long ptr) +@ stdcall NtYieldExecution() +;@ stdcall PfxFindPrefix +;@ stdcall PfxInitialize +;@ stdcall PfxInsertPrefix +;@ stdcall PfxRemovePrefix +;@ stdcall PropertyLengthAsVariant +;@ stdcall RtlAbortRXact +@ stdcall RtlAbsoluteToSelfRelativeSD(ptr ptr ptr) +@ stdcall RtlAcquirePebLock() +@ stdcall RtlAcquireResourceExclusive(ptr long) +@ stdcall RtlAcquireResourceShared(ptr long) +@ stdcall RtlAcquireSRWLockExclusive(ptr) +@ stdcall RtlAcquireSRWLockShared(ptr) +@ stdcall RtlActivateActivationContext(long ptr ptr) +;@ stdcall RtlActivateActivationContextEx +@ fastcall RtlActivateActivationContextUnsafeFast(ptr ptr) +@ stdcall RtlAddAccessAllowedAce(ptr long long ptr) +@ stdcall RtlAddAccessAllowedAceEx(ptr long long long ptr) +@ stdcall RtlAddAccessAllowedObjectAce(ptr long long long ptr ptr ptr) +@ stdcall RtlAddAccessDeniedAce(ptr long long ptr) +@ stdcall RtlAddAccessDeniedAceEx(ptr long long long ptr) +@ stdcall RtlAddAccessDeniedObjectAce(ptr long long long ptr ptr ptr) +@ stdcall RtlAddAce(ptr long long ptr long) +;@ stdcall RtlAddActionToRXact +@ stdcall RtlAddAtomToAtomTable(ptr wstr ptr) +;@ stdcall RtlAddAttributeActionToRXact +@ stdcall RtlAddAuditAccessAce(ptr long long ptr long long) +@ stdcall RtlAddAuditAccessAceEx(ptr long long long ptr long long) +@ stdcall RtlAddAuditAccessObjectAce(ptr long long long ptr ptr ptr long long) +;@ stdcall RtlAddCompoundAce +;@ stdcall RtlAddRange ; 5.0 and 5.1 only +@ stdcall -arch=x86_64 RtlAddFunctionTable(ptr long long) +@ stdcall RtlAddMandatoryAce(ptr long long long long ptr) +@ stdcall RtlAddRefActivationContext(ptr) +;@ stdcall RtlAddRefMemoryStream +@ stdcall RtlAddVectoredContinueHandler(long ptr) +@ stdcall RtlAddVectoredExceptionHandler(long ptr) +;@ stdcall RtlAddressInSectionTable +@ stdcall RtlAdjustPrivilege(long long long ptr) +@ stdcall RtlAllocateActivationContextStack(ptr) ; CHEKME +@ stdcall RtlAllocateAndInitializeSid(ptr long long long long long long long long long ptr) +@ stdcall RtlAllocateHandle(ptr ptr) +@ stdcall RtlAllocateHeap(ptr long ptr) +@ stdcall RtlAnsiCharToUnicodeChar(ptr) +@ stdcall RtlAnsiStringToUnicodeSize(ptr) RtlxAnsiStringToUnicodeSize +@ stdcall RtlAnsiStringToUnicodeString(ptr ptr long) +@ stdcall RtlAppendAsciizToString(ptr str) +;@ stdcall RtlAppendPathElement +@ stdcall RtlAppendStringToString(ptr ptr) +@ stdcall RtlAppendUnicodeStringToString(ptr ptr) +@ stdcall RtlAppendUnicodeToString(ptr wstr) +;@ stdcall RtlApplicationVerifierStop +;@ stdcall RtlApplyRXact +;@ stdcall RtlApplyRXactNoFlush +@ stdcall RtlAreAllAccessesGranted(long long) +@ stdcall RtlAreAnyAccessesGranted(long long) +@ stdcall RtlAreBitsClear(ptr long long) +@ stdcall RtlAreBitsSet(ptr long long) +;@ stdcall RtlAssert2 +@ stdcall RtlAssert(ptr ptr long ptr) +;@ stdcall RtlCancelTimer +@ stdcall -register RtlCaptureContext(ptr) +@ stdcall RtlCaptureStackBackTrace(long long ptr ptr) +;@ stdcall RtlCaptureStackContext +@ stdcall RtlCharToInteger(ptr long ptr) +;@ stdcall RtlCheckForOrphanedCriticalSections +;@ stdcall RtlCheckProcessParameters +@ stdcall RtlCheckRegistryKey(long ptr) +@ stdcall RtlClearAllBits(ptr) +@ stdcall RtlClearBits(ptr long long) +;@ stdcall RtlCloneMemoryStream +;@ stdcall RtlClosePropertySet ; NT 4.0 only +;@ stdcall RtlCommitMemoryStream +@ stdcall RtlCompactHeap(long long) +@ stdcall RtlCompareMemory(ptr ptr long) +@ stdcall RtlCompareMemoryUlong(ptr long long) +@ stdcall RtlCompareString(ptr ptr long) +@ stdcall RtlCompareUnicodeString (ptr ptr long) +@ stdcall RtlCompressBuffer(long ptr long ptr long long ptr ptr) +@ stdcall RtlComputeCrc32(long ptr long) +;@ stdcall RtlComputeImportTableHash +;@ stdcall RtlComputePrivatizedDllName_U +;@ stdcall RtlConsoleMultiByteToUnicodeN +@ stdcall RtlConvertExclusiveToShared(ptr) +@ stdcall -arch=win32 -ret64 RtlConvertLongToLargeInteger(long) +;@ stdcall RtlConvertPropertyToVariant +@ stdcall RtlConvertSharedToExclusive(ptr) +@ stdcall RtlConvertSidToUnicodeString(ptr ptr long) +;@ stdcall RtlConvertToAutoInheritSecurityObject +;@ stdcall RtlConvertUiListToApiList +@ stdcall -arch=win32 -ret64 RtlConvertUlongToLargeInteger(long) +;@ stdcall RtlConvertVariantToProperty +@ stdcall RtlCopyLuid(ptr ptr) +@ stdcall RtlCopyLuidAndAttributesArray(long ptr ptr) +;@ stdcall RtlCopyMappedMemory +;@ stdcall RtlCopyMemoryStreamTo +;@ stdcall RtlCopyOutOfProcessMemoryStreamTo +;@ stdcall RtlCopyRangeList ; 5.0 and 5.1 only +@ stdcall RtlCopySecurityDescriptor(ptr ptr) +@ stdcall RtlCopySid(long ptr ptr) +@ stdcall RtlCopySidAndAttributesArray(long ptr long ptr ptr ptr ptr) +@ stdcall RtlCopyString(ptr ptr) +@ stdcall RtlCopyUnicodeString(ptr ptr) +@ stdcall RtlCreateAcl(ptr long long) +@ stdcall RtlCreateActivationContext(ptr ptr) +;@ stdcall RtlCreateAndSetSD +@ stdcall RtlCreateAtomTable(long ptr) +@ stdcall RtlCreateBootStatusDataFile() +@ stdcall RtlCreateEnvironment(long ptr) +@ stdcall RtlCreateHeap(long ptr long long ptr ptr) +@ stdcall RtlCreateProcessParameters(ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) +;@ stdcall RtlCreatePropertySet ; 4.0 only +@ stdcall RtlCreateQueryDebugBuffer(long long) +@ stdcall RtlCreateRegistryKey(long wstr) +@ stdcall RtlCreateSecurityDescriptor(ptr long) +@ stdcall RtlCreateSystemVolumeInformationFolder(ptr) +@ stdcall RtlCreateTagHeap(ptr long str str) +@ stdcall RtlCreateTimer(ptr ptr ptr ptr long long long) +@ stdcall RtlCreateTimerQueue(ptr) +@ stdcall RtlCreateUnicodeString(ptr wstr) +@ stdcall RtlCreateUnicodeStringFromAsciiz(ptr str) +@ stdcall RtlCreateUserProcess(ptr long ptr ptr ptr ptr long ptr ptr ptr) +;@ stdcall RtlCreateUserSecurityObject +@ stdcall RtlCreateUserThread(long ptr long ptr long long ptr ptr ptr ptr) +@ stdcall RtlCustomCPToUnicodeN(ptr wstr long ptr str long) +@ stdcall RtlCutoverTimeToSystemTime(ptr ptr ptr long) +@ stdcall RtlDeNormalizeProcessParams(ptr) +@ stdcall RtlDeactivateActivationContext(long long) +@ fastcall RtlDeactivateActivationContextUnsafeFast(ptr) +;@ stdcall RtlDebugPrintTimes +@ stdcall RtlDecodePointer(ptr) +@ stdcall RtlDecodeSystemPointer(ptr) RtlEncodeSystemPointer +@ stdcall RtlDecompressBuffer(long ptr long ptr long ptr) +@ stdcall RtlDecompressFragment(long ptr long ptr long long ptr ptr) +;@ stdcall RtlDefaultNpAcl +@ stdcall RtlDelete(ptr) +@ stdcall RtlDeleteAce(ptr long) +@ stdcall RtlDeleteAtomFromAtomTable(ptr long) +@ stdcall RtlDeleteCriticalSection(ptr) +@ stdcall RtlDeleteElementGenericTable(ptr ptr) +@ stdcall RtlDeleteElementGenericTableAvl(ptr ptr) +@ cdecl -arch=x86_64 RtlDeleteFunctionTable(ptr) +@ stdcall RtlDeleteNoSplay(ptr ptr) +@ stdcall RtlDeleteOwnersRanges(ptr ptr) +@ stdcall RtlDeleteRange(ptr long long long long ptr) +@ stdcall RtlDeleteRegistryValue(long ptr ptr) +@ stdcall RtlDeleteResource(ptr) +@ stdcall RtlDeleteSecurityObject(ptr) +@ stdcall RtlDeleteTimer(ptr ptr ptr) +@ stdcall RtlDeleteTimerQueue(ptr) +@ stdcall RtlDeleteTimerQueueEx(ptr ptr) +@ stdcall RtlDeregisterWait(ptr) +@ stdcall RtlDeregisterWaitEx(ptr ptr) +@ stdcall RtlDestroyAtomTable(ptr) +@ stdcall RtlDestroyEnvironment(ptr) +@ stdcall RtlDestroyHandleTable(ptr) +@ stdcall RtlDestroyHeap(long) +@ stdcall RtlDestroyProcessParameters(ptr) +@ stdcall RtlDestroyQueryDebugBuffer(ptr) +@ stdcall RtlDetermineDosPathNameType_U(wstr) +@ stdcall RtlDllShutdownInProgress() +@ stdcall RtlDnsHostNameToComputerName(ptr ptr long) +@ stdcall RtlDoesFileExists_U(wstr) +;@ stdcall RtlDosApplyFileIsolationRedirection_Ustr +@ stdcall RtlDosPathNameToNtPathName_U(wstr ptr ptr ptr) +;@ stdcall RtlDosPathNameToNtPathName_U_WithStatus ; 5.2 SP1, and higher +@ stdcall RtlDosPathNameToRelativeNtPathName_U(ptr ptr ptr ptr) ; CHECKME +;@ stdcall RtlDosPathNameToRelativeNtPathName_U_WithStatus +@ stdcall RtlDosSearchPath_U(wstr wstr wstr long ptr ptr) +;@ stdcall RtlDosSearchPath_Ustr +@ stdcall RtlDowncaseUnicodeChar(long) +@ stdcall RtlDowncaseUnicodeString(ptr ptr long) +@ stdcall RtlDumpResource(ptr) +@ stdcall RtlDuplicateUnicodeString(long ptr ptr) +@ stdcall RtlEmptyAtomTable(ptr long) +;@ stdcall RtlEnableEarlyCriticalSectionEventCreation +@ stdcall RtlEncodePointer(ptr) +@ stdcall RtlEncodeSystemPointer(ptr) +@ stdcall -arch=win32 -ret64 RtlEnlargedIntegerMultiply(long long) +@ stdcall -arch=win32 RtlEnlargedUnsignedDivide(double long ptr) +@ stdcall -arch=win32 -ret64 RtlEnlargedUnsignedMultiply(long long) +@ stdcall RtlEnterCriticalSection(ptr) +@ stdcall RtlEnumProcessHeaps(ptr ptr) +@ stdcall RtlEnumerateGenericTable(ptr long) +@ stdcall RtlEnumerateGenericTableAvl(ptr long) +@ stdcall RtlEnumerateGenericTableLikeADirectory(ptr ptr ptr long ptr ptr ptr) +@ stdcall RtlEnumerateGenericTableWithoutSplaying(ptr ptr) +@ stdcall RtlEnumerateGenericTableWithoutSplayingAvl(ptr ptr) +;@ stdcall RtlEnumerateProperties ; 4.0 only +@ stdcall RtlEqualComputerName(ptr ptr) +@ stdcall RtlEqualDomainName(ptr ptr) +@ stdcall RtlEqualLuid(ptr ptr) +@ stdcall RtlEqualPrefixSid(ptr ptr) +@ stdcall RtlEqualSid(long long) +@ stdcall RtlEqualString(ptr ptr long) +@ stdcall RtlEqualUnicodeString(ptr ptr long) +@ stdcall RtlEraseUnicodeString(ptr) +@ stdcall RtlExitUserThread(long) +@ stdcall RtlExpandEnvironmentStrings_U(ptr ptr ptr ptr) +@ stdcall RtlExtendHeap(ptr long ptr ptr) +@ stdcall -arch=win32 -ret64 RtlExtendedIntegerMultiply(double long) +@ stdcall -arch=win32 -ret64 RtlExtendedLargeIntegerDivide(double long ptr) +@ stdcall -arch=win32 -ret64 RtlExtendedMagicDivide(double double long) +@ stdcall RtlFillMemory(ptr long long) +@ stdcall RtlFillMemoryUlong(ptr long long) +;@ stdcall RtlFinalReleaseOutOfProcessMemoryStream +;@ stdcall RtlFindActivationContextSectionGuid +@ stdcall RtlFindActivationContextSectionString(long ptr long ptr ptr) +@ stdcall RtlFindCharInUnicodeString(long ptr ptr ptr) +@ stdcall RtlFindClearBits(ptr long long) +@ stdcall RtlFindClearBitsAndSet(ptr long long) +@ stdcall RtlFindClearRuns(ptr ptr long long) +@ stdcall RtlFindLastBackwardRunClear(ptr long ptr) +;@ stdcall RtlFindLastBackwardRunSet(ptr long ptr) +@ stdcall RtlFindLeastSignificantBit(double) +@ stdcall RtlFindLongestRunClear(ptr long) +@ stdcall RtlFindLongestRunSet(ptr long) +@ stdcall RtlFindMessage(long long long long ptr) +@ stdcall RtlFindMostSignificantBit(double) +@ stdcall RtlFindNextForwardRunClear(ptr long ptr) +;@ stdcall RtlFindNextForwardRunSet(ptr long ptr) +@ stdcall RtlFindRange(ptr long long long long long long long long ptr ptr ptr) +@ stdcall RtlFindSetBits(ptr long long) +@ stdcall RtlFindSetBitsAndClear(ptr long long) +;@ stdcall RtlFindSetRuns(ptr ptr long long) +@ stdcall RtlFirstEntrySList(ptr) +@ stdcall RtlFirstFreeAce(ptr ptr) +;@ stdcall RtlFlushPropertySet ; 4.0 only +@ stdcall RtlFlushSecureMemoryCache(ptr ptr) +@ stdcall RtlFormatCurrentUserKeyPath(ptr) +@ stdcall RtlFormatMessage(ptr long long long long ptr ptr long) +;@ stdcall RtlFormatMessageEx +;@ stdcall RtlFreeActivationContextStack +@ stdcall RtlFreeAnsiString(long) +@ stdcall RtlFreeHandle(ptr ptr) +@ stdcall RtlFreeHeap(long long long) +@ stdcall RtlFreeOemString(ptr) +@ stdcall RtlFreeRangeList(ptr) +@ stdcall RtlFreeSid(long) +@ stdcall RtlFreeThreadActivationContextStack() +@ stdcall RtlFreeUnicodeString(ptr) +@ stdcall RtlFreeUserThreadStack(ptr ptr) ; 4.0 to 5.2 only +@ stdcall RtlGUIDFromString(ptr ptr) +@ stdcall RtlGenerate8dot3Name(ptr ptr long ptr) +@ stdcall RtlGetAce(ptr long ptr) +@ stdcall RtlGetActiveActivationContext(ptr) +@ stdcall RtlGetCallersAddress(ptr ptr) +@ stdcall RtlGetCompressionWorkSpaceSize(long ptr ptr) +@ stdcall RtlGetControlSecurityDescriptor(ptr ptr ptr) +;@ stdcall RtlGetCriticalSectionRecursionCount +@ stdcall RtlGetCurrentDirectory_U(long ptr) +@ stdcall RtlGetCurrentPeb() +@ stdcall RtlGetCurrentProcessorNumber() ; 5.2 SP1 and higher +@ stdcall RtlGetDaclSecurityDescriptor(ptr ptr ptr ptr) +@ stdcall RtlGetElementGenericTable(ptr long) +@ stdcall RtlGetElementGenericTableAvl(ptr long) +@ stdcall RtlGetFirstRange(ptr ptr ptr) +;@ stdcall RtlGetFrame +@ stdcall RtlGetFullPathName_U(wstr long ptr ptr) +;@ stdcall RtlGetFullPathName_UstrEx +@ stdcall RtlGetGroupSecurityDescriptor(ptr ptr ptr) +@ stdcall RtlGetLastNtStatus() +@ stdcall RtlGetLastWin32Error() +;@ stdcall RtlGetLengthWithoutLastFullDosOrNtPathElement +; Yes, Microsoft really misspelled this one! +;@ stdcall RtlGetLengthWithoutTrailingPathSeperators +@ stdcall RtlGetLongestNtPathLength() +;@ stdcall RtlGetNativeSystemInformation +@ stdcall RtlGetNextRange(ptr ptr long) +@ stdcall RtlGetNtGlobalFlags() +@ stdcall RtlGetNtProductType(ptr) +@ stdcall RtlGetNtVersionNumbers(ptr ptr ptr) +@ stdcall RtlGetOwnerSecurityDescriptor(ptr ptr ptr) +;@ stdcall RtlGetProductInfo(long long long long ptr) +@ stdcall RtlGetProcessHeaps(long ptr) +@ stdcall RtlGetSaclSecurityDescriptor(ptr ptr ptr ptr) +@ stdcall RtlGetSecurityDescriptorRMControl(ptr ptr) +@ stdcall RtlGetSetBootStatusData(ptr long long ptr long long) +;@ stdcall RtlGetThreadErrorMode +;@ stdcall RtlGetUnloadEventTrace +@ stdcall RtlGetUserInfoHeap(ptr long ptr ptr ptr) +@ stdcall RtlGetVersion(ptr) +;@ stdcall RtlGuidToPropertySetName ; 4.0 only +@ stdcall RtlHashUnicodeString(ptr long long ptr) +@ stdcall RtlIdentifierAuthoritySid(ptr) +@ stdcall RtlImageDirectoryEntryToData(long long long ptr) +@ stdcall RtlImageNtHeader(long) +;@ stdcall RtlImageNtHeaderEx +@ stdcall RtlImageRvaToSection(ptr long long) +@ stdcall RtlImageRvaToVa(ptr long long ptr) +@ stdcall RtlImpersonateSelf(long) +@ stdcall RtlInitAnsiString(ptr str) +@ stdcall RtlInitAnsiStringEx(ptr str) +@ stdcall RtlInitCodePageTable(ptr ptr) +;@ stdcall RtlInitMemoryStream +@ stdcall RtlInitNlsTables(ptr ptr ptr ptr) +;@ stdcall RtlInitOutOfProcessMemoryStream +@ stdcall RtlInitString(ptr str) +@ stdcall RtlInitUnicodeString(ptr wstr) +@ stdcall RtlInitUnicodeStringEx(ptr wstr) +;@ stdcall RtlInitializeAtomPackage +@ stdcall RtlInitializeBitMap(ptr long long) +@ stdcall RtlInitializeContext(ptr ptr ptr ptr ptr) +@ stdcall RtlInitializeCriticalSection(ptr) +@ stdcall RtlInitializeCriticalSectionAndSpinCount(ptr long) +;@ stdcall RtlInitializeCriticalSectionEx(ptr long long) +@ stdcall RtlInitializeGenericTable(ptr ptr ptr ptr ptr) +@ stdcall RtlInitializeGenericTableAvl(ptr ptr ptr ptr ptr) +@ stdcall RtlInitializeHandleTable(long long ptr) +;@ stdcall RtlInitializeRXact +@ stdcall RtlInitializeRangeList(ptr) +@ stdcall RtlInitializeResource(ptr) +@ stdcall RtlInitializeSListHead(ptr) +@ stdcall RtlInitializeSid(ptr ptr long) +@ stdcall RtlInitializeSRWLock(ptr) +;@ stdcall RtlInitializeStackTraceDataBase ; 5.1 SP2 and SP3, and 5.2 only +@ stdcall RtlInsertElementGenericTable(ptr ptr long ptr) +@ stdcall RtlInsertElementGenericTableAvl(ptr ptr long ptr) +@ stdcall RtlInt64ToUnicodeString(double long ptr) +@ stdcall RtlIntegerToChar(long long long ptr) +@ stdcall RtlIntegerToUnicodeString(long long ptr) +;@ stdcall RtlInterlockedCompareExchange64 +@ stdcall -arch=i386,x86_64 RtlInterlockedFlushSList(ptr) +@ stdcall -arch=i386,x86_64 RtlInterlockedPopEntrySList(ptr) +@ stdcall -arch=i386,x86_64 RtlInterlockedPushEntrySList(ptr ptr) +@ stdcall RtlInterlockedPushListSList(ptr ptr ptr long) +@ stdcall RtlInvertRangeList(ptr ptr) +@ stdcall RtlIpv4AddressToStringA(ptr ptr) +@ stdcall RtlIpv4AddressToStringExA(ptr long ptr ptr) +@ stdcall RtlIpv4AddressToStringExW(ptr long ptr ptr) +@ stdcall RtlIpv4AddressToStringW(ptr ptr) +@ stdcall RtlIpv4StringToAddressA(str long ptr ptr) +@ stdcall RtlIpv4StringToAddressExA(str long ptr ptr) +@ stdcall RtlIpv4StringToAddressExW(wstr long ptr ptr) +@ stdcall RtlIpv4StringToAddressW(wstr long ptr ptr) +@ stdcall RtlIpv6AddressToStringA(ptr ptr) +@ stdcall RtlIpv6AddressToStringExA(ptr long long ptr ptr) +@ stdcall RtlIpv6AddressToStringExW(ptr long long ptr ptr) +@ stdcall RtlIpv6AddressToStringW(ptr ptr) +@ stdcall RtlIpv6StringToAddressA(str ptr ptr) +@ stdcall RtlIpv6StringToAddressExA(str ptr ptr ptr) +@ stdcall RtlIpv6StringToAddressExW(wstr ptr ptr ptr) +@ stdcall RtlIpv6StringToAddressW(wstr ptr ptr) +@ stdcall RtlIsActivationContextActive(ptr) +;@ stdcall RtlIsCriticalSectionLocked +;@ stdcall RtlIsCriticalSectionLockedByThread +@ stdcall RtlIsDosDeviceName_U(wstr) +@ stdcall RtlIsGenericTableEmpty(ptr) +@ stdcall RtlIsGenericTableEmptyAvl(ptr) +@ stdcall RtlIsNameLegalDOS8Dot3(ptr ptr ptr) +@ stdcall RtlIsRangeAvailable(ptr long long long long long long ptr ptr ptr) +@ stdcall RtlIsTextUnicode(ptr long ptr) +@ stdcall RtlIsThreadWithinLoaderCallout() +@ stdcall RtlIsValidHandle(ptr ptr) +@ stdcall RtlIsValidIndexHandle(ptr long ptr) +@ stdcall -arch=win32 -ret64 RtlLargeIntegerAdd(double double) +@ stdcall -arch=win32 -ret64 RtlLargeIntegerArithmeticShift(double long) +@ stdcall -arch=win32 -ret64 RtlLargeIntegerDivide(double double ptr) +@ stdcall -arch=win32 -ret64 RtlLargeIntegerNegate(double) +@ stdcall -arch=win32 -ret64 RtlLargeIntegerShiftLeft(double long) +@ stdcall -arch=win32 -ret64 RtlLargeIntegerShiftRight(double long) +@ stdcall -arch=win32 -ret64 RtlLargeIntegerSubtract(double double) +@ stdcall RtlLargeIntegerToChar(ptr long long ptr) +@ stdcall RtlLeaveCriticalSection(ptr) +@ stdcall RtlLengthRequiredSid(long) +@ stdcall RtlLengthSecurityDescriptor(ptr) +@ stdcall RtlLengthSid(ptr) +@ stdcall RtlLocalTimeToSystemTime(ptr ptr) +@ stdcall RtlLockBootStatusData(ptr) +@ stdcall RtlLockHeap(long) +;@ stdcall RtlLockMemoryStreamRegion +;@ stdcall RtlLogStackBackTrace +@ stdcall RtlLookupAtomInAtomTable(ptr wstr ptr) +@ stdcall RtlLookupElementGenericTable(ptr ptr) +@ stdcall RtlLookupElementGenericTableAvl(ptr ptr) +@ stdcall -arch=x86_64 RtlLookupFunctionEntry(long ptr ptr) +@ stdcall RtlMakeSelfRelativeSD(ptr ptr ptr) +@ stdcall RtlMapGenericMask(long ptr) +;@ stdcall RtlMapSecurityErrorToNtStatus +@ stdcall RtlMergeRangeLists(ptr ptr ptr long) +@ stdcall RtlMoveMemory(ptr ptr long) +;@ stdcall RtlMultiAppendUnicodeStringBuffer +@ stdcall RtlMultiByteToUnicodeN(ptr long ptr ptr long) +@ stdcall RtlMultiByteToUnicodeSize(ptr str long) +;@ stdcall RtlNewInstanceSecurityObject +;@ stdcall RtlNewSecurityGrantedAccess +@ stdcall RtlNewSecurityObject(ptr ptr ptr long ptr ptr) +;@ stdcall RtlNewSecurityObjectEx +;@ stdcall RtlNewSecurityObjectWithMultipleInheritance +@ stdcall RtlNormalizeProcessParams(ptr) +@ stdcall RtlNtPathNameToDosPathName(ptr ptr ptr ptr) ; CHECKME +@ stdcall RtlNtStatusToDosError(long) +@ stdcall RtlNtStatusToDosErrorNoTeb(long) +@ stdcall RtlNumberGenericTableElements(ptr) +@ stdcall RtlNumberGenericTableElementsAvl(ptr) +@ stdcall RtlNumberOfClearBits(ptr) +@ stdcall RtlNumberOfSetBits(ptr) +;@ stdcall RtlOemStringToUnicodeSize(ptr) +@ stdcall RtlOemStringToUnicodeString(ptr ptr long) +@ stdcall RtlOemToUnicodeN(ptr long ptr ptr long) +@ stdcall RtlOpenCurrentUser(long ptr) +@ stdcall RtlPcToFileHeader(ptr ptr) +@ stdcall RtlPinAtomInAtomTable(ptr long) +;@ stdcall RtlPopFrame +@ stdcall RtlPrefixString(ptr ptr long) +@ stdcall RtlPrefixUnicodeString(ptr ptr long) +;@ stdcall RtlPropertySetNameToGuid ; 4.0 only +@ stdcall RtlProtectHeap(ptr long) +;@ stdcall RtlPushFrame +@ stdcall RtlQueryAtomInAtomTable(ptr long ptr ptr ptr ptr) +@ stdcall RtlQueryDepthSList(ptr) +@ stdcall RtlQueryEnvironmentVariable_U(ptr ptr ptr) +@ stdcall RtlQueryHeapInformation(long long ptr long ptr) +@ stdcall RtlQueryInformationAcl(ptr ptr long long) +@ stdcall RtlQueryInformationActivationContext(long long ptr long ptr long ptr) +;@ stdcall RtlQueryInformationActiveActivationContext +;@ stdcall RtlQueryInterfaceMemoryStream +;@ stdcall RtlQueryProcessBackTraceInformation +@ stdcall RtlQueryProcessDebugInformation(long long ptr) +;@ stdcall RtlQueryProcessHeapInformation +;@ stdcall RtlQueryProcessLockInformation +;@ stdcall RtlQueryProperties ; 4.0 only +;@ stdcall RtlQueryPropertyNames ; 4.0 only +;@ stdcall RtlQueryPropertySet ; 4.0 only +@ stdcall RtlQueryRegistryValues(long ptr ptr ptr ptr) +@ stdcall RtlQuerySecurityObject(ptr long ptr long ptr) +@ stdcall RtlQueryTagHeap(ptr long long long ptr) +@ stdcall RtlQueryTimeZoneInformation(ptr) +;@ stdcall RtlQueueApcWow64Thread +@ stdcall RtlQueueWorkItem(ptr ptr long) +@ stdcall -register RtlRaiseException(ptr) +@ stdcall RtlRaiseStatus(long) +@ stdcall RtlRandom(ptr) +@ stdcall RtlRandomEx(ptr) +@ stdcall RtlReAllocateHeap(long long ptr long) +;@ stdcall RtlReadMemoryStream +;@ stdcall RtlReadOutOfProcessMemoryStream +@ stdcall RtlRealPredecessor(ptr) +@ stdcall RtlRealSuccessor(ptr) +@ stdcall RtlRegisterSecureMemoryCacheCallback(ptr) +@ stdcall RtlRegisterWait(ptr ptr ptr ptr long long) +@ stdcall RtlReleaseActivationContext(ptr) +;@ stdcall RtlReleaseMemoryStream +@ stdcall RtlReleasePebLock() +@ stdcall RtlReleaseResource(ptr) +@ stdcall RtlReleaseSRWLockExclusive(ptr) +@ stdcall RtlReleaseSRWLockShared(ptr) +@ stdcall RtlRemoteCall(ptr ptr ptr long ptr long long) +@ stdcall RtlRemoveVectoredContinueHandler(ptr) +@ stdcall RtlRemoveVectoredExceptionHandler(ptr) +@ stdcall RtlResetRtlTranslations(ptr) +@ stdcall RtlRestoreLastWin32Error(long) RtlSetLastWin32Error +;@ stdcall RtlRevertMemoryStream +@ stdcall RtlRunDecodeUnicodeString(long ptr) +@ stdcall RtlRunEncodeUnicodeString(long ptr) +@ stdcall RtlSecondsSince1970ToTime(long ptr) +@ stdcall RtlSecondsSince1980ToTime(long ptr) +;@ stdcall RtlSeekMemoryStream +@ stdcall RtlSelfRelativeToAbsoluteSD2(ptr ptr) +@ stdcall RtlSelfRelativeToAbsoluteSD(ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) +@ stdcall RtlSetAllBits(ptr) +@ stdcall RtlSetAttributesSecurityDescriptor(ptr long ptr) +@ stdcall RtlSetBits(ptr long long) +@ stdcall RtlSetControlSecurityDescriptor(ptr long long) +@ stdcall RtlSetCriticalSectionSpinCount(ptr long) +@ stdcall RtlSetCurrentDirectory_U(ptr) +@ stdcall RtlSetCurrentEnvironment(wstr ptr) +@ stdcall RtlSetDaclSecurityDescriptor(ptr long ptr long) +;@ stdcall RtlSetEnvironmentStrings +@ stdcall RtlSetEnvironmentVariable(ptr ptr ptr) +@ stdcall RtlSetGroupSecurityDescriptor(ptr ptr long) +@ stdcall RtlSetHeapInformation(ptr long ptr ptr) +@ stdcall RtlSetInformationAcl(ptr ptr long long) +@ stdcall RtlSetIoCompletionCallback(long ptr long) +@ stdcall RtlSetLastWin32Error(long) +@ stdcall RtlSetLastWin32ErrorAndNtStatusFromNtStatus(long) +;@ stdcall RtlSetMemoryStreamSize +@ stdcall RtlSetOwnerSecurityDescriptor(ptr ptr long) +@ stdcall RtlSetProcessIsCritical(long ptr long) +;@ stdcall RtlSetProperties ; RtlSetProperties +;@ stdcall RtlSetPropertyClassId ; 4.0 only +;@ stdcall RtlSetPropertyNames ; 4.0 only +;@ stdcall RtlSetPropertySetClassId ; 4.0 only +@ stdcall RtlSetSaclSecurityDescriptor(ptr long ptr long) +@ stdcall RtlSetSecurityDescriptorRMControl(ptr ptr) +@ stdcall RtlSetSecurityObject(long ptr ptr ptr ptr) +;@ stdcall RtlSetSecurityObjectEx +;@ stdcall RtlSetThreadErrorMode +;@ stdcall RtlSetThreadIsCritical +;@ stdcall RtlSetThreadPoolStartFunc +@ stdcall RtlSetTimeZoneInformation(ptr) +;@ stdcall RtlSetTimer +@ stdcall RtlSetUnhandledExceptionFilter(ptr) +;@ stdcall RtlSetUnicodeCallouts +@ stdcall RtlSetUserFlagsHeap(ptr long ptr long long) +@ stdcall RtlSetUserValueHeap(ptr long ptr ptr) +@ stdcall RtlSizeHeap(long long ptr) +@ stdcall RtlSleepConditionVariableCS(ptr ptr ptr) +@ stdcall RtlSleepConditionVariableSRW(ptr ptr ptr long) +@ stdcall RtlSplay(ptr) +;@ stdcall RtlStartRXact +;@ stdcall RtlStatMemoryStream +@ stdcall RtlStringFromGUID(ptr ptr) +@ stdcall RtlSubAuthorityCountSid(ptr) +@ stdcall RtlSubAuthoritySid(ptr long) +@ stdcall RtlSubtreePredecessor(ptr) +@ stdcall RtlSubtreeSuccessor(ptr) +@ stdcall RtlSystemTimeToLocalTime(ptr ptr) +@ stdcall RtlTimeFieldsToTime(ptr ptr) +@ stdcall RtlTimeToElapsedTimeFields(long long) +@ stdcall RtlTimeToSecondsSince1970(ptr ptr) +@ stdcall RtlTimeToSecondsSince1980(ptr ptr) +@ stdcall RtlTimeToTimeFields (long long) +;@ stdcall RtlTraceDatabaseAdd +;@ stdcall RtlTraceDatabaseCreate +;@ stdcall RtlTraceDatabaseDestroy +;@ stdcall RtlTraceDatabaseEnumerate +;@ stdcall RtlTraceDatabaseFind +;@ stdcall RtlTraceDatabaseLock +;@ stdcall RtlTraceDatabaseUnlock +;@ stdcall RtlTraceDatabaseValidate +@ stdcall RtlTryEnterCriticalSection(ptr) +@ fastcall -arch=i386 RtlUlongByteSwap(long) +@ fastcall -ret64 RtlUlonglongByteSwap(double) +;@ stdcall RtlUnhandledExceptionFilter2 +@ stdcall RtlUnhandledExceptionFilter(ptr) +;@ stdcall RtlUnicodeStringToAnsiSize(ptr) +@ stdcall RtlUnicodeStringToAnsiString(ptr ptr long) +@ stdcall RtlUnicodeStringToCountedOemString(ptr ptr long) +@ stdcall RtlUnicodeStringToInteger(ptr long ptr) +;@ stdcall RtlUnicodeStringToOemSize(ptr) +@ stdcall RtlUnicodeStringToOemString(ptr ptr long) +@ stdcall RtlUnicodeToCustomCPN(ptr ptr long ptr wstr long) +@ stdcall RtlUnicodeToMultiByteN(ptr long ptr ptr long) +@ stdcall RtlUnicodeToMultiByteSize(ptr ptr long) +@ stdcall RtlUnicodeToOemN(ptr long ptr ptr long) +@ stdcall RtlUniform(ptr) +@ stdcall RtlUnlockBootStatusData(ptr) +@ stdcall RtlUnlockHeap(long) +;@ stdcall RtlUnlockMemoryStreamRegion +@ stdcall -register RtlUnwind(ptr ptr ptr ptr) +@ stdcall -arch=x86_64 RtlUnwindEx(long long ptr long ptr) +@ stdcall RtlUpcaseUnicodeChar(long) +@ stdcall RtlUpcaseUnicodeString(ptr ptr long) +@ stdcall RtlUpcaseUnicodeStringToAnsiString(ptr ptr long) +@ stdcall RtlUpcaseUnicodeStringToCountedOemString(ptr ptr long) +@ stdcall RtlUpcaseUnicodeStringToOemString(ptr ptr long) +@ stdcall RtlUpcaseUnicodeToCustomCPN(ptr ptr long ptr wstr long) +@ stdcall RtlUpcaseUnicodeToMultiByteN(ptr long ptr ptr long) +@ stdcall RtlUpcaseUnicodeToOemN(ptr long ptr ptr long) +@ stdcall RtlUpdateTimer(ptr ptr long long) +@ stdcall RtlUpperChar(long) +@ stdcall RtlUpperString(ptr ptr) +@ stdcall RtlUsageHeap(ptr long ptr) +@ fastcall -arch=i386 RtlUshortByteSwap(long) +@ stdcall RtlValidAcl(ptr) +@ stdcall RtlValidRelativeSecurityDescriptor(ptr long long) +@ stdcall RtlValidSecurityDescriptor(ptr) +@ stdcall RtlValidSid(ptr) +@ stdcall RtlValidateHeap(long long ptr) +@ stdcall RtlValidateProcessHeaps() +@ stdcall RtlValidateUnicodeString(long ptr) +@ stdcall RtlVerifyVersionInfo(ptr long double) +@ stdcall -arch=x86_64 RtlVirtualUnwind(long long long ptr ptr ptr ptr ptr) +@ stdcall RtlWalkFrameChain(ptr long long) +@ stdcall RtlWalkHeap(long ptr) +;@ stdcall RtlWow64EnableFsRedirection(long) +;@ stdcall RtlWow64EnableFsRedirectionEx(long ptr) +@ stdcall RtlWakeAllConditionVariable(ptr) +@ stdcall RtlWakeConditionVariable(ptr) +;@ stdcall RtlWriteMemoryStream +@ stdcall RtlWriteRegistryValue(long ptr ptr long ptr long) +@ stdcall RtlZeroHeap(ptr long) +@ stdcall RtlZeroMemory(ptr long) +@ stdcall RtlZombifyActivationContext(ptr) +;@ stdcall RtlpApplyLengthFunction +@ stdcall RtlpEnsureBufferSize(ptr ptr ptr) ; CHECKME +;@ stdcall RtlpNotOwnerCriticalSection +@ stdcall RtlpNtCreateKey(ptr long ptr long ptr ptr) +@ stdcall RtlpNtEnumerateSubKey(ptr ptr long long) +@ stdcall RtlpNtMakeTemporaryKey(ptr) +@ stdcall RtlpNtOpenKey(ptr long ptr long) +@ stdcall RtlpNtQueryValueKey(ptr ptr ptr ptr long) +@ stdcall RtlpNtSetValueKey(ptr long ptr long) +@ stdcall RtlpUnWaitCriticalSection(ptr) +@ stdcall RtlpWaitForCriticalSection(ptr) +@ stdcall RtlxAnsiStringToUnicodeSize(ptr) +@ stdcall RtlxOemStringToUnicodeSize(ptr) +@ stdcall RtlxUnicodeStringToAnsiSize(ptr) +@ stdcall RtlxUnicodeStringToOemSize(ptr) ; RtlUnicodeStringToOemSize +@ stdcall -ret64 VerSetConditionMask(double long long) +@ stdcall ZwAcceptConnectPort(ptr long ptr long long ptr) NtAcceptConnectPort +@ stdcall ZwAccessCheck(ptr long long ptr ptr ptr ptr ptr) NtAccessCheck +@ stdcall ZwAccessCheckAndAuditAlarm(ptr long ptr ptr ptr long ptr long ptr ptr ptr) NtAccessCheckAndAuditAlarm +@ stdcall ZwAccessCheckByType(ptr ptr ptr long ptr long ptr ptr long ptr ptr) NtAccessCheckByType +@ stdcall ZwAccessCheckByTypeAndAuditAlarm(ptr ptr ptr ptr ptr ptr long long long ptr long ptr long ptr ptr ptr) NtAccessCheckByTypeAndAuditAlarm +@ stdcall ZwAccessCheckByTypeResultList(ptr ptr ptr long ptr long ptr ptr long ptr ptr) NtAccessCheckByTypeResultList +@ stdcall ZwAccessCheckByTypeResultListAndAuditAlarm(ptr ptr ptr ptr ptr ptr long long long ptr long ptr long ptr ptr ptr) NtAccessCheckByTypeResultListAndAuditAlarm +@ stdcall ZwAccessCheckByTypeResultListAndAuditAlarmByHandle(ptr ptr ptr ptr ptr ptr ptr long long long ptr long ptr long ptr ptr ptr) NtAccessCheckByTypeResultListAndAuditAlarmByHandle +@ stdcall ZwAddAtom(ptr long ptr) NtAddAtom +@ stdcall ZwAddBootEntry(ptr long) +@ stdcall ZwAdjustGroupsToken(long long long long long long) NtAdjustGroupsToken +@ stdcall ZwAdjustPrivilegesToken(long long long long long long) NtAdjustPrivilegesToken +@ stdcall ZwAlertResumeThread(long ptr) NtAlertResumeThread +@ stdcall ZwAlertThread(long) NtAlertThread +@ stdcall ZwAllocateLocallyUniqueId(ptr) NtAllocateLocallyUniqueId +@ stdcall ZwAllocateUserPhysicalPages(ptr ptr ptr) +@ stdcall ZwAllocateUuids(ptr ptr ptr ptr) NtAllocateUuids +@ stdcall ZwAllocateVirtualMemory(long ptr ptr ptr long long) NtAllocateVirtualMemory +@ stdcall ZwAreMappedFilesTheSame(ptr ptr) NtAreMappedFilesTheSame +@ stdcall ZwAssignProcessToJobObject(long long) NtAssignProcessToJobObject +@ stdcall ZwCallbackReturn(ptr long long) +@ stdcall ZwCancelDeviceWakeupRequest(ptr) +@ stdcall ZwCancelIoFile(long ptr) NtCancelIoFile +;@ stdcall ZwCancelIoFileEx(long ptr ptr) NtCancelIoFileEx +@ stdcall ZwCancelTimer(long ptr) NtCancelTimer +@ stdcall ZwClearEvent(long) NtClearEvent +@ stdcall ZwClose(long) NtClose +@ stdcall ZwCloseObjectAuditAlarm(ptr ptr long) +@ stdcall ZwCompactKeys(long ptr) NtCompactKeys +@ stdcall ZwCompareTokens(ptr ptr ptr) NtCompareTokens +@ stdcall ZwCompleteConnectPort(ptr) NtCompleteConnectPort +@ stdcall ZwCompressKey(ptr) NtCompressKey +@ stdcall ZwConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr) NtConnectPort +@ stdcall ZwContinue(ptr long) NtContinue +@ stdcall ZwCreateDebugObject(ptr long ptr long) NtCreateDebugObject +@ stdcall ZwCreateDirectoryObject(long long long) NtCreateDirectoryObject +@ stdcall ZwCreateEvent(long long long long long) NtCreateEvent +@ stdcall ZwCreateEventPair(ptr long ptr) NtCreateEventPair +@ stdcall ZwCreateFile(ptr long ptr ptr long long long ptr long long ptr) NtCreateFile +@ stdcall ZwCreateIoCompletion(ptr long ptr long) NtCreateIoCompletion +@ stdcall ZwCreateJobObject(ptr long ptr) NtCreateJobObject +@ stdcall ZwCreateJobSet(long ptr long) NtCreateJobSet +@ stdcall ZwCreateKey(ptr long ptr long ptr long long) NtCreateKey +@ stdcall ZwCreateKeyedEvent(ptr long ptr long) NtCreateKeyedEvent +@ stdcall ZwCreateMailslotFile(long long long long long long long long) NtCreateMailslotFile +@ stdcall ZwCreateMutant(ptr long ptr long) NtCreateMutant +@ stdcall ZwCreateNamedPipeFile(ptr long ptr ptr long long long long long long long long long ptr) NtCreateNamedPipeFile +@ stdcall ZwCreatePagingFile(long long long long) NtCreatePagingFile +@ stdcall ZwCreatePort(ptr ptr long long long) NtCreatePort +@ stdcall ZwCreateProcess(ptr long ptr ptr long ptr ptr ptr) +@ stdcall ZwCreateProcessEx(ptr long ptr ptr long ptr ptr ptr long) NtCreateProcessEx +@ stdcall ZwCreateProfile(ptr ptr ptr long long ptr long long long) NtCreateProfile ; CHECKME +@ stdcall ZwCreateSection(ptr long ptr ptr long long long) NtCreateSection +@ stdcall ZwCreateSemaphore(ptr long ptr long long) NtCreateSemaphore +@ stdcall ZwCreateSymbolicLinkObject(ptr long ptr ptr) NtCreateSymbolicLinkObject +@ stdcall ZwCreateThread(ptr long ptr ptr ptr ptr ptr long) +@ stdcall ZwCreateTimer(ptr long ptr long) NtCreateTimer +@ stdcall ZwCreateToken(ptr long ptr long ptr ptr ptr ptr ptr ptr ptr ptr ptr) +@ stdcall ZwCreateWaitablePort(ptr ptr long long long) NtCreateWaitablePort +@ stdcall ZwDebugActiveProcess(ptr ptr) NtDebugActiveProcess +@ stdcall ZwDebugContinue(ptr ptr long) NtDebugContinue +@ stdcall ZwDelayExecution(long ptr) NtDelayExecution +@ stdcall ZwDeleteAtom(long) NtDeleteAtom +@ stdcall ZwDeleteBootEntry(long) NtDeleteBootEntry +@ stdcall ZwDeleteFile(ptr) NtDeleteFile +@ stdcall ZwDeleteKey(long) NtDeleteKey +@ stdcall ZwDeleteObjectAuditAlarm(ptr ptr long) +@ stdcall ZwDeleteValueKey(long ptr) NtDeleteValueKey +@ stdcall ZwDeviceIoControlFile(long long long long long long long long long long) NtDeviceIoControlFile +@ stdcall ZwDisplayString(ptr) NtDisplayString +@ stdcall ZwDuplicateObject(long long long ptr long long long) NtDuplicateObject +@ stdcall ZwDuplicateToken(long long long long long long) NtDuplicateToken +@ stdcall ZwEnumerateBootEntries(ptr ptr) +;@ stdcall ZwEnumerateBus ; 3.51 only +@ stdcall ZwEnumerateKey(long long long ptr long ptr) NtEnumerateKey +@ stdcall ZwEnumerateSystemEnvironmentValuesEx(long ptr long) NtEnumerateSystemEnvironmentValuesEx +@ stdcall ZwEnumerateValueKey(long long long ptr long ptr) NtEnumerateValueKey +@ stdcall ZwExtendSection(ptr ptr) NtExtendSection +@ stdcall ZwFilterToken(ptr long ptr ptr ptr ptr) NtFilterToken +@ stdcall ZwFindAtom(ptr long ptr) NtFindAtom +@ stdcall ZwFlushBuffersFile(long ptr) NtFlushBuffersFile +@ stdcall ZwFlushInstructionCache(long ptr long) NtFlushInstructionCache +@ stdcall ZwFlushKey(long) NtFlushKey +@ stdcall ZwFlushVirtualMemory(long ptr ptr long) NtFlushVirtualMemory +@ stdcall ZwFlushWriteBuffer() +@ stdcall ZwFreeUserPhysicalPages(ptr ptr ptr) +@ stdcall ZwFreeVirtualMemory(long ptr ptr long) NtFreeVirtualMemory +@ stdcall ZwFsControlFile(long long long long long long long long long long) NtFsControlFile +@ stdcall ZwGetContextThread(long ptr) NtGetContextThread +@ stdcall ZwGetCurrentProcessorNumber() +@ stdcall ZwGetDevicePowerState(ptr ptr) +@ stdcall ZwGetPlugPlayEvent(long long ptr long) +;@ stdcall ZwGetTickCount() NtGetTickCount +@ stdcall ZwGetWriteWatch(long long ptr long ptr ptr ptr) NtGetWriteWatch +@ stdcall ZwImpersonateAnonymousToken(ptr) +@ stdcall ZwImpersonateClientOfPort(ptr ptr) NtImpersonateClientOfPort +@ stdcall ZwImpersonateThread(ptr ptr ptr) NtImpersonateThread +@ stdcall ZwInitializeRegistry(long) +@ stdcall ZwInitiatePowerAction(long long long long) NtInitiatePowerAction +@ stdcall ZwIsProcessInJob(long long) NtIsProcessInJob +@ stdcall ZwIsSystemResumeAutomatic() +@ stdcall ZwListenPort(ptr ptr) NtListenPort +@ stdcall ZwLoadDriver(ptr) NtLoadDriver +@ stdcall ZwLoadKey2(ptr ptr long) NtLoadKey2 +@ stdcall ZwLoadKey(ptr ptr) NtLoadKey +@ stdcall ZwLockFile(long long ptr ptr ptr ptr ptr ptr long long) NtLockFile +@ stdcall ZwLockProductActivationKeys(ptr ptr) NtLockProductActivationKeys +@ stdcall ZwLockRegistryKey(ptr) NtLockRegistryKey +@ stdcall ZwLockVirtualMemory(long ptr ptr long) NtLockVirtualMemory +@ stdcall ZwMakePermanentObject(ptr) NtMakePermanentObject +@ stdcall ZwMakeTemporaryObject(long) NtMakeTemporaryObject +@ stdcall ZwMapUserPhysicalPages(ptr ptr ptr) +@ stdcall ZwMapUserPhysicalPagesScatter(ptr ptr ptr) +@ stdcall ZwMapViewOfSection(long long ptr long long ptr ptr long long long) NtMapViewOfSection +@ stdcall ZwModifyBootEntry(ptr) NtModifyBootEntry +@ stdcall ZwNotifyChangeDirectoryFile(long long ptr ptr ptr ptr long long long) NtNotifyChangeDirectoryFile +@ stdcall ZwNotifyChangeKey(long long ptr ptr ptr long long ptr long long) NtNotifyChangeKey +@ stdcall ZwNotifyChangeMultipleKeys(ptr long ptr ptr ptr ptr ptr long long ptr long long) NtNotifyChangeMultipleKeys +@ stdcall ZwOpenDirectoryObject(long long long) NtOpenDirectoryObject +@ stdcall ZwOpenEvent(long long long) NtOpenEvent +@ stdcall ZwOpenEventPair(ptr long ptr) NtOpenEventPair +@ stdcall ZwOpenFile(ptr long ptr ptr long long) NtOpenFile +@ stdcall ZwOpenIoCompletion(ptr long ptr) NtOpenIoCompletion +@ stdcall ZwOpenJobObject(ptr long ptr) NtOpenJobObject +@ stdcall ZwOpenKey(ptr long ptr) NtOpenKey +@ stdcall ZwOpenKeyedEvent(ptr long ptr) NtOpenKeyedEvent +@ stdcall ZwOpenMutant(ptr long ptr) NtOpenMutant +@ stdcall ZwOpenObjectAuditAlarm(ptr ptr ptr ptr ptr ptr long long ptr long long ptr) +@ stdcall ZwOpenProcess(ptr long ptr ptr) NtOpenProcess +@ stdcall ZwOpenProcessToken(long long ptr) NtOpenProcessToken +@ stdcall ZwOpenProcessTokenEx(long long long ptr) NtOpenProcessTokenEx +@ stdcall ZwOpenSection(ptr long ptr) NtOpenSection +@ stdcall ZwOpenSemaphore(long long ptr) NtOpenSemaphore +@ stdcall ZwOpenSymbolicLinkObject (ptr long ptr) NtOpenSymbolicLinkObject +@ stdcall ZwOpenThread(ptr long ptr ptr) NtOpenThread +@ stdcall ZwOpenThreadToken(long long long ptr) NtOpenThreadToken +@ stdcall ZwOpenThreadTokenEx(long long long long ptr) NtOpenThreadTokenEx +@ stdcall ZwOpenTimer(ptr long ptr) NtOpenTimer +@ stdcall ZwPlugPlayControl(ptr ptr long) +@ stdcall ZwPowerInformation(long ptr long ptr long) NtPowerInformation +@ stdcall ZwPrivilegeCheck(ptr ptr ptr) NtPrivilegeCheck +@ stdcall ZwPrivilegeObjectAuditAlarm(ptr ptr ptr long ptr long) +@ stdcall ZwPrivilegedServiceAuditAlarm(ptr ptr ptr ptr long) +@ stdcall ZwProtectVirtualMemory(long ptr ptr long ptr) NtProtectVirtualMemory +@ stdcall ZwPulseEvent(long ptr) NtPulseEvent +@ stdcall ZwQueryAttributesFile(ptr ptr) NtQueryAttributesFile +@ stdcall ZwQueryBootEntryOrder(ptr ptr) NtQueryBootEntryOrder +@ stdcall ZwQueryBootOptions(ptr ptr) NtQueryBootOptions +@ stdcall ZwQueryDebugFilterState(long long) NtQueryDebugFilterState +@ stdcall ZwQueryDefaultLocale(long ptr) NtQueryDefaultLocale +@ stdcall ZwQueryDefaultUILanguage(ptr) NtQueryDefaultUILanguage +@ stdcall ZwQueryDirectoryFile(long long ptr ptr ptr ptr long long long ptr long) NtQueryDirectoryFile +@ stdcall ZwQueryDirectoryObject(long ptr long long long ptr ptr) NtQueryDirectoryObject +@ stdcall ZwQueryEaFile(long ptr ptr long long ptr long ptr long) NtQueryEaFile +@ stdcall ZwQueryEvent(long long ptr long ptr) NtQueryEvent +@ stdcall ZwQueryFullAttributesFile(ptr ptr) NtQueryFullAttributesFile +@ stdcall ZwQueryInformationAtom(long long ptr long ptr) NtQueryInformationAtom +@ stdcall ZwQueryInformationFile(long ptr ptr long long) NtQueryInformationFile +@ stdcall ZwQueryInformationJobObject(long long ptr long ptr) NtQueryInformationJobObject +@ stdcall ZwQueryInformationPort(ptr long ptr long ptr) NtQueryInformationPort +@ stdcall ZwQueryInformationProcess(long long ptr long ptr) NtQueryInformationProcess +@ stdcall ZwQueryInformationThread(long long ptr long ptr) NtQueryInformationThread +@ stdcall ZwQueryInformationToken(long long ptr long ptr) NtQueryInformationToken +@ stdcall ZwQueryInstallUILanguage(ptr) NtQueryInstallUILanguage +@ stdcall ZwQueryIntervalProfile(long ptr) NtQueryIntervalProfile +@ stdcall ZwQueryIoCompletion(long long ptr long ptr) NtQueryIoCompletion +@ stdcall ZwQueryKey(long long ptr long ptr) NtQueryKey +@ stdcall ZwQueryMultipleValueKey(long ptr long ptr long ptr) NtQueryMultipleValueKey +@ stdcall ZwQueryMutant(long long ptr long ptr) NtQueryMutant +@ stdcall ZwQueryObject(long long long long long) NtQueryObject +@ stdcall ZwQueryOpenSubKeys(ptr ptr) NtQueryOpenSubKeys +@ stdcall ZwQueryPerformanceCounter (long long) NtQueryPerformanceCounter +@ stdcall ZwQueryPortInformationProcess() NtQueryPortInformationProcess +@ stdcall ZwQueryQuotaInformationFile(ptr ptr ptr long long ptr long ptr long) NtQueryQuotaInformationFile +@ stdcall ZwQuerySection (long long long long long) NtQuerySection +@ stdcall ZwQuerySecurityObject (long long long long long) NtQuerySecurityObject +@ stdcall ZwQuerySemaphore (long long long long long) NtQuerySemaphore +@ stdcall ZwQuerySymbolicLinkObject(long ptr ptr) NtQuerySymbolicLinkObject +@ stdcall ZwQuerySystemEnvironmentValue(ptr ptr long ptr) NtQuerySystemEnvironmentValue +@ stdcall ZwQuerySystemEnvironmentValueEx(ptr ptr ptr ptr ptr) NtQuerySystemEnvironmentValueEx +@ stdcall ZwQuerySystemInformation(long long long long) NtQuerySystemInformation +@ stdcall ZwQuerySystemTime(ptr) NtQuerySystemTime +@ stdcall ZwQueryTimer(ptr long ptr long ptr) NtQueryTimer +@ stdcall ZwQueryTimerResolution(long long long) NtQueryTimerResolution +@ stdcall ZwQueryValueKey(long ptr long ptr long ptr) NtQueryValueKey +@ stdcall ZwQueryVirtualMemory(long ptr long ptr long ptr) NtQueryVirtualMemory +@ stdcall ZwQueryVolumeInformationFile(long ptr ptr long long) NtQueryVolumeInformationFile +@ stdcall ZwQueueApcThread(long ptr long long long) NtQueueApcThread +@ stdcall ZwRaiseException(ptr ptr long) NtRaiseException +@ stdcall ZwRaiseHardError(long long long ptr long ptr) NtRaiseHardError +@ stdcall ZwReadFile(long long ptr ptr ptr ptr long ptr ptr) NtReadFile +@ stdcall ZwReadFileScatter(long long ptr ptr ptr ptr long ptr ptr) NtReadFileScatter +@ stdcall ZwReadRequestData(ptr ptr long ptr long ptr) NtReadRequestData +@ stdcall ZwReadVirtualMemory(long ptr ptr long ptr) NtReadVirtualMemory +;@ stdcall ZwRegisterNewDevice ; 3.51 only +@ stdcall ZwRegisterThreadTerminatePort(ptr) NtRegisterThreadTerminatePort +@ stdcall ZwReleaseKeyedEvent(ptr ptr long ptr) NtReleaseKeyedEvent +@ stdcall ZwReleaseMutant(long ptr) NtReleaseMutant +;@ stdcall ZwReleaseProcessMutant ; 3.51 only +@ stdcall ZwReleaseSemaphore(long long ptr) NtReleaseSemaphore +@ stdcall ZwRemoveIoCompletion(ptr ptr ptr ptr ptr) NtRemoveIoCompletion +@ stdcall ZwRemoveProcessDebug(ptr ptr) NtRemoveProcessDebug +@ stdcall ZwRenameKey(ptr ptr) NtRenameKey +@ stdcall ZwReplaceKey(ptr long ptr) NtReplaceKey +@ stdcall ZwReplyPort(ptr ptr) NtReplyPort +@ stdcall ZwReplyWaitReceivePort(ptr ptr ptr ptr) NtReplyWaitReceivePort +@ stdcall ZwReplyWaitReceivePortEx(ptr ptr ptr ptr ptr) +@ stdcall ZwReplyWaitReplyPort(ptr ptr) +@ stdcall ZwRequestDeviceWakeup(ptr) +@ stdcall ZwRequestPort(ptr ptr) +@ stdcall ZwRequestWaitReplyPort(ptr ptr ptr) +@ stdcall ZwRequestWakeupLatency(long) +@ stdcall ZwResetEvent(long ptr) +@ stdcall ZwResetWriteWatch(long ptr long) +@ stdcall ZwRestoreKey(long long long) +@ stdcall ZwResumeProcess(ptr) +@ stdcall ZwResumeThread(long long) +@ stdcall ZwSaveKey(long long) +@ stdcall ZwSaveKeyEx(ptr ptr long) +@ stdcall ZwSaveMergedKeys(ptr ptr ptr) +@ stdcall ZwSecureConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr ptr) +@ stdcall ZwSetBootEntryOrder(ptr ptr) +@ stdcall ZwSetBootOptions(ptr long) +@ stdcall ZwSetContextThread(long ptr) +@ stdcall ZwSetDebugFilterState(long long long) +@ stdcall ZwSetDefaultHardErrorPort(ptr) +@ stdcall ZwSetDefaultLocale(long long) +@ stdcall ZwSetDefaultUILanguage(long) +@ stdcall ZwSetEaFile(long ptr ptr long) +@ stdcall ZwSetEvent(long long) +@ stdcall ZwSetEventBoostPriority(ptr) +@ stdcall ZwSetHighEventPair(ptr) +@ stdcall ZwSetHighWaitLowEventPair(ptr) +;@ stdcall ZwSetHighWaitLowThread ; 3.51 and 4.0 only +@ stdcall ZwSetInformationDebugObject(ptr long ptr long ptr) +@ stdcall ZwSetInformationFile(long long long long long) +@ stdcall ZwSetInformationJobObject(long long ptr long) +@ stdcall ZwSetInformationKey(long long ptr long) +@ stdcall ZwSetInformationObject(long long ptr long) +@ stdcall ZwSetInformationProcess(long long long long) +@ stdcall ZwSetInformationThread(long long ptr long) +@ stdcall ZwSetInformationToken(long long ptr long) +@ stdcall ZwSetIntervalProfile(long long) +@ stdcall ZwSetIoCompletion(ptr long ptr long long) +@ stdcall ZwSetLdtEntries(long double long double) ; CHECKME +@ stdcall ZwSetLowEventPair(ptr) +@ stdcall ZwSetLowWaitHighEventPair(ptr) +;@ stdcall ZwSetLowWaitHighThread ; 3.51 and 4.0 only +@ stdcall ZwSetQuotaInformationFile(ptr ptr ptr long) +@ stdcall ZwSetSecurityObject(long long ptr) +@ stdcall ZwSetSystemEnvironmentValue(ptr ptr) +@ stdcall ZwSetSystemEnvironmentValueEx(ptr ptr) +@ stdcall ZwSetSystemInformation(long ptr long) +@ stdcall ZwSetSystemPowerState(long long long) +@ stdcall ZwSetSystemTime(ptr ptr) +@ stdcall ZwSetThreadExecutionState(long ptr) +@ stdcall ZwSetTimer(long ptr ptr ptr long long ptr) +@ stdcall ZwSetTimerResolution(long long ptr) +@ stdcall ZwSetUuidSeed(ptr) +@ stdcall ZwSetValueKey(long long long long long long) +@ stdcall ZwSetVolumeInformationFile(long ptr ptr long long) +@ stdcall ZwShutdownSystem(long) +@ stdcall ZwSignalAndWaitForSingleObject(long long long ptr) +@ stdcall ZwStartProfile(ptr) +@ stdcall ZwStopProfile(ptr) +@ stdcall ZwSuspendProcess(ptr) +@ stdcall ZwSuspendThread(long ptr) +@ stdcall ZwSystemDebugControl(long ptr long ptr long ptr) +@ stdcall ZwTerminateJobObject(long long) +@ stdcall ZwTerminateProcess(long long) +@ stdcall ZwTerminateThread(long long) +@ stdcall ZwTestAlert() +@ stdcall ZwTraceEvent(long long long ptr) +@ stdcall ZwTranslateFilePath(ptr long ptr long) +@ stdcall ZwUnloadDriver(ptr) +@ stdcall ZwUnloadKey(long) +@ stdcall ZwUnloadKeyEx(ptr ptr) +@ stdcall ZwUnlockFile(long ptr ptr ptr ptr) +@ stdcall ZwUnlockVirtualMemory(long ptr ptr long) +@ stdcall ZwUnmapViewOfSection(long ptr) +@ stdcall ZwVdmControl(long ptr) +;@ stdcall ZwW32Call(long ptr long ptr ptr) +@ stdcall ZwWaitForDebugEvent(ptr long ptr ptr) +@ stdcall ZwWaitForKeyedEvent(ptr ptr long ptr) +@ stdcall ZwWaitForMultipleObjects(long ptr long long ptr) +;@ stdcall ZwWaitForProcessMutant ; 3.51 only +@ stdcall ZwWaitForSingleObject(long long long) +@ stdcall ZwWaitHighEventPair(ptr) +@ stdcall ZwWaitLowEventPair(ptr) +@ stdcall ZwWriteFile(long long ptr ptr ptr ptr long ptr ptr) +@ stdcall ZwWriteFileGather(long long ptr ptr ptr ptr long ptr ptr) +@ stdcall ZwWriteRequestData(ptr ptr long ptr long ptr) +@ stdcall ZwWriteVirtualMemory(long ptr ptr long ptr) +@ stdcall ZwYieldExecution() +;@ cdecl _CIcos +;@ cdecl _CIlog +;@ cdecl -private -arch=i386 _CIpow() +;@ cdecl _CIsin +;@ cdecl _CIsqrt +;@ stdcall -arch=x86_64 __C_specific_handler(ptr long ptr ptr) +@ cdecl __isascii(long) +@ cdecl __iscsym(long) +@ cdecl __iscsymf(long) +@ cdecl __toascii(long) +@ cdecl -arch=i386 -ret64 _alldiv(double double) +@ cdecl -arch=i386 _alldvrm() +@ cdecl -arch=i386 -ret64 _allmul(double double) +@ cdecl -arch=i386 -norelay _alloca_probe() +@ cdecl -arch=i386 -ret64 _allrem(double double) +@ cdecl -arch=i386 _allshl() +@ cdecl -arch=i386 _allshr() +@ cdecl -ret64 _atoi64(str) +@ cdecl -arch=i386 -ret64 _aulldiv(double double) +@ cdecl -arch=i386 _aulldvrm() +@ cdecl -arch=i386 -ret64 _aullrem(double double) +@ cdecl -arch=i386 _aullshr() +@ cdecl -arch=i386 -norelay _chkstk() +@ cdecl -arch=i386,x86_64 _fltused() +@ cdecl -arch=i386 -ret64 _ftol() +@ cdecl _i64toa(double ptr long) +@ cdecl _i64tow(double ptr long) +@ cdecl _itoa(long ptr long) +@ cdecl _itow(long ptr long) +@ cdecl _lfind(ptr ptr ptr long ptr) +@ cdecl _ltoa(long ptr long) +@ cdecl _ltow(long ptr long) +@ cdecl _memccpy(ptr ptr long long) +@ cdecl _memicmp(str str long) +@ cdecl -arch=x86_64 _setjmp(ptr ptr) +@ cdecl -arch=x86_64 _setjmpex(ptr ptr) +@ varargs _snprintf(ptr long str) +@ varargs _snwprintf(ptr long wstr) +@ cdecl _splitpath(str ptr ptr ptr ptr) +@ cdecl _strcmpi(str str) _stricmp +@ cdecl _stricmp(str str) +@ cdecl _strlwr(str) +@ cdecl _strnicmp(str str long) +@ cdecl _strupr(str) +@ cdecl _tolower(long) +@ cdecl _toupper(long) +@ cdecl _ui64toa(double ptr long) +@ cdecl _ui64tow(double ptr long) +@ cdecl _ultoa(long ptr long) +@ cdecl _ultow(long ptr long) +;@ cdecl _vscwprintf +@ cdecl _vsnprintf(ptr long str ptr) +@ cdecl _vsnwprintf(ptr long wstr ptr) +@ cdecl _wcsicmp(wstr wstr) +@ cdecl _wcslwr(wstr) +@ cdecl _wcsnicmp(wstr wstr long) +@ cdecl _wcsupr(wstr) +@ cdecl _wtoi(wstr) +@ cdecl _wtoi64(wstr) +@ cdecl _wtol(wstr) +@ cdecl abs(long) +@ cdecl -arch=i386,x86_64 atan(double) +@ cdecl atoi(str) +@ cdecl atol(str) +@ cdecl bsearch(ptr ptr long long ptr) +@ cdecl -arch=i386,x86_64 ceil(double) +@ cdecl -arch=i386,x86_64 cos(double) +@ cdecl -arch=i386,x86_64 fabs(double) +@ cdecl -arch=i386,x86_64 floor(double) +@ cdecl isalnum(long) +@ cdecl isalpha(long) +@ cdecl iscntrl(long) +@ cdecl isdigit(long) +@ cdecl isgraph(long) +@ cdecl islower(long) +@ cdecl isprint(long) +@ cdecl ispunct(long) +@ cdecl isspace(long) +@ cdecl isupper(long) +@ cdecl iswalpha(long) +@ cdecl iswctype(long long) +@ cdecl iswdigit(long) +@ cdecl iswlower(long) +@ cdecl iswspace(long) +@ cdecl iswxdigit(long) +@ cdecl isxdigit(long) +@ cdecl labs(long) +@ cdecl -arch=i386,x86_64 log(double) +@ cdecl -arch=x86_64 longjmp(ptr) +@ cdecl mbstowcs(ptr str long) +@ cdecl memchr(ptr long long) +@ cdecl memcmp(ptr ptr long) +@ cdecl memcpy(ptr ptr long) memmove +@ cdecl memmove(ptr ptr long) +@ cdecl memset(ptr long long) +@ cdecl -arch=i386,x86_64 pow(double double) +@ cdecl qsort(ptr long long ptr) +@ cdecl -arch=i386,x86_64 sin(double) +@ varargs sprintf(ptr str) +@ cdecl -arch=i386,x86_64 sqrt(double) +@ varargs sscanf(str str) +@ cdecl strcat(str str) +@ cdecl strchr(str long) +@ cdecl strcmp(str str) +@ cdecl strcpy(ptr str) +@ cdecl strcspn(str str) +@ cdecl strlen(str) +@ cdecl strncat(str str long) +@ cdecl strncmp(str str long) +@ cdecl strncpy(ptr str long) +@ cdecl strpbrk(str str) +@ cdecl strrchr(str long) +@ cdecl strspn(str str) +@ cdecl strstr(str str) +@ cdecl strtol(str ptr long) +@ cdecl strtoul(str ptr long) +@ varargs swprintf(ptr wstr) +@ cdecl -arch=i386,x86_64 tan(double) +@ cdecl tolower(long) +@ cdecl toupper(long) +@ cdecl towlower(long) +@ cdecl towupper(long) +@ stdcall vDbgPrintEx(long long str ptr) +@ stdcall vDbgPrintExWithPrefix(str long long str ptr) +@ cdecl vsprintf(ptr str ptr) +@ cdecl wcscat(wstr wstr) +@ cdecl wcschr(wstr long) +@ cdecl wcscmp(wstr wstr) +@ cdecl wcscpy(ptr wstr) +@ cdecl wcscspn(wstr wstr) +@ cdecl wcslen(wstr) +@ cdecl wcsncat(wstr wstr long) +@ cdecl wcsncmp(wstr wstr long) +@ cdecl wcsncpy(ptr wstr long) +@ cdecl wcspbrk(wstr wstr) +@ cdecl wcsrchr(wstr long) +@ cdecl wcsspn(wstr wstr) +@ cdecl wcsstr(wstr wstr) +;@ cdecl wcstok(wstr wstr) +@ cdecl wcstol(wstr ptr long) +@ cdecl wcstombs(ptr ptr long) +@ cdecl wcstoul(wstr ptr long) diff --git a/reactos/dll/shellext/CMakeLists.txt b/reactos/dll/shellext/CMakeLists.txt new file mode 100644 index 00000000000..7ff50901825 --- /dev/null +++ b/reactos/dll/shellext/CMakeLists.txt @@ -0,0 +1,6 @@ + +add_subdirectory(deskadp) +add_subdirectory(deskmon) +add_subdirectory(devcpux) +add_subdirectory(fontext) +add_subdirectory(slayer) diff --git a/reactos/dll/shellext/deskadp/CMakeLists.txt b/reactos/dll/shellext/deskadp/CMakeLists.txt new file mode 100644 index 00000000000..23306b9a197 --- /dev/null +++ b/reactos/dll/shellext/deskadp/CMakeLists.txt @@ -0,0 +1,29 @@ + +set_unicode() +set_rc_compiler() +spec2def(deskadp.dll deskadp.spec) + +list(APPEND SOURCE + deskadp.c + shxiface.c + deskadp.rc + ${CMAKE_CURRENT_BINARY_DIR}/deskadp.def) + +add_library(deskadp SHARED ${CMAKE_CURRENT_BINARY_DIR}/deskadp_precomp.h.gch ${SOURCE}) + +set_module_type(deskadp win32dll) + +target_link_libraries(deskadp uuid) + +add_importlibs(deskadp + user32 + gdi32 + comctl32 + ole32 + msvcrt + kernel32 + ntdll) + +add_pch(deskadp ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +add_cd_file(TARGET deskadp DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/shellext/deskmon/CMakeLists.txt b/reactos/dll/shellext/deskmon/CMakeLists.txt new file mode 100644 index 00000000000..c03afabbc07 --- /dev/null +++ b/reactos/dll/shellext/deskmon/CMakeLists.txt @@ -0,0 +1,30 @@ + +set_unicode() +set_rc_compiler() + +spec2def(deskmon.dll deskmon.spec) + +list(APPEND SOURCE + deskmon.c + shxiface.c + deskmon.rc + ${CMAKE_CURRENT_BINARY_DIR}/deskmon.def) + +add_library(deskmon SHARED ${CMAKE_CURRENT_BINARY_DIR}/deskmon_precomp.h.gch ${SOURCE}) + +set_module_type(deskmon win32dll) + +target_link_libraries(deskmon uuid) + +add_importlibs(deskmon + user32 + gdi32 + comctl32 + ole32 + msvcrt + kernel32 + ntdll) + +add_pch(deskmon ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +add_cd_file(TARGET deskmon DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/shellext/devcpux/CMakeLists.txt b/reactos/dll/shellext/devcpux/CMakeLists.txt new file mode 100644 index 00000000000..607019245ce --- /dev/null +++ b/reactos/dll/shellext/devcpux/CMakeLists.txt @@ -0,0 +1,19 @@ + +set_unicode() +set_rc_compiler() + +spec2def(devcpux.dll devcpux.spec) + +add_library(devcpux SHARED processor.c processor.rc ${CMAKE_CURRENT_BINARY_DIR}/devcpux.def) + +set_module_type(devcpux win32dll) + +add_importlibs(devcpux + user32 + powrprof + comctl32 + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET devcpux DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/shellext/fontext/CMakeLists.txt b/reactos/dll/shellext/fontext/CMakeLists.txt new file mode 100644 index 00000000000..cd57d0ed73e --- /dev/null +++ b/reactos/dll/shellext/fontext/CMakeLists.txt @@ -0,0 +1,28 @@ + +set_unicode() +set_rc_compiler() +spec2def(fontext.dll fontext.spec) + +add_library(fontext SHARED + fontext.c + regsvr.c + fontext.rc + ${CMAKE_CURRENT_BINARY_DIR}/fontext.def) + +set_module_type(fontext win32dll) + +target_link_libraries(fontext uuid) + +add_importlibs(fontext + user32 + gdi32 + ole32 + shlwapi + lz32 + advapi32 + setupapi + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET fontext DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/shellext/slayer/CMakeLists.txt b/reactos/dll/shellext/slayer/CMakeLists.txt new file mode 100644 index 00000000000..5830f4649a0 --- /dev/null +++ b/reactos/dll/shellext/slayer/CMakeLists.txt @@ -0,0 +1,30 @@ + +set_unicode() +set_rc_compiler() + +spec2def(slayer.dll slayer.spec) + +list(APPEND SOURCE + slayer.c + slayer.rc + ${CMAKE_CURRENT_BINARY_DIR}/slayer.def) + +add_library(slayer SHARED ${CMAKE_CURRENT_BINARY_DIR}/slayer_precomp.h.gch ${SOURCE}) + +set_module_type(slayer win32dll) + +target_link_libraries(slayer uuid) + +add_importlibs(slayer + user32 + comctl32 + advapi32 + ole32 + shell32 + msvcrt + kernel32 + ntdll) + +add_pch(slayer ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +add_cd_file(TARGET slayer DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/CMakeLists.txt b/reactos/dll/win32/CMakeLists.txt new file mode 100644 index 00000000000..42e04b54dcb --- /dev/null +++ b/reactos/dll/win32/CMakeLists.txt @@ -0,0 +1,230 @@ + +add_subdirectory(acledit) +add_subdirectory(aclui) +add_subdirectory(activeds) +add_subdirectory(actxprxy) +add_subdirectory(advapi32) +add_subdirectory(advpack) +add_subdirectory(atl) +add_subdirectory(authz) +add_subdirectory(avicap32) +add_subdirectory(avifil32) +add_subdirectory(batt) +add_subdirectory(bcrypt) +add_subdirectory(beepmidi) +add_subdirectory(browseui) +add_subdirectory(cabinet) +add_subdirectory(cards) +add_subdirectory(cfgmgr32) +add_subdirectory(clusapi) +add_subdirectory(comcat) +add_subdirectory(comctl32) +add_subdirectory(comdlg32) +add_subdirectory(compstui) +add_subdirectory(credui) +add_subdirectory(crtdll) +add_subdirectory(crypt32) +add_subdirectory(cryptdlg) +add_subdirectory(cryptdll) +add_subdirectory(cryptnet) +add_subdirectory(cryptui) +add_subdirectory(dbghelp) +add_subdirectory(dciman32) +add_subdirectory(devmgr) +add_subdirectory(dhcpcsvc) +add_subdirectory(dnsapi) +add_subdirectory(dwmapi) +add_subdirectory(faultrep) +add_subdirectory(fmifs) +add_subdirectory(fusion) +add_subdirectory(gdi32) +add_subdirectory(gdiplus) +add_subdirectory(getuname) +add_subdirectory(glu32) +add_subdirectory(hhctrl.ocx) +add_subdirectory(hid) +add_subdirectory(hlink) +add_subdirectory(hnetcfg) +add_subdirectory(httpapi) +add_subdirectory(iccvid) +add_subdirectory(icmp) +add_subdirectory(imaadp32.acm) +add_subdirectory(imagehlp) +add_subdirectory(imm32) +add_subdirectory(inetcomm) +add_subdirectory(inetmib1) +add_subdirectory(initpki) +add_subdirectory(inseng) +add_subdirectory(iphlpapi) +#add_subdirectory(iprtprio) # not built in trunk +add_subdirectory(itircl) +add_subdirectory(itss) +add_subdirectory(jscript) +add_subdirectory(kernel32) +add_subdirectory(loadperf) +add_subdirectory(localspl) +add_subdirectory(localui) +add_subdirectory(lpk) +add_subdirectory(lsasrv) +add_subdirectory(lz32) +add_subdirectory(mapi32) +add_subdirectory(mciavi32) +add_subdirectory(mcicda) +add_subdirectory(mciqtz32) +add_subdirectory(mciseq) +add_subdirectory(mciwave) +add_subdirectory(mlang) +add_subdirectory(mmdrv) +add_subdirectory(modemui) +add_subdirectory(mpr) +add_subdirectory(mprapi) +add_subdirectory(msacm32) +add_subdirectory(msadp32.acm) +add_subdirectory(msafd) +add_subdirectory(mscat32) +add_subdirectory(mscms) +add_subdirectory(mscoree) +add_subdirectory(msctf) +add_subdirectory(msftedit) +add_subdirectory(msg711.acm) +add_subdirectory(msgina) +add_subdirectory(msgsm32.acm) +if(NOT MSVC) +add_subdirectory(mshtml) +add_subdirectory(mshtml.tlb) +endif() +add_subdirectory(msi) +add_subdirectory(msimg32) +add_subdirectory(msimtf) +add_subdirectory(msisip) +add_subdirectory(msisys.ocx) +#add_subdirectory(msnet32) #to be deleted in trunk. +add_subdirectory(msrle32) +add_subdirectory(mssign32) +add_subdirectory(mssip32) +add_subdirectory(mstask) +add_subdirectory(msvcrt) +#add_subdirectory(msvcrt20) FIX spec2def +#add_subdirectory(msvcrt40) FIX spec2def +add_subdirectory(msvfw32) +add_subdirectory(msvidc32) +add_subdirectory(mswsock) +add_subdirectory(msxml3) +add_subdirectory(nddeapi) +add_subdirectory(netapi32) +add_subdirectory(netcfgx) +add_subdirectory(netevent) +add_subdirectory(netid) +add_subdirectory(netshell) +add_subdirectory(newdev) +add_subdirectory(ntdsapi) +add_subdirectory(ntlanman) +add_subdirectory(ntmarta) +add_subdirectory(ntprint) +add_subdirectory(objsel) +add_subdirectory(odbc32) +add_subdirectory(odbccp32) +add_subdirectory(ole32) +add_subdirectory(oleacc) +add_subdirectory(oleaut32) +add_subdirectory(olecli32) +add_subdirectory(oledlg) +add_subdirectory(olepro32) +add_subdirectory(olesvr32) +add_subdirectory(olethk32) +add_subdirectory(opengl32) +add_subdirectory(pdh) +add_subdirectory(pidgen) +add_subdirectory(powrprof) +add_subdirectory(printui) +add_subdirectory(psapi) +add_subdirectory(pstorec) +add_subdirectory(qmgr) +add_subdirectory(qmgrprxy) +add_subdirectory(query) +add_subdirectory(rasadhlp) +add_subdirectory(rasapi32) +add_subdirectory(rasdlg) +add_subdirectory(rasman) +add_subdirectory(resutils) +add_subdirectory(riched20) +add_subdirectory(riched32) +add_subdirectory(rpcrt4) +add_subdirectory(rsabase) +add_subdirectory(rsaenh) +add_subdirectory(samlib) +add_subdirectory(samsrv) +add_subdirectory(sccbase) +add_subdirectory(schannel) +add_subdirectory(secur32) +add_subdirectory(security) +add_subdirectory(sensapi) +add_subdirectory(serialui) +add_subdirectory(setupapi) +add_subdirectory(sfc) +add_subdirectory(sfc_os) +add_subdirectory(shdoclc) +add_subdirectory(shdocvw) +add_subdirectory(shell32) +add_subdirectory(shfolder) +add_subdirectory(shimgvw) +add_subdirectory(shlwapi) +add_subdirectory(slbcsp) +add_subdirectory(smdll) +add_subdirectory(sndblst) +add_subdirectory(snmpapi) +add_subdirectory(softpub) +add_subdirectory(spoolss) +add_subdirectory(srclient) +add_subdirectory(stdole2.tlb) +add_subdirectory(stdole32.tlb) +add_subdirectory(sti) +add_subdirectory(sxs) +add_subdirectory(syssetup) +add_subdirectory(t2embed) +add_subdirectory(tapi32) +add_subdirectory(tapiui) +add_subdirectory(traffic) +add_subdirectory(twain_32) +add_subdirectory(uext2) +add_subdirectory(ufat) +add_subdirectory(ufatx) +add_subdirectory(unicows) +add_subdirectory(untfs) +add_subdirectory(updspapi) +add_subdirectory(url) +add_subdirectory(urlmon) +add_subdirectory(user32) +add_subdirectory(userenv) +add_subdirectory(usp10) +add_subdirectory(uxtheme) +add_subdirectory(vdmdbg) +add_subdirectory(version) +add_subdirectory(wdmaud.drv) +add_subdirectory(windowscodecs) +add_subdirectory(winemp3.acm) +add_subdirectory(winfax) +add_subdirectory(wing32) +add_subdirectory(winhttp) +add_subdirectory(wininet) +add_subdirectory(winmm) +#add_subdirectory(winscard) # not built in trunk +add_subdirectory(winspool) +add_subdirectory(winsta) +add_subdirectory(wintrust) +add_subdirectory(wlanapi) +add_subdirectory(wldap32) +add_subdirectory(wmi) +add_subdirectory(ws2_32) +add_subdirectory(ws2_32_new) +add_subdirectory(ws2help) +add_subdirectory(wshirda) +add_subdirectory(wshtcpip) +add_subdirectory(wsock32) +add_subdirectory(wtsapi32) +add_subdirectory(wuapi) +add_subdirectory(xinput1_1) +add_subdirectory(xinput1_2) +add_subdirectory(xinput1_3) +add_subdirectory(xinput9_1_0) +add_subdirectory(xmllite) diff --git a/reactos/dll/win32/acledit/CMakeLists.txt b/reactos/dll/win32/acledit/CMakeLists.txt new file mode 100644 index 00000000000..5a923400e28 --- /dev/null +++ b/reactos/dll/win32/acledit/CMakeLists.txt @@ -0,0 +1,17 @@ + +set_unicode() +set_rc_compiler() +spec2def(acledit.dll acledit.spec) + +list(APPEND SOURCE + acledit.c + stubs.c + acledit.rc + ${CMAKE_CURRENT_BINARY_DIR}/acledit.def) + +add_library(acledit SHARED ${SOURCE}) + +set_module_type(acledit win32dll) +add_importlibs(acledit msvcrt kernel32 ntdll) +add_cd_file(TARGET acledit DESTINATION reactos/system32 FOR all) +add_importlib_target(acledit.spec) diff --git a/reactos/dll/win32/aclui/CMakeLists.txt b/reactos/dll/win32/aclui/CMakeLists.txt new file mode 100644 index 00000000000..c41fcc3d89c --- /dev/null +++ b/reactos/dll/win32/aclui/CMakeLists.txt @@ -0,0 +1,29 @@ + +spec2def(aclui.dll aclui.spec) +set_rc_compiler() +set_unicode() + +add_definitions(-DSUPPORT_UXTHEME) + +list(APPEND SOURCE + aclui.c + checklist.c + guid.c + misc.c + sidcache.c + aclui.rc + ${CMAKE_CURRENT_BINARY_DIR}/aclui.def) + +add_library(aclui SHARED + ${CMAKE_CURRENT_BINARY_DIR}/aclui_precomp.h.gch + ${SOURCE}) + +set_module_type(aclui win32dll) + +add_importlib_target(aclui.spec) + +add_importlibs(aclui user32 gdi32 comctl32 ole32 oleaut32 advapi32 uxtheme msvcrt kernel32 ntdll) + +add_pch(aclui ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +add_cd_file(TARGET aclui DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/activeds/CMakeLists.txt b/reactos/dll/win32/activeds/CMakeLists.txt new file mode 100644 index 00000000000..a4c7b420813 --- /dev/null +++ b/reactos/dll/win32/activeds/CMakeLists.txt @@ -0,0 +1,21 @@ + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(activeds.dll activeds.spec) + +list(APPEND SOURCE + activeds_main.c + stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/activeds.def) + +add_library(activeds SHARED ${SOURCE}) + +set_module_type(activeds win32dll) + +target_link_libraries(activeds wine) + +add_importlibs(activeds msvcrt kernel32 ntdll) + +add_cd_file(TARGET activeds DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/actxprxy/CMakeLists.txt b/reactos/dll/win32/actxprxy/CMakeLists.txt new file mode 100644 index 00000000000..41b0eb8b69d --- /dev/null +++ b/reactos/dll/win32/actxprxy/CMakeLists.txt @@ -0,0 +1,52 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(actxprxy.dll actxprxy.spec) + +add_rpcproxy_files( + actxprxy_activscp.idl + actxprxy_comcat.idl + actxprxy_docobj.idl + actxprxy_hlink.idl + actxprxy_htiframe.idl + actxprxy_objsafe.idl + actxprxy_ocmm.idl + actxprxy_servprov.idl + actxprxy_shobjidl.idl + actxprxy_urlhist.idl) + +list(APPEND SOURCE + usrmarshal.c + ${CMAKE_CURRENT_BINARY_DIR}/actxprxy_activscp_p.c + ${CMAKE_CURRENT_BINARY_DIR}/actxprxy_comcat_p.c + ${CMAKE_CURRENT_BINARY_DIR}/actxprxy_docobj_p.c + ${CMAKE_CURRENT_BINARY_DIR}/actxprxy_hlink_p.c + ${CMAKE_CURRENT_BINARY_DIR}/actxprxy_htiframe_p.c + ${CMAKE_CURRENT_BINARY_DIR}/actxprxy_objsafe_p.c + ${CMAKE_CURRENT_BINARY_DIR}/actxprxy_ocmm_p.c + ${CMAKE_CURRENT_BINARY_DIR}/actxprxy_servprov_p.c + ${CMAKE_CURRENT_BINARY_DIR}/actxprxy_shobjidl_p.c + ${CMAKE_CURRENT_BINARY_DIR}/actxprxy_urlhist_p.c + ${CMAKE_CURRENT_BINARY_DIR}/proxy.dlldata.c + ${CMAKE_CURRENT_BINARY_DIR}/actxprxy.def) + +add_library(actxprxy SHARED ${SOURCE}) + +set_entrypoint(actxprxy 0) + +target_link_libraries(actxprxy + uuid + wine + ${PSEH_LIB}) + +add_importlibs(actxprxy + rpcrt4 + ole32 + oleaut32 + kernel32 + ntdll) + +add_definitions(-DREGISTER_PROXY_DLL -DPROXY_DELEGATION) + +add_cd_file(TARGET actxprxy DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/advapi32/CMakeLists.txt b/reactos/dll/win32/advapi32/CMakeLists.txt new file mode 100644 index 00000000000..114b75f0b2f --- /dev/null +++ b/reactos/dll/win32/advapi32/CMakeLists.txt @@ -0,0 +1,65 @@ + +set_unicode() + +spec2def(advapi32.dll advapi32.spec) + +add_definitions(-D_ADVAPI32_) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_BINARY_DIR}/include/reactos/idl) + +list(APPEND SOURCE + crypt/crypt.c + crypt/crypt_arc4.c + crypt/crypt_des.c + crypt/crypt_lmhash.c + crypt/crypt_md4.c + crypt/crypt_md5.c + crypt/crypt_sha.c + misc/dllmain.c + misc/efs.c + misc/hwprofiles.c + misc/logon.c + misc/msi.c + misc/shutdown.c + misc/sysfunc.c + misc/trace.c + reg/reg.c + sec/ac.c + sec/audit.c + sec/cred.c + sec/lsa.c + sec/misc.c + sec/sec.c + sec/sid.c + sec/trustee.c + service/eventlog.c + service/rpc.c + service/scm.c + service/sctrl.c + token/privilege.c + token/token.c + advapi32.rc + ${CMAKE_CURRENT_BINARY_DIR}/advapi32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/advapi32.def) + +add_library(advapi32 SHARED + ${CMAKE_CURRENT_BINARY_DIR}/advapi32_advapi32.h.gch + ${SOURCE}) + +set_module_type(advapi32 win32dll) + +target_link_libraries(advapi32 + svcctlrpc + lsarpc + eventlogrpc + wine + ${PSEH_LIB}) + +add_importlibs(advapi32 rpcrt4 kernel32 ntdll msvcrt) + +add_pch(advapi32 ${CMAKE_CURRENT_SOURCE_DIR}/advapi32.h ${SOURCE}) +add_cd_file(TARGET advapi32 DESTINATION reactos/system32 FOR all) +add_importlib_target(advapi32.spec) diff --git a/reactos/dll/win32/advpack/CMakeLists.txt b/reactos/dll/win32/advpack/CMakeLists.txt new file mode 100644 index 00000000000..b81a4895127 --- /dev/null +++ b/reactos/dll/win32/advpack/CMakeLists.txt @@ -0,0 +1,22 @@ + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(advpack.dll advpack.spec) + +list(APPEND SOURCE + advpack.c + files.c + install.c + reg.c + ${CMAKE_CURRENT_BINARY_DIR}/advpack.def) + +add_library(advpack SHARED ${SOURCE}) + +set_module_type(advpack win32dll) + +target_link_libraries(advpack wine) + +add_importlibs(advpack ole32 setupapi version advapi32 msvcrt kernel32 ntdll) +add_cd_file(TARGET advpack DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/atl/CMakeLists.txt b/reactos/dll/win32/atl/CMakeLists.txt new file mode 100644 index 00000000000..3fc13e9ead8 --- /dev/null +++ b/reactos/dll/win32/atl/CMakeLists.txt @@ -0,0 +1,43 @@ + +add_definitions(-D__WINESRC__) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_idl_headers(atl_atliface_header atliface.idl) +generate_idl_iids(atliface.idl) + +set_rc_compiler() +spec2def(atl.dll atl.spec) + +list(APPEND SOURCE + atl_ax.c + atl_main.c + registrar.c + stubs.c + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/atliface_i.c + ${CMAKE_CURRENT_BINARY_DIR}/atl.def) + +add_library(atl SHARED ${SOURCE}) + +set_module_type(atl win32dll) + +target_link_libraries(atl uuid wine) + +add_importlibs(atl + msvcrt + ole32 + oleaut32 + user32 + advapi32 + gdi32 + kernel32 + ntdll) + +add_importlib_target(atl.spec) + +add_dependencies(atl atl_atliface_header) +add_cd_file(TARGET atl DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/authz/CMakeLists.txt b/reactos/dll/win32/authz/CMakeLists.txt new file mode 100644 index 00000000000..bb652abec05 --- /dev/null +++ b/reactos/dll/win32/authz/CMakeLists.txt @@ -0,0 +1,23 @@ + +set_unicode() + +spec2def(authz.dll authz.spec) + +list(APPEND SOURCE + authz.c + clictx.c + resman.c + authz.rc + ${CMAKE_CURRENT_BINARY_DIR}/authz_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/authz.def) + +add_library(authz SHARED + ${CMAKE_CURRENT_BINARY_DIR}/authz_precomp.h.gch + ${SOURCE}) + +set_module_type(authz win32dll) + +add_pch(authz ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) +add_importlibs(authz advapi32 msvcrt kernel32 ntdll) + +add_cd_file(TARGET authz DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/avicap32/CMakeLists.txt b/reactos/dll/win32/avicap32/CMakeLists.txt new file mode 100644 index 00000000000..268203e3d54 --- /dev/null +++ b/reactos/dll/win32/avicap32/CMakeLists.txt @@ -0,0 +1,18 @@ + +spec2def(avicap32.dll avicap32.spec) + +set_unicode() + +add_library(avicap32 SHARED + avicap32.c + avicap32.rc + ${CMAKE_CURRENT_BINARY_DIR}/avicap32.def) + +set_module_type(avicap32 win32dll) + +target_link_libraries(avicap32 wine) + +add_importlibs(avicap32 advapi32 user32 version msvcrt kernel32 ntdll) + +add_cd_file(TARGET avicap32 DESTINATION reactos/system32 FOR all) +add_importlib_target(avicap32.spec) diff --git a/reactos/dll/win32/avifil32/CMakeLists.txt b/reactos/dll/win32/avifil32/CMakeLists.txt new file mode 100644 index 00000000000..6edb848c253 --- /dev/null +++ b/reactos/dll/win32/avifil32/CMakeLists.txt @@ -0,0 +1,46 @@ + +add_definitions( + -D__WINESRC__ + -D_DLL -D__USE_CRTIMP) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(avifil32.dll avifil32.spec) + +add_library(avifil32 SHARED + acmstream.c + api.c + avifile.c + editstream.c + extrachunk.c + factory.c + getframe.c + icmstream.c + regsvr.c + tmpfile.c + wavfile.c + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/avifil32.def) + +set_module_type(avifil32 win32dll) + +target_link_libraries(avifil32 uuid wine) + +add_importlibs(avifil32 + msvcrt + msacm32 + msvfw32 + winmm + ole32 + user32 + advapi32 + kernel32 + ntdll) + +add_importlib_target(avifil32.spec) +add_cd_file(TARGET avifil32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/batt/CMakeLists.txt b/reactos/dll/win32/batt/CMakeLists.txt new file mode 100644 index 00000000000..d652c00b7ea --- /dev/null +++ b/reactos/dll/win32/batt/CMakeLists.txt @@ -0,0 +1,18 @@ + +spec2def(batt.dll batt.spec) + +set_unicode() +set_rc_compiler() + +add_library(batt SHARED + batt.c + batt.rc + ${CMAKE_CURRENT_BINARY_DIR}/batt.def) + +set_module_type(batt win32dll) + +add_importlib_target(batt.spec) + +add_importlibs(batt msvcrt kernel32 ntdll) + +add_cd_file(TARGET batt DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/bcrypt/CMakeLists.txt b/reactos/dll/win32/bcrypt/CMakeLists.txt new file mode 100644 index 00000000000..d618a818321 --- /dev/null +++ b/reactos/dll/win32/bcrypt/CMakeLists.txt @@ -0,0 +1,21 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() +spec2def(bcrypt.dll bcrypt.spec) + +list(APPEND SOURCE + bcrypt_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/bcrypt_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/bcrypt.def) + +add_library(bcrypt SHARED ${SOURCE}) +set_module_type(bcrypt win32dll) + +target_link_libraries(bcrypt wine) + +add_importlibs(bcrypt msvcrt kernel32 ntdll) + +add_cd_file(TARGET bcrypt DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/beepmidi/CMakeLists.txt b/reactos/dll/win32/beepmidi/CMakeLists.txt new file mode 100644 index 00000000000..bac931cf584 --- /dev/null +++ b/reactos/dll/win32/beepmidi/CMakeLists.txt @@ -0,0 +1,17 @@ + +set_unicode() + +spec2def(beepmidi.dll beepmidi.spec) + +list(APPEND SOURCE + beepmidi.c + ${CMAKE_CURRENT_BINARY_DIR}/beepmidi.def) + +add_library(beepmidi SHARED ${SOURCE}) + +set_entrypoint(beepmidi 0) +add_importlibs(beepmidi winmm kernel32 ntdll msvcrt) +add_importlib_target(beepmidi.spec) + +add_dependencies(beepmidi psdk) +add_cd_file(TARGET beepmidi DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/browseui/CMakeLists.txt b/reactos/dll/win32/browseui/CMakeLists.txt new file mode 100644 index 00000000000..7b146884c4d --- /dev/null +++ b/reactos/dll/win32/browseui/CMakeLists.txt @@ -0,0 +1,65 @@ + +set_unicode() +set_cpp() + +add_definitions( + -D__WINESRC__ + -DROS_Headers) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories( + ${REACTOS_SOURCE_DIR}/include/reactos/wine + ${REACTOS_SOURCE_DIR}/lib/atl) + +set_rc_compiler() + +spec2def(browseui.dll browseui.spec) + +list(APPEND SOURCE + aclmulti.cpp + addressband.cpp + addresseditbox.cpp + bandproxy.cpp + bandsite.cpp + bandsitemenu.cpp + basebar.cpp + basebarsite.cpp + brandband.cpp + browseui.cpp + browseuiord.cpp + commonbrowser.cpp + globalfoldersettings.cpp + internettoolbar.cpp + regtreeoptions.cpp + shellbrowser.cpp + toolsband.cpp + travellog.cpp + utility.cpp + browseui.rc + dllinstall.c + ${CMAKE_CURRENT_BINARY_DIR}/browseui.def) + +add_library(browseui SHARED ${SOURCE}) +set_module_type(browseui win32dll) + +target_link_libraries(browseui + atlnew + uuid + wine) + +add_importlibs(browseui + shlwapi + shell32 + comctl32 + gdi32 + ole32 + oleaut32 + user32 + advapi32 + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET browseui DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/cabinet/CMakeLists.txt b/reactos/dll/win32/cabinet/CMakeLists.txt new file mode 100644 index 00000000000..f85c5e0a4d5 --- /dev/null +++ b/reactos/dll/win32/cabinet/CMakeLists.txt @@ -0,0 +1,26 @@ + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(cabinet.dll cabinet.spec) + +list(APPEND SOURCE + cabinet_main.c + fci.c + fdi.c + stubs.c + cabinet.rc + ${CMAKE_CURRENT_BINARY_DIR}/cabinet.def) + +add_library(cabinet SHARED ${SOURCE}) + +set_entrypoint(cabinet 0) + +target_link_libraries(cabinet wine) + +add_importlibs(cabinet kernel32 ntdll) +add_importlib_target(cabinet.spec) + +add_dependencies(cabinet psdk) +add_cd_file(TARGET cabinet DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/cards/CMakeLists.txt b/reactos/dll/win32/cards/CMakeLists.txt new file mode 100644 index 00000000000..1ef048fef2a --- /dev/null +++ b/reactos/dll/win32/cards/CMakeLists.txt @@ -0,0 +1,21 @@ + +set_unicode() + +# Possible definitions: CARDSTYLE_DEFAULT or CARDSTYLE_BAVARIAN +add_definitions(-DCARDSTYLE_DEFAULT) + +set_rc_compiler() + +spec2def(cards.dll cards.spec) + +list(APPEND SOURCE + cards.c + cards.rc + ${CMAKE_CURRENT_BINARY_DIR}/cards.def) + +add_library(cards SHARED ${SOURCE}) + +set_module_type(cards win32dll) +add_importlibs(cards user32 gdi32 msvcrt kernel32) +add_importlib_target(cards.spec) +add_cd_file(TARGET cards DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/cfgmgr32/CMakeLists.txt b/reactos/dll/win32/cfgmgr32/CMakeLists.txt new file mode 100644 index 00000000000..ad1bdcb7ab1 --- /dev/null +++ b/reactos/dll/win32/cfgmgr32/CMakeLists.txt @@ -0,0 +1,14 @@ + +spec2def(cfgmgr32.dll cfgmgr32.spec) + +list(APPEND SOURCE + cfgmgr32.rc + ${CMAKE_CURRENT_BINARY_DIR}/cfgmgr32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/cfgmgr32.def) + +add_library(cfgmgr32 SHARED ${SOURCE}) + +set_entrypoint(cfgmgr32 0) +add_importlibs(cfgmgr32 setupapi kernel32 ntdll) +add_dependencies(cfgmgr32 psdk) +add_cd_file(TARGET cfgmgr32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/clusapi/CMakeLists.txt b/reactos/dll/win32/clusapi/CMakeLists.txt new file mode 100644 index 00000000000..c80015b6efb --- /dev/null +++ b/reactos/dll/win32/clusapi/CMakeLists.txt @@ -0,0 +1,22 @@ + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() +spec2def(clusapi.dll clusapi.spec) + +list(APPEND SOURCE + clusapi.c + ${CMAKE_CURRENT_BINARY_DIR}/clusapi_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/clusapi.def) + +add_library(clusapi SHARED ${SOURCE}) + +set_module_type(clusapi win32dll) + +target_link_libraries(clusapi wine) + +add_importlibs(clusapi msvcrt kernel32 ntdll) + +add_cd_file(TARGET clusapi DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/comcat/CMakeLists.txt b/reactos/dll/win32/comcat/CMakeLists.txt new file mode 100644 index 00000000000..29a60062079 --- /dev/null +++ b/reactos/dll/win32/comcat/CMakeLists.txt @@ -0,0 +1,25 @@ + +add_definitions(-D__WINESRC__) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(comcat.dll comcat.spec) + +list(APPEND SOURCE + comcat_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/comcat.def) + +add_library(comcat SHARED ${SOURCE}) + +set_entrypoint(comcat 0) + +target_link_libraries(comcat uuid wine) + +add_importlibs(comcat ole32 user32 advapi32 ntdll) + +add_dependencies(comcat psdk) +add_cd_file(TARGET comcat DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/comctl32/CMakeLists.txt b/reactos/dll/win32/comctl32/CMakeLists.txt new file mode 100644 index 00000000000..2bf968616b8 --- /dev/null +++ b/reactos/dll/win32/comctl32/CMakeLists.txt @@ -0,0 +1,75 @@ + +set_unicode() +set_rc_compiler() + +add_definitions( + -D__WINESRC__ + -D_WINE + -D_COMCTL32_) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(BEFORE ${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(comctl32.dll comctl32.spec) + +list(APPEND SOURCE + animate.c + comboex.c + comctl32undoc.c + commctrl.c + datetime.c + dpa.c + draglist.c + dsa.c + flatsb.c + header.c + hotkey.c + imagelist.c + ipaddress.c + listview.c + monthcal.c + nativefont.c + pager.c + progress.c + propsheet.c + rebar.c + smoothscroll.c + status.c + string.c + syslink.c + tab.c + theme_button.c + theme_combo.c + theme_dialog.c + theme_edit.c + theme_listbox.c + theming.c + toolbar.c + tooltips.c + trackbar.c + treeview.c + updown.c + stubs.c + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/comctl32.def) + +add_library(comctl32 SHARED ${SOURCE}) + +set_module_type(comctl32 win32dll) + +target_link_libraries(comctl32 uuid wine) + +add_importlibs(comctl32 + user32 + gdi32 + advapi32 + winmm + uxtheme + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET comctl32 DESTINATION reactos/system32 FOR all) +add_importlib_target(comctl32.spec) diff --git a/reactos/dll/win32/comdlg32/CMakeLists.txt b/reactos/dll/win32/comdlg32/CMakeLists.txt new file mode 100644 index 00000000000..83f46ae9056 --- /dev/null +++ b/reactos/dll/win32/comdlg32/CMakeLists.txt @@ -0,0 +1,46 @@ + +add_definitions( + -D__WINESRC__ + -D_WINE + -D_DLL -D__USE_CRTIMP) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(comdlg32.dll comdlg32.spec) + +list(APPEND SOURCE + cdlg32.c + colordlg.c + filedlg.c + filedlg31.c + filedlgbrowser.c + finddlg.c + fontdlg.c + printdlg.c + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/comdlg32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/comdlg32.def) + +add_library(comdlg32 SHARED ${SOURCE}) + +set_module_type(comdlg32 win32dll) + +target_link_libraries(comdlg32 uuid wine) + +add_importlibs(comdlg32 + shell32 + shlwapi + comctl32 + winspool + user32 + gdi32 + advapi32 + ole32 + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET comdlg32 DESTINATION reactos/system32 FOR all) +add_importlib_target(comdlg32.spec) diff --git a/reactos/dll/win32/compstui/CMakeLists.txt b/reactos/dll/win32/compstui/CMakeLists.txt new file mode 100644 index 00000000000..c4fbafa2238 --- /dev/null +++ b/reactos/dll/win32/compstui/CMakeLists.txt @@ -0,0 +1,20 @@ + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(compstui.dll compstui.spec) + +list(APPEND SOURCE + compstui_main.c + ${CMAKE_CURRENT_BINARY_DIR}/compstui.def) + +add_library(compstui SHARED ${SOURCE}) + +set_module_type(compstui win32dll) + +target_link_libraries(compstui wine) + +add_importlibs(compstui msvcrt kernel32 ntdll) +add_cd_file(TARGET compstui DESTINATION reactos/system32 FOR all) +add_importlib_target(compstui.spec) diff --git a/reactos/dll/win32/credui/CMakeLists.txt b/reactos/dll/win32/credui/CMakeLists.txt new file mode 100644 index 00000000000..aa4783407c0 --- /dev/null +++ b/reactos/dll/win32/credui/CMakeLists.txt @@ -0,0 +1,24 @@ + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(credui.dll credui.spec) + +list(APPEND SOURCE + credui_main.c + credui.rc + ${CMAKE_CURRENT_BINARY_DIR}/credui_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/credui.def) + +add_library(credui SHARED ${SOURCE}) + +set_module_type(credui win32dll) + +target_link_libraries(credui wine) + +add_importlibs(credui advapi32 user32 comctl32 msvcrt kernel32 ntdll) +add_importlib_target(credui.spec) +add_cd_file(TARGET credui DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/crtdll/CMakeLists.txt b/reactos/dll/win32/crtdll/CMakeLists.txt new file mode 100644 index 00000000000..f81cb48dc2f --- /dev/null +++ b/reactos/dll/win32/crtdll/CMakeLists.txt @@ -0,0 +1,35 @@ + +spec2def(crtdll.dll crtdll.spec) + +add_definitions( + -DUSE_MSVCRT_PREFIX + -D_MSVCRT_LIB_ + -D_MSVCRT_ + -DCRTDLL + -D_CTYPE_DISABLE_MACROS + -D_NO_INLINING + -D__MINGW_IMPORT="") + +include_directories(${REACTOS_SOURCE_DIR}/lib/sdk/crt/include) + +list(APPEND SOURCE + dllmain.c + crtdll.rc + ${CMAKE_CURRENT_BINARY_DIR}/crtdll.def) + +add_library(crtdll SHARED + ${CMAKE_CURRENT_BINARY_DIR}/crtdll_precomp.h.gch + ${SOURCE}) + +set_module_type(crtdll win32dll) + +set_entrypoint(crtdll DllMain@12) + +target_link_libraries(crtdll + wine + crt) + +add_importlibs(crtdll kernel32 ntdll) +add_pch(crtdll ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +add_cd_file(TARGET crtdll DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/crtdll/crtdll.def b/reactos/dll/win32/crtdll/crtdll.def new file mode 100644 index 00000000000..73e6ad1f60e --- /dev/null +++ b/reactos/dll/win32/crtdll/crtdll.def @@ -0,0 +1,530 @@ + +LIBRARY crtdll.dll + +EXPORTS + ??2@YAPAXI@Z=msvcrt.??2@YAPAXI@Z @1 + ??3@YAXPAX@Z=msvcrt.??3@YAXPAX@Z @2 + ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z=msvcrt.?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z @3 + _CIacos=msvcrt._CIacos @4 + _CIasin=msvcrt._CIasin @5 + _CIatan=msvcrt._CIatan @6 + _CIatan2=msvcrt._CIatan2 @7 + _CIcos=msvcrt._CIcos @8 + _CIcosh=msvcrt._CIcosh @9 + _CIexp=msvcrt._CIexp @10 + _CIfmod=msvcrt._CIfmod @11 + _CIlog=msvcrt._CIlog @12 + _CIlog10=msvcrt._CIlog10 @13 + _CIpow=msvcrt._CIpow @14 + _CIsin=msvcrt._CIsin @15 + _CIsinh=msvcrt._CIsinh @16 + _CIsqrt=msvcrt._CIsqrt @17 + _CItan=msvcrt._CItan @18 + _CItanh=msvcrt._CItanh @19 + _HUGE_dll=msvcrt._HUGE @20 DATA + _XcptFilter=msvcrt._XcptFilter @21 + __GetMainArgs @22 + __argc_dll=msvcrt.__argc @23 DATA + __argv_dll=msvcrt.__argv @24 DATA + __dllonexit=msvcrt.__dllonexit @25 + __doserrno=msvcrt.__doserrno @26 + __fpecode=msvcrt.__fpecode @27 + __isascii=msvcrt.__isascii @28 + __iscsym=msvcrt.__iscsym @29 + __iscsymf=msvcrt.__iscsymf @30 + __mb_cur_max_dll=msvcrt.__mb_cur_max @31 DATA + __pxcptinfoptrs=msvcrt.__pxcptinfoptrs @32 + __threadhandle=msvcrt.__threadhandle @33 + __threadid=msvcrt.__threadid @34 + __toascii=msvcrt.__toascii @35 + _abnormal_termination=msvcrt._abnormal_termination @36 + _access=msvcrt._access @37 + _acmdln_dll=msvcrt._acmdln @38 DATA + _aexit_rtn_dll=msvcrt._aexit_rtn @39 DATA + _amsg_exit=msvcrt._amsg_exit @40 + _assert=msvcrt._assert @41 + _basemajor_dll=CRTDLL__basemajor_dll @42 DATA + _baseminor_dll=CRTDLL__baseminor_dll @43 DATA + _baseversion_dll=CRTDLL__baseversion_dll @44 DATA + _beep=msvcrt._beep @45 + _beginthread=msvcrt._beginthread @46 + _c_exit=msvcrt._c_exit @47 + _cabs=msvcrt._cabs @48 + _cexit=msvcrt._cexit @49 + _cgets=msvcrt._cgets @50 + _chdir=msvcrt._chdir @51 + _chdrive=msvcrt._chdrive @52 + _chgsign=msvcrt._chgsign @53 + _chmod=msvcrt._chmod @54 + _chsize=msvcrt._chsize @55 + _clearfp=msvcrt._clearfp @56 + _close=msvcrt._close @57 + _commit=msvcrt._commit @58 + _commode_dll=msvcrt._commode @59 DATA + _control87=msvcrt._control87 @60 + _controlfp=msvcrt._controlfp @61 + _copysign=msvcrt._copysign @62 + _cprintf=msvcrt._cprintf @63 + _cpumode_dll=CRTDLL__cpumode_dll @64 DATA + _cputs=msvcrt._cputs @65 + _creat=msvcrt._creat @66 + _cscanf=msvcrt._cscanf @67 + _ctype=msvcrt._ctype @68 DATA + _cwait=msvcrt._cwait @69 + _daylight_dll=msvcrt._daylight @70 DATA + _dup=msvcrt._dup @71 + _dup2=msvcrt._dup2 @72 + _ecvt=msvcrt._ecvt @73 + _endthread=msvcrt._endthread @74 + _environ_dll=msvcrt._environ @75 DATA + _eof=msvcrt._eof @76 + _errno=msvcrt._errno @77 + _except_handler2=msvcrt._except_handler2 @78 + _execl=msvcrt._execl @79 + _execle=msvcrt._execle @80 + _execlp=msvcrt._execlp @81 + _execlpe=msvcrt._execlpe @82 + _execv=msvcrt._execv @83 + _execve=msvcrt._execve @84 + _execvp=msvcrt._execvp @85 + _execvpe=msvcrt._execvpe @86 + _exit=msvcrt._exit @87 + _expand=msvcrt._expand @88 + _fcloseall=msvcrt._fcloseall @89 + _fcvt=msvcrt._fcvt @90 + _fdopen=msvcrt._fdopen @91 + _fgetchar=msvcrt._fgetchar @92 + _fgetwchar=msvcrt._fgetwchar @93 + _filbuf=msvcrt._filbuf @94 + _fileinfo_dll=msvcrt._fileinfo @95 DATA + _filelength=msvcrt._filelength @96 + _fileno=msvcrt._fileno @97 + _findclose=msvcrt._findclose @98 + _findfirst=msvcrt._findfirst @99 + _findnext=msvcrt._findnext @100 + _finite=msvcrt._finite @101 + _flsbuf=msvcrt._flsbuf @102 + _flushall=msvcrt._flushall @103 + _fmode_dll=msvcrt._fmode @104 DATA + _fpclass=msvcrt._fpclass @105 + _fpieee_flt=msvcrt._fpieee_flt @106 + _fpreset=msvcrt._fpreset @107 + _fputchar=msvcrt._fputchar @108 + _fputwchar=msvcrt._fputwchar @109 + _fsopen=msvcrt._fsopen @110 + _fstat=CRTDLL__fstat @111 + _ftime=msvcrt._ftime @112 + _ftol=msvcrt._ftol @113 + _fullpath=msvcrt._fullpath @114 + _futime=msvcrt._futime @115 + _gcvt=msvcrt._gcvt @116 + _get_osfhandle=msvcrt._get_osfhandle @117 + _getch=msvcrt._getch @118 + _getche=msvcrt._getche @119 + _getcwd=msvcrt._getcwd @120 + _getdcwd=msvcrt._getdcwd @121 + _getdiskfree=msvcrt._getdiskfree @122 + _getdllprocaddr=msvcrt._getdllprocaddr @123 + _getdrive=msvcrt._getdrive @124 + _getdrives=msvcrt._getdrives @125 + _getpid=msvcrt._getpid @126 + _getsystime=msvcrt._getsystime @127 + _getw=msvcrt._getw @128 + _global_unwind2=msvcrt._global_unwind2 @129 + _heapchk=msvcrt._heapchk @130 + _heapmin=msvcrt._heapmin @131 + _heapset=msvcrt._heapset @132 + _heapwalk=msvcrt._heapwalk @133 + _hypot=msvcrt._hypot @134 + _initterm=msvcrt._initterm @135 + _iob=msvcrt._iob @136 DATA + _isatty=msvcrt._isatty @137 + _isctype=msvcrt._isctype @138 + _ismbbalnum=msvcrt._ismbbalnum @139 + _ismbbalpha=msvcrt._ismbbalpha @140 + _ismbbgraph=msvcrt._ismbbgraph @141 + _ismbbkalnum=msvcrt._ismbbkalnum @142 + _ismbbkana=msvcrt._ismbbkana @143 + _ismbbkpunct=msvcrt._ismbbkpunct @144 + _ismbblead=msvcrt._ismbblead @145 + _ismbbprint=msvcrt._ismbbprint @146 + _ismbbpunct=msvcrt._ismbbpunct @147 + _ismbbtrail=msvcrt._ismbbtrail @148 + _ismbcalpha=msvcrt._ismbcalpha @149 + _ismbcdigit=msvcrt._ismbcdigit @150 + _ismbchira=msvcrt._ismbchira @151 + _ismbckata=msvcrt._ismbckata @152 + _ismbcl0=msvcrt._ismbcl0 @153 + _ismbcl1=msvcrt._ismbcl1 @154 + _ismbcl2=msvcrt._ismbcl2 @155 + _ismbclegal=msvcrt._ismbclegal @156 + _ismbclower=msvcrt._ismbclower @157 + _ismbcprint=msvcrt._ismbcprint @158 + _ismbcspace=msvcrt._ismbcspace @159 + _ismbcsymbol=msvcrt._ismbcsymbol @160 + _ismbcupper=msvcrt._ismbcupper @161 + _ismbslead=msvcrt._ismbslead @162 + _ismbstrail=msvcrt._ismbstrail @163 + _isnan=msvcrt._isnan @164 + _itoa=msvcrt._itoa @165 + _itow=msvcrt._itow @166 + _j0=msvcrt._j0 @167 + _j1=msvcrt._j1 @168 + _jn=msvcrt._jn @169 + _kbhit=msvcrt._kbhit @170 + _lfind=msvcrt._lfind @171 + _loaddll=msvcrt._loaddll @172 + _local_unwind2=msvcrt._local_unwind2 @173 + _locking=msvcrt._locking @174 + _logb=msvcrt._logb @175 + _lrotl=msvcrt._lrotl @176 + _lrotr=msvcrt._lrotr @177 + _lsearch=msvcrt._lsearch @178 + _lseek=msvcrt._lseek @179 + _ltoa=msvcrt._ltoa @180 + _ltow=msvcrt._ltow @181 + _makepath=msvcrt._makepath @182 + _matherr=msvcrt._matherr @183 + _mbbtombc=msvcrt._mbbtombc @184 + _mbbtype=msvcrt._mbbtype @185 + _mbccpy=msvcrt._mbccpy @186 + _mbcjistojms=msvcrt._mbcjistojms @187 + _mbcjmstojis=msvcrt._mbcjmstojis @188 + _mbclen=msvcrt._mbclen @189 + _mbctohira=msvcrt._mbctohira @190 + _mbctokata=msvcrt._mbctokata @191 + _mbctolower=msvcrt._mbctolower @192 + _mbctombb=msvcrt._mbctombb @193 + _mbctoupper=msvcrt._mbctoupper @194 + _mbctype=msvcrt._mbctype @195 DATA + _mbsbtype=msvcrt._mbsbtype @196 + _mbscat=msvcrt._mbscat @197 + _mbschr=msvcrt._mbschr @198 + _mbscmp=msvcrt._mbscmp @199 + _mbscpy=msvcrt._mbscpy @200 + _mbscspn=msvcrt._mbscspn @201 + _mbsdec=msvcrt._mbsdec @202 + _mbsdup=msvcrt._mbsdup @203 + _mbsicmp=msvcrt._mbsicmp @204 + _mbsinc=msvcrt._mbsinc @205 + _mbslen=msvcrt._mbslen @206 + _mbslwr=msvcrt._mbslwr @207 + _mbsnbcat=msvcrt._mbsnbcat @208 + _mbsnbcmp=msvcrt._mbsnbcmp @209 + _mbsnbcnt=msvcrt._mbsnbcnt @210 + _mbsnbcpy=msvcrt._mbsnbcpy @211 + _mbsnbicmp=msvcrt._mbsnbicmp @212 + _mbsnbset=msvcrt._mbsnbset @213 + _mbsncat=msvcrt._mbsncat @214 + _mbsnccnt=msvcrt._mbsnccnt @215 + _mbsncmp=msvcrt._mbsncmp @216 + _mbsncpy=msvcrt._mbsncpy @217 + _mbsnextc=msvcrt._mbsnextc @218 + _mbsnicmp=msvcrt._mbsnicmp @219 + _mbsninc=msvcrt._mbsninc @220 + _mbsnset=msvcrt._mbsnset @221 + _mbspbrk=msvcrt._mbspbrk @222 + _mbsrchr=msvcrt._mbsrchr @223 + _mbsrev=msvcrt._mbsrev @224 + _mbsset=msvcrt._mbsset @225 + _mbsspn=msvcrt._mbsspn @226 + _mbsspnp=msvcrt._mbsspnp @227 + _mbsstr=msvcrt._mbsstr @228 + _mbstok=msvcrt._mbstok @229 + _mbstrlen=msvcrt._mbstrlen @230 + _mbsupr=msvcrt._mbsupr @231 + _memccpy=msvcrt._memccpy @232 + _memicmp=msvcrt._memicmp @233 + _mkdir=msvcrt._mkdir @234 + _mktemp=msvcrt._mktemp @235 + _msize=msvcrt._msize @236 + _nextafter=msvcrt._nextafter @237 + _onexit=msvcrt._onexit @238 + _open=msvcrt._open @239 + _open_osfhandle=msvcrt._open_osfhandle @240 + _osmajor_dll=CRTDLL__osmajor_dll @241 DATA + _osminor_dll=CRTDLL__osminor_dll @242 DATA + _osmode_dll=CRTDLL__osmode_dll @243 DATA + _osver_dll=msvcrt._osver @244 DATA + _osversion_dll=CRTDLL__osversion_dll @245 DATA + _pclose=msvcrt._pclose @246 + _pctype_dll=msvcrt._pctype @247 DATA + _pgmptr_dll=msvcrt._pgmptr @248 DATA + _pipe=msvcrt._pipe @249 + _popen=msvcrt._popen @250 + _purecall=msvcrt._purecall @251 + _putch=msvcrt._putch @252 + _putenv=msvcrt._putenv @253 + _putw=msvcrt._putw @254 + _pwctype_dll=msvcrt._pwctype @255 DATA + _read=msvcrt._read @256 + _rmdir=msvcrt._rmdir @257 + _rmtmp=msvcrt._rmtmp @258 + _rotl=msvcrt._rotl @259 + _rotr=msvcrt._rotr @260 + _scalb=msvcrt._scalb @261 + _searchenv=msvcrt._searchenv @262 + _seterrormode=msvcrt._seterrormode @263 + _setjmp=msvcrt._setjmp @264 + _setmode=msvcrt._setmode @265 + _setsystime=msvcrt._setsystime @266 + _sleep=msvcrt._sleep @267 + _snprintf=msvcrt._snprintf @268 + _snwprintf=msvcrt._snwprintf @269 + _sopen=msvcrt._sopen @270 + _spawnl=msvcrt._spawnl @271 + _spawnle=msvcrt._spawnle @272 + _spawnlp=msvcrt._spawnlp @273 + _spawnlpe=msvcrt._spawnlpe @274 + _spawnv=msvcrt._spawnv @275 + _spawnve=msvcrt._spawnve @276 + _spawnvp=msvcrt._spawnvp @277 + _spawnvpe=msvcrt._spawnvpe @278 + _splitpath=msvcrt._splitpath @279 + _stat=CRTDLL__stat @280 + _statusfp=msvcrt._statusfp @281 + _strcmpi=msvcrt._strcmpi @282 + _strdate=msvcrt._strdate @283 + _strdec @284 + _strdup=msvcrt._strdup @285 + _strerror=msvcrt._strerror @286 + _stricmp=msvcrt._stricmp @287 + _stricoll=msvcrt._stricoll @288 + _strinc @289 + _strlwr=msvcrt._strlwr @290 + _strncnt @291 + _strnextc @292 + _strnicmp=msvcrt._strnicmp @293 + _strninc @294 + _strnset=msvcrt._strnset @295 + _strrev=msvcrt._strrev @296 + _strset=msvcrt._strset @297 + _strspnp @298 + _strtime=msvcrt._strtime @299 + _strupr=msvcrt._strupr @300 + _swab=msvcrt._swab @301 + _sys_errlist=msvcrt._sys_errlist @302 DATA + _sys_nerr_dll=msvcrt._sys_nerr @303 DATA + _tell=msvcrt._tell @304 + _tempnam=msvcrt._tempnam @305 + _timezone_dll=msvcrt._timezone @306 DATA + _tolower=msvcrt._tolower @307 + _toupper=msvcrt._toupper @308 + _tzname=msvcrt._tzname @309 DATA + _tzset=msvcrt._tzset @310 + _ultoa=msvcrt._ultoa @311 + _ultow=msvcrt._ultow @312 + _umask=msvcrt._umask @313 + _ungetch=msvcrt._ungetch @314 + _unlink=msvcrt._unlink @315 + _unloaddll=msvcrt._unloaddll @316 + _utime=msvcrt._utime @317 + _vsnprintf=msvcrt._vsnprintf @318 + _vsnwprintf=msvcrt._vsnwprintf @319 + _wcsdup=msvcrt._wcsdup @320 + _wcsicmp=msvcrt._wcsicmp @321 + _wcsicoll=msvcrt._wcsicoll @322 + _wcslwr=msvcrt._wcslwr @323 + _wcsnicmp=msvcrt._wcsnicmp @324 + _wcsnset=msvcrt._wcsnset @325 + _wcsrev=msvcrt._wcsrev @326 + _wcsset=msvcrt._wcsset @327 + _wcsupr=msvcrt._wcsupr @328 + _winmajor_dll=msvcrt._winmajor @329 DATA + _winminor_dll=msvcrt._winminor @330 DATA + _winver_dll=msvcrt._winver @331 DATA + _write=msvcrt._write @332 + _wtoi=msvcrt._wtoi @333 + _wtol=msvcrt._wtol @334 + _y0=msvcrt._y0 @335 + _y1=msvcrt._y1 @336 + _yn=msvcrt._yn @337 + abort=msvcrt.abort @338 + abs=msvcrt.abs @339 + acos=msvcrt.acos @340 + asctime=msvcrt.asctime @341 + asin=msvcrt.asin @342 + atan=msvcrt.atan @343 + atan2=msvcrt.atan2 @344 + atexit=msvcrt.atexit @345 + atof=msvcrt.atof @346 + atoi=msvcrt.atoi @347 + atol=msvcrt.atol @348 + bsearch=msvcrt.bsearch @349 + calloc=msvcrt.calloc @350 + ceil=msvcrt.ceil @351 + clearerr=msvcrt.clearerr @352 + clock=msvcrt.clock @353 + cos=msvcrt.cos @354 + cosh=msvcrt.cosh @355 + ctime=msvcrt.ctime @356 + difftime=msvcrt.difftime @357 + div=msvcrt.div @358 + exit=msvcrt.exit @359 + exp=msvcrt.exp @360 + fabs=msvcrt.fabs @361 + fclose=msvcrt.fclose @362 + feof=msvcrt.feof @363 + ferror=msvcrt.ferror @364 + fflush=msvcrt.fflush @365 + fgetc=msvcrt.fgetc @366 + fgetpos=msvcrt.fgetpos @367 + fgets=msvcrt.fgets @368 + fgetwc=msvcrt.fgetwc @369 + floor=msvcrt.floor @370 + fmod=msvcrt.fmod @371 + fopen=msvcrt.fopen @372 + fprintf=msvcrt.fprintf @373 + fputc=msvcrt.fputc @374 + fputs=msvcrt.fputs @375 + fputwc=msvcrt.fputwc @376 + fread=msvcrt.fread @377 + free=msvcrt.free @378 + freopen=msvcrt.freopen @379 + frexp=msvcrt.frexp @380 + fscanf=msvcrt.fscanf @381 + fseek=msvcrt.fseek @382 + fsetpos=msvcrt.fsetpos @383 + ftell=msvcrt.ftell @384 + fwprintf=msvcrt.fwprintf @385 + fwrite=msvcrt.fwrite @386 + fwscanf=msvcrt.fwscanf @387 + getc=msvcrt.getc @388 + getchar=msvcrt.getchar @389 + getenv=msvcrt.getenv @390 + gets=msvcrt.gets @391 + gmtime=msvcrt.gmtime @392 + is_wctype=msvcrt.is_wctype @393 + isalnum=msvcrt.isalnum @394 + isalpha=msvcrt.isalpha @395 + iscntrl=msvcrt.iscntrl @396 + isdigit=msvcrt.isdigit @397 + isgraph=msvcrt.isgraph @398 + isleadbyte=msvcrt.isleadbyte @399 + islower=msvcrt.islower @400 + isprint=msvcrt.isprint @401 + ispunct=msvcrt.ispunct @402 + isspace=msvcrt.isspace @403 + isupper=msvcrt.isupper @404 + iswalnum=msvcrt.iswalnum @405 + iswalpha=msvcrt.iswalpha @406 + iswascii=msvcrt.iswascii @407 + iswcntrl=msvcrt.iswcntrl @408 + iswctype=msvcrt.iswctype @409 + iswdigit=msvcrt.iswdigit @410 + iswgraph=msvcrt.iswgraph @411 + iswlower=msvcrt.iswlower @412 + iswprint=msvcrt.iswprint @413 + iswpunct=msvcrt.iswpunct @414 + iswspace=msvcrt.iswspace @415 + iswupper=msvcrt.iswupper @416 + iswxdigit=msvcrt.iswxdigit @417 + isxdigit=msvcrt.isxdigit @418 + labs=msvcrt.labs @419 + ldexp=msvcrt.ldexp @420 + ldiv=msvcrt.ldiv @421 + localeconv=msvcrt.localeconv @422 + localtime=msvcrt.localtime @423 + log=msvcrt.log @424 + log10=msvcrt.log10 @425 + longjmp=msvcrt.longjmp @426 + malloc=msvcrt.malloc @427 + mblen=msvcrt.mblen @428 + mbstowcs=msvcrt.mbstowcs @429 + mbtowc=msvcrt.mbtowc @430 + memchr=msvcrt.memchr @431 + memcmp=msvcrt.memcmp @432 + memcpy=msvcrt.memcpy @433 + memmove=msvcrt.memmove @434 + memset=msvcrt.memset @435 + mktime=msvcrt.mktime @436 + modf=msvcrt.modf @437 + perror=msvcrt.perror @438 + pow=msvcrt.pow @439 + printf=msvcrt.printf @440 + putc=msvcrt.putc @441 + putchar=msvcrt.putchar @442 + puts=msvcrt.puts @443 + qsort=msvcrt.qsort @444 + raise=msvcrt.raise @445 + rand=msvcrt.rand @446 + realloc=msvcrt.realloc @447 + remove=msvcrt.remove @448 + rename=msvcrt.rename @449 + rewind=msvcrt.rewind @450 + scanf=msvcrt.scanf @451 + setbuf=msvcrt.setbuf @452 + setlocale=msvcrt.setlocale @453 + setvbuf=msvcrt.setvbuf @454 + signal=msvcrt.signal @455 + sin=msvcrt.sin @456 + sinh=msvcrt.sinh @457 + sprintf=msvcrt.sprintf @458 + sqrt=msvcrt.sqrt @459 + srand=msvcrt.srand @460 + sscanf=msvcrt.sscanf @461 + strcat=msvcrt.strcat @462 + strchr=msvcrt.strchr @463 + strcmp=msvcrt.strcmp @464 + strcoll=msvcrt.strcoll @465 + strcpy=msvcrt.strcpy @466 + strcspn=msvcrt.strcspn @467 + strerror=msvcrt.strerror @468 + strftime=msvcrt.strftime @469 + strlen=msvcrt.strlen @470 + strncat=msvcrt.strncat @471 + strncmp=msvcrt.strncmp @472 + strncpy=msvcrt.strncpy @473 + strpbrk=msvcrt.strpbrk @474 + strrchr=msvcrt.strrchr @475 + strspn=msvcrt.strspn @476 + strstr=msvcrt.strstr @477 + strtod=msvcrt.strtod @478 + strtok=msvcrt.strtok @479 + strtol=msvcrt.strtol @480 + strtoul=msvcrt.strtoul @481 + strxfrm=msvcrt.strxfrm @482 + swprintf=msvcrt.swprintf @483 + swscanf=msvcrt.swscanf @484 + system=msvcrt.system @485 + tan=msvcrt.tan @486 + tanh=msvcrt.tanh @487 + time=msvcrt.time @488 + tmpfile=msvcrt.tmpfile @489 + tmpnam=msvcrt.tmpnam @490 + tolower=msvcrt.tolower @491 + toupper=msvcrt.toupper @492 + towlower=msvcrt.towlower @493 + towupper=msvcrt.towupper @494 + ungetc=msvcrt.ungetc @495 + ungetwc=msvcrt.ungetwc @496 + vfprintf=msvcrt.vfprintf @497 + vfwprintf=msvcrt.vfwprintf @498 + vprintf=msvcrt.vprintf @499 + vsprintf=msvcrt.vsprintf @500 + vswprintf=msvcrt.vswprintf @501 + vwprintf=msvcrt.vwprintf @502 + wcscat=msvcrt.wcscat @503 + wcschr=msvcrt.wcschr @504 + wcscmp=msvcrt.wcscmp @505 + wcscoll=msvcrt.wcscoll @506 + wcscpy=msvcrt.wcscpy @507 + wcscspn=msvcrt.wcscspn @508 + wcsftime=msvcrt.wcsftime @509 + wcslen=msvcrt.wcslen @510 + wcsncat=msvcrt.wcsncat @511 + wcsncmp=msvcrt.wcsncmp @512 + wcsncpy=msvcrt.wcsncpy @513 + wcspbrk=msvcrt.wcspbrk @514 + wcsrchr=msvcrt.wcsrchr @515 + wcsspn=msvcrt.wcsspn @516 + wcsstr=msvcrt.wcsstr @517 + wcstod=msvcrt.wcstod @518 + wcstok=msvcrt.wcstok @519 + wcstol=msvcrt.wcstol @520 + wcstombs=msvcrt.wcstombs @521 + wcstoul=msvcrt.wcstoul @522 + wcsxfrm=msvcrt.wcsxfrm @523 + wctomb=msvcrt.wctomb @524 + wprintf=msvcrt.wprintf @525 + wscanf=msvcrt.wscanf @526 diff --git a/reactos/dll/win32/crypt32/CMakeLists.txt b/reactos/dll/win32/crypt32/CMakeLists.txt new file mode 100644 index 00000000000..c4492e3019e --- /dev/null +++ b/reactos/dll/win32/crypt32/CMakeLists.txt @@ -0,0 +1,59 @@ + +add_definitions( + -D__WINESRC__ + -D_DLL + -D__USE_CRTIMP + -D_WINE) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(crypt32.dll crypt32.spec) + +list(APPEND SOURCE + base64.c + cert.c + chain.c + collectionstore.c + context.c + crl.c + ctl.c + decode.c + encode.c + filestore.c + main.c + message.c + msg.c + object.c + oid.c + proplist.c + protectdata.c + provstore.c + regstore.c + rootstore.c + serialize.c + sip.c + store.c + str.c + crypt32.rc + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/crypt32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/crypt32.def) + +add_library(crypt32 SHARED ${SOURCE}) + +set_module_type(crypt32 win32dll) + +target_link_libraries(crypt32 + wine + ${PSEH_LIB} + oldnames) + +add_importlibs(crypt32 user32 advapi32 msvcrt kernel32 ntdll) + +add_cd_file(TARGET crypt32 DESTINATION reactos/system32 FOR all) +add_importlib_target(crypt32.spec) diff --git a/reactos/dll/win32/cryptdlg/CMakeLists.txt b/reactos/dll/win32/cryptdlg/CMakeLists.txt new file mode 100644 index 00000000000..8dc706b3603 --- /dev/null +++ b/reactos/dll/win32/cryptdlg/CMakeLists.txt @@ -0,0 +1,31 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(cryptdlg.dll cryptdlg.spec) + +list(APPEND SOURCE + main.c + cryptdlg.rc + ${CMAKE_CURRENT_BINARY_DIR}/cryptdlg_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/cryptdlg.def) + +add_library(cryptdlg SHARED ${SOURCE}) + +set_module_type(cryptdlg win32dll) + +target_link_libraries(cryptdlg wine) + +add_importlibs(cryptdlg + advapi32 + user32 + crypt32 + cryptui + wintrust + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET cryptdlg DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/cryptdll/CMakeLists.txt b/reactos/dll/win32/cryptdll/CMakeLists.txt new file mode 100644 index 00000000000..8aa68a88bcc --- /dev/null +++ b/reactos/dll/win32/cryptdll/CMakeLists.txt @@ -0,0 +1,18 @@ + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(cryptdll.dll cryptdll.spec) + +list(APPEND SOURCE + cryptdll.c + stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/cryptdll.def) + +add_library(cryptdll SHARED ${SOURCE}) + +set_module_type(cryptdll win32dll) +target_link_libraries(cryptdll wine) +add_importlibs(cryptdll advapi32 msvcrt kernel32 ntdll) +add_cd_file(TARGET cryptdll DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/cryptnet/CMakeLists.txt b/reactos/dll/win32/cryptnet/CMakeLists.txt new file mode 100644 index 00000000000..51200f6a14f --- /dev/null +++ b/reactos/dll/win32/cryptnet/CMakeLists.txt @@ -0,0 +1,26 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(cryptnet.dll cryptnet.spec) + +list(APPEND SOURCE + cryptnet_main.c + ${CMAKE_CURRENT_BINARY_DIR}/cryptnet_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/cryptnet.def) + +add_library(cryptnet SHARED ${SOURCE}) + +set_module_type(cryptnet win32dll) + +target_link_libraries(cryptnet wine) + +add_importlibs(cryptnet + crypt32 + wininet + msvcrt + kernel32 + ntdll) + +add_importlib_target(cryptnet.spec) +add_cd_file(TARGET cryptnet DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/cryptui/CMakeLists.txt b/reactos/dll/win32/cryptui/CMakeLists.txt new file mode 100644 index 00000000000..17682b820a3 --- /dev/null +++ b/reactos/dll/win32/cryptui/CMakeLists.txt @@ -0,0 +1,39 @@ + +add_definitions( + -D__WINESRC__ + -D_WINE) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(cryptui.dll cryptui.spec) + +list(APPEND SOURCE + main.c + cryptui.rc + ${CMAKE_CURRENT_BINARY_DIR}/cryptui_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/cryptui.def) + +add_library(cryptui SHARED ${SOURCE}) + +set_module_type(cryptui win32dll) + +target_link_libraries(cryptui uuid wine) + +add_importlibs(cryptui + user32 + ole32 + crypt32 + gdi32 + advapi32 + urlmon + wintrust + comctl32 + comdlg32 + msvcrt + kernel32 + ntdll) + +add_importlib_target(cryptui.spec) +add_cd_file(TARGET cryptui DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/dbghelp/CMakeLists.txt b/reactos/dll/win32/dbghelp/CMakeLists.txt new file mode 100644 index 00000000000..4b1c073b8a8 --- /dev/null +++ b/reactos/dll/win32/dbghelp/CMakeLists.txt @@ -0,0 +1,60 @@ + +add_definitions( + -D__WINESRC__ + -D_DLL + -D__USE_CRTIMP + -D_WINE + -DHAVE_REGEX_H + -DHAVE_ALLOCA_H + -D_IMAGEHLP_SOURCE_) + +if(ARCH MATCHES amd64) +add_definitions(-DUNW_FLAG_NHANDLER=0 -DUNW_FLAG_EHANDLER=1 -DUNW_FLAG_UHANDLER=2 -DUNW_FLAG_CHAININFO=3) +endif(ARCH MATCHES amd64) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(dbghelp.dll dbghelp.spec) + +list(APPEND SOURCE + coff.c + cpu_i386.c + cpu_ppc.c + cpu_x86_64.c + crc32.c + dbghelp.c + dwarf.c + elf_module.c + image.c + macho_module.c + minidump.c + module.c + msc.c + path.c + pe_module.c + regex.c + rosstubs.c + source.c + stabs.c + stack.c + storage.c + symbol.c + type.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/dbghelp_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/dbghelp.def) + +add_library(dbghelp SHARED ${SOURCE}) + +set_module_type(dbghelp win32dll) + +target_link_libraries(dbghelp + wine + ${PSEH_LIB} + oldnames) + +add_importlibs(dbghelp psapi version msvcrt kernel32 ntdll) +add_importlib_target(dbghelp.spec) +add_cd_file(TARGET dbghelp DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/dciman32/CMakeLists.txt b/reactos/dll/win32/dciman32/CMakeLists.txt new file mode 100644 index 00000000000..038d75a7356 --- /dev/null +++ b/reactos/dll/win32/dciman32/CMakeLists.txt @@ -0,0 +1,20 @@ + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(dciman32.dll dciman32.spec) + +list(APPEND SOURCE + dciman_main.c + ${CMAKE_CURRENT_BINARY_DIR}/dciman32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/dciman32.def) + +add_library(dciman32 SHARED ${SOURCE}) + +set_module_type(dciman32 win32dll) +target_link_libraries(dciman32 wine) +add_importlibs(dciman32 msvcrt kernel32 ntdll) +add_cd_file(TARGET dciman32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/devmgr/CMakeLists.txt b/reactos/dll/win32/devmgr/CMakeLists.txt new file mode 100644 index 00000000000..024f8df3f2a --- /dev/null +++ b/reactos/dll/win32/devmgr/CMakeLists.txt @@ -0,0 +1,35 @@ + +set_unicode() +set_rc_compiler() + +spec2def(devmgr.dll devmgr.spec) + +list(APPEND SOURCE + devmgr.rc + advprop.c + devprblm.c + hwpage.c + misc.c + stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/devmgr_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/devmgr.def) + +add_library(devmgr SHARED ${CMAKE_CURRENT_BINARY_DIR}/devmgr_precomp.h.gch ${SOURCE}) + +set_module_type(devmgr win32dll) + +target_link_libraries(devmgr uuid wine) + +add_importlibs(devmgr + setupapi + advapi32 + user32 + version + msvcrt + kernel32 + ntdll) + +add_pch(devmgr ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +add_cd_file(TARGET devmgr DESTINATION reactos/system32 FOR all) +add_importlib_target(devmgr.spec) diff --git a/reactos/dll/win32/dhcpcsvc/CMakeLists.txt b/reactos/dll/win32/dhcpcsvc/CMakeLists.txt new file mode 100644 index 00000000000..1d2323ab522 --- /dev/null +++ b/reactos/dll/win32/dhcpcsvc/CMakeLists.txt @@ -0,0 +1,37 @@ + +add_definitions(-Dtzset=_tzset) + +include_directories(include) + +spec2def(dhcpcsvc.dll dhcpcsvc.spec) + +list(APPEND SOURCE + dhcp/adapter.c + dhcp/alloc.c + dhcp/api.c + dhcp/compat.c + dhcp/dhclient.c + dhcp/dispatch.c + dhcp/hash.c + dhcp/options.c + dhcp/pipe.c + dhcp/socket.c + dhcp/tables.c + dhcp/util.c + dhcpcsvc.c + dhcpcsvc.rc + ${CMAKE_CURRENT_BINARY_DIR}/dhcpcsvc_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/dhcpcsvc.def) + +add_library(dhcpcsvc SHARED + ${CMAKE_CURRENT_BINARY_DIR}/dhcpcsvc_rosdhcp.h.gch + ${SOURCE}) + +set_module_type(dhcpcsvc win32dll) + +add_importlibs(dhcpcsvc ws2_32 iphlpapi advapi32 msvcrt kernel32 ntdll) +add_importlib_target(dhcpcsvc.spec) + +add_pch(dhcpcsvc ${CMAKE_CURRENT_SOURCE_DIR}/include/rosdhcp.h ${SOURCE}) + +add_cd_file(TARGET dhcpcsvc DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/dnsapi/CMakeLists.txt b/reactos/dll/win32/dnsapi/CMakeLists.txt new file mode 100644 index 00000000000..fbd465929de --- /dev/null +++ b/reactos/dll/win32/dnsapi/CMakeLists.txt @@ -0,0 +1,39 @@ + +include_directories( + include + ${REACTOS_SOURCE_DIR}/lib/3rdparty/adns/src + ${REACTOS_SOURCE_DIR}/lib/3rdparty/adns/adns_win32) + +add_definitions( + -D_DLL -D__USE_CRTIMP + -DADNS_JGAA_WIN32) + +spec2def(dnsapi.dll dnsapi.spec) + +list(APPEND SOURCE + dnsapi/adns.c + dnsapi/context.c + dnsapi/memory.c + dnsapi/names.c + dnsapi/query.c + dnsapi/record.c + dnsapi/stubs.c + dnsapi.rc + ${CMAKE_CURRENT_BINARY_DIR}/dnsapi.def) + +add_library(dnsapi SHARED + ${CMAKE_CURRENT_BINARY_DIR}/dnsapi_precomp.h.gch + ${SOURCE}) + +set_entrypoint(dnsapi 0) + +target_link_libraries(dnsapi adns) +if(MSVC) + target_link_libraries(dnsapi msvcsup) +endif() + +add_importlibs(dnsapi user32 ws2_32 iphlpapi msvcrt kernel32 ntdll) +add_pch(dnsapi ${CMAKE_CURRENT_SOURCE_DIR}/dnsapi/precomp.h ${SOURCE}) +add_dependencies(dnsapi psdk) +add_cd_file(TARGET dnsapi DESTINATION reactos/system32 FOR all) +add_importlib_target(dnsapi.spec) diff --git a/reactos/dll/win32/dwmapi/CMakeLists.txt b/reactos/dll/win32/dwmapi/CMakeLists.txt new file mode 100644 index 00000000000..5f775cf2f77 --- /dev/null +++ b/reactos/dll/win32/dwmapi/CMakeLists.txt @@ -0,0 +1,21 @@ + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(dwmapi.dll dwmapi.spec) + +list(APPEND SOURCE + dwmapi_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/dwmapi_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/dwmapi.def) + +add_library(dwmapi SHARED ${SOURCE}) + +set_module_type(dwmapi win32dll) +target_link_libraries(dwmapi wine) +add_importlibs(dwmapi msvcrt kernel32 ntdll) +add_cd_file(TARGET dwmapi DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/dwmapi/dwmapi_ros.diff b/reactos/dll/win32/dwmapi/dwmapi_ros.diff new file mode 100644 index 00000000000..48917bd147d --- /dev/null +++ b/reactos/dll/win32/dwmapi/dwmapi_ros.diff @@ -0,0 +1,48 @@ +Index: dwmapi.spec +=================================================================== +--- dwmapi.spec (revision 49877) ++++ dwmapi.spec (working copy) +@@ -1,24 +1,24 @@ +-100 stub @ +-101 stub @ ++100 stub DWMAPI_100 ++101 stub DWMAPI_101 + 102 stdcall DwmEnableComposition (long) +-103 stub @ +-104 stub @ +-105 stub @ +-106 stub @ +-107 stub @ +-108 stub @ +-109 stub @ +-110 stub @ +-111 stub @ +-112 stub @ +-113 stub @ ++103 stub DWMAPI_103 ++104 stub DWMAPI_104 ++105 stub DWMAPI_105 ++106 stub DWMAPI_106 ++107 stub DWMAPI_107 ++108 stub DWMAPI_108 ++109 stub DWMAPI_109 ++110 stub DWMAPI_110 ++111 stub DWMAPI_111 ++112 stub DWMAPI_112 ++113 stub DWMAPI_113 + +-115 stub @ +-116 stub @ +-117 stub @ +-118 stub @ +-119 stub @ +-120 stub @ ++115 stub DWMAPI_114 ++116 stub DWMAPI_115 ++117 stub DWMAPI_116 ++118 stub DWMAPI_117 ++119 stub DWMAPI_118 ++120 stub DWMAPI_120 + + @ stub DwmAttachMilContent + @ stub DwmDefWindowProc diff --git a/reactos/dll/win32/faultrep/CMakeLists.txt b/reactos/dll/win32/faultrep/CMakeLists.txt new file mode 100644 index 00000000000..38147a4ce28 --- /dev/null +++ b/reactos/dll/win32/faultrep/CMakeLists.txt @@ -0,0 +1,20 @@ + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(faultrep.dll faultrep.spec) + +list(APPEND SOURCE + faultrep.c + ${CMAKE_CURRENT_BINARY_DIR}/faultrep_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/faultrep.def) + +add_library(faultrep SHARED ${SOURCE}) + +set_module_type(faultrep win32dll) +target_link_libraries(faultrep wine) +add_importlibs(faultrep advapi32 msvcrt kernel32 ntdll) +add_cd_file(TARGET faultrep DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/fmifs/CMakeLists.txt b/reactos/dll/win32/fmifs/CMakeLists.txt new file mode 100644 index 00000000000..6595fcaf519 --- /dev/null +++ b/reactos/dll/win32/fmifs/CMakeLists.txt @@ -0,0 +1,25 @@ + +spec2def(fmifs.dll fmifs.spec) + +list(APPEND SOURCE + chkdsk.c + compress.c + diskcopy.c + extend.c + format.c + init.c + media.c + query.c + fmifs.rc + ${CMAKE_CURRENT_BINARY_DIR}/fmifs_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/fmifs.def) + +add_pch(fmifs ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) +add_library(fmifs SHARED ${CMAKE_CURRENT_BINARY_DIR}/fmifs_precomp.h.gch ${SOURCE}) + +set_entrypoint(fmifs InitializeFmIfs@12) + +add_importlibs(fmifs kernel32 ntdll) +add_dependencies(fmifs psdk) +add_cd_file(TARGET fmifs DESTINATION reactos/system32 FOR all) +add_importlib_target(fmifs.spec) diff --git a/reactos/dll/win32/fusion/CMakeLists.txt b/reactos/dll/win32/fusion/CMakeLists.txt new file mode 100644 index 00000000000..fc43e3f7bb2 --- /dev/null +++ b/reactos/dll/win32/fusion/CMakeLists.txt @@ -0,0 +1,25 @@ + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(fusion.dll fusion.spec) + +list(APPEND SOURCE + asmcache.c + asmenum.c + asmname.c + assembly.c + fusion.c + fusion_main.c + ${CMAKE_CURRENT_BINARY_DIR}/fusion_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/fusion.def) + +add_library(fusion SHARED ${SOURCE}) + +set_module_type(fusion win32dll) +target_link_libraries(fusion wine uuid) +add_importlibs(fusion shlwapi advapi32 dbghelp user32 msvcrt kernel32 ntdll) +add_cd_file(TARGET fusion DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/gdi32/CMakeLists.txt b/reactos/dll/win32/gdi32/CMakeLists.txt new file mode 100644 index 00000000000..3f679a14dfa --- /dev/null +++ b/reactos/dll/win32/gdi32/CMakeLists.txt @@ -0,0 +1,64 @@ + +set_unicode() + +add_definitions( + -D_DLL -D__USE_CRTIMP + -DLANGPACK) + +include_directories(include) + +spec2def(gdi32.dll gdi32.spec) + +if(ARCH MATCHES i386) +list(APPEND SOURCE + objects/efloat.c) +endif() + +list(APPEND SOURCE + main/dllmain.c + misc/heap.c + misc/gdientry.c + misc/hacks.c + misc/historic.c + misc/misc.c + misc/stubs.c + misc/stubsa.c + misc/stubsw.c + misc/wingl.c + objects/arc.c + objects/bitmap.c + objects/brush.c + objects/coord.c + objects/dc.c + objects/eng.c + objects/enhmfile.c + objects/font.c + objects/icm.c + objects/linedda.c + objects/metafile.c + objects/painting.c + objects/printdrv.c + objects/palette.c + objects/pen.c + objects/region.c + objects/text.c + objects/utils.c + objects/path.c + gdi32.rc + ${CMAKE_CURRENT_BINARY_DIR}/gdi32.def) + +add_library(gdi32 SHARED + ${CMAKE_CURRENT_BINARY_DIR}/gdi32_precomp.h.gch + ${SOURCE}) + +set_module_type(gdi32 win32dll) + +target_link_libraries(gdi32 + win32ksys + dxguid + ${PSEH_LIB}) + +add_importlibs(gdi32 user32 advapi32 msvcrt kernel32 ntdll) +add_pch(gdi32 ${CMAKE_CURRENT_SOURCE_DIR}/include/precomp.h ${SOURCE}) +add_cd_file(TARGET gdi32 DESTINATION reactos/system32 FOR all) +add_importlib_target(gdi32.spec) diff --git a/reactos/dll/win32/gdiplus/CMakeLists.txt b/reactos/dll/win32/gdiplus/CMakeLists.txt new file mode 100644 index 00000000000..696628e6114 --- /dev/null +++ b/reactos/dll/win32/gdiplus/CMakeLists.txt @@ -0,0 +1,54 @@ + +add_definitions( + -D__WINESRC__ + -D_USE_MATH_DEFINES + -D_DLL -D__USE_CRTIMP) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(gdiplus.dll gdiplus.spec) + +list(APPEND SOURCE + brush.c + customlinecap.c + font.c + gdiplus.c + graphics.c + graphicspath.c + image.c + imageattributes.c + matrix.c + pathiterator.c + pen.c + region.c + stringformat.c + #${REACTOS_BINARY_DIR}/include/psdk/wincodec_i.c + ${CMAKE_CURRENT_BINARY_DIR}/gdiplus_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/gdiplus.def) + +add_library(gdiplus SHARED ${SOURCE}) + +set_module_type(gdiplus win32dll) + +target_link_libraries(gdiplus uuid wine) + +add_importlibs(gdiplus + msvcrt + shlwapi + oleaut32 + ole32 + user32 + gdi32 + windowscodecs + kernel32 + ntdll) + +add_importlib_target(gdiplus.spec) + +if(ARCH MATCHES amd64) +target_link_libraries(gdiplus crt) +endif(ARCH MATCHES amd64) + +add_cd_file(TARGET gdiplus DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/getuname/CMakeLists.txt b/reactos/dll/win32/getuname/CMakeLists.txt new file mode 100644 index 00000000000..c0b1308b3e2 --- /dev/null +++ b/reactos/dll/win32/getuname/CMakeLists.txt @@ -0,0 +1,16 @@ + +set_unicode() + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(getuname.dll getuname.spec) + +add_library(getuname SHARED + getuname.c + getuname.rc + ${CMAKE_CURRENT_BINARY_DIR}/getuname.def) + +add_importlib_target(getuname.spec) +set_module_type(getuname win32dll) +add_importlibs(getuname msvcrt kernel32 ntdll) +add_cd_file(TARGET getuname DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/glu32/CMakeLists.txt b/reactos/dll/win32/glu32/CMakeLists.txt new file mode 100644 index 00000000000..0013b2d1af0 --- /dev/null +++ b/reactos/dll/win32/glu32/CMakeLists.txt @@ -0,0 +1,124 @@ + +add_definitions( + -DRESOLVE_3D_TEXTURE_SUPPORT + -DBUILD_GL32 + -DLIBRARYBUILD + -D_DLL -D__USE_CRTIMP) + +include_directories( + include + libnurbs/internals + libnurbs/interface + libnurbs/nurbtess + libtess + libutil) + +spec2def(glu32.dll glu32.spec) + +list(APPEND SOURCE + libnurbs/interface/bezierEval.cc + libnurbs/interface/bezierPatch.cc + libnurbs/interface/bezierPatchMesh.cc + libnurbs/interface/glcurveval.cc + libnurbs/interface/glinterface.cc + libnurbs/interface/glrenderer.cc + libnurbs/interface/glsurfeval.cc + libnurbs/interface/incurveeval.cc + libnurbs/interface/insurfeval.cc + libnurbs/internals/arc.cc + libnurbs/internals/arcsorter.cc + libnurbs/internals/arctess.cc + libnurbs/internals/backend.cc + libnurbs/internals/basiccrveval.cc + libnurbs/internals/basicsurfeval.cc + libnurbs/internals/bin.cc + libnurbs/internals/bufpool.cc + libnurbs/internals/cachingeval.cc + libnurbs/internals/ccw.cc + libnurbs/internals/coveandtiler.cc + libnurbs/internals/curve.cc + libnurbs/internals/curvelist.cc + libnurbs/internals/curvesub.cc + libnurbs/internals/dataTransform.cc + libnurbs/internals/displaylist.cc + libnurbs/internals/flist.cc + libnurbs/internals/flistsorter.cc + libnurbs/internals/hull.cc + libnurbs/internals/intersect.cc + libnurbs/internals/knotvector.cc + libnurbs/internals/mapdesc.cc + libnurbs/internals/mapdescv.cc + libnurbs/internals/maplist.cc + libnurbs/internals/mesher.cc + libnurbs/internals/monoTriangulationBackend.cc + libnurbs/internals/monotonizer.cc + libnurbs/internals/mycode.cc + libnurbs/internals/nurbsinterfac.cc + libnurbs/internals/nurbstess.cc + libnurbs/internals/patch.cc + libnurbs/internals/patchlist.cc + libnurbs/internals/quilt.cc + libnurbs/internals/reader.cc + libnurbs/internals/renderhints.cc + libnurbs/internals/slicer.cc + libnurbs/internals/sorter.cc + libnurbs/internals/splitarcs.cc + libnurbs/internals/subdivider.cc + libnurbs/internals/tobezier.cc + libnurbs/internals/trimline.cc + libnurbs/internals/trimregion.cc + libnurbs/internals/trimvertpool.cc + libnurbs/internals/uarray.cc + libnurbs/internals/varray.cc + libnurbs/nurbtess/directedLine.cc + libnurbs/nurbtess/gridWrap.cc + libnurbs/nurbtess/monoChain.cc + libnurbs/nurbtess/monoPolyPart.cc + libnurbs/nurbtess/monoTriangulation.cc + libnurbs/nurbtess/partitionX.cc + libnurbs/nurbtess/partitionY.cc + libnurbs/nurbtess/polyDBG.cc + libnurbs/nurbtess/polyUtil.cc + libnurbs/nurbtess/primitiveStream.cc + libnurbs/nurbtess/quicksort.cc + libnurbs/nurbtess/rectBlock.cc + libnurbs/nurbtess/sampleComp.cc + libnurbs/nurbtess/sampleCompBot.cc + libnurbs/nurbtess/sampleCompRight.cc + libnurbs/nurbtess/sampleCompTop.cc + libnurbs/nurbtess/sampleMonoPoly.cc + libnurbs/nurbtess/sampledLine.cc + libnurbs/nurbtess/searchTree.cc + libtess/dict.c + libtess/geom.c + libtess/memalloc.c + libtess/mesh.c + libtess/normal.c + libtess/priorityq.c + libtess/render.c + libtess/sweep.c + libtess/tess.c + libtess/tessmono.c + libutil/error.c + libutil/glue.c + libutil/mipmap.c + libutil/project.c + libutil/quad.c + libutil/registry.c + ${CMAKE_CURRENT_BINARY_DIR}/glu32.def) + +add_library(glu32 SHARED ${SOURCE}) + +set_entrypoint(glu32 0) + +target_link_libraries(glu32 stlport -lsupc++ -lgcc -lmingw32 -lcoldname) + +add_importlibs(glu32 + opengl32 + gdi32 + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET glu32 DESTINATION reactos/system32 FOR all) +add_importlib_target(glu32.spec) diff --git a/reactos/dll/win32/hhctrl.ocx/CMakeLists.txt b/reactos/dll/win32/hhctrl.ocx/CMakeLists.txt new file mode 100644 index 00000000000..814b5c4fe05 --- /dev/null +++ b/reactos/dll/win32/hhctrl.ocx/CMakeLists.txt @@ -0,0 +1,41 @@ + +add_definitions(-D__WINESRC__) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() +spec2def(hhctrl.ocx hhctrl.ocx.spec) + +add_library(hhctrl SHARED + chm.c + content.c + help.c + hhctrl.c + index.c + regsvr.c + search.c + stream.c + webbrowser.c + hhctrl.rc + ${CMAKE_CURRENT_BINARY_DIR}/hhctrl.def) + +set_module_type(hhctrl win32ocx) + +target_link_libraries(hhctrl uuid wine itss_guid) + +add_importlibs(hhctrl + advapi32 + comctl32 + shlwapi + ole32 + oleaut32 + user32 + gdi32 + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET hhctrl DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/hid/CMakeLists.txt b/reactos/dll/win32/hid/CMakeLists.txt new file mode 100644 index 00000000000..646fe86a22a --- /dev/null +++ b/reactos/dll/win32/hid/CMakeLists.txt @@ -0,0 +1,20 @@ + +set_unicode() + +list(APPEND SOURCE + hid.c + stubs.c + hid.rc + ${CMAKE_CURRENT_BINARY_DIR}/hid.def) + +spec2def(hid.dll hid.spec) + +add_library(hid SHARED + ${CMAKE_CURRENT_BINARY_DIR}/hid_precomp.h.gch + ${SOURCE}) + +set_module_type(hid win32dll) + +add_importlibs(hid msvcrt kernel32 ntdll) +add_pch(hid ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) +add_cd_file(TARGET hid DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/hlink/CMakeLists.txt b/reactos/dll/win32/hlink/CMakeLists.txt new file mode 100644 index 00000000000..4229f6dccb6 --- /dev/null +++ b/reactos/dll/win32/hlink/CMakeLists.txt @@ -0,0 +1,31 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(hlink.dll hlink.spec) + +list(APPEND SOURCE + browse_ctx.c + extserv.c + hlink_main.c + link.c + ${CMAKE_CURRENT_BINARY_DIR}/hlink_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/hlink.def) + +add_library(hlink SHARED ${SOURCE}) + +set_module_type(hlink win32dll) + +target_link_libraries(hlink uuid wine) + +add_importlibs(hlink + shell32 + ole32 + advapi32 + urlmon + msvcrt + kernel32 + ntdll) + +add_importlib_target(hlink.spec) +add_cd_file(TARGET hlink DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/hnetcfg/CMakeLists.txt b/reactos/dll/win32/hnetcfg/CMakeLists.txt new file mode 100644 index 00000000000..4f18dd6c391 --- /dev/null +++ b/reactos/dll/win32/hnetcfg/CMakeLists.txt @@ -0,0 +1,35 @@ + +add_definitions(-D__WINESRC__) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(hnetcfg.dll hnetcfg.spec) + +list(APPEND SOURCE + apps.c + hnetcfg.c + manager.c + policy.c + port.c + profile.c + regsvr.c + service.c + ${CMAKE_CURRENT_BINARY_DIR}/hnetcfg.def) + +add_library(hnetcfg SHARED ${SOURCE}) + +set_module_type(hnetcfg win32dll) + +target_link_libraries(hnetcfg wine uuid) + +add_importlibs(hnetcfg + ole32 + advapi32 + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET hnetcfg DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/httpapi/CMakeLists.txt b/reactos/dll/win32/httpapi/CMakeLists.txt new file mode 100644 index 00000000000..70e942e8ca9 --- /dev/null +++ b/reactos/dll/win32/httpapi/CMakeLists.txt @@ -0,0 +1,18 @@ + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(httpapi.dll httpapi.spec) + +list(APPEND SOURCE + httpapi_main.c + ${CMAKE_CURRENT_BINARY_DIR}/httpapi_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/httpapi.def) + +add_library(httpapi SHARED ${SOURCE}) + +set_module_type(httpapi win32dll) +target_link_libraries(httpapi wine) +add_importlibs(httpapi msvcrt kernel32 ntdll) +add_cd_file(TARGET httpapi DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/iccvid/CMakeLists.txt b/reactos/dll/win32/iccvid/CMakeLists.txt new file mode 100644 index 00000000000..736e776272f --- /dev/null +++ b/reactos/dll/win32/iccvid/CMakeLists.txt @@ -0,0 +1,20 @@ + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(iccvid.dll iccvid.spec) + +list(APPEND SOURCE + iccvid.c + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/iccvid.def) + +add_library(iccvid SHARED ${SOURCE}) + +set_module_type(iccvid win32dll) +target_link_libraries(iccvid wine) +add_importlibs(iccvid user32 msvcrt kernel32 ntdll) +add_cd_file(TARGET iccvid DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/icmp/CMakeLists.txt b/reactos/dll/win32/icmp/CMakeLists.txt new file mode 100644 index 00000000000..da27f38a60c --- /dev/null +++ b/reactos/dll/win32/icmp/CMakeLists.txt @@ -0,0 +1,21 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(icmp.dll icmp.spec) + +list(APPEND SOURCE + icmp_main.c + icmp.rc + ${CMAKE_CURRENT_BINARY_DIR}/icmp_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/icmp.def) + +add_library(icmp SHARED ${SOURCE}) + +set_module_type(icmp win32dll) + +target_link_libraries(icmp wine) +add_importlibs(icmp ws2_32 msvcrt kernel32 ntdll) +add_importlib_target(icmp.spec) +add_cd_file(TARGET icmp DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/imaadp32.acm/CMakeLists.txt b/reactos/dll/win32/imaadp32.acm/CMakeLists.txt new file mode 100644 index 00000000000..3693cd025ad --- /dev/null +++ b/reactos/dll/win32/imaadp32.acm/CMakeLists.txt @@ -0,0 +1,23 @@ + +add_definitions( + -D_DLL -D__USE_CRTIMP + -D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(imaadp32.acm imaadp32.acm.spec) + +list(APPEND SOURCE + imaadp32.c + ${CMAKE_CURRENT_BINARY_DIR}/imaadp32.def) + +add_library(imaadp32.acm SHARED ${SOURCE}) + +set_entrypoint(imaadp32.acm 0) +set_target_properties(imaadp32.acm PROPERTIES SUFFIX "") + +target_link_libraries(imaadp32.acm wine) + +add_importlibs(imaadp32.acm winmm user32 msvcrt kernel32 ntdll) +add_dependencies(imaadp32.acm psdk) +add_cd_file(TARGET imaadp32.acm DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/imagehlp/CMakeLists.txt b/reactos/dll/win32/imagehlp/CMakeLists.txt new file mode 100644 index 00000000000..d14eed603e5 --- /dev/null +++ b/reactos/dll/win32/imagehlp/CMakeLists.txt @@ -0,0 +1,32 @@ + +add_definitions( + -D_DLL -D__USE_CRTIMP + -D_IMAGEHLP_SOURCE_) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(imagehlp.dll imagehlp.spec) + +list(APPEND SOURCE + access.c + imagehlp_main.c + integrity.c + modify.c + imagehlp.rc + ${CMAKE_CURRENT_BINARY_DIR}/imagehlp_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/imagehlp.def) + +add_library(imagehlp SHARED + ${CMAKE_CURRENT_BINARY_DIR}/imagehlp_precomp.h.gch + ${SOURCE}) + +set_module_type(imagehlp win32dll) + +target_link_libraries(imagehlp wine) + +add_importlibs(imagehlp dbghelp msvcrt kernel32 ntdll) +add_importlib_target(imagehlp.spec) + +add_pch(imagehlp ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +add_cd_file(TARGET imagehlp DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/imm32/CMakeLists.txt b/reactos/dll/win32/imm32/CMakeLists.txt new file mode 100644 index 00000000000..dfdd313b82f --- /dev/null +++ b/reactos/dll/win32/imm32/CMakeLists.txt @@ -0,0 +1,29 @@ + +add_definitions(-D__WINESRC__) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +if(MSVC) + add_definitions(/FIwine/typeof.h) +endif() + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(imm32.dll imm32.spec) + +list(APPEND SOURCE + imm.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/imm32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/imm32.def) + +add_library(imm32 SHARED ${SOURCE}) + +set_module_type(imm32 win32dll) +target_link_libraries(imm32 wine) +add_importlibs(imm32 advapi32 user32 msvcrt kernel32 ntdll) +add_cd_file(TARGET imm32 DESTINATION reactos/system32 FOR all) +add_importlib_target(imm32.spec) diff --git a/reactos/dll/win32/inetcomm/CMakeLists.txt b/reactos/dll/win32/inetcomm/CMakeLists.txt new file mode 100644 index 00000000000..0e0a1c7d589 --- /dev/null +++ b/reactos/dll/win32/inetcomm/CMakeLists.txt @@ -0,0 +1,40 @@ + +add_definitions(-D__WINESRC__) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(inetcomm.dll inetcomm.spec) + +list(APPEND SOURCE + imaptransport.c + inetcomm_main.c + internettransport.c + mimeintl.c + mimeole.c + pop3transport.c + regsvr.c + smtptransport.c + ${CMAKE_CURRENT_BINARY_DIR}/inetcomm_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/inetcomm.def) + +add_library(inetcomm SHARED ${SOURCE}) + +set_module_type(inetcomm win32dll) + +target_link_libraries(inetcomm uuid wine) + +add_importlibs(inetcomm + ole32 + oleaut32 + ws2_32 + user32 + advapi32 + msvcrt + kernel32 + ntdll) + +add_importlib_target(inetcomm.spec) +add_cd_file(TARGET inetcomm DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/inetmib1/CMakeLists.txt b/reactos/dll/win32/inetmib1/CMakeLists.txt new file mode 100644 index 00000000000..ac98360c7ea --- /dev/null +++ b/reactos/dll/win32/inetmib1/CMakeLists.txt @@ -0,0 +1,28 @@ + +add_definitions( + -D__WINESRC__ + -D_DLL -D__USE_CRTIMP) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(inetmib1.dll inetmib1.spec) + +list(APPEND SOURCE + main.c + ${CMAKE_CURRENT_BINARY_DIR}/inetmib1_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/inetmib1.def) + +add_library(inetmib1 SHARED ${SOURCE}) + +set_module_type(inetmib1 win32dll) + +target_link_libraries(inetmib1 wine) + +add_importlibs(inetmib1 + msvcrt + snmpapi + iphlpapi + kernel32 + ntdll) + +add_cd_file(TARGET inetmib1 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/initpki/CMakeLists.txt b/reactos/dll/win32/initpki/CMakeLists.txt new file mode 100644 index 00000000000..6133df72d0c --- /dev/null +++ b/reactos/dll/win32/initpki/CMakeLists.txt @@ -0,0 +1,18 @@ + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(initpki.dll initpki.spec) + +list(APPEND SOURCE + main.c + ${CMAKE_CURRENT_BINARY_DIR}/initpki_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/initpki.def) + +add_library(initpki SHARED ${SOURCE}) + +set_module_type(initpki win32dll) +target_link_libraries(initpki wine) +add_importlibs(initpki msvcrt kernel32 ntdll) +add_cd_file(TARGET initpki DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/inseng/CMakeLists.txt b/reactos/dll/win32/inseng/CMakeLists.txt new file mode 100644 index 00000000000..69a69917248 --- /dev/null +++ b/reactos/dll/win32/inseng/CMakeLists.txt @@ -0,0 +1,30 @@ + +add_definitions(-D__WINESRC__) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(inseng.dll inseng.spec) + +list(APPEND SOURCE + inseng_main.c + regsvr.c + ${CMAKE_CURRENT_BINARY_DIR}/inseng_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/inseng.def) + +add_library(inseng SHARED ${SOURCE}) + +set_module_type(inseng win32dll) + +target_link_libraries(inseng uuid wine) + +add_importlibs(inseng + ole32 + advapi32 + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET inseng DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/iphlpapi/CMakeLists.txt b/reactos/dll/win32/iphlpapi/CMakeLists.txt new file mode 100644 index 00000000000..8bc6ca2132e --- /dev/null +++ b/reactos/dll/win32/iphlpapi/CMakeLists.txt @@ -0,0 +1,33 @@ + +set_unicode() + +add_definitions(-D_DLL -D__USE_CRTIMP) + +include_directories( + ${REACTOS_SOURCE_DIR}/include/reactos/wine + ${REACTOS_SOURCE_DIR}/dll/win32/dhcpcsvc/include + ${REACTOS_SOURCE_DIR}/lib/tdilib) + +spec2def(iphlpapi.dll iphlpapi.spec) + +list(APPEND SOURCE + dhcp_reactos.c + ifenum_reactos.c + ipstats_reactos.c + iphlpapi_main.c + media.c + registry.c + resinfo_reactos.c + route_reactos.c + iphlpapi.rc + ${CMAKE_CURRENT_BINARY_DIR}/iphlpapi_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/iphlpapi.def) + +add_library(iphlpapi SHARED ${SOURCE}) + +set_module_type(iphlpapi win32dll) + +target_link_libraries(iphlpapi wine tdilib) +add_importlibs(iphlpapi dhcpcsvc advapi32 ws2_32 msvcrt kernel32 ntdll) +add_cd_file(TARGET iphlpapi DESTINATION reactos/system32 FOR all) +add_importlib_target(iphlpapi.spec) diff --git a/reactos/dll/win32/itircl/CMakeLists.txt b/reactos/dll/win32/itircl/CMakeLists.txt new file mode 100644 index 00000000000..57cc803e403 --- /dev/null +++ b/reactos/dll/win32/itircl/CMakeLists.txt @@ -0,0 +1,20 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(itircl.dll itircl.spec) + +list(APPEND SOURCE + itircl_main.c + ${CMAKE_CURRENT_BINARY_DIR}/itircl_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/itircl.def) + +add_library(itircl SHARED ${SOURCE}) + +set_module_type(itircl win32dll) + +target_link_libraries(itircl wine) + +add_importlibs(itircl msvcrt kernel32 ntdll) +add_dependencies(itircl psdk) +add_cd_file(TARGET itircl DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/itss/CMakeLists.txt b/reactos/dll/win32/itss/CMakeLists.txt new file mode 100644 index 00000000000..fd53de89a2b --- /dev/null +++ b/reactos/dll/win32/itss/CMakeLists.txt @@ -0,0 +1,39 @@ + +add_definitions( + -D__WINESRC__ + -D_DLL -D__USE_CRTIMP) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(itss.dll itss.spec) + +list(APPEND SOURCE + chm_lib.c + lzx.c + itss.c + moniker.c + protocol.c + storage.c + rsrc.rc + #${REACTOS_BINARY_DIR}/include/reactos/wine/itss_i.c + ${CMAKE_CURRENT_BINARY_DIR}/itss_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/itss.def) + +add_library(itss SHARED ${SOURCE}) + +set_module_type(itss win32dll) + +target_link_libraries(itss uuid wine) + +add_importlibs(itss + urlmon + shlwapi + ole32 + msvcrt + kernel32 + ntdll) + +add_dependencies(itss wineheaders) +add_cd_file(TARGET itss DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/jscript/CMakeLists.txt b/reactos/dll/win32/jscript/CMakeLists.txt new file mode 100644 index 00000000000..08d53fc21e4 --- /dev/null +++ b/reactos/dll/win32/jscript/CMakeLists.txt @@ -0,0 +1,64 @@ + +add_typelib(jsglobal jsglobal.idl) +add_dependencies(jsglobal stdole2) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +add_definitions( + -D__WINESRC__ + -D_USE_MATH_DEFINES + -D_DLL + -D__USE_CRTIMP + -Disinf=!_finite + -Disnan=_isnan) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(jscript.dll jscript.spec) + +list(APPEND SOURCE + activex.c + date.c + dispex.c + engine.c + error.c + jscript.c + jscript_main.c + jsutils.c + lex.c + parser.tab.c + math.c + number.c + object.c + regexp.c + string.c + array.c + bool.c + function.c + global.c + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/jscript.def) + +add_library(jscript SHARED ${SOURCE}) + +set_module_type(jscript win32dll) + +target_link_libraries(jscript wine) +if(MSVC) + target_link_libraries(jscript uuid) +endif() + +add_importlibs(jscript + msvcrt + user32 + ole32 + oleaut32 + advapi32 + kernel32 + ntdll) + +add_dependencies(jscript jsglobal) +add_cd_file(TARGET jscript DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/kernel32/CMakeLists.txt b/reactos/dll/win32/kernel32/CMakeLists.txt new file mode 100644 index 00000000000..e94f5134b7d --- /dev/null +++ b/reactos/dll/win32/kernel32/CMakeLists.txt @@ -0,0 +1,125 @@ + +add_definitions(-D_KERNEL32_) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/subsys) + +set_rc_compiler() + +spec2def(kernel32.dll kernel32.spec) + +list(APPEND SOURCE + debug/debugger.c + debug/output.c + except/except.c + file/backup.c + file/bintype.c + file/cnotify.c + file/copy.c + file/create.c + file/curdir.c + file/delete.c + file/deviceio.c + file/dir.c + file/dosdev.c + file/file.c + file/find.c + file/hardlink.c + file/iocompl.c + file/lfile.c + file/lock.c + file/mailslot.c + file/move.c + file/npipe.c + file/pipe.c + file/rw.c + file/tape.c + file/volume.c + mem/global.c + mem/heap.c + mem/isbad.c + mem/local.c + mem/procmem.c + mem/resnotify.c + mem/section.c + mem/virtual.c + misc/actctx.c + misc/atom.c + misc/casemap.c + misc/chartype.c + misc/collation.c + misc/comm.c + misc/commdcb.c + misc/computername.c + misc/console.c + misc/dllmain.c + misc/env.c + misc/error.c + misc/fold.c + misc/format_msg.c + misc/handle.c + misc/lang.c + misc/lcformat.c + misc/ldr.c + misc/lzexpand.c + misc/muldiv.c + misc/nls.c + misc/perfcnt.c + misc/power.c + misc/profile.c + misc/recovery.c + misc/res.c + misc/sortkey.c + misc/stubs.c + misc/sysinfo.c + misc/time.c + misc/timerqueue.c + misc/toolhelp.c + misc/utils.c + misc/version.c + process/cmdline.c + process/procsup.c + process/job.c + process/proc.c + process/session.c + string/lstring.c + synch/condvar.c + synch/critical.c + synch/event.c + synch/mutex.c + synch/sem.c + synch/timer.c + synch/wait.c + thread/fiber.c + thread/fls.c + thread/thread.c + thread/tls.c + kernel32.rc + ${CMAKE_CURRENT_BINARY_DIR}/kernel32.def) + +if(ARCH MATCHES i386) +list(APPEND SOURCE + thread/i386/fiber.S + thread/i386/thread.S) +elseif(ARCH MATCHES amd64) +list(APPEND SOURCE + thread/amd64/fiber.S + thread/amd64/thread.S) +endif(ARCH MATCHES i386) + +add_library(kernel32 SHARED + ${CMAKE_CURRENT_BINARY_DIR}/kernel32_k32.h.gch + ${SOURCE}) + +set_entrypoint(kernel32 DllMain@12) +set_image_base(kernel32 ${baseaddress_kernel32}) + +target_link_libraries(kernel32 ${PSEH_LIB}) + +add_importlibs(kernel32 ntdll) +add_pch(kernel32 ${CMAKE_CURRENT_SOURCE_DIR}/k32.h ${SOURCE}) +add_dependencies(kernel32 psdk errcodes asm) +add_cd_file(TARGET kernel32 DESTINATION reactos/system32 FOR all) +add_importlib_target(kernel32.spec) diff --git a/reactos/dll/win32/kernel32/kernel32.spec b/reactos/dll/win32/kernel32/kernel32.spec new file mode 100644 index 00000000000..c0a8bf54022 --- /dev/null +++ b/reactos/dll/win32/kernel32/kernel32.spec @@ -0,0 +1,1456 @@ +@ stdcall AcquireSRWLockExclusive(ptr) ntdll.RtlAcquireSRWLockExclusive +@ stdcall AcquireSRWLockShared(ptr) ntdll.RtlAcquireSRWLockShared +@ stdcall ActivateActCtx(ptr ptr) +@ stdcall AddAtomA(str) +@ stdcall AddAtomW(wstr) +@ stdcall AddConsoleAliasA(str str str) ;check +@ stdcall AddConsoleAliasW(wstr wstr wstr) ;check +;@ stdcall -arch=x86_64 AddIntegrityLabelToBoundaryDescriptor ; Win 7 +@ stdcall AddLocalAlternateComputerNameA(str ptr) +@ stdcall AddLocalAlternateComputerNameW(wstr ptr) +@ stdcall AddRefActCtx(ptr) +;@ stdcall AddSIDToBoundaryDescriptor ; Win 7 +;@ stdcall AddSecureMemoryCacheCallback ; Win 7 +@ stdcall AddVectoredContinueHandler(long ptr) ntdll.RtlAddVectoredContinueHandler +@ stdcall AddVectoredExceptionHandler(long ptr) ntdll.RtlAddVectoredExceptionHandler +;@ stdcall AdjustCalendarDate ; Win 7 +@ stdcall AllocConsole() +;@ stub AllocLSCallback ; missing in XP SP3 and 2003 R2 and Win 7 +@ stdcall AllocateUserPhysicalPages(long ptr ptr) +;@ stdcall AllocateUserPhysicalPagesNuma ; Win 7 +;@ stdcall ApplicationRecoveryFinished ; Win 7 +;@ stdcall ApplicationRecoveryInProgress ; Win 7 +@ stdcall AreFileApisANSI() +@ stdcall AssignProcessToJobObject(ptr ptr) +@ stdcall AttachConsole(long) +@ stdcall BackupRead(ptr ptr long ptr long long ptr) +@ stdcall BackupSeek(ptr long long ptr ptr ptr) +@ stdcall BackupWrite(ptr ptr long ptr long long ptr) +@ stdcall BaseCheckAppcompatCache(long long long ptr) ;check +;@ stdcall BaseCheckAppcompatCacheEx ; Win7 +;@ stub BaseCheckRunApp ; Win7 +@ stdcall BaseCleanupAppcompatCache() ; missing in Win 7 +@ stdcall BaseCleanupAppcompatCacheSupport(ptr) +;@ stdcall BaseDllReadWriteIniFile ; Win 7 +@ stdcall BaseDumpAppcompatCache() +@ stdcall BaseFlushAppcompatCache() +;@ stdcall BaseFormatObjectAttributes ; Win 7 +;@ stdcall BaseFormatTimeOut ; Win 7 +;@ stdcall BaseGenerateAppCompatData ; Win 7 +;@ stdcall BaseGetNamedObjectDirectory ; Win 7 +@ stdcall BaseInitAppcompatCache() ; missing in Win 7 +@ stdcall BaseInitAppcompatCacheSupport() +;@ stdcall BaseIsAppcompatInfrastructureDisabled ; Win 7 +@ stdcall BaseProcessInitPostImport() ; missing in Win 7 +@ stdcall BaseQueryModuleData(str str ptr ptr ptr) ;check +;@ stdcall BaseThreadInitThunk ; Win 7 +;@ stdcall BaseSetLastNTError ; Win 7, not 64 bit (present on w2k3 but not exported) +@ stdcall BaseUpdateAppcompatCache(long long long) +;@ stdcall BaseVerifyUnicodeString ; Win 7 +;@ stdcall Basep8BitStringToDynamicUnicodeString ; Win 7 +;@ stdcall BasepAllocateActivationContextActivationBlock ; Win 7 +;@ stdcall BasepAnsiStringToDynamicUnicodeString ; Win 7 +;@ stdcall BasepCheckAppCompat ; Win 7 +;@ stdcall BasepCheckBadapp ; Win 7 +@ stdcall BasepCheckWinSaferRestrictions(long long long long long long) +;@ stub BasepDebugDump ; missing in XP SP3 and Win 7 +;@ stdcall BasepFreeActivationContextActivationBlock ; Win 7 +;@ stdcall BasepFreeAppCompatData ; Win 7 +;@ stdcall BasepMapModuleHandle ; Win 7 +@ stdcall Beep(long long) +@ stdcall BeginUpdateResourceA(str long) +@ stdcall BeginUpdateResourceW(wstr long) +@ stdcall BindIoCompletionCallback(long ptr long) +@ stdcall BuildCommDCBA(str ptr) +@ stdcall BuildCommDCBAndTimeoutsA(str ptr ptr) +@ stdcall BuildCommDCBAndTimeoutsW(wstr ptr ptr) +@ stdcall BuildCommDCBW(wstr ptr) +@ stdcall CallNamedPipeA(str ptr long ptr long ptr long) +@ stdcall CallNamedPipeW(wstr ptr long ptr long ptr long) +;@ stdcall CallbackMayRunLong ; Win 7 +@ stdcall CancelDeviceWakeupRequest(long) +@ stdcall CancelIo(long) +@ stdcall CancelIoEx(long ptr) +@ stdcall CancelSynchronousIo(long) +;@ stdcall CancelThreadpoolIo(ptr) ntdll.TpCancelAsyncIoOperation; Win 7 +@ stdcall CancelTimerQueueTimer(long long) +@ stdcall CancelWaitableTimer(long) +@ stdcall ChangeTimerQueueTimer(ptr ptr long long) +;@ stdcall CheckElevation ; Win 7 +;@ stdcall CheckElevationEnabled ; Win 7 +;@ stdcall CheckForReadOnlyResource ; Win 7 +@ stdcall CheckNameLegalDOS8Dot3A(str str long long long) +@ stdcall CheckNameLegalDOS8Dot3W(wstr str long long long) +@ stdcall CheckRemoteDebuggerPresent(long ptr) +@ stdcall ClearCommBreak(long) +@ stdcall ClearCommError(long ptr ptr) +@ stdcall CloseConsoleHandle(long) +@ stdcall CloseHandle(long) +;@ stdcall ClosePrivateNamespace ; Win 7 +@ stdcall CloseProfileUserMapping() +; @ stub CloseSystemHandle ; missing in XP SP3 and Win 7 +;@ stdcall CloseThreadpool(ptr) ntdll.TpReleasePool ; Win 7 +;@ stdcall CloseThreadpoolCleanupGroup(ptr) ntdll.TpReleaseCleanupGroup ; Win 7 +;@ stdcall CloseThreadpoolCleanupGroupMembers(ptr long ptr) ntdll.TpReleaseCleanupGroupMembers ; Win 7 +;@ stdcall CloseThreadpoolIo ntdll.TpReleaseIoCompletion ; Win 7 +;@ stdcall CloseThreadpoolTimer ntdll.TpReleaseTimer ; Win 7 +;@ stdcall CloseThreadpoolWait ntdll.TpReleaseWait ; Win 7 +;@ stdcall CloseThreadpoolWork ntdll.TpReleaseWork ; Win 7 +@ stdcall CmdBatNotification(long) +@ stdcall CommConfigDialogA(str long ptr) +@ stdcall CommConfigDialogW(wstr long ptr) +;@ stdcall CompareCalendarDates ; Win 7 +@ stdcall CompareFileTime(ptr ptr) +@ stdcall CompareStringA(long long str long str long) +;@ stdcall CompareStringEx ; Win 7 +;@ stdcall CompareStringOrdinal ; Win 7 +@ stdcall CompareStringW(long long wstr long wstr long) +@ stdcall ConnectNamedPipe(long ptr) +@ stdcall ConsoleMenuControl(long long long) +; @ stub ConsoleSubst ; missing in XP SP3 and Win 7 +@ stdcall ContinueDebugEvent(long long long) +;@ stdcall ConvertCalDateTimeToSystemTime ; Win 7 +@ stdcall ConvertDefaultLocale (long) +@ stdcall ConvertFiberToThread() +;@ stdcall ConvertNLSDayOfWeekToWin32DayOfWeek ; Win 7 +;@ stdcall ConvertSystemTimeToCalDateTime ; Win 7 +@ stdcall ConvertThreadToFiber(ptr) +@ stdcall ConvertThreadToFiberEx(ptr long) +;@ stdcall CopyExtendedContext ; Win 7 +@ stdcall CopyFileA(str str long) +@ stdcall CopyFileExA (str str ptr ptr ptr long) +@ stdcall CopyFileExW (wstr wstr ptr ptr ptr long) +;@ stdcall CopyFileTransactedA ; Win 7 +;@ stdcall CopyFileTransactedW ; Win 7 +@ stdcall CopyFileW(wstr wstr long) +@ stdcall CopyLZFile(long long) LZCopy +@ stdcall CreateActCtxA(ptr) +@ stdcall CreateActCtxW(ptr) +;@ stdcall CreateBoundaryDescriptorA ; Win 7 +;@ stdcall CreateBoundaryDescriptorW ; Win 7 +@ stdcall CreateConsoleScreenBuffer(long long ptr long ptr) +@ stdcall CreateDirectoryA(str ptr) +@ stdcall CreateDirectoryExA(str str ptr) +@ stdcall CreateDirectoryExW(wstr wstr ptr) +;@ stdcall CreateDirectoryTransactedA ; Win 7 +;@ stdcall CreateDirectoryTransactedW ; Win 7 +@ stdcall CreateDirectoryW(wstr ptr) +@ stdcall CreateEventA(ptr long long str) +@ stdcall CreateEventExA(ptr str long long) +@ stdcall CreateEventExW(ptr wstr long long) +@ stdcall CreateEventW(ptr long long wstr) +@ stdcall CreateFiber(long ptr ptr) +@ stdcall CreateFiberEx(long long long ptr ptr) +@ stdcall CreateFileA(str long long ptr long long long) +@ stdcall CreateFileMappingA(long ptr long long long str) +;@ stdcall CreateFileMappingNumaA ; Win 7 +;@ stdcall CreateFileMappingNumaW ; Win 7 +@ stdcall CreateFileMappingW(long ptr long long long wstr) +;@ stdcall CreateFileTransactedA ; Win 7 +;@ stdcall CreateFileTransactedW ; Win 7 +@ stdcall CreateFileW(wstr long long ptr long long long) +@ stdcall CreateHardLinkA(str str ptr) +;@ stdcall CreateHardLinkTransactedA ; Win 7 +;@ stdcall CreateHardLinkTransactedW ; Win 7 +@ stdcall CreateHardLinkW(wstr wstr ptr) +@ stdcall CreateIoCompletionPort(long long long long) +@ stdcall CreateJobObjectA(ptr str) +@ stdcall CreateJobObjectW(ptr wstr) +@ stdcall CreateJobSet(long ptr long) +;@ stub CreateKernelThread ; missing in XP SP3 and Win 7 +@ stdcall CreateMailslotA(ptr long long ptr) +@ stdcall CreateMailslotW(ptr long long ptr) +@ stdcall CreateMemoryResourceNotification(long) +@ stdcall CreateMutexA(ptr long str) +@ stdcall CreateMutexExA(ptr str long long) +@ stdcall CreateMutexExW(ptr wstr long long) +@ stdcall CreateMutexW(ptr long wstr) +@ stdcall CreateNamedPipeA(str long long long long long long ptr) +@ stdcall CreateNamedPipeW(wstr long long long long long long ptr) +@ stdcall CreateNlsSecurityDescriptor(ptr long long) ; missing in Win 7 +@ stdcall CreatePipe(ptr ptr ptr long) +;@ stdcall CreatePrivateNamespaceA ; Win 7 +;@ stdcall CreatePrivateNamespaceW ; Win 7 +@ stdcall CreateProcessA(str str ptr ptr long long ptr str ptr ptr) +;@ stdcall CreateProcessAsUserW ; Win 7 +@ stdcall CreateProcessInternalA(ptr str str ptr ptr long long ptr str ptr ptr long) +@ stdcall CreateProcessInternalW(ptr wstr wstr ptr ptr long long ptr wstr ptr ptr long) +@ stdcall CreateProcessInternalWSecure() ; missing in Win 7 +@ stdcall CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr) +@ stdcall CreateRemoteThread(long ptr long ptr long long ptr) +;@ stdcall CreateRemoteThreadEx api-ms-win-core-processthreads-l1-1-0.CreateRemoteThreadEx ; Win 7 +@ stdcall CreateSemaphoreA(ptr long long str) +@ stdcall CreateSemaphoreExA(ptr long long str long long) +@ stdcall CreateSemaphoreExW(ptr long long wstr long long) +@ stdcall CreateSemaphoreW(ptr long long wstr) +@ stdcall CreateSocketHandle() +@ stdcall CreateSymbolicLinkA(str str long) +;@ stdcall CreateSymbolicLinkTransactedA ; Win 7 +;@ stdcall CreateSymbolicLinkTransactedW ; Win 7 +@ stdcall CreateSymbolicLinkW(wstr wstr long) +@ stdcall CreateTapePartition(long long long long) +@ stdcall CreateThread(ptr long ptr long long ptr) +;@ stdcall CreateThreadpool ; Win 7 +;@ stdcall CreateThreadpoolCleanupGroup ; Win 7 +;@ stdcall CreateThreadpoolIo ; Win 7 +;@ stdcall CreateThreadpoolTimer ; Win 7 +;@ stdcall CreateThreadpoolWait ; Win 7 +;@ stdcall CreateThreadpoolWork ; Win 7 +@ stdcall CreateTimerQueue () +@ stdcall CreateTimerQueueTimer(ptr long ptr ptr long long long) +@ stdcall CreateToolhelp32Snapshot(long long) +;@ stdcall arch=x86_64 CreateUmsCompletionList +;@ stdcall arch=x86_64 CreateUmsThreadContext +@ stdcall CreateVirtualBuffer(long long long) ; missing in Win 7 +@ stdcall CreateWaitableTimerA(ptr long str) +@ stdcall CreateWaitableTimerExA(ptr str long long) +@ stdcall CreateWaitableTimerExW(ptr wstr long long) +@ stdcall CreateWaitableTimerW(ptr long wstr) +@ stdcall DeactivateActCtx(long ptr) +@ stdcall DebugActiveProcess(long) +@ stdcall DebugActiveProcessStop(long) +@ stdcall DebugBreak() ntdll.DbgBreakPoint +@ stdcall DebugBreakProcess(long) +@ stdcall DebugSetProcessKillOnExit(long) +@ stdcall DecodePointer(ptr) ntdll.RtlDecodePointer +@ stdcall DecodeSystemPointer(ptr) ntdll.RtlDecodeSystemPointer +@ stdcall DefineDosDeviceA(long str str) +@ stdcall DefineDosDeviceW(long wstr wstr) +@ stdcall DelayLoadFailureHook(str str) +@ stdcall DeleteAtom(long) +;@ stdcall DeleteBoundaryDescriptor ntdll.RtlDeleteBoundaryDescriptor ; Win 7 +@ stdcall DeleteCriticalSection(ptr) ntdll.RtlDeleteCriticalSection +@ stdcall DeleteFiber(ptr) +@ stdcall DeleteFileA(str) +;@ stdcall DeleteFileTransactedA ; Win 7 +;@ stdcall DeleteFileTransactedW ; Win 7 +@ stdcall DeleteFileW(wstr) +;@ stdcall DeleteProcThreadAttributeList api-ms-win-core-processthreads-l1-1-0.DeleteProcThreadAttributeList ; Win 7 +@ stdcall DeleteTimerQueue(long) +@ stdcall DeleteTimerQueueEx (long long) +@ stdcall DeleteTimerQueueTimer(long long long) +;@ stdcall -arch=x86_64 DeleteUmsCompletionList +;@ stdcall -arch=x86_64 DeleteUmsThreadContext +@ stdcall DeleteVolumeMountPointA(str) ;check +@ stdcall DeleteVolumeMountPointW(wstr) ;check +;@ stdcall -arch=x86_64 DequeueUmsCompletionListItems +@ stdcall DeviceIoControl(long long ptr long ptr long ptr ptr) +@ stdcall DisableThreadLibraryCalls(long) +;@ stdcall DisableThreadProfiling ; Win 7 +;@ stdcall DisassociateCurrentThreadFromCallback ntdll.TpDisassociateCallback ; Win 7 +@ stdcall DisconnectNamedPipe(long) +@ stdcall DnsHostnameToComputerNameA (str ptr ptr) +@ stdcall DnsHostnameToComputerNameW (wstr ptr ptr) +@ stdcall DosDateTimeToFileTime(long long ptr) +@ stdcall DosPathToSessionPathA(long str str) +@ stdcall DosPathToSessionPathW(long wstr wstr) +@ stdcall DuplicateConsoleHandle(long long long long) +@ stdcall DuplicateHandle(long long long ptr long long long) +;@ stdcall EnableThreadProfiling ; Win 7 +@ stdcall EncodePointer(ptr) ntdll.RtlEncodePointer +@ stdcall EncodeSystemPointer(ptr) ntdll.RtlEncodeSystemPointer +@ stdcall EndUpdateResourceA(long long) +@ stdcall EndUpdateResourceW(long long) +@ stdcall EnterCriticalSection(ptr) ntdll.RtlEnterCriticalSection +;@ stdcall -arch=x86_64 EnterUmsSchedulingMode +@ stdcall EnumCalendarInfoA(ptr long long long) +@ stdcall EnumCalendarInfoExA(ptr long long long) +;@ stdcall EnumCalendarInfoExEx ; Win 7 +@ stdcall EnumCalendarInfoExW(ptr long long long) +@ stdcall EnumCalendarInfoW(ptr long long long) +@ stdcall EnumDateFormatsA(ptr long long) +@ stdcall EnumDateFormatsExA(ptr long long) +;@ stdcall EnumDateFormatsExEx ; Win 7 +@ stdcall EnumDateFormatsExW(ptr long long) +@ stdcall EnumDateFormatsW(ptr long long) +@ stdcall EnumLanguageGroupLocalesA(ptr long long ptr) +@ stdcall EnumLanguageGroupLocalesW(ptr long long ptr) +@ stdcall EnumResourceLanguagesA(long str str ptr long) +;@ stdcall EnumResourceLanguagesExA ; Win 7 +;@ stdcall EnumResourceLanguagesExW ; Win 7 +@ stdcall EnumResourceLanguagesW(long wstr wstr ptr long) +@ stdcall EnumResourceNamesA(long str ptr long) +;@ stdcall EnumResourceNamesExA ; Win 7 +;@ stdcall EnumResourceNamesExW ; Win 7 +@ stdcall EnumResourceNamesW(long wstr ptr long) +@ stdcall EnumResourceTypesA(long ptr long) +;@ stdcall EnumResourceTypesExA ; Win 7 +;@ stdcall EnumResourceTypesExW ; Win 7 +@ stdcall EnumResourceTypesW(long ptr long) +@ stdcall EnumSystemCodePagesA(ptr long) +@ stdcall EnumSystemCodePagesW(ptr long) +;@ stdcall EnumSystemFirmwareTables ; Win 7 +@ stdcall EnumSystemGeoID(long long ptr) +@ stdcall EnumSystemLanguageGroupsA(ptr long ptr) +@ stdcall EnumSystemLanguageGroupsW(ptr long ptr) +@ stdcall EnumSystemLocalesA(ptr long) +;@ stdcall EnumSystemLocalesEx ; Win 7 +@ stdcall EnumSystemLocalesW(ptr long) +@ stdcall EnumTimeFormatsA(ptr long long) +;@ stdcall EnumTimeFormatsEx ; Win 7 +@ stdcall EnumTimeFormatsW(ptr long long) +@ stdcall EnumUILanguagesA(ptr long long) +@ stdcall EnumUILanguagesW(ptr long long) +@ stdcall EnumerateLocalComputerNamesA(ptr long str ptr) +@ stdcall EnumerateLocalComputerNamesW(ptr long wstr ptr) +@ stdcall EraseTape(ptr long long) +@ stdcall EscapeCommFunction(long long) +@ stdcall ExitProcess(long) ; FIXME: ntdll.RtlExitUserProcess +@ stdcall ExitThread(long) ; FIXME: ntdll.RtlExitUserThread +@ stdcall ExitVDM(long long) +@ stdcall ExpandEnvironmentStringsA(str ptr long) +@ stdcall ExpandEnvironmentStringsW(wstr ptr long) +@ stdcall ExpungeConsoleCommandHistoryA(long) +@ stdcall ExpungeConsoleCommandHistoryW(long) +@ stdcall ExtendVirtualBuffer(long long) ; missing in Win 7 +@ stdcall FatalAppExitA(long str) +@ stdcall FatalAppExitW(long wstr) +@ stdcall FatalExit(long) +@ stdcall FileTimeToDosDateTime(ptr ptr ptr) +@ stdcall FileTimeToLocalFileTime(ptr ptr) +@ stdcall FileTimeToSystemTime(ptr ptr) +@ stdcall FillConsoleOutputAttribute(long long long long ptr) +@ stdcall FillConsoleOutputCharacterA(long long long long ptr) +@ stdcall FillConsoleOutputCharacterW(long long long long ptr) +@ stdcall FindActCtxSectionGuid(long ptr long ptr ptr) +@ stdcall FindActCtxSectionStringA(long ptr long str ptr) +@ stdcall FindActCtxSectionStringW(long ptr long wstr ptr) +@ stdcall FindAtomA(str) +@ stdcall FindAtomW(wstr) +@ stdcall FindClose(long) +@ stdcall FindCloseChangeNotification(long) +@ stdcall FindFirstChangeNotificationA(str long long) +@ stdcall FindFirstChangeNotificationW(wstr long long) +@ stdcall FindFirstFileA(str ptr) +@ stdcall FindFirstFileExA(str long ptr long ptr long) +@ stdcall FindFirstFileExW(wstr long ptr long ptr long) +;@ stdcall FindFirstFileNameTransactedW ; Win 7 +;@ stdcall FindFirstFileNameW ; Win 7 +;@ stdcall FindFirstFileTransactedA ; Win 7 +;@ stdcall FindFirstFileTransactedW ; Win 7 +@ stdcall FindFirstFileW(wstr ptr) +;@ stdcall FindFirstStreamTransactedW ; Win 7 +@ stdcall FindFirstStreamW(wstr ptr ptr long) +@ stdcall FindFirstVolumeA(ptr long) +@ stdcall FindFirstVolumeMountPointA(str ptr long) +@ stdcall FindFirstVolumeMountPointW(wstr ptr long) +@ stdcall FindFirstVolumeW(ptr long) +;@ stdcall FindNLSString ; Win 7 +;@ stdcall FindNLSStringEx ; Win 7 +@ stdcall FindNextChangeNotification(long) +@ stdcall FindNextFileA(long ptr) +;@ stdcall FindNextFileNameW ; Win 7 +@ stdcall FindNextFileW(long ptr) +;@ stdcall FindNextStreamW ; Win 7 +@ stdcall FindNextVolumeA(long ptr long) +@ stdcall FindNextVolumeMountPointA(long str long) +@ stdcall FindNextVolumeMountPointW(long wstr long) +@ stdcall FindNextVolumeW(long ptr long) +@ stdcall FindResourceA(long str str) +@ stdcall FindResourceExA(long str str long) +@ stdcall FindResourceExW(long wstr wstr long) +@ stdcall FindResourceW(long wstr wstr) +;@ stdcall FindStringOrdinal ; Win 7 +@ stdcall FindVolumeClose(ptr) +@ stdcall FindVolumeMountPointClose(ptr) +;@ stdcall FlsAlloc(ptr) ; missing in XP SP3 +;@ stdcall FlsFree(long) ; missing in XP SP3 +;@ stdcall FlsGetValue(long) ; missing in XP SP3 +;@ stdcall FlsSetValue(long ptr) ; missing in XP SP3 +@ stdcall FlushConsoleInputBuffer(long) +@ stdcall FlushFileBuffers(long) +@ stdcall FlushInstructionCache(long long long) +;@ stdcall FlushProcessWriteBuffers ntdll.NtFlushProcessWriteBuffers ; Win 7 +@ stdcall FlushViewOfFile(ptr long) +@ stdcall FoldStringA(long str long ptr long) +@ stdcall FoldStringW(long wstr long ptr long) +@ stdcall FormatMessageA(long ptr long long ptr long ptr) +@ stdcall FormatMessageW(long ptr long long ptr long ptr) +@ stdcall FreeConsole() +@ stdcall FreeEnvironmentStringsA(ptr) +@ stdcall FreeEnvironmentStringsW(ptr) +@ stdcall FreeLibrary(long) +@ stdcall FreeLibraryAndExitThread(long long) +;@ stdcall FreeLibraryWhenCallbackReturns ntdll.TpCallbackUnloadDllOnCompletion ; Win 7 +@ stdcall FreeResource(long) +@ stdcall FreeUserPhysicalPages(long long long) +@ stdcall FreeVirtualBuffer(ptr) ; missing in Win 7 +@ stdcall GenerateConsoleCtrlEvent(long long) +@ stdcall GetACP() +;@ stdcall GetActiveProcessorCount ; Win 7 +;@ stdcall GetActiveProcessorGroupCount ; Win 7 +;@ stdcall GetApplicationRecoveryCallback ; Win 7 +;@ stdcall GetApplicationRestartSettings ; Win 7 +@ stdcall GetAtomNameA(long ptr long) +@ stdcall GetAtomNameW(long ptr long) +@ stdcall GetBinaryType(str ptr) GetBinaryTypeA +@ stdcall GetBinaryTypeA(str ptr) +@ stdcall GetBinaryTypeW(wstr ptr) +@ stdcall GetCPFileNameFromRegistry(long wstr long) ;check missing in Win 7 +@ stdcall GetCPInfo(long ptr) +@ stdcall GetCPInfoExA(long long ptr) +@ stdcall GetCPInfoExW(long long ptr) +;@ stdcall GetCalendarDateFormat ; Win 7 +;@ stdcall GetCalendarDateFormatEx ; Win 7 +;@ stdcall GetCalendarDaysInMonth ; Win 7 +;@ stdcall GetCalendarDifferenceInDays ; Win 7 +@ stdcall GetCalendarInfoA(long long long ptr long ptr) +;@ stdcall GetCalendarInfoEx ; Win 7 +@ stdcall GetCalendarInfoW(long long long ptr long ptr) +;@ stdcall GetCalendarMonthsInYear ; Win 7 +;@ stdcall GetCalendarSupportedDateRange ; Win 7 +;@ stdcall GetCalendarWeekNumber ; Win 7 +@ stdcall GetComPlusPackageInstallStatus() +@ stdcall GetCommConfig(long ptr long) +@ stdcall GetCommMask(long ptr) +@ stdcall GetCommModemStatus(long ptr) +@ stdcall GetCommProperties(long ptr) +@ stdcall GetCommState(long ptr) +@ stdcall GetCommTimeouts(long ptr) +@ stdcall GetCommandLineA() +@ stdcall GetCommandLineW() +@ stdcall GetCompressedFileSizeA(long ptr) +;@ stdcall GetCompressedFileSizeTransactedA ; Win 7 +;@ stdcall GetCompressedFileSizeTransactedW ; Win 7 +@ stdcall GetCompressedFileSizeW(long ptr) +@ stdcall GetComputerNameA(ptr ptr) +@ stdcall GetComputerNameExA(long ptr ptr) +@ stdcall GetComputerNameExW(long ptr ptr) +@ stdcall GetComputerNameW(ptr ptr) +@ stdcall GetConsoleAliasA(str str long str) +@ stdcall GetConsoleAliasExesA(str long) +@ stdcall GetConsoleAliasExesLengthA() +@ stdcall GetConsoleAliasExesLengthW() +@ stdcall GetConsoleAliasExesW(wstr long) +@ stdcall GetConsoleAliasW(wstr ptr long wstr) +@ stdcall GetConsoleAliasesA(str long str) +@ stdcall GetConsoleAliasesLengthA(str) +@ stdcall GetConsoleAliasesLengthW(wstr) +@ stdcall GetConsoleAliasesW(wstr long wstr) +@ stdcall GetConsoleCP() +@ stdcall GetConsoleCharType(long long ptr) +@ stdcall GetConsoleCommandHistoryA(long long long) +@ stdcall GetConsoleCommandHistoryLengthA(long) +@ stdcall GetConsoleCommandHistoryLengthW(long) +@ stdcall GetConsoleCommandHistoryW(long long long) +@ stdcall GetConsoleCursorInfo(long ptr) +@ stdcall GetConsoleCursorMode(long ptr ptr) +@ stdcall GetConsoleDisplayMode(ptr) +@ stdcall GetConsoleFontInfo(long long long ptr) +@ stdcall GetConsoleFontSize(long long) +@ stdcall GetConsoleHardwareState(long long ptr) +@ stdcall GetConsoleHistoryInfo(ptr) +@ stdcall GetConsoleInputExeNameA(long ptr) +@ stdcall GetConsoleInputExeNameW(long ptr) +@ stdcall GetConsoleInputWaitHandle() +@ stdcall GetConsoleKeyboardLayoutNameA(ptr) +@ stdcall GetConsoleKeyboardLayoutNameW(ptr) +@ stdcall GetConsoleMode(long ptr) +@ stdcall GetConsoleNlsMode(long ptr) +;@ stdcall GetConsoleOriginalTitleA ; Win 7 +;@ stdcall GetConsoleOriginalTitleW ; Win 7 +@ stdcall GetConsoleOutputCP() +@ stdcall GetConsoleProcessList(ptr long) ; missing in XP SP3 +@ stdcall GetConsoleScreenBufferInfo(long ptr) +;@ stdcall GetConsoleScreenBufferInfoEx ; Win 7 +@ stdcall GetConsoleSelectionInfo(ptr) +@ stdcall GetConsoleTitleA(ptr long) +@ stdcall GetConsoleTitleW(ptr long) +@ stdcall GetConsoleWindow() +@ stdcall GetCurrencyFormatA(long long str ptr str long) +;@ stdcall GetCurrencyFormatEx ; Win 7 +@ stdcall GetCurrencyFormatW(long long str ptr str long) +@ stdcall GetCurrentActCtx(ptr) +@ stdcall GetCurrentConsoleFont(long long ptr) +;@ stdcall GetCurrentConsoleFontEx ; Win 7 +@ stdcall GetCurrentDirectoryA(long ptr) +@ stdcall GetCurrentDirectoryW(long ptr) +@ stdcall GetCurrentProcess() +@ stdcall GetCurrentProcessId() +@ stdcall GetCurrentProcessorNumber() ntdll.RtlGetCurrentProcessorNumber +;@ stdcall GetCurrentProcessorNumberEx ntdll.RtlGetCurrentProcessorNumberEx ; Win 7 +@ stdcall GetCurrentThread() +@ stdcall GetCurrentThreadId() +;@ stdcall GetCurrentUmsThread +@ stdcall GetDateFormatA(long long ptr str ptr long) +;@ stdcall GetDateFormatEx ; Win 7 +@ stdcall GetDateFormatW(long long ptr wstr ptr long) +;@ stub GetDaylightFlag ; missing in XP SP3 and Win 7 +@ stdcall GetDefaultCommConfigA(str ptr long) +@ stdcall GetDefaultCommConfigW(wstr ptr long) +@ stdcall GetDefaultSortkeySize(ptr) ; missing in Win 7 +@ stdcall GetDevicePowerState(long ptr) +@ stdcall GetDiskFreeSpaceA(str ptr ptr ptr ptr) +@ stdcall GetDiskFreeSpaceExA (str ptr ptr ptr) +@ stdcall GetDiskFreeSpaceExW (wstr ptr ptr ptr) +@ stdcall GetDiskFreeSpaceW(wstr ptr ptr ptr ptr) +@ stdcall GetDllDirectoryA(long ptr) +@ stdcall GetDllDirectoryW(long ptr) +@ stdcall GetDriveTypeA(str) +@ stdcall GetDriveTypeW(wstr) +;@ stdcall GetDurationFormat ; Win 7 +;@ stdcall GetDurationFormatEx ; Win 7 +;@ stdcall GetDynamicTimeZoneInformation ; Win 7 +;@ stdcall GetEnabledExtendedFeatures api-ms-win-core-xstate-l1-1-0.RtlGetEnabledExtendedFeatures ; Win 7 +@ stdcall GetEnvironmentStrings() +@ stdcall GetEnvironmentStringsA() GetEnvironmentStrings +@ stdcall GetEnvironmentStringsW() +@ stdcall GetEnvironmentVariableA(str ptr long) +@ stdcall GetEnvironmentVariableW(wstr ptr long) +;@ stdcall GetEraNameCountedString ; Win 7 +@ stdcall GetErrorMode() +@ stdcall GetExitCodeProcess(long ptr) +@ stdcall GetExitCodeThread(long ptr) +@ stdcall GetExpandedNameA(str ptr) +@ stdcall GetExpandedNameW(wstr ptr) +;@ stdcall GetExtendedContextLength ; Win 7 +;@ stdcall GetExtendedFeaturesMask api-ms-win-core-xstate-l1-1-0.RtlGetExtendedFeaturesMask ; Win 7 +@ stdcall GetFileAttributesA(str) +@ stdcall GetFileAttributesByHandle(long ptr long) ; missing in Win 7 +@ stdcall GetFileAttributesExA(str long ptr) +@ stdcall GetFileAttributesExW(wstr long ptr) +;@ stdcall GetFileAttributesTransactedA ; Win 7 +;@ stdcall GetFileAttributesTransactedW ; Win 7 +@ stdcall GetFileAttributesW(wstr) +@ stdcall GetFileBandwidthReservation(long ptr ptr ptr ptr ptr) +@ stdcall GetFileInformationByHandle(long ptr) +;@ stdcall GetFileInformationByHandleEx ; Win 7 +;@ stdcall GetFileMUIInfo ; Win 7 +;@ stdcall GetFileMUIPath ; Win 7 +@ stdcall GetFileSize(long ptr) +@ stdcall GetFileSizeEx(long ptr) +@ stdcall GetFileTime(long ptr ptr ptr) +@ stdcall GetFileType(long) +@ stdcall GetFinalPathNameByHandleA(long str long long) +@ stdcall GetFinalPathNameByHandleW(long wstr long long) +@ stdcall GetFirmwareEnvironmentVariableA(str str ptr long) +@ stdcall GetFirmwareEnvironmentVariableW(wstr wstr ptr long) +@ stdcall GetFullPathNameA(str long ptr ptr) +;@ stdcall GetFullPathNameTransactedA ; Win 7 +;@ stdcall GetFullPathNameTransactedW ; Win 7 +@ stdcall GetFullPathNameW(wstr long ptr ptr) +@ stdcall GetGeoInfoA(long long ptr long long) +@ stdcall GetGeoInfoW(long long ptr long long) +@ stdcall GetHandleContext(long) ; missing on x64 +@ stdcall GetHandleInformation(long ptr) +;@ stub GetSCallbackTarget ; missing in XP SP3 and Win 7 +;@ stub GetSCallbackTemplate ; missing in XP SP3 and Win 7 +@ stdcall GetLargePageMinimum() +@ stdcall GetLargestConsoleWindowSize(long) +@ stdcall GetLastError() ntdll.RtlGetLastWin32Error +@ stdcall GetLinguistLangSize(ptr) ; missing in Win 7 +@ stdcall GetLocalTime(ptr) +@ stdcall GetLocaleInfoA(long long ptr long) +@ stdcall GetLocaleInfoEx(wstr long wstr long) ; Vista+ +@ stdcall GetLocaleInfoW(long long ptr long) +@ stdcall GetLogicalDriveStringsA(long ptr) +@ stdcall GetLogicalDriveStringsW(long ptr) +@ stdcall GetLogicalDrives() +@ stdcall GetLogicalProcessorInformation(ptr ptr) +;@ stdcall GetLogicalProcessorInformationEx api-ms-win-core-sysinfo-l1-1-0.GetLogicalProcessorInformationEx ; Win 7 +@ stdcall GetLongPathNameA (str long long) +;@ stdcall GetLongPathNameTransactedA ; Win 7 +;@ stdcall GetLongPathNameTransactedW ; Win 7 +@ stdcall GetLongPathNameW (wstr long long) +@ stdcall GetMailslotInfo(long ptr ptr ptr ptr) +;@ stdcall GetMaximumProcessorCount ; Win 7 +;@ stdcall GetMaximumProcessorGroupCount ; Win 7 +@ stdcall GetModuleFileNameA(long ptr long) +@ stdcall GetModuleFileNameW(long ptr long) +@ stdcall GetModuleHandleA(str) +@ stdcall GetModuleHandleExA(long ptr ptr) +@ stdcall GetModuleHandleExW(long ptr ptr) +@ stdcall GetModuleHandleW(wstr) +;@ stdcall GetNLSVersion ; Win 7 +;@ stdcall GetNLSVersionEx ; Win 7 +;@ stdcall GetNamedPipeAttribute ; Win 7 +;@ stdcall GetNamedPipeClientComputerNameA ; Win 7 +;@ stdcall GetNamedPipeClientComputerNameW ; Win 7 +;@ stdcall GetNamedPipeClientProcessId ; Win 7 +;@ stdcall GetNamedPipeClientSessionId ; Win 7 +@ stdcall GetNamedPipeHandleStateA(long ptr ptr ptr ptr str long) +@ stdcall GetNamedPipeHandleStateW(long ptr ptr ptr ptr wstr long) +@ stdcall GetNamedPipeInfo(long ptr ptr ptr ptr) +;@ stdcall GetNamedPipeServerProcessId ; Win 7 +;@ stdcall GetNamedPipeServerSessionId ; Win 7 +@ stdcall GetNativeSystemInfo(ptr) +;@ stdcall -arch=x86_64 GetNextUmsListItem +@ stdcall GetNextVDMCommand(long) +@ stdcall GetNlsSectionName(long long long str str long) ; missing in Win 7 +@ stdcall GetNumaAvailableMemory(ptr long ptr) ; missing in Win 7 +@ stdcall GetNumaAvailableMemoryNode(long ptr) +;@ stdcall GetNumaAvailableMemoryNodeEx ; Win 7 +@ stdcall GetNumaHighestNodeNumber(ptr) +;@ stdcall GetNumaNodeNumberFromHandle ; Win 7 +@ stdcall GetNumaNodeProcessorMask(long ptr) +;@ stdcall GetNumaNodeProcessorMaskEx ; Win 7 +@ stdcall GetNumaProcessorMap(ptr long ptr) ; missing in Win 7 +@ stdcall GetNumaProcessorNode(long ptr) +;@ stdcall GetNumaProcessorNodeEx ; Win 7 +;@ stdcall GetNumaProximityNode ; Win 7 +;@ stdcall GetNumaProximityNodeEx ; Win 7 +@ stdcall GetNumberFormatA(long long str ptr ptr long) +;@ stdcall GetNumberFormatEx ; Win 7 +@ stdcall GetNumberFormatW(long long wstr ptr ptr long) +@ stdcall GetNumberOfConsoleFonts() +@ stdcall GetNumberOfConsoleInputEvents(long ptr) +@ stdcall GetNumberOfConsoleMouseButtons(ptr) +@ stdcall GetOEMCP() +@ stdcall GetOverlappedResult(long ptr ptr long) +;@ stdcall GetPhysicallyInstalledSystemMemory ; Win 7 +@ stdcall GetPriorityClass(long) +@ stdcall GetPrivateProfileIntA(str str long str) +@ stdcall GetPrivateProfileIntW(wstr wstr long wstr) +@ stdcall GetPrivateProfileSectionA(str ptr long str) +@ stdcall GetPrivateProfileSectionNamesA(ptr long str) +@ stdcall GetPrivateProfileSectionNamesW(ptr long wstr) +@ stdcall GetPrivateProfileSectionW(wstr ptr long wstr) +@ stdcall GetPrivateProfileStringA(str str str ptr long str) +@ stdcall GetPrivateProfileStringW(wstr wstr wstr ptr long wstr) +@ stdcall GetPrivateProfileStructA (str str ptr long str) +@ stdcall GetPrivateProfileStructW(wstr wstr ptr long wstr) +@ stdcall GetProcAddress(long str) +@ stdcall GetProcessAffinityMask(long ptr ptr) +;@ stdcall GetProcessFlags(long) +;@ stdcall GetProcessDEPPolicy ; Win 7 +;@ stdcall GetProcessGroupAffinity ; Win 7 +@ stdcall GetProcessHandleCount(long ptr) +@ stdcall GetProcessHeap() +@ stdcall GetProcessHeaps(long ptr) +@ stdcall GetProcessId(long) +;@ stdcall GetProcessIdOfThread ; Win 7 +@ stdcall GetProcessIoCounters(long ptr) +;@ stdcall GetProcessPreferredUILanguages ; Win 7 +@ stdcall GetProcessPriorityBoost(long ptr) +@ stdcall GetProcessShutdownParameters(ptr ptr) +@ stdcall GetProcessTimes(long ptr ptr ptr ptr) +@ stdcall GetProcessVersion(long) +@ stdcall GetProcessWorkingSetSize(long ptr ptr) +;@ stdcall GetProcessWorkingSetSizeEx ; Win 7 +;@ stdcall GetProcessorSystemCycleTime ; Win 7 +;@ stdcall GetProductInfo(long long long long ptr) ; Win 7 +;@ stub GetProductName +@ stdcall GetProfileIntA(str str long) +@ stdcall GetProfileIntW(wstr wstr long) +@ stdcall GetProfileSectionA(str ptr long) +@ stdcall GetProfileSectionW(wstr ptr long) +@ stdcall GetProfileStringA(str str str ptr long) +@ stdcall GetProfileStringW(wstr wstr wstr ptr long) +@ stdcall GetQueuedCompletionStatus(long ptr ptr ptr long) +;@ stdcall GetQueuedCompletionStatusEx ; Win 7 +;@ stub GetLSCallbackTarget ; missing in XP SP3 and Win 7 +;@ stub GetLSCallbackTemplate ; missing in XP SP3 and Win 7 +@ stdcall GetShortPathNameA(str ptr long) +@ stdcall GetShortPathNameW(wstr ptr long) +@ stdcall GetStartupInfoA(ptr) +@ stdcall GetStartupInfoW(ptr) +@ stdcall GetStdHandle(long) +;@ stdcall GetStringScripts ; Win 7 +@ stdcall GetStringTypeA(long long str long ptr) +@ stdcall GetStringTypeExA(long long str long ptr) +@ stdcall GetStringTypeExW(long long wstr long ptr) +@ stdcall GetStringTypeW(long wstr long ptr) +;@ stdcall GetSystemDEPPolicy ; Win 7 +@ stdcall GetSystemDefaultLCID() +@ stdcall GetSystemDefaultLangID() +;@ stdcall GetSystemDefaultLocaleName ; Win 7 +@ stdcall GetSystemDefaultUILanguage() +@ stdcall GetSystemDirectoryA(ptr long) +@ stdcall GetSystemDirectoryW(ptr long) +;@ stdcall GetSystemFileCacheSize ; Win 7 +;@ stdcall GetSystemFirmwareTable ; Win 7 +@ stdcall GetSystemInfo(ptr) +@ stdcall GetSystemPowerStatus(ptr) +;@ stdcall GetSystemPreferredUILanguages ; Win 7 +@ stdcall GetSystemRegistryQuota(ptr ptr) +@ stdcall GetSystemTime(ptr) +@ stdcall GetSystemTimeAdjustment(ptr ptr ptr) +@ stdcall GetSystemTimeAsFileTime(ptr) +@ stdcall GetSystemTimes(ptr ptr ptr) +@ stdcall GetSystemWindowsDirectoryA(ptr long) +@ stdcall GetSystemWindowsDirectoryW(ptr long) +@ stdcall GetSystemWow64DirectoryA(ptr long) +@ stdcall GetSystemWow64DirectoryW(ptr long) +@ stdcall GetTapeParameters(ptr long ptr ptr) +@ stdcall GetTapePosition(ptr long ptr ptr ptr) +@ stdcall GetTapeStatus(ptr) +@ stdcall GetTempFileNameA(str str long ptr) +@ stdcall GetTempFileNameW(wstr wstr long ptr) +@ stdcall GetTempPathA(long ptr) +@ stdcall GetTempPathW(long ptr) +@ stdcall GetThreadContext(long ptr) +;@ stdcall GetThreadErrorMode() ; Win 7 +;@ stdcall GetThreadGroupAffinity ; Win 7 +@ stdcall GetThreadIOPendingFlag(long ptr) +@ stdcall GetThreadId(ptr) +;@ stdcall GetThreadIdealProcessorEx ; Win 7 +@ stdcall GetThreadLocale() +;@ stdcall GetThreadPreferredUILanguages ; Win 7 +@ stdcall GetThreadPriority(long) +@ stdcall GetThreadPriorityBoost(long ptr) +@ stdcall GetThreadSelectorEntry(long long ptr) +@ stdcall GetThreadTimes(long ptr ptr ptr ptr) +;@ stdcall GetThreadUILanguage ; Win 7 +@ stdcall GetTickCount() +@ stdcall -ret64 GetTickCount64() +@ stdcall GetTimeFormatA(long long ptr str ptr long) +;@ stdcall GetTimeFormatEx ; Win 7 +@ stdcall GetTimeFormatW(long long ptr wstr ptr long) +@ stdcall GetTimeZoneInformation(ptr) +;@ stdcall GetTimeZoneInformationForYear ; Win 7 +;@ stdcall GetUILanguageInfo ; Win 7 +;@ stdcall -arch=x86_64 GetUmsCompletionListEvent +@ stdcall GetUserDefaultLCID() +@ stdcall GetUserDefaultLangID() +;@ stdcall GetUserDefaultLocaleName ; Win 7 +@ stdcall GetUserDefaultUILanguage() +@ stdcall GetUserGeoID(long) +;@ stdcall GetUserPreferredUILanguages ; Win 7 +@ stdcall GetVDMCurrentDirectories(long long) +@ stdcall GetVersion() +@ stdcall GetVersionExA(ptr) +@ stdcall GetVersionExW(ptr) +@ stdcall GetVolumeInformationA(str ptr long ptr ptr ptr ptr long) +;@ stdcall GetVolumeInformationByHandleW ; Win 7 +@ stdcall GetVolumeInformationW(wstr ptr long ptr ptr ptr ptr long) +@ stdcall GetVolumeNameForVolumeMountPointA(str ptr long) +@ stdcall GetVolumeNameForVolumeMountPointW(wstr ptr long) +@ stdcall GetVolumePathNameA(str ptr long) +@ stdcall GetVolumePathNameW(wstr ptr long) +@ stdcall GetVolumePathNamesForVolumeNameA(str str long ptr) +@ stdcall GetVolumePathNamesForVolumeNameW(wstr wstr long ptr) +@ stdcall GetWindowsDirectoryA(ptr long) +@ stdcall GetWindowsDirectoryW(ptr long) +@ stdcall GetWriteWatch(long ptr long ptr ptr ptr) +@ stdcall GlobalAddAtomA(str) +@ stdcall GlobalAddAtomW(wstr) +@ stdcall GlobalAlloc(long long) +@ stdcall GlobalCompact(long) +@ stdcall GlobalDeleteAtom(long) +@ stdcall GlobalFindAtomA(str) +@ stdcall GlobalFindAtomW(wstr) +@ stdcall GlobalFix(long) +@ stdcall GlobalFlags(long) +@ stdcall GlobalFree(long) +@ stdcall GlobalGetAtomNameA(long ptr long) +@ stdcall GlobalGetAtomNameW(long ptr long) +@ stdcall GlobalHandle(ptr) +@ stdcall GlobalLock(long) +@ stdcall GlobalMemoryStatus(ptr) +@ stdcall GlobalMemoryStatusEx(ptr) +@ stdcall GlobalReAlloc(long long long) +@ stdcall GlobalSize(long) +@ stdcall GlobalUnWire(long) +@ stdcall GlobalUnfix(long) +@ stdcall GlobalUnlock(long) +@ stdcall GlobalWire(long) +@ stdcall Heap32First(ptr long long) +@ stdcall Heap32ListFirst(long ptr) +@ stdcall Heap32ListNext(long ptr) +@ stdcall Heap32Next(ptr) +@ stdcall HeapAlloc(long long long) ntdll.RtlAllocateHeap +@ stdcall HeapCompact(long long) +@ stdcall HeapCreate(long long long) +@ stdcall HeapCreateTagsW(long long wstr wstr) ; missing in Win 7 +@ stdcall HeapDestroy(long) +@ stdcall HeapExtend(long long ptr long) ; missing in Win 7 +@ stdcall HeapFree(long long long) ntdll.RtlFreeHeap +@ stdcall HeapLock(long) +@ stdcall HeapQueryInformation(long long ptr long ptr) +@ stdcall HeapQueryTagW(long long long long ptr) ; missing in Win 7 +@ stdcall HeapReAlloc(long long ptr long) ntdll.RtlReAllocateHeap +;@ stub HeapSetFlags ; missing in XP SP3 and Win 7 +@ stdcall HeapSetInformation(ptr long ptr long) +@ stdcall HeapSize(long long ptr) ntdll.RtlSizeHeap +@ stdcall HeapSummary(long long ptr) +@ stdcall HeapUnlock(long) +@ stdcall HeapUsage(long long long long ptr) ; missing in Win 7 +@ stdcall HeapValidate(long long ptr) +@ stdcall HeapWalk(long ptr) +;@ stdcall IdnToAscii ; Win 7 +;@ stdcall IdnToNameprepUnicode ; Win 7 +;@ stdcall IdnToUnicode ; Win 7 +@ stdcall InitAtomTable(long) +;@ stdcall InitOnceBeginInitialize ; Win 7 +;@ stdcall InitOnceComplete ; Win 7 +;@ stdcall InitOnceExecuteOnce ; Win 7 +;@ stdcall InitOnceInitialize ntdll.RtlRunOnceInitialize ; Win 7 +;@ stdcall InitializeConditionVariable ntdll.RtlInitializeConditionVariable ; Win 7 +@ stdcall InitializeCriticalSection(ptr) ; FIXME: ntdll.RtlInitializeCriticalSection +@ stdcall InitializeCriticalSectionAndSpinCount(ptr long) +@ stdcall InitializeCriticalSectionEx(ptr long long) +;@ stdcall InitializeExtendedContext ; Win 7 +;@ stdcall InitializeProcThreadAttributeList api-ms-win-core-processthreads-l1-1-0.InitializeProcThreadAttributeList ; Win 7 +@ stdcall InitializeSListHead(ptr) ntdll.RtlInitializeSListHead +@ stdcall InitializeSRWLock(ptr) ntdll.RtlInitializeSRWLock +@ stdcall -arch=i386 InterlockedCompareExchange (ptr long long) +;@ stdcall -arch=i386 -ret64 InterlockedCompareExchange64(ptr double double) ntdll.RtlInterlockedCompareExchange64 +@ stdcall -arch=i386 InterlockedDecrement(ptr) +@ stdcall -arch=i386 InterlockedExchange(ptr long) +@ stdcall -arch=i386 InterlockedExchangeAdd (ptr long ) +@ stdcall InterlockedFlushSList(ptr) ntdll.RtlInterlockedFlushSList +@ stdcall -arch=i386 InterlockedIncrement(ptr) +@ stdcall InterlockedPopEntrySList(ptr) ntdll.RtlInterlockedPopEntrySList +@ stdcall InterlockedPushEntrySList(ptr ptr) ntdll.RtlInterlockedPushEntrySList +;@ stdcall InterlockedPushListSList ntdll.RtlInterlockedPushListSList ; Win 7 +@ stdcall InvalidateConsoleDIBits(long long) +;@ stub InvalidateNSCache ; missing in XP SP3 and Win 7 +@ stdcall IsBadCodePtr(ptr) +@ stdcall IsBadHugeReadPtr(ptr long) +@ stdcall IsBadHugeWritePtr(ptr long) +@ stdcall IsBadReadPtr(ptr long) +@ stdcall IsBadStringPtrA(ptr long) +@ stdcall IsBadStringPtrW(ptr long) +@ stdcall IsBadWritePtr(ptr long) +;@ stdcall IsCalendarLeapDay ; Win 7 +;@ stdcall IsCalendarLeapMonth ; Win 7 +;@ stdcall IsCalendarLeapYear ; Win 7 +@ stdcall IsDBCSLeadByte(long) +@ stdcall IsDBCSLeadByteEx(long long) +@ stdcall IsDebuggerPresent() +;@ stdcall IsNLSDefinedString ; Win 7 +;@ stdcall IsNormalizedString ; Win 7 +@ stdcall IsProcessInJob(long long ptr) +@ stdcall IsProcessorFeaturePresent(long) +@ stdcall IsSystemResumeAutomatic() +@ stdcall IsThreadAFiber() +;@ stdcall IsThreadAFiber ; Win 7 +;@ stdcall IsThreadpoolTimerSet ntdll.TpIsTimerSet ; Win 7 +;@ stdcall IsTimeZoneRedirectionEnabled ; Win 7 +;@ stdcall IsValidCalDateTime ; Win 7 +@ stdcall IsValidCodePage(long) +@ stdcall IsValidLanguageGroup(long long) +@ stdcall IsValidLocale(long long) +;@ stdcall IsValidLocaleName ; Win 7 +@ stdcall IsValidUILanguage(long) ; missing in Win 7 +@ stdcall IsWow64Process(ptr ptr) +;@ stdcall K32EmptyWorkingSet ; Win 7 +;@ stdcall K32EnumDeviceDrivers ; Win 7 +;@ stdcall K32EnumPageFilesA ; Win 7 +;@ stdcall K32EnumPageFilesW ; Win 7 +;@ stdcall K32EnumProcessModules ; Win 7 +;@ stdcall K32EnumProcessModulesEx ; Win 7 +;@ stdcall K32EnumProcesses ; Win 7 +;@ stdcall K32GetDeviceDriverBaseNameA ; Win 7 +;@ stdcall K32GetDeviceDriverBaseNameW ; Win 7 +;@ stdcall K32GetDeviceDriverFileNameA ; Win 7 +;@ stdcall K32GetDeviceDriverFileNameW ; Win 7 +;@ stdcall K32GetMappedFileNameA ; Win 7 +;@ stdcall K32GetMappedFileNameW ; Win 7 +;@ stdcall K32GetModuleBaseNameA ; Win 7 +;@ stdcall K32GetModuleBaseNameW ; Win 7 +;@ stdcall K32GetModuleFileNameExA ; Win 7 +;@ stdcall K32GetModuleFileNameExW ; Win 7 +;@ stdcall K32GetModuleInformation ; Win 7 +;@ stdcall K32GetPerformanceInfo ; Win 7 +;@ stdcall K32GetProcessImageFileNameA ; Win 7 +;@ stdcall K32GetProcessImageFileNameW ; Win 7 +;@ stdcall K32GetProcessMemoryInfo ; Win 7 +;@ stdcall K32GetWsChanges ; Win 7 +;@ stdcall K32GetWsChangesEx ; Win 7 +;@ stdcall K32InitializeProcessForWsWatch ; Win 7 +;@ stdcall K32QueryWorkingSet ; Win 7 +;@ stdcall K32QueryWorkingSetEx ; Win 7 +@ stdcall LCIDToLocaleName(long wstr long long) ; needed for wine gecko; missing in XP SP3 +@ stdcall LCMapStringA(long long str long ptr long) +;@ stdcall LCMapStringEx ; Win 7 +@ stdcall LCMapStringW(long long wstr long ptr long) +@ stdcall LZClose(long) +;@ stdcall LZCloseFile ; Win 7 +@ stdcall LZCopy(long long) +;@ stdcall LZCreateFileW ; Win 7 +@ stdcall LZDone() +@ stdcall LZInit(long) +@ stdcall LZOpenFileA(str ptr long) +@ stdcall LZOpenFileW(wstr ptr long) +@ stdcall LZRead(long str long) +@ stdcall LZSeek(long long long) +@ stdcall LZStart() +@ stdcall LeaveCriticalSection(ptr) ntdll.RtlLeaveCriticalSection +;@ stdcall LeaveCriticalSectionWhenCallbackReturns ntdll.TpCallbackLeaveCriticalSectionOnCompletion ; Win 7 +;@ stdcall LoadAppInitDlls ; Win 7 +@ stdcall LoadLibraryA(str) +@ stdcall LoadLibraryExA( str long long) +@ stdcall LoadLibraryExW(wstr long long) +@ stdcall LoadLibraryW(wstr) +@ stdcall LoadModule(str ptr) +@ stdcall LoadResource(long long) +;@ stdcall LoadStringBaseExW ; Win 7 +;@ stdcall LoadStringBaseW ; Win 7 +@ stdcall LocalAlloc(long long) +@ stdcall LocalCompact(long) +@ stdcall LocalFileTimeToFileTime(ptr ptr) +@ stdcall LocalFlags(long) +@ stdcall LocalFree(long) +@ stdcall LocalHandle(ptr) +@ stdcall LocalLock(long) +@ stdcall LocalReAlloc(long long long) +@ stdcall LocalShrink(long long) +@ stdcall LocalSize(long) +@ stdcall LocalUnlock(long) +;@ stub LocaleNameToLCID ; missing in XP SP3 +;@ stdcall LocateExtendedFeature api-ms-win-core-xstate-l1-1-0.RtlLocateExtendedFeature ; Win 7 +;@ stdcall LocateLegacyContext api-ms-win-core-xstate-l1-1-0.RtlLocateLegacyContext ; Win 7 +@ stdcall LockFile(long long long long long) +@ stdcall LockFileEx(long long long long long ptr) +@ stdcall LockResource(long) +;@ stdcall MakeCriticalSectionGlobal(ptr) // ??? +@ stdcall MapUserPhysicalPages(ptr long ptr) +@ stdcall MapUserPhysicalPagesScatter(ptr long ptr) +@ stdcall MapViewOfFile(long long long long long) +@ stdcall MapViewOfFileEx(long long long long long ptr) +;@ stdcall MapViewOfFileExNuma ; Win 7 +@ stdcall Module32First(long ptr) +@ stdcall Module32FirstW(long ptr) +@ stdcall Module32Next(long ptr) +@ stdcall Module32NextW(long ptr) +@ stdcall MoveFileA(str str) +@ stdcall MoveFileExA(str str long) +@ stdcall MoveFileExW(wstr wstr long) +;@ stdcall MoveFileTransactedA ; Win 7 +;@ stdcall MoveFileTransactedW ; Win 7 +@ stdcall MoveFileW(wstr wstr) +@ stdcall MoveFileWithProgressA(str str ptr ptr long) +@ stdcall MoveFileWithProgressW(wstr wstr ptr ptr long) +@ stdcall MulDiv(long long long) +@ stdcall MultiByteToWideChar(long long str long ptr long) +@ stdcall NeedCurrentDirectoryForExePathA(str) +@ stdcall NeedCurrentDirectoryForExePathW(wstr) +;@ stdcall NlsCheckPolicy ; Win 7 +@ stdcall NlsConvertIntegerToString(long long long wstr long) ; missing in Win 7 +;@ stdcall NlsEventDataDescCreate ; Win 7 +@ stdcall NlsGetCacheUpdateCount() +;@ stub NlsResetProcessLocale ; missing in XP SP3 and Win 7 +;@ stdcall NlsUpdateLocale ; Win 7 +;@ stdcall NlsUpdateSystemLocale ; Win 7 +;@ stdcall NlsWriteEtwEvent ; Win 7 +;@ stdcall NormalizeString ; Win 7 +;@ stdcall NotifyMountMgr ; Win 7 +;@ stub NotifyNLSUserCache ; missing in XP SP3 and win 7 +;@ stdcall NotifyUILanguageChange ; Win 7 +@ stdcall NumaVirtualQueryNode(long long long long) ; missing in win 7 +@ stdcall OpenConsoleW(wstr long long long) +@ stdcall OpenDataFile(long long) ; missing in Win 7 +@ stdcall OpenEventA(long long str) +@ stdcall OpenEventW(long long wstr) +@ stdcall OpenFile(str ptr long) +;@ stdcall OpenFileById ; Win 7 +@ stdcall OpenFileMappingA(long long str) +@ stdcall OpenFileMappingW(long long wstr) +@ stdcall OpenJobObjectA(long long str) +@ stdcall OpenJobObjectW(long long wstr) +@ stdcall OpenMutexA(long long str) +@ stdcall OpenMutexW(long long wstr) +;@ stdcall OpenPrivateNamespaceA ; Win 7 +;@ stdcall OpenPrivateNamespaceW ; Win 7 +@ stdcall OpenProcess(long long long) +;@ stdcall OpenProcessToken api-ms-win-core-processthreads-l1-1-0.OpenProcessToken ; Win 7 +@ stdcall OpenProfileUserMapping() +@ stdcall OpenSemaphoreA(long long str) +@ stdcall OpenSemaphoreW(long long wstr) +@ stdcall OpenThread(long long long) +;@ stdcall OpenThreadToken api-ms-win-core-processthreads-l1-1-0.OpenThreadToken ; win 7 +@ stdcall OpenWaitableTimerA(long long str) +@ stdcall OpenWaitableTimerW(long long wstr) +@ stdcall OutputDebugStringA(str) +@ stdcall OutputDebugStringW(wstr) +@ stdcall PeekConsoleInputA(ptr ptr long ptr) +@ stdcall PeekConsoleInputW(ptr ptr long ptr) +@ stdcall PeekNamedPipe(long ptr long ptr ptr ptr) +@ stdcall PostQueuedCompletionStatus(long long ptr ptr) +;@ stdcall PowerClearRequest ; Win 7 +;@ stdcall PowerCreateRequest ; Win 7 +;@ stdcall PowerSetRequest ; Win 7 +@ stdcall PrepareTape(ptr long long) +@ stdcall PrivCopyFileExW(wstr wstr ptr ptr long long) +@ stdcall PrivMoveFileIdentityW(long long long) +@ stdcall Process32First (ptr ptr) +@ stdcall Process32FirstW (ptr ptr) +@ stdcall Process32Next (ptr ptr) +@ stdcall Process32NextW (ptr ptr) +@ stdcall ProcessIdToSessionId(long ptr) +@ stdcall PulseEvent(long) +@ stdcall PurgeComm(long long) +;@ stdcall QueryActCtxSettingsW ; Win 7 +;@ stdcall QueryActCtxW(long ptr ptr long ptr long ptr) +@ stdcall QueryActCtxW(long ptr ptr long ptr long ptr) +@ stdcall QueryDepthSList(ptr) ntdll.RtlQueryDepthSList +@ stdcall QueryDosDeviceA(str ptr long) +@ stdcall QueryDosDeviceW(wstr ptr long) +@ stdcall QueryFullProcessImageNameA(ptr long str ptr) ; Vista and later +@ stdcall QueryFullProcessImageNameW(ptr long wstr ptr) ; Vista and later +;@ stdcall QueryIdleProcessorCycleTime ; Win 7 +;@ stdcall QueryIdleProcessorCycleTimeEx ; Win 7 +@ stdcall QueryInformationJobObject(long long ptr long ptr) +@ stdcall QueryMemoryResourceNotification(ptr ptr) +;@ stub QueryNumberOfEventLogRecords ; missing in XP SP3 and Win 7 +;@ stub QueryOldestEventLogRecord ; missing in XP SP3 and Win 7 +@ stdcall QueryPerformanceCounter(ptr) +@ stdcall QueryPerformanceFrequency(ptr) +;@ stdcall QueryProcessAffinityUpdateMode ; Win 7 +;@ stdcall QueryProcessCycleTime ; Win 7 +;@ stdcall QueryThreadCycleTime ; Win 7 +;@ stdcall QueryThreadProfiling ; Win 7 +;@ stdcall QueryThreadpoolStackInformation ; Win 7 +;@ stdcall -arch=x86_64 QueryUmsThreadInformation +;@ stdcall QueryUnbiasedInterruptTime ; Win 7 +@ stdcall QueryWin31IniFilesMappedToRegistry(long long long long) ; missing in Win 7 +@ stdcall QueueUserAPC(ptr long long) +@ stdcall QueueUserWorkItem(ptr ptr long) +@ stdcall RaiseException(long long long ptr) +;@ stdcall RaiseFailFastException ; Win 7 +@ stdcall ReOpenFile(ptr long long long) +@ stdcall ReadConsoleA(long ptr long ptr ptr) +@ stdcall ReadConsoleInputA(long ptr long ptr) +@ stdcall ReadConsoleInputExA(long ptr long ptr long) +@ stdcall ReadConsoleInputExW(long ptr long ptr long) +@ stdcall ReadConsoleInputW(long ptr long ptr) +@ stdcall ReadConsoleOutputA(long ptr long long ptr) +@ stdcall ReadConsoleOutputAttribute(long ptr long long ptr) +@ stdcall ReadConsoleOutputCharacterA(long ptr long long ptr) +@ stdcall ReadConsoleOutputCharacterW(long ptr long long ptr) +@ stdcall ReadConsoleOutputW(long ptr long long ptr) +@ stdcall ReadConsoleW(long ptr long ptr ptr) +@ stdcall ReadDirectoryChangesW(long ptr long long long ptr ptr ptr) +@ stdcall ReadFile(long ptr long ptr ptr) +@ stdcall ReadFileEx(long ptr long ptr ptr) +@ stdcall ReadFileScatter(long ptr long ptr ptr) +@ stdcall ReadProcessMemory(long ptr ptr long ptr) +;@ stdcall ReadThreadProfilingData ; Win 7 +;@ stdcall RegCloseKey ; Win 7 +;@ stdcall RegCreateKeyExA ; Win 7 +;@ stdcall RegCreateKeyExW ; Win 7 +;@ stdcall RegDeleteKeyExA ; Win 7 +;@ stdcall RegDeleteKeyExW ; Win 7 +;@ stdcall RegDeleteTreeA ; Win 7 +;@ stdcall RegDeleteTreeW ; Win 7 +;@ stdcall RegDeleteValueA ; Win 7 +;@ stdcall RegDeleteValueW ; Win 7 +;@ stdcall RegDisablePredefinedCacheEx ; Win 7 +;@ stdcall RegEnumKeyExA ; Win 7 +;@ stdcall RegEnumKeyExW ; Win 7 +;@ stdcall RegEnumValueA ; Win 7 +;@ stdcall RegEnumValueW ; Win 7 +;@ stdcall RegFlushKey ; Win 7 +;@ stdcall RegGetKeySecurity ; Win 7 +;@ stdcall RegGetValueA ; Win 7 +;@ stdcall RegGetValueW ; Win 7 +;@ stdcall RegKrnGetGlobalState ; Win 7 +;@ stdcall RegKrnInitialize ; Win 7 +;@ stdcall RegLoadKeyA ; Win 7 +;@ stdcall RegLoadKeyW ; Win 7 +;@ stdcall RegLoadMUIStringA ; Win 7 +;@ stdcall RegLoadMUIStringW ; Win 7 +;@ stdcall RegNotifyChangeKeyValue ; Win 7 +;@ stdcall RegOpenCurrentUser ; Win 7 +;@ stdcall RegOpenKeyExA ; Win 7 +;@ stdcall RegOpenKeyExW ; Win 7 +;@ stdcall RegOpenUserClassesRoot ; Win 7 +;@ stdcall RegQueryInfoKeyA ; Win 7 +;@ stdcall RegQueryInfoKeyW ; Win 7 +;@ stdcall RegQueryValueExA ; Win 7 +;@ stdcall RegQueryValueExW ; Win 7 +;@ stdcall RegRestoreKeyA ; Win 7 +;@ stdcall RegRestoreKeyW ; Win 7 +;@ stdcall RegSaveKeyExA ; Win 7 +;@ stdcall RegSaveKeyExW ; Win 7 +;@ stdcall RegSetKeySecurity ; Win 7 +;@ stdcall RegSetValueExA ; Win 7 +;@ stdcall RegSetValueExW ; Win 7 +;@ stdcall RegUnLoadKeyA ; Win 7 +;@ stdcall RegUnLoadKeyW ; Win 7 +;@ stdcall RegisterApplicationRecoveryCallback ; Win 7 +@ stdcall RegisterApplicationRestart(wstr long) +@ stdcall RegisterConsoleIME(ptr ptr) +@ stdcall RegisterConsoleOS2(long) +@ stdcall RegisterConsoleVDM(long long long long long long long long long long long) +;@ stub RegisterServiceProcess ; missing in XP SP3 and Win 7 +;@ stub RegisterSysMsgHandler ; missing in XP SP3 and win 7 +@ stdcall RegisterWaitForInputIdle(ptr) +@ stdcall RegisterWaitForSingleObject(ptr long ptr ptr long long) +@ stdcall RegisterWaitForSingleObjectEx(long ptr ptr long long) +@ stdcall RegisterWowBaseHandlers(long) +@ stdcall RegisterWowExec(long) +;@ stdcall ReinitializeCriticalSection(ptr) ; ??? +@ stdcall ReleaseActCtx(ptr) +@ stdcall ReleaseMutex(long) +;@ stdcall ReleaseMutexWhenCallbackReturns ntdll.TpCallbackReleaseMutexOnCompletion ; Win 7 +@ stdcall ReleaseSRWLockExclusive(ptr) ntdll.RtlReleaseSRWLockExclusive +@ stdcall ReleaseSRWLockShared(ptr) ntdll.RtlReleaseSRWLockShared +@ stdcall ReleaseSemaphore(long long ptr) +;@ stdcall ReleaseSemaphoreWhenCallbackReturns ntdll.TpCallbackReleaseSemaphoreOnCompletion ; Win 7 +@ stdcall RemoveDirectoryA(str) +;@ stdcall RemoveDirectoryTransactedA ; Win 7 +;@ stdcall RemoveDirectoryTransactedW ; Win 7 +@ stdcall RemoveDirectoryW(wstr) +@ stdcall RemoveLocalAlternateComputerNameA(str long) +@ stdcall RemoveLocalAlternateComputerNameW(wstr long) +;@ stdcall RemoveSecureMemoryCacheCallback ; Win 7 +@ stdcall RemoveVectoredContinueHandler(ptr) ntdll.RtlRemoveVectoredContinueHandler +@ stdcall RemoveVectoredExceptionHandler(ptr) ntdll.RtlRemoveVectoredExceptionHandler +@ stdcall ReplaceFile(wstr wstr wstr long ptr ptr) ReplaceFileW +@ stdcall ReplaceFileA(str str str long ptr ptr) +@ stdcall ReplaceFileW(wstr wstr wstr long ptr ptr) +;@ stdcall ReplacePartitionUnit ; Win 7 +@ stdcall RequestDeviceWakeup(long) +@ stdcall RequestWakeupLatency(long) +@ stdcall ResetEvent(long) +@ stdcall ResetWriteWatch(ptr long) +;@ stdcall ResolveLocaleName ; Win 7 +@ stdcall RestoreLastError(long) ntdll.RtlRestoreLastWin32Error +@ stdcall ResumeThread(long) +@ cdecl -arch=x86_64 RtlAddFunctionTable(ptr long long) ntdll.RtlAddFunctionTable +@ stdcall -register RtlCaptureContext(ptr) ntdll.RtlCaptureContext +@ stdcall RtlCaptureStackBackTrace(long long ptr ptr) ntdll.RtlCaptureStackBackTrace +@ stdcall -arch=x86_64 RtlCompareMemory(ptr ptr ptr) +@ stdcall -arch=x86_64 RtlCopyMemory(ptr ptr ptr) +@ stdcall -arch=x86_64 RtlDeleteFunctionTable(ptr) +@ stdcall RtlFillMemory(ptr long long) ntdll.RtlFillMemory +@ stdcall -arch=x86_64 RtlInstallFunctionTableCallback(double double long ptr ptr ptr) +@ stdcall -arch=x86_64 RtlLookupFunctionEntry(ptr ptr ptr) ntdll.RtlLookupFunctionEntry +@ stdcall RtlMoveMemory(ptr ptr long) ntdll.RtlMoveMemory +@ stdcall -arch=x86_64 RtlPcToFileHeader(ptr ptr) ntdll.RtlPcToFileHeader +@ stdcall -arch=x86_64 RtlRaiseException(ptr) ntdll.RtlRaiseException +@ stdcall -arch=x86_64 RtlRestoreContext(ptr ptr) ntdll.RtlRestoreContext +@ stdcall RtlUnwind(ptr ptr ptr long) ntdll.RtlUnwind +@ stdcall -arch=x86_64 RtlUnwindEx(ptr ptr ptr ptr ptr ptr) ntdll.RtlUnwindEx +@ stdcall -arch=x86_64 RtlVirtualUnwind(ptr ptr ptr long) ntdll.RtlVirtualUnwind +@ stdcall RtlZeroMemory(ptr long) ntdll.RtlZeroMemory +@ stdcall ScrollConsoleScreenBufferA(long ptr ptr ptr ptr) +@ stdcall ScrollConsoleScreenBufferW(long ptr ptr ptr ptr) +@ stdcall SearchPathA(str str str long ptr ptr) +@ stdcall SearchPathW(wstr wstr wstr long ptr ptr) +@ stdcall SetCPGlobal(long) ; missing in Win 7 +@ stdcall SetCalendarInfoA(long long long str) +@ stdcall SetCalendarInfoW(long long long wstr) +@ stdcall SetClientTimeZoneInformation(ptr) +@ stdcall SetComPlusPackageInstallStatus(ptr) +@ stdcall SetCommBreak(long) +@ stdcall SetCommConfig(long ptr long) +@ stdcall SetCommMask(long ptr) +@ stdcall SetCommState(long ptr) +@ stdcall SetCommTimeouts(long ptr) +@ stdcall SetComputerNameA(str) +@ stdcall SetComputerNameExA(long str) +@ stdcall SetComputerNameExW(long wstr) +@ stdcall SetComputerNameW(wstr) +@ stdcall SetConsoleActiveScreenBuffer(long) +@ stdcall SetConsoleCP(long) +@ stdcall SetConsoleCommandHistoryMode(long) ; missing in win 7 +@ stdcall SetConsoleCtrlHandler(ptr long) +@ stdcall SetConsoleCursor(long long) +@ stdcall SetConsoleCursorInfo(long ptr) +@ stdcall SetConsoleCursorMode(long long long) +@ stdcall SetConsoleCursorPosition(long long) +@ stdcall SetConsoleDisplayMode(long long ptr) +@ stdcall SetConsoleFont(long long) +@ stdcall SetConsoleHardwareState(long long long) +@ stdcall SetConsoleHistoryInfo(ptr) +@ stdcall SetConsoleIcon(ptr) +@ stdcall SetConsoleInputExeNameA(ptr) +@ stdcall SetConsoleInputExeNameW(ptr) +@ stdcall SetConsoleKeyShortcuts(long long long long) +@ stdcall SetConsoleLocalEUDC(long long long long) +@ stdcall SetConsoleMaximumWindowSize(long long) +@ stdcall SetConsoleMenuClose(long) +@ stdcall SetConsoleMode(long long) +@ stdcall SetConsoleNlsMode(long long) +@ stdcall SetConsoleNumberOfCommandsA(long long) +@ stdcall SetConsoleNumberOfCommandsW(long long) +@ stdcall SetConsoleOS2OemFormat(long) +@ stdcall SetConsoleOutputCP(long) +@ stdcall SetConsolePalette(long long long) +;@ stdcall SetConsoleScreenBufferInfoEx ; Win 7 +@ stdcall SetConsoleScreenBufferSize(long long) +@ stdcall SetConsoleTextAttribute(long long) +@ stdcall SetConsoleTitleA(str) +@ stdcall SetConsoleTitleW(wstr) +@ stdcall SetConsoleWindowInfo(long long ptr) +@ stdcall SetCriticalSectionSpinCount(ptr long) ntdll.RtlSetCriticalSectionSpinCount +;@ stdcall SetCurrentConsoleFontEx ; Win 7 +@ stdcall SetCurrentDirectoryA(str) +@ stdcall SetCurrentDirectoryW(wstr) +;@ stub SetDaylightFlag ; missing in XP SP3 and Win 7 +@ stdcall SetDefaultCommConfigA(str ptr long) +@ stdcall SetDefaultCommConfigW(wstr ptr long) +@ stdcall SetDllDirectoryA(str) +@ stdcall SetDllDirectoryW(wstr) +;@ stdcall SetDynamicTimeZoneInformation ; Win 7 +@ stdcall SetEndOfFile(long) +;@ stdcall SetEnvironmentStringsA ; Win 7 +;@ stdcall SetEnvironmentStringsW ; Win 7 +@ stdcall SetEnvironmentVariableA(str str) +@ stdcall SetEnvironmentVariableW(wstr wstr) +@ stdcall SetErrorMode(long) +@ stdcall SetEvent(long) +;@ stdcall SetEventWhenCallbackReturns ntdll.TpCallbackSetEventOnCompletion ; Win 7 +;@ stdcall SetExtendedFeaturesMask api-ms-win-core-xstate-l1-1-0.RtlSetExtendedFeaturesMask ; Win 7 +@ stdcall SetFileApisToANSI() +@ stdcall SetFileApisToOEM() +@ stdcall SetFileAttributesA(str long) +;@ stdcall SetFileAttributesTransactedA ; Win 7 +;@ stdcall SetFileAttributesTransactedW ; Win 7 +@ stdcall SetFileAttributesW(wstr long) +;@ stdcall SetFileBandwidthReservation ; Win 7 +;@ stdcall SetFileCompletionNotificationModes ; Win 7 +;@ stdcall SetFileInformationByHandle ; Win 7 +;@ stdcall SetFileIoOverlappedRange ; Win 7 +@ stdcall SetFilePointer(long long ptr long) +@ stdcall SetFilePointerEx(long double ptr long) +@ stdcall SetFileShortNameA(long str) +@ stdcall SetFileShortNameW(long wstr) +@ stdcall SetFileTime(long ptr ptr ptr) +@ stdcall SetFileValidData(long double) +@ stdcall SetFirmwareEnvironmentVariableA(str str ptr long) +@ stdcall SetFirmwareEnvironmentVariableW(wstr wstr ptr long) +@ stdcall SetHandleContext(long long) ; missing in Win 7 x64 +@ stdcall SetHandleCount(long) +@ stdcall SetHandleInformation(long long long) +@ stdcall SetInformationJobObject(long long ptr long) +@ stdcall SetLastConsoleEventActive() ; missing in XP SP3 +@ stdcall SetLastError(long) ntdll.RtlSetLastWin32Error +@ stdcall SetLocalPrimaryComputerNameA(long long) ; missing in XP SP3 +@ stdcall SetLocalPrimaryComputerNameW(long long) ; missing in XP SP3 +@ stdcall SetLocalTime(ptr) +@ stdcall SetLocaleInfoA(long long str) +@ stdcall SetLocaleInfoW(long long wstr) +@ stdcall SetMailslotInfo(long long) +@ stdcall SetMessageWaitingIndicator(ptr long) +;@ stdcall SetNamedPipeAttribute ; Win 7 +@ stdcall SetNamedPipeHandleState(long ptr ptr ptr) +@ stdcall SetPriorityClass(long long) +@ stdcall SetProcessAffinityMask(long long) +;@ stdcall SetProcessAffinityUpdateMode ; Win 7 +;@ stdcall SetProcessDEPPolicy ; Win 7 +;@ stdcall SetProcessPreferredUILanguages ; Win 7 +@ stdcall SetProcessPriorityBoost(long long) +@ stdcall SetProcessShutdownParameters(long long) +@ stdcall SetProcessWorkingSetSize(long long long) +;@ stdcall SetProcessWorkingSetSizeEx ; Win 7 +;@ stdcall SetSearchPathMode ; Win 7 +@ stdcall SetStdHandle(long long) +;@ stdcall SetStdHandleEx ; Win 7 +;@ stdcall SetSystemFileCacheSize ; Win 7 +@ stdcall SetSystemPowerState(long long) +@ stdcall SetSystemTime(ptr) +@ stdcall SetSystemTimeAdjustment(long long) +@ stdcall SetTapeParameters(ptr long ptr) +@ stdcall SetTapePosition(ptr long long long long long) +@ stdcall SetTermsrvAppInstallMode(long) +@ stdcall SetThreadAffinityMask(long long) +@ stdcall SetThreadContext(long ptr) +;@ stdcall SetThreadErrorMode(long ptr) ; Win 7 +@ stdcall SetThreadExecutionState(long) +;@ stdcall SetThreadGroupAffinity ; Win 7 +@ stdcall SetThreadIdealProcessor(long long) +;@ stdcall SetThreadIdealProcessorEx ; Win 7 +@ stdcall SetThreadLocale(long) +;@ stdcall SetThreadPreferredUILanguages ; Win 7 +@ stdcall SetThreadPriority(long long) +@ stdcall SetThreadPriorityBoost(long long) +;@ stdcall SetThreadStackGuarantee ; Win 7 +;@ stdcall SetThreadToken api-ms-win-core-processthreads-l1-1-0.SetThreadToken ; Win 7 +@ stdcall SetThreadUILanguage(long) +;@ stdcall SetThreadpoolStackInformation ; Win 7 +;@ stdcall SetThreadpoolThreadMaximum ntdll.TpSetPoolMaxThreads ; Win 7 +;@ stdcall SetThreadpoolThreadMinimum ; Win 7 +;@ stdcall SetThreadpoolTimer ntdll.TpSetTimer ; Win 7 +;@ stdcall SetThreadpoolWait ntdll.TpSetWait ; Win 7 +@ stdcall SetTimeZoneInformation(ptr) +@ stdcall SetTimerQueueTimer(long ptr ptr long long long) +;@ stdcall -arch?x86_64 SetUmsThreadInformation +@ stdcall SetUnhandledExceptionFilter(ptr) +@ stdcall SetUserGeoID(long) +@ stdcall SetVDMCurrentDirectories(long long) +@ stdcall SetVolumeLabelA(str str) +@ stdcall SetVolumeLabelW(wstr wstr) +@ stdcall SetVolumeMountPointA(str str) +@ stdcall SetVolumeMountPointW(wstr wstr) +@ stdcall SetWaitableTimer(long ptr long ptr ptr long) +;@ stdcall SetWaitableTimerEx api-ms-win-core-threadpool-l1-1-0.SetWaitableTimerEx ; Win 7 +@ stdcall SetupComm(long long long) +@ stdcall ShowConsoleCursor(long long) +@ stdcall SignalObjectAndWait(long long long long) +@ stdcall SizeofResource(long long) +@ stdcall Sleep(long) +;@ stdcall SleepConditionVariableCS ; Win 7 +;@ stdcall SleepConditionVariableSRW ; Win 7 +@ stdcall SleepEx(long long) +;@ stdcall SortCloseHandle ; Win 7 +;@ stdcall SortGetHandle ; Win 7 +;@ stdcall StartThreadpoolIo ntdll.TpStartAsyncIoOperation ; Win 7 +;@ stdcall SubmitThreadpoolWork ntdll.TpPostWork ; Win 7 +@ stdcall SuspendThread(long) +@ stdcall SwitchToFiber(ptr) +@ stdcall SwitchToThread() +@ stdcall SystemTimeToFileTime(ptr ptr) +@ stdcall SystemTimeToTzSpecificLocalTime (ptr ptr ptr) +@ stdcall TerminateJobObject(long long) +@ stdcall TerminateProcess(long long) +@ stdcall TerminateThread(long long) +@ stdcall TermsrvAppInstallMode() +@ stdcall Thread32First(long ptr) +@ stdcall Thread32Next(long ptr) +@ stdcall TlsAlloc() +;@ stub TlsAllocInternal ; missing in XP SP3 and Win 7 +@ stdcall TlsFree(long) +;@ stub TlsFreeInternal ; missing in XP SP3 and Win 7 +@ stdcall TlsGetValue(long) +@ stdcall TlsSetValue(long ptr) +@ stdcall Toolhelp32ReadProcessMemory(long ptr ptr long ptr) +@ stdcall TransactNamedPipe(long ptr long ptr long ptr ptr) +@ stdcall TransmitCommChar(long long) +@ stdcall TrimVirtualBuffer(ptr) ; missing in Win 7 +;@ stdcall TryAcquireSRWLockExclusive ntdll.RtlTryAcquireSRWLockExclusive ; Win 7 +;@ stdcall TryAcquireSRWLockShared ntdll.RtlTryAcquireSRWLockShared ; Win 7 +@ stdcall TryEnterCriticalSection(ptr) ntdll.RtlTryEnterCriticalSection +;@ stdcall TrySubmitThreadpoolCallback ; Win 7 +@ stdcall TzSpecificLocalTimeToSystemTime(ptr ptr ptr) +@ stdcall UTRegister(long str str str ptr ptr ptr) +@ stdcall UTUnRegister(long) +;@ stdcall -arch=x86_64 UmsThreadYield +@ stdcall UnhandledExceptionFilter(ptr) +;@ stdcall UninitializeCriticalSection(ptr) ; ??? +@ stdcall UnlockFile(long long long long long) +@ stdcall UnlockFileEx(long long long long ptr) +@ stdcall UnmapViewOfFile(ptr) +;@ stdcall UnregisterApplicationRecoveryCallback ; Win 7 +;@ stdcall UnregisterApplicationRestart ; Win 7 +@ stdcall UnregisterConsoleIME() +@ stdcall UnregisterWait(long) +@ stdcall UnregisterWaitEx(long long) +;@ stdcall UpdateCalendarDayOfWeek ; Win 7 +;@ stdcall UpdateProcThreadAttribute api-ms-win-core-processthreads-l1-1-0.UpdateProcThreadAttribute ; Win 7 +@ stdcall UpdateResourceA(long str str long ptr long) +@ stdcall UpdateResourceW(long wstr wstr long ptr long) +@ stdcall VDMConsoleOperation(long long) +@ stdcall VDMOperationStarted(long) +;@ stub ValidateCType ; missing in XP SP3 and Win 7 +;@ stub ValidateLocale ; missing in XP SP3 and Win 7 +@ stdcall VerLanguageNameA(long str long) +@ stdcall VerLanguageNameW(long wstr long) +@ stdcall -ret64 VerSetConditionMask(long long long long) ntdll.VerSetConditionMask +@ stdcall VerifyConsoleIoHandle(long) +;@ stdcall VerifyScripts ; Win 7 +@ stdcall VerifyVersionInfoA(long long double) +@ stdcall VerifyVersionInfoW(long long double) +@ stdcall VirtualAlloc(ptr long long long) +@ stdcall VirtualAllocEx(long ptr long long long) +;@ stdcall VirtualAllocExNuma ; Win 7 +@ stdcall VirtualBufferExceptionHandler(long long long) ; missing in Win 7 +@ stdcall VirtualFree(ptr long long) +@ stdcall VirtualFreeEx(long ptr long long) +@ stdcall VirtualLock(ptr long) +@ stdcall VirtualProtect(ptr long long ptr) +@ stdcall VirtualProtectEx(long ptr long long ptr) +@ stdcall VirtualQuery(ptr ptr long) +@ stdcall VirtualQueryEx(long ptr ptr long) +@ stdcall VirtualUnlock(ptr long) +;@ stdcall WTSGetActiveConsoleSessionId ; Win 7 +@ stdcall WaitCommEvent(long ptr ptr) +@ stdcall WaitForDebugEvent(ptr long) +@ stdcall WaitForMultipleObjects(long ptr long long) +@ stdcall WaitForMultipleObjectsEx(long ptr long long long) +@ stdcall WaitForSingleObject(long long) +@ stdcall WaitForSingleObjectEx(long long long) +;@ stdcall WaitForThreadpoolIoCallbacks ntdll.TpWaitForIoCompletion ; Win 7 +;@ stdcall WaitForThreadpoolTimerCallbacks ntdll.TpWaitForTimer ; Win 7 +;@ stdcall WaitForThreadpoolWaitCallbacks ntdll.TpWaitForWait ; Win 7 +;@ stdcall WaitForThreadpoolWorkCallbacks ntdll.TpWaitForWork ; Win 7 +@ stdcall WaitNamedPipeA (str long) +@ stdcall WaitNamedPipeW (wstr long) +@ stdcall WakeAllConditionVariable(ptr) ntdll.RtlWakeAllConditionVariable +@ stdcall WakeConditionVariable(ptr) ntdll.RtlWakeConditionVariable +;@ stdcall WerGetFlags ; Win 7 +;@ stdcall WerRegisterFile ; Win 7 +;@ stdcall WerRegisterMemoryBlock ; Win 7 +;@ stdcall WerRegisterRuntimeExceptionModule ; Win 7 +;@ stdcall WerSetFlags ; Win 7 +;@ stdcall WerUnregisterFile ; Win 7 +;@ stdcall WerUnregisterMemoryBlock ; Win 7 +;@ stdcall WerUnregisterRuntimeExceptionModule ; Win 7 +;@ stdcall WerpCleanupMessageMapping ; Win 7 +;@ stdcall WerpInitiateRemoteRecovery ; Win 7 +;@ stdcall WerpNotifyLoadStringResource ; Win 7 +;@ stdcall WerpNotifyLoadStringResourceEx ; Win 7 +;@ stdcall WerpNotifyUseStringResource ; Win 7 +;@ stdcall WerpStringLookup ; Win 7 +@ stdcall WideCharToMultiByte(long long wstr long ptr long ptr ptr) +@ stdcall WinExec(str long) +@ stdcall Wow64DisableWow64FsRedirection(ptr) +@ stdcall Wow64EnableWow64FsRedirection(long) +;@ stdcall Wow64GetThreadContext ; Win 7 +;@ stdcall Wow64GetThreadSelectorEntry ; Win 7 +@ stdcall Wow64RevertWow64FsRedirection(ptr) +;@ stdcall Wow64SetThreadContext ; Win 7 +;@ stdcall Wow64SuspendThread ; Win 7 +@ stdcall WriteConsoleA(long ptr long ptr ptr) +@ stdcall WriteConsoleInputA(long ptr long ptr) +@ stdcall WriteConsoleInputVDMA(long long long long) +@ stdcall WriteConsoleInputVDMW(long long long long) +@ stdcall WriteConsoleInputW(long ptr long ptr) +@ stdcall WriteConsoleOutputA(long ptr long long ptr) +@ stdcall WriteConsoleOutputAttribute(long ptr long long ptr) +@ stdcall WriteConsoleOutputCharacterA(long ptr long long ptr) +@ stdcall WriteConsoleOutputCharacterW(long ptr long long ptr) +@ stdcall WriteConsoleOutputW(long ptr long long ptr) +@ stdcall WriteConsoleW(long ptr long ptr ptr) +@ stdcall WriteFile(long ptr long ptr ptr) +@ stdcall WriteFileEx(long ptr long ptr ptr) +@ stdcall WriteFileGather(long ptr long ptr ptr) +@ stdcall WritePrivateProfileSectionA(str str str) +@ stdcall WritePrivateProfileSectionW(wstr wstr wstr) +@ stdcall WritePrivateProfileStringA(str str str str) +@ stdcall WritePrivateProfileStringW(wstr wstr wstr wstr) +@ stdcall WritePrivateProfileStructA (str str ptr long str) +@ stdcall WritePrivateProfileStructW(wstr wstr ptr long wstr) +@ stdcall WriteProcessMemory(long ptr ptr long ptr) +@ stdcall WriteProfileSectionA(str str) +@ stdcall WriteProfileSectionW(str str) +@ stdcall WriteProfileStringA(str str str) +@ stdcall WriteProfileStringW(wstr wstr wstr) +@ stdcall WriteTapemark(ptr long long long) +@ stdcall WTSGetActiveConsoleSessionId() ; missing in win 7 +@ stdcall ZombifyActCtx(ptr) +;@ stdcall -arch=x86_64 __C_specific_handler ntdll.__C_specific_handler +;@ stdcall -arch=x86_64 __chkstk ntdll.__chkstk +;@ stdcall -arch=x86_64 __misaligned_access ntdll.__misaligned_access +;@ stub _DebugOut ; missing in XP SP3 and Win 7 +;@ stub _DebugPrintf ; missing in XP SP3 and Win 7 +@ stdcall _hread(long ptr long) +@ stdcall _hwrite(long ptr long) +@ stdcall _lclose(long) +@ stdcall _lcreat(str long) +@ stdcall _llseek(long long long) +;@ stdcall -arch=x86_64 _local_unwind ntdll._local_unwind; Win 7 +@ stdcall _lopen(str long) +@ stdcall _lread(long ptr long) _hread +@ stdcall _lwrite(long ptr long) _hwrite +;@ stub dprintf ; missing in XP SP3 and Win 7 +@ stdcall lstrcat(str str) lstrcatA +@ stdcall lstrcatA(str str) +@ stdcall lstrcatW(wstr wstr) +@ stdcall lstrcmp(str str) lstrcmpA +@ stdcall lstrcmpA(str str) +@ stdcall lstrcmpW(wstr wstr) +@ stdcall lstrcmpi(str str) lstrcmpiA +@ stdcall lstrcmpiA(str str) +@ stdcall lstrcmpiW(wstr wstr) +@ stdcall lstrcpy(ptr str) lstrcpyA +@ stdcall lstrcpyA(ptr str) +@ stdcall lstrcpyW(ptr wstr) +@ stdcall lstrcpyn(ptr str long) lstrcpynA +@ stdcall lstrcpynA(ptr str long) +@ stdcall lstrcpynW(ptr wstr long) +@ stdcall lstrlen(str) lstrlenA +@ stdcall lstrlenA(str) +@ stdcall lstrlenW(wstr) +;@ stdcall -arch=x86_64 uaw_lstrcmpW ; Win 7 +;@ stdcall -arch=x86_64 uaw_lstrcmpiW ; Win 7 +;@ stdcall -arch=x86_64 uaw_lstrlenW ; Win 7 +;@ stdcall -arch=x86_64 uaw_wcschr ; Win 7 +;@ stdcall -arch=x86_64 uaw_wcscpy ; Win 7 +;@ stdcall -arch=x86_64 uaw_wcsicmp ; Win 7 +;@ stdcall -arch=x86_64 uaw_wcslen ; Win 7 +;@ stdcall -arch=x86_64 uaw_wcsrchr ; Win 7 + diff --git a/reactos/dll/win32/loadperf/CMakeLists.txt b/reactos/dll/win32/loadperf/CMakeLists.txt new file mode 100644 index 00000000000..2e5d86ba3d0 --- /dev/null +++ b/reactos/dll/win32/loadperf/CMakeLists.txt @@ -0,0 +1,16 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(loadperf.dll loadperf.spec) + +add_library(loadperf SHARED + loadperf_main.c + stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/loadperf.def) + +set_module_type(loadperf win32dll) +target_link_libraries(loadperf wine) +add_importlibs(loadperf msvcrt kernel32 ntdll) +add_cd_file(TARGET loadperf DESTINATION reactos/system32 FOR all) +add_importlib_target(loadperf.spec) diff --git a/reactos/dll/win32/localspl/CMakeLists.txt b/reactos/dll/win32/localspl/CMakeLists.txt new file mode 100644 index 00000000000..5ce1b18826f --- /dev/null +++ b/reactos/dll/win32/localspl/CMakeLists.txt @@ -0,0 +1,35 @@ + +add_definitions(-D__WINESRC__) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(localspl.dll localspl.spec) + +list(APPEND SOURCE + localmon.c + localspl_main.c + provider.c + localspl.rc + ${CMAKE_CURRENT_BINARY_DIR}/localspl_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/localspl.def) + +add_library(localspl SHARED ${SOURCE}) + +set_module_type(localspl win32dll) + +target_link_libraries(localspl wine) + +add_importlibs(localspl + spoolss + user32 + advapi32 + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET localspl DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/localui/CMakeLists.txt b/reactos/dll/win32/localui/CMakeLists.txt new file mode 100644 index 00000000000..7221755ddfd --- /dev/null +++ b/reactos/dll/win32/localui/CMakeLists.txt @@ -0,0 +1,21 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(localui.dll localui.spec) + +list(APPEND SOURCE + localui.c + localui.rc + ${CMAKE_CURRENT_BINARY_DIR}/localui.def) + +add_library(localui SHARED ${SOURCE}) + +set_module_type(localui win32dll) +target_link_libraries(localui uuid wine) + +add_importlib_target(localui.spec) +add_importlibs(localui winspool user32 msvcrt kernel32 ntdll) +add_cd_file(TARGET localui DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/lpk/CMakeLists.txt b/reactos/dll/win32/lpk/CMakeLists.txt new file mode 100644 index 00000000000..3e5d6275d11 --- /dev/null +++ b/reactos/dll/win32/lpk/CMakeLists.txt @@ -0,0 +1,21 @@ + +set_unicode() + +add_definitions(-DLANGPACK) +include_directories(include) + +spec2def(lpk.dll lpk.spec) + +list(APPEND SOURCE + dllmain.c + stub.c + lpk.rc + ${CMAKE_CURRENT_BINARY_DIR}/lpk.def) + +add_library(lpk SHARED ${SOURCE}) + +set_module_type(lpk win32dll) + +add_importlib_target(lpk.spec) +add_importlibs(lpk user32 usp10 msvcrt kernel32 ntdll) +add_cd_file(TARGET lpk DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/lsasrv/CMakeLists.txt b/reactos/dll/win32/lsasrv/CMakeLists.txt new file mode 100644 index 00000000000..e5165d4f653 --- /dev/null +++ b/reactos/dll/win32/lsasrv/CMakeLists.txt @@ -0,0 +1,34 @@ + +set_unicode() + +include_directories( + ${REACTOS_BINARY_DIR}/include/reactos/idl + ${REACTOS_SOURCE_DIR}/include/reactos/subsys/lsass) + +set_rc_compiler() + +spec2def(lsasrv.dll lsasrv.spec) + +list(APPEND SOURCE + authport.c + lsarpc.c + lsasrv.c + privileges.c + sids.c + lsasrv.rc + ${CMAKE_CURRENT_BINARY_DIR}/lsasrv_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/lsasrv.def) + +add_library(lsasrv SHARED ${SOURCE}) + +set_entrypoint(lsasrv 0) + +target_link_libraries(lsasrv + lsarpc + wine + ${PSEH_LIB}) + +add_importlibs(lsasrv rpcrt4 kernel32 ntdll) +add_dependencies(lsasrv psdk) +add_cd_file(TARGET lsasrv DESTINATION reactos/system32 FOR all) +add_importlib_target(lsasrv.spec) diff --git a/reactos/dll/win32/lz32/CMakeLists.txt b/reactos/dll/win32/lz32/CMakeLists.txt new file mode 100644 index 00000000000..a120899e5d2 --- /dev/null +++ b/reactos/dll/win32/lz32/CMakeLists.txt @@ -0,0 +1,19 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(lz32.dll lz32.spec) + +list(APPEND SOURCE + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/lz32.def) + +add_library(lz32 SHARED ${SOURCE}) + +set_entrypoint(lz32 0) +target_link_libraries(lz32 wine) + +add_importlibs(lz32 kernel32 ntdll) +add_dependencies(lz32 psdk) +add_cd_file(TARGET lz32 DESTINATION reactos/system32 FOR all) +add_importlib_target(lz32.spec) diff --git a/reactos/dll/win32/mapi32/CMakeLists.txt b/reactos/dll/win32/mapi32/CMakeLists.txt new file mode 100644 index 00000000000..5c1484e7485 --- /dev/null +++ b/reactos/dll/win32/mapi32/CMakeLists.txt @@ -0,0 +1,26 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(mapi32.dll mapi32.spec) + +list(APPEND SOURCE + imalloc.c + mapi32_main.c + prop.c + sendmail.c + util.c + stubs.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/mapi32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/mapi32.def) + +add_library(mapi32 SHARED ${SOURCE}) + +set_module_type(mapi32 win32dll) + +target_link_libraries(mapi32 wine uuid) +add_importlibs(mapi32 shlwapi shell32 user32 advapi32 msvcrt kernel32 ntdll) +add_cd_file(TARGET mapi32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/mciavi32/CMakeLists.txt b/reactos/dll/win32/mciavi32/CMakeLists.txt new file mode 100644 index 00000000000..1bb93315c1d --- /dev/null +++ b/reactos/dll/win32/mciavi32/CMakeLists.txt @@ -0,0 +1,20 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(mciavi32.dll mciavi32.spec) + +list(APPEND SOURCE + info.c + mciavi.c + mmoutput.c + wnd.c + mciavi_res.rc + ${CMAKE_CURRENT_BINARY_DIR}/mciavi32.def) + +add_library(mciavi32 SHARED ${SOURCE}) + +set_module_type(mciavi32 win32dll) +target_link_libraries(mciavi32 wine) +add_importlibs(mciavi32 msvfw32 winmm user32 gdi32 msvcrt kernel32 ntdll) +add_cd_file(TARGET mciavi32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/mcicda/CMakeLists.txt b/reactos/dll/win32/mcicda/CMakeLists.txt new file mode 100644 index 00000000000..3c01576d126 --- /dev/null +++ b/reactos/dll/win32/mcicda/CMakeLists.txt @@ -0,0 +1,17 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(mcicda.dll mcicda.spec) + +list(APPEND SOURCE + mcicda.c + ${CMAKE_CURRENT_BINARY_DIR}/mcicda.def) + +add_library(mcicda SHARED ${SOURCE}) + +set_entrypoint(mcicda 0) +target_link_libraries(mcicda wine) +add_importlibs(mcicda winmm user32 kernel32 ntdll) +add_dependencies(mcicda psdk) +add_cd_file(TARGET mcicda DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/mciqtz32/CMakeLists.txt b/reactos/dll/win32/mciqtz32/CMakeLists.txt new file mode 100644 index 00000000000..ab86eedf627 --- /dev/null +++ b/reactos/dll/win32/mciqtz32/CMakeLists.txt @@ -0,0 +1,18 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(mciqtz32.dll mciqtz32.spec) + +list(APPEND SOURCE + mciqtz.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/mciqtz32.def) + +add_library(mciqtz32 SHARED ${SOURCE}) + +set_module_type(mciqtz32 win32dll) + +target_link_libraries(mciqtz32 wine strmiids) +add_importlibs(mciqtz32 winmm oleaut32 ole32 user32 gdi32 msvcrt kernel32 ntdll) +add_cd_file(TARGET mciqtz32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/mciseq/CMakeLists.txt b/reactos/dll/win32/mciseq/CMakeLists.txt new file mode 100644 index 00000000000..b6bba6b8e18 --- /dev/null +++ b/reactos/dll/win32/mciseq/CMakeLists.txt @@ -0,0 +1,17 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(mciseq.dll mciseq.spec) + +list(APPEND SOURCE + mcimidi.c + ${CMAKE_CURRENT_BINARY_DIR}/mciseq.def) + +add_library(mciseq SHARED ${SOURCE}) + +set_entrypoint(mciseq 0) +target_link_libraries(mciseq wine) +add_importlibs(mciseq winmm user32 kernel32 ntdll msvcrt) +add_dependencies(mciseq psdk) +add_cd_file(TARGET mciseq DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/mciwave/CMakeLists.txt b/reactos/dll/win32/mciwave/CMakeLists.txt new file mode 100644 index 00000000000..d425aa422ab --- /dev/null +++ b/reactos/dll/win32/mciwave/CMakeLists.txt @@ -0,0 +1,21 @@ + +add_definitions( + -D__WINESRC__ + -D_DLL -D__USE_CRTIMP + -D_WINE) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(mciwave.dll mciwave.spec) + +list(APPEND SOURCE + mciwave.c + ${CMAKE_CURRENT_BINARY_DIR}/mciwave.def) + +add_library(mciwave SHARED ${SOURCE}) + +set_entrypoint(mciwave 0) +target_link_libraries(mciwave wine) +add_importlibs(mciwave user32 winmm msvcrt kernel32 ntdll) +add_dependencies(mciwave psdk) +add_cd_file(TARGET mciwave DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/mlang/CMakeLists.txt b/reactos/dll/win32/mlang/CMakeLists.txt new file mode 100644 index 00000000000..4808863868f --- /dev/null +++ b/reactos/dll/win32/mlang/CMakeLists.txt @@ -0,0 +1,36 @@ + +add_definitions( + -D__WINESRC__ + -D_DLL -D__USE_CRTIMP) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(mlang.dll mlang.spec) + +list(APPEND SOURCE + mlang.c + regsvr.c + ${CMAKE_CURRENT_BINARY_DIR}/mlang_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/mlang.def) + +add_library(mlang SHARED ${SOURCE}) + +set_entrypoint(mlang 0) + +target_link_libraries(mlang uuid wine) + +add_importlibs(mlang + ole32 + user32 + gdi32 + advapi32 + oleaut32 + kernel32 + ntdll) + +add_importlib_target(mlang.spec) +add_dependencies(mlang psdk) +add_cd_file(TARGET mlang DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/mmdrv/CMakeLists.txt b/reactos/dll/win32/mmdrv/CMakeLists.txt new file mode 100644 index 00000000000..db775140f5c --- /dev/null +++ b/reactos/dll/win32/mmdrv/CMakeLists.txt @@ -0,0 +1,23 @@ + +set_unicode() + +add_definitions(-DNDEBUG) + +spec2def(mmdrv.dll mmdrv.spec) + +list(APPEND SOURCE + entry.c + mme.c + kernel.c + session.c + common.c + wave.c + wave_io.c + ${CMAKE_CURRENT_BINARY_DIR}/mmdrv.def) + +add_library(mmdrv SHARED ${SOURCE}) + +set_entrypoint(mmdrv 0) +add_importlibs(mmdrv winmm user32 kernel32 ntdll) +add_dependencies(mmdrv psdk) +add_cd_file(TARGET mmdrv DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/modemui/CMakeLists.txt b/reactos/dll/win32/modemui/CMakeLists.txt new file mode 100644 index 00000000000..d4d7aac0b0a --- /dev/null +++ b/reactos/dll/win32/modemui/CMakeLists.txt @@ -0,0 +1,17 @@ + +set_unicode() +set_rc_compiler() + +spec2def(modemui.dll modemui.spec) + +list(APPEND SOURCE + modemui.c + modemui.rc + ${CMAKE_CURRENT_BINARY_DIR}/modemui_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/modemui.def) + +add_library(modemui SHARED ${SOURCE}) + +set_module_type(modemui win32dll) +add_importlibs(modemui msvcrt kernel32 ntdll) +add_cd_file(TARGET modemui DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/mpr/CMakeLists.txt b/reactos/dll/win32/mpr/CMakeLists.txt new file mode 100644 index 00000000000..65789654de2 --- /dev/null +++ b/reactos/dll/win32/mpr/CMakeLists.txt @@ -0,0 +1,30 @@ + +add_definitions( + -D__WINESRC__ + -D_WINE) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(mpr.dll mpr.spec) + +list(APPEND SOURCE + auth.c + mpr_main.c + multinet.c + nps.c + pwcache.c + wnet.c + mpr.rc + ${CMAKE_CURRENT_BINARY_DIR}/mpr_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/mpr.def) + +add_library(mpr SHARED ${SOURCE}) + +set_module_type(mpr win32dll) + +target_link_libraries(mpr wine) +add_importlibs(mpr advapi32 user32 msvcrt kernel32 ntdll) +add_cd_file(TARGET mpr DESTINATION reactos/system32 FOR all) +add_importlib_target(mpr.spec) diff --git a/reactos/dll/win32/mpr/mpr_ros.diff b/reactos/dll/win32/mpr/mpr_ros.diff new file mode 100644 index 00000000000..82eb990fbca --- /dev/null +++ b/reactos/dll/win32/mpr/mpr_ros.diff @@ -0,0 +1,47 @@ +Index: mpr.spec +=================================================================== +--- mpr.spec (revision 49877) ++++ mpr.spec (working copy) +@@ -1,23 +1,23 @@ + # ordinal exports +- 1 stub @ +- 2 stub @ +- 3 stub @ +- 4 stub @ +- 5 stub @ +- 6 stub @ +- 7 stub @ +- 8 stub @ +- 9 stub @ +-12 stub @ +-13 stub @ +-14 stub @ +-15 stub @ +-16 stub @ +-17 stub @ +-18 stub @ +-19 stub @ +-20 stub @ +-21 stub @ ++ 1 stub MPR_1 ++ 2 stub MPR_2 ++ 3 stub MPR_3 ++ 4 stub MPR_4 ++ 5 stub MPR_5 ++ 6 stub MPR_6 ++ 7 stub MPR_7 ++ 8 stub MPR_8 ++ 9 stub MPR_9 ++12 stub MPR_12 ++13 stub MPR_13 ++14 stub MPR_14 ++15 stub MPR_15 ++16 stub MPR_16 ++17 stub MPR_17 ++18 stub MPR_18 ++19 stub MPR_19 ++20 stub MPR_20 ++21 stub MPR_21 + 22 stdcall @(long) MPR_Alloc + 23 stdcall @(ptr long) MPR_ReAlloc + 24 stdcall @(ptr) MPR_Free diff --git a/reactos/dll/win32/mprapi/CMakeLists.txt b/reactos/dll/win32/mprapi/CMakeLists.txt new file mode 100644 index 00000000000..95c08f67074 --- /dev/null +++ b/reactos/dll/win32/mprapi/CMakeLists.txt @@ -0,0 +1,17 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(mprapi.dll mprapi.spec) + +list(APPEND SOURCE + mprapi.c + ${CMAKE_CURRENT_BINARY_DIR}/mprapi_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/mprapi.def) + +add_library(mprapi SHARED ${SOURCE}) + +set_module_type(mprapi win32dll) +target_link_libraries(mprapi wine) +add_importlibs(mprapi msvcrt kernel32 ntdll) +add_cd_file(TARGET mprapi DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/msacm32/CMakeLists.txt b/reactos/dll/win32/msacm32/CMakeLists.txt new file mode 100644 index 00000000000..c163adb51a2 --- /dev/null +++ b/reactos/dll/win32/msacm32/CMakeLists.txt @@ -0,0 +1,34 @@ + +set_unicode() + +add_definitions(-D_DLL -D__USE_CRTIMP) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(msacm32.dll msacm32.spec) + +list(APPEND SOURCE + driver.c + filter.c + format.c + internal.c + msacm32_main.c + pcmconverter.c + stream.c + ${CMAKE_CURRENT_BINARY_DIR}/msacm32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/msacm32.def) + +add_library(msacm32 SHARED ${SOURCE}) + +set_entrypoint(msacm32 DllMain@12) +set_image_base(msacm32 ${baseaddress_msacm32}) + +target_link_libraries(msacm32 wine) +add_importlibs(msacm32 msvcrt advapi32 user32 winmm kernel32 ntdll) +add_dependencies(msacm32 psdk) + +add_cd_file(TARGET msacm32 DESTINATION reactos/system32 FOR all) +add_importlib_target(msacm32.spec) + +add_subdirectory(msacm32.drv) diff --git a/reactos/dll/win32/msacm32/msacm32.drv/CMakeLists.txt b/reactos/dll/win32/msacm32/msacm32.drv/CMakeLists.txt new file mode 100644 index 00000000000..d90da1ef907 --- /dev/null +++ b/reactos/dll/win32/msacm32/msacm32.drv/CMakeLists.txt @@ -0,0 +1,18 @@ + +set_unicode() + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(msacm32.drv msacm32.drv.spec) + +add_library(msacm32.drv SHARED wavemap.c wavemap.rc + ${CMAKE_CURRENT_BINARY_DIR}/msacm32.def) + +set_entrypoint(msacm32.drv 0) +set_target_properties(msacm32.drv PROPERTIES SUFFIX "") + +target_link_libraries(msacm32.drv wine) + +add_importlibs(msacm32.drv msacm32 user32 winmm advapi32 kernel32 ntdll) +add_dependencies(msacm32.drv psdk) +add_cd_file(TARGET msacm32.drv DESTINATION reactos/system32 FOR all) \ No newline at end of file diff --git a/reactos/dll/win32/msadp32.acm/CMakeLists.txt b/reactos/dll/win32/msadp32.acm/CMakeLists.txt new file mode 100644 index 00000000000..1c73fd654b1 --- /dev/null +++ b/reactos/dll/win32/msadp32.acm/CMakeLists.txt @@ -0,0 +1,21 @@ + +add_definitions( + -D_DLL -D__USE_CRTIMP + -D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(msadp32.acm msadp32.acm.spec) + +list(APPEND SOURCE + msadp32.c + ${CMAKE_CURRENT_BINARY_DIR}/msadp32.def) + +add_library(msadp32.acm SHARED ${SOURCE}) + +set_entrypoint(msadp32.acm 0) +set_target_properties(msadp32.acm PROPERTIES SUFFIX "") +target_link_libraries(msadp32.acm wine) +add_importlibs(msadp32.acm winmm user32 msvcrt kernel32 ntdll) +add_dependencies(msadp32.acm psdk) +add_cd_file(TARGET msadp32.acm DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/msafd/CMakeLists.txt b/reactos/dll/win32/msafd/CMakeLists.txt new file mode 100644 index 00000000000..7b87ac897a2 --- /dev/null +++ b/reactos/dll/win32/msafd/CMakeLists.txt @@ -0,0 +1,28 @@ + +set_unicode() + +include_directories( + BEFORE include + ${REACTOS_SOURCE_DIR}/include/reactos/drivers) + +spec2def(msafd.dll msafd.spec) + +list(APPEND SOURCE + msafd.rc + misc/dllmain.c + misc/event.c + misc/helpers.c + misc/sndrcv.c + misc/stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/msafd.def) + +add_library(msafd SHARED + ${CMAKE_CURRENT_BINARY_DIR}/msafd_msafd.h.gch + ${SOURCE}) + +set_module_type(msafd win32dll) + +add_pch(msafd ${CMAKE_CURRENT_SOURCE_DIR}/msafd.h ${SOURCE}) + +add_importlibs(msafd advapi32 msvcrt kernel32 ntdll) +add_cd_file(TARGET msafd DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/mscat32/CMakeLists.txt b/reactos/dll/win32/mscat32/CMakeLists.txt new file mode 100644 index 00000000000..091608a44fd --- /dev/null +++ b/reactos/dll/win32/mscat32/CMakeLists.txt @@ -0,0 +1,17 @@ + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(mscat32.dll mscat32.spec) + +list(APPEND SOURCE + main.c + ${CMAKE_CURRENT_BINARY_DIR}/mscat32.def) + +add_library(mscat32 SHARED ${SOURCE}) + +set_module_type(mscat32 win32dll) +target_link_libraries(mscat32 wine) +add_importlibs(mscat32 wintrust msvcrt kernel32 ntdll) +add_cd_file(TARGET mscat32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/mscms/CMakeLists.txt b/reactos/dll/win32/mscms/CMakeLists.txt new file mode 100644 index 00000000000..8b3f6d9e74c --- /dev/null +++ b/reactos/dll/win32/mscms/CMakeLists.txt @@ -0,0 +1,25 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(mscms.dll mscms.spec) + +list(APPEND SOURCE + handle.c + icc.c + mscms_main.c + profile.c + stub.c + transform.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/mscms_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/mscms.def) + +add_library(mscms SHARED ${SOURCE}) + +set_module_type(mscms win32dll) +target_link_libraries(mscms wine) +add_importlibs(mscms msvcrt advapi32 kernel32 ntdll) +add_cd_file(TARGET mscms DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/mscoree/CMakeLists.txt b/reactos/dll/win32/mscoree/CMakeLists.txt new file mode 100644 index 00000000000..75d41f63ddb --- /dev/null +++ b/reactos/dll/win32/mscoree/CMakeLists.txt @@ -0,0 +1,18 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(mscoree.dll mscoree.spec) + +list(APPEND SOURCE + corruntimehost.c + mscoree_main.c + ${CMAKE_CURRENT_BINARY_DIR}/mscoree_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/mscoree.def) + +add_library(mscoree SHARED ${SOURCE}) + +set_module_type(mscoree win32dll) +target_link_libraries(mscoree wine uuid) +add_importlibs(mscoree advapi32 shell32 msvcrt kernel32 ntdll) +add_cd_file(TARGET mscoree DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/msctf/CMakeLists.txt b/reactos/dll/win32/msctf/CMakeLists.txt new file mode 100644 index 00000000000..634e00dde1c --- /dev/null +++ b/reactos/dll/win32/msctf/CMakeLists.txt @@ -0,0 +1,37 @@ + +add_definitions( + -D__WINESRC__ + -D_DLL -D__USE_CRTIMP) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(msctf.dll msctf.spec) + +list(APPEND SOURCE + categorymgr.c + compartmentmgr.c + context.c + displayattributemgr.c + documentmgr.c + inputprocessor.c + langbarmgr.c + msctf.c + range.c + regsvr.c + threadmgr.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/msctf_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/msctf.def) + +add_library(msctf SHARED ${SOURCE}) + +set_module_type(msctf win32dll) + +target_link_libraries(msctf uuid wine) +add_importlibs(msctf ole32 oleaut32 user32 advapi32 msvcrt kernel32 ntdll) +add_cd_file(TARGET msctf DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/msftedit/CMakeLists.txt b/reactos/dll/win32/msftedit/CMakeLists.txt new file mode 100644 index 00000000000..89b40b56f31 --- /dev/null +++ b/reactos/dll/win32/msftedit/CMakeLists.txt @@ -0,0 +1,21 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(msftedit.dll msftedit.spec) + +list(APPEND SOURCE + msftedit_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/msftedit_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/msftedit.def) + +add_library(msftedit SHARED ${SOURCE}) + +set_module_type(msftedit win32dll) + +target_link_libraries(msftedit uuid wine) +add_importlibs(msftedit riched20 msvcrt kernel32 ntdll) +add_cd_file(TARGET msftedit DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/msg711.acm/CMakeLists.txt b/reactos/dll/win32/msg711.acm/CMakeLists.txt new file mode 100644 index 00000000000..6f6deeb3192 --- /dev/null +++ b/reactos/dll/win32/msg711.acm/CMakeLists.txt @@ -0,0 +1,22 @@ + +add_definitions( + -D_DLL -D__USE_CRTIMP + -D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(msg711.acm msg711.acm.spec) + +list(APPEND SOURCE + msg711.c + ${CMAKE_CURRENT_BINARY_DIR}/msg711.def) + +add_library(msg711.acm SHARED ${SOURCE}) + +set_entrypoint(msg711.acm 0) +set_target_properties(msg711.acm PROPERTIES SUFFIX "") + +target_link_libraries(msg711.acm wine) +add_importlibs(msg711.acm winmm user32 msvcrt kernel32 ntdll) +add_dependencies(msg711.acm psdk) +add_cd_file(TARGET msg711.acm DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/msgina/CMakeLists.txt b/reactos/dll/win32/msgina/CMakeLists.txt new file mode 100644 index 00000000000..61071b9a646 --- /dev/null +++ b/reactos/dll/win32/msgina/CMakeLists.txt @@ -0,0 +1,24 @@ + +include_directories( + include + ${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(msgina.dll msgina.spec) + +list(APPEND SOURCE + gui.c + msgina.c + stubs.c + tui.c + msgina.rc + ${CMAKE_CURRENT_BINARY_DIR}/msgina_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/msgina.def) + +add_library(msgina SHARED ${SOURCE}) + +set_module_type(msgina win32dll) +target_link_libraries(msgina wine) +add_importlibs(msgina advapi32 user32 gdi32 userenv msvcrt kernel32 ntdll) +add_cd_file(TARGET msgina DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/msgsm32.acm/CMakeLists.txt b/reactos/dll/win32/msgsm32.acm/CMakeLists.txt new file mode 100644 index 00000000000..1de7b02958c --- /dev/null +++ b/reactos/dll/win32/msgsm32.acm/CMakeLists.txt @@ -0,0 +1,23 @@ + +add_definitions( + -D_DLL -D__USE_CRTIMP + -D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(msgsm32.acm msgsm32.acm.spec) + +list(APPEND SOURCE + msgsm32.c + ${CMAKE_CURRENT_BINARY_DIR}/msgsm32.def) + +add_library(msgsm32.acm SHARED ${SOURCE}) + +set_entrypoint(msgsm32.acm 0) +set_target_properties(msgsm32.acm PROPERTIES SUFFIX "") + +target_link_libraries(msgsm32.acm wine) + +add_importlibs(msgsm32.acm winmm user32 msvcrt kernel32 ntdll) +add_dependencies(msgsm32.acm psdk) +add_cd_file(TARGET msgsm32.acm DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/mshtml.tlb/CMakeLists.txt b/reactos/dll/win32/mshtml.tlb/CMakeLists.txt new file mode 100644 index 00000000000..9645d148f3c --- /dev/null +++ b/reactos/dll/win32/mshtml.tlb/CMakeLists.txt @@ -0,0 +1,14 @@ + +add_typelib(mshtml_tlb mshtml_tlb.idl) +add_dependencies(mshtml_tlb stdole2) + +add_definitions(-D__WINESRC__) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_library(mshtml.tlb SHARED rsrc.rc) + +set_entrypoint(mshtml.tlb 0) +set_target_properties(mshtml.tlb PROPERTIES SUFFIX "") +add_dependencies(mshtml.tlb mshtml_tlb) +add_cd_file(TARGET mshtml.tlb DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/mshtml/CMakeLists.txt b/reactos/dll/win32/mshtml/CMakeLists.txt new file mode 100644 index 00000000000..4f174ee0bca --- /dev/null +++ b/reactos/dll/win32/mshtml/CMakeLists.txt @@ -0,0 +1,108 @@ + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +add_definitions( + -D__WINESRC__ + -D_DLL + -D__USE_CRTIMP) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_idl_Headers(mshtml_nsiface_header nsiface.idl) + +set_rc_compiler() + +spec2def(mshtml.dll mshtml.spec) + +list(APPEND SOURCE + conpoint.c + dispex.c + editor.c + hlink.c + htmlanchor.c + htmlbody.c + htmlcomment.c + htmlcurstyle.c + htmldoc.c + htmldoc3.c + htmldoc5.c + htmlelem.c + htmlelem2.c + htmlelem3.c + htmlelemcol.c + htmlevent.c + htmlform.c + htmlframe.c + htmlframebase.c + htmlgeneric.c + htmliframe.c + htmlimg.c + htmlinput.c + htmllocation.c + htmlnode.c + htmloption.c + htmlscreen.c + htmlscript.c + htmlselect.c + htmlstyle.c + htmlstyle2.c + htmlstyle3.c + htmlstylesheet.c + htmltable.c + htmltablerow.c + htmltextarea.c + htmltextcont.c + htmltextnode.c + htmlwindow.c + install.c + loadopts.c + main.c + mutation.c + navigate.c + nsembed.c + nsevents.c + nsio.c + nsservice.c + olecmd.c + oleobj.c + olewnd.c + omnavigator.c + persist.c + protocol.c + script.c + secmgr.c + selection.c + service.c + task.c + txtrange.c + view.c + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/mshtml_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/mshtml.def) + +add_library(mshtml SHARED ${SOURCE}) + +set_module_type(mshtml win32dll) + +target_link_libraries(mshtml + uuid + wine + strmiids + oldnames) + +add_importlibs(mshtml + urlmon + shlwapi + ole32 + oleaut32 + user32 + gdi32 + advapi32 + wininet + msvcrt + kernel32 + ntdll) + +add_dependencies(mshtml mshtml_nsiface_header) +add_cd_file(TARGET mshtml DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/msi/CMakeLists.txt b/reactos/dll/win32/msi/CMakeLists.txt new file mode 100644 index 00000000000..c7d217c2906 --- /dev/null +++ b/reactos/dll/win32/msi/CMakeLists.txt @@ -0,0 +1,99 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__ -DMSIRUNMODE=MSIRUNMODE_T) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +set_rc_compiler() +spec2def(msi.dll msi.spec) + +generate_idl_iids(msiserver.idl) + +list(APPEND SOURCE + action.c + alter.c + appsearch.c + assembly.c + automation.c + classes.c + cond.tab.c + create.c + custom.c + database.c + delete.c + dialog.c + distinct.c + drop.c + events.c + files.c + font.c + format.c + handle.c + helpers.c + insert.c + install.c + join.c + media.c + msi.c + msi_main.c + msiquery.c + package.c + preview.c + record.c + registry.c + regsvr.c + script.c + select.c + source.c + sql.tab.c + storages.c + streams.c + string.c + suminfo.c + table.c + tokenize.c + update.c + upgrade.c + where.c + msi.rc + ${CMAKE_CURRENT_BINARY_DIR}/msiserver_i.c + ${CMAKE_CURRENT_BINARY_DIR}/msi_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/msi.def) + +if(MSVC) + set_source_files_properties(custom.c PROPERTIES COMPILE_FLAGS /FImsvchelper.h) +endif() + +add_library(msi SHARED ${SOURCE}) + +add_idl_Headers(msi_idlheader msiserver.idl) + +add_typelib(msi_tlb msiserver.idl) + +set_module_type(msi win32dll) + +target_link_libraries(msi uuid ${PSEH_LIB} wine) + +add_dependencies(msi msi_idlheader msi_tlb) + +add_importlibs(msi + advapi32 + cabinet + comctl32 + gdi32 + odbccp32 + ole32 + oleaut32 + shell32 + shlwapi + urlmon + user32 + version + wininet + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET msi DESTINATION reactos/system32 FOR all) +add_importlib_target(msi.spec) diff --git a/reactos/dll/win32/msimg32/CMakeLists.txt b/reactos/dll/win32/msimg32/CMakeLists.txt new file mode 100644 index 00000000000..f571b8b0114 --- /dev/null +++ b/reactos/dll/win32/msimg32/CMakeLists.txt @@ -0,0 +1,17 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(msimg32.dll msimg32.spec) + +list(APPEND SOURCE + msimg32_main.c + ${CMAKE_CURRENT_BINARY_DIR}/msimg32.def) + +add_library(msimg32 SHARED ${SOURCE}) + +set_module_type(msimg32 win32dll) +target_link_libraries(msimg32 wine) +add_importlibs(msimg32 gdi32 msvcrt kernel32 ntdll) +add_cd_file(TARGET msimg32 DESTINATION reactos/system32 FOR all) +add_importlib_target(msimg32.spec) diff --git a/reactos/dll/win32/msimtf/CMakeLists.txt b/reactos/dll/win32/msimtf/CMakeLists.txt new file mode 100644 index 00000000000..3832d3f787b --- /dev/null +++ b/reactos/dll/win32/msimtf/CMakeLists.txt @@ -0,0 +1,22 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(msimtf.dll msimtf.spec) + +list(APPEND SOURCE + activeimmapp.c + main.c + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/msimtf_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/msimtf.def) + +add_library(msimtf SHARED ${SOURCE}) + +set_module_type(msimtf win32dll) + +target_link_libraries(msimtf uuid wine) +add_importlibs(msimtf msvcrt imm32 kernel32 ntdll) +add_cd_file(TARGET msimtf DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/msisip/CMakeLists.txt b/reactos/dll/win32/msisip/CMakeLists.txt new file mode 100644 index 00000000000..c212187aaf3 --- /dev/null +++ b/reactos/dll/win32/msisip/CMakeLists.txt @@ -0,0 +1,18 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(msisip.dll msisip.spec) + +list(APPEND SOURCE + main.c + ${CMAKE_CURRENT_BINARY_DIR}/msisip_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/msisip.def) + +add_library(msisip SHARED ${SOURCE}) + +set_module_type(msisip win32dll) + +target_link_libraries(msisip wine) +add_importlibs(msisip crypt32 ole32 msvcrt kernel32 ntdll) +add_cd_file(TARGET msisip DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/msisys.ocx/CMakeLists.txt b/reactos/dll/win32/msisys.ocx/CMakeLists.txt new file mode 100644 index 00000000000..94bab9d2afd --- /dev/null +++ b/reactos/dll/win32/msisys.ocx/CMakeLists.txt @@ -0,0 +1,16 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(msisys.ocx msisys.ocx.spec) + +list(APPEND SOURCE + msisys.c + ${CMAKE_CURRENT_BINARY_DIR}/msisys.def) + +add_library(msisys SHARED ${SOURCE}) + +set_module_type(msisys win32ocx) +target_link_libraries(msisys uuid wine) +add_importlibs(msisys msvcrt kernel32 ntdll) +add_cd_file(TARGET msisys DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/msnet32/CMakeLists.txt b/reactos/dll/win32/msnet32/CMakeLists.txt new file mode 100644 index 00000000000..2ed1cda1ebd --- /dev/null +++ b/reactos/dll/win32/msnet32/CMakeLists.txt @@ -0,0 +1,15 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(msnet32.dll msnet32.spec) + +add_library(msnet32 SHARED msnet_main.c ${CMAKE_CURRENT_BINARY_DIR}/msnet32.def) + +set_module_type(msnet32 win32dll) + +target_link_libraries(msnet32 wine) + +add_importlibs(msnet32 msvcrt kernel32 ntdll) + +add_cd_file(TARGET msnet32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/msrle32/CMakeLists.txt b/reactos/dll/win32/msrle32/CMakeLists.txt new file mode 100644 index 00000000000..9aedf677b8f --- /dev/null +++ b/reactos/dll/win32/msrle32/CMakeLists.txt @@ -0,0 +1,22 @@ + +add_definitions( + -D__WINESRC__ + -D_DLL -D__USE_CRTIMP) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(msrle32.dll msrle32.spec) + +list(APPEND SOURCE + msrle32.c + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/msrle32.def) + +add_library(msrle32 SHARED ${SOURCE}) + +set_module_type(msrle32 win32dll) +target_link_libraries(msrle32 wine) +add_importlibs(msrle32 msvcrt winmm user32 kernel32 ntdll) +add_cd_file(TARGET msrle32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/mssign32/CMakeLists.txt b/reactos/dll/win32/mssign32/CMakeLists.txt new file mode 100644 index 00000000000..8b2312221f5 --- /dev/null +++ b/reactos/dll/win32/mssign32/CMakeLists.txt @@ -0,0 +1,20 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(mssign32.dll mssign32.spec) + +list(APPEND SOURCE + mssign32_main.c + ${CMAKE_CURRENT_BINARY_DIR}/mssign32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/mssign32.def) + +add_library(mssign32 SHARED ${SOURCE}) + +set_module_type(mssign32 win32dll) + +target_link_libraries(mssign32 wine) + +add_importlibs(mssign32 msvcrt kernel32 ntdll) + +add_cd_file(TARGET mssign32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/mssip32/CMakeLists.txt b/reactos/dll/win32/mssip32/CMakeLists.txt new file mode 100644 index 00000000000..0e3d3eebedf --- /dev/null +++ b/reactos/dll/win32/mssip32/CMakeLists.txt @@ -0,0 +1,20 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(mssip32.dll mssip32.spec) + +list(APPEND SOURCE + main.c + ${CMAKE_CURRENT_BINARY_DIR}/mssip32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/mssip32.def) + +add_library(mssip32 SHARED ${SOURCE}) + +set_module_type(mssip32 win32dll) + +target_link_libraries(mssip32 wine) + +add_importlibs(mssip32 msvcrt kernel32 ntdll) + +add_cd_file(TARGET mssip32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/mstask/CMakeLists.txt b/reactos/dll/win32/mstask/CMakeLists.txt new file mode 100644 index 00000000000..cf5b7571024 --- /dev/null +++ b/reactos/dll/win32/mstask/CMakeLists.txt @@ -0,0 +1,37 @@ + +add_definitions(-D__WINESRC__) + +remove_definitions(-DWINVER=0x502) +add_definitions(-DWINVER=0x600) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +generate_idl_iids(mstask_local.idl) + +spec2def(mstask.dll mstask.spec) + +list(APPEND SOURCE + factory.c + mstask_main.c + task.c + task_scheduler.c + task_trigger.c + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/mstask_local_i.c + ${CMAKE_CURRENT_BINARY_DIR}/mstask_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/mstask.def) + +add_library(mstask SHARED ${SOURCE}) + +set_module_type(mstask win32dll) + +target_link_libraries(mstask uuid wine) + +add_importlibs(mstask ole32 msvcrt kernel32 ntdll) + +add_cd_file(TARGET mstask DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/msvcrt/CMakeLists.txt b/reactos/dll/win32/msvcrt/CMakeLists.txt new file mode 100644 index 00000000000..3cf63aa2234 --- /dev/null +++ b/reactos/dll/win32/msvcrt/CMakeLists.txt @@ -0,0 +1,45 @@ + +spec2def(msvcrt.dll msvcrt.spec) + +add_definitions( + -DUSE_MSVCRT_PREFIX + -D_MSVCRT_ + -D_MSVCRT_LIB_ + -D_MT + -D_CTYPE_DISABLE_MACROS + -D_NO_INLINING + -DCRTDLL + -D__MINGW_IMPORT="") + +include_directories(${REACTOS_SOURCE_DIR}/lib/sdk/crt/include) + +set_rc_compiler() + +list(APPEND SOURCE + dllmain.c + stubs.c + msvcrt.rc + ${CMAKE_CURRENT_BINARY_DIR}/msvcrt.def) + +add_library(msvcrt SHARED + ${CMAKE_CURRENT_BINARY_DIR}/msvcrt_precomp.h.gch + ${SOURCE}) + +if (NOT MSVC) +set_target_properties(msvcrt PROPERTIES LINK_FLAGS "-u __seh_longjmp_unwind@4") +endif() + +add_dependencies(msvcrt psdk) +set_entrypoint(msvcrt DllMain@12) +set_image_base(msvcrt ${baseaddress_msvcrt}) + +target_link_libraries(msvcrt + crt + wine + ${PSEH_LIB}) + +add_pch(msvcrt ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) +add_importlibs(msvcrt kernel32 ntdll) +add_cd_file(TARGET msvcrt DESTINATION reactos/system32 FOR all) +add_importlib_target(msvcrt.spec) + diff --git a/reactos/dll/win32/msvcrt20/CMakeLists.txt b/reactos/dll/win32/msvcrt20/CMakeLists.txt new file mode 100644 index 00000000000..fb3bc51dd93 --- /dev/null +++ b/reactos/dll/win32/msvcrt20/CMakeLists.txt @@ -0,0 +1,20 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_definitions(-D__WINESRC__) +add_definitions(-DCRTDLL) + +spec2def(msvcrt20.dll msvcrt20.spec) + +list(APPEND SOURCE + msvcrt20.c + ${CMAKE_CURRENT_BINARY_DIR}/msvcrt20.def) + +add_library(msvcrt20 SHARED ${SOURCE}) +set_entrypoint(msvcrt20 0) + +target_link_libraries(msvcrt20 wine) + +add_importlibs(msvcrt20 msvcrt kernel32 ntdll) +add_dependencies(msvcrt20 psdk) +add_cd_file(TARGET msvcrt20 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/msvcrt40/CMakeLists.txt b/reactos/dll/win32/msvcrt40/CMakeLists.txt new file mode 100644 index 00000000000..ac69cb56d38 --- /dev/null +++ b/reactos/dll/win32/msvcrt40/CMakeLists.txt @@ -0,0 +1,21 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_definitions(-D__WINESRC__) +add_definitions(-DCRTDLL) + +spec2def(msvcrt40.dll msvcrt40.spec) + +list(APPEND SOURCE + msvcrt40.c + ${CMAKE_CURRENT_BINARY_DIR}/msvcrt40.def) + +add_library(msvcrt40 SHARED ${SOURCE}) + +set_module_type(msvcrt40 win32dll) + +target_link_libraries(msvcrt40 wine) + +add_importlibs(msvcrt40 msvcrt kernel32 ntdll) + +add_cd_file(TARGET msvcrt40 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/msvfw32/CMakeLists.txt b/reactos/dll/win32/msvfw32/CMakeLists.txt new file mode 100644 index 00000000000..57367f75378 --- /dev/null +++ b/reactos/dll/win32/msvfw32/CMakeLists.txt @@ -0,0 +1,27 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_definitions(-D__WINESRC__) +add_definitions(-D_WINE) + +set_rc_compiler() +spec2def(msvfw32.dll msvfw32.spec) + +list(APPEND SOURCE + mciwnd.c + msvideo_main.c + drawdib.c + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/msvfw32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/msvfw32.def) + +add_library(msvfw32 SHARED ${SOURCE}) + +set_module_type(msvfw32 win32dll) + +target_link_libraries(msvfw32 wine) + +add_importlibs(msvfw32 winmm version comctl32 user32 gdi32 advapi32 msvcrt kernel32 ntdll) + +add_cd_file(TARGET msvfw32 DESTINATION reactos/system32 FOR all) +add_importlib_target(msvfw32.spec) diff --git a/reactos/dll/win32/msvidc32/CMakeLists.txt b/reactos/dll/win32/msvidc32/CMakeLists.txt new file mode 100644 index 00000000000..8ab0e77c64b --- /dev/null +++ b/reactos/dll/win32/msvidc32/CMakeLists.txt @@ -0,0 +1,20 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_definitions( + -D__WINESRC__ + -D_WINE) + +spec2def(msvidc32.dll msvidc32.spec) + +list(APPEND SOURCE + msvideo1.c + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/msvidc32.def) + +add_library(msvidc32 SHARED ${SOURCE}) + +set_module_type(msvidc32 win32dll) +target_link_libraries(msvidc32 wine) +add_importlibs(msvidc32 user32 msvcrt kernel32 ntdll) +add_cd_file(TARGET msvidc32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/mswsock/CMakeLists.txt b/reactos/dll/win32/mswsock/CMakeLists.txt new file mode 100644 index 00000000000..8d501879f33 --- /dev/null +++ b/reactos/dll/win32/mswsock/CMakeLists.txt @@ -0,0 +1,20 @@ + +set_unicode() + +add_definitions(-DLE) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(mswsock.dll mswsock.spec) + +list(APPEND SOURCE + extensions.c + stubs.c + mswsock.rc + ${CMAKE_CURRENT_BINARY_DIR}/mswsock.def) + +add_library(mswsock SHARED ${SOURCE}) + +set_module_type(mswsock win32dll) +add_importlibs(mswsock ws2_32 msvcrt kernel32) +add_cd_file(TARGET mswsock DESTINATION reactos/system32 FOR all) +add_importlib_target(mswsock.spec) diff --git a/reactos/dll/win32/msxml3/CMakeLists.txt b/reactos/dll/win32/msxml3/CMakeLists.txt new file mode 100644 index 00000000000..40052a11d9e --- /dev/null +++ b/reactos/dll/win32/msxml3/CMakeLists.txt @@ -0,0 +1,84 @@ + +add_typelib(msxml3_v1 msxml3_v1.idl) +add_dependencies(msxml3_v1 stdole2) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x601) + +add_definitions( + -D__WINESRC__ + -D_WINE + -DLIBXML_STATIC + -D_DLL + -D__USE_CRTIMP) + +if(MSVC) +add_definitions(/FIwine/typeof.h) +endif(MSVC) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() +spec2def(msxml3.dll msxml3.spec) + +list(APPEND SOURCE + attribute.c + comment.c + domdoc.c + element.c + factory.c + main.c + httprequest.c + node.c + nodelist.c + nodemap.c + parseerror.c + pi.c + queryresult.c + regsvr.c + schema.c + text.c + uuid.c + xmldoc.c + xmlelem.c + saxreader.c + bsc.c + cdata.c + dispex.c + docfrag.c + domimpl.c + entityref.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/msxml3_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/msxml3.def) + +add_library(msxml3 SHARED ${SOURCE}) + +set_module_type(msxml3 win32dll) + +target_link_libraries(msxml3 + libxml2 + uuid + wine + wineldr) + +add_importlibs(msxml3 + msvcrt + urlmon + wininet + ws2_32 + comctl32 + shell32 + shlwapi + cabinet + oleaut32 + ole32 + version + user32 + gdi32 + advapi32 + kernel32 + ntdll) + +add_dependencies(msxml3 msxml3_v1) +add_cd_file(TARGET msxml3 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/msxml3/msxml3_ros.diff b/reactos/dll/win32/msxml3/msxml3_ros.diff new file mode 100644 index 00000000000..2078a1712b6 --- /dev/null +++ b/reactos/dll/win32/msxml3/msxml3_ros.diff @@ -0,0 +1,22 @@ +Index: msxml3.spec +=================================================================== +--- msxml3.spec (revision 49877) ++++ msxml3.spec (working copy) +@@ -1,10 +1,10 @@ +- 6 stub @ +- 7 stub @ +- 8 stub @ +- 9 stub @ +-10 stub @ +-11 stub @ +-12 stub @ ++ 6 stub MSXML3_6 ++ 7 stub MSXML3_7 ++ 8 stub MSXML3_8 ++ 9 stub MSXML3_9 ++10 stub MSXML3_10 ++11 stub MSXML3_11 ++12 stub MSXML3_12 + + @ stdcall -private DllCanUnloadNow() + @ stdcall -private DllGetClassObject(ptr ptr ptr) diff --git a/reactos/dll/win32/nddeapi/CMakeLists.txt b/reactos/dll/win32/nddeapi/CMakeLists.txt new file mode 100644 index 00000000000..a085f6bf6d0 --- /dev/null +++ b/reactos/dll/win32/nddeapi/CMakeLists.txt @@ -0,0 +1,19 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(nddeapi.dll nddeapi.spec) + +list(APPEND SOURCE + nddeapi.c + ${CMAKE_CURRENT_BINARY_DIR}/nddeapi_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/nddeapi.def) + +add_library(nddeapi SHARED ${SOURCE}) +set_entrypoint(nddeapi 0) + +target_link_libraries(nddeapi wine) + +add_importlibs(nddeapi kernel32 ntdll) +add_dependencies(nddeapi psdk) +add_cd_file(TARGET nddeapi DESTINATION reactos/system32 FOR all) \ No newline at end of file diff --git a/reactos/dll/win32/netapi32/CMakeLists.txt b/reactos/dll/win32/netapi32/CMakeLists.txt new file mode 100644 index 00000000000..988a6461ed1 --- /dev/null +++ b/reactos/dll/win32/netapi32/CMakeLists.txt @@ -0,0 +1,32 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(netapi32.dll netapi32.spec) + +list(APPEND SOURCE + access.c + apibuf.c + browsr.c + ds.c + local_group.c + nbcmdqueue.c + nbnamecache.c + nbt.c + netapi32.c + netbios.c + share.c + wksta.c + ${CMAKE_CURRENT_BINARY_DIR}/netapi32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/netapi32.def) + +add_library(netapi32 SHARED ${SOURCE}) + +set_module_type(netapi32 win32dll) + +target_link_libraries(netapi32 wine) + +add_importlibs(netapi32 iphlpapi ws2_32 advapi32 msvcrt kernel32 ntdll) + +add_cd_file(TARGET netapi32 DESTINATION reactos/system32 FOR all) +add_importlib_target(netapi32.spec) diff --git a/reactos/dll/win32/netcfgx/CMakeLists.txt b/reactos/dll/win32/netcfgx/CMakeLists.txt new file mode 100644 index 00000000000..fb2e955a563 --- /dev/null +++ b/reactos/dll/win32/netcfgx/CMakeLists.txt @@ -0,0 +1,27 @@ +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +set_rc_compiler() +spec2def(netcfgx.dll netcfgx.spec) + +list(APPEND SOURCE + netcfgx.c + classfactory.c + netcfg_iface.c + inetcfgcomp_iface.c + tcpipconf_notify.c + netcfgx.rc + ${CMAKE_CURRENT_BINARY_DIR}/netcfgx_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/netcfgx.def) + +add_library(netcfgx SHARED ${SOURCE}) + +set_module_type(netcfgx win32dll) + +target_link_libraries(netcfgx + uuid + wine) + +add_importlibs(netcfgx rpcrt4 setupapi advapi32 iphlpapi ole32 user32 comctl32 ws2_32 msvcrt kernel32 ntdll) + +add_cd_file(TARGET netcfgx DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/netevent/CMakeLists.txt b/reactos/dll/win32/netevent/CMakeLists.txt new file mode 100644 index 00000000000..f0f4e5c8dff --- /dev/null +++ b/reactos/dll/win32/netevent/CMakeLists.txt @@ -0,0 +1,13 @@ + +set_unicode() + +include_directories(${REACTOS_BINARY_DIR}/include/reactos) + +add_library(netevent SHARED netevt.rc) + +set_module_type(netevent win32dll) + +add_importlibs(netevent msvcrt kernel32) + +add_dependencies(netevent neteventmsg) +add_cd_file(TARGET netevent DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/netid/CMakeLists.txt b/reactos/dll/win32/netid/CMakeLists.txt new file mode 100644 index 00000000000..57bd8f59f2e --- /dev/null +++ b/reactos/dll/win32/netid/CMakeLists.txt @@ -0,0 +1,14 @@ + +spec2def(netid.dll netid.spec) +set_rc_compiler() + +list(APPEND SOURCE + netid.c + netid.rc + ${CMAKE_CURRENT_BINARY_DIR}/netid.def) + +add_library(netid SHARED ${SOURCE}) + +set_module_type(netid win32dll) +add_importlibs(netid user32 gdi32 comctl32 advapi32 netapi32 msvcrt kernel32 ntdll) +add_cd_file(TARGET netid DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/netid/netid.def b/reactos/dll/win32/netid/netid.def new file mode 100644 index 00000000000..1f765d4760f --- /dev/null +++ b/reactos/dll/win32/netid/netid.def @@ -0,0 +1,5 @@ + +LIBRARY netid.dll + +EXPORTS + CreateNetIDPropertyPage@0 @1 diff --git a/reactos/dll/win32/netshell/CMakeLists.txt b/reactos/dll/win32/netshell/CMakeLists.txt new file mode 100644 index 00000000000..5e2890505bd --- /dev/null +++ b/reactos/dll/win32/netshell/CMakeLists.txt @@ -0,0 +1,47 @@ +add_definitions(-D_NETSHELL_) +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +set_rc_compiler() +spec2def(netshell.dll netshell.spec) + +list(APPEND SOURCE + netshell.c + shfldr_netconnect.c + enumlist.c + netshell.rc + classfactory.c + connectmanager.c + lanconnectui.c + lanstatusui.c + ${CMAKE_CURRENT_BINARY_DIR}/netshell_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/netshell.def) + +add_library(netshell SHARED + ${CMAKE_CURRENT_BINARY_DIR}/netshell_precomp.h.gch + ${SOURCE}) + +set_module_type(netshell win32dll) + +target_link_libraries(netshell + uuid + wine) + +add_importlibs(netshell + msvcrt + shlwapi + shell32 + version + iphlpapi + ole32 + user32 + advapi32 + setupapi + ws2_32 + comctl32 + kernel32 + ntdll) + +add_pch(netshell ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +add_cd_file(TARGET netshell DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/newdev/CMakeLists.txt b/reactos/dll/win32/newdev/CMakeLists.txt new file mode 100644 index 00000000000..d8c112f149d --- /dev/null +++ b/reactos/dll/win32/newdev/CMakeLists.txt @@ -0,0 +1,23 @@ + +set_unicode() + +spec2def(newdev.dll newdev.spec) + +list(APPEND SOURCE + newdev.c + stubs.c + wizard.c + newdev.rc + ${CMAKE_CURRENT_BINARY_DIR}/newdev_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/newdev.def) + +add_library(newdev SHARED ${SOURCE}) + +set_module_type(newdev win32dll) + +target_link_libraries(newdev wine) + +add_importlibs(newdev gdi32 comctl32 setupapi advapi32 user32 shell32 msvcrt kernel32 ntdll) + +add_cd_file(TARGET newdev DESTINATION reactos/system32 FOR all) +add_importlib_target(newdev.spec) diff --git a/reactos/dll/win32/ntdsapi/CMakeLists.txt b/reactos/dll/win32/ntdsapi/CMakeLists.txt new file mode 100644 index 00000000000..60f13dbc4d2 --- /dev/null +++ b/reactos/dll/win32/ntdsapi/CMakeLists.txt @@ -0,0 +1,20 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(ntdsapi.dll ntdsapi.spec) + +list(APPEND SOURCE + ntdsapi.c + ${CMAKE_CURRENT_BINARY_DIR}/ntdsapi_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/ntdsapi.def) + +add_library(ntdsapi SHARED ${SOURCE}) +set_entrypoint(ntdsapi 0) + +target_link_libraries(ntdsapi wine) + +add_importlibs(ntdsapi user32 kernel32 ntdll) +add_importlib_target(ntdsapi.spec) +add_dependencies(ntdsapi psdk) +add_cd_file(TARGET ntdsapi DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/ntlanman/CMakeLists.txt b/reactos/dll/win32/ntlanman/CMakeLists.txt new file mode 100644 index 00000000000..a97c616cb7a --- /dev/null +++ b/reactos/dll/win32/ntlanman/CMakeLists.txt @@ -0,0 +1,20 @@ + +set_unicode() + +spec2def(ntlanman.dll ntlanman.spec) + +list(APPEND SOURCE + ntlanman.c + ntlanman.rc + ${CMAKE_CURRENT_BINARY_DIR}/ntlanman_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/ntlanman.def) + +add_library(ntlanman SHARED ${SOURCE}) + +set_module_type(ntlanman win32dll) + +target_link_libraries(ntlanman wine) + +add_importlibs(ntlanman netapi32 msvcrt kernel32 ntdll) + +add_cd_file(TARGET ntlanman DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/ntmarta/CMakeLists.txt b/reactos/dll/win32/ntmarta/CMakeLists.txt new file mode 100644 index 00000000000..6e98937dcc1 --- /dev/null +++ b/reactos/dll/win32/ntmarta/CMakeLists.txt @@ -0,0 +1,27 @@ + +set_unicode() + +add_definitions(-D__WINESRC__) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +spec2def(ntmarta.dll ntmarta.spec) + +list(APPEND SOURCE + ntmarta.c + ntmarta.rc + ${CMAKE_CURRENT_BINARY_DIR}/ntmarta.def) + +add_library(ntmarta SHARED ${SOURCE}) + +set_module_type(ntmarta win32dll) + +add_importlibs(ntmarta + user32 + advapi32 + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET ntmarta DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/ntprint/CMakeLists.txt b/reactos/dll/win32/ntprint/CMakeLists.txt new file mode 100644 index 00000000000..ff7d1681211 --- /dev/null +++ b/reactos/dll/win32/ntprint/CMakeLists.txt @@ -0,0 +1,21 @@ +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +set_rc_compiler() +spec2def(ntprint.dll ntprint.spec) + +list(APPEND SOURCE + ntprint.c + ntprint.rc + ${CMAKE_CURRENT_BINARY_DIR}/ntprint_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/ntprint.def) + +add_library(ntprint SHARED ${SOURCE}) + +set_module_type(ntprint win32dll) + +target_link_libraries(ntprint wine) + +add_importlibs(ntprint winspool msvcrt kernel32 ntdll) +add_dependencies(ntprint psdk) +add_cd_file(TARGET ntprint DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/objsel/CMakeLists.txt b/reactos/dll/win32/objsel/CMakeLists.txt new file mode 100644 index 00000000000..d71651b29b9 --- /dev/null +++ b/reactos/dll/win32/objsel/CMakeLists.txt @@ -0,0 +1,32 @@ + +add_definitions(-D__WINESRC__) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(objsel.dll objsel.spec) + +list(APPEND SOURCE + factory.c + objsel.c + regsvr.c + objsel.rc + ${CMAKE_CURRENT_BINARY_DIR}/objsel.def) + +add_library(objsel SHARED ${SOURCE}) + +set_module_type(objsel win32dll) + +target_link_libraries(objsel uuid wine) + +add_importlibs(objsel + ole32 + user32 + advapi32 + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET objsel DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/odbc32/CMakeLists.txt b/reactos/dll/win32/odbc32/CMakeLists.txt new file mode 100644 index 00000000000..84aeb39ce6d --- /dev/null +++ b/reactos/dll/win32/odbc32/CMakeLists.txt @@ -0,0 +1,27 @@ + +add_definitions(-D__WINESRC__) +add_definitions(-D_DLL -D__USE_CRTIMP) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(odbc32.dll odbc32.spec) + +list(APPEND SOURCE + proxyodbc.c + ${CMAKE_CURRENT_BINARY_DIR}/odbc32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/odbc32.def) + +add_library(odbc32 SHARED ${SOURCE}) + +set_module_type(odbc32 win32dll) + +target_link_libraries(odbc32 wine) + +add_importlibs(odbc32 + msvcrt + advapi32 + kernel32 + ntdll) + + +add_cd_file(TARGET odbc32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/odbccp32/CMakeLists.txt b/reactos/dll/win32/odbccp32/CMakeLists.txt new file mode 100644 index 00000000000..3eb259b7afe --- /dev/null +++ b/reactos/dll/win32/odbccp32/CMakeLists.txt @@ -0,0 +1,27 @@ + +add_definitions( + -D__WINESRC__ + -D_DLL -D__USE_CRTIMP) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(odbccp32.dll odbccp32.spec) + +list(APPEND SOURCE + odbccp32.c + ${CMAKE_CURRENT_BINARY_DIR}/odbccp32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/odbccp32.def) + +add_library(odbccp32 SHARED ${SOURCE}) +set_entrypoint(odbccp32 0) + +target_link_libraries(odbccp32 uuid wine) + +add_importlibs(odbccp32 + msvcrt + advapi32 + kernel32 + ntdll) + +add_importlib_target(odbccp32.spec) +add_cd_file(TARGET odbccp32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/ole32/CMakeLists.txt b/reactos/dll/win32/ole32/CMakeLists.txt new file mode 100644 index 00000000000..bb8ccfd6b56 --- /dev/null +++ b/reactos/dll/win32/ole32/CMakeLists.txt @@ -0,0 +1,90 @@ + +set_rc_compiler() + +spec2def(ole32.dll ole32.spec) +generate_idl_iids(dcom.idl) +add_idl_headers(ole32idl dcom.idl irot.idl) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +add_definitions( + -D__WINESRC__ + -D_OLE32_ + -DENTRY_PREFIX=OLE32_ + -DPROXY_CLSID=CLSID_PSFactoryBuffer + -DREGISTER_PROXY_DLL + -DCOM_NO_WINDOWS_H) + +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_rpcproxy_files( + dcom.idl + ole32_unknwn.idl + ole32_objidl.idl + ole32_oleidl.idl) + +list(APPEND SOURCE + antimoniker.c + bindctx.c + classmoniker.c + clipboard.c + comcat.c + compobj.c + compositemoniker.c + datacache.c + defaulthandler.c + dictionary.c + enumx.c + errorinfo.c + filelockbytes.c + filemoniker.c + ftmarshal.c + git.c + hglobalstream.c + ifs.c + itemmoniker.c + marshal.c + memlockbytes.c + moniker.c + ole2.c + ole2stubs.c + ole2impl.c + ole32_main.c + oleobj.c + oleproxy.c + pointermoniker.c + regsvr.c + rpc.c + stg_prop.c + stg_stream.c + storage32.c + stubmanager.c + usrmarshal.c + ole32res.rc + ${CMAKE_CURRENT_BINARY_DIR}/dcom_i.c + ${CMAKE_CURRENT_BINARY_DIR}/dcom_p.c + ${CMAKE_CURRENT_BINARY_DIR}/ole32_unknwn_p.c + ${CMAKE_CURRENT_BINARY_DIR}/ole32_objidl_p.c + ${CMAKE_CURRENT_BINARY_DIR}/ole32_oleidl_p.c + ${CMAKE_CURRENT_BINARY_DIR}/ole32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/proxy.dlldata.c + ${CMAKE_CURRENT_BINARY_DIR}/ole32.def) + +add_library(ole32 SHARED ${SOURCE}) + +set_module_type(ole32 win32dll) + +target_link_libraries(ole32 + wine + irotrpc + uuid + ${PSEH_LIB}) + +add_importlibs(ole32 advapi32 user32 gdi32 rpcrt4 msvcrt kernel32 ntdll) + +add_dependencies(ole32 ole32idl) +add_cd_file(TARGET ole32 DESTINATION reactos/system32 FOR all) +add_importlib_target(ole32.spec) diff --git a/reactos/dll/win32/oleacc/CMakeLists.txt b/reactos/dll/win32/oleacc/CMakeLists.txt new file mode 100644 index 00000000000..e9948efb432 --- /dev/null +++ b/reactos/dll/win32/oleacc/CMakeLists.txt @@ -0,0 +1,23 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() +spec2def(oleacc.dll oleacc.spec) + +list(APPEND SOURCE + main.c + oleacc.rc + ${CMAKE_CURRENT_BINARY_DIR}/oleacc_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/oleacc.def) + +add_library(oleacc SHARED ${SOURCE}) + +set_module_type(oleacc win32dll) + +target_link_libraries(oleacc wine) + +add_importlibs(oleacc user32 msvcrt kernel32 ntdll) + +add_importlib_target(oleacc.spec) +add_cd_file(TARGET oleacc DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/oleaut32/CMakeLists.txt b/reactos/dll/win32/oleaut32/CMakeLists.txt new file mode 100644 index 00000000000..1a27084c2cb --- /dev/null +++ b/reactos/dll/win32/oleaut32/CMakeLists.txt @@ -0,0 +1,68 @@ + +list(APPEND SOURCE + connpt.c + dispatch.c + hash.c + oleaut.c + olefont.c + olepicture.c + recinfo.c + regsvr.c + safearray.c + stubs.c + tmarshal.c + typelib.c + typelib2.c + ungif.c + usrmarshal.c + varformat.c + variant.c + vartype.c + oleaut32.rc + ${CMAKE_CURRENT_BINARY_DIR}/oleaut32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/proxy.dlldata.c + ${CMAKE_CURRENT_BINARY_DIR}/oleaut32_oaidl_p.c + ${CMAKE_CURRENT_BINARY_DIR}/oleaut32_ocidl_p.c + ${CMAKE_CURRENT_BINARY_DIR}/oleaut32.def) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +add_definitions(-DPROXY_CLSID_IS="{0xb196b286,0xbab4,0x101a,{0xb6,0x9c,0x00,0xaa,0x00,0x34,0x1d,0x07}}") + +add_definitions( + -D__WINESRC__ + -DCOM_NO_WINDOWS_H + -D_OLEAUT32_ + -DPROXY_DELEGATION + -DREGISTER_PROXY_DLL + -DENTRY_PREFIX=OLEAUTPS_) + +if(MSC) +# seems to work, but is this correct ? +# /FIwine/typeof.h +add_definitions(/FIwine/typeof.h) +endif(MSC) + +include_directories( + ${REACTOS_SOURCE_DIR}/include/reactos/libs/libjpeg + ${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(oleaut32.dll oleaut32.spec) + +add_rpcproxy_files(oleaut32_oaidl.idl oleaut32_ocidl.idl) + +add_library(oleaut32 SHARED ${SOURCE}) + +set_module_type(oleaut32 win32dll) + +target_link_libraries(oleaut32 + wine + wineldr + uuid + ${PSEH_LIB}) + +add_importlibs(oleaut32 windowscodecs ole32 rpcrt4 user32 gdi32 advapi32 comctl32 urlmon msvcrt kernel32 ntdll) + +add_cd_file(TARGET oleaut32 DESTINATION reactos/system32 FOR all) +add_importlib_target(oleaut32.spec) diff --git a/reactos/dll/win32/olecli32/CMakeLists.txt b/reactos/dll/win32/olecli32/CMakeLists.txt new file mode 100644 index 00000000000..fa9032389e3 --- /dev/null +++ b/reactos/dll/win32/olecli32/CMakeLists.txt @@ -0,0 +1,20 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +set_rc_compiler() +spec2def(olecli32.dll olecli32.spec) + +list(APPEND SOURCE + olecli_main.c + ${CMAKE_CURRENT_BINARY_DIR}/olecli32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/olecli32.def) + +add_library(olecli32 SHARED ${SOURCE}) +set_entrypoint(olecli32 0) + +target_link_libraries(olecli32 wine) + +add_importlibs(olecli32 ole32 gdi32 kernel32 ntdll) +add_dependencies(olecli32 psdk) +add_cd_file(TARGET olecli32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/oledlg/CMakeLists.txt b/reactos/dll/win32/oledlg/CMakeLists.txt new file mode 100644 index 00000000000..e4d838accc1 --- /dev/null +++ b/reactos/dll/win32/oledlg/CMakeLists.txt @@ -0,0 +1,20 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(oledlg.dll oledlg.spec) + +list(APPEND SOURCE + insobjdlg.c + oledlg_main.c + pastespl.c + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/oledlg.def) + +add_library(oledlg SHARED ${SOURCE}) + +set_module_type(oledlg win32dll) +target_link_libraries(oledlg wine) +add_importlibs(oledlg ole32 comdlg32 user32 advapi32 msvcrt kernel32 ntdll) +add_importlib_target(oledlg.spec) +add_cd_file(TARGET oledlg DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/olepro32/CMakeLists.txt b/reactos/dll/win32/olepro32/CMakeLists.txt new file mode 100644 index 00000000000..3dda022eeb3 --- /dev/null +++ b/reactos/dll/win32/olepro32/CMakeLists.txt @@ -0,0 +1,23 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(olepro32.dll olepro32.spec) + +list(APPEND SOURCE + olepro32stubs.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/olepro32.def) + +add_library(olepro32 SHARED ${SOURCE}) + +set_entrypoint(olepro32 0) + +target_link_libraries(olepro32 wine) + +add_importlibs(olepro32 + oleaut32 + kernel32 + ntdll) + +add_cd_file(TARGET olepro32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/olesvr32/CMakeLists.txt b/reactos/dll/win32/olesvr32/CMakeLists.txt new file mode 100644 index 00000000000..a50cfd70edc --- /dev/null +++ b/reactos/dll/win32/olesvr32/CMakeLists.txt @@ -0,0 +1,22 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(olesvr32.dll olesvr32.spec) + +list(APPEND SOURCE + olesvr_main.c + ${CMAKE_CURRENT_BINARY_DIR}/olesvr32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/olesvr32.def) + +add_library(olesvr32 SHARED ${SOURCE}) + +set_entrypoint(olesvr32 0) + +target_link_libraries(olesvr32 + wine + mingw_common) + +add_importlibs(olesvr32 kernel32 ntdll) +add_dependencies(olesvr32 psdk) +add_cd_file(TARGET olesvr32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/olethk32/CMakeLists.txt b/reactos/dll/win32/olethk32/CMakeLists.txt new file mode 100644 index 00000000000..1fa6589c538 --- /dev/null +++ b/reactos/dll/win32/olethk32/CMakeLists.txt @@ -0,0 +1,22 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +set_rc_compiler() +spec2def(olethk32.dll olethk32.spec) + +list(APPEND SOURCE + main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/olethk32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/olethk32.def) + +add_library(olethk32 SHARED ${SOURCE}) + +set_module_type(olethk32 win32dll) + +target_link_libraries(olethk32 wine) + +add_importlibs(olethk32 msvcrt kernel32 ntdll) +add_dependencies(olethk32 psdk) +add_cd_file(TARGET olethk32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/opengl32/CMakeLists.txt b/reactos/dll/win32/opengl32/CMakeLists.txt new file mode 100644 index 00000000000..a395c5afd7d --- /dev/null +++ b/reactos/dll/win32/opengl32/CMakeLists.txt @@ -0,0 +1,34 @@ + +set_unicode() + +add_definitions(-D_DLL -D__USE_CRTIMP) + +spec2def(opengl32.dll opengl32.spec) + +list(APPEND SOURCE + font.c + gl.c + opengl32.c + wgl.c + ${CMAKE_CURRENT_BINARY_DIR}/opengl32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/opengl32.def) + +add_library(opengl32 SHARED + ${CMAKE_CURRENT_BINARY_DIR}/opengl32_opengl32.h.gch + ${SOURCE}) + +set_module_type(opengl32 win32dll) + +add_importlibs(opengl32 + msvcrt + gdi32 + user32 + advapi32 + glu32 + kernel32 + ntdll) + +add_pch(opengl32 ${CMAKE_CURRENT_SOURCE_DIR}/opengl32.h ${SOURCE}) + +add_cd_file(TARGET opengl32 DESTINATION reactos/system32 FOR all) +add_importlib_target(opengl32.spec) diff --git a/reactos/dll/win32/pdh/CMakeLists.txt b/reactos/dll/win32/pdh/CMakeLists.txt new file mode 100644 index 00000000000..6a814245ccb --- /dev/null +++ b/reactos/dll/win32/pdh/CMakeLists.txt @@ -0,0 +1,24 @@ + +add_definitions(-D__WINESRC__) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(pdh.dll pdh.spec) + +list(APPEND SOURCE + pdh_main.c + ${CMAKE_CURRENT_BINARY_DIR}/pdh_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/pdh.def) + +add_library(pdh SHARED ${SOURCE}) +set_entrypoint(pdh 0) + +target_link_libraries(pdh wine) + +add_importlibs(pdh kernel32 ntdll msvcrt) +add_importlib_target(pdh.spec) + +add_cd_file(TARGET pdh DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/pidgen/CMakeLists.txt b/reactos/dll/win32/pidgen/CMakeLists.txt new file mode 100644 index 00000000000..e175a586c1a --- /dev/null +++ b/reactos/dll/win32/pidgen/CMakeLists.txt @@ -0,0 +1,22 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +set_rc_compiler() +spec2def(pidgen.dll pidgen.spec) + +list(APPEND SOURCE + main.c + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/pidgen_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/pidgen.def) + +add_library(pidgen SHARED ${SOURCE}) + +set_module_type(pidgen win32dll) + +target_link_libraries(pidgen wine) + +add_importlibs(pidgen msvcrt kernel32 ntdll) + +add_cd_file(TARGET pidgen DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/powrprof/CMakeLists.txt b/reactos/dll/win32/powrprof/CMakeLists.txt new file mode 100644 index 00000000000..183a0cba732 --- /dev/null +++ b/reactos/dll/win32/powrprof/CMakeLists.txt @@ -0,0 +1,17 @@ + +spec2def(powrprof.dll powrprof.spec) + +set_unicode() + +add_library(powrprof SHARED + powrprof.c + powrprof.rc + ${CMAKE_CURRENT_BINARY_DIR}/powrprof.def) + +set_module_type(powrprof win32dll) + +target_link_libraries(powrprof wine) + +add_importlibs(powrprof advapi32 user32 comctl32 msvcrt kernel32 ntdll) +add_importlib_target(powrprof.spec) +add_cd_file(TARGET powrprof DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/printui/CMakeLists.txt b/reactos/dll/win32/printui/CMakeLists.txt new file mode 100644 index 00000000000..72777f17c6d --- /dev/null +++ b/reactos/dll/win32/printui/CMakeLists.txt @@ -0,0 +1,21 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +set_rc_compiler() +spec2def(printui.dll printui.spec) + +list(APPEND SOURCE + printui.c + printui.rc + ${CMAKE_CURRENT_BINARY_DIR}/printui_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/printui.def) + +add_library(printui SHARED ${SOURCE}) +set_entrypoint(printui 0) + +target_link_libraries(printui wine) + +add_importlibs(printui shell32 kernel32 ntdll) +add_dependencies(printui psdk) +add_cd_file(TARGET printui DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/psapi/CMakeLists.txt b/reactos/dll/win32/psapi/CMakeLists.txt new file mode 100644 index 00000000000..f0666f0210f --- /dev/null +++ b/reactos/dll/win32/psapi/CMakeLists.txt @@ -0,0 +1,19 @@ + +spec2def(psapi.dll psapi.spec) + +list(APPEND SOURCE + malloc.c + psapi.c + psapi.rc + ${CMAKE_CURRENT_BINARY_DIR}/psapi.def) + +add_library(psapi SHARED + ${CMAKE_CURRENT_BINARY_DIR}/psapi_precomp.h.gch + ${SOURCE}) + +set_module_type(psapi win32dll) +target_link_libraries(psapi epsapi ${PSEH_LIB}) +add_importlibs(psapi msvcrt kernel32 ntdll) +add_importlib_target(psapi.spec) +add_pch(psapi ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) +add_cd_file(TARGET psapi DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/pstorec/CMakeLists.txt b/reactos/dll/win32/pstorec/CMakeLists.txt new file mode 100644 index 00000000000..dc5aa64ce06 --- /dev/null +++ b/reactos/dll/win32/pstorec/CMakeLists.txt @@ -0,0 +1,22 @@ + +add_typelib(pstorec_tlb pstorec_tlb.idl) +add_dependencies(pstorec_tlb stdole2) + +add_definitions(-D__WINESRC__) + +set_rc_compiler() +spec2def(pstorec.dll pstorec.spec) + +list(APPEND SOURCE + pstorec.c + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/pstorec_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/pstorec.def) + +add_library(pstorec SHARED ${SOURCE}) + +set_module_type(pstorec win32dll) +target_link_libraries(pstorec uuid wine) +add_importlibs(pstorec msvcrt kernel32 ntdll) +add_dependencies(pstorec pstorec_tlb) +add_cd_file(TARGET pstorec DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/qmgr/CMakeLists.txt b/reactos/dll/win32/qmgr/CMakeLists.txt new file mode 100644 index 00000000000..0cc4ba961e7 --- /dev/null +++ b/reactos/dll/win32/qmgr/CMakeLists.txt @@ -0,0 +1,32 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +generate_idl_iids(qmgr_local.idl) + +spec2def(qmgr.dll qmgr.spec) + +list(APPEND SOURCE + enum_files.c + enum_jobs.c + factory.c + file.c + job.c + qmgr.c + qmgr_main.c + service.c + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/qmgr_local_i.c + ${CMAKE_CURRENT_BINARY_DIR}/qmgr.def) + +add_library(qmgr SHARED ${SOURCE}) + +add_idl_headers(qmgr_idlheader qmgr_local.idl) + +set_module_type(qmgr win32dll) +target_link_libraries(qmgr uuid wine) +add_importlibs(qmgr ole32 wininet urlmon advapi32 msvcrt kernel32 ntdll) +add_cd_file(TARGET qmgr DESTINATION reactos/system32 FOR all) +add_dependencies(qmgr qmgr_idlheader) diff --git a/reactos/dll/win32/qmgrprxy/CMakeLists.txt b/reactos/dll/win32/qmgrprxy/CMakeLists.txt new file mode 100644 index 00000000000..c43b631744a --- /dev/null +++ b/reactos/dll/win32/qmgrprxy/CMakeLists.txt @@ -0,0 +1,26 @@ + +add_definitions( + -D__WINESRC__ + -DREGISTER_PROXY_DLL) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +generate_idl_iids(qmgrprxy.idl) + +spec2def(qmgrprxy.dll qmgrprxy.spec) + +list(APPEND SOURCE + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/qmgrprxy_i.c + ${CMAKE_CURRENT_BINARY_DIR}/qmgrprxy_p.c + ${CMAKE_CURRENT_BINARY_DIR}/proxy.dlldata.c + ${CMAKE_CURRENT_BINARY_DIR}/qmgrprxy.def) + +add_rpcproxy_files(qmgrprxy.idl) + +add_library(qmgrprxy SHARED ${SOURCE}) + +set_module_type(qmgrprxy win32dll) +target_link_libraries(qmgrprxy ${PSEH_LIB} wine) +add_importlibs(qmgrprxy rpcrt4 msvcrt kernel32 ntdll) +add_cd_file(TARGET qmgrprxy DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/query/CMakeLists.txt b/reactos/dll/win32/query/CMakeLists.txt new file mode 100644 index 00000000000..3574784cccc --- /dev/null +++ b/reactos/dll/win32/query/CMakeLists.txt @@ -0,0 +1,22 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(query.dll query.spec) + +list(APPEND SOURCE + query_main.c + ${CMAKE_CURRENT_BINARY_DIR}/query_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/query.def) + +add_library(query SHARED ${SOURCE}) + +set_module_type(query win32dll) + +target_link_libraries(query + wine + uuid) + +add_importlibs(query msvcrt kernel32 ntdll) + +add_cd_file(TARGET query DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/rasadhlp/CMakeLists.txt b/reactos/dll/win32/rasadhlp/CMakeLists.txt new file mode 100644 index 00000000000..05b95a07f0a --- /dev/null +++ b/reactos/dll/win32/rasadhlp/CMakeLists.txt @@ -0,0 +1,19 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/winsock) + +spec2def(rasadhlp.dll rasadhlp.spec) + +list(APPEND SOURCE + autodial.c + init.c + winsock.c + ${CMAKE_CURRENT_BINARY_DIR}/rasadhlp_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/rasadhlp.def) + +add_library(rasadhlp SHARED ${SOURCE}) + +set_module_type(rasadhlp win32dll) + +add_importlibs(rasadhlp ws2_32 msvcrt kernel32 ntdll) + +add_cd_file(TARGET rasadhlp DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/rasapi32/CMakeLists.txt b/reactos/dll/win32/rasapi32/CMakeLists.txt new file mode 100644 index 00000000000..f3d3728b568 --- /dev/null +++ b/reactos/dll/win32/rasapi32/CMakeLists.txt @@ -0,0 +1,21 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +set_rc_compiler() +spec2def(rasapi32.dll rasapi32.spec) + +list(APPEND SOURCE + rasapi.c + ${CMAKE_CURRENT_BINARY_DIR}/rasapi32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/rasapi32.def) + +add_library(rasapi32 SHARED ${SOURCE}) +set_entrypoint(rasapi32 0) + +target_link_libraries(rasapi32 wine) + +add_importlibs(rasapi32 kernel32 ntdll) +add_importlib_target(rasapi32.spec) +add_dependencies(rasapi32 psdk) +add_cd_file(TARGET rasapi32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/rasdlg/CMakeLists.txt b/reactos/dll/win32/rasdlg/CMakeLists.txt new file mode 100644 index 00000000000..0079620d800 --- /dev/null +++ b/reactos/dll/win32/rasdlg/CMakeLists.txt @@ -0,0 +1,21 @@ + +set_rc_compiler() +spec2def(rasdlg.dll rasdlg.spec) + +list(APPEND SOURCE + rasdlg.c + rasdlg.rc + ${CMAKE_CURRENT_BINARY_DIR}/rasdlg_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/rasdlg.def) + +add_library(rasdlg SHARED ${SOURCE}) + +set_module_type(rasdlg win32dll) + +target_link_libraries(rasdlg + wine + uuid) + +add_importlibs(rasdlg msvcrt kernel32 ntdll) + +add_cd_file(TARGET rasdlg DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/rasman/CMakeLists.txt b/reactos/dll/win32/rasman/CMakeLists.txt new file mode 100644 index 00000000000..626f7563172 --- /dev/null +++ b/reactos/dll/win32/rasman/CMakeLists.txt @@ -0,0 +1,20 @@ +set_rc_compiler() +spec2def(rasman.dll rasman.spec) + +list(APPEND SOURCE + rasman.c + rasman.rc + ${CMAKE_CURRENT_BINARY_DIR}/rasman_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/rasman.def) + +add_library(rasman SHARED ${SOURCE}) + +set_module_type(rasman win32dll) + +target_link_libraries(rasman + wine + uuid) + +add_importlibs(rasman msvcrt kernel32 ntdll) + +add_cd_file(TARGET rasman DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/resutils/CMakeLists.txt b/reactos/dll/win32/resutils/CMakeLists.txt new file mode 100644 index 00000000000..4592d25cbae --- /dev/null +++ b/reactos/dll/win32/resutils/CMakeLists.txt @@ -0,0 +1,20 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(resutils.dll resutils.spec) + +list(APPEND SOURCE + resutils.c + ${CMAKE_CURRENT_BINARY_DIR}/resutils_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/resutils.def) + +add_library(resutils SHARED ${SOURCE}) + +set_module_type(resutils win32dll) + +target_link_libraries(resutils wine) + +add_importlibs(resutils msvcrt kernel32 ntdll) + +add_cd_file(TARGET resutils DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/riched20/CMakeLists.txt b/reactos/dll/win32/riched20/CMakeLists.txt new file mode 100644 index 00000000000..60362843d05 --- /dev/null +++ b/reactos/dll/win32/riched20/CMakeLists.txt @@ -0,0 +1,55 @@ + +add_definitions( + -D__WINESRC__ + -D_DLL -D__USE_CRTIMP) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(riched20.dll riched20.spec) +set_rc_compiler() + +list(APPEND SOURCE + caret.c + clipboard.c + context.c + editor.c + list.c + paint.c + para.c + reader.c + richole.c + row.c + run.c + string.c + style.c + table.c + txthost.c + txtsrv.c + undo.c + wrap.c + writer.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/riched20.def) + +if(MSVC) + list(APPEND SOURCE msvc-thiscall.c) + set_source_files_properties(txthost.c txtsrv.c PROPERTIES COMPILE_FLAGS "/FImsvc.h") +endif() + +add_library(riched20 SHARED ${SOURCE}) +set_module_type(riched20 win32dll) +target_link_libraries(riched20 wine uuid) + +add_importlibs(riched20 + msvcrt + ole32 + oleaut32 + imm32 + user32 + gdi32 + kernel32 + ntdll) + +add_importlib_target(riched20.spec) + +add_cd_file(TARGET riched20 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/riched20/msvc-thiscall.c b/reactos/dll/win32/riched20/msvc-thiscall.c new file mode 100644 index 00000000000..9442e0f339f --- /dev/null +++ b/reactos/dll/win32/riched20/msvc-thiscall.c @@ -0,0 +1,124 @@ +#include "config.h" +#include "editor.h" + +#define DEFINE_THISCALL_WRAPPER(func,args) \ + typedef struct {int x[args/4];} _tag_##func; \ + void __stdcall func(_tag_##func p1); \ + __declspec(naked) void __stdcall __thiscall_##func(_tag_##func p1) \ + { \ + __asm pop eax \ + __asm push ecx \ + __asm push eax \ + __asm jmp func \ + } + +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetDC,4) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxReleaseDC,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxShowScrollBar,12) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxEnableScrollBar,12) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetScrollRange,20) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetScrollPos,16) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxInvalidateRect,12) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxViewChange,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxCreateCaret,16) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxShowCaret,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetCaretPos,12) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetTimer,12) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxKillTimer,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxScrollWindowEx,32) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetCapture,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetFocus,4) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxSetCursor,12) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxScreenToClient,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxClientToScreen,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxActivate,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxDeactivate,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetClientRect,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetViewInset,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetCharFormat,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetParaFormat,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetSysColor,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetBackStyle,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetMaxLength,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetScrollBars,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetPasswordChar,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetAcceleratorPos,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetExtent,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_OnTxCharFormatChange,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_OnTxParaFormatChange,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetPropertyBits,12) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxNotify,12) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxImmGetContext,4) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxImmReleaseContext,8) +DEFINE_THISCALL_WRAPPER(ITextHostImpl_TxGetSelectionBarWidth,8) + +#define STDCALL(func) __stdcall_ ## func +#define DEFINE_STDCALL_WRAPPER(num,func,args) \ + __declspec(naked) void __stdcall __stdcall_##func(_tag_##func p1) \ + { \ + __asm pop eax \ + __asm pop eax \ + __asm pop ecx \ + __asm push eax \ + __asm mov eax, [ecx] \ + __asm jmp dword ptr [eax + 4*num] \ + } + +DEFINE_STDCALL_WRAPPER(3,ITextHostImpl_TxGetDC,4) +DEFINE_STDCALL_WRAPPER(4,ITextHostImpl_TxReleaseDC,8) +DEFINE_STDCALL_WRAPPER(5,ITextHostImpl_TxShowScrollBar,12) +DEFINE_STDCALL_WRAPPER(6,ITextHostImpl_TxEnableScrollBar,12) +DEFINE_STDCALL_WRAPPER(7,ITextHostImpl_TxSetScrollRange,20) +DEFINE_STDCALL_WRAPPER(8,ITextHostImpl_TxSetScrollPos,16) +DEFINE_STDCALL_WRAPPER(9,ITextHostImpl_TxInvalidateRect,12) +DEFINE_STDCALL_WRAPPER(10,ITextHostImpl_TxViewChange,8) +DEFINE_STDCALL_WRAPPER(11,ITextHostImpl_TxCreateCaret,16) +DEFINE_STDCALL_WRAPPER(12,ITextHostImpl_TxShowCaret,8) +DEFINE_STDCALL_WRAPPER(13,ITextHostImpl_TxSetCaretPos,12) +DEFINE_STDCALL_WRAPPER(14,ITextHostImpl_TxSetTimer,12) +DEFINE_STDCALL_WRAPPER(15,ITextHostImpl_TxKillTimer,8) +DEFINE_STDCALL_WRAPPER(16,ITextHostImpl_TxScrollWindowEx,32) +DEFINE_STDCALL_WRAPPER(17,ITextHostImpl_TxSetCapture,8) +DEFINE_STDCALL_WRAPPER(18,ITextHostImpl_TxSetFocus,4) +DEFINE_STDCALL_WRAPPER(19,ITextHostImpl_TxSetCursor,12) +DEFINE_STDCALL_WRAPPER(20,ITextHostImpl_TxScreenToClient,8) +DEFINE_STDCALL_WRAPPER(21,ITextHostImpl_TxClientToScreen,8) +DEFINE_STDCALL_WRAPPER(22,ITextHostImpl_TxActivate,8) +DEFINE_STDCALL_WRAPPER(23,ITextHostImpl_TxDeactivate,8) +DEFINE_STDCALL_WRAPPER(24,ITextHostImpl_TxGetClientRect,8) +DEFINE_STDCALL_WRAPPER(25,ITextHostImpl_TxGetViewInset,8) +DEFINE_STDCALL_WRAPPER(26,ITextHostImpl_TxGetCharFormat,8) +DEFINE_STDCALL_WRAPPER(27,ITextHostImpl_TxGetParaFormat,8) +DEFINE_STDCALL_WRAPPER(28,ITextHostImpl_TxGetSysColor,8) +DEFINE_STDCALL_WRAPPER(29,ITextHostImpl_TxGetBackStyle,8) +DEFINE_STDCALL_WRAPPER(30,ITextHostImpl_TxGetMaxLength,8) +DEFINE_STDCALL_WRAPPER(31,ITextHostImpl_TxGetScrollBars,8) +DEFINE_STDCALL_WRAPPER(32,ITextHostImpl_TxGetPasswordChar,8) +DEFINE_STDCALL_WRAPPER(33,ITextHostImpl_TxGetAcceleratorPos,8) +DEFINE_STDCALL_WRAPPER(34,ITextHostImpl_TxGetExtent,8) +DEFINE_STDCALL_WRAPPER(35,ITextHostImpl_OnTxCharFormatChange,8) +DEFINE_STDCALL_WRAPPER(36,ITextHostImpl_OnTxParaFormatChange,8) +DEFINE_STDCALL_WRAPPER(37,ITextHostImpl_TxGetPropertyBits,12) +DEFINE_STDCALL_WRAPPER(38,ITextHostImpl_TxNotify,12) +DEFINE_STDCALL_WRAPPER(39,ITextHostImpl_TxImmGetContext,4) +DEFINE_STDCALL_WRAPPER(40,ITextHostImpl_TxImmReleaseContext,8) +DEFINE_STDCALL_WRAPPER(41,ITextHostImpl_TxGetSelectionBarWidth,8) + +DEFINE_THISCALL_WRAPPER(fnTextSrv_TxSendMessage,20) +DEFINE_THISCALL_WRAPPER(fnTextSrv_TxDraw,52) +DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetHScroll,24) +DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetVScroll,24) +DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxSetCursor,40) +DEFINE_THISCALL_WRAPPER(fnTextSrv_TxQueryHitPoint,44) +DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxInplaceActivate,8) +DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxInplaceDeactivate,4) +DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxUIActivate,4) +DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxUIDeactivate,4) +DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetText,8) +DEFINE_THISCALL_WRAPPER(fnTextSrv_TxSetText,8) +DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetCurrentTargetX,8) +DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetBaseLinePos,8) +DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetNaturalSize,36) +DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetDropTarget,8) +DEFINE_THISCALL_WRAPPER(fnTextSrv_OnTxPropertyBitsChange,12) +DEFINE_THISCALL_WRAPPER(fnTextSrv_TxGetCachedSize,12) diff --git a/reactos/dll/win32/riched20/msvc.h b/reactos/dll/win32/riched20/msvc.h new file mode 100644 index 00000000000..251a7cea54d --- /dev/null +++ b/reactos/dll/win32/riched20/msvc.h @@ -0,0 +1,138 @@ + + +#define __ASM_STDCALL_FUNC(name,args,code) + +#define typeof(X_) __typeof_ ## X_ + +struct ITextHost; +struct _RECT; +struct _CHARFORMATW; +struct _PARAFORMAT; +struct _POINT; +struct _SIZEL; +struct HDC__; + +#define WINAPI __stdcall +#define HRESULT int +#define HDC struct HDC__* +#define BOOL int +#define HIMC void* +#define ITextHost struct ITextHost +#define INT int +#define UINT unsigned int +#define HBITMAP void* +#define LPCRECT const struct tagRECT * +#define LPRECT struct tagRECT * +#define LPCRECTL const struct _RECTL* +#define CHARFORMATW struct _charformatw +#define PARAFORMAT struct _paraformat +#define DWORD unsigned int /* HACK */ +#define COLORREF DWORD +#define LONG int /* HACK */ +#define WPARAM unsigned long +#define LPARAM long +#define HRGN void* +#define HCURSOR void* +#define LPPOINT struct tagPOINT* +#define TXTBACKSTYLE enum _TXTBACKSTYLE +#define WCHAR unsigned short +#define BSTR WCHAR* +#define LPCWSTR const WCHAR * +#define SIZEL struct tagSIZE +#define LPSIZEL struct tagSIZE* +#define ITextServices struct ITextServices +#define LRESULT long +#define DVTARGETDEVICE struct tagDVTARGETDEVICE + +typedef HDC (WINAPI typeof(ITextHostImpl_TxGetDC))(ITextHost * iface); +typedef int (WINAPI typeof(ITextHostImpl_TxReleaseDC))(ITextHost *iface,HDC hdc); +typedef BOOL (WINAPI typeof(ITextHostImpl_TxShowScrollBar))(ITextHost *iface,INT fnBar,BOOL fShow); +typedef BOOL (WINAPI typeof(ITextHostImpl_TxEnableScrollBar))(ITextHost *iface,INT fuSBFlags,INT fuArrowflags); +typedef BOOL (WINAPI typeof(ITextHostImpl_TxSetScrollRange))(ITextHost *iface,INT fnBar,LONG nMinPos,INT nMaxPos,BOOL fRedraw); +typedef BOOL (WINAPI typeof(ITextHostImpl_TxSetScrollPos))(ITextHost *iface,INT fnBar,INT nPos,BOOL fRedraw); +typedef void (WINAPI typeof(ITextHostImpl_TxInvalidateRect))(ITextHost *iface,LPCRECT prc,BOOL fMode); +typedef void (WINAPI typeof(ITextHostImpl_TxViewChange))(ITextHost *iface,BOOL fUpdate); +typedef BOOL (WINAPI typeof(ITextHostImpl_TxCreateCaret))(ITextHost *iface,HBITMAP hbmp,INT xWidth, INT yHeight); +typedef BOOL (WINAPI typeof(ITextHostImpl_TxShowCaret))(ITextHost *iface, BOOL fShow); +typedef BOOL (WINAPI typeof(ITextHostImpl_TxSetCaretPos))(ITextHost *iface,INT x, INT y); +typedef BOOL (WINAPI typeof(ITextHostImpl_TxSetTimer))(ITextHost *iface,UINT idTimer, UINT uTimeout); +typedef void (WINAPI typeof(ITextHostImpl_TxKillTimer))(ITextHost *iface,UINT idTimer); +typedef void (WINAPI typeof(ITextHostImpl_TxScrollWindowEx))(ITextHost *iface,INT dx, INT dy,LPCRECT lprcScroll,LPCRECT lprcClip,HRGN hRgnUpdate,LPRECT lprcUpdate,UINT fuScroll); +typedef void (WINAPI typeof(ITextHostImpl_TxSetCapture))(ITextHost *iface,BOOL fCapture); +typedef void (WINAPI typeof(ITextHostImpl_TxSetFocus))(ITextHost *iface); +typedef void (WINAPI typeof(ITextHostImpl_TxSetCursor))(ITextHost *iface,HCURSOR hcur,BOOL fText); +typedef BOOL (WINAPI typeof(ITextHostImpl_TxScreenToClient))(ITextHost *iface,LPPOINT lppt); +typedef BOOL (WINAPI typeof(ITextHostImpl_TxClientToScreen))(ITextHost *iface,LPPOINT lppt); +typedef HRESULT (WINAPI typeof(ITextHostImpl_TxActivate))(ITextHost *iface,LONG *plOldState); +typedef HRESULT (WINAPI typeof(ITextHostImpl_TxDeactivate))(ITextHost *iface,LONG lNewState); +typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetClientRect))(ITextHost *iface,LPRECT prc); +typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetViewInset))(ITextHost *iface,LPRECT prc); +typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetCharFormat))(ITextHost *iface,const CHARFORMATW **ppCF); +typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetParaFormat))(ITextHost *iface,const PARAFORMAT **ppPF); +typedef COLORREF (WINAPI typeof(ITextHostImpl_TxGetSysColor))(ITextHost *iface,int nIndex); +typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetBackStyle))(ITextHost *iface,TXTBACKSTYLE *pStyle); +typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetMaxLength))(ITextHost *iface,DWORD *pLength); +typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetScrollBars))(ITextHost *iface,DWORD *pdwScrollBar); +typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetPasswordChar))(ITextHost *iface,WCHAR *pch); +typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetAcceleratorPos))(ITextHost *iface,LONG *pch); +typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetExtent))(ITextHost *iface,LPSIZEL lpExtent); +typedef HRESULT (WINAPI typeof(ITextHostImpl_OnTxCharFormatChange))(ITextHost *iface,const CHARFORMATW *pcf); +typedef HRESULT (WINAPI typeof(ITextHostImpl_OnTxParaFormatChange))(ITextHost *iface,const PARAFORMAT *ppf); +typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetPropertyBits))(ITextHost *iface,DWORD dwMask,DWORD *pdwBits); +typedef HRESULT (WINAPI typeof(ITextHostImpl_TxNotify))(ITextHost *iface,DWORD iNotify,void *pv); +typedef HIMC (WINAPI typeof(ITextHostImpl_TxImmGetContext))(ITextHost *iface); +typedef void (WINAPI typeof(ITextHostImpl_TxImmReleaseContext))(ITextHost *iface,HIMC himc); +typedef HRESULT (WINAPI typeof(ITextHostImpl_TxGetSelectionBarWidth))(ITextHost *iface,LONG *lSelBarWidth); + +typedef HRESULT (WINAPI typeof(fnTextSrv_TxSendMessage))(ITextServices *iface,UINT msg,WPARAM wparam,LPARAM lparam,LRESULT* plresult); +typedef HRESULT (WINAPI typeof(fnTextSrv_TxDraw))(ITextServices *iface,DWORD dwDrawAspect,LONG lindex,void* pvAspect,DVTARGETDEVICE* ptd,HDC hdcDraw,HDC hdcTargetDev,LPCRECTL lprcBounds,LPCRECTL lprcWBounds,LPRECT lprcUpdate,BOOL (__stdcall * pfnContinue)(DWORD),DWORD dwContinue,LONG lViewId); +typedef HRESULT (WINAPI typeof(fnTextSrv_TxGetHScroll))(ITextServices *iface,LONG* plMin,LONG* plMax,LONG* plPos,LONG* plPage,BOOL* pfEnabled); +typedef HRESULT (WINAPI typeof(fnTextSrv_TxGetVScroll))(ITextServices *iface,LONG* plMin,LONG* plMax,LONG* plPos,LONG* plPage,BOOL* pfEnabled); +typedef HRESULT (WINAPI typeof(fnTextSrv_OnTxSetCursor))(ITextServices *iface,DWORD dwDrawAspect,LONG lindex,void* pvAspect,DVTARGETDEVICE* ptd,HDC hdcDraw,HDC hicTargetDev,LPCRECT lprcClient,INT x, INT y); +typedef HRESULT (WINAPI typeof(fnTextSrv_TxQueryHitPoint))(ITextServices *iface,DWORD dwDrawAspect,LONG lindex,void* pvAspect,DVTARGETDEVICE* ptd,HDC hdcDraw,HDC hicTargetDev,LPCRECT lprcClient,INT x, INT y,DWORD* pHitResult); +typedef HRESULT (WINAPI typeof(fnTextSrv_OnTxInplaceActivate))(ITextServices *iface,LPCRECT prcClient); +typedef HRESULT (WINAPI typeof(fnTextSrv_OnTxInplaceDeactivate))(ITextServices *iface); +typedef HRESULT (WINAPI typeof(fnTextSrv_OnTxUIActivate))(ITextServices *iface); +typedef HRESULT (WINAPI typeof(fnTextSrv_OnTxUIDeactivate))(ITextServices *iface); +typedef HRESULT (WINAPI typeof(fnTextSrv_TxGetText))(ITextServices *iface,BSTR* pbstrText); +typedef HRESULT (WINAPI typeof(fnTextSrv_TxSetText))(ITextServices *iface,LPCWSTR pszText); +typedef HRESULT (WINAPI typeof(fnTextSrv_TxGetCurrentTargetX))(ITextServices *iface,LONG* x); +typedef HRESULT (WINAPI typeof(fnTextSrv_TxGetBaseLinePos))(ITextServices *iface,LONG* x); +typedef HRESULT (WINAPI typeof(fnTextSrv_TxGetNaturalSize))(ITextServices *iface,DWORD dwAspect,HDC hdcDraw,HDC hicTargetDev,DVTARGETDEVICE* ptd,DWORD dwMode,const SIZEL* psizelExtent,LONG* pwidth,LONG* pheight); +typedef HRESULT (WINAPI typeof(fnTextSrv_TxGetDropTarget))(ITextServices *iface,struct IDropTarget** ppDropTarget); +typedef HRESULT (WINAPI typeof(fnTextSrv_OnTxPropertyBitsChange))(ITextServices *iface,DWORD dwMask,DWORD dwBits); +typedef HRESULT (WINAPI typeof(fnTextSrv_TxGetCachedSize))(ITextServices *iface,DWORD* pdwWidth,DWORD* pdwHeight); + +#undef WINAPI +#undef HRESULT +#undef HDC +#undef BOOL +#undef COLORREF +#undef HIMC +#undef ITextHost +#undef INT +#undef UINT +#undef HBITMAP +#undef LPCRECT +#undef LPRECT +#undef LPCRECTL +#undef CHARFORMATW +#undef PARAFORMAT +#undef DWORD +#undef LONG +#undef WPARAM +#undef LPARAM +#undef HRGN +#undef HCURSOR +#undef LPPOINT +#undef TXTBACKSTYLE +#undef WCHAR +#undef BSTR +#undef LPCWSTR +#undef SIZEL +#undef LPSIZEL +#undef ITextServices +#undef LRESULT +#undef DVTARGETDEVICE + +//#undef typeof diff --git a/reactos/dll/win32/riched32/CMakeLists.txt b/reactos/dll/win32/riched32/CMakeLists.txt new file mode 100644 index 00000000000..0ad88dad648 --- /dev/null +++ b/reactos/dll/win32/riched32/CMakeLists.txt @@ -0,0 +1,17 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(riched32.dll riched32.spec) + +list(APPEND SOURCE + richedit.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/riched32.def) + +add_library(riched32 SHARED ${SOURCE}) + +set_module_type(riched32 win32dll) +target_link_libraries(riched32 wine) +add_importlibs(riched32 riched20 user32 msvcrt kernel32 ntdll) +add_cd_file(TARGET riched32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/rpcrt4/CMakeLists.txt b/reactos/dll/win32/rpcrt4/CMakeLists.txt new file mode 100644 index 00000000000..e54607353f2 --- /dev/null +++ b/reactos/dll/win32/rpcrt4/CMakeLists.txt @@ -0,0 +1,53 @@ + +list(APPEND SOURCE + cproxy.c + cpsf.c + cstub.c + ndr_clientserver.c + ndr_contexthandle.c + ndr_es.c + ndr_fullpointer.c + ndr_marshall.c + ndr_ole.c + ndr_stubless.c + rpc_assoc.c + rpc_async.c + rpc_binding.c + rpc_epmap.c + rpc_message.c + rpcrt4.rc + rpcrt4_main.c + rpc_server.c + rpc_transport.c + unix_func.c + ${CMAKE_CURRENT_BINARY_DIR}/rpcrt4_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/rpcrt4.def) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +add_definitions( + -D_RPCRT4_ + -DCOM_NO_WINDOWS_H + -DMSWMSG) + +spec2def(rpcrt4.dll rpcrt4.spec) + +add_library(rpcrt4 SHARED ${SOURCE}) + +set_module_type(rpcrt4 win32dll) + +include_directories( + ${REACTOS_SOURCE_DIR}/include/reactos/wine + ${REACTOS_BINARY_DIR}/include/reactos/wine) + +target_link_libraries(rpcrt4 + wine + uuid + epmrpc + ${PSEH_LIB}) + +add_importlibs(rpcrt4 msvcrt user32 advapi32 secur32 iphlpapi ws2_32 kernel32 ntdll) +add_dependencies(rpcrt4 winesdk) +add_cd_file(TARGET rpcrt4 DESTINATION reactos/system32 FOR all) +add_importlib_target(rpcrt4.spec) diff --git a/reactos/dll/win32/rsabase/CMakeLists.txt b/reactos/dll/win32/rsabase/CMakeLists.txt new file mode 100644 index 00000000000..d9060f0e99d --- /dev/null +++ b/reactos/dll/win32/rsabase/CMakeLists.txt @@ -0,0 +1,16 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(rsabase.dll rsabase.spec) + +list(APPEND SOURCE + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/rsabase.def) + +add_library(rsabase SHARED ${SOURCE}) + +set_entrypoint(rsabase 0) +target_link_libraries(rsabase wine) +add_importlibs(rsabase rsaenh ntdll) +add_cd_file(TARGET rsabase DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/rsaenh/CMakeLists.txt b/reactos/dll/win32/rsaenh/CMakeLists.txt new file mode 100644 index 00000000000..50904526195 --- /dev/null +++ b/reactos/dll/win32/rsaenh/CMakeLists.txt @@ -0,0 +1,31 @@ + +add_definitions( + -D__WINESRC__ + -D_DLL -D__USE_CRTIMP) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(rsaenh.dll rsaenh.spec) + +list(APPEND SOURCE + aes.c + des.c + handle.c + implglue.c + md2.c + mpi.c + rc2.c + rc4.c + rsa.c + rsaenh.c + sha2.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/rsaenh.def) + +add_library(rsaenh SHARED ${SOURCE}) + +set_module_type(rsaenh win32dll) +target_link_libraries(rsaenh wine) +add_importlibs(rsaenh msvcrt crypt32 advapi32 kernel32 ntdll) +add_importlib_target(rsaenh.spec) +add_cd_file(TARGET rsaenh DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/samlib/CMakeLists.txt b/reactos/dll/win32/samlib/CMakeLists.txt new file mode 100644 index 00000000000..5b2754ad93e --- /dev/null +++ b/reactos/dll/win32/samlib/CMakeLists.txt @@ -0,0 +1,22 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +set_rc_compiler() +spec2def(samlib.dll samlib.spec) + +list(APPEND SOURCE + dllmain.c + samlib.c + samlib.rc + ${CMAKE_CURRENT_BINARY_DIR}/samlib_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/samlib.def) + +add_library(samlib SHARED ${SOURCE}) + +set_module_type(samlib win32dll) + +add_importlibs(samlib advapi32 msvcrt kernel32 ntdll) + +add_cd_file(TARGET samlib DESTINATION reactos/system32 FOR all) +add_importlib_target(samlib.spec) diff --git a/reactos/dll/win32/samsrv/CMakeLists.txt b/reactos/dll/win32/samsrv/CMakeLists.txt new file mode 100644 index 00000000000..c69aef6886c --- /dev/null +++ b/reactos/dll/win32/samsrv/CMakeLists.txt @@ -0,0 +1,16 @@ + +set_unicode() + +spec2def(samsrv.dll samsrv.spec) + +list(APPEND SOURCE + samsrv.c + samsrv.rc + ${CMAKE_CURRENT_BINARY_DIR}/samsrv.def) + +add_library(samsrv SHARED ${SOURCE}) + +set_entrypoint(samsrv 0) +add_importlibs(samsrv kernel32 ntdll) +add_dependencies(samsrv psdk) +add_cd_file(TARGET samsrv DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/sccbase/CMakeLists.txt b/reactos/dll/win32/sccbase/CMakeLists.txt new file mode 100644 index 00000000000..45f0a059c8b --- /dev/null +++ b/reactos/dll/win32/sccbase/CMakeLists.txt @@ -0,0 +1,20 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(sccbase.dll sccbase.spec) + +list(APPEND SOURCE + main.c + ${CMAKE_CURRENT_BINARY_DIR}/sccbase_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/sccbase.def) + +add_library(sccbase SHARED ${SOURCE}) + +set_module_type(sccbase win32dll) + +target_link_libraries(sccbase wine) + +add_importlibs(sccbase msvcrt kernel32 ntdll) + +add_cd_file(TARGET sccbase DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/schannel/CMakeLists.txt b/reactos/dll/win32/schannel/CMakeLists.txt new file mode 100644 index 00000000000..de83c952b78 --- /dev/null +++ b/reactos/dll/win32/schannel/CMakeLists.txt @@ -0,0 +1,23 @@ +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +set_rc_compiler() +spec2def(schannel.dll schannel.spec) + +list(APPEND SOURCE + lsamode.c + schannel_main.c + usermode.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/schannel_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/schannel.def) + +add_library(schannel SHARED ${SOURCE}) + +set_module_type(schannel win32dll) + +target_link_libraries(schannel wine) + +add_importlibs(schannel secur32 msvcrt kernel32 ntdll) + +add_cd_file(TARGET schannel DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/secur32/CMakeLists.txt b/reactos/dll/win32/secur32/CMakeLists.txt new file mode 100644 index 00000000000..04ca218a1c6 --- /dev/null +++ b/reactos/dll/win32/secur32/CMakeLists.txt @@ -0,0 +1,29 @@ + +add_definitions(-D__SECUR32__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/subsys) + +spec2def(secur32.dll secur32.spec) + +list(APPEND SOURCE + dllmain.c + secext.c + sspi.c + secur32.rc + stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/secur32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/secur32.def +) + +add_library(secur32 SHARED + ${CMAKE_CURRENT_BINARY_DIR}/secur32_precomp.h.gch + ${SOURCE}) + +set_module_type(secur32 win32dll) + +target_link_libraries(secur32 lsalib) + +add_importlibs(secur32 advapi32 msvcrt kernel32 ntdll) +add_pch(secur32 ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +add_cd_file(TARGET secur32 DESTINATION reactos/system32 FOR all) +add_importlib_target(secur32.spec) diff --git a/reactos/dll/win32/security/CMakeLists.txt b/reactos/dll/win32/security/CMakeLists.txt new file mode 100644 index 00000000000..4ee112ec4c5 --- /dev/null +++ b/reactos/dll/win32/security/CMakeLists.txt @@ -0,0 +1,16 @@ +set_unicode() +add_definitions(-D__SECURITY__) + +set_rc_compiler() +spec2def(security.dll security.spec) + +list(APPEND SOURCE + security.rc + ${CMAKE_CURRENT_BINARY_DIR}/security.def) + +add_library(security SHARED ${SOURCE}) +set_entrypoint(security 0) + +add_importlibs(security secur32 advapi32 ntdll kernel32) + +add_cd_file(TARGET security DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/sensapi/CMakeLists.txt b/reactos/dll/win32/sensapi/CMakeLists.txt new file mode 100644 index 00000000000..9612da919a8 --- /dev/null +++ b/reactos/dll/win32/sensapi/CMakeLists.txt @@ -0,0 +1,17 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(sensapi.dll sensapi.spec) + +list(APPEND SOURCE + sensapi.c + ${CMAKE_CURRENT_BINARY_DIR}/sensapi.def) + +add_library(sensapi SHARED ${SOURCE}) + +set_module_type(sensapi win32dll) +target_link_libraries(sensapi wine) +add_importlibs(sensapi msvcrt kernel32 ntdll) +add_importlib_target(sensapi.spec) +add_cd_file(TARGET sensapi DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/serialui/CMakeLists.txt b/reactos/dll/win32/serialui/CMakeLists.txt new file mode 100644 index 00000000000..6a2e990a0b9 --- /dev/null +++ b/reactos/dll/win32/serialui/CMakeLists.txt @@ -0,0 +1,15 @@ + +set_unicode() +set_rc_compiler() +spec2def(serialui.dll serialui.spec) + +list(APPEND SOURCE + serialui.c + serialui.rc + ${CMAKE_CURRENT_BINARY_DIR}/serialui.def) + +add_library(serialui SHARED ${SOURCE}) + +set_module_type(serialui win32dll) +add_importlibs(serialui user32 shlwapi msvcrt kernel32) +add_cd_file(TARGET serialui DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/setupapi/CMakeLists.txt b/reactos/dll/win32/setupapi/CMakeLists.txt new file mode 100644 index 00000000000..0858278e369 --- /dev/null +++ b/reactos/dll/win32/setupapi/CMakeLists.txt @@ -0,0 +1,63 @@ + +set_unicode() + +add_definitions( + -D_DLL + -D__USE_CRTIMP + -D_SETUPAPI_ + -D_CFGMGR32_ + -Dwcsnicmp=_wcsnicmp) + +include_directories( + ${REACTOS_SOURCE_DIR}/include/reactos/wine + ${REACTOS_BINARY_DIR}/include/reactos/idl) + +set_rc_compiler() +spec2def(setupapi.dll setupapi.spec) + +list(APPEND SOURCE + cfgmgr.c + devclass.c + devinst.c + dirid.c + diskspace.c + driver.c + install.c + interface.c + misc.c + parser.c + query.c + queue.c + setupcab.c + stringtable.c + stubs.c + rpc.c + setupapi.rc + ${CMAKE_CURRENT_BINARY_DIR}/setupapi_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/setupapi.def) + +add_library(setupapi SHARED ${SOURCE}) + +set_module_type(setupapi win32dll) + +target_link_libraries(setupapi + pnprpc + uuid + wine + ${PSEH_LIB}) + +add_importlibs(setupapi + msvcrt + gdi32 + comctl32 + advapi32 + user32 + rpcrt4 + version + shell32 + kernel32 + ntdll) + + +add_cd_file(TARGET setupapi DESTINATION reactos/system32 FOR all) +add_importlib_target(setupapi.spec) diff --git a/reactos/dll/win32/sfc/CMakeLists.txt b/reactos/dll/win32/sfc/CMakeLists.txt new file mode 100644 index 00000000000..b01fe34b46c --- /dev/null +++ b/reactos/dll/win32/sfc/CMakeLists.txt @@ -0,0 +1,18 @@ + +spec2def(sfc.dll sfc.spec) + +list(APPEND SOURCE + sfc.c + ${CMAKE_CURRENT_BINARY_DIR}/sfc_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/sfc.def) + +add_library(sfc SHARED + ${CMAKE_CURRENT_BINARY_DIR}/sfc_precomp.h.gch + ${SOURCE}) + +set_module_type(sfc win32dll) + +add_importlibs(sfc msvcrt kernel32 ntdll) +add_pch(sfc ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +add_cd_file(TARGET sfc DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/sfc_os/CMakeLists.txt b/reactos/dll/win32/sfc_os/CMakeLists.txt new file mode 100644 index 00000000000..c50b8f26494 --- /dev/null +++ b/reactos/dll/win32/sfc_os/CMakeLists.txt @@ -0,0 +1,18 @@ + +spec2def(sfc_os.dll sfc_os.spec) + +list(APPEND SOURCE + sfc_os.c + ${CMAKE_CURRENT_BINARY_DIR}/sfc_os_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/sfc_os.def) + +add_library(sfc_os SHARED + ${CMAKE_CURRENT_BINARY_DIR}/sfc_os_precomp.h.gch + ${SOURCE}) + +set_module_type(sfc_os win32dll) + +add_importlibs(sfc_os msvcrt kernel32 ntdll) +add_pch(sfc_os ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +add_cd_file(TARGET sfc_os DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/shdoclc/CMakeLists.txt b/reactos/dll/win32/shdoclc/CMakeLists.txt new file mode 100644 index 00000000000..fe4dcba4daf --- /dev/null +++ b/reactos/dll/win32/shdoclc/CMakeLists.txt @@ -0,0 +1,17 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() +spec2def(shdoclc.dll shdoclc.spec) + +add_library(shdoclc SHARED rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/shdoclc.def) + +set_entrypoint(shdoclc 0) + +target_link_libraries(shdoclc wine) + +add_importlibs(shdoclc kernel32 ntdll) +add_dependencies(shdoclc psdk) + +add_cd_file(TARGET shdoclc DESTINATION reactos/system32 FOR all) \ No newline at end of file diff --git a/reactos/dll/win32/shdocvw/CMakeLists.txt b/reactos/dll/win32/shdocvw/CMakeLists.txt new file mode 100644 index 00000000000..db2f0c48a1f --- /dev/null +++ b/reactos/dll/win32/shdocvw/CMakeLists.txt @@ -0,0 +1,58 @@ + +add_typelib(shdocvw_v1 shdocvw_v1.idl) +add_dependencies(shdocvw_v1 stdole2) + +add_definitions(-D_SHDOCVW_) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(shdocvw.dll shdocvw.spec) + +list(APPEND SOURCE + classinfo.c + client.c + dochost.c + events.c + factory.c + frame.c + ie.c + iexplore.c + intshcut.c + navigate.c + oleobject.c + persist.c + shdocvw_main.c + shlinstobj.c + taskbarlist.c + urlhist.c + view.c + webbrowser.c + shdocvw.rc + ${CMAKE_CURRENT_BINARY_DIR}/shdocvw_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/shdocvw.def) + +add_library(shdocvw SHARED ${SOURCE}) + +set_module_type(shdocvw win32dll) + +target_link_libraries(shdocvw uuid wine) + +add_importlibs(shdocvw + comctl32 + ole32 + oleaut32 + shlwapi + shell32 + user32 + advapi32 + gdi32 + version + urlmon + msvcrt + kernel32 + ntdll) + +add_dependencies(shdocvw shdocvw_v1) +add_cd_file(TARGET shdocvw DESTINATION reactos/system32 FOR all) +add_importlib_target(shdocvw.spec) diff --git a/reactos/dll/win32/shell32/CMakeLists.txt b/reactos/dll/win32/shell32/CMakeLists.txt new file mode 100644 index 00000000000..9bdd9f16463 --- /dev/null +++ b/reactos/dll/win32/shell32/CMakeLists.txt @@ -0,0 +1,106 @@ + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +add_definitions( + -D_SHELL32_ + -DCOM_NO_WINDOWS_H + -D_WINE) + +include_directories( + ${REACTOS_SOURCE_DIR}/include/reactos/wine + ${REACTOS_SOURCE_DIR}/lib/recyclebin + ${REACTOS_SOURCE_DIR}) + +generate_idl_iids(shobjidl_local.idl) + +spec2def(shell32.dll shell32.spec) + +list(APPEND SOURCE + authors.c + autocomplete.c + brsfolder.c + changenotify.c + classes.c + clipboard.c + control.c + dataobject.c + dde.c + debughlp.c + desktop.c + dialogs.c + dragdrophelper.c + enumidlist.c + extracticon.c + folders.c + iconcache.c + pidl.c + regsvr.c + shell32_main.c + shellitem.c + shelllink.c + shellole.c + shellord.c + shellpath.c + shellreg.c + shellstring.c + shfldr_desktop.c + shfldr_fs.c + shfldr_mycomp.c + shfldr_mydocuments.c + shfldr_printers.c + shfldr_admintools.c + shfldr_netplaces.c + shfldr_fonts.c + shfldr_cpanel.c + shfldr_recyclebin.c + shlexec.c + shlfileop.c + shlfolder.c + shlfsbind.c + shlmenu.c + shlview.c + shpolicy.c + shv_def_cmenu.c + startmenu.c + stubs.c + ros-systray.c + fprop.c + drive.c + she_ocmenu.c + shv_item_new.c + folder_options.c + shell32.rc + ${CMAKE_CURRENT_BINARY_DIR}/shobjidl_local_i.c + ${CMAKE_CURRENT_BINARY_DIR}/shell32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/shell32.def) + +add_pch(shell32 ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +add_library(shell32 SHARED ${CMAKE_CURRENT_BINARY_DIR}/shell32_precomp.h.gch ${SOURCE}) + +set_module_type(shell32 win32dll) + +target_link_libraries(shell32 + wine + uuid + recyclebin) + +add_importlibs(shell32 + advapi32 + gdi32 + user32 + comctl32 + comdlg32 + shlwapi + ole32 + version + devmgr + winspool + winmm + kernel32 + msvcrt + ntdll) + +add_cd_file(TARGET shell32 DESTINATION reactos/system32 FOR all) +add_importlib_target(shell32.spec) diff --git a/reactos/dll/win32/shfolder/CMakeLists.txt b/reactos/dll/win32/shfolder/CMakeLists.txt new file mode 100644 index 00000000000..92b32eb30ec --- /dev/null +++ b/reactos/dll/win32/shfolder/CMakeLists.txt @@ -0,0 +1,18 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(shfolder.dll shfolder.spec) + +list(APPEND SOURCE + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/shfolder.def) + +add_library(shfolder SHARED ${SOURCE}) + +set_entrypoint(shfolder 0) + +target_link_libraries(shfolder wine) +add_importlibs(shfolder shell32 kernel32 ntdll) +add_dependencies(shfolder psdk) +add_cd_file(TARGET shfolder DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/shimgvw/CMakeLists.txt b/reactos/dll/win32/shimgvw/CMakeLists.txt new file mode 100644 index 00000000000..1514361c732 --- /dev/null +++ b/reactos/dll/win32/shimgvw/CMakeLists.txt @@ -0,0 +1,27 @@ + +set_rc_compiler() +spec2def(shimgvw.dll shimgvw.spec) + +list(APPEND SOURCE + shimgvw.c + shimgvw.rc + ${CMAKE_CURRENT_BINARY_DIR}/shimgvw_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/shimgvw.def) + +add_library(shimgvw SHARED ${SOURCE}) + +set_module_type(shimgvw win32dll) + +target_link_libraries(shimgvw wine) + +add_importlibs(shimgvw + advapi32 + comctl32 + user32 + gdi32 + gdiplus + msvcrt + kernel32 + ntdll) + +add_cd_file(TARGET shimgvw DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/shlwapi/CMakeLists.txt b/reactos/dll/win32/shlwapi/CMakeLists.txt new file mode 100644 index 00000000000..f4d8ab7023b --- /dev/null +++ b/reactos/dll/win32/shlwapi/CMakeLists.txt @@ -0,0 +1,57 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +spec2def(shlwapi.dll shlwapi.spec) + +list(APPEND SOURCE + assoc.c + clist.c + istream.c + msgbox.c + ordinal.c + path.c + reg.c + regstream.c + shlwapi_main.c + stopwatch.c + string.c + thread.c + url.c + wsprintf.c + shlwapi.rc + ${CMAKE_CURRENT_BINARY_DIR}/shlwapi_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/shlwapi.def) + +add_library(shlwapi SHARED ${SOURCE}) + +set_module_type(shlwapi win32dll) + +target_link_libraries(shlwapi wine uuid) + +add_importlibs(shlwapi + user32 + gdi32 + advapi32 + oleaut32 + ole32 + comctl32 + comdlg32 + mpr + mlang + urlmon + winmm + version + shell32 + kernel32 + userenv + wininet + msvcrt + ntdll) + +add_cd_file(TARGET shlwapi DESTINATION reactos/system32 FOR all) + +add_importlib_target(shlwapi.spec) diff --git a/reactos/dll/win32/slbcsp/CMakeLists.txt b/reactos/dll/win32/slbcsp/CMakeLists.txt new file mode 100644 index 00000000000..50fb9d944d9 --- /dev/null +++ b/reactos/dll/win32/slbcsp/CMakeLists.txt @@ -0,0 +1,20 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(slbcsp.dll slbcsp.spec) + +list(APPEND SOURCE + main.c + ${CMAKE_CURRENT_BINARY_DIR}/slbcsp_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/slbcsp.def) + +add_library(slbcsp SHARED ${SOURCE}) + +set_module_type(slbcsp win32dll) + +target_link_libraries(slbcsp wine) + +add_importlibs(slbcsp msvcrt kernel32 ntdll) + +add_cd_file(TARGET slbcsp DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/smdll/CMakeLists.txt b/reactos/dll/win32/smdll/CMakeLists.txt new file mode 100644 index 00000000000..cb850fc1bde --- /dev/null +++ b/reactos/dll/win32/smdll/CMakeLists.txt @@ -0,0 +1,18 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/subsys) + +spec2def(smdll.dll smdll.spec) + +list(APPEND SOURCE + dllmain.c + query.c + smdll.rc + ${CMAKE_CURRENT_BINARY_DIR}/smdll.def) + +add_library(smdll SHARED ${SOURCE}) + +target_link_libraries(smdll smlib) +add_importlibs(smdll ntdll) +add_dependencies(smdll psdk) +add_cd_file(TARGET smdll DESTINATION reactos/system32 FOR all) +add_importlib_target(smdll.spec) diff --git a/reactos/dll/win32/sndblst/CMakeLists.txt b/reactos/dll/win32/sndblst/CMakeLists.txt new file mode 100644 index 00000000000..07dfe79864f --- /dev/null +++ b/reactos/dll/win32/sndblst/CMakeLists.txt @@ -0,0 +1,18 @@ + +set_unicode() + +add_definitions(-DDEBUG_NT4) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/libs/sound) + +spec2def(sndblst.dll sndblst.spec) + +list(APPEND SOURCE + sndblst.c + ${CMAKE_CURRENT_BINARY_DIR}/sndblst.def) + +add_library(sndblst SHARED ${SOURCE}) + +set_module_type(sndblst win32dll) +target_link_libraries(sndblst mment4 mmebuddy) +add_importlibs(sndblst user32 winmm advapi32 msvcrt kernel32 ntdll) +add_cd_file(TARGET sndblst DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/snmpapi/CMakeLists.txt b/reactos/dll/win32/snmpapi/CMakeLists.txt new file mode 100644 index 00000000000..325d372ccf1 --- /dev/null +++ b/reactos/dll/win32/snmpapi/CMakeLists.txt @@ -0,0 +1,26 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) +set_rc_compiler() + +spec2def(snmpapi.dll snmpapi.spec) + +list(APPEND SOURCE + main.c + snmpapi.rc + ${CMAKE_CURRENT_BINARY_DIR}/snmpapi_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/snmpapi.def) + +add_library(snmpapi SHARED ${SOURCE}) + +set_module_type(snmpapi win32dll) + +target_link_libraries(snmpapi wine) + +add_importlibs(snmpapi msvcrt kernel32 ntdll) + +add_cd_file(TARGET snmpapi DESTINATION reactos/system32 FOR all) +add_importlib_target(snmpapi.spec) diff --git a/reactos/dll/win32/softpub/CMakeLists.txt b/reactos/dll/win32/softpub/CMakeLists.txt new file mode 100644 index 00000000000..a4fb73cfbea --- /dev/null +++ b/reactos/dll/win32/softpub/CMakeLists.txt @@ -0,0 +1,16 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(softpub.dll softpub.spec) + +add_library(softpub SHARED softpub.rc + ${CMAKE_CURRENT_BINARY_DIR}/softpub.def) + +set_entrypoint(softpub 0) + +target_link_libraries(softpub wine) + +add_importlibs(softpub wintrust) + +add_cd_file(TARGET softpub DESTINATION reactos/system32 FOR all) \ No newline at end of file diff --git a/reactos/dll/win32/spoolss/CMakeLists.txt b/reactos/dll/win32/spoolss/CMakeLists.txt new file mode 100644 index 00000000000..771a63e5f36 --- /dev/null +++ b/reactos/dll/win32/spoolss/CMakeLists.txt @@ -0,0 +1,22 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(spoolss.dll spoolss.spec) + +list(APPEND SOURCE + spoolss_main.c + router.c + ${CMAKE_CURRENT_BINARY_DIR}/spoolss_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/spoolss.def) + +add_library(spoolss SHARED ${SOURCE}) + +set_module_type(spoolss win32dll) + +target_link_libraries(spoolss wine) + +add_importlibs(spoolss winspool msvcrt kernel32 ntdll) +add_importlib_target(spoolss.spec) + +add_cd_file(TARGET spoolss DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/srclient/CMakeLists.txt b/reactos/dll/win32/srclient/CMakeLists.txt new file mode 100644 index 00000000000..e6088bb1453 --- /dev/null +++ b/reactos/dll/win32/srclient/CMakeLists.txt @@ -0,0 +1,15 @@ + +spec2def(srclient.dll srclient.spec) + +list(APPEND SOURCE + srclient_main.c + ${CMAKE_CURRENT_BINARY_DIR}/srclient_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/srclient.def) + +add_library(srclient SHARED ${SOURCE}) +set_entrypoint(srclient 0) + +add_importlibs(srclient kernel32 ntdll) +add_dependencies(srclient psdk) + +add_cd_file(TARGET srclient DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/stdole2.tlb/CMakeLists.txt b/reactos/dll/win32/stdole2.tlb/CMakeLists.txt new file mode 100644 index 00000000000..16b15175704 --- /dev/null +++ b/reactos/dll/win32/stdole2.tlb/CMakeLists.txt @@ -0,0 +1,18 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_typelib(std_ole_v2 std_ole_v2.idl) + +spec2def(stdole2.tlb stdole2.tlb.spec) + +list(APPEND SOURCE + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/stdole2.def) + +add_library(stdole2.tlb SHARED ${SOURCE}) + +set_entrypoint(stdole2.tlb 0) +set_target_properties(stdole2.tlb PROPERTIES SUFFIX "") +add_dependencies(stdole2.tlb std_ole_v2) +add_cd_file(TARGET stdole2.tlb DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/stdole32.tlb/CMakeLists.txt b/reactos/dll/win32/stdole32.tlb/CMakeLists.txt new file mode 100644 index 00000000000..b563d273fc5 --- /dev/null +++ b/reactos/dll/win32/stdole32.tlb/CMakeLists.txt @@ -0,0 +1,19 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +add_typelib(std_ole_v1 std_ole_v1.idl) + +spec2def(stdole32.tlb stdole32.tlb.spec) + +list(APPEND SOURCE + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/stdole32.def) + +add_library(stdole32.tlb SHARED ${SOURCE}) + +set_entrypoint(stdole32.tlb 0) +set_target_properties(stdole32.tlb PROPERTIES SUFFIX "") + +add_dependencies(stdole32.tlb std_ole_v1) +add_cd_file(TARGET stdole32.tlb DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/sti/CMakeLists.txt b/reactos/dll/win32/sti/CMakeLists.txt new file mode 100644 index 00000000000..9a06b70d782 --- /dev/null +++ b/reactos/dll/win32/sti/CMakeLists.txt @@ -0,0 +1,42 @@ + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +add_definitions( + -D__WINESRC__ + -DENTRY_PREFIX=STI_ + -DPROXY_DELEGATION + -DREGISTER_PROXY_DLL) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(sti.dll sti.spec) + +list(APPEND SOURCE + regsvr.c + sti.c + sti_main.c + ${CMAKE_CURRENT_BINARY_DIR}/proxy.dlldata.c + ${CMAKE_CURRENT_BINARY_DIR}/sti_wia_p.c + ${CMAKE_CURRENT_BINARY_DIR}/sti.def) + +add_rpcproxy_files(sti_wia.idl) + +add_library(sti SHARED ${SOURCE}) + +set_entrypoint(sti 0) + +target_link_libraries(sti + wine + uuid + ${PSEH_LIB}) + +add_importlibs(sti + ole32 + oleaut32 + rpcrt4 + advapi32 + kernel32 + ntdll) + +add_cd_file(TARGET sti DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/sxs/CMakeLists.txt b/reactos/dll/win32/sxs/CMakeLists.txt new file mode 100644 index 00000000000..74e5742fe6e --- /dev/null +++ b/reactos/dll/win32/sxs/CMakeLists.txt @@ -0,0 +1,20 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(sxs.dll sxs.spec) + +list(APPEND SOURCE + sxs.c + ${CMAKE_CURRENT_BINARY_DIR}/sxs_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/sxs.def) + +add_library(sxs SHARED ${SOURCE}) +set_entrypoint(sxs 0) + +target_link_libraries(sxs wine) + +add_importlibs(sxs kernel32 ntdll) +add_dependencies(sxs psdk) + +add_cd_file(TARGET sxs DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/syssetup/CMakeLists.txt b/reactos/dll/win32/syssetup/CMakeLists.txt new file mode 100644 index 00000000000..9f8ac236bd0 --- /dev/null +++ b/reactos/dll/win32/syssetup/CMakeLists.txt @@ -0,0 +1,42 @@ +set_unicode() + +add_definitions(-D_DLL -D__USE_CRTIMP) + +set_rc_compiler() +spec2def(syssetup.dll syssetup.spec) + +list(APPEND SOURCE + classinst.c + dllmain.c + install.c + logfile.c + wizard.c + syssetup.rc + ${CMAKE_CURRENT_BINARY_DIR}/syssetup_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/syssetup.def) + +add_library(syssetup SHARED ${SOURCE}) + +set_module_type(syssetup win32dll) + +target_link_libraries(syssetup + uuid + ${PSEH_LIB}) + +add_importlibs(syssetup + msvcrt + advapi32 + gdi32 + user32 + samlib + userenv + comctl32 + setupapi + ole32 + shell32 + shlwapi + kernel32 + ntdll) + + +add_cd_file(TARGET syssetup DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/t2embed/CMakeLists.txt b/reactos/dll/win32/t2embed/CMakeLists.txt new file mode 100644 index 00000000000..c4b4d67a16f --- /dev/null +++ b/reactos/dll/win32/t2embed/CMakeLists.txt @@ -0,0 +1,22 @@ + +set_unicode() + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(t2embed.dll t2embed.spec) + +list(APPEND SOURCE + t2embed.c + t2embed.rc + ${CMAKE_CURRENT_BINARY_DIR}/t2embed_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/t2embed.def) + +add_library(t2embed SHARED ${SOURCE}) + +set_module_type(t2embed win32dll) + +target_link_libraries(t2embed wine) + +add_importlibs(t2embed gdi32 user32 advapi32 version msvcrt kernel32 ntdll) + +add_cd_file(TARGET t2embed DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/tapi32/CMakeLists.txt b/reactos/dll/win32/tapi32/CMakeLists.txt new file mode 100644 index 00000000000..41017c22ee5 --- /dev/null +++ b/reactos/dll/win32/tapi32/CMakeLists.txt @@ -0,0 +1,24 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(tapi32.dll tapi32.spec) + +list(APPEND SOURCE + assisted.c + internal.c + line.c + phone.c + ${CMAKE_CURRENT_BINARY_DIR}/tapi32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/tapi32.def) + +add_library(tapi32 SHARED ${SOURCE}) + +set_entrypoint(tapi32 0) + +target_link_libraries(tapi32 wine) + +add_importlibs(tapi32 advapi32 kernel32 ntdll) +add_dependencies(tapi32 psdk) + +add_cd_file(TARGET tapi32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/tapiui/CMakeLists.txt b/reactos/dll/win32/tapiui/CMakeLists.txt new file mode 100644 index 00000000000..a9bb4f5d442 --- /dev/null +++ b/reactos/dll/win32/tapiui/CMakeLists.txt @@ -0,0 +1,7 @@ + +set_rc_compiler() + +add_library(tapiui SHARED tapiui.rc) +set_entrypoint(tapiui 0) +add_dependencies(tapiui psdk) +add_cd_file(TARGET tapiui DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/traffic/CMakeLists.txt b/reactos/dll/win32/traffic/CMakeLists.txt new file mode 100644 index 00000000000..64764005630 --- /dev/null +++ b/reactos/dll/win32/traffic/CMakeLists.txt @@ -0,0 +1,20 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(traffic.dll traffic.spec) + +list(APPEND SOURCE + traffic_main.c + ${CMAKE_CURRENT_BINARY_DIR}/traffic_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/traffic.def) + +add_library(traffic SHARED ${SOURCE}) + +set_module_type(traffic win32dll) + +target_link_libraries(traffic wine) + +add_importlibs(traffic msvcrt kernel32 ntdll) +add_dependencies(traffic psdk) +add_cd_file(TARGET traffic DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/twain_32/CMakeLists.txt b/reactos/dll/win32/twain_32/CMakeLists.txt new file mode 100644 index 00000000000..5eb3ac68cf3 --- /dev/null +++ b/reactos/dll/win32/twain_32/CMakeLists.txt @@ -0,0 +1,21 @@ + +add_definitions(-D_DLL -D__USE_CRTIMP) + +spec2def(twain_32.dll twain_32.spec) + +list(APPEND SOURCE + capability.c + ds_audio.c + ds_ctrl.c + ds_image.c + dsm_ctrl.c + twain32_main.c + twain_32.rc + ${CMAKE_CURRENT_BINARY_DIR}/twain_32.def) + +add_library(twain_32 SHARED ${SOURCE}) + +set_module_type(twain_32 win32dll) +target_link_libraries(twain_32 wine) +add_importlibs(twain_32 msvcrt kernel32 ntdll) +add_cd_file(TARGET twain_32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/uext2/CMakeLists.txt b/reactos/dll/win32/uext2/CMakeLists.txt new file mode 100644 index 00000000000..19858c8f0b4 --- /dev/null +++ b/reactos/dll/win32/uext2/CMakeLists.txt @@ -0,0 +1,14 @@ + +spec2def(uext2.dll uext2.spec) + +list(APPEND SOURCE + uext2.c + uext2.rc + ${CMAKE_CURRENT_BINARY_DIR}/uext2.def) + +add_library(uext2 SHARED ${SOURCE}) + +set_module_type(uext2 win32dll) +target_link_libraries(uext2 ext2lib) +add_importlibs(uext2 msvcrt kernel32 ntdll) +add_cd_file(TARGET uext2 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/ufat/CMakeLists.txt b/reactos/dll/win32/ufat/CMakeLists.txt new file mode 100644 index 00000000000..658ab44fb36 --- /dev/null +++ b/reactos/dll/win32/ufat/CMakeLists.txt @@ -0,0 +1,14 @@ + +spec2def(ufat.dll ufat.spec) + +list(APPEND SOURCE + ufat.c + ufat.rc + ${CMAKE_CURRENT_BINARY_DIR}/ufat.def) + +add_library(ufat SHARED ${SOURCE}) + +set_module_type(ufat win32dll) +target_link_libraries(ufat vfatlib) +add_importlibs(ufat msvcrt kernel32 ntdll) +add_cd_file(TARGET ufat DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/ufatx/CMakeLists.txt b/reactos/dll/win32/ufatx/CMakeLists.txt new file mode 100644 index 00000000000..8cf783e9fab --- /dev/null +++ b/reactos/dll/win32/ufatx/CMakeLists.txt @@ -0,0 +1,16 @@ + +spec2def(ufatx.dll ufatx.spec) + +list(APPEND SOURCE + ufatx.rc + ${CMAKE_CURRENT_BINARY_DIR}/ufatx.def) + +add_library(ufatx SHARED ${SOURCE}) + +set_entrypoint(ufatx 0) + +target_link_libraries(ufatx vfatxlib -lgcc) +add_importlibs(ufatx kernel32 ntdll) +add_importlib_target(ufatx.spec) +add_dependencies(ufatx psdk) +add_cd_file(TARGET ufatx DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/unicows/CMakeLists.txt b/reactos/dll/win32/unicows/CMakeLists.txt new file mode 100644 index 00000000000..27ecb838a7d --- /dev/null +++ b/reactos/dll/win32/unicows/CMakeLists.txt @@ -0,0 +1,29 @@ + +spec2def(unicows.dll unicows.spec) + +list(APPEND SOURCE + ${CMAKE_CURRENT_BINARY_DIR}/unicows_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/unicows.def) + +add_library(unicows SHARED ${SOURCE}) + +set_module_type(unicows win32dll) +add_importlibs(unicows + avicap32 + msvfw32 + oledlg + comdlg32 + shell32 + winmm + winspool + rasapi32 + secur32 + sensapi + version + user32 + mpr + gdi32 + advapi32 + kernel32 + ntdll) +add_cd_file(TARGET unicows DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/untfs/CMakeLists.txt b/reactos/dll/win32/untfs/CMakeLists.txt new file mode 100644 index 00000000000..0416542d1e0 --- /dev/null +++ b/reactos/dll/win32/untfs/CMakeLists.txt @@ -0,0 +1,14 @@ + +spec2def(untfs.dll untfs.spec) + +list(APPEND SOURCE + untfs.c + untfs.rc + ${CMAKE_CURRENT_BINARY_DIR}/untfs.def) + +add_library(untfs SHARED ${SOURCE}) + +set_module_type(untfs win32dll) +target_link_libraries(untfs ntfslib) +add_importlibs(untfs msvcrt kernel32 ntdll) +add_cd_file(TARGET untfs DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/updspapi/CMakeLists.txt b/reactos/dll/win32/updspapi/CMakeLists.txt new file mode 100644 index 00000000000..456ccde58f2 --- /dev/null +++ b/reactos/dll/win32/updspapi/CMakeLists.txt @@ -0,0 +1,20 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(updspapi.dll updspapi.spec) + +list(APPEND SOURCE + main.c + ${CMAKE_CURRENT_BINARY_DIR}/updspapi_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/updspapi.def) + +add_library(updspapi SHARED ${SOURCE}) +set_entrypoint(updspapi 0) + +target_link_libraries(updspapi wine) + +add_importlibs(updspapi setupapi kernel32 ntdll) +add_dependencies(updspapi psdk) + +add_cd_file(TARGET updspapi DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/url/CMakeLists.txt b/reactos/dll/win32/url/CMakeLists.txt new file mode 100644 index 00000000000..ee901a062a3 --- /dev/null +++ b/reactos/dll/win32/url/CMakeLists.txt @@ -0,0 +1,20 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(url.dll url.spec) + +list(APPEND SOURCE + url_main.c + ${CMAKE_CURRENT_BINARY_DIR}/url_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/url.def) + +add_library(url SHARED ${SOURCE}) + +set_module_type(url win32dll) + +target_link_libraries(url wine) + +add_importlibs(url shell32 shlwapi msvcrt kernel32 ntdll) + +add_cd_file(TARGET url DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/urlmon/CMakeLists.txt b/reactos/dll/win32/urlmon/CMakeLists.txt new file mode 100644 index 00000000000..76abc2893e1 --- /dev/null +++ b/reactos/dll/win32/urlmon/CMakeLists.txt @@ -0,0 +1,77 @@ + +add_definitions(-D__WINESRC__) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(urlmon.dll urlmon.spec) + +add_rpcproxy_files(urlmon_urlmon.idl) + +list(APPEND SOURCE + bindctx.c + binding.c + bindprot.c + download.c + file.c + format.c + ftp.c + gopher.c + http.c + internet.c + mimefilter.c + mk.c + protocol.c + protproxy.c + regsvr.c + sec_mgr.c + session.c + umon.c + umstream.c + uri.c + urlmon_main.c + usrmarshal.c + rsrc.rc + ${CMAKE_CURRENT_BINARY_DIR}/proxy.dlldata.c + ${CMAKE_CURRENT_BINARY_DIR}/urlmon_urlmon_p.c + ${CMAKE_CURRENT_BINARY_DIR}/urlmon_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/urlmon.def) + +add_library(urlmon SHARED ${SOURCE}) + + +set_module_type(urlmon win32dll) + +target_link_libraries(urlmon + uuid + wine + ${PSEH_LIB}) + +add_importlibs(urlmon + rpcrt4 + ole32 + oleaut32 + shlwapi + shell32 + wininet + user32 + advapi32 + msvcrt + kernel32 + ntdll) + + +add_definitions( + -DENTRY_PREFIX=URLMON_ + -DPROXY_DELEGATION + -DREGISTER_PROXY_DLL + -D_URLMON_) + +add_definitions(-DPROXY_CLSID_IS="{0x79EAC9F1,0xBAF9,0x11CE,{0x8C,0x82,0x00,0xAA,0x00,0x4B,0xA9,0x0B}}") + +add_cd_file(TARGET urlmon DESTINATION reactos/system32 FOR all) +add_importlib_target(urlmon.spec) diff --git a/reactos/dll/win32/user32/CMakeLists.txt b/reactos/dll/win32/user32/CMakeLists.txt new file mode 100644 index 00000000000..1be88006fc3 --- /dev/null +++ b/reactos/dll/win32/user32/CMakeLists.txt @@ -0,0 +1,84 @@ + +set_unicode() + +spec2def(user32.dll user32.spec) + +add_definitions(-D_DLL -D__USE_CRTIMP) + +include_directories( + BEFORE ${REACTOS_SOURCE_DIR}/include/reactos/wine + ${REACTOS_SOURCE_DIR}/include/reactos/subsys + include) + +set_rc_compiler() + +list(APPEND SOURCE + controls/button.c + controls/combo.c + controls/edit.c + controls/icontitle.c + controls/listbox.c + controls/regcontrol.c + controls/scrollbar.c + controls/static.c + misc/dde.c + misc/ddeclient.c + misc/ddeserver.c + misc/desktop.c + misc/display.c + misc/dllmain.c + misc/exit.c + misc/exticon.c + misc/imm.c + misc/misc.c + misc/object.c + misc/resources.c + misc/rtlstr.c + misc/stubs.c + misc/timer.c + misc/usrapihk.c + misc/winhelp.c + misc/winsta.c + windows/accel.c + windows/caret.c + windows/class.c + windows/clipboard.c + windows/cursoricon.c + windows/dc.c + windows/defwnd.c + windows/dialog.c + windows/draw.c + windows/font.c + windows/hook.c + windows/input.c + windows/mdi.c + windows/menu.c + windows/messagebox.c + windows/message.c + windows/nonclient.c + windows/paint.c + windows/prop.c + windows/rect.c + windows/spy.c + windows/text.c + windows/window.c + windows/winpos.c + user32.rc + ${CMAKE_CURRENT_BINARY_DIR}/user32.def) + +add_library(user32 SHARED + ${CMAKE_CURRENT_BINARY_DIR}/user32_user32.h.gch + ${SOURCE}) + +set_module_type(user32 win32dll) + +target_link_libraries(user32 + user32_wsprintf + wine + win32ksys + ${PSEH_LIB}) + +add_pch(user32 ${CMAKE_CURRENT_SOURCE_DIR}/include/user32.h ${SOURCE}) +add_importlibs(user32 gdi32 advapi32 imm32 msvcrt kernel32 ntdll) +add_cd_file(TARGET user32 DESTINATION reactos/system32 FOR all) +add_importlib_target(user32.spec) diff --git a/reactos/dll/win32/user32/user32.spec b/reactos/dll/win32/user32/user32.spec new file mode 100644 index 00000000000..37f63c5e941 --- /dev/null +++ b/reactos/dll/win32/user32/user32.spec @@ -0,0 +1,777 @@ +; Functions exported by Win 2K3 R2 +@ stdcall ActivateKeyboardLayout(long long) NtUserActivateKeyboardLayout +@ stdcall AdjustWindowRect(ptr long long) +@ stdcall AdjustWindowRectEx(ptr long long long) +@ stdcall AlignRects(ptr long long long) +@ stdcall AllowForegroundActivation() +@ stdcall AllowSetForegroundWindow(long) +@ stdcall AnimateWindow(long long long) +@ stdcall AnyPopup() +@ stdcall AppendMenuA(long long long ptr) +@ stdcall AppendMenuW(long long long ptr) +@ stdcall ArrangeIconicWindows(long) +@ stdcall AttachThreadInput(long long long) NtUserAttachThreadInput +@ stdcall BeginDeferWindowPos(long) +@ stdcall BeginPaint(long ptr) NtUserBeginPaint +@ stdcall BlockInput(long) NtUserBlockInput +@ stdcall BringWindowToTop(long) +@ stdcall BroadcastSystemMessage(long ptr long long long) BroadcastSystemMessageA +@ stdcall BroadcastSystemMessageA(long ptr long long long) +@ stdcall BroadcastSystemMessageExA(long ptr long long long ptr) +@ stdcall BroadcastSystemMessageExW(long ptr long long long ptr) +@ stdcall BroadcastSystemMessageW(long ptr long long long) +@ stdcall BuildReasonArray(ptr) +@ stdcall CalcMenuBar(long long long long long) NtUserCalcMenuBar +@ stdcall CallMsgFilter(ptr long) CallMsgFilterA +@ stdcall CallMsgFilterA(ptr long) +@ stdcall CallMsgFilterW(ptr long) +@ stdcall CallNextHookEx(long long long long) +@ stdcall CallWindowProcA(ptr long long long long) +@ stdcall CallWindowProcW(ptr long long long long) +@ stdcall CascadeChildWindows(long long) +@ stdcall CascadeWindows(long long ptr long ptr) +@ stdcall ChangeClipboardChain(long long) NtUserChangeClipboardChain +@ stdcall ChangeDisplaySettingsA(ptr long) +@ stdcall ChangeDisplaySettingsExA(str ptr long long ptr) +@ stdcall ChangeDisplaySettingsExW(wstr ptr long long ptr) +@ stdcall ChangeDisplaySettingsW(ptr long) +@ stdcall ChangeMenuA(long long ptr long long) +@ stdcall ChangeMenuW(long long ptr long long) +@ stdcall CharLowerA(str) +@ stdcall CharLowerBuffA(str long) +@ stdcall CharLowerBuffW(wstr long) +@ stdcall CharLowerW(wstr) +@ stdcall CharNextA(str) +@ stdcall CharNextExA(long str long) +@ stdcall CharNextW(wstr) +@ stdcall CharPrevA(str str) +@ stdcall CharPrevExA(long str str long) +@ stdcall CharPrevW(wstr wstr) +@ stdcall CharToOemA(str ptr) +@ stdcall CharToOemBuffA(str ptr long) +@ stdcall CharToOemBuffW(wstr ptr long) +@ stdcall CharToOemW(wstr ptr) +@ stdcall CharUpperA(str) +@ stdcall CharUpperBuffA(str long) +@ stdcall CharUpperBuffW(wstr long) +@ stdcall CharUpperW(wstr) +@ stdcall CheckDlgButton(long long long) +@ stdcall CheckMenuItem(long long long) +@ stdcall CheckMenuRadioItem(long long long long long) +@ stdcall CheckRadioButton(long long long long) +@ stdcall ChildWindowFromPoint(long double) +@ stdcall ChildWindowFromPointEx(long double long) ; Direct call NtUserChildWindowFromPointEx +@ stdcall CliImmSetHotKey(long long long ptr) +@ stdcall ClientThreadSetup() +@ stdcall ClientToScreen(long ptr) +@ stdcall ClipCursor(ptr) NtUserClipCursor +@ stdcall CloseClipboard() NtUserCloseClipboard +@ stdcall CloseDesktop(long) NtUserCloseDesktop +@ stdcall CloseWindow(long) +@ stdcall CloseWindowStation(long) NtUserCloseWindowStation +@ stdcall CopyAcceleratorTableA(long ptr long) +@ stdcall CopyAcceleratorTableW(long ptr long) NtUserCopyAcceleratorTable +@ stdcall CopyIcon(long) +@ stdcall CopyImage(long long long long long) +@ stdcall CopyRect(ptr ptr) +@ stdcall CountClipboardFormats() NtUserCountClipboardFormats +@ stdcall CreateAcceleratorTableA(ptr long) +@ stdcall CreateAcceleratorTableW(ptr long) NtUserCreateAcceleratorTable +@ stdcall CreateCaret(long long long long) NtUserCreateCaret +@ stdcall CreateCursor(long long long long long ptr ptr) +@ stdcall CreateDesktopA(str str ptr long long ptr) +@ stdcall CreateDesktopW(wstr wstr ptr long long ptr) +@ stdcall CreateDialogIndirectParamA(long ptr long ptr long) +@ stdcall CreateDialogIndirectParamAorW(long ptr long ptr long long) +@ stdcall CreateDialogIndirectParamW(long ptr long ptr long) +@ stdcall CreateDialogParamA(long ptr long ptr long) +@ stdcall CreateDialogParamW(long ptr long ptr long) +@ stdcall CreateIcon(long long long long long ptr ptr) +@ stdcall CreateIconFromResource (ptr long long long) +@ stdcall CreateIconFromResourceEx(ptr long long long long long long) +@ stdcall CreateIconIndirect(ptr) +@ stdcall CreateMDIWindowA(ptr ptr long long long long long long long long) +@ stdcall CreateMDIWindowW(ptr ptr long long long long long long long long) +@ stdcall CreateMenu() +@ stdcall CreatePopupMenu() +@ stdcall CreateSystemThreads(long) +@ stdcall CreateWindowExA(long str str long long long long long long long long ptr) +@ stdcall CreateWindowExW(long wstr wstr long long long long long long long long ptr) +@ stdcall CreateWindowStationA(str long long ptr) +@ stdcall CreateWindowStationW(wstr long long ptr) +@ stdcall CsrBroadcastSystemMessageExW(long ptr long long long ptr) +@ stdcall CtxInitUser32() +@ stdcall DdeAbandonTransaction(long long long) +@ stdcall DdeAccessData(long ptr) +@ stdcall DdeAddData(long ptr long long) +@ stdcall DdeClientTransaction(ptr long long long long long long ptr) +@ stdcall DdeCmpStringHandles(long long) +@ stdcall DdeConnect(long long long ptr) +@ stdcall DdeConnectList(long long long long ptr) +@ stdcall DdeCreateDataHandle(long ptr long long long long long) +@ stdcall DdeCreateStringHandleA(long str long) +@ stdcall DdeCreateStringHandleW(long wstr long) +@ stdcall DdeDisconnect(long) +@ stdcall DdeDisconnectList(long) +@ stdcall DdeEnableCallback(long long long) +@ stdcall DdeFreeDataHandle(long) +@ stdcall DdeFreeStringHandle(long long) +@ stdcall DdeGetData(long ptr long long) +@ stdcall DdeGetLastError(long) +@ stdcall DdeGetQualityOfService(long long ptr) ; Direct call NtUserDdeGetQualityOfService +@ stdcall DdeImpersonateClient(long) +@ stdcall DdeInitializeA(ptr ptr long long) +@ stdcall DdeInitializeW(ptr ptr long long) +@ stdcall DdeKeepStringHandle(long long) +@ stdcall DdeNameService(long long long long) +@ stdcall DdePostAdvise(long long long) +@ stdcall DdeQueryConvInfo(long long ptr) +@ stdcall DdeQueryNextServer(long long) +@ stdcall DdeQueryStringA(long long ptr long long) +@ stdcall DdeQueryStringW(long long ptr long long) +@ stdcall DdeReconnect(long) +@ stdcall DdeSetQualityOfService(long ptr ptr) ; Direct call NtUserDdeSetQualityOfService +@ stdcall DdeSetUserHandle (long long long) +@ stdcall DdeUnaccessData(long) +@ stdcall DdeUninitialize(long) +@ stdcall DefDlgProcA(long long long long) +@ stdcall DefDlgProcW(long long long long) +@ stdcall DefFrameProcA(long long long long long) +@ stdcall DefFrameProcW(long long long long long) +@ stdcall DefMDIChildProcA(long long long long) +@ stdcall DefMDIChildProcW(long long long long) +@ stdcall DefRawInputProc(ptr long long) +@ stdcall DefWindowProcA(long long long long) +@ stdcall DefWindowProcW(long long long long) +@ stdcall DeferWindowPos(long long long long long long long long) ; Direct call NtUserDeferWindowPos +@ stdcall DeleteMenu(long long long) NtUserDeleteMenu +@ stdcall DeregisterShellHookWindow (long) +@ stdcall DestroyAcceleratorTable(long) +@ stdcall DestroyCaret() +@ stdcall DestroyCursor(long) +@ stdcall DestroyIcon(long) +@ stdcall DestroyMenu(long) NtUserDestroyMenu +@ stdcall DestroyReasons(ptr) +@ stdcall DestroyWindow(long) NtUserDestroyWindow +@ stdcall DeviceEventWorker(long long long long long) +@ stdcall DialogBoxIndirectParamA(long ptr long ptr long) +@ stdcall DialogBoxIndirectParamAorW(long ptr long ptr long long) +@ stdcall DialogBoxIndirectParamW(long ptr long ptr long) +@ stdcall DialogBoxParamA(long str long ptr long) +@ stdcall DialogBoxParamW(long wstr long ptr long) +@ stdcall DisableProcessWindowsGhosting() +@ stdcall DispatchMessageA(ptr) +@ stdcall DispatchMessageW(ptr) +@ stdcall DisplayExitWindowsWarnings(long) +@ stdcall DlgDirListA(long str long long long) +@ stdcall DlgDirListComboBoxA(long ptr long long long) +@ stdcall DlgDirListComboBoxW(long ptr long long long) +@ stdcall DlgDirListW(long wstr long long long) +@ stdcall DlgDirSelectComboBoxExA(long ptr long long) +@ stdcall DlgDirSelectComboBoxExW(long ptr long long) +@ stdcall DlgDirSelectExA(long ptr long long) +@ stdcall DlgDirSelectExW(long ptr long long) +@ stdcall DragDetect(long double) ; Direct call NtUserDragDetect +@ stdcall DragObject(long long long long long) NtUserDragObject +@ stdcall DrawAnimatedRects(long long ptr ptr) NtUserDrawAnimatedRects +@ stdcall DrawCaption(long long ptr long) +@ stdcall DrawCaptionTempA(long long ptr long long str long) +@ stdcall DrawCaptionTempW(long long ptr long long wstr long) +@ stdcall DrawEdge(long ptr long long) +@ stdcall DrawFocusRect(long ptr) +@ stdcall DrawFrame(long ptr long long) +@ stdcall DrawFrameControl(long ptr long long) +@ stdcall DrawIcon(long long long long) +@ stdcall DrawIconEx(long long long long long long long long long) +@ stdcall DrawMenuBar(long) +@ stdcall DrawMenuBarTemp(long long long long long) +@ stdcall DrawStateA(long long ptr long long long long long long long) +@ stdcall DrawStateW(long long ptr long long long long long long long) +@ stdcall DrawTextA(long str long ptr long) +@ stdcall DrawTextExA(long str long ptr long ptr) +@ stdcall DrawTextExW(long wstr long ptr long ptr) +@ stdcall DrawTextW(long wstr long ptr long) +@ stdcall EditWndProc(long long long long) EditWndProcA +@ stdcall EmptyClipboard() NtUserEmptyClipboard +@ stdcall EnableMenuItem(long long long) +@ stdcall EnableScrollBar(long long long) +@ stdcall EnableWindow(long long) +@ stdcall EndDeferWindowPos(long) +@ stdcall EndDialog(long long) +@ stdcall EndMenu() +@ stdcall EndPaint(long ptr) NtUserEndPaint +@ stdcall EndTask(ptr long long) +@ stdcall EnterReaderModeHelper(ptr) +@ stdcall EnumChildWindows(long ptr long) +@ stdcall EnumClipboardFormats(long) +@ stdcall EnumDesktopWindows(long ptr ptr) +@ stdcall EnumDesktopsA(ptr ptr long) +@ stdcall EnumDesktopsW(ptr ptr long) +@ stdcall EnumDisplayDevicesA(ptr long ptr long) +@ stdcall EnumDisplayDevicesW(ptr long ptr long) +@ stdcall EnumDisplayMonitors(long ptr ptr long) ; Direct call NtUserEnumDisplayMonitors +@ stdcall EnumDisplaySettingsA(str long ptr) +@ stdcall EnumDisplaySettingsExA(str long ptr long) +@ stdcall EnumDisplaySettingsExW(wstr long ptr long) +@ stdcall EnumDisplaySettingsW(wstr long ptr ) +@ stdcall EnumPropsA(long ptr) +@ stdcall EnumPropsExA(long ptr long) +@ stdcall EnumPropsExW(long ptr long) +@ stdcall EnumPropsW(long ptr) +@ stdcall EnumThreadWindows(long ptr long) +@ stdcall EnumWindowStationsA(ptr long) +@ stdcall EnumWindowStationsW(ptr long) +@ stdcall EnumWindows(ptr long) +@ stdcall EqualRect(ptr ptr) +@ stdcall ExcludeUpdateRgn(long long) NtUserExcludeUpdateRgn +@ stdcall ExitWindowsEx(long long) +@ stdcall FillRect(long ptr long) +@ stdcall FindWindowA(str str) +@ stdcall FindWindowExA(long long str str) +@ stdcall FindWindowExW(long long wstr wstr) +@ stdcall FindWindowW(wstr wstr) +@ stdcall FlashWindow(long long) +@ stdcall FlashWindowEx(ptr) NtUserFlashWindowEx +@ stdcall FrameRect(long ptr long) +@ stdcall FreeDDElParam(long long) +@ stdcall GetActiveWindow() +@ stdcall GetAltTabInfo(long long ptr ptr long) GetAltTabInfoA +@ stdcall GetAltTabInfoA(long long ptr ptr long) +@ stdcall GetAltTabInfoW(long long ptr ptr long) +@ stdcall GetAncestor(long long) ; Direct call NtUserGetAncestor +@ stdcall GetAppCompatFlags(long) +@ stdcall GetAppCompatFlags2(long) +@ stdcall GetAsyncKeyState(long) +@ stdcall GetCapture() +@ stdcall GetCaretBlinkTime() NtUserGetCaretBlinkTime +@ stdcall GetCaretPos(ptr) NtUserGetCaretPos +@ stdcall GetClassInfoA(long str ptr) +@ stdcall GetClassInfoExA(long str ptr) +@ stdcall GetClassInfoExW(long wstr ptr) +@ stdcall GetClassInfoW(long wstr ptr) +@ stdcall GetClassLongA(long long) +@ stdcall -arch=x86_64 GetClassLongPtrA(ptr long) +@ stdcall -arch=x86_64 GetClassLongPtrW(ptr long) +@ stdcall GetClassLongW(long long) +@ stdcall GetClassNameA(long ptr long) +@ stdcall GetClassNameW(long ptr long) +@ stdcall GetClassWord(long long) +@ stdcall GetClientRect(long long) +@ stdcall GetClipCursor(ptr) NtUserGetClipCursor +@ stdcall GetClipboardData(long) +@ stdcall GetClipboardFormatNameA(long ptr long) +@ stdcall GetClipboardFormatNameW(long ptr long) +@ stdcall GetClipboardOwner() NtUserGetClipboardOwner +@ stdcall GetClipboardSequenceNumber() NtUserGetClipboardSequenceNumber +@ stdcall GetClipboardViewer() NtUserGetClipboardViewer +@ stdcall GetComboBoxInfo(long ptr) ; Direct call NtUserGetComboBoxInfo +@ stdcall GetCursor() +@ stdcall GetCursorFrameInfo(long long long long long) +@ stdcall GetCursorInfo(ptr) NtUserGetCursorInfo +@ stdcall GetCursorPos(ptr) +@ stdcall GetDC(long) NtUserGetDC +@ stdcall GetDCEx(long long long) NtUserGetDCEx +@ stdcall GetDesktopWindow() +@ stdcall GetDialogBaseUnits() +@ stdcall GetDlgCtrlID(long) +@ stdcall GetDlgItem(long long) +@ stdcall GetDlgItemInt(long long ptr long) +@ stdcall GetDlgItemTextA(long long ptr long) +@ stdcall GetDlgItemTextW(long long ptr long) +@ stdcall GetDoubleClickTime() NtUserGetDoubleClickTime +@ stdcall GetFocus() +@ stdcall GetForegroundWindow() NtUserGetForegroundWindow +@ stdcall GetGUIThreadInfo(long ptr) NtUserGetGUIThreadInfo +@ stdcall GetGuiResources(long long) NtUserGetGuiResources +@ stdcall GetIconInfo(long ptr) +@ stdcall GetInputDesktop() +@ stdcall GetInputState() +@ stdcall GetInternalWindowPos(long ptr ptr) ; direct call NtUserGetInternalWindowPos +@ stdcall GetKBCodePage() +@ stdcall GetKeyNameTextA(long ptr long) +@ stdcall GetKeyNameTextW(long ptr long) +@ stdcall GetKeyState(long) +@ stdcall GetKeyboardLayout(long) +@ stdcall GetKeyboardLayoutList(long ptr) NtUserGetKeyboardLayoutList +@ stdcall GetKeyboardLayoutNameA(ptr) +@ stdcall GetKeyboardLayoutNameW(ptr) +@ stdcall GetKeyboardState(ptr) NtUserGetKeyboardState +@ stdcall GetKeyboardType(long) +@ stdcall GetLastActivePopup(long) +@ stdcall GetLastInputInfo(ptr) +@ stdcall GetLayeredWindowAttributes(long ptr ptr ptr) NtUserGetLayeredWindowAttributes +@ stdcall GetListBoxInfo(long) NtUserGetListBoxInfo +@ stdcall GetMenu(long) +@ stdcall GetMenuBarInfo(long long long ptr) NtUserGetMenuBarInfo +@ stdcall GetMenuCheckMarkDimensions() +@ stdcall GetMenuContextHelpId(long) +@ stdcall GetMenuDefaultItem(long long long) +@ stdcall GetMenuInfo(long ptr) +@ stdcall GetMenuItemCount(long) +@ stdcall GetMenuItemID(long long) +@ stdcall GetMenuItemInfoA(long long long ptr) +@ stdcall GetMenuItemInfoW(long long long ptr) +@ stdcall GetMenuItemRect(long long long ptr) NtUserGetMenuItemRect +@ stdcall GetMenuState(long long long) +@ stdcall GetMenuStringA(long long ptr long long) +@ stdcall GetMenuStringW(long long ptr long long) +@ stdcall GetMessageA(ptr long long long) +@ stdcall GetMessageExtraInfo() +@ stdcall GetMessagePos() +@ stdcall GetMessageTime() +@ stdcall GetMessageW(ptr long long long) +@ stdcall GetMonitorInfoA(long ptr) +@ stdcall GetMonitorInfoW(long ptr) +@ stdcall GetMouseMovePointsEx(long ptr ptr long long) NtUserGetMouseMovePointsEx +@ stdcall GetNextDlgGroupItem(long long long) +@ stdcall GetNextDlgTabItem(long long long) +@ stdcall GetOpenClipboardWindow() NtUserGetOpenClipboardWindow +@ stdcall GetParent(long) +@ stdcall GetPriorityClipboardFormat(ptr long) NtUserGetPriorityClipboardFormat +@ stdcall GetProcessDefaultLayout(ptr) +@ stdcall GetProcessWindowStation() NtUserGetProcessWindowStation +@ stdcall GetProgmanWindow () +@ stdcall GetPropA(long str) +@ stdcall GetPropW(long wstr) +@ stdcall GetQueueStatus(long) +@ stdcall GetRawInputBuffer(ptr ptr long) +@ stdcall GetRawInputData(ptr long ptr ptr long) +@ stdcall GetRawInputDeviceInfoA(ptr long ptr ptr) +@ stdcall GetRawInputDeviceInfoW(ptr long ptr ptr) +@ stdcall GetRawInputDeviceList(ptr ptr long) +@ stdcall GetReasonTitleFromReasonCode(long long long) +@ stdcall GetRegisteredRawInputDevices(ptr ptr long) +@ stdcall GetScrollBarInfo(long long ptr) NtUserGetScrollBarInfo +@ stdcall GetScrollInfo(long long ptr) +@ stdcall GetScrollPos(long long) +@ stdcall GetScrollRange(long long ptr ptr) +@ stdcall GetShellWindow() +@ stdcall GetSubMenu(long long) +@ stdcall GetSysColor(long) +@ stdcall GetSysColorBrush(long) +@ stdcall GetSystemMenu(long long) ; Direct call NtUserGetSystemMenu +@ stdcall GetSystemMetrics(long) +@ stdcall GetTabbedTextExtentA(long str long long ptr) +@ stdcall GetTabbedTextExtentW(long wstr long long ptr) +@ stdcall GetTaskmanWindow () +@ stdcall GetThreadDesktop(long) +@ stdcall GetTitleBarInfo(long ptr) NtUserGetTitleBarInfo +@ stdcall GetTopWindow(long) +@ stdcall GetUpdateRect(long ptr long) +@ stdcall GetUpdateRgn(long long long) +@ stdcall GetUserObjectInformationA(long long ptr long ptr) +@ stdcall GetUserObjectInformationW(long long ptr long ptr) NtUserGetObjectInformation +@ stdcall GetUserObjectSecurity (long ptr ptr long ptr) +; @ stub GetWinStationInfo +@ stdcall GetWindow(long long) +@ stdcall GetWindowContextHelpId(long) +@ stdcall GetWindowDC(long) NtUserGetWindowDC +@ stdcall GetWindowInfo(long ptr) +@ stdcall GetWindowLongA(long long) +@ stdcall -arch=x86_64 GetWindowLongPtrA(ptr long) +@ stdcall -arch=x86_64 GetWindowLongPtrW(ptr long) +@ stdcall GetWindowLongW(long long) +@ stdcall GetWindowModuleFileName(long ptr long) GetWindowModuleFileNameA +@ stdcall GetWindowModuleFileNameA(long ptr long) +@ stdcall GetWindowModuleFileNameW(long ptr long) +@ stdcall GetWindowPlacement(long ptr) NtUserGetWindowPlacement +@ stdcall GetWindowRect(long ptr) +@ stdcall GetWindowRgn(long long) +@ stdcall GetWindowRgnBox(long ptr) +@ stdcall GetWindowTextA(long ptr long) +@ stdcall GetWindowTextLengthA(long) +@ stdcall GetWindowTextLengthW(long) +@ stdcall GetWindowTextW(long ptr long) +@ stdcall GetWindowThreadProcessId(long ptr) +@ stdcall GetWindowWord(long long) +@ stdcall GrayStringA(long long ptr long long long long long long) +@ stdcall GrayStringW(long long ptr long long long long long long) +@ stdcall HideCaret(long) NtUserHideCaret +@ stdcall HiliteMenuItem(long long long long) NtUserHiliteMenuItem +@ stdcall IMPGetIMEA(long ptr) +@ stdcall IMPGetIMEW(long ptr) +@ stdcall IMPQueryIMEA(ptr) +@ stdcall IMPQueryIMEW(ptr) +@ stdcall IMPSetIMEA(long ptr) +@ stdcall IMPSetIMEW(long ptr) +@ stdcall ImpersonateDdeClientWindow(long long) ; Direct call NtUserImpersonateDdeClientWindow +@ stdcall InSendMessage() +@ stdcall InSendMessageEx(ptr) +@ stdcall InflateRect(ptr long long) +@ stdcall InitializeLpkHooks(ptr) +@ stdcall InitializeWin32EntryTable(ptr) +@ stdcall InsertMenuA(long long long long ptr) +@ stdcall InsertMenuItemA(long long long ptr) +@ stdcall InsertMenuItemW(long long long ptr) +@ stdcall InsertMenuW(long long long long ptr) +@ stdcall InternalGetWindowText(long long long) +@ stdcall IntersectRect(ptr ptr ptr) +@ stdcall InvalidateRect(long ptr long) NtUserInvalidateRect +@ stdcall InvalidateRgn(long long long) NtUserInvalidateRgn +@ stdcall InvertRect(long ptr) +@ stdcall IsCharAlphaA(long) +@ stdcall IsCharAlphaNumericA(long) +@ stdcall IsCharAlphaNumericW(long) +@ stdcall IsCharAlphaW(long) +@ stdcall IsCharLowerA(long) +@ stdcall IsCharLowerW(long) +@ stdcall IsCharUpperA(long) +@ stdcall IsCharUpperW(long) +@ stdcall IsChild(long long) +@ stdcall IsClipboardFormatAvailable(long) NtUserIsClipboardFormatAvailable +@ stdcall IsDialogMessage(long ptr) IsDialogMessageA +@ stdcall IsDialogMessageA(long ptr) +@ stdcall IsDialogMessageW(long ptr) +@ stdcall IsDlgButtonChecked(long long) +@ stdcall IsGUIThread(long) +@ stdcall IsHungAppWindow(long) +@ stdcall IsIconic(long) +@ stdcall IsMenu(long) +@ stdcall IsRectEmpty(ptr) +@ stdcall IsServerSideWindow(long) +@ stdcall IsWinEventHookInstalled(long) +@ stdcall IsWindow(long) +@ stdcall IsWindowEnabled(long) +@ stdcall IsWindowInDestroy(long) +@ stdcall IsWindowUnicode(long) +@ stdcall IsWindowVisible(long) +# @ stub IsWow64Message +@ stdcall IsZoomed(long) +@ stdcall KillSystemTimer(long long) +@ stdcall KillTimer(long long) NtUserKillTimer +@ stdcall LoadAcceleratorsA(long str) +@ stdcall LoadAcceleratorsW(long wstr) +@ stdcall LoadBitmapA(long str) +@ stdcall LoadBitmapW(long wstr) +@ stdcall LoadCursorA(long str) +@ stdcall LoadCursorFromFileA(str) +@ stdcall LoadCursorFromFileW(wstr) +@ stdcall LoadCursorW(long wstr) +@ stdcall LoadIconA(long str) +@ stdcall LoadIconW(long wstr) +@ stdcall LoadImageA(long str long long long long) +@ stdcall LoadImageW(long wstr long long long long) +@ stdcall LoadKeyboardLayoutA(str long) +@ stdcall LoadKeyboardLayoutEx(long ptr long) +@ stdcall LoadKeyboardLayoutW(wstr long) +@ stdcall LoadLocalFonts() +@ stdcall LoadMenuA(long str) +@ stdcall LoadMenuIndirectA(ptr) +@ stdcall LoadMenuIndirectW(ptr) +@ stdcall LoadMenuW(long wstr) +@ stdcall LoadRemoteFonts() +@ stdcall LoadStringA(long long ptr long) +@ stdcall LoadStringW(long long ptr long) +@ stdcall LockSetForegroundWindow (long) +@ stdcall LockWindowStation(long) NtUserLockWindowStation +@ stdcall LockWindowUpdate(long) NtUserLockWindowUpdate +@ stdcall LockWorkStation() NtUserLockWorkStation +@ stdcall LookupIconIdFromDirectory(ptr long) +@ stdcall LookupIconIdFromDirectoryEx(ptr long long long long) +@ stdcall MBToWCSEx(long str long wstr long long) +@ stdcall MB_GetString(ptr) +@ stdcall MapDialogRect(long ptr) +@ stdcall MapVirtualKeyA(long long) +@ stdcall MapVirtualKeyExA(long long long) +@ stdcall MapVirtualKeyExW(long long long) +@ stdcall MapVirtualKeyW(long long) +@ stdcall MapWindowPoints(long long ptr long) +@ stdcall MenuItemFromPoint(long long double) ; Direct call NtUserMenuItemFromPoint +@ stdcall MenuWindowProcA (long ptr long long long) +@ stdcall MenuWindowProcW (long ptr long long long) +@ stdcall MessageBeep(long) +@ stdcall MessageBoxA(long str str long) +@ stdcall MessageBoxExA(long str str long long) +@ stdcall MessageBoxExW(long wstr wstr long long) +@ stdcall MessageBoxIndirectA(ptr) +@ stdcall MessageBoxIndirectW(ptr) +@ stdcall MessageBoxTimeoutA(ptr str str long long long) +@ stdcall MessageBoxTimeoutW(ptr wstr wstr long long long) +@ stdcall MessageBoxW(long wstr wstr long) +@ stdcall ModifyMenuA(long long long long ptr) +@ stdcall ModifyMenuW(long long long long ptr) +@ stdcall MonitorFromPoint(double long) +@ stdcall MonitorFromRect(ptr long) +@ stdcall MonitorFromWindow(long long) +@ stdcall MoveWindow(long long long long long long) NtUserMoveWindow +@ stdcall MsgWaitForMultipleObjects(long ptr long long long) +@ stdcall MsgWaitForMultipleObjectsEx(long ptr long long long) +@ stdcall NotifyWinEvent(long long long long) +@ stdcall OemKeyScan(long) +@ stdcall OemToCharA(ptr ptr) +@ stdcall OemToCharBuffA(ptr ptr long) +@ stdcall OemToCharBuffW(ptr ptr long) +@ stdcall OemToCharW(ptr ptr) +@ stdcall OffsetRect(ptr long long) +@ stdcall OpenClipboard(long) +@ stdcall OpenDesktopA(str long long long) +@ stdcall OpenDesktopW(wstr long long long) +@ stdcall OpenIcon(long) +@ stdcall OpenInputDesktop(long long long) NtUserOpenInputDesktop +@ stdcall OpenWindowStationA(str long long) +@ stdcall OpenWindowStationW(wstr long long) +@ stdcall PackDDElParam(long long long) +@ stdcall PaintDesktop(long) NtUserPaintDesktop +@ stdcall PaintMenuBar(long long long long long long) NtUserPaintMenuBar +@ stdcall PeekMessageA(ptr long long long long) +@ stdcall PeekMessageW(ptr long long long long) +@ stdcall PostMessageA(long long long long) +@ stdcall PostMessageW(long long long long) +@ stdcall PostQuitMessage(long) +@ stdcall PostThreadMessageA(long long long long) +@ stdcall PostThreadMessageW(long long long long) +@ stdcall PrintWindow(ptr ptr long) NtUserPrintWindow +@ stdcall PrivateExtractIconExA(str long ptr ptr long) +@ stdcall PrivateExtractIconExW(wstr long ptr ptr long) +@ stdcall PrivateExtractIconsA(str long long long ptr ptr long long) +@ stdcall PrivateExtractIconsW(wstr long long long ptr ptr long long) +@ stdcall PtInRect(ptr double) +@ stdcall QuerySendMessage(ptr) NtUserQuerySendMessage +@ stdcall RealChildWindowFromPoint(long double) ; Direct call NtUserRealChildWindowFromPoint +@ stdcall RealGetWindowClass(long ptr long) RealGetWindowClassA +@ stdcall RealGetWindowClassA(long ptr long) +@ stdcall RealGetWindowClassW(long ptr long) +@ stdcall ReasonCodeNeedsBugID(long) +@ stdcall ReasonCodeNeedsComment(long) +@ stdcall RecordShutdownReason(long) +@ stdcall RedrawWindow(long ptr long long) NtUserRedrawWindow +@ stdcall RegisterClassA(ptr) +@ stdcall RegisterClassExA(ptr) +@ stdcall RegisterClassExW(ptr) +@ stdcall RegisterClassW(ptr) +@ stdcall RegisterClipboardFormatA(str) +@ stdcall RegisterClipboardFormatW(wstr) +@ stdcall RegisterDeviceNotificationA(long ptr long) RegisterDeviceNotificationW +@ stdcall RegisterDeviceNotificationW(long ptr long) +@ stdcall RegisterHotKey(long long long long) NtUserRegisterHotKey +@ stdcall RegisterLogonProcess(long long) +@ stdcall RegisterMessagePumpHook(ptr) +@ stdcall RegisterRawInputDevices(ptr long long) +@ stdcall RegisterServicesProcess(long) +@ stdcall RegisterShellHookWindow(long) +@ stdcall RegisterSystemThread(long long) +@ stdcall RegisterTasklist(long) NtUserRegisterTasklist +@ stdcall RegisterUserApiHook(ptr) +@ stdcall RegisterWindowMessageA(str) +@ stdcall RegisterWindowMessageW(wstr) +@ stdcall ReleaseCapture() +@ stdcall ReleaseDC(long long) +@ stdcall RemoveMenu(long long long) NtUserRemoveMenu +@ stdcall RemovePropA(long str) +@ stdcall RemovePropW(long wstr) +@ stdcall ReplyMessage(long) +; @ stub ResolveDesktopForWOW +@ stdcall ReuseDDElParam(long long long long long) +@ stdcall ScreenToClient(long ptr) +@ stdcall ScrollChildren(long long long long) +@ stdcall ScrollDC(long long long ptr ptr long ptr) +@ stdcall ScrollWindow(long long long ptr ptr) +@ stdcall ScrollWindowEx(long long long ptr ptr long ptr long) +@ stdcall SendDlgItemMessageA(long long long long long) +@ stdcall SendDlgItemMessageW(long long long long long) +@ stdcall SendIMEMessageExA(long long) +@ stdcall SendIMEMessageExW(long long) +@ stdcall SendInput(long ptr long) NtUserSendInput +@ stdcall SendMessageA(long long long long) +@ stdcall SendMessageCallbackA(long long long long ptr long) +@ stdcall SendMessageCallbackW(long long long long ptr long) +@ stdcall SendMessageTimeoutA(long long long long long long ptr) +@ stdcall SendMessageTimeoutW(long long long long long long ptr) +@ stdcall SendMessageW(long long long long) +@ stdcall SendNotifyMessageA(long long long long) +@ stdcall SendNotifyMessageW(long long long long) +@ stdcall SetActiveWindow(long) NtUserSetActiveWindow +@ stdcall SetCapture(long) NtUserSetCapture +@ stdcall SetCaretBlinkTime(long) +@ stdcall SetCaretPos(long long) +@ stdcall SetClassLongA(long long long) +@ stdcall -arch=x86_64 SetClassLongPtrA(ptr long ptr) +@ stdcall -arch=x86_64 SetClassLongPtrW(ptr long ptr) +@ stdcall SetClassLongW(long long long) +@ stdcall SetClassWord(long long long) ; Direct call NtUserSetClassWord +@ stdcall SetClipboardData(long long) +@ stdcall SetClipboardViewer(long) NtUserSetClipboardViewer +@ stdcall SetConsoleReserveKeys(long long) NtUserSetConsoleReserveKeys +@ stdcall SetCursor(long) NtUserSetCursor +@ stdcall SetCursorContents(ptr ptr) NtUserSetCursorContents +@ stdcall SetCursorPos(long long) +@ stdcall SetDebugErrorLevel(long) +@ stdcall SetDeskWallpaper(ptr) +@ stdcall SetDlgItemInt(long long long long) +@ stdcall SetDlgItemTextA(long long str) +@ stdcall SetDlgItemTextW(long long wstr) +@ stdcall SetDoubleClickTime(long) +@ stdcall SetFocus(long) NtUserSetFocus +@ stdcall SetForegroundWindow(long) +@ stdcall SetInternalWindowPos(long long ptr ptr) NtUserSetInternalWindowPos +@ stdcall SetKeyboardState(ptr) NtUserSetKeyboardState +@ stdcall SetLastErrorEx(long long) +@ stdcall SetLayeredWindowAttributes(ptr long long long) NtUserSetLayeredWindowAttributes +@ stdcall SetLogonNotifyWindow(long long) ; Direct call NtUserSetLogonNotifyWindow +@ stdcall SetMenu(long long) +@ stdcall SetMenuContextHelpId(long long) NtUserSetMenuContextHelpId +@ stdcall SetMenuDefaultItem(long long long) NtUserSetMenuDefaultItem +@ stdcall SetMenuInfo(long ptr) +@ stdcall SetMenuItemBitmaps(long long long long long) +@ stdcall SetMenuItemInfoA(long long long ptr) +@ stdcall SetMenuItemInfoW(long long long ptr) +@ stdcall SetMessageExtraInfo(long) +@ stdcall SetMessageQueue(long) +@ stdcall SetParent(long long) NtUserSetParent +@ stdcall SetProcessDefaultLayout(long) +@ stdcall SetProcessWindowStation(long) NtUserSetProcessWindowStation +@ stdcall SetProgmanWindow (long) +@ stdcall SetPropA(long str long) +@ stdcall SetPropW(long wstr long) +@ stdcall SetRect(ptr long long long long) +@ stdcall SetRectEmpty(ptr) +@ stdcall SetScrollInfo(long long ptr long) ; Direct call NtUserSetScrollInfo +@ stdcall SetScrollPos(long long long long) +@ stdcall SetScrollRange(long long long long long) +@ stdcall SetShellWindow(long) +@ stdcall SetShellWindowEx(long long) NtUserSetShellWindowEx +@ stdcall SetSysColors(long ptr ptr) +@ stdcall SetSysColorsTemp(ptr ptr long) +@ stdcall SetSystemCursor(long long) +@ stdcall SetSystemMenu(long long) ; Direct call NtUserSetSystemMenu +@ stdcall SetSystemTimer(long long long ptr) NtUserSetSystemTimer +@ stdcall SetTaskmanWindow (long) +@ stdcall SetThreadDesktop(long) NtUserSetThreadDesktop +@ stdcall SetTimer(long long long ptr) NtUserSetTimer +@ stdcall SetUserObjectInformationA(long long ptr long) NtUserSetObjectInformation +@ stdcall SetUserObjectInformationW(long long ptr long) NtUserSetObjectInformation +@ stdcall SetUserObjectSecurity(long ptr ptr) +@ stdcall SetWinEventHook(long long long ptr long long long) +@ stdcall SetWindowContextHelpId(long long) +@ stdcall SetWindowLongA(long long long) +@ stdcall -arch=x86_64 SetWindowLongPtrA(ptr long ptr) +@ stdcall -arch=x86_64 SetWindowLongPtrW(ptr long ptr) +@ stdcall SetWindowLongW(long long long) +@ stdcall SetWindowPlacement(long ptr) NtUserSetWindowPlacement +@ stdcall SetWindowPos(long long long long long long long) NtUserSetWindowPos +@ stdcall SetWindowRgn(long long long) +@ stdcall SetWindowStationUser(long long long long) +@ stdcall SetWindowTextA(long str) +@ stdcall SetWindowTextW(long wstr) +@ stdcall SetWindowWord(long long long) ; Direct call NtUserSetWindowWord +@ stdcall SetWindowsHookA(long ptr) +@ stdcall SetWindowsHookExA(long long long long) +@ stdcall SetWindowsHookExW(long long long long) +@ stdcall SetWindowsHookW(long ptr) +@ stdcall ShowCaret(long) NtUserShowCaret +@ stdcall ShowCursor(long) +@ stdcall ShowOwnedPopups(long long) +@ stdcall ShowScrollBar(long long long) NtUserShowScrollBar +@ stdcall ShowStartGlass(long) +@ stdcall ShowWindow(long long) NtUserShowWindow +@ stdcall ShowWindowAsync(long long) NtUserShowWindowAsync +@ stdcall SoftModalMessageBox(long) +@ stdcall SubtractRect(ptr ptr ptr) +@ stdcall SwapMouseButton(long) +@ stdcall SwitchDesktop(long) NtUserSwitchDesktop +@ stdcall SwitchToThisWindow(long long) +@ stdcall SystemParametersInfoA(long long ptr long) +@ stdcall SystemParametersInfoW(long long ptr long) +@ stdcall TabbedTextOutA(long long long str long long ptr long) +@ stdcall TabbedTextOutW(long long long wstr long long ptr long) +@ stdcall TileChildWindows(long long) +@ stdcall TileWindows(long long ptr long ptr) +@ stdcall ToAscii(long long ptr ptr long) +@ stdcall ToAsciiEx(long long ptr ptr long long) +@ stdcall ToUnicode(long long ptr ptr long long) +@ stdcall ToUnicodeEx(long long ptr ptr long long long) +@ stdcall TrackMouseEvent(ptr) NtUserTrackMouseEvent +@ stdcall TrackPopupMenu(long long long long long long ptr) +@ stdcall TrackPopupMenuEx(long long long long long ptr) ; Direct call NtUserTrackPopupMenuEx +@ stdcall TranslateAccelerator(long long ptr) TranslateAcceleratorA +@ stdcall TranslateAcceleratorA(long long ptr) +@ stdcall TranslateAcceleratorW(long long ptr) +@ stdcall TranslateMDISysAccel(long ptr) +@ stdcall TranslateMessage(ptr) +@ stdcall TranslateMessageEx(ptr long) +@ stdcall UnhookWinEvent(long) NtUserUnhookWinEvent +@ stdcall UnhookWindowsHook(long ptr) +@ stdcall UnhookWindowsHookEx(long) NtUserUnhookWindowsHookEx +@ stdcall UnionRect(ptr ptr ptr) +@ stdcall UnloadKeyboardLayout(long) NtUserUnloadKeyboardLayout +@ stdcall UnlockWindowStation(long) NtUserUnlockWindowStation +@ stdcall UnpackDDElParam(long long ptr ptr) +@ stdcall UnregisterClassA(str long) +@ stdcall UnregisterClassW(wstr long) +@ stdcall UnregisterDeviceNotification(long) +@ stdcall UnregisterHotKey(long long) NtUserUnregisterHotKey +@ stdcall UnregisterMessagePumpHook() +@ stdcall UnregisterUserApiHook() NtUserUnregisterUserApiHook +@ stdcall UpdateLayeredWindow(long long ptr ptr long ptr long ptr long) +@ stdcall UpdateLayeredWindowIndirect(long ptr) +@ stdcall UpdatePerUserSystemParameters(long long) +@ stdcall UpdateWindow(long) +@ stdcall User32InitializeImmEntryTable(ptr) +@ stdcall UserClientDllInitialize(long long ptr) DllMain +@ stdcall UserHandleGrantAccess(ptr ptr long) NtUserUserHandleGrantAccess +@ stdcall UserLpkPSMTextOut(long long long long long long) +@ stdcall UserLpkTabbedTextOut(long long long long long long long long long long long long) +@ stdcall UserRealizePalette(long) +@ stdcall UserRegisterWowHandlers(ptr ptr) +@ stdcall ValidateRect(long ptr) NtUserValidateRect +@ stdcall ValidateRgn(long long) +@ stdcall VkKeyScanA(long) +@ stdcall VkKeyScanExA(long long) +@ stdcall VkKeyScanExW(long long) +@ stdcall VkKeyScanW(long) +@ stdcall WCSToMBEx(long wstr long str long long) +@ stdcall WINNLSEnableIME(long long) +@ stdcall WINNLSGetEnableStatus(long) +@ stdcall WINNLSGetIMEHotkey(long) +@ stdcall WaitForInputIdle(long long) +@ stdcall WaitMessage() NtUserWaitMessage +@ stdcall Win32PoolAllocationStats(long long long long long) +@ stdcall WinHelpA(long str long long) +@ stdcall WinHelpW(long wstr long long) +@ stdcall WindowFromDC(long) +@ stdcall WindowFromPoint(double) +@ stdcall WindowFromPhysicalPoint(double) NtUserWindowFromPhysicalPoint +@ stdcall keybd_event(long long long long) +@ stdcall mouse_event(long long long long long) +@ varargs wsprintfA(str str) +@ varargs wsprintfW(wstr wstr) +@ stdcall wvsprintfA(ptr str ptr) +@ stdcall wvsprintfW(ptr wstr ptr) + +; Functions exported by Win Vista +@ stdcall SetProcessDPIAware() + +; Unknown and undocumented functions +; @ stdcall CalcChildScroll(long long) +; @ stdcall CharNextExW(long wstr long) +; @ stdcall CharPrevExW(long wstr wstr long) +; @ stub ClientThreadConnect +; @ stub EnumDisplayDeviceModesA ;(str long ptr long) +; @ stub EnumDisplayDeviceModesW ;(wstr long ptr long) +; @ stdcall GetMenuIndex(ptr ptr) +; @ stub GetNextQueueWindow +; @ stub HasSystemSleepStarted +; @ stub InitSharedTable +; @ stub InitTask +; @ stub IsHungThread +; @ stub ModifyAccess +; @ stub PlaySoundEvent +; @ stub PrivateSetDbgTag +; @ stub PrivateSetRipFlags +; @ stub QueryUserCounters # Direct call NtUserQueryUserCounters +; @ stub RegisterNetworkCapabilities +; @ stub ResetDisplay +; @ stub ServerSetFunctionPointers +; @ stub SetDesktopBitmap +; @ stub SetWindowFullScreenState +; @ stdcall SetWindowText(long str) SetWindowTextA +; @ stub SysErrorBox +; @ stub UserIsSystemResumeAutomatic +; @ stub UserSetDeviceHoldState +; @ stdcall UserSignalProc(long long long long) +; @ stub VRipOutput +; @ stub VTagOutput +; @ stub WNDPROC_CALLBACK +; @ stub WinOldAppHackoMatic +; @ stub YieldTask +; @ stub _SetProcessDefaultLayout diff --git a/reactos/dll/win32/userenv/CMakeLists.txt b/reactos/dll/win32/userenv/CMakeLists.txt new file mode 100644 index 00000000000..32d3bd41711 --- /dev/null +++ b/reactos/dll/win32/userenv/CMakeLists.txt @@ -0,0 +1,32 @@ + +spec2def(userenv.dll userenv.spec) + +set_rc_compiler() + +list(APPEND SOURCE + desktop.c + directory.c + environment.c + gpolicy.c + misc.c + profile.c + registry.c + setup.c + userenv.c + userenv.rc + ${CMAKE_CURRENT_BINARY_DIR}/userenv_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/userenv.def) + +add_library(userenv SHARED + ${CMAKE_CURRENT_BINARY_DIR}/userenv_precomp.h.gch + ${SOURCE}) + +set_module_type(userenv win32dll) + +target_link_libraries(userenv uuid) + +add_importlibs(userenv advapi32 user32 msvcrt kernel32 ntdll) +add_pch(userenv ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) + +add_cd_file(TARGET userenv DESTINATION reactos/system32 FOR all) +add_importlib_target(userenv.spec) diff --git a/reactos/dll/win32/usp10/CMakeLists.txt b/reactos/dll/win32/usp10/CMakeLists.txt new file mode 100644 index 00000000000..17b66b15783 --- /dev/null +++ b/reactos/dll/win32/usp10/CMakeLists.txt @@ -0,0 +1,25 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +spec2def(usp10.dll usp10.spec) + +list(APPEND SOURCE + bidi.c + usp10.c + mirror.c + shape.c + shaping.c + ${CMAKE_CURRENT_BINARY_DIR}/usp10_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/usp10.def) + +add_library(usp10 SHARED ${SOURCE}) + +set_module_type(usp10 win32dll) + +target_link_libraries(usp10 wine) + +add_importlibs(usp10 gdi32 msvcrt kernel32 ntdll) +add_importlib_target(usp10.spec) + +add_cd_file(TARGET usp10 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/uxtheme/CMakeLists.txt b/reactos/dll/win32/uxtheme/CMakeLists.txt new file mode 100644 index 00000000000..30781aa28a4 --- /dev/null +++ b/reactos/dll/win32/uxtheme/CMakeLists.txt @@ -0,0 +1,31 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) +set_rc_compiler() + +spec2def(uxtheme.dll uxtheme.spec) + +list(APPEND SOURCE + buffer.c + draw.c + main.c + metric.c + msstyles.c + property.c + stylemap.c + system.c + uxini.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/uxtheme_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/uxtheme.def) + +add_library(uxtheme SHARED ${SOURCE}) + +set_module_type(uxtheme win32dll) + +target_link_libraries(uxtheme wine) + +add_importlibs(uxtheme user32 advapi32 gdi32 msimg32 msvcrt kernel32 ntdll) + +add_cd_file(TARGET uxtheme DESTINATION reactos/system32 FOR all) +add_importlib_target(uxtheme.spec) diff --git a/reactos/dll/win32/vdmdbg/CMakeLists.txt b/reactos/dll/win32/vdmdbg/CMakeLists.txt new file mode 100644 index 00000000000..a312742e646 --- /dev/null +++ b/reactos/dll/win32/vdmdbg/CMakeLists.txt @@ -0,0 +1,17 @@ + +set_unicode() + +spec2def(vdmdbg.dll vdmdbg.spec) + +list(APPEND SOURCE + vdmdbg.c + ${CMAKE_CURRENT_BINARY_DIR}/vdmdbg.def) + +add_library(vdmdbg SHARED + ${CMAKE_CURRENT_BINARY_DIR}/vdmdbg_vdmdbg.h.gch + ${SOURCE}) + +set_module_type(vdmdbg win32dll) +add_importlibs(vdmdbg msvcrt kernel32 ntdll) +add_pch(vdmdbg ${CMAKE_CURRENT_SOURCE_DIR}/vdmdbg.h ${SOURCE}) +add_cd_file(TARGET vdmdbg DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/version/CMakeLists.txt b/reactos/dll/win32/version/CMakeLists.txt new file mode 100644 index 00000000000..beaf8ba13cc --- /dev/null +++ b/reactos/dll/win32/version/CMakeLists.txt @@ -0,0 +1,22 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(version.dll version.spec) + +list(APPEND SOURCE + info.c + install.c + resource.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/version.def) + +add_library(version SHARED ${SOURCE}) + +set_entrypoint(version 0) + +target_link_libraries(version wine) +add_importlibs(version lz32 kernel32 ntdll) +add_dependencies(version psdk) +add_cd_file(TARGET version DESTINATION reactos/system32 FOR all) +add_importlib_target(version.spec) diff --git a/reactos/dll/win32/wdmaud.drv/CMakeLists.txt b/reactos/dll/win32/wdmaud.drv/CMakeLists.txt new file mode 100644 index 00000000000..5272364e516 --- /dev/null +++ b/reactos/dll/win32/wdmaud.drv/CMakeLists.txt @@ -0,0 +1,34 @@ + +set_unicode() + +add_definitions(-DNDEBUG=1) + +include_directories( + ${REACTOS_SOURCE_DIR}/include/reactos/libs/sound + ${REACTOS_SOURCE_DIR}/drivers/wdm/audio/legacy/wdmaud + ${REACTOS_SOURCE_DIR}/lib/drivers/sound/mmixer + ${REACTOS_SOURCE_DIR}/lib/3rdparty/libsamplerate) + +spec2def(wdmaud.drv wdmaud.spec) + +list(APPEND SOURCE + wdmaud.c + mixer.c + mmixer.c + legacy.c + wdmaud.rc + ${CMAKE_CURRENT_BINARY_DIR}/wdmaud.def) + +add_library(wdmaud.drv SHARED ${SOURCE}) + +set_module_type(wdmaud.drv win32dll) + +set_target_properties(wdmaud.drv PROPERTIES SUFFIX "") + +target_link_libraries(wdmaud.drv + mmebuddy + libsamplerate + mmixer) + +add_importlibs(wdmaud.drv user32 winmm advapi32 msvcrt setupapi ksuser kernel32 ntdll) +add_cd_file(TARGET wdmaud.drv DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/windowscodecs/CMakeLists.txt b/reactos/dll/win32/windowscodecs/CMakeLists.txt new file mode 100644 index 00000000000..47ec0d9c422 --- /dev/null +++ b/reactos/dll/win32/windowscodecs/CMakeLists.txt @@ -0,0 +1,49 @@ + +add_definitions(-D__WINESRC__) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories( + ${REACTOS_SOURCE_DIR}/include/reactos/wine + ${REACTOS_SOURCE_DIR}/include/reactos/libs/libjpeg + ${REACTOS_SOURCE_DIR}/include/reactos/libs/zlib + ${REACTOS_SOURCE_DIR}/include/reactos/libs/libpng + ${REACTOS_SOURCE_DIR}/include/reactos/libs/libtiff) +set_rc_compiler() + +spec2def(windowscodecs.dll windowscodecs.spec) + +list(APPEND SOURCE + bmpdecode.c + bmpencode.c + clsfactory.c + converter.c + fliprotate.c + gifformat.c + icoformat.c + imgfactory.c + info.c + jpegformat.c + main.c + palette.c + pngformat.c + propertybag.c + regsvr.c + stream.c + tiffformat.c + ungif.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/windowscodecs_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/windowscodecs.def) + +add_library(windowscodecs SHARED ${SOURCE}) + +set_module_type(windowscodecs win32dll) + +target_link_libraries(windowscodecs wine uuid) + +add_importlibs(windowscodecs ole32 shlwapi advapi32 msvcrt kernel32 ntdll) +add_importlib_target(windowscodecs.spec) + +add_cd_file(TARGET windowscodecs DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/winemp3.acm/CMakeLists.txt b/reactos/dll/win32/winemp3.acm/CMakeLists.txt new file mode 100644 index 00000000000..44b35f18022 --- /dev/null +++ b/reactos/dll/win32/winemp3.acm/CMakeLists.txt @@ -0,0 +1,34 @@ + +add_definitions( + -D_DLL -D__USE_CRTIMP + -D__WINESRC__ + -DWIN32) + +include_directories( + ${REACTOS_SOURCE_DIR}/include/reactos/wine + ${REACTOS_SOURCE_DIR}/include/reactos/libs/libmpg123) + +spec2def(winemp3.acm winemp3.acm.spec) + +add_library(winemp3.acm SHARED + mpegl3.c + ${CMAKE_CURRENT_BINARY_DIR}/winemp3.def) + +set_entrypoint(winemp3.acm 0) +set_target_properties(winemp3.acm PROPERTIES SUFFIX "") + +target_link_libraries(winemp3.acm + mingw_common + wine + libmpg123) + +add_importlibs(winemp3.acm + msvcrt + winmm + user32 + kernel32 + ntdll) + +add_dependencies(winemp3.acm psdk) + +add_cd_file(TARGET winemp3.acm DESTINATION reactos/system32 FOR all) \ No newline at end of file diff --git a/reactos/dll/win32/winfax/CMakeLists.txt b/reactos/dll/win32/winfax/CMakeLists.txt new file mode 100644 index 00000000000..ced03a8fb41 --- /dev/null +++ b/reactos/dll/win32/winfax/CMakeLists.txt @@ -0,0 +1,15 @@ + +spec2def(winfax.dll winfax.spec) + +list(APPEND SOURCE + winfax.c + winfax.rc + ${CMAKE_CURRENT_BINARY_DIR}/winfax.def) + +add_library(winfax SHARED ${SOURCE}) + +set_entrypoint(winfax 0) + +add_importlibs(winfax kernel32 ntdll) +add_dependencies(winfax psdk) +add_cd_file(TARGET winfax DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/wing32/CMakeLists.txt b/reactos/dll/win32/wing32/CMakeLists.txt new file mode 100644 index 00000000000..c7f1e6e1a23 --- /dev/null +++ b/reactos/dll/win32/wing32/CMakeLists.txt @@ -0,0 +1,16 @@ + +set_unicode() + +spec2def(wing32.dll wing32.spec) + +list(APPEND SOURCE + wing32.c + ${CMAKE_CURRENT_BINARY_DIR}/wing32.def) + +add_library(wing32 SHARED ${SOURCE}) + +set_entrypoint(wing32 0) + +add_importlibs(wing32 user32 gdi32 msvcrt) +add_dependencies(wing32 psdk) +add_cd_file(TARGET wing32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/winhttp/CMakeLists.txt b/reactos/dll/win32/winhttp/CMakeLists.txt new file mode 100644 index 00000000000..a5bff14ed9f --- /dev/null +++ b/reactos/dll/win32/winhttp/CMakeLists.txt @@ -0,0 +1,23 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(winhttp.dll winhttp.spec) + +list(APPEND SOURCE + cookie.c + handle.c + main.c + net.c + request.c + session.c + url.c + ${CMAKE_CURRENT_BINARY_DIR}/winhttp.def) + +add_library(winhttp SHARED ${SOURCE}) + +set_module_type(winhttp win32dll) +target_link_libraries(winhttp wine) +add_importlibs(winhttp shlwapi wininet ws2_32 msvcrt crypt32 advapi32 kernel32 ntdll) +add_importlib_target(winhttp.spec) +add_cd_file(TARGET winhttp DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/wininet/CMakeLists.txt b/reactos/dll/win32/wininet/CMakeLists.txt new file mode 100644 index 00000000000..0351ba69925 --- /dev/null +++ b/reactos/dll/win32/wininet/CMakeLists.txt @@ -0,0 +1,37 @@ + +add_definitions( + -D__WINESRC__ -D_WINE + -Dclose=_close) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(wininet.dll wininet.spec) + +set_rc_compiler() + +list(APPEND SOURCE + cookie.c + dialogs.c + ftp.c + gopher.c + http.c + internet.c + netconnection.c + urlcache.c + utility.c + wininet_main.c + rsrc.rc + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/wininet_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/wininet.def) + +add_library(wininet SHARED ${SOURCE}) + +set_module_type(wininet win32dll) + +target_link_libraries(wininet wine ${PSEH_LIB}) + +add_importlibs(wininet mpr shlwapi shell32 user32 advapi32 secur32 crypt32 ws2_32 msvcrt kernel32 ntdll) + +add_cd_file(TARGET wininet DESTINATION reactos/system32 FOR all) +add_importlib_target(wininet.spec) diff --git a/reactos/dll/win32/winmm/CMakeLists.txt b/reactos/dll/win32/winmm/CMakeLists.txt new file mode 100644 index 00000000000..0f39831974a --- /dev/null +++ b/reactos/dll/win32/winmm/CMakeLists.txt @@ -0,0 +1,36 @@ + +add_definitions(-D_WINE) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(winmm.dll winmm.spec) + +set_rc_compiler() + +list(APPEND SOURCE + driver.c + joystick.c + lolvldrv.c + mci.c + mmio.c + playsound.c + registry.c + time.c + winmm.c + winmm_res.rc + ${CMAKE_CURRENT_BINARY_DIR}/winmm_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/winmm.def) + +add_library(winmm SHARED ${SOURCE}) + +set_module_type(winmm win32dll) + +target_link_libraries(winmm + wine + ${PSEH_LIB}) + +add_importlibs(winmm advapi32 user32 msvcrt kernel32 ntdll) + + +add_subdirectory(midimap) +add_cd_file(TARGET winmm DESTINATION reactos/system32 FOR all) +add_importlib_target(winmm.spec) diff --git a/reactos/dll/win32/winmm/midimap/CMakeLists.txt b/reactos/dll/win32/winmm/midimap/CMakeLists.txt new file mode 100644 index 00000000000..701c69e735f --- /dev/null +++ b/reactos/dll/win32/winmm/midimap/CMakeLists.txt @@ -0,0 +1,18 @@ + +add_definitions(-DUNICODE -D_UNICODE) + +spec2def(midimap.dll midimap.spec) + +add_library(midimap SHARED + midimap.c + midimap.rc + ${CMAKE_CURRENT_BINARY_DIR}/midimap.def) + +set_entrypoint(midimap 0) + +target_link_libraries(midimap uuid wine) + +add_importlibs(midimap advapi32 user32 winmm kernel32 ntdll) +add_dependencies(midimap psdk) +add_cd_file(TARGET midimap DESTINATION reactos/system32 FOR all) + diff --git a/reactos/dll/win32/winspool/CMakeLists.txt b/reactos/dll/win32/winspool/CMakeLists.txt new file mode 100644 index 00000000000..ad8b6a29808 --- /dev/null +++ b/reactos/dll/win32/winspool/CMakeLists.txt @@ -0,0 +1,25 @@ + +set_unicode() + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() + +spec2def(winspool.drv winspool.spec) + +list(APPEND SOURCE + info.c + stubs.c + winspool.rc + ${CMAKE_CURRENT_BINARY_DIR}/winspool_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/winspool.def) + +add_library(winspool SHARED ${SOURCE}) + +set_target_properties(winspool PROPERTIES SUFFIX ".drv") + +set_module_type(winspool win32dll) +target_link_libraries(winspool wine) +add_importlibs(winspool advapi32 shlwapi msvcrt kernel32 ntdll) +add_cd_file(TARGET winspool DESTINATION reactos/system32 FOR all) +add_importlib_target(winspool.spec) diff --git a/reactos/dll/win32/winsta/CMakeLists.txt b/reactos/dll/win32/winsta/CMakeLists.txt new file mode 100644 index 00000000000..2d46896145f --- /dev/null +++ b/reactos/dll/win32/winsta/CMakeLists.txt @@ -0,0 +1,23 @@ + +spec2def(winsta.dll winsta.spec) + +list(APPEND SOURCE + logon.c + main.c + misc.c + query.c + security.c + server.c + ws.c + winsta.rc + ${CMAKE_CURRENT_BINARY_DIR}/winsta.def) + +add_library(winsta SHARED + ${CMAKE_CURRENT_BINARY_DIR}/winsta_winsta.h.gch + ${SOURCE}) + +set_module_type(winsta win32dll) +target_link_libraries(winsta wine) +add_importlibs(winsta msvcrt kernel32 ntdll) +add_pch(winsta ${CMAKE_CURRENT_SOURCE_DIR}/winsta.h ${SOURCE}) +add_cd_file(TARGET winsta DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/wintrust/CMakeLists.txt b/reactos/dll/win32/wintrust/CMakeLists.txt new file mode 100644 index 00000000000..f4aebcd2b27 --- /dev/null +++ b/reactos/dll/win32/wintrust/CMakeLists.txt @@ -0,0 +1,31 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() +spec2def(wintrust.dll wintrust.spec) + +list(APPEND SOURCE + crypt.c + register.c + wintrust_main.c + asn.c + softpub.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/wintrust_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/wintrust.def) + +add_library(wintrust SHARED ${SOURCE}) + +set_module_type(wintrust win32dll) + +target_link_libraries(wintrust + wine + ${PSEH_LIB}) + +add_importlibs(wintrust crypt32 cryptui user32 advapi32 imagehlp msvcrt kernel32 ntdll) + +add_importlib_target(wintrust.spec) + +add_cd_file(TARGET wintrust DESTINATION reactos/system32 FOR all) + diff --git a/reactos/dll/win32/wlanapi/CMakeLists.txt b/reactos/dll/win32/wlanapi/CMakeLists.txt new file mode 100644 index 00000000000..eeaa6894daf --- /dev/null +++ b/reactos/dll/win32/wlanapi/CMakeLists.txt @@ -0,0 +1,24 @@ + +include_directories(${REACTOS_BINARY_DIR}/include/reactos/idl) + +spec2def(wlanapi.dll wlanapi.spec) + +list(APPEND SOURCE + main.c + ${CMAKE_CURRENT_BINARY_DIR}/wlanapi_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/wlanapi.def) + +add_library(wlanapi SHARED ${SOURCE}) + +set_entrypoint(wlanapi 0) + +target_link_libraries(wlanapi + wlansvcrpc + wine + ${PSEH_LIB}) + +add_importlibs(wlanapi rpcrt4 kernel32 ntdll) +add_importlib_target(wlanapi.spec) + +add_dependencies(wlanapi psdk) +add_cd_file(TARGET wlanapi DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/wldap32/CMakeLists.txt b/reactos/dll/win32/wldap32/CMakeLists.txt new file mode 100644 index 00000000000..c97f5e443f7 --- /dev/null +++ b/reactos/dll/win32/wldap32/CMakeLists.txt @@ -0,0 +1,41 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +set_rc_compiler() +spec2def(wldap32.dll wldap32.spec) + +list(APPEND SOURCE + add.c + ber.c + bind.c + compare.c + control.c + delete.c + dn.c + error.c + extended.c + init.c + main.c + misc.c + modify.c + modrdn.c + option.c + page.c + parse.c + rename.c + search.c + value.c + wldap32.rc + ${CMAKE_CURRENT_BINARY_DIR}/wldap32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/wldap32.def) + +add_library(wldap32 SHARED ${SOURCE}) + +set_module_type(wldap32 win32dll) + +target_link_libraries(wldap32 wine) + +add_importlibs(wldap32 user32 msvcrt kernel32 ntdll) +add_importlib_target(wldap32.spec) +add_cd_file(TARGET wldap32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/wmi/CMakeLists.txt b/reactos/dll/win32/wmi/CMakeLists.txt new file mode 100644 index 00000000000..d80d3eedc3b --- /dev/null +++ b/reactos/dll/win32/wmi/CMakeLists.txt @@ -0,0 +1,14 @@ + +spec2def(wmi.dll wmi.spec) + +list(APPEND SOURCE + wmi.rc + ${CMAKE_CURRENT_BINARY_DIR}/wmi.def) + +add_library(wmi SHARED ${SOURCE}) + +set_entrypoint(wmi 0) + +add_importlibs(wmi advapi32) +add_dependencies(wmi psdk) +add_cd_file(TARGET wmi DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/ws2_32/CMakeLists.txt b/reactos/dll/win32/ws2_32/CMakeLists.txt new file mode 100644 index 00000000000..a39c061f7d5 --- /dev/null +++ b/reactos/dll/win32/ws2_32/CMakeLists.txt @@ -0,0 +1,36 @@ + +set_unicode() + +add_definitions(-DLE) +add_definitions(-DWINSOCK_API_LINKAGE=DECLSPEC_EXPORT) + +include_directories(BEFORE include) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(ws2_32.dll ws2_32.spec) + +list(APPEND SOURCE + misc/bsd.c + misc/catalog.c + misc/dllmain.c + misc/event.c + misc/handle.c + misc/ns.c + misc/sndrcv.c + misc/stubs.c + misc/upcall.c + misc/async.c + ws2_32.rc + ${CMAKE_CURRENT_BINARY_DIR}/ws2_32.def) + +add_library(ws2_32 SHARED ${CMAKE_CURRENT_BINARY_DIR}/ws2_32_ws2_32.h.gch ${SOURCE}) + +set_module_type(ws2_32 win32dll) + +target_link_libraries(ws2_32 wine) + +add_importlibs(ws2_32 user32 advapi32 dnsapi ws2help msvcrt kernel32 ntdll) +add_pch(ws2_32 ${CMAKE_CURRENT_SOURCE_DIR}/include/ws2_32.h ${SOURCE}) + +add_cd_file(TARGET ws2_32 DESTINATION reactos/system32 FOR all) +add_importlib_target(ws2_32.spec) diff --git a/reactos/dll/win32/ws2_32_new/CMakeLists.txt b/reactos/dll/win32/ws2_32_new/CMakeLists.txt new file mode 100644 index 00000000000..5999316ca9a --- /dev/null +++ b/reactos/dll/win32/ws2_32_new/CMakeLists.txt @@ -0,0 +1,55 @@ + +add_definitions(-DLE) + +include_directories( + inc + ${REACTOS_SOURCE_DIR}/include/reactos/winsock) + +spec2def(ws2_32_new.dll ws2_32.spec) + +list(APPEND SOURCE + src/addrconv.c + src/addrinfo.c + src/async.c + src/bhook.c + src/dcatalog.c + src/dcatitem.c + src/dllmain.c + src/dprocess.c + src/dprovide.c + src/dsocket.c + src/dthread.c + src/dupsock.c + src/enumprot.c + src/event.c + src/getproto.c + src/getxbyxx.c + src/ioctl.c + src/nscatalo.c + src/nscatent.c + src/nspinstl.c + src/nsprovid.c + src/nsquery.c + src/qos.c + src/qshelpr.c + src/rasdial.c + src/recv.c + src/rnr.c + src/scihlpr.c + src/select.c + src/send.c + src/sockctrl.c + src/socklife.c + src/spinstal.c + src/sputil.c + src/startup.c + src/wsautil.c + ws2_32.rc + ${CMAKE_CURRENT_BINARY_DIR}/ws2_32.def) + +add_library(ws2_32_new SHARED ${SOURCE}) + +set_module_type(ws2_32_new win32dll) +target_link_libraries(ws2_32_new wine) +add_importlibs(ws2_32_new user32 advapi32 dnsapi ws2help msvcrt kernel32 ntdll) +add_cd_file(TARGET ws2_32_new DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/ws2help/CMakeLists.txt b/reactos/dll/win32/ws2help/CMakeLists.txt new file mode 100644 index 00000000000..6de001c474c --- /dev/null +++ b/reactos/dll/win32/ws2help/CMakeLists.txt @@ -0,0 +1,19 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/winsock) + +spec2def(ws2help.dll ws2help.spec) + +list(APPEND SOURCE + apc.c + context.c + dllmain.c + handle.c + notify.c + ${CMAKE_CURRENT_BINARY_DIR}/ws2help.def) + +add_library(ws2help SHARED ${SOURCE}) + +set_module_type(ws2help win32dll) +add_importlibs(ws2help advapi32 ws2_32 msvcrt kernel32 ntdll) +add_cd_file(TARGET ws2help DESTINATION reactos/system32 FOR all) +add_importlib_target(ws2help.spec) diff --git a/reactos/dll/win32/wshirda/CMakeLists.txt b/reactos/dll/win32/wshirda/CMakeLists.txt new file mode 100644 index 00000000000..4bd87850cd2 --- /dev/null +++ b/reactos/dll/win32/wshirda/CMakeLists.txt @@ -0,0 +1,15 @@ + +set_unicode() + +spec2def(wshirda.dll wshirda.spec) + +list(APPEND SOURCE + wshirda.c + wshirda.rc + ${CMAKE_CURRENT_BINARY_DIR}/wshirda.def) + +add_library(wshirda SHARED ${SOURCE}) + +set_module_type(wshirda win32dll) +add_importlibs(wshirda ws2_32 msvcrt kernel32 ntdll) +add_cd_file(TARGET wshirda DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/wshtcpip/CMakeLists.txt b/reactos/dll/win32/wshtcpip/CMakeLists.txt new file mode 100644 index 00000000000..bea0689c300 --- /dev/null +++ b/reactos/dll/win32/wshtcpip/CMakeLists.txt @@ -0,0 +1,20 @@ + +set_unicode() + +include_directories(${REACTOS_SOURCE_DIR}/lib/tdilib) + +spec2def(wshtcpip.dll wshtcpip.spec) + +list(APPEND SOURCE + wshtcpip.c + wshtcpip.rc + ${CMAKE_CURRENT_BINARY_DIR}/wshtcpip.def) + +add_library(wshtcpip SHARED ${SOURCE}) + +set_entrypoint(wshtcpip 0) + +target_link_libraries(wshtcpip tdilib) +add_importlibs(wshtcpip ws2_32 kernel32 ntdll) +add_dependencies(wshtcpip psdk) +add_cd_file(TARGET wshtcpip DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/wsock32/CMakeLists.txt b/reactos/dll/win32/wsock32/CMakeLists.txt new file mode 100644 index 00000000000..3018af1f173 --- /dev/null +++ b/reactos/dll/win32/wsock32/CMakeLists.txt @@ -0,0 +1,10 @@ + +set_unicode() + +spec2def(wsock32.dll wsock32.spec) +add_library(wsock32 SHARED stubs.c wsock32.rc wsock32.def ${CMAKE_CURRENT_BINARY_DIR}/wsock32.def) + +set_module_type(wsock32 win32dll) + +add_importlibs(wsock32 mswsock ws2_32 msvcrt kernel32 ntdll) +add_cd_file(TARGET wsock32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/wsock32/wsock32.spec b/reactos/dll/win32/wsock32/wsock32.spec new file mode 100644 index 00000000000..493d01ebd4d --- /dev/null +++ b/reactos/dll/win32/wsock32/wsock32.spec @@ -0,0 +1,84 @@ +1 stdcall accept(long ptr ptr) ws2_32.accept +2 stdcall bind(long ptr long) ws2_32.bind +3 stdcall closesocket(long) ws2_32.closesocket +4 stdcall connect(long ptr long) ws2_32.connect +5 stdcall getpeername(long ptr ptr) ws2_32.getpeername +6 stdcall getsockname(long ptr ptr) ws2_32.getsockname +7 stdcall getsockopt(long long long ptr ptr) ws2_32.getsockopt +8 stdcall htonl(long) ws2_32.htonl +9 stdcall htons(long) ws2_32.htons +10 stdcall ioctlsocket(long long ptr) ws2_32.ioctlsocket +11 stdcall inet_addr(str) ws2_32.inet_addr +12 stdcall inet_ntoa(ptr) ws2_32.inet_ntoa +13 stdcall listen(long long) ws2_32.listen +14 stdcall ntohl(long) ws2_32.ntohl +15 stdcall ntohs(long) ws2_32.ntohs +16 stdcall recv(long ptr long long) ws2_32.recv +17 stdcall recvfrom(long ptr long long ptr ptr) ws2_32.recvfrom +18 stdcall select(long ptr ptr ptr ptr) ws2_32.select +19 stdcall send(long ptr long long) ws2_32.send +20 stdcall sendto(long ptr long long ptr long) ws2_32.sendto +21 stdcall setsockopt(long long long ptr long) ws2_32.setsockopt +22 stdcall shutdown(long long) ws2_32.shutdown +23 stdcall socket(long long long) ws2_32.socket +24 stdcall MigrateWinsockConfiguration(long long long) mswsock.MigrateWinsockConfiguration + +51 stdcall gethostbyaddr(ptr long long) ws2_32.gethostbyaddr +52 stdcall gethostbyname(str) ws2_32.gethostbyname +53 stdcall getprotobyname(str) ws2_32.getprotobyname +54 stdcall getprotobynumber(long) ws2_32.getprotobynumber +55 stdcall getservbyname(str str) ws2_32.getservbyname +56 stdcall getservbyport(long str) ws2_32.getservbyport +57 stdcall gethostname(ptr long) ws2_32.gethostname + +101 stdcall WSAAsyncSelect(long long long long) ws2_32.WSAAsyncSelect +102 stdcall WSAAsyncGetHostByAddr(long long ptr long long ptr long) ws2_32.WSAAsyncGetHostByAddr +103 stdcall WSAAsyncGetHostByName(long long str ptr long) ws2_32.WSAAsyncGetHostByName +104 stdcall WSAAsyncGetProtoByNumber(long long long ptr long) ws2_32.WSAAsyncGetProtoByNumber +105 stdcall WSAAsyncGetProtoByName(long long str ptr long) ws2_32.WSAAsyncGetProtoByName +106 stdcall WSAAsyncGetServByPort(long long long str ptr long) ws2_32.WSAAsyncGetServByPort +107 stdcall WSAAsyncGetServByName(long long str str ptr long) ws2_32.WSAAsyncGetServByName +108 stdcall WSACancelAsyncRequest(long) ws2_32.WSACancelAsyncRequest +109 stdcall WSASetBlockingHook(ptr) ws2_32.WSASetBlockingHook +110 stdcall WSAUnhookBlockingHook() ws2_32.WSAUnhookBlockingHook +111 stdcall WSAGetLastError() ws2_32.WSAGetLastError +112 stdcall WSASetLastError(long) ws2_32.WSASetLastError +113 stdcall WSACancelBlockingCall() ws2_32.WSACancelBlockingCall +114 stdcall WSAIsBlocking() ws2_32.WSAIsBlocking +115 stdcall WSAStartup(long ptr) ws2_32.WSAStartup +116 stdcall WSACleanup() ws2_32.WSACleanup + +151 stdcall __WSAFDIsSet(long ptr) ws2_32.__WSAFDIsSet + +500 stdcall WEP() ws2_32.WEP + +1000 stdcall WSApSetPostRoutine(ptr) ws2_32.WSApSetPostRoutine + +1100 stdcall inet_network(ptr) MSWSOCK.inet_network +1101 stdcall getnetbyname(ptr) MSWSOCK.getnetbyname +1102 stdcall rcmd(ptr long ptr ptr ptr ptr) MSWSOCK.rcmd +1103 stdcall rexec(ptr long ptr ptr ptr ptr) MSWSOCK.rexec +1104 stdcall rresvport(ptr) MSWSOCK.rresvport +1105 stdcall sethostname(ptr long) MSWSOCK.sethostname +1106 stdcall dn_expand(ptr ptr ptr ptr long) MSWSOCK.dn_expand +1107 stdcall WSARecvEx(long ptr long ptr) MSWSOCK.WSARecvEx +1108 stdcall s_perror(ptr) MSWSOCK.s_perror +1109 stdcall GetAddressByNameA(long ptr ptr ptr long ptr ptr ptr ptr ptr) MSWSOCK.GetAddressByNameA +1110 stdcall GetAddressByNameW(long ptr ptr ptr long ptr ptr ptr ptr ptr) MSWSOCK.GetAddressByNameW +1111 stdcall EnumProtocolsA(ptr ptr ptr) MSWSOCK.EnumProtocolsA +1112 stdcall EnumProtocolsW(ptr ptr ptr) MSWSOCK.EnumProtocolsW +1113 stdcall GetTypeByNameA(ptr ptr) MSWSOCK.GetTypeByNameA +1114 stdcall GetTypeByNameW(ptr ptr) MSWSOCK.GetTypeByNameW +1115 stdcall GetNameByTypeA(ptr ptr long) MSWSOCK.GetNameByTypeA +1116 stdcall GetNameByTypeW(ptr ptr long) MSWSOCK.GetNameByTypeW +1117 stdcall SetServiceA(long long long ptr ptr ptr) MSWSOCK.SetServiceA +1118 stdcall SetServiceW(long long long ptr ptr ptr) MSWSOCK.SetServiceW +1119 stdcall GetServiceA(long ptr ptr long ptr ptr ptr) MSWSOCK.GetServiceA +1120 stdcall GetServiceW(long ptr ptr long ptr ptr ptr) MSWSOCK.GetServiceW +1130 stdcall NPLoadNameSpaces(ptr ptr ptr) MSWSOCK.NPLoadNameSpaces +1140 stdcall TransmitFile(long long long long ptr ptr long) MSWSOCK.TransmitFile +1141 stdcall AcceptEx(long long ptr long long long ptr ptr) MSWSOCK.AcceptEx +1142 stdcall GetAcceptExSockaddrs(ptr long long long ptr ptr ptr ptr) MSWSOCK.GetAcceptExSockaddrs + + + diff --git a/reactos/dll/win32/wtsapi32/CMakeLists.txt b/reactos/dll/win32/wtsapi32/CMakeLists.txt new file mode 100644 index 00000000000..deb123025f1 --- /dev/null +++ b/reactos/dll/win32/wtsapi32/CMakeLists.txt @@ -0,0 +1,20 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(wtsapi32.dll wtsapi32.spec) + +list(APPEND SOURCE + wtsapi32.c + ${CMAKE_CURRENT_BINARY_DIR}/wtsapi32_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/wtsapi32.def) + +add_library(wtsapi32 SHARED ${SOURCE}) + +set_module_type(wtsapi32 win32dll) + +target_link_libraries(wtsapi32 wine) + +add_importlibs(wtsapi32 advapi32 msvcrt kernel32 ntdll) + +add_cd_file(TARGET wtsapi32 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/wuapi/CMakeLists.txt b/reactos/dll/win32/wuapi/CMakeLists.txt new file mode 100644 index 00000000000..7d0fcc409a4 --- /dev/null +++ b/reactos/dll/win32/wuapi/CMakeLists.txt @@ -0,0 +1,28 @@ + +add_definitions(-D__WINESRC__) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +include_directories( + ${REACTOS_SOURCE_DIR}/include/reactos/wine) + + +spec2def(wuapi.dll wuapi.spec) + +list(APPEND SOURCE + downloader.c + installer.c + main.c + regsvr.c + searcher.c + session.c + updates.c + ${CMAKE_CURRENT_BINARY_DIR}/wuapi.def) + +add_library(wuapi SHARED ${SOURCE}) + +set_module_type(wuapi win32dll) +target_link_libraries(wuapi uuid wine wuguid) +add_importlibs(wuapi ole32 advapi32 msvcrt kernel32 ntdll) +add_cd_file(TARGET wuapi DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/xinput1_1/CMakeLists.txt b/reactos/dll/win32/xinput1_1/CMakeLists.txt new file mode 100644 index 00000000000..8b8e354842b --- /dev/null +++ b/reactos/dll/win32/xinput1_1/CMakeLists.txt @@ -0,0 +1,16 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(xinput1_1.dll xinput1_1.spec) + +list(APPEND SOURCE + xinput1_1_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/xinput1_1.def) + +add_library(xinput1_1 SHARED ${SOURCE}) + +set_module_type(xinput1_1 win32dll) +add_importlibs(xinput1_1 msvcrt kernel32 xinput1_3) +add_cd_file(TARGET xinput1_1 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/xinput1_2/CMakeLists.txt b/reactos/dll/win32/xinput1_2/CMakeLists.txt new file mode 100644 index 00000000000..3b3cc8295da --- /dev/null +++ b/reactos/dll/win32/xinput1_2/CMakeLists.txt @@ -0,0 +1,16 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(xinput1_2.dll xinput1_2.spec) + +list(APPEND SOURCE + xinput1_2_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/xinput1_2.def) + +add_library(xinput1_2 SHARED ${SOURCE}) + +set_module_type(xinput1_2 win32dll) +add_importlibs(xinput1_2 msvcrt kernel32 xinput1_3) +add_cd_file(TARGET xinput1_2 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/xinput1_3/CMakeLists.txt b/reactos/dll/win32/xinput1_3/CMakeLists.txt new file mode 100644 index 00000000000..9d37edd1e66 --- /dev/null +++ b/reactos/dll/win32/xinput1_3/CMakeLists.txt @@ -0,0 +1,18 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(xinput1_3.dll xinput1_3.spec) + +list(APPEND SOURCE + xinput1_3_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/xinput1_3.def) + +add_library(xinput1_3 SHARED ${SOURCE}) + +add_importlib_target(xinput1_3.spec) +set_module_type(xinput1_3 win32dll) +target_link_libraries(xinput1_3 wine) +add_importlibs(xinput1_3 msvcrt kernel32 ntdll) +add_cd_file(TARGET xinput1_3 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/xinput9_1_0/CMakeLists.txt b/reactos/dll/win32/xinput9_1_0/CMakeLists.txt new file mode 100644 index 00000000000..a7e1479d1e5 --- /dev/null +++ b/reactos/dll/win32/xinput9_1_0/CMakeLists.txt @@ -0,0 +1,16 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(xinput9_1_0.dll xinput9_1_0.spec) + +list(APPEND SOURCE + xinput9_1_0_main.c + version.rc + ${CMAKE_CURRENT_BINARY_DIR}/xinput9_1_0.def) + +add_library(xinput9_1_0 SHARED ${SOURCE}) + +set_module_type(xinput9_1_0 win32dll) +add_importlibs(xinput9_1_0 msvcrt kernel32 xinput1_3) +add_cd_file(TARGET xinput9_1_0 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/win32/xmllite/CMakeLists.txt b/reactos/dll/win32/xmllite/CMakeLists.txt new file mode 100644 index 00000000000..855cd3a8e82 --- /dev/null +++ b/reactos/dll/win32/xmllite/CMakeLists.txt @@ -0,0 +1,22 @@ + +add_definitions(-D__WINESRC__) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) + +spec2def(xmllite.dll xmllite.spec) + +list(APPEND SOURCE + reader.c + xmllite_main.c + #${REACTOS_BINARY_DIR}/include/psdk/xmllite_i.c + ${CMAKE_CURRENT_BINARY_DIR}/xmllite_stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/xmllite.def) + +add_library(xmllite SHARED ${SOURCE}) + +set_module_type(xmllite win32dll) + +target_link_libraries(xmllite wine uuid) + +add_importlibs(xmllite msvcrt kernel32 ntdll) +add_importlib_target(xmllite.spec) +add_cd_file(TARGET xmllite DESTINATION reactos/system32 FOR all) diff --git a/reactos/drivers/CMakeLists.txt b/reactos/drivers/CMakeLists.txt new file mode 100644 index 00000000000..3960ee1e993 --- /dev/null +++ b/reactos/drivers/CMakeLists.txt @@ -0,0 +1,17 @@ + +add_subdirectory(base) +add_subdirectory(battery) +add_subdirectory(bus) +add_subdirectory(directx) +add_subdirectory(filesystems) +add_subdirectory(input) +add_subdirectory(ksfilter) +add_subdirectory(network) +add_subdirectory(parallel) +add_subdirectory(serial) +add_subdirectory(setup) +add_subdirectory(storage) +add_subdirectory(usb) +add_subdirectory(video) +add_subdirectory(wdm) +add_subdirectory(wmi) diff --git a/reactos/drivers/base/CMakeLists.txt b/reactos/drivers/base/CMakeLists.txt new file mode 100644 index 00000000000..f7f03b18556 --- /dev/null +++ b/reactos/drivers/base/CMakeLists.txt @@ -0,0 +1,12 @@ + +add_subdirectory(beep) +add_subdirectory(bootvid) + +if(_WINKD_) +add_subdirectory(kddll) +else() +add_subdirectory(kdcom) +endif() + +add_subdirectory(nmidebug) +add_subdirectory(null) diff --git a/reactos/drivers/base/beep/CMakeLists.txt b/reactos/drivers/base/beep/CMakeLists.txt new file mode 100644 index 00000000000..3cc31bc8c06 --- /dev/null +++ b/reactos/drivers/base/beep/CMakeLists.txt @@ -0,0 +1,5 @@ + +add_library(beep SHARED beep.c beep.rc) +set_module_type(beep kernelmodedriver) +add_importlibs(beep ntoskrnl hal) +add_cd_file(TARGET beep DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/base/bootvid/CMakeLists.txt b/reactos/drivers/base/bootvid/CMakeLists.txt new file mode 100644 index 00000000000..3c23c82e2e0 --- /dev/null +++ b/reactos/drivers/base/bootvid/CMakeLists.txt @@ -0,0 +1,29 @@ + +spec2def(bootvid.dll bootvid.spec) + +list(APPEND SOURCE + bootvid.rc + ${CMAKE_CURRENT_BINARY_DIR}/bootvid.def) + +if(ARCH MATCHES i386 OR ARCH MATCHES amd64) +list(APPEND SOURCE + i386/bootvid.c + i386/bootdata.c + i386/vga.c) +elseif(ARCH MATCHES arm) +list(APPEND SOURCE + arm/bootvid.c + arm/bootdata.c) +endif(ARCH MATCHES i386 OR ARCH MATCHES amd64) + +add_library(bootvid SHARED ${CMAKE_CURRENT_BINARY_DIR}/bootvid_precomp.h.gch ${SOURCE}) + +set_entrypoint(bootvid 0) +set_subsystem(bootvid native) +set_image_base(bootvid 0x00010000) + +add_importlibs(bootvid ntoskrnl hal) +add_pch(bootvid ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) +add_dependencies(bootvid psdk bugcodes) +add_cd_file(TARGET bootvid DESTINATION reactos/system32 NO_CAB FOR all) +add_importlib_target(bootvid.spec) diff --git a/reactos/drivers/base/kdcom/CMakeLists.txt b/reactos/drivers/base/kdcom/CMakeLists.txt new file mode 100644 index 00000000000..8e8a2e17ec8 --- /dev/null +++ b/reactos/drivers/base/kdcom/CMakeLists.txt @@ -0,0 +1,23 @@ + +spec2def(kdcom.dll kdcom.spec) + +if(ARCH MATCHES i386) +list(APPEND SOURCE i386/kdbg.c) +elseif(ARCH MATCHES amd64) +list(APPEND SOURCE i386/kdbg.c) +elseif(ARCH MATCHES arm) +list(APPEND SOURCE arm/kdbg.c) +endif(ARCH MATCHES i386) +list(APPEND SOURCE ${CMAKE_CURRENT_BINARY_DIR}/kdcom.def) + +add_library(kdcom SHARED ${SOURCE}) + +set_entrypoint(kdcom 0) +set_subsystem(kdcom native) +set_image_base(kdcom 0x00010000) + +add_importlibs(kdcom ntoskrnl hal) + +add_dependencies(kdcom psdk bugcodes) +add_cd_file(TARGET kdcom DESTINATION reactos/system32 NO_CAB FOR all) +add_importlib_target(kdcom.spec) diff --git a/reactos/drivers/base/kddll/CMakeLists.txt b/reactos/drivers/base/kddll/CMakeLists.txt new file mode 100644 index 00000000000..f46512ce02e --- /dev/null +++ b/reactos/drivers/base/kddll/CMakeLists.txt @@ -0,0 +1,17 @@ + +spec2def(kdcom.dll kdcom.spec) + +add_library(kdcom SHARED + kdcom.c + kddll.c + kdserial.c + ${CMAKE_CURRENT_BINARY_DIR}/kdcom.def) + +set_entrypoint(kdcom 0) +set_subsystem(kdcom native) +set_image_base(kdcom 0x00010000) + +add_importlibs(kdcom ntoskrnl hal) + +add_dependencies(kdcom psdk bugcodes) +add_importlib_target(kdcom.spec) diff --git a/reactos/drivers/base/kddll/kdcom.spec b/reactos/drivers/base/kddll/kdcom.spec new file mode 100644 index 00000000000..4098dd6e2ad --- /dev/null +++ b/reactos/drivers/base/kddll/kdcom.spec @@ -0,0 +1,8 @@ +@ stdcall KdD0Transition() +@ stdcall KdD3Transition() +@ stdcall KdDebuggerInitialize0(ptr) +@ stdcall KdDebuggerInitialize1(ptr) +@ stdcall KdReceivePacket(long ptr ptr ptr ptr) +@ stdcall KdRestore(long) +@ stdcall KdSave(long) +@ stdcall KdSendPacket(long ptr ptr ptr) diff --git a/reactos/drivers/base/nmidebug/CMakeLists.txt b/reactos/drivers/base/nmidebug/CMakeLists.txt new file mode 100644 index 00000000000..3293f041905 --- /dev/null +++ b/reactos/drivers/base/nmidebug/CMakeLists.txt @@ -0,0 +1,7 @@ + +add_library(nmidebug SHARED nmidebug.c nmidebug.rc) + +set_module_type(nmidebug kernelmodedriver) +add_importlibs(nmidebug ntoskrnl hal) + +add_cd_file(TARGET nmidebug DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/base/null/CMakeLists.txt b/reactos/drivers/base/null/CMakeLists.txt new file mode 100644 index 00000000000..b3f3b2d2f5f --- /dev/null +++ b/reactos/drivers/base/null/CMakeLists.txt @@ -0,0 +1,9 @@ + +add_library(null SHARED null.c null.rc) + +target_link_libraries(null ${PSEH_LIB}) + +set_module_type(null kernelmodedriver) +add_importlibs(null ntoskrnl hal) + +add_cd_file(TARGET null DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/battery/CMakeLists.txt b/reactos/drivers/battery/CMakeLists.txt new file mode 100644 index 00000000000..1a3ce814291 --- /dev/null +++ b/reactos/drivers/battery/CMakeLists.txt @@ -0,0 +1,2 @@ + +add_subdirectory(battc) diff --git a/reactos/drivers/battery/battc/CMakeLists.txt b/reactos/drivers/battery/battc/CMakeLists.txt new file mode 100644 index 00000000000..2cfea3ab8b0 --- /dev/null +++ b/reactos/drivers/battery/battc/CMakeLists.txt @@ -0,0 +1,15 @@ + +add_definitions(-D_BATTERYCLASS_) + +spec2def(batc.sys battc.spec) + +add_library(battc SHARED + battc.c + battc.rc + ${CMAKE_CURRENT_BINARY_DIR}/battc.def) + +set_module_type(battc kernelmodedriver) +add_importlibs(battc ntoskrnl hal) + +add_cd_file(TARGET battc DESTINATION reactos/system32/drivers FOR all) +add_importlib_target(battc.spec) diff --git a/reactos/drivers/bus/CMakeLists.txt b/reactos/drivers/bus/CMakeLists.txt new file mode 100644 index 00000000000..3393412e081 --- /dev/null +++ b/reactos/drivers/bus/CMakeLists.txt @@ -0,0 +1,6 @@ + +add_subdirectory(acpi) +add_subdirectory(isapnp) +add_subdirectory(pci) +add_subdirectory(pcix) +add_subdirectory(pcmcia) diff --git a/reactos/drivers/bus/acpi/CMakeLists.txt b/reactos/drivers/bus/acpi/CMakeLists.txt new file mode 100644 index 00000000000..1793c66bf8c --- /dev/null +++ b/reactos/drivers/bus/acpi/CMakeLists.txt @@ -0,0 +1,153 @@ + +include_directories( + include + acpica/include) + +add_library(acpica + acpica/dispatcher/dsfield.c + acpica/dispatcher/dsinit.c + acpica/dispatcher/dsmethod.c + acpica/dispatcher/dsmthdat.c + acpica/dispatcher/dsobject.c + acpica/dispatcher/dsopcode.c + acpica/dispatcher/dsutils.c + acpica/dispatcher/dswexec.c + acpica/dispatcher/dswload.c + acpica/dispatcher/dswscope.c + acpica/dispatcher/dswstate.c + acpica/events/evevent.c + acpica/events/evgpe.c + acpica/events/evgpeblk.c + acpica/events/evmisc.c + acpica/events/evregion.c + acpica/events/evrgnini.c + acpica/events/evsci.c + acpica/events/evxface.c + acpica/events/evxfevnt.c + acpica/events/evxfregn.c + acpica/executer/exconfig.c + acpica/executer/exconvrt.c + acpica/executer/excreate.c + acpica/executer/exdump.c + acpica/executer/exfield.c + acpica/executer/exfldio.c + acpica/executer/exmisc.c + acpica/executer/exmutex.c + acpica/executer/exoparg1.c + acpica/executer/exoparg2.c + acpica/executer/exoparg3.c + acpica/executer/exoparg6.c + acpica/executer/exnames.c + acpica/executer/exprep.c + acpica/executer/exregion.c + acpica/executer/exresnte.c + acpica/executer/exresolv.c + acpica/executer/exresop.c + acpica/executer/exstore.c + acpica/executer/exstoren.c + acpica/executer/exstorob.c + acpica/executer/exsystem.c + acpica/executer/exutils.c + acpica/hardware/hwacpi.c + acpica/hardware/hwgpe.c + acpica/hardware/hwregs.c + acpica/hardware/hwsleep.c + acpica/hardware/hwtimer.c + acpica/hardware/hwvalid.c + acpica/hardware/hwxface.c + acpica/namespace/nsaccess.c + acpica/namespace/nsalloc.c + acpica/namespace/nsdump.c + acpica/namespace/nsdumpdv.c + acpica/namespace/nseval.c + acpica/namespace/nsinit.c + acpica/namespace/nsload.c + acpica/namespace/nsnames.c + acpica/namespace/nsobject.c + acpica/namespace/nsparse.c + acpica/namespace/nspredef.c + acpica/namespace/nsrepair.c + acpica/namespace/nsrepair2.c + acpica/namespace/nssearch.c + acpica/namespace/nsutils.c + acpica/namespace/nswalk.c + acpica/namespace/nsxfeval.c + acpica/namespace/nsxfname.c + acpica/namespace/nsxfobj.c + acpica/parser/psargs.c + acpica/parser/psloop.c + acpica/parser/psopcode.c + acpica/parser/psparse.c + acpica/parser/psscope.c + acpica/parser/pstree.c + acpica/parser/psutils.c + acpica/parser/pswalk.c + acpica/parser/psxface.c + acpica/resources/rsaddr.c + acpica/resources/rscalc.c + acpica/resources/rscreate.c + acpica/resources/rsdump.c + acpica/resources/rsinfo.c + acpica/resources/rsio.c + acpica/resources/rsirq.c + acpica/resources/rslist.c + acpica/resources/rsmemory.c + acpica/resources/rsmisc.c + acpica/resources/rsutils.c + acpica/resources/rsxface.c + acpica/tables/tbfadt.c + acpica/tables/tbfind.c + acpica/tables/tbinstal.c + acpica/tables/tbutils.c + acpica/tables/tbxface.c + acpica/tables/tbxfroot.c + acpica/utilities/utalloc.c + acpica/utilities/utcache.c + acpica/utilities/utclib.c + acpica/utilities/utcopy.c + acpica/utilities/utdebug.c + acpica/utilities/utdelete.c + acpica/utilities/uteval.c + acpica/utilities/utglobal.c + acpica/utilities/utids.c + acpica/utilities/utinit.c + acpica/utilities/utlock.c + acpica/utilities/utmath.c + acpica/utilities/utmisc.c + acpica/utilities/utmutex.c + acpica/utilities/utobject.c + acpica/utilities/utresrc.c + acpica/utilities/utstate.c + acpica/utilities/uttrack.c + acpica/utilities/utxface.c) + +set_target_properties(acpica PROPERTIES COMPILE_DEFINITIONS "ACPI_USE_LOCAL_CACHE") +add_dependencies(acpica bugcodes) + +add_library(acpi SHARED + busmgr/bus.c + busmgr/button.c + busmgr/power.c + busmgr/utils.c + busmgr/system.c + osl.c + acpienum.c + eval.c + interface.c + pnp.c + power.c + buspdo.c + main.c) + +set_module_type(acpi kernelmodedriver) + +target_link_libraries(acpi + wdmguid + acpica) + +add_importlibs(acpi ntoskrnl hal) + +add_cd_file(TARGET acpi DESTINATION reactos/system32/drivers NO_CAB FOR all) + +add_subdirectory(cmbatt) +add_subdirectory(compbatt) diff --git a/reactos/drivers/bus/acpi/cmbatt/CMakeLists.txt b/reactos/drivers/bus/acpi/cmbatt/CMakeLists.txt new file mode 100644 index 00000000000..461adfeba51 --- /dev/null +++ b/reactos/drivers/bus/acpi/cmbatt/CMakeLists.txt @@ -0,0 +1,17 @@ + +list(APPEND SOURCE + cmbatt.c + cmexec.c + cmbpnp.c + cmbwmi.c + cmbatt.rc) + +add_library(cmbatt SHARED ${CMAKE_CURRENT_BINARY_DIR}/cmbatt_cmbatt.h.gch ${SOURCE}) + +set_module_type(cmbatt kernelmodedriver) +add_importlibs(cmbatt ntoskrnl hal battc wmilib) + +add_pch(cmbatt ${CMAKE_CURRENT_SOURCE_DIR}/cmbatt.h ${SOURCE}) + + +add_cd_file(TARGET cmbatt DESTINATION reactos/system32/drivers FOR all) \ No newline at end of file diff --git a/reactos/drivers/bus/acpi/compbatt/CMakeLists.txt b/reactos/drivers/bus/acpi/compbatt/CMakeLists.txt new file mode 100644 index 00000000000..00f05b73271 --- /dev/null +++ b/reactos/drivers/bus/acpi/compbatt/CMakeLists.txt @@ -0,0 +1,15 @@ + +list(APPEND SOURCE + compbatt.c + compmisc.c + comppnp.c + compbatt.rc) + +add_library(compbatt SHARED ${CMAKE_CURRENT_BINARY_DIR}/compbatt_compbatt.h.gch ${SOURCE}) + +set_module_type(compbatt kernelmodedriver) +add_importlibs(compbatt ntoskrnl hal battc) + +add_pch(compbatt ${CMAKE_CURRENT_SOURCE_DIR}/compbatt.h ${SOURCE}) + +add_cd_file(TARGET compbatt DESTINATION reactos/system32/drivers FOR all) \ No newline at end of file diff --git a/reactos/drivers/bus/isapnp/CMakeLists.txt b/reactos/drivers/bus/isapnp/CMakeLists.txt new file mode 100644 index 00000000000..efb1f93256e --- /dev/null +++ b/reactos/drivers/bus/isapnp/CMakeLists.txt @@ -0,0 +1,12 @@ + +add_library(isapnp SHARED + isapnp.c + pdo.c + fdo.c + hardware.c + isapnp.rc) + +set_module_type(isapnp kernelmodedriver) +add_importlibs(isapnp ntoskrnl hal) + +add_cd_file(TARGET isapnp DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/bus/pci/CMakeLists.txt b/reactos/drivers/bus/pci/CMakeLists.txt new file mode 100644 index 00000000000..d9c7bbb1e22 --- /dev/null +++ b/reactos/drivers/bus/pci/CMakeLists.txt @@ -0,0 +1,11 @@ + +add_library(pci SHARED + fdo.c + pci.c + pdo.c + pci.rc) + +set_module_type(pci kernelmodedriver) +add_importlibs(pci ntoskrnl hal) + +add_cd_file(TARGET pci DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/bus/pcix/CMakeLists.txt b/reactos/drivers/bus/pcix/CMakeLists.txt new file mode 100644 index 00000000000..a805c580883 --- /dev/null +++ b/reactos/drivers/bus/pcix/CMakeLists.txt @@ -0,0 +1,47 @@ + +list(APPEND SOURCE + arb/ar_busno.c + arb/ar_memio.c + arb/arb_comn.c + arb/tr_irq.c + intrface/agpintrf.c + intrface/busintrf.c + intrface/cardbus.c + intrface/devhere.c + intrface/ideintrf.c + intrface/intrface.c + intrface/lddintrf.c + intrface/locintrf.c + intrface/pmeintf.c + intrface/routintf.c + pci/busno.c + pci/config.c + pci/devhere.c + pci/id.c + pci/ppbridge.c + pci/romimage.c + pci/state.c + debug.c + device.c + dispatch.c + enum.c + fdo.c + guid.c + hookhal.c + init.c + pcivrify.c + pdo.c + power.c + usage.c + utils.c + pci.rc) + +add_library(pcix SHARED ${CMAKE_CURRENT_BINARY_DIR}/pcix_pci.h.gch ${SOURCE}) + +set_module_type(pcix kernelmodedriver) +add_importlibs(pcix ntoskrnl hal) + +add_pch(pcix ${CMAKE_CURRENT_SOURCE_DIR}/pci.h ${SOURCE}) +add_dependencies(pcix pciclass) + +add_cd_file(TARGET pcix DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/bus/pcmcia/CMakeLists.txt b/reactos/drivers/bus/pcmcia/CMakeLists.txt new file mode 100644 index 00000000000..9c4b1a34aac --- /dev/null +++ b/reactos/drivers/bus/pcmcia/CMakeLists.txt @@ -0,0 +1,11 @@ + +add_library(pcmcia SHARED + fdo.c + pcmcia.c + pdo.c + pcmcia.rc) + +set_module_type(pcmcia kernelmodedriver) +add_importlibs(pcmcia ntoskrnl hal) + +add_cd_file(TARGET pcmcia DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/directx/CMakeLists.txt b/reactos/drivers/directx/CMakeLists.txt new file mode 100644 index 00000000000..ade9d59b652 --- /dev/null +++ b/reactos/drivers/directx/CMakeLists.txt @@ -0,0 +1,4 @@ + +add_subdirectory(dxapi) +add_subdirectory(dxg) +add_subdirectory(dxgthk) diff --git a/reactos/drivers/directx/dxapi/CMakeLists.txt b/reactos/drivers/directx/dxapi/CMakeLists.txt new file mode 100644 index 00000000000..f45e93a5c77 --- /dev/null +++ b/reactos/drivers/directx/dxapi/CMakeLists.txt @@ -0,0 +1,14 @@ + +add_definitions(-D_DXAPI_) + +spec2def(dxapi.sys dxapi.spec) + +add_library(dxapi SHARED + main.c + dxapi.rc + ${CMAKE_CURRENT_BINARY_DIR}/dxapi.def) + +set_module_type(dxapi kernelmodedriver) +add_importlibs(dxapi ntoskrnl hal videoprt) + +add_cd_file(TARGET dxapi DESTINATION reactos/system32/drivers FOR all) \ No newline at end of file diff --git a/reactos/drivers/directx/dxg/CMakeLists.txt b/reactos/drivers/directx/dxg/CMakeLists.txt new file mode 100644 index 00000000000..f4eb99c8e77 --- /dev/null +++ b/reactos/drivers/directx/dxg/CMakeLists.txt @@ -0,0 +1,15 @@ + +spec2def(dxg.sys dxg.spec) + +add_library(dxg SHARED + main.c + ddhmg.c + eng.c + historic.c + dxg.rc + ${CMAKE_CURRENT_BINARY_DIR}/dxg.def) + +set_module_type(dxg kernelmodedriver) +add_importlibs(dxg dxgthk ntoskrnl) + +add_cd_file(TARGET dxg DESTINATION reactos/system32/drivers FOR all) \ No newline at end of file diff --git a/reactos/drivers/directx/dxgthk/CMakeLists.txt b/reactos/drivers/directx/dxgthk/CMakeLists.txt new file mode 100644 index 00000000000..cd1dbc827cc --- /dev/null +++ b/reactos/drivers/directx/dxgthk/CMakeLists.txt @@ -0,0 +1,16 @@ + +spec2def(dxgthk.sys dxgthk.spec) + +list(APPEND SOURCE + main.c + dxgthk.rc + ${CMAKE_CURRENT_BINARY_DIR}/dxgthk.def) + +add_library(dxgthk SHARED ${SOURCE}) + +set_module_type(dxgthk kernelmodedriver) + +add_importlibs(dxgthk win32k) +add_importlib_target(dxgthk.spec) + +add_cd_file(TARGET dxgthk DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/filesystems/CMakeLists.txt b/reactos/drivers/filesystems/CMakeLists.txt new file mode 100644 index 00000000000..1dd2bc7f115 --- /dev/null +++ b/reactos/drivers/filesystems/CMakeLists.txt @@ -0,0 +1,10 @@ + +add_subdirectory(cdfs) +add_subdirectory(ext2) +add_subdirectory(fastfat) +#add_subdirectory(fastfat_new) +add_subdirectory(fs_rec) +add_subdirectory(msfs) +add_subdirectory(mup) +add_subdirectory(npfs) +add_subdirectory(ntfs) diff --git a/reactos/drivers/filesystems/cdfs/CMakeLists.txt b/reactos/drivers/filesystems/cdfs/CMakeLists.txt new file mode 100644 index 00000000000..cc0fbc1b2f5 --- /dev/null +++ b/reactos/drivers/filesystems/cdfs/CMakeLists.txt @@ -0,0 +1,27 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/drivers) + +list(APPEND SOURCE + cdfs.c + cleanup.c + close.c + common.c + create.c + devctrl.c + dirctl.c + fcb.c + finfo.c + fsctl.c + misc.c + rw.c + volinfo.c + cdfs.rc) + +add_library(cdfs SHARED ${CMAKE_CURRENT_BINARY_DIR}/cdfs_cdfs.h.gch ${SOURCE}) + +set_module_type(cdfs kernelmodedriver) +add_importlibs(cdfs ntoskrnl hal) + +add_pch(cdfs ${CMAKE_CURRENT_SOURCE_DIR}/cdfs.h ${SOURCE}) + +add_cd_file(TARGET cdfs DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/filesystems/ext2/CMakeLists.txt b/reactos/drivers/filesystems/ext2/CMakeLists.txt new file mode 100644 index 00000000000..4917fb14311 --- /dev/null +++ b/reactos/drivers/filesystems/ext2/CMakeLists.txt @@ -0,0 +1,31 @@ + +include_directories(inc) + +list(APPEND SOURCE + src/volinfo.c + src/create.c + src/write.c + src/metadata.c + src/fastio.c + src/dircntrl.c + src/DiskIO.c + src/fsctrl.c + src/devcntrl.c + src/flush.c + src/ext2init.c + src/io.c + src/close.c + src/fileinfo.c + src/read.c + src/cleanup.c + src/misc.c + src/shutdown.c) + +add_library(ext2fs SHARED ${SOURCE}) + +target_link_libraries(ext2fs ${PSEH_LIB}) + +set_module_type(ext2fs kernelmodedriver) +add_importlibs(ext2fs ntoskrnl hal) + +add_cd_file(TARGET ext2fs DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/filesystems/fastfat/CMakeLists.txt b/reactos/drivers/filesystems/fastfat/CMakeLists.txt new file mode 100644 index 00000000000..5d8dd934611 --- /dev/null +++ b/reactos/drivers/filesystems/fastfat/CMakeLists.txt @@ -0,0 +1,33 @@ + +list(APPEND SOURCE + blockdev.c + cleanup.c + close.c + create.c + dir.c + direntry.c + dirwr.c + ea.c + fat.c + fastio.c + fcb.c + finfo.c + flush.c + fsctl.c + iface.c + misc.c + pnp.c + rw.c + shutdown.c + string.c + volume.c + vfatfs.rc) + +add_library(fastfat SHARED ${CMAKE_CURRENT_BINARY_DIR}/fastfat_vfat.h.gch ${SOURCE}) + +set_module_type(fastfat kernelmodedriver) +add_importlibs(fastfat ntoskrnl hal) + +add_pch(fastfat ${CMAKE_CURRENT_SOURCE_DIR}/vfat.h ${SOURCE}) + +add_cd_file(TARGET fastfat DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/filesystems/fastfat_new/CMakeLists.txt b/reactos/drivers/filesystems/fastfat_new/CMakeLists.txt new file mode 100644 index 00000000000..57042c98d41 --- /dev/null +++ b/reactos/drivers/filesystems/fastfat_new/CMakeLists.txt @@ -0,0 +1,37 @@ + +include_directories( + . + ${REACTOS_SOURCE_DIR}/include/reactos/libs/fullfat) + +list(APPEND SOURCE + cleanup.c + close.c + create.c + device.c + dir.c + ea.c + fastfat.c + fastio.c + fat.c + fcb.c + finfo.c + flush.c + fsctl.c + fullfat.c + lock.c + rw.c + shutdown.c + volume.c + fastfat.rc) + +add_library(fastfat_new SHARED ${CMAKE_CURRENT_BINARY_DIR}/fastfat_new_fastfat.h.gch ${SOURCE}) + +set_module_type(fastfat_new kernelmodedriver) + +target_link_libraries(fastfat_new + ${PSEH_LIB} + fullfat) + +add_importlibs(fastfat_new ntoskrnl hal) + +add_pch(fastfat_new ${CMAKE_CURRENT_SOURCE_DIR}/fastfat.h ${SOURCE}) diff --git a/reactos/drivers/filesystems/fs_rec/CMakeLists.txt b/reactos/drivers/filesystems/fs_rec/CMakeLists.txt new file mode 100644 index 00000000000..14bfce865de --- /dev/null +++ b/reactos/drivers/filesystems/fs_rec/CMakeLists.txt @@ -0,0 +1,15 @@ + +add_library(fs_rec SHARED + blockdev.c + cdfs.c + ext2.c + fat.c + fs_rec.c + ntfs.c + udfs.c + fs_rec.rc) + +set_module_type(fs_rec kernelmodedriver) +add_importlibs(fs_rec ntoskrnl hal) + +add_cd_file(TARGET fs_rec DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/filesystems/msfs/CMakeLists.txt b/reactos/drivers/filesystems/msfs/CMakeLists.txt new file mode 100644 index 00000000000..ddf2bf5b112 --- /dev/null +++ b/reactos/drivers/filesystems/msfs/CMakeLists.txt @@ -0,0 +1,17 @@ + +list(APPEND SOURCE + create.c + finfo.c + fsctrl.c + msfs.c + rw.c + msfs.rc) + +add_library(msfs SHARED ${CMAKE_CURRENT_BINARY_DIR}/msfs_msfs.h.gch ${SOURCE}) + +set_module_type(msfs kernelmodedriver) +add_importlibs(msfs ntoskrnl hal) + +add_pch(msfs ${CMAKE_CURRENT_SOURCE_DIR}/msfs.h ${SOURCE}) + +add_cd_file(TARGET msfs DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/filesystems/mup/CMakeLists.txt b/reactos/drivers/filesystems/mup/CMakeLists.txt new file mode 100644 index 00000000000..6ac375d8025 --- /dev/null +++ b/reactos/drivers/filesystems/mup/CMakeLists.txt @@ -0,0 +1,10 @@ + +add_library(mup SHARED + create.c + mup.c + mup.rc) + +set_module_type(mup kernelmodedriver) +add_importlibs(mup ntoskrnl hal) + +add_cd_file(TARGET mup DESTINATION reactos/system32/drivers FOR all) \ No newline at end of file diff --git a/reactos/drivers/filesystems/npfs/CMakeLists.txt b/reactos/drivers/filesystems/npfs/CMakeLists.txt new file mode 100644 index 00000000000..8f960fc81f7 --- /dev/null +++ b/reactos/drivers/filesystems/npfs/CMakeLists.txt @@ -0,0 +1,19 @@ + +list(APPEND SOURCE + create.c + dirctl.c + finfo.c + fsctrl.c + npfs.c + rw.c + volume.c + npfs.rc) + +add_library(npfs SHARED ${CMAKE_CURRENT_BINARY_DIR}/npfs_npfs.h.gch ${SOURCE}) + +target_link_libraries(npfs ${PSEH_LIB}) + +set_module_type(npfs kernelmodedriver) +add_importlibs(npfs ntoskrnl hal) +add_pch(npfs ${CMAKE_CURRENT_SOURCE_DIR}/npfs.h ${SOURCE}) +add_cd_file(TARGET npfs DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/filesystems/ntfs/CMakeLists.txt b/reactos/drivers/filesystems/ntfs/CMakeLists.txt new file mode 100644 index 00000000000..bef4973c8d9 --- /dev/null +++ b/reactos/drivers/filesystems/ntfs/CMakeLists.txt @@ -0,0 +1,27 @@ + +list(APPEND SOURCE + attrib.c + blockdev.c + close.c + create.c + dirctl.c + dispatch.c + fastio.c + fcb.c + finfo.c + fsctl.c + mft.c + misc.c + ntfs.c + rw.c + volinfo.c + ntfs.rc) + +add_library(ntfs SHARED ${CMAKE_CURRENT_BINARY_DIR}/ntfs_ntfs.h.gch ${SOURCE}) + +set_module_type(ntfs kernelmodedriver) +add_importlibs(ntfs ntoskrnl hal) + +add_pch(ntfs ${CMAKE_CURRENT_SOURCE_DIR}/ntfs.h ${SOURCE}) + +add_cd_file(TARGET ntfs DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/input/CMakeLists.txt b/reactos/drivers/input/CMakeLists.txt new file mode 100644 index 00000000000..0c70af1c8e1 --- /dev/null +++ b/reactos/drivers/input/CMakeLists.txt @@ -0,0 +1,5 @@ + +add_subdirectory(i8042prt) +add_subdirectory(kbdclass) +add_subdirectory(mouclass) +add_subdirectory(sermouse) diff --git a/reactos/drivers/input/i8042prt/CMakeLists.txt b/reactos/drivers/input/i8042prt/CMakeLists.txt new file mode 100644 index 00000000000..1761b6111c5 --- /dev/null +++ b/reactos/drivers/input/i8042prt/CMakeLists.txt @@ -0,0 +1,20 @@ + +set_rc_compiler() + +add_library(i8042prt SHARED + createclose.c + i8042prt.c + keyboard.c + misc.c + mouse.c + pnp.c + ps2pp.c + readwrite.c + registry.c + setup.c + i8042prt.rc) + +set_module_type(i8042prt kernelmodedriver) +add_importlibs(i8042prt ntoskrnl hal) + +add_cd_file(TARGET i8042prt DESTINATION reactos/system32/drivers NO_CAB FOR all) \ No newline at end of file diff --git a/reactos/drivers/input/kbdclass/CMakeLists.txt b/reactos/drivers/input/kbdclass/CMakeLists.txt new file mode 100644 index 00000000000..e25e6307fa6 --- /dev/null +++ b/reactos/drivers/input/kbdclass/CMakeLists.txt @@ -0,0 +1,14 @@ + +add_library(kbdclass SHARED + kbdclass.c + misc.c + setup.c + kbdclass.rc) + +set_module_type(kbdclass kernelmodedriver) + +target_link_libraries(kbdclass ${PSEH_LIB}) + +add_importlibs(kbdclass ntoskrnl hal) + +add_cd_file(TARGET kbdclass DESTINATION reactos/system32/drivers NO_CAB FOR all) \ No newline at end of file diff --git a/reactos/drivers/input/mouclass/CMakeLists.txt b/reactos/drivers/input/mouclass/CMakeLists.txt new file mode 100644 index 00000000000..13463ba849f --- /dev/null +++ b/reactos/drivers/input/mouclass/CMakeLists.txt @@ -0,0 +1,13 @@ + +add_library(mouclass SHARED + misc.c + mouclass.c + mouclass.rc) + +set_module_type(mouclass kernelmodedriver) + +target_link_libraries(mouclass ${PSEH_LIB}) + +add_importlibs(mouclass ntoskrnl hal) + +add_cd_file(TARGET mouclass DESTINATION reactos/system32/drivers FOR all) \ No newline at end of file diff --git a/reactos/drivers/input/sermouse/CMakeLists.txt b/reactos/drivers/input/sermouse/CMakeLists.txt new file mode 100644 index 00000000000..06a91c05f3d --- /dev/null +++ b/reactos/drivers/input/sermouse/CMakeLists.txt @@ -0,0 +1,15 @@ + +add_library(sermouse SHARED + createclose.c + detect.c + fdo.c + internaldevctl.c + misc.c + readmouse.c + sermouse.c + sermouse.rc) + +set_module_type(sermouse kernelmodedriver) +add_importlibs(sermouse ntoskrnl hal) + +add_cd_file(TARGET sermouse DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/ksfilter/CMakeLists.txt b/reactos/drivers/ksfilter/CMakeLists.txt new file mode 100644 index 00000000000..521247b7157 --- /dev/null +++ b/reactos/drivers/ksfilter/CMakeLists.txt @@ -0,0 +1,3 @@ + +add_subdirectory(ks) +add_subdirectory(swenum) \ No newline at end of file diff --git a/reactos/drivers/ksfilter/ks/CMakeLists.txt b/reactos/drivers/ksfilter/ks/CMakeLists.txt new file mode 100644 index 00000000000..712848b6b2f --- /dev/null +++ b/reactos/drivers/ksfilter/ks/CMakeLists.txt @@ -0,0 +1,48 @@ + +spec2def(ks.sys ks.spec) + +add_definitions( + -DBUILDING_KS + -D_COMDDK_) + +list(APPEND SOURCE + api.c + allocators.c + bag.c + device.c + deviceinterface.c + driver.c + clocks.c + connectivity.c + event.c + filter.c + filterfactory.c + image.c + irp.c + methods.c + misc.c + pin.c + property.c + topology.c + unknown.c + worker.c + kcom.c + swenum.c + ks.rc + ${CMAKE_CURRENT_BINARY_DIR}/ks.def) + +add_library(ks SHARED ${SOURCE}) + +set_target_properties(ks PROPERTIES SUFFIX ".sys") + +set_entrypoint(ks 0) +set_subsystem(ks native) +set_image_base(ks 0x00010000) + +target_link_libraries(ks ${PSEH_LIB}) + +add_importlibs(ks ntoskrnl hal) +add_dependencies(ks psdk bugcodes) + +add_cd_file(TARGET ks DESTINATION reactos/system32/drivers FOR all) +add_importlib_target(ks.spec) diff --git a/reactos/drivers/ksfilter/swenum/CMakeLists.txt b/reactos/drivers/ksfilter/swenum/CMakeLists.txt new file mode 100644 index 00000000000..d9311417631 --- /dev/null +++ b/reactos/drivers/ksfilter/swenum/CMakeLists.txt @@ -0,0 +1,10 @@ + +list(APPEND SOURCE + swenum.c) + +add_library(swenum SHARED ${SOURCE}) + +set_module_type(swenum kernelmodedriver) +add_importlibs(swenum ks ntoskrnl hal) + +add_cd_file(TARGET swenum DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/network/CMakeLists.txt b/reactos/drivers/network/CMakeLists.txt new file mode 100644 index 00000000000..88521cab276 --- /dev/null +++ b/reactos/drivers/network/CMakeLists.txt @@ -0,0 +1,6 @@ + +add_subdirectory(afd) +add_subdirectory(dd) +add_subdirectory(ndis) +add_subdirectory(tcpip) +add_subdirectory(tdi) diff --git a/reactos/drivers/network/afd/CMakeLists.txt b/reactos/drivers/network/afd/CMakeLists.txt new file mode 100644 index 00000000000..22ef729c619 --- /dev/null +++ b/reactos/drivers/network/afd/CMakeLists.txt @@ -0,0 +1,29 @@ + +include_directories( + BEFORE include + ${REACTOS_SOURCE_DIR}/include/reactos/drivers) + +list(APPEND SOURCE + afd/bind.c + afd/connect.c + afd/context.c + afd/info.c + afd/listen.c + afd/lock.c + afd/main.c + afd/read.c + afd/select.c + afd/tdi.c + afd/tdiconn.c + afd/write.c + afd.rc) + +add_library(afd SHARED ${CMAKE_CURRENT_BINARY_DIR}/afd_afd.h.gch ${SOURCE}) +target_link_libraries(afd ${PSEH_LIB}) + +set_module_type(afd kernelmodedriver) +add_importlibs(afd ntoskrnl hal) + +add_pch(afd ${CMAKE_CURRENT_SOURCE_DIR}/include/afd.h ${SOURCE}) + +add_cd_file(TARGET afd DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/network/dd/CMakeLists.txt b/reactos/drivers/network/dd/CMakeLists.txt new file mode 100644 index 00000000000..61ce69d774b --- /dev/null +++ b/reactos/drivers/network/dd/CMakeLists.txt @@ -0,0 +1,3 @@ + +add_subdirectory(ne2000) +add_subdirectory(pcnet) diff --git a/reactos/drivers/network/dd/ne2000/CMakeLists.txt b/reactos/drivers/network/dd/ne2000/CMakeLists.txt new file mode 100644 index 00000000000..f11ebe95a9b --- /dev/null +++ b/reactos/drivers/network/dd/ne2000/CMakeLists.txt @@ -0,0 +1,14 @@ + +include_directories(BEFORE include) + +list(APPEND SOURCE + ne2000/8390.c + ne2000/main.c + ne2000.rc) + +add_library(ne2000 SHARED ${SOURCE}) + +set_module_type(ne2000 kernelmodedriver) +add_importlibs(ne2000 ndis ntoskrnl hal) + +add_cd_file(TARGET ne2000 DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/network/dd/pcnet/CMakeLists.txt b/reactos/drivers/network/dd/pcnet/CMakeLists.txt new file mode 100644 index 00000000000..7235782f5e0 --- /dev/null +++ b/reactos/drivers/network/dd/pcnet/CMakeLists.txt @@ -0,0 +1,18 @@ + +add_definitions( + -DNDIS50_MINIPORT + -DNDIS_MINIPORT_DRIVER + -DNDIS_LEGACY_MINIPORT + -DNDIS51_MINIPORT) + +list(APPEND SOURCE + pcnet.c + requests.c + pcnet.rc) + +add_library(pcnet SHARED ${SOURCE}) + +set_module_type(pcnet kernelmodedriver) +add_importlibs(pcnet ndis ntoskrnl hal) + +add_cd_file(TARGET pcnet DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/network/ndis/CMakeLists.txt b/reactos/drivers/network/ndis/CMakeLists.txt new file mode 100644 index 00000000000..60b7bcc52f1 --- /dev/null +++ b/reactos/drivers/network/ndis/CMakeLists.txt @@ -0,0 +1,46 @@ + +include_directories(BEFORE include) + +add_definitions( + -DNDIS_WRAPPER + -DNDIS51 + -DNDIS51_MINIPORT + -DNDIS_LEGACY_DRIVER + -DNDIS_LEGACY_MINIPORT + -DNDIS_LEGACY_PROTOCOL + -DNDIS_MINIPORT_DRIVER) + +spec2def(ndis.sys ndis.spec) + +list(APPEND SOURCE + ndis/30stubs.c + ndis/40stubs.c + ndis/50stubs.c + ndis/buffer.c + ndis/cl.c + ndis/cm.c + ndis/co.c + ndis/config.c + ndis/control.c + ndis/efilter.c + ndis/hardware.c + ndis/io.c + ndis/main.c + ndis/memory.c + ndis/miniport.c + ndis/misc.c + ndis/protocol.c + ndis/string.c + ndis/time.c + ndis.rc + ${CMAKE_CURRENT_BINARY_DIR}/ndis.def) + +add_library(ndis SHARED ${CMAKE_CURRENT_BINARY_DIR}/ndis_ndissys.h.gch ${SOURCE}) + +set_module_type(ndis kernelmodedriver) +add_importlibs(ndis ntoskrnl hal) + +add_pch(ndis ${CMAKE_CURRENT_SOURCE_DIR}/include/ndissys.h ${SOURCE}) + +add_cd_file(TARGET ndis DESTINATION reactos/system32/drivers FOR all) +add_importlib_target(ndis.spec) diff --git a/reactos/drivers/network/tcpip/CMakeLists.txt b/reactos/drivers/network/tcpip/CMakeLists.txt new file mode 100644 index 00000000000..e86a0d7fcec --- /dev/null +++ b/reactos/drivers/network/tcpip/CMakeLists.txt @@ -0,0 +1,42 @@ + +include_directories( + BEFORE include + ${REACTOS_SOURCE_DIR}/lib/drivers/oskittcp/include) + +add_definitions( + -DNDIS40 + -D_NTDRIVER_) + +spec2def(tcpip.sys tcpip.spec) + +list(APPEND SOURCE + datalink/lan.c + tcpip/ainfo.c + tcpip/buffer.c + tcpip/dispatch.c + tcpip/fileobjs.c + tcpip/iinfo.c + tcpip/info.c + tcpip/lock.c + tcpip/main.c + tcpip/ninfo.c + tcpip/proto.c + tcpip/tinfo.c + tcpip/wait.c + tcpip.rc + ${CMAKE_CURRENT_BINARY_DIR}/tcpip.def) + +add_library(tcpip SHARED ${CMAKE_CURRENT_BINARY_DIR}/tcpip_precomp.h.gch ${SOURCE}) + +target_link_libraries(tcpip + ip + oskittcp + ${PSEH_LIB} + chew) + +set_module_type(tcpip kernelmodedriver) +add_importlibs(tcpip ndis ntoskrnl hal) + +add_pch(tcpip ${CMAKE_CURRENT_SOURCE_DIR}/include/precomp.h ${SOURCE}) + +add_cd_file(TARGET tcpip DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/network/tdi/CMakeLists.txt b/reactos/drivers/network/tdi/CMakeLists.txt new file mode 100644 index 00000000000..eeb5b468c0c --- /dev/null +++ b/reactos/drivers/network/tdi/CMakeLists.txt @@ -0,0 +1,30 @@ + +include_directories( + BEFORE include + ${REACTOS_SOURCE_DIR}/lib/drivers/oskittcp/include) + +add_definitions( + -DNDIS40 + -D_NTDRIVER_ + -D_TDI_) + +spec2def(tdi.sys misc/tdi.spec) + +list(APPEND SOURCE + cte/events.c + cte/string.c + cte/timer.c + misc/main.c + misc/tdi.rc + tdi/dereg.c + tdi/handler.c + tdi/obsolete.c + tdi/stubs.c + ${CMAKE_CURRENT_BINARY_DIR}/tdi.def) + +add_library(tdi SHARED ${SOURCE}) + +set_module_type(tdi kernelmodedriver) +add_importlibs(tdi ntoskrnl hal) + +add_cd_file(TARGET tdi DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/parallel/CMakeLists.txt b/reactos/drivers/parallel/CMakeLists.txt new file mode 100644 index 00000000000..3efe6046225 --- /dev/null +++ b/reactos/drivers/parallel/CMakeLists.txt @@ -0,0 +1,2 @@ + +add_subdirectory(parallel) diff --git a/reactos/drivers/parallel/parallel/CMakeLists.txt b/reactos/drivers/parallel/parallel/CMakeLists.txt new file mode 100644 index 00000000000..95444961590 --- /dev/null +++ b/reactos/drivers/parallel/parallel/CMakeLists.txt @@ -0,0 +1,5 @@ + +add_library(parallel SHARED parallel.c parallel.rc) + +set_module_type(parallel kernelmodedriver) +add_importlibs(parallel ntoskrnl hal) diff --git a/reactos/drivers/serial/CMakeLists.txt b/reactos/drivers/serial/CMakeLists.txt new file mode 100644 index 00000000000..5db43b9c0fc --- /dev/null +++ b/reactos/drivers/serial/CMakeLists.txt @@ -0,0 +1,3 @@ + +add_subdirectory(serenum) +add_subdirectory(serial) diff --git a/reactos/drivers/serial/serenum/CMakeLists.txt b/reactos/drivers/serial/serenum/CMakeLists.txt new file mode 100644 index 00000000000..c31039222fe --- /dev/null +++ b/reactos/drivers/serial/serenum/CMakeLists.txt @@ -0,0 +1,13 @@ + +add_library(serenum SHARED + detect.c + fdo.c + misc.c + pdo.c + serenum.c + serenum.rc) + +set_module_type(serenum kernelmodedriver) +add_importlibs(serenum ntoskrnl hal) + +add_cd_file(TARGET serenum DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/serial/serial/CMakeLists.txt b/reactos/drivers/serial/serial/CMakeLists.txt new file mode 100644 index 00000000000..68ec42d9b40 --- /dev/null +++ b/reactos/drivers/serial/serial/CMakeLists.txt @@ -0,0 +1,20 @@ + +add_library(serial SHARED + circularbuffer.c + cleanup.c + close.c + create.c + devctrl.c + info.c + legacy.c + misc.c + pnp.c + power.c + rw.c + serial.c + serial.rc) + +set_module_type(serial kernelmodedriver) +add_importlibs(serial ntoskrnl hal) + +add_cd_file(TARGET serial DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/setup/CMakeLists.txt b/reactos/drivers/setup/CMakeLists.txt new file mode 100644 index 00000000000..fa50439a88b --- /dev/null +++ b/reactos/drivers/setup/CMakeLists.txt @@ -0,0 +1,2 @@ + +add_subdirectory(blue) diff --git a/reactos/drivers/setup/blue/CMakeLists.txt b/reactos/drivers/setup/blue/CMakeLists.txt new file mode 100644 index 00000000000..ae3c8f674be --- /dev/null +++ b/reactos/drivers/setup/blue/CMakeLists.txt @@ -0,0 +1,9 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/drivers) + +add_library(blue SHARED blue.c font.c blue.rc) + +set_module_type(blue kernelmodedriver) +add_importlibs(blue ntoskrnl hal) + +add_cd_file(TARGET blue DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/storage/CMakeLists.txt b/reactos/drivers/storage/CMakeLists.txt new file mode 100644 index 00000000000..724a1d90658 --- /dev/null +++ b/reactos/drivers/storage/CMakeLists.txt @@ -0,0 +1,7 @@ + +add_subdirectory(class) +add_subdirectory(classpnp) +add_subdirectory(floppy) +add_subdirectory(ide) +add_subdirectory(port) +add_subdirectory(scsiport) diff --git a/reactos/drivers/storage/class/CMakeLists.txt b/reactos/drivers/storage/class/CMakeLists.txt new file mode 100644 index 00000000000..d3fd268b523 --- /dev/null +++ b/reactos/drivers/storage/class/CMakeLists.txt @@ -0,0 +1,5 @@ + +add_subdirectory(cdrom) +add_subdirectory(class2) +add_subdirectory(disk) +add_subdirectory(ramdisk) diff --git a/reactos/drivers/storage/class/cdrom/CMakeLists.txt b/reactos/drivers/storage/class/cdrom/CMakeLists.txt new file mode 100644 index 00000000000..3a21ad923b3 --- /dev/null +++ b/reactos/drivers/storage/class/cdrom/CMakeLists.txt @@ -0,0 +1,13 @@ + +include_directories(..) + +add_library(cdrom SHARED cdrom.c findscsi.c cdrom.rc) + +set_module_type(cdrom kernelmodedriver) +add_importlibs(cdrom + class2 + scsiport + ntoskrnl + hal) + +add_cd_file(TARGET cdrom DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/storage/class/class2/CMakeLists.txt b/reactos/drivers/storage/class/class2/CMakeLists.txt new file mode 100644 index 00000000000..8820226b9ce --- /dev/null +++ b/reactos/drivers/storage/class/class2/CMakeLists.txt @@ -0,0 +1,18 @@ + +include_directories(..) + +spec2def(class2.sys class2.spec) + +list(APPEND SOURCE + class2.c + class2.rc + ${CMAKE_CURRENT_BINARY_DIR}/class2.def) + +add_library(class2 SHARED ${SOURCE}) + +set_module_type(class2 kernelmodedriver) + +add_importlibs(class2 scsiport ntoskrnl hal) +add_importlib_target(class2.spec) + +add_cd_file(TARGET class2 DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/storage/class/disk/CMakeLists.txt b/reactos/drivers/storage/class/disk/CMakeLists.txt new file mode 100644 index 00000000000..dcddd4f2aaa --- /dev/null +++ b/reactos/drivers/storage/class/disk/CMakeLists.txt @@ -0,0 +1,13 @@ + +include_directories(..) + +add_library(disk SHARED disk.c disk.rc) + +set_module_type(disk kernelmodedriver) +add_importlibs(disk + class2 + scsiport + ntoskrnl + hal) + +add_cd_file(TARGET disk DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/storage/class/ramdisk/CMakeLists.txt b/reactos/drivers/storage/class/ramdisk/CMakeLists.txt new file mode 100644 index 00000000000..f6cee2bfe72 --- /dev/null +++ b/reactos/drivers/storage/class/ramdisk/CMakeLists.txt @@ -0,0 +1,11 @@ + +include_directories(..) + +add_library(ramdisk SHARED ramdisk.c ramdisk.rc) + +set_module_type(ramdisk kernelmodedriver) +add_importlibs(ramdisk + ntoskrnl + hal) + +add_cd_file(TARGET ramdisk DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/storage/classpnp/CMakeLists.txt b/reactos/drivers/storage/classpnp/CMakeLists.txt new file mode 100644 index 00000000000..2c7c15e1e4d --- /dev/null +++ b/reactos/drivers/storage/classpnp/CMakeLists.txt @@ -0,0 +1,46 @@ + +include_directories(../inc) + +add_definitions( + -DCLASS_GLOBAL_BREAK_ON_LOST_IRPS=0 + -DCLASS_GLOBAL_SECONDS_TO_WAIT_FOR_SYNCHRONOUS_SRB=100 + -DCLASS_GLOBAL_USE_DELAYED_RETRY=1 + -DCLASS_GLOBAL_BUFFERED_DEBUG_PRINT=0 + -DCLASS_GLOBAL_BUFFERED_DEBUG_PRINT_BUFFER_SIZE=512 + -DCLASS_GLOBAL_BUFFERED_DEBUG_PRINT_BUFFERS=512) + +if(ARCH MATCHES i386) + if(MSVC) + add_definitions(/Gz) + else() + add_definitions(-mrtd -fno-builtin -w) + endif() +endif() + +spec2def(classpnp.sys class.spec) + +list(APPEND SOURCE + autorun.c + class.c + classwmi.c + clntirp.c + create.c + data.c + debug.c + dictlib.c + lock.c + obsolete.c + power.c + retry.c + utils.c + xferpkt.c + class.rc + ${CMAKE_CURRENT_BINARY_DIR}/class.def) + +add_library(classpnp SHARED ${SOURCE}) +target_link_libraries(classpnp ${PSEH_LIB} libcntpr) + +set_module_type(classpnp kernelmodedriver) +add_importlibs(classpnp hal ntoskrnl) + +add_cd_file(TARGET classpnp DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/storage/floppy/CMakeLists.txt b/reactos/drivers/storage/floppy/CMakeLists.txt new file mode 100644 index 00000000000..6a2954f1806 --- /dev/null +++ b/reactos/drivers/storage/floppy/CMakeLists.txt @@ -0,0 +1,15 @@ + +add_library(floppy SHARED + csqrtns.c + floppy.c + hardware.c + ioctl.c + readwrite.c + floppy.rc) + +target_link_libraries(floppy csq) + +set_module_type(floppy kernelmodedriver) +add_importlibs(floppy hal ntoskrnl) + +add_cd_file(TARGET floppy DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/storage/ide/CMakeLists.txt b/reactos/drivers/storage/ide/CMakeLists.txt new file mode 100644 index 00000000000..f49c4ce8bf3 --- /dev/null +++ b/reactos/drivers/storage/ide/CMakeLists.txt @@ -0,0 +1,5 @@ + +add_subdirectory(atapi) +add_subdirectory(pciide) +add_subdirectory(pciidex) +add_subdirectory(uniata) diff --git a/reactos/drivers/storage/ide/atapi/CMakeLists.txt b/reactos/drivers/storage/ide/atapi/CMakeLists.txt new file mode 100644 index 00000000000..73c2c8a0eef --- /dev/null +++ b/reactos/drivers/storage/ide/atapi/CMakeLists.txt @@ -0,0 +1,9 @@ + +add_library(atapi SHARED atapi.c atapi.rc) + +target_link_libraries(atapi libcntpr) + +set_module_type(atapi kernelmodedriver) +add_importlibs(atapi scsiport) + +add_cd_file(TARGET atapi DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/storage/ide/pciide/CMakeLists.txt b/reactos/drivers/storage/ide/pciide/CMakeLists.txt new file mode 100644 index 00000000000..064c861fc24 --- /dev/null +++ b/reactos/drivers/storage/ide/pciide/CMakeLists.txt @@ -0,0 +1,7 @@ + +add_library(pciide SHARED pciide.c pciide.rc) + +set_module_type(pciide kernelmodedriver) +add_importlibs(pciide pciidex ntoskrnl) + +add_cd_file(TARGET pciide DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/storage/ide/pciidex/CMakeLists.txt b/reactos/drivers/storage/ide/pciidex/CMakeLists.txt new file mode 100644 index 00000000000..c81b63163c6 --- /dev/null +++ b/reactos/drivers/storage/ide/pciidex/CMakeLists.txt @@ -0,0 +1,19 @@ + +spec2def(pciidex.sys pciidex.spec) + +list(APPEND SOURCE + fdo.c + miniport.c + misc.c + pciidex.c + pdo.c + pciidex.rc + ${CMAKE_CURRENT_BINARY_DIR}/pciidex.def) + +add_library(pciidex SHARED ${SOURCE}) + +set_module_type(pciidex kernelmodedriver) +add_importlibs(pciidex ntoskrnl) + +add_cd_file(TARGET pciidex DESTINATION reactos/system32/drivers FOR all) +add_importlib_target(pciidex.spec) diff --git a/reactos/drivers/storage/ide/uniata/CMakeLists.txt b/reactos/drivers/storage/ide/uniata/CMakeLists.txt new file mode 100644 index 00000000000..8052d7f0035 --- /dev/null +++ b/reactos/drivers/storage/ide/uniata/CMakeLists.txt @@ -0,0 +1,21 @@ + +include_directories(inc) + +set_cpp() +set_rc_compiler() + +add_library(uniata SHARED + id_ata.cpp + id_badblock.cpp + id_dma.cpp + id_init.cpp + id_probe.cpp + id_queue.cpp + id_sata.cpp + idedma.rc + ros_glue/ros_glue.cpp) + +set_module_type(uniata kernelmodedriver) +add_importlibs(uniata scsiport ntoskrnl hal) + +add_cd_file(TARGET uniata DESTINATION reactos/system32/drivers NO_CAB FOR all) \ No newline at end of file diff --git a/reactos/drivers/storage/port/CMakeLists.txt b/reactos/drivers/storage/port/CMakeLists.txt new file mode 100644 index 00000000000..dd3cc48096c --- /dev/null +++ b/reactos/drivers/storage/port/CMakeLists.txt @@ -0,0 +1,2 @@ + +add_subdirectory(buslogic) diff --git a/reactos/drivers/storage/port/buslogic/CMakeLists.txt b/reactos/drivers/storage/port/buslogic/CMakeLists.txt new file mode 100644 index 00000000000..79917511364 --- /dev/null +++ b/reactos/drivers/storage/port/buslogic/CMakeLists.txt @@ -0,0 +1,11 @@ + +set_rc_compiler() + +add_library(buslogic SHARED BusLogic958.c BusLogic958.rc) + +target_link_libraries(buslogic libcntpr) + +set_module_type(buslogic kernelmodedriver) +add_importlibs(buslogic scsiport) + +add_cd_file(TARGET buslogic DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/storage/scsiport/CMakeLists.txt b/reactos/drivers/storage/scsiport/CMakeLists.txt new file mode 100644 index 00000000000..2be2a018591 --- /dev/null +++ b/reactos/drivers/storage/scsiport/CMakeLists.txt @@ -0,0 +1,17 @@ + +spec2def(scsiport.sys scsiport.spec) + +list(APPEND SOURCE + scsiport.c + stubs.c + scsiport.rc + ${CMAKE_CURRENT_BINARY_DIR}/scsiport.def) + +add_library(scsiport SHARED ${SOURCE}) + +set_module_type(scsiport kernelmodedriver) + +add_importlibs(scsiport ntoskrnl hal) +add_importlib_target(scsiport.spec) + +add_cd_file(TARGET scsiport DESTINATION reactos/system32/drivers NO_CAB FOR all) diff --git a/reactos/drivers/storage/scsiport/scsiport.spec b/reactos/drivers/storage/scsiport/scsiport.spec new file mode 100644 index 00000000000..b1b02c59385 --- /dev/null +++ b/reactos/drivers/storage/scsiport/scsiport.spec @@ -0,0 +1,70 @@ +@ cdecl ScsiDebugPrint() +@ stdcall ScsiPortCompleteRequest(ptr long long long long) +@ stdcall ScsiPortConvertPhysicalAddressToUlong(long long) +@ stdcall -arch=i386 ScsiPortConvertUlongToPhysicalAddress(long) NTOSKRNL.RtlConvertUlongToLargeInteger +@ stdcall -arch=x86_64 ScsiPortConvertUlongToPhysicalAddress(long) +@ stdcall ScsiPortFlushDma(ptr) +@ stdcall ScsiPortFreeDeviceBase(ptr ptr) +@ stdcall ScsiPortGetBusData(ptr long long long ptr long) +@ stdcall ScsiPortGetDeviceBase(ptr long long long long long long) +@ stdcall ScsiPortGetLogicalUnit(ptr long long long) +@ stdcall ScsiPortGetPhysicalAddress(ptr ptr ptr long) +@ stdcall ScsiPortGetSrb(ptr long long long long) +@ stdcall ScsiPortGetUncachedExtension(ptr ptr long) +@ stdcall ScsiPortGetVirtualAddress(ptr long long) +@ stdcall ScsiPortInitialize(ptr ptr ptr ptr) +@ stdcall ScsiPortIoMapTransfer(ptr ptr long long) +@ stdcall ScsiPortLogError(ptr ptr long long long long long) +@ stdcall ScsiPortMoveMemory(ptr ptr long) +@ cdecl ScsiPortNotification() +@ stdcall -arch=i386 ScsiPortReadPortBufferUchar(ptr ptr long) HAL.READ_PORT_BUFFER_UCHAR +@ stdcall -arch=i386 ScsiPortReadPortBufferUshort(ptr ptr long) HAL.READ_PORT_BUFFER_USHORT +@ stdcall -arch=i386 ScsiPortReadPortBufferUlong(ptr ptr long) HAL.READ_PORT_BUFFER_ULONG +@ stdcall -arch=i386 ScsiPortReadPortUchar(ptr) HAL.READ_PORT_UCHAR +@ stdcall -arch=i386 ScsiPortReadPortUshort(ptr) HAL.READ_PORT_USHORT +@ stdcall -arch=i386 ScsiPortReadPortUlong(ptr) HAL.READ_PORT_ULONG +@ stdcall -arch=i386 ScsiPortReadRegisterBufferUchar(ptr ptr long) NTOSKRNL.READ_REGISTER_BUFFER_UCHAR +@ stdcall -arch=i386 ScsiPortReadRegisterBufferUshort(ptr ptr long) NTOSKRNL.READ_REGISTER_BUFFER_USHORT +@ stdcall -arch=i386 ScsiPortReadRegisterBufferUlong(ptr ptr long) NTOSKRNL.READ_REGISTER_BUFFER_ULONG +@ stdcall -arch=i386 ScsiPortReadRegisterUchar(ptr) NTOSKRNL.READ_REGISTER_UCHAR +@ stdcall -arch=i386 ScsiPortReadRegisterUshort(ptr) NTOSKRNL.READ_REGISTER_USHORT +@ stdcall -arch=i386 ScsiPortReadRegisterUlong(ptr) NTOSKRNL.READ_REGISTER_ULONG +@ stdcall -arch=x86_64 ScsiPortReadPortBufferUchar(ptr ptr long) +@ stdcall -arch=x86_64 ScsiPortReadPortBufferUshort(ptr ptr long) +@ stdcall -arch=x86_64 ScsiPortReadPortBufferUlong(ptr ptr long) +@ stdcall -arch=x86_64 ScsiPortReadPortUchar(ptr) +@ stdcall -arch=x86_64 ScsiPortReadPortUshort(ptr) +@ stdcall -arch=x86_64 ScsiPortReadPortUlong(ptr) +@ stdcall -arch=x86_64 ScsiPortReadRegisterBufferUchar(ptr ptr long) +@ stdcall -arch=x86_64 ScsiPortReadRegisterBufferUshort(ptr ptr long) +@ stdcall -arch=x86_64 ScsiPortReadRegisterBufferUlong(ptr ptr long) +@ stdcall -arch=x86_64 ScsiPortReadRegisterUchar(ptr) +@ stdcall -arch=x86_64 ScsiPortReadRegisterUshort(ptr) +@ stdcall -arch=x86_64 ScsiPortReadRegisterUlong(ptr) +@ stdcall ScsiPortSetBusDataByOffset(ptr long long long ptr long long) +@ stdcall ScsiPortStallExecution(long) HAL.KeStallExecutionProcessor +@ stdcall ScsiPortValidateRange(ptr long long long long long long) +@ stdcall -arch=i386 ScsiPortWritePortBufferUchar(ptr ptr long) HAL.WRITE_PORT_BUFFER_UCHAR +@ stdcall -arch=i386 ScsiPortWritePortBufferUshort(ptr ptr long) HAL.WRITE_PORT_BUFFER_USHORT +@ stdcall -arch=i386 ScsiPortWritePortBufferUlong(ptr ptr long) HAL.WRITE_PORT_BUFFER_ULONG +@ stdcall -arch=i386 ScsiPortWritePortUchar(ptr long) HAL.WRITE_PORT_UCHAR +@ stdcall -arch=i386 ScsiPortWritePortUshort(ptr long) HAL.WRITE_PORT_USHORT +@ stdcall -arch=i386 ScsiPortWritePortUlong(ptr long) HAL.WRITE_PORT_ULONG +@ stdcall -arch=i386 ScsiPortWriteRegisterBufferUchar(ptr ptr long) NTOSKRNL.WRITE_REGISTER_BUFFER_UCHAR +@ stdcall -arch=i386 ScsiPortWriteRegisterBufferUshort(ptr ptr long) NTOSKRNL.WRITE_REGISTER_BUFFER_USHORT +@ stdcall -arch=i386 ScsiPortWriteRegisterBufferUlong(ptr ptr long) NTOSKRNL.WRITE_REGISTER_BUFFER_ULONG +@ stdcall -arch=i386 ScsiPortWriteRegisterUchar(ptr long) NTOSKRNL.WRITE_REGISTER_UCHAR +@ stdcall -arch=i386 ScsiPortWriteRegisterUshort(ptr long) NTOSKRNL.WRITE_REGISTER_USHORT +@ stdcall -arch=i386 ScsiPortWriteRegisterUlong(ptr long) NTOSKRNL.WRITE_REGISTER_ULONG +@ stdcall -arch=x86_64 ScsiPortWritePortBufferUchar(ptr ptr long) +@ stdcall -arch=x86_64 ScsiPortWritePortBufferUshort(ptr ptr long) +@ stdcall -arch=x86_64 ScsiPortWritePortBufferUlong(ptr ptr long) +@ stdcall -arch=x86_64 ScsiPortWritePortUchar(ptr long) +@ stdcall -arch=x86_64 ScsiPortWritePortUshort(ptr long) +@ stdcall -arch=x86_64 ScsiPortWritePortUlong(ptr long) +@ stdcall -arch=x86_64 ScsiPortWriteRegisterBufferUchar(ptr ptr long) +@ stdcall -arch=x86_64 ScsiPortWriteRegisterBufferUshort(ptr ptr long) +@ stdcall -arch=x86_64 ScsiPortWriteRegisterBufferUlong(ptr ptr long) +@ stdcall -arch=x86_64 ScsiPortWriteRegisterUchar(ptr long) +@ stdcall -arch=x86_64 ScsiPortWriteRegisterUshort(ptr long) +@ stdcall -arch=x86_64 ScsiPortWriteRegisterUlong(ptr long) diff --git a/reactos/drivers/usb/CMakeLists.txt b/reactos/drivers/usb/CMakeLists.txt new file mode 100644 index 00000000000..291a4290b86 --- /dev/null +++ b/reactos/drivers/usb/CMakeLists.txt @@ -0,0 +1,6 @@ + +add_subdirectory(nt4compat) +add_subdirectory(usbd) +#add_subdirectory(usbehci) The USB branch has usbehci_new +#add_subdirectory(usbhub) Compiles, just skipped in trunk +#add_subdirectory(usbstor) Compiles, just skipped in trunk diff --git a/reactos/drivers/usb/nt4compat/CMakeLists.txt b/reactos/drivers/usb/nt4compat/CMakeLists.txt new file mode 100644 index 00000000000..861e293ff6d --- /dev/null +++ b/reactos/drivers/usb/nt4compat/CMakeLists.txt @@ -0,0 +1,2 @@ + +add_subdirectory(usbdriver) diff --git a/reactos/drivers/usb/nt4compat/usbdriver/CMakeLists.txt b/reactos/drivers/usb/nt4compat/usbdriver/CMakeLists.txt new file mode 100644 index 00000000000..fcf92117880 --- /dev/null +++ b/reactos/drivers/usb/nt4compat/usbdriver/CMakeLists.txt @@ -0,0 +1,35 @@ + +add_definitions( + -DINCLUDE_EHCI + -D_MULTI_UHCI + -D_MULTI_EHCI + -D_X86) + +list(APPEND SOURCE + ehci.c + ohci.c + uhci.c + roothub.c + hub.c + td.c + usb.c + umss.c + bulkonly.c + cbi.c + devmgr.c + dmgrdisp.c + compdrv.c + etd.c + gendrv.c + mouse.c + keyboard.c + usbdriver.rc) + +add_library(usbdriver SHARED ${CMAKE_CURRENT_BINARY_DIR}/usbdriver_usbdriver.h.gch ${SOURCE}) + +set_module_type(usbdriver kernelmodedriver) +add_importlibs(usbdriver ntoskrnl hal) + +add_pch(usbdriver ${CMAKE_CURRENT_SOURCE_DIR}/usbdriver.h ${SOURCE}) + +add_cd_file(TARGET usbdriver DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/usb/usbd/CMakeLists.txt b/reactos/drivers/usb/usbd/CMakeLists.txt new file mode 100644 index 00000000000..5f30aab7530 --- /dev/null +++ b/reactos/drivers/usb/usbd/CMakeLists.txt @@ -0,0 +1,11 @@ + +spec2def(usbd.sys usbd.spec) + +add_library(usbd SHARED + usbd.c + usbd.rc + ${CMAKE_CURRENT_BINARY_DIR}/usbd.def) + +set_module_type(usbd kernelmodedriver) +add_importlibs(usbd ntoskrnl hal) +add_importlib_target(usbd.spec) diff --git a/reactos/drivers/usb/usbehci/CMakeLists.txt b/reactos/drivers/usb/usbehci/CMakeLists.txt new file mode 100644 index 00000000000..0d8a7ba0cf5 --- /dev/null +++ b/reactos/drivers/usb/usbehci/CMakeLists.txt @@ -0,0 +1,21 @@ + +list(APPEND SOURCE + usbehci.c + hardware.c + physmem.c + hwiface.c + transfer.c + fdo.c + pdo.c + common.c + misc.c + irp.c + usbiffn.c + usbehci.rc) + +add_library(usbehci SHARED ${SOURCE}) + +set_module_type(usbehci kernelmodedriver) +add_importlibs(usbehci ntoskrnl hal) + +add_cab_target(usbehci 2) diff --git a/reactos/drivers/usb/usbhub/CMakeLists.txt b/reactos/drivers/usb/usbhub/CMakeLists.txt new file mode 100644 index 00000000000..60c165f4e35 --- /dev/null +++ b/reactos/drivers/usb/usbhub/CMakeLists.txt @@ -0,0 +1,15 @@ + +list(APPEND SOURCE + createclose.c + fdo.c + misc.c + pdo.c + usbhub.c + usbhub.rc) + +add_library(usbhub SHARED ${SOURCE}) + +set_module_type(usbhub kernelmodedriver) +add_importlibs(usbhub ntoskrnl hal usbd) + +add_cab_target(usbhub 2) diff --git a/reactos/drivers/usb/usbstor/CMakeLists.txt b/reactos/drivers/usb/usbstor/CMakeLists.txt new file mode 100644 index 00000000000..041ce3947b1 --- /dev/null +++ b/reactos/drivers/usb/usbstor/CMakeLists.txt @@ -0,0 +1,10 @@ + +add_definitions(-DDEBUG_MODE) + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +add_library(usbstor SHARED usbstor.c usbstor.rc) + +set_module_type(usbstor kernelmodedriver) +add_importlibs(usbstor ntoskrnl hal) +add_cab_target(usbstor 2) diff --git a/reactos/drivers/video/CMakeLists.txt b/reactos/drivers/video/CMakeLists.txt new file mode 100644 index 00000000000..725d63512a2 --- /dev/null +++ b/reactos/drivers/video/CMakeLists.txt @@ -0,0 +1,5 @@ + +add_subdirectory(displays) +add_subdirectory(font) +add_subdirectory(miniport) +add_subdirectory(videoprt) diff --git a/reactos/drivers/video/displays/CMakeLists.txt b/reactos/drivers/video/displays/CMakeLists.txt new file mode 100644 index 00000000000..ff7fd43541e --- /dev/null +++ b/reactos/drivers/video/displays/CMakeLists.txt @@ -0,0 +1,4 @@ + +add_subdirectory(framebuf) +add_subdirectory(framebuf_new) +add_subdirectory(vga) diff --git a/reactos/drivers/video/displays/framebuf/CMakeLists.txt b/reactos/drivers/video/displays/framebuf/CMakeLists.txt new file mode 100644 index 00000000000..2e7a143f0f7 --- /dev/null +++ b/reactos/drivers/video/displays/framebuf/CMakeLists.txt @@ -0,0 +1,19 @@ + +spec2def(framebuf.dll framebuf.spec) + +add_library(framebuf SHARED + enable.c + palette.c + pointer.c + screen.c + surface.c + framebuf.rc + ${CMAKE_CURRENT_BINARY_DIR}/framebuf.def) + +set_entrypoint(framebuf DrvEnableDriver@12) +set_subsystem(framebuf native) +set_image_base(framebuf 0x00010000) +target_link_libraries(framebuf libcntpr) +add_importlibs(framebuf win32k) +add_dependencies(framebuf psdk bugcodes) +add_cd_file(TARGET framebuf DESTINATION reactos/system32 FOR all) diff --git a/reactos/drivers/video/displays/framebuf_new/CMakeLists.txt b/reactos/drivers/video/displays/framebuf_new/CMakeLists.txt new file mode 100644 index 00000000000..d78771398ae --- /dev/null +++ b/reactos/drivers/video/displays/framebuf_new/CMakeLists.txt @@ -0,0 +1,31 @@ + +spec2def(framebuf_new.dll framebuf_new.spec) + +list(APPEND SOURCE + debug.c + enable.c + palette.c + pointer.c + screen.c + framebuf_new.rc + ${CMAKE_CURRENT_BINARY_DIR}/framebuf_new.def) + +add_library(framebuf_new SHARED ${CMAKE_CURRENT_BINARY_DIR}/framebuf_new_driver.h.gch ${SOURCE}) + +if(ARCH MATCHES i386) + if(MSVC) + set_target_properties(framebuf_new PROPERTIES COMPILE_FLAGS "/Gz") + else() + set_target_properties(framebuf_new PROPERTIES COMPILE_FLAGS "-mrtd -fno-builtin") + endif() +endif() + +set_entrypoint(framebuf_new DrvEnableDriver@12) +set_subsystem(framebuf_new native) +set_image_base(framebuf_new 0x00010000) + +target_link_libraries(framebuf_new libcntpr) + +add_importlibs(framebuf_new win32k) +add_pch(framebuf_new ${CMAKE_CURRENT_SOURCE_DIR}/driver.h ${SOURCE}) +add_dependencies(framebuf_new psdk bugcodes) diff --git a/reactos/drivers/video/displays/vga/CMakeLists.txt b/reactos/drivers/video/displays/vga/CMakeLists.txt new file mode 100644 index 00000000000..fa24aed85b1 --- /dev/null +++ b/reactos/drivers/video/displays/vga/CMakeLists.txt @@ -0,0 +1,25 @@ + +spec2def(vgaddi.dll vgaddi.spec) + +add_library(vgaddi SHARED + main/enable.c + objects/screen.c + objects/pointer.c + objects/lineto.c + objects/paint.c + objects/bitblt.c + objects/transblt.c + objects/offscreen.c + objects/copybits.c + vgavideo/vgavideo.c + vgaddi.rc + ${CMAKE_CURRENT_BINARY_DIR}/vgaddi.def) + +set_entrypoint(vgaddi DrvEnableDriver@12) +set_subsystem(vgaddi native) +set_image_base(vgaddi 0x00010000) + +add_importlibs(vgaddi win32k) +target_link_libraries(vgaddi libcntpr) +add_dependencies(vgaddi psdk bugcodes) +add_cd_file(TARGET vgaddi DESTINATION reactos/system32 FOR all) \ No newline at end of file diff --git a/reactos/drivers/video/font/CMakeLists.txt b/reactos/drivers/video/font/CMakeLists.txt new file mode 100644 index 00000000000..0b35f380aaf --- /dev/null +++ b/reactos/drivers/video/font/CMakeLists.txt @@ -0,0 +1,3 @@ + +add_subdirectory(bmfd) +add_subdirectory(ftfd) diff --git a/reactos/drivers/video/font/bmfd/CMakeLists.txt b/reactos/drivers/video/font/bmfd/CMakeLists.txt new file mode 100644 index 00000000000..9645669efeb --- /dev/null +++ b/reactos/drivers/video/font/bmfd/CMakeLists.txt @@ -0,0 +1,14 @@ + +add_library(bmfd SHARED + enable.c + font.c + glyph.c) + +set_entrypoint(bmfd BmfdEnableDriver@12) +set_subsystem(bmfd native) +set_image_base(bmfd 0x00010000) + +target_link_libraries(bmfd libcntpr) + +add_importlibs(bmfd win32k) +add_dependencies(bmfd psdk bugcodes) diff --git a/reactos/drivers/video/font/ftfd/CMakeLists.txt b/reactos/drivers/video/font/ftfd/CMakeLists.txt new file mode 100644 index 00000000000..72458f71082 --- /dev/null +++ b/reactos/drivers/video/font/ftfd/CMakeLists.txt @@ -0,0 +1,25 @@ + +include_directories(${REACTOS_SOURCE_DIR}/lib/3rdparty/freetype/include) + +spec2def(ftfd.dll ftfd.spec) + +add_library(ftfd SHARED + enable.c + font.c + glyph.c + rosglue.c + sprintf.c + ${CMAKE_CURRENT_BINARY_DIR}/ftfd.def) + +set_entrypoint(ftfd FtfdEnableDriver@12) +set_subsystem(ftfd native) +set_image_base(ftfd ${baseaddress_ftfd}) + +target_link_libraries(ftfd + freetype + libcntpr) + +add_importlibs(ftfd win32k) +add_dependencies(ftfd psdk) +add_cd_file(TARGET ftfd DESTINATION reactos/system32 FOR all) +add_importlib_target(ftfd.spec) diff --git a/reactos/drivers/video/font/ftfd/ftfd.spec b/reactos/drivers/video/font/ftfd/ftfd.spec new file mode 100644 index 00000000000..82143f17c2f --- /dev/null +++ b/reactos/drivers/video/font/ftfd/ftfd.spec @@ -0,0 +1,28 @@ + + @ cdecl FT_Bitmap_Convert() + @ cdecl FT_Bitmap_Done() + @ cdecl FT_Bitmap_New() + @ cdecl FT_Done_Face() + @ cdecl FT_Done_Glyph() + @ cdecl FT_Get_Char_Index() + @ cdecl FT_Get_First_Char() + @ cdecl FT_Get_Glyph() + @ cdecl FT_Get_Kerning() + @ cdecl FT_Get_Next_Char() + @ cdecl FT_Get_PS_Font_Info() + @ cdecl FT_Get_Sfnt_Table() + @ cdecl FT_Get_WinFNT_Header() + @ cdecl FT_Glyph_To_Bitmap() + @ cdecl FT_Init_FreeType() + @ cdecl FT_Load_Glyph() + @ cdecl FT_Load_Sfnt_Table() + @ cdecl FT_Matrix_Multiply() + @ cdecl FT_MulFix() + @ cdecl FT_New_Memory_Face() + @ cdecl FT_Outline_Get_Bitmap() + @ cdecl FT_Outline_Transform() + @ cdecl FT_Outline_Translate() + @ cdecl FT_Set_Charmap() + @ cdecl FT_Set_Pixel_Sizes() + @ cdecl FT_Vector_Transform() + @ cdecl FT_Vector_Unit() diff --git a/reactos/drivers/video/miniport/CMakeLists.txt b/reactos/drivers/video/miniport/CMakeLists.txt new file mode 100644 index 00000000000..52898276311 --- /dev/null +++ b/reactos/drivers/video/miniport/CMakeLists.txt @@ -0,0 +1,6 @@ + +add_subdirectory(vbe) +add_subdirectory(vga) +add_subdirectory(vga_new) +add_subdirectory(vmx_svga) +add_subdirectory(xboxvmp) diff --git a/reactos/drivers/video/miniport/vbe/CMakeLists.txt b/reactos/drivers/video/miniport/vbe/CMakeLists.txt new file mode 100644 index 00000000000..590db9a20d6 --- /dev/null +++ b/reactos/drivers/video/miniport/vbe/CMakeLists.txt @@ -0,0 +1,12 @@ + +add_library(vbemp SHARED + edid.c + vbemp.c + vbemp.rc) + +set_module_type(vbemp kernelmodedriver) +add_importlibs(vbemp videoprt) + +target_link_libraries(vbemp libcntpr) + +add_cd_file(TARGET vbemp DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/video/miniport/vga/CMakeLists.txt b/reactos/drivers/video/miniport/vga/CMakeLists.txt new file mode 100644 index 00000000000..52fe270c1d8 --- /dev/null +++ b/reactos/drivers/video/miniport/vga/CMakeLists.txt @@ -0,0 +1,13 @@ + +list(APPEND SOURCE + initvga.c + vgamp.c + vgamp.rc) + +add_library(vgamp SHARED ${CMAKE_CURRENT_BINARY_DIR}/vgamp_vgamp.h.gch ${SOURCE}) + +set_module_type(vgamp kernelmodedriver) +add_importlibs(vgamp videoprt) + +add_pch(vgamp ${CMAKE_CURRENT_SOURCE_DIR}/vgamp.h ${SOURCE}) +add_cd_file(TARGET vgamp DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/video/miniport/vga_new/CMakeLists.txt b/reactos/drivers/video/miniport/vga_new/CMakeLists.txt new file mode 100644 index 00000000000..dba2632b9dc --- /dev/null +++ b/reactos/drivers/video/miniport/vga_new/CMakeLists.txt @@ -0,0 +1,25 @@ + +list(APPEND SOURCE + modeset.c + vgadata.c + vga.c + vbemodes.c + vbe.c + vga.rc) + +add_library(vga SHARED ${CMAKE_CURRENT_BINARY_DIR}/vga_vga.h.gch ${SOURCE}) + +target_link_libraries(vga libcntpr) + +if(MSVC) +set_target_properties(vga PROPERTIES COMPILE_FLAGS "/Gz") +else() +set_target_properties(vga PROPERTIES COMPILE_FLAGS "-mrtd -fno-builtin") +endif() + +set_module_type(vga kernelmodedriver) +add_importlibs(vga videoprt) + +add_pch(vga ${CMAKE_CURRENT_SOURCE_DIR}/vga.h ${SOURCE}) + +add_cd_file(TARGET vga DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/video/miniport/vmx_svga/CMakeLists.txt b/reactos/drivers/video/miniport/vmx_svga/CMakeLists.txt new file mode 100644 index 00000000000..056fe513f51 --- /dev/null +++ b/reactos/drivers/video/miniport/vmx_svga/CMakeLists.txt @@ -0,0 +1,9 @@ + +list(APPEND SOURCE vmx_svga.c vmx_svga.rc) + +add_library(vmx_svga SHARED ${CMAKE_CURRENT_BINARY_DIR}/vmx_svga_precomp.h.gch ${SOURCE}) + +set_module_type(vmx_svga kernelmodedriver) +add_importlibs(vmx_svga ntoskrnl videoprt) + +add_pch(vmx_svga ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${SOURCE}) diff --git a/reactos/drivers/video/miniport/xboxvmp/CMakeLists.txt b/reactos/drivers/video/miniport/xboxvmp/CMakeLists.txt new file mode 100644 index 00000000000..b42841a53ad --- /dev/null +++ b/reactos/drivers/video/miniport/xboxvmp/CMakeLists.txt @@ -0,0 +1,4 @@ + +add_library(xboxvmp SHARED xboxvmp.c xboxvmp.rc) +set_module_type(xboxvmp kernelmodedriver) +add_importlibs(xboxvmp ntoskrnl videoprt) diff --git a/reactos/drivers/video/videoprt/CMakeLists.txt b/reactos/drivers/video/videoprt/CMakeLists.txt new file mode 100644 index 00000000000..2485ada6020 --- /dev/null +++ b/reactos/drivers/video/videoprt/CMakeLists.txt @@ -0,0 +1,33 @@ + +include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +add_definitions(-D_VIDEOPORT_) + +spec2def(videoprt.sys videoprt.spec) + +list(APPEND SOURCE + agp.c + ddc.c + dispatch.c + dma.c + event.c + funclist.c + int10.c + interrupt.c + resource.c + services.c + spinlock.c + stubs.c + timer.c + videoprt.c + videoprt.rc + ${CMAKE_CURRENT_BINARY_DIR}/videoprt.def) + +add_library(videoprt SHARED ${CMAKE_CURRENT_BINARY_DIR}/videoprt_videoprt.h.gch ${SOURCE}) + +set_module_type(videoprt kernelmodedriver) +add_importlibs(videoprt ntoskrnl hal) + +add_pch(videoprt ${CMAKE_CURRENT_SOURCE_DIR}/videoprt.h ${SOURCE}) +add_cd_file(TARGET videoprt DESTINATION reactos/system32/drivers FOR all) +add_importlib_target(videoprt.spec) diff --git a/reactos/drivers/wdm/CMakeLists.txt b/reactos/drivers/wdm/CMakeLists.txt new file mode 100644 index 00000000000..6897e2ea93e --- /dev/null +++ b/reactos/drivers/wdm/CMakeLists.txt @@ -0,0 +1,2 @@ + +add_subdirectory(audio) diff --git a/reactos/drivers/wdm/audio/CMakeLists.txt b/reactos/drivers/wdm/audio/CMakeLists.txt new file mode 100644 index 00000000000..cfd8f9addaf --- /dev/null +++ b/reactos/drivers/wdm/audio/CMakeLists.txt @@ -0,0 +1,6 @@ + +add_subdirectory(backpln) +add_subdirectory(drm) +add_subdirectory(filters) +add_subdirectory(legacy) +add_subdirectory(sysaudio) diff --git a/reactos/drivers/wdm/audio/backpln/CMakeLists.txt b/reactos/drivers/wdm/audio/backpln/CMakeLists.txt new file mode 100644 index 00000000000..867bad2f9c5 --- /dev/null +++ b/reactos/drivers/wdm/audio/backpln/CMakeLists.txt @@ -0,0 +1,3 @@ + +add_subdirectory(audio_test) +add_subdirectory(portcls) diff --git a/reactos/drivers/wdm/audio/backpln/audio_test/CMakeLists.txt b/reactos/drivers/wdm/audio/backpln/audio_test/CMakeLists.txt new file mode 100644 index 00000000000..ec4b43a546d --- /dev/null +++ b/reactos/drivers/wdm/audio/backpln/audio_test/CMakeLists.txt @@ -0,0 +1,16 @@ + +add_definitions(-DPC_NO_IMPORTS) + +include_directories( + ${REACTOS_SOURCE_DIR}/include/reactos/libs/sound + ${REACTOS_SOURCE_DIR}/drivers/wdm/audio/legacy/wdmaud + ${REACTOS_SOURCE_DIR}/lib/3rdparty/libsamplerate) + +add_executable(audio_test audio_test.c) + +set_module_type(audio_test win32cui) + +target_link_libraries(audio_test libsamplerate) + +add_importlibs(audio_test setupapi ksuser msvcrt kernel32) +add_dependencies(audio_test bugcodes) diff --git a/reactos/drivers/wdm/audio/backpln/portcls/CMakeLists.txt b/reactos/drivers/wdm/audio/backpln/portcls/CMakeLists.txt new file mode 100644 index 00000000000..ce2bc4d3dd3 --- /dev/null +++ b/reactos/drivers/wdm/audio/backpln/portcls/CMakeLists.txt @@ -0,0 +1,73 @@ + +set_cpp() + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +spec2def(portcls.sys portcls.spec) + +add_library(portcls SHARED + adapter.cpp + api.cpp + connection.cpp + dispatcher.cpp + dll.cpp + dma_slave.cpp + drm.cpp + drm_port.cpp + filter_topology.cpp + filter_dmus.cpp + filter_wavecyclic.cpp + filter_wavepci.cpp + filter_wavert.cpp + guids.cpp + interrupt.cpp + irp.cpp + irpstream.cpp + miniport.cpp + miniport_dmus.cpp + miniport_fmsynth.cpp + pin_dmus.cpp + pin_wavecyclic.cpp + pin_wavepci.cpp + pin_wavert.cpp + pool.cpp + port.cpp + port_dmus.cpp + port_topology.cpp + port_wavecyclic.cpp + port_wavepci.cpp + port_wavert.cpp + port_wavertstream.cpp + power.cpp + propertyhandler.cpp + purecall.cpp + registry.cpp + resource.cpp + service_group.cpp + undoc.cpp + unregister.cpp + version.cpp + portcls.rc + ${CMAKE_CURRENT_BINARY_DIR}/portcls.def) + +target_link_libraries(portcls + libcntpr + stlport + ${PSEH_LIB}) + +if(MSVC) + set_target_properties(portcls PROPERTIES COMPILE_FLAGS "/GR-") +else() + target_link_libraries(portcls -lgcc) + set_target_properties(portcls PROPERTIES COMPILE_FLAGS "-fno-exceptions -fno-rtti") +endif(MSVC) + +set_entrypoint(portcls 0) +set_image_base(portcls 0x00010000) +set_subsystem(portcls native) +set_target_properties(portcls PROPERTIES SUFFIX ".sys") + +add_importlibs(portcls ntoskrnl ks drmk hal) + +add_cd_file(TARGET portcls DESTINATION reactos/system32/drivers FOR all) \ No newline at end of file diff --git a/reactos/drivers/wdm/audio/drm/CMakeLists.txt b/reactos/drivers/wdm/audio/drm/CMakeLists.txt new file mode 100644 index 00000000000..5a4d5db0715 --- /dev/null +++ b/reactos/drivers/wdm/audio/drm/CMakeLists.txt @@ -0,0 +1,2 @@ + +add_subdirectory(drmk) diff --git a/reactos/drivers/wdm/audio/drm/drmk/CMakeLists.txt b/reactos/drivers/wdm/audio/drm/drmk/CMakeLists.txt new file mode 100644 index 00000000000..20bd61a8eee --- /dev/null +++ b/reactos/drivers/wdm/audio/drm/drmk/CMakeLists.txt @@ -0,0 +1,29 @@ + +add_definitions(-DBUILDING_DRMK) + +spec2def(drmk.sys drmk.spec) + +list(APPEND SOURCE + stubs.cpp + drmk.rc + ${CMAKE_CURRENT_BINARY_DIR}/drmk.def) + +add_library(drmk SHARED ${SOURCE}) + +if(NOT MSVC) + set_module_type(drmk kernelmodedriver) +else() + set_target_properties(drmk PROPERTIES SUFFIX ".sys") + set_subsystem(drmk native) + set_image_base(drmk 0x00010000) + add_linkerflag(drmk "/DRIVER") + add_dependencies(drmk bugcodes) + target_link_libraries(drmk msvcsup) + add_dependencies(drmk psdk) +endif() + +set_entrypoint(drmk 0) +add_importlibs(drmk ntoskrnl) +add_importlib_target(drmk.spec) + +add_cd_file(TARGET drmk DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/drivers/wdm/audio/filters/CMakeLists.txt b/reactos/drivers/wdm/audio/filters/CMakeLists.txt new file mode 100644 index 00000000000..5f0f1ed31d7 --- /dev/null +++ b/reactos/drivers/wdm/audio/filters/CMakeLists.txt @@ -0,0 +1,2 @@ + +add_subdirectory(kmixer) diff --git a/reactos/drivers/wdm/audio/filters/kmixer/CMakeLists.txt b/reactos/drivers/wdm/audio/filters/kmixer/CMakeLists.txt new file mode 100644 index 00000000000..36da734090c --- /dev/null +++ b/reactos/drivers/wdm/audio/filters/kmixer/CMakeLists.txt @@ -0,0 +1,17 @@ + +include_directories(${REACTOS_SOURCE_DIR}/lib/3rdparty/libsamplerate) + +add_library(kmixer SHARED + kmixer.c + filter.c + pin.c) + +set_module_type(kmixer kernelmodedriver) + +target_link_libraries(kmixer + libcntpr + libsamplerate) + +add_importlibs(kmixer ntoskrnl ks hal) + +add_cd_file(TARGET kmixer DESTINATION reactos/system32/drivers FOR all) \ No newline at end of file diff --git a/reactos/drivers/wdm/audio/legacy/CMakeLists.txt b/reactos/drivers/wdm/audio/legacy/CMakeLists.txt new file mode 100644 index 00000000000..c46ea9f39bf --- /dev/null +++ b/reactos/drivers/wdm/audio/legacy/CMakeLists.txt @@ -0,0 +1,2 @@ + +add_subdirectory(wdmaud) diff --git a/reactos/drivers/wdm/audio/legacy/wdmaud/CMakeLists.txt b/reactos/drivers/wdm/audio/legacy/wdmaud/CMakeLists.txt new file mode 100644 index 00000000000..ca4a76661a6 --- /dev/null +++ b/reactos/drivers/wdm/audio/legacy/wdmaud/CMakeLists.txt @@ -0,0 +1,26 @@ + +add_definitions(-D_COMDDK_) + +include_directories( + ${REACTOS_SOURCE_DIR}/lib/drivers/sound/mmixer + ${REACTOS_SOURCE_DIR}/include/reactos/libs/sound) + +add_library(wdmaud SHARED + control.c + deviface.c + entry.c + mmixer.c + sup.c + wdmaud.rc) + +set_module_type(wdmaud kernelmodedriver) + +target_link_libraries(wdmaud + mmixer + libcntpr + ${PSEH_LIB}) + +add_importlibs(wdmaud ntoskrnl ks hal) + + +add_cd_file(TARGET wdmaud DESTINATION reactos/system32/drivers FOR all) \ No newline at end of file diff --git a/reactos/drivers/wdm/audio/sysaudio/CMakeLists.txt b/reactos/drivers/wdm/audio/sysaudio/CMakeLists.txt new file mode 100644 index 00000000000..078f19d1c63 --- /dev/null +++ b/reactos/drivers/wdm/audio/sysaudio/CMakeLists.txt @@ -0,0 +1,18 @@ + +add_definitions(-D_COMDDK_) + +add_library(sysaudio SHARED + control.c + deviface.c + dispatcher.c + main.c + pin.c + sysaudio.rc) + +set_module_type(sysaudio kernelmodedriver) + +target_link_libraries(sysaudio libcntpr) + +add_importlibs(sysaudio ntoskrnl ks hal) + +add_cd_file(TARGET sysaudio DESTINATION reactos/system32/drivers FOR all) \ No newline at end of file diff --git a/reactos/drivers/wmi/CMakeLists.txt b/reactos/drivers/wmi/CMakeLists.txt new file mode 100644 index 00000000000..0ca4443efe6 --- /dev/null +++ b/reactos/drivers/wmi/CMakeLists.txt @@ -0,0 +1,28 @@ + +spec2def(wmilib.sys wmilib.spec) + +list(APPEND SOURCE + wmilib.c + wmilib.rc + ${CMAKE_CURRENT_BINARY_DIR}/wmilib.def) + +add_library(wmilib SHARED ${SOURCE}) + +if(NOT MSVC) + set_module_type(wmilib kernelmodedriver) +else() + set_target_properties(wmilib PROPERTIES SUFFIX ".sys") + set_subsystem(wmilib native) + set_image_base(wmilib 0x00010000) + add_linkerflag(wmilib "/DRIVER") + add_dependencies(wmilib bugcodes) + target_link_libraries(wmilib msvcsup) + add_dependencies(wmilib psdk) +endif() + +set_entrypoint(wmilib 0) +set_target_properties(wmilib PROPERTIES SUFFIX ".sys") +add_importlibs(wmilib ntoskrnl) +add_importlib_target(wmilib.spec) + +add_cd_file(TARGET wmilib DESTINATION reactos/system32/drivers FOR all) diff --git a/reactos/gcc.cmake b/reactos/gcc.cmake new file mode 100644 index 00000000000..8efa19f1990 --- /dev/null +++ b/reactos/gcc.cmake @@ -0,0 +1,338 @@ + +# Linking +if(ARCH MATCHES i386) +link_directories("${REACTOS_SOURCE_DIR}/importlibs") +endif() +link_directories(${REACTOS_BINARY_DIR}/lib/3rdparty/mingw) +set(CMAKE_C_LINK_EXECUTABLE " -o ") +set(CMAKE_CXX_LINK_EXECUTABLE " -o ") +set(CMAKE_EXE_LINKER_FLAGS "-nodefaultlibs -nostdlib -Wl,--enable-auto-image-base -Wl,--disable-auto-import") +# -Wl,-T,${REACTOS_SOURCE_DIR}/global.lds +set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS_INIT} -Wl,--disable-stdcall-fixup") + +#set(CMAKE_RC_COMPILE_OBJECT " -i -I${REACTOS_SOURCE_DIR}/include/psdk -I${REACTOS_BINARY_DIR}/include/psdk -I${REACTOS_SOURCE_DIR}/include/ -I${REACTOS_SOURCE_DIR}/include/reactos -I${REACTOS_BINARY_DIR}/include/reactos -I${REACTOS_SOURCE_DIR}/include/reactos/wine -I${REACTOS_SOURCE_DIR}/include/crt -I${REACTOS_SOURCE_DIR}/include/crt/mingw32 -O coff -o ") + +# Temporary, until windres issues are fixed +get_target_property(WRC native-wrc IMPORTED_LOCATION_NOCONFIG) +set(CMAKE_RC_COMPILE_OBJECT + " -DRC_INVOKED -D__WIN32__=1 -D__FLAT__=1 -I${REACTOS_SOURCE_DIR}/include/psdk -I${REACTOS_BINARY_DIR}/include/psdk -I${REACTOS_SOURCE_DIR}/include/ -I${REACTOS_SOURCE_DIR}/include/reactos -I${REACTOS_BINARY_DIR}/include/reactos -I${REACTOS_SOURCE_DIR}/include/reactos/wine -I${REACTOS_SOURCE_DIR}/include/crt -I${REACTOS_SOURCE_DIR}/include/crt/mingw32 -xc -E -o " + "${WRC} -i -o " + " -i -J res -O coff -o ") + +if(NOT CMAKE_HOST_SYSTEM_NAME MATCHES Windows) + set(CMAKE_C_CREATE_STATIC_LIBRARY " crs ") +endif() + +# Compiler Core +add_definitions(-pipe -fms-extensions) + +set(CMAKE_C_CREATE_SHARED_LIBRARY " -o ") +set(CMAKE_CXX_CREATE_SHARED_LIBRARY " -o ") +set(CMAKE_RC_CREATE_SHARED_LIBRARY " -o ") + +# Debugging (Note: DWARF-4 on 4.5.1 when we ship) +add_definitions(-gdwarf-2 -g2 -femit-struct-debug-detailed=none -feliminate-unused-debug-types) + +# Tuning +if(ARCH MATCHES i386) + add_definitions(-march=${OARCH} -mtune=${TUNE}) +else() + add_definitions(-march=${OARCH}) +endif() + +# Warnings + +add_definitions(-Wall -Wno-char-subscripts -Wpointer-arith -Wno-multichar -Wno-error=uninitialized -Wno-unused-value -Winvalid-pch) + +if(ARCH MATCHES amd64) + add_definitions(-Wno-format) +elseif(ARCH MATCHES arm) + add_definitions(-Wno-attributes) +endif() + +# Optimizations + +if(OPTIMIZE STREQUAL "1") + add_definitions(-Os) +elseif(OPTIMIZE STREQUAL "2") + add_definitions(-Os) +elseif(OPTIMIZE STREQUAL "3") + add_definitions(-O1) +elseif(OPTIMIZE STREQUAL "4") + add_definitions(-O2) +elseif(OPTIMIZE STREQUAL "5") + add_definitions(-O3) +endif() + +add_definitions(-fno-strict-aliasing) + +if(ARCH MATCHES i386) + add_definitions(-mpreferred-stack-boundary=2 -fno-set-stack-executable -fno-optimize-sibling-calls) + if(OPTIMIZE STREQUAL "1") + add_definitions(-ftracer -momit-leaf-frame-pointer) + endif() +elseif(ARCH MATCHES amd64) + add_definitions(-mpreferred-stack-boundary=4) + if(OPTIMIZE STREQUAL "1") + add_definitions(-ftracer -momit-leaf-frame-pointer) + endif() +elseif(ARCH MATCHES arm) + if(OPTIMIZE STREQUAL "1") + add_definitions(-ftracer) + endif() +endif() + +# Other +if(ARCH MATCHES amd64) + add_definitions(-U_X86_ -UWIN32) +elseif(ARCH MATCHES arm) + add_definitions(-U_UNICODE -UUNICODE) + add_definitions(-D__MSVCRT__) # DUBIOUS +endif() + +# alternative arch name +if(ARCH MATCHES amd64) + set(ARCH2 x86_64) +else() + set(ARCH2 ${ARCH}) +endif() + +# Macros +macro(_PCH_GET_COMPILE_FLAGS _target_name _out_compile_flags _header_filename) + # Add the precompiled header to the build + get_filename_component(FILE ${_header_filename} NAME) + set(_gch_filename "${_target_name}_${FILE}.gch") + list(APPEND ${_out_compile_flags} -c ${_header_filename} -o ${_gch_filename}) + + # This gets us our includes + get_directory_property(DIRINC INCLUDE_DIRECTORIES) + foreach(item ${DIRINC}) + list(APPEND ${_out_compile_flags} -I${item}) + endforeach() + + # This is a particular bit of undocumented/hacky magic I'm quite proud of + get_directory_property(_compiler_flags DEFINITIONS) + string(REPLACE "\ " "\t" _compiler_flags ${_compiler_flags}) + list(APPEND ${_out_compile_flags} ${_compiler_flags}) + + # This gets any specific definitions that were added with set-target-property + get_target_property(_target_defs ${_target_name} COMPILE_DEFINITIONS) + if (_target_defs) + foreach(item ${_target_defs}) + list(APPEND ${_out_compile_flags} -D${item}) + endforeach() + endif() +endmacro() + +macro(add_pch _target_name _header_filename _src_list) + get_filename_component(FILE ${_header_filename} NAME) + set(_gch_filename "${_target_name}_${FILE}.gch") + list(APPEND ${_src_list} ${_gch_filename}) + _PCH_GET_COMPILE_FLAGS(${_target_name} _args ${_header_filename}) + file(REMOVE ${_gch_filename}) + add_custom_command( + OUTPUT ${_gch_filename} + COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1} ${_args} + DEPENDS ${_header_filename}) +endmacro() + +macro(add_linkerflag MODULE _flag) + set(NEW_LINKER_FLAGS ${_flag}) + get_target_property(LINKER_FLAGS ${MODULE} LINK_FLAGS) + if(LINKER_FLAGS) + set(NEW_LINKER_FLAGS "${LINKER_FLAGS} ${NEW_LINKER_FLAGS}") + endif() + set_target_properties(${MODULE} PROPERTIES LINK_FLAGS ${NEW_LINKER_FLAGS}) +endmacro() + +# Optional 3rd parameter: stdcall stack bytes +macro(set_entrypoint MODULE ENTRYPOINT) + if(${ENTRYPOINT} STREQUAL "0") + add_linkerflag(${MODULE} "-Wl,-entry,0") + elseif(ARCH MATCHES i386) + set(_entrysymbol _${ENTRYPOINT}) + if (${ARGC} GREATER 2) + set(_entrysymbol ${_entrysymbol}@${ARGV2}) + endif() + add_linkerflag(${MODULE} "-Wl,-entry,${_entrysymbol}") + else() + add_linkerflag(${MODULE} "-Wl,-entry,${ENTRYPOINT}") + endif() +endmacro() + +macro(set_subsystem MODULE SUBSYSTEM) + add_linkerflag(${MODULE} "-Wl,--subsystem,${SUBSYSTEM}") +endmacro() + +macro(set_image_base MODULE IMAGE_BASE) + add_linkerflag(${MODULE} "-Wl,--image-base,${IMAGE_BASE}") +endmacro() + +macro(set_module_type MODULE TYPE) + + add_dependencies(${MODULE} psdk) + if(${IS_CPP}) + target_link_libraries(${MODULE} stlport -lsupc++ -lgcc) + endif() + + if(${TYPE} MATCHES nativecui) + set_subsystem(${MODULE} native) + set_entrypoint(${MODULE} NtProcessStartup 4) + elseif(${TYPE} MATCHES win32gui) + set_subsystem(${MODULE} windows) + set_entrypoint(${MODULE} WinMainCRTStartup) + if(NOT IS_UNICODE) + target_link_libraries(${MODULE} mingw_main) + else() + target_link_libraries(${MODULE} mingw_wmain) + endif(NOT IS_UNICODE) + target_link_libraries(${MODULE} mingw_common) + elseif(${TYPE} MATCHES win32cui) + set_subsystem(${MODULE} console) + set_entrypoint(${MODULE} mainCRTStartup) + if(NOT IS_UNICODE) + target_link_libraries(${MODULE} mingw_main) + else() + target_link_libraries(${MODULE} mingw_wmain) + endif(NOT IS_UNICODE) + target_link_libraries(${MODULE} mingw_common) + elseif(${TYPE} MATCHES win32dll) + set_entrypoint(${MODULE} DllMain 12) + target_link_libraries(${MODULE} mingw_dllmain mingw_common) + if(DEFINED baseaddress_${MODULE}) + set_image_base(${MODULE} ${baseaddress_${MODULE}}) + else() + message(STATUS "${MODULE} has no base address") + endif() + elseif(${TYPE} MATCHES win32ocx) + set_entrypoint(${MODULE} DllMain 12) + target_link_libraries(${MODULE} mingw_dllmain mingw_common) + set_target_properties(${MODULE} PROPERTIES SUFFIX ".ocx") + elseif(${TYPE} MATCHES cpl) + set_entrypoint(${MODULE} DllMain 12) + target_link_libraries(${MODULE} mingw_dllmain mingw_common) + set_target_properties(${MODULE} PROPERTIES SUFFIX ".cpl") + elseif(${TYPE} MATCHES kernelmodedriver) + set_target_properties(${MODULE} PROPERTIES LINK_FLAGS "-Wl,--exclude-all-symbols -Wl,-file-alignment=0x1000 -Wl,-section-alignment=0x1000" SUFFIX ".sys") + set_entrypoint(${MODULE} DriverEntry 8) + set_subsystem(${MODULE} native) + set_image_base(${MODULE} 0x00010000) + add_dependencies(${MODULE} bugcodes) + elseif(${TYPE} MATCHES nativedll) + set_subsystem(${MODULE} native) + else() + message(FATAL_ERROR "Unknown module type : ${TYPE}") + endif() +endmacro() + +macro(set_unicode) + add_definitions(-DUNICODE -D_UNICODE) + set(IS_UNICODE 1) +endmacro() + +# Workaround lack of mingw RC support in cmake +macro(set_rc_compiler) + get_directory_property(defines COMPILE_DEFINITIONS) + get_directory_property(includes INCLUDE_DIRECTORIES) + + foreach(arg ${defines}) + set(rc_result_defs "${rc_result_defs} -D${arg}") + endforeach() + + foreach(arg ${includes}) + set(rc_result_incs "-I${arg} ${rc_result_incs}") + endforeach() + + #set(CMAKE_RC_COMPILE_OBJECT " ${rc_result_defs} ${rc_result_incs} -i -O coff -o ") + set(CMAKE_RC_COMPILE_OBJECT + " -DRC_INVOKED -D__WIN32__=1 -D__FLAT__=1 ${rc_result_defs} -I${CMAKE_CURRENT_SOURCE_DIR} ${rc_result_incs} -xc -E -o " + "${WRC} -I${CMAKE_CURRENT_SOURCE_DIR} -i -o " + " -i -J res -O coff -o ") +endmacro() + +#idl files support +set(IDL_COMPILER native-widl) + +if(ARCH MATCHES i386) + set(IDL_FLAGS -m32 --win32) +elseif(ARCH MATCHES amd64) + set(IDL_FLAGS -m64 --win64) +endif() + +set(IDL_HEADER_ARG -h -o) #.h +set(IDL_TYPELIB_ARG -t -o) #.tlb +set(IDL_SERVER_ARG -s -S) #.c for server library +set(IDL_CLIENT_ARG -c -C) #.c for stub client library +set(IDL_PROXY_ARG -p -P) +set(IDL_INTERFACE_ARG -u -o) +set(IDL_DLLDATA_ARG --dlldata-only -o) + + +macro(add_importlibs MODULE) + add_dependency_node(${MODULE}) + foreach(LIB ${ARGN}) + target_link_libraries(${MODULE} ${CMAKE_BINARY_DIR}/importlibs/lib${LIB}.a) + add_dependencies(${MODULE} lib${LIB}) + add_dependency_edge(${MODULE} ${LIB}) + endforeach() +endmacro() + +if(NOT ARCH MATCHES i386) + set(DECO_OPTION "-@") +endif() + +macro(add_importlib_target _exports_file) + + get_filename_component(_name ${_exports_file} NAME_WE) + get_filename_component(_extension ${_exports_file} EXT) + get_target_property(_suffix ${_name} SUFFIX) + if(${_suffix} STREQUAL "_suffix-NOTFOUND") + get_target_property(_type ${_name} TYPE) + if(${_type} MATCHES EXECUTABLE) + set(_suffix ".exe") + else() + set(_suffix ".dll") + endif() + endif() + + if (${_extension} STREQUAL ".spec") + + add_custom_command( + OUTPUT ${CMAKE_BINARY_DIR}/importlibs/lib${_name}.a + COMMAND native-spec2def -n=${_name}${_suffix} -a=${ARCH2} -d=${CMAKE_CURRENT_BINARY_DIR}/${_name}_implib.def ${CMAKE_CURRENT_SOURCE_DIR}/${_exports_file} + COMMAND ${MINGW_PREFIX}dlltool --def ${CMAKE_CURRENT_BINARY_DIR}/${_name}_implib.def --kill-at --output-lib=${CMAKE_BINARY_DIR}/importlibs/lib${_name}.a + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_exports_file}) + + elseif(${_extension} STREQUAL ".def") + message("Use of def files for import libs is deprecated: ${_exports_file}") + add_custom_command( + OUTPUT ${CMAKE_BINARY_DIR}/importlibs/lib${_name}.a + COMMAND ${MINGW_PREFIX}dlltool --def ${CMAKE_CURRENT_SOURCE_DIR}/${_exports_file} --kill-at --output-lib=${CMAKE_BINARY_DIR}/importlibs/lib${_name}.a + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_exports_file}) + else() + message(FATAL_ERROR "Unsupported exports file extension: ${_extension}") + endif() + + add_custom_target( + lib${_name} + DEPENDS ${CMAKE_BINARY_DIR}/importlibs/lib${_name}.a) + +endmacro() + +macro(spec2def _dllname _spec_file) + get_filename_component(_file ${_spec_file} NAME_WE) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_file}.def ${CMAKE_CURRENT_BINARY_DIR}/${_file}_stubs.c + COMMAND native-spec2def -n=${_dllname} --kill-at -a=${ARCH2} -d=${CMAKE_CURRENT_BINARY_DIR}/${_file}.def -s=${CMAKE_CURRENT_BINARY_DIR}/${_file}_stubs.c ${CMAKE_CURRENT_SOURCE_DIR}/${_spec_file} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_spec_file}) + set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${_file}.def + PROPERTIES GENERATED TRUE EXTERNAL_OBJECT TRUE) + set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${_file}_stubs.c PROPERTIES GENERATED TRUE) +endmacro() + +macro(macro_mc FILE) + set(COMMAND_MC ${MINGW_PREFIX}windmc -A -b ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}.mc -r ${REACTOS_BINARY_DIR}/include/reactos -h ${REACTOS_BINARY_DIR}/include/reactos) +endmacro() + +#pseh lib, needed with mingw +set(PSEH_LIB "pseh") diff --git a/reactos/global.lds b/reactos/global.lds new file mode 100644 index 00000000000..d5919bf7c42 --- /dev/null +++ b/reactos/global.lds @@ -0,0 +1,103 @@ +OUTPUT_FORMAT(pei-i386) +SECTIONS +{ + .text __image_base__ + __section_alignment__ : + { + __text_start__ = .; + *(.init) + *(.text) + *(SORT(.text$*)) + *(.glue_7t) + *(.glue_7) + *(.jcr) + ___CTOR_LIST__ = .; __CTOR_LIST__ = . ; + LONG (-1);*(.ctors); *(.ctor); *(SORT(.ctors.*)); LONG (0); + ___DTOR_LIST__ = .; __DTOR_LIST__ = . ; + LONG (-1);*(.dtors); *(.dtor); *(SORT(.dtors.*)); LONG (0); + *(.fini) + *(.gcc_exc) + __text_end__ = .; + *(.gcc_except_table) + } + init BLOCK(__section_alignment__) : + { + __init_start__ = . ; + *(init) + __init_end__ = . ; + } + .data BLOCK(__section_alignment__) : + { + __data_start__ = . ; + *(.data) + *(.data2) + *(SORT(.data$*)) + __data_end__ = . ; + __bss_start__ = . ; + *(.bss) + *(COMMON) + __bss_end__ = . ; + *(SORT(.CRT$*)) + } + .rdata BLOCK(__section_alignment__) : + { + *(.rdata) + *(SORT(.rdata$*)) + *(.eh_frame) + } + .edata BLOCK(__section_alignment__) : { *(.edata) } + .idata BLOCK(__section_alignment__) : + { + /* This cannot currently be handled with grouped sections. + See pe.em:sort_sections. */ + SORT(*)(.idata$2) + SORT(*)(.idata$3) + /* These zeroes mark the end of the import list. */ + LONG (0); LONG (0); LONG (0); LONG (0); LONG (0); + SORT(*)(.idata$4) + SORT(*)(.idata$5) + SORT(*)(.idata$6) + SORT(*)(.idata$7) + } + .tls BLOCK(__section_alignment__) : + { + *(.tls) + *(.tls$) + *(SORT(.tls$*)) + } + /DISCARD/ : + { + *(.debug$S) + *(.debug$T) + *(.debug$F) + *(.drectve) + *(.debug_loc) + *(.debug_ranges) + *(.debug_aranges) + *(.debug_str) + *(.debug_frame) + *(.debug_pubnames) + *(.debug_pubtypes) + *(.gnu.linkonce.wt.*) + } + .rsrc BLOCK(__section_alignment__) : + { + *(.rsrc) + *(SORT(.rsrc$*)) + } + .reloc BLOCK(__section_alignment__) : + { + *(.reloc) + } + .debug_info BLOCK(__section_alignment__) (NOLOAD) : + { + [ .debug_info ] + } + .debug_abbrev BLOCK(__section_alignment__) (NOLOAD) : + { + [ .debug_abbrev ] + } + .debug_line BLOCK(__section_alignment__) (NOLOAD) : + { + [ .debug_line ] + } +} \ No newline at end of file diff --git a/reactos/hal/CMakeLists.txt b/reactos/hal/CMakeLists.txt new file mode 100644 index 00000000000..ed1833876af --- /dev/null +++ b/reactos/hal/CMakeLists.txt @@ -0,0 +1,8 @@ + +if(ARCH MATCHES i386 OR ARCH MATCHES amd64) + add_subdirectory(halx86) +elseif(ARCH MATCHES arm) +# add_subdirectory(halarm) +elseif(ARCH MATCHES powerpc) +# add_subdirectory(halppc) +endif() diff --git a/reactos/hal/hal.spec b/reactos/hal/hal.spec new file mode 100644 index 00000000000..a00171f61ec --- /dev/null +++ b/reactos/hal/hal.spec @@ -0,0 +1,100 @@ +@ fastcall -arch=arm ExAcquireFastMutex(ptr) +@ fastcall -arch=arm ExReleaseFastMutex(ptr) +@ fastcall -arch=i386 ExAcquireFastMutex(ptr) ntoskrnl.ExiAcquireFastMutex +@ fastcall -arch=i386 ExReleaseFastMutex(ptr) ntoskrnl.ExiReleaseFastMutex +@ fastcall -arch=i386 ExTryToAcquireFastMutex(ptr) ntoskrnl.ExiTryToAcquireFastMutex +@ fastcall -arch=arm ExTryToAcquireFastMutex(ptr) +@ fastcall HalClearSoftwareInterrupt(long) +@ fastcall HalRequestSoftwareInterrupt(long) +@ fastcall HalSystemVectorDispatchEntry(long long long) +@ fastcall -arch=i386,arm KeAcquireInStackQueuedSpinLock(ptr ptr) +@ fastcall -arch=i386,arm KeAcquireInStackQueuedSpinLockRaiseToSynch(ptr ptr) +@ fastcall -arch=i386,arm KeAcquireSpinLockRaiseToSynch(ptr) +@ fastcall -arch=i386,arm KeAcquireQueuedSpinLock(ptr) +@ fastcall -arch=i386,arm KeAcquireQueuedSpinLockRaiseToSynch(ptr) +@ fastcall -arch=i386,arm KeReleaseInStackQueuedSpinLock(ptr) +@ fastcall -arch=i386,arm KeReleaseQueuedSpinLock(ptr long) +@ fastcall -arch=i386,arm KeTryToAcquireQueuedSpinLock(long ptr) +@ fastcall -arch=i386,arm KeTryToAcquireQueuedSpinLockRaiseToSynch(long ptr) +@ fastcall -arch=i386,arm KfAcquireSpinLock(ptr) +@ fastcall -arch=i386,arm KfLowerIrql(long) +@ fastcall -arch=i386,arm KfRaiseIrql(long) +@ fastcall -arch=i386,arm KfReleaseSpinLock(ptr long) +@ stdcall HalAcquireDisplayOwnership(ptr) +@ stdcall HalAdjustResourceList(ptr) +@ stdcall HalAllProcessorsStarted() +@ stdcall HalAllocateAdapterChannel(ptr ptr long ptr) +@ stdcall HalAllocateCommonBuffer(ptr long ptr long) +@ stdcall HalAllocateCrashDumpRegisters(ptr ptr) +@ stdcall HalAssignSlotResources(ptr ptr ptr ptr long long long ptr) +@ stdcall HalBeginSystemInterrupt(long long ptr) +@ stdcall HalCalibratePerformanceCounter(ptr long long) +@ stdcall HalDisableSystemInterrupt(long long) +@ stdcall HalDisplayString(str) +@ stdcall HalEnableSystemInterrupt(long long long) +@ stdcall HalEndSystemInterrupt(long long) +@ stdcall HalFlushCommonBuffer(long long long long long) +@ stdcall HalFreeCommonBuffer(ptr long long long ptr long) +@ stdcall HalGetAdapter(ptr ptr) +@ stdcall HalGetBusData(long long long ptr long) +@ stdcall HalGetBusDataByOffset(long long long ptr long long) +@ stdcall HalGetEnvironmentVariable(str long str) +@ fastcall -arch=arm HalGetInterruptSource() +@ stdcall HalGetInterruptVector(long long long long ptr ptr) +@ stdcall -arch=i386 HalHandleNMI(ptr) +@ stdcall HalInitSystem(long ptr) +@ stdcall HalInitializeProcessor(long ptr) +@ stdcall HalMakeBeep(long) +@ stdcall HalProcessorIdle() +@ stdcall HalPutDmaAdapter(ptr) +@ stdcall HalQueryDisplayParameters(ptr ptr ptr ptr) +@ stdcall HalQueryRealTimeClock(ptr) +@ stdcall HalReadDmaCounter(ptr) +@ stdcall HalReportResourceUsage() +@ stdcall HalRequestIpi(long) +@ stdcall HalReturnToFirmware(long) +@ stdcall HalSetBusData(long long long ptr long) +@ stdcall HalSetBusDataByOffset(long long long ptr long long) +@ stdcall HalSetDisplayParameters(long long) +@ stdcall HalSetEnvironmentVariable(str str) +@ stdcall HalSetProfileInterval(long) +@ stdcall HalSetRealTimeClock(ptr) +@ stdcall HalSetTimeIncrement(long) +@ stdcall HalStartNextProcessor(ptr ptr) +@ stdcall HalStartProfileInterrupt(long) +@ stdcall HalStopProfileInterrupt(long) +@ fastcall -arch=arm HalSweepIcache() +@ fastcall -arch=arm HalSweepDcache() +@ stdcall HalTranslateBusAddress(long long long long ptr ptr) +@ stdcall IoFlushAdapterBuffers(ptr ptr ptr ptr long long) +@ stdcall IoFreeAdapterChannel(ptr) +@ stdcall IoFreeMapRegisters(ptr ptr long) +@ stdcall IoMapTransfer(ptr ptr ptr ptr ptr long) +@ stdcall -arch=i386,x86_64 IoAssignDriveLetters(ptr str ptr ptr) HalpAssignDriveLetters +@ stdcall -arch=i386,x86_64 IoReadPartitionTable(ptr long long ptr) HalpReadPartitionTable +@ stdcall -arch=i386,x86_64 IoSetPartitionInformation(ptr long long long) HalpSetPartitionInformation +@ stdcall -arch=i386,x86_64 IoWritePartitionTable(ptr long long long ptr) HalpWritePartitionTable +@ stdcall -arch=i386,arm KeAcquireSpinLock(ptr ptr) +@ extern KdComPortInUse +@ stdcall KeFlushWriteBuffer() +@ stdcall -arch=i386,arm KeGetCurrentIrql() +@ stdcall -arch=i386,arm KeLowerIrql(long) +@ stdcall KeQueryPerformanceCounter(ptr) +@ stdcall -arch=i386,arm KeRaiseIrql(long ptr) +@ stdcall -arch=i386,arm KeRaiseIrqlToDpcLevel() +@ stdcall -arch=i386,arm KeRaiseIrqlToSynchLevel() +@ stdcall -arch=i386,arm KeReleaseSpinLock(ptr long) +@ stdcall KeStallExecutionProcessor(long) +@ stdcall -arch=i386,arm READ_PORT_BUFFER_UCHAR(ptr ptr long) +@ stdcall -arch=i386,arm READ_PORT_BUFFER_ULONG(ptr ptr long) +@ stdcall -arch=i386,arm READ_PORT_BUFFER_USHORT(ptr ptr long) +@ stdcall -arch=i386,arm READ_PORT_UCHAR(ptr) +@ stdcall -arch=i386,arm READ_PORT_ULONG(ptr) +@ stdcall -arch=i386,arm READ_PORT_USHORT(ptr) +@ stdcall -arch=i386,arm WRITE_PORT_BUFFER_UCHAR(ptr ptr long) +@ stdcall -arch=i386,arm WRITE_PORT_BUFFER_ULONG(ptr ptr long) +@ stdcall -arch=i386,arm WRITE_PORT_BUFFER_USHORT(ptr ptr long) +@ stdcall -arch=i386,arm WRITE_PORT_UCHAR(ptr long) +@ stdcall -arch=i386,arm WRITE_PORT_ULONG(ptr long) +@ stdcall -arch=i386,arm WRITE_PORT_USHORT(ptr long) +@ stdcall -arch=x86_64 HalInitializeBios(long ptr) diff --git a/reactos/hal/halx86/CMakeLists.txt b/reactos/hal/halx86/CMakeLists.txt new file mode 100644 index 00000000000..ebada96c389 --- /dev/null +++ b/reactos/hal/halx86/CMakeLists.txt @@ -0,0 +1,115 @@ + +add_definitions( + -D_NTHALDLL_ + -D_NTHAL_) + +include_directories( + include + ${REACTOS_SOURCE_DIR}/ntoskrnl/include) + +list(APPEND HAL_GENERIC_SOURCE + generic/beep.c + generic/cmos.c + generic/display.c + generic/dma.c + generic/drive.c + generic/memory.c + generic/misc.c + generic/profil.c + generic/reboot.c + generic/sysinfo.c + generic/timer.c + generic/usage.c) + +if(ARCH MATCHES i386) + list(APPEND HAL_GENERIC_SOURCE + generic/bios.c + generic/halinit.c + generic/i386/portio.c + generic/i386/systimer.S + generic/i386/trap.S) +endif() + +list(APPEND HAL_GENERIC_PCAT_SOURCE + generic/legacy/bus/bushndlr.c + generic/legacy/bus/cmosbus.c + generic/legacy/bus/isabus.c + generic/legacy/bus/pcibus.c + generic/legacy/bus/pcidata.c + generic/legacy/bus/sysbus.c + generic/legacy/bussupp.c + generic/legacy/halpcat.c) + +list(APPEND HAL_GENERIC_ACPI_SOURCE + generic/acpi/halacpi.c + generic/acpi/halpnpdd.c + generic/acpi/busemul.c + generic/legacy/bus/pcibus.c) + +if(ARCH MATCHES i386) + + list(APPEND HAL_GENERIC_UP_SOURCE + generic/spinlock.c + up/pic.c + up/processor.c) + + list(APPEND MINI_HAL_SOURCE + generic/i386/portio.c + generic/i386/systimer.S + generic/legacy/bus/bushndlr.c + generic/legacy/bus/cmosbus.c + generic/legacy/bus/isabus.c + generic/legacy/bus/pcibus.c + generic/legacy/bus/sysbus.c + generic/legacy/bussupp.c + generic/beep.c + generic/bios.c + generic/cmos.c + generic/dma.c + generic/display.c + generic/drive.c + generic/misc.c + generic/profil.c + generic/reboot.c + generic/spinlock.c + generic/sysinfo.c + generic/timer.c + generic/usage.c + up/halinit_up.c + up/pic.c + up/processor.c) + + spec2def(hal.dll ../hal.spec) + + list(APPEND HAL_SOURCE + ${CMAKE_CURRENT_BINARY_DIR}/hal_hal.h.gch + ${HAL_GENERIC_SOURCE} + ${HAL_GENERIC_PCAT_SOURCE} + ${HAL_GENERIC_UP_SOURCE} + up/halinit_up.c + up/halup.rc + ${CMAKE_CURRENT_BINARY_DIR}/hal.def) + + # hal + add_library(hal SHARED ${HAL_SOURCE}) + add_pch(hal ${CMAKE_CURRENT_SOURCE_DIR}/include/hal.h ${HAL_SOURCE}) + add_dependencies(hal psdk bugcodes) + + set_entrypoint(hal HalInitSystem@8) + set_subsystem(hal native) + set_image_base(hal 0x00010000) + add_importlibs(hal ntoskrnl) + target_link_libraries(hal libcntpr) + + add_cd_file(TARGET hal DESTINATION reactos/system32 NO_CAB FOR all) + + # mini_hal + add_library(mini_hal ${MINI_HAL_SOURCE}) + set_property(TARGET mini_hal PROPERTY COMPILE_DEFINITIONS "_BLDR_;_MINIHAL_") + add_dependencies(mini_hal psdk bugcodes asm) + +elseif(ARCH MATCHES amd64) +#TBD +endif() + +add_importlib_target(../hal.spec) diff --git a/reactos/importlibs/.gitignore b/reactos/importlibs/.gitignore new file mode 100644 index 00000000000..e69de29bb2d diff --git a/reactos/include/asm/CMakeLists.txt b/reactos/include/asm/CMakeLists.txt new file mode 100644 index 00000000000..32f70eb9393 --- /dev/null +++ b/reactos/include/asm/CMakeLists.txt @@ -0,0 +1,25 @@ + +add_library(genincdata SHARED genincdata.c) + +set_entrypoint(genincdata 0) +add_dependencies(genincdata bugcodes) + +if(MSVC) + set(OPT_MS "-ms") +else() + set(OPT_MS "") +endif() + +if(ARCH MATCHES i386) + set(_filename ks386) +elseif(ARCH MATCHES amd64) + set(_filename ksamd64) +endif() + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_filename}.inc + COMMAND native-geninc ${CMAKE_CURRENT_BINARY_DIR}/genincdata.dll ${CMAKE_CURRENT_BINARY_DIR}/${_filename}.inc ${OPT_MS} + DEPENDS genincdata) + +add_custom_target(asm + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${_filename}.inc) diff --git a/reactos/include/asm/asm.inc b/reactos/include/asm/asm.inc new file mode 100644 index 00000000000..be640020053 --- /dev/null +++ b/reactos/include/asm/asm.inc @@ -0,0 +1,289 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS Kernel + * FILE: ntoskrnl/include/amd64/asmmacro.S + * PURPOSE: ASM macros for for GAS and MASM/ML64 + * PROGRAMMERS: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +#ifdef _USE_ML + +/* Allow ".name" identifiers */ +OPTION DOTNAME + +#ifdef _M_IX86 +.686P +.XMM +.MODEL FLAT +ASSUME CS:NOTHING, DS:NOTHING, ES:NOTHING, FS:NOTHING, GS:NOTHING +#endif + +/* Hex numbers need to be in 01ABh format */ +#define HEX(x) 0##x##h + +/* Macro values need to be marked */ +#define VAL(x) x + +/* MASM/ML doesn't want explicit [rip] addressing */ +rip = 0 + +/* Due to MASM's reverse syntax, we are forced to use a precompiler macro */ +#define MACRO(name, ...) name MACRO __VA_ARGS__ + +/* To avoid reverse syntax we provide a new macro .PROC, replacing PROC... */ +.PROC MACRO name + name PROC FRAME + _name: +ENDM + +/* ... and .ENDP, replacing ENDP */ +.ENDP MACRO name + name ENDP +ENDM + +/* MASM doesn't have an ASCII macro */ +.ASCII MACRO text + DB text +ENDM + +/* MASM doesn't have an ASCIZ macro */ +.ASCIZ MACRO text + DB text, 0 +ENDM + +#define lgdt lgdt fword ptr ds: + +#define lidt lidt fword ptr ds: + +ljmp MACRO segment, offset + DB 0 +ENDM + +.code64 MACRO + .code +ENDM + +.code32 MACRO + .code + .586P +ENDM + +.code16 MACRO + ASSUME nothing + .text16 SEGMENT use16 +ENDM + +.endcode16 MACRO + .text16 ENDS +ENDM + +.bss MACRO + .DATA? + ASSUME nothing +ENDM + +//.text MACRO +//ENDM + +.align MACRO alignment + ALIGN alignment +ENDM + +.byte MACRO args:VARARG + db args +ENDM + +.short MACRO args:VARARG + dw args +ENDM + +.word MACRO args:VARARG + dw args +ENDM + +.long MACRO args:VARARG + dd args +ENDM + +.double MACRO args:VARARG + dq args +ENDM + +.org MACRO value + ORG value +ENDM + +.fill MACRO count, size, value + REPEAT count + if (size == 1) + DB value + elseif (size == 2) + DW value + elseif (size == 4) + DD value + else + endif + ENDM +ENDM + +.space MACRO count + DB 0 DUP (count) +ENDM + +ljmp MACRO segment, offset + DB 0EAh + DD offset + DW segment +ENDM + +ljmp16 MACRO segment, offset + DB 0EAh + DW offset + DW segment +ENDM + +UNIMPLEMENTED MACRO name +ENDM + +/* We need this to distinguish repeat from macros */ +#define ENDR ENDM + +#else /***********************************************************************/ + +/* Force intel syntax */ +.intel_syntax noprefix + +.altmacro + +/* Hex numbers need to be in 0x1AB format */ +#define HEX(y) 0x##y + +/* Macro values need to be marked */ +#define VAL(x) \x + +/* Due to MASM's reverse syntax, we are forced to use a precompiler macro */ +#define MACRO(...) .macro __VA_ARGS__ +#define ENDM .endm + +/* To avoid reverse syntax we provide a new macro .PROC, replacing PROC... */ +.macro .PROC name + .func \name + \name: + .cfi_startproc + .equ cfa_current_offset, -8 +.endm + +/* ... and .ENDP, replacing ENDP */ +.macro .ENDP name + .cfi_endproc + .endfunc +.endm + +/* MASM compatible PUBLIC */ +.macro PUBLIC symbol + .global \symbol +.endm + +/* Dummy ASSUME */ +.macro ASSUME p1 p2 p3 p4 p5 p6 p7 p8 +.endm + +/* MASM needs an end tag for segments */ +.macro .endcode16 +.endm + +/* MASM compatible ALIGN */ +#define ALIGN .align + +/* MASM compatible REPEAT, additional ENDR */ +#define REPEAT .rept +#define ENDR .endr + +.macro ljmp segment, offset + jmp far ptr \segment:\offset +.endm + +.macro ljmp16 segment, offset + jmp far ptr \segment:\offset +.endm + +/* MASM compatible EXTERN */ +.macro EXTERN name +.endm + +/* MASM needs an END tag */ +#define END + +.macro .MODEL model +.endm + +.macro .code + .text +.endm + +/* Macros for x64 stack unwind OPs */ + +.macro .allocstack size + .cfi_adjust_cfa_offset \size + .set cfa_current_offset, cfa_current_offset - \size +.endm + +code = 1 +.macro .pushframe param=0 + .if (\param) + .cfi_adjust_cfa_offset 0x30 + .set cfa_current_offset, cfa_current_offset - 0x30 + .else + .cfi_adjust_cfa_offset 0x28 + .set cfa_current_offset, cfa_current_offset - 0x28 + .endif +.endm + +.macro .pushreg reg + .cfi_adjust_cfa_offset 8 + .equ cfa_current_offset, cfa_current_offset - 8 + .cfi_offset \reg, cfa_current_offset +.endm + +.macro .savereg reg, offset + // checkme!!! + .cfi_offset \reg, \offset +.endm + +.macro .savexmm128 reg, offset + // checkme!!! + .cfi_offset \reg, \offset +.endm + +.macro .setframe reg, offset + .cfi_def_cfa reg, \offset + .equ cfa_current_offset, \offset +.endm + +.macro .endprolog +.endm + +.macro UNIMPLEMENTED2 file, line, func + + jmp 3f +1: .asciz "\func" +2: .asciz \file +3: + sub rsp, 0x20 + lea rcx, MsgUnimplemented[rip] + lea rdx, 1b[rip] + lea r8, 2b[rip] + mov r9, \line + call DbgPrint + add rsp, 0x20 +.endm +#define UNIMPLEMENTED UNIMPLEMENTED2 __FILE__, __LINE__, + +/* MASM/ML uses ".if" for runtime conditionals, and "if" for compile time + conditionals. We therefore use "if", too. .if shouldn't be used at all */ +#define if .if +#define endif .endif +#define else .else +#define elseif .elseif + +#endif diff --git a/reactos/include/asm/genincdata.c b/reactos/include/asm/genincdata.c new file mode 100644 index 00000000000..48577f1939b --- /dev/null +++ b/reactos/include/asm/genincdata.c @@ -0,0 +1,81 @@ +#undef __MSVCRT__ +#include + +/* DDK/IFS/NDK Headers */ +#include +#include +#include +#include +#include +#include +#include + +/* KD Support */ +#define NOEXTAPI +#include +#include +#include + +// FIXME: where to put this? +typedef struct _FIBER /* Field offsets: */ +{ /* 32 bit 64 bit */ + /* this must be the first field */ + PVOID Parameter; /* 0x00 0x00 */ + struct _EXCEPTION_REGISTRATION_RECORD * ExceptionList; /* 0x04 0x08 */ + PVOID StackBase; /* 0x08 0x10 */ + PVOID StackLimit; /* 0x0C 0x18 */ + PVOID DeallocationStack; /* 0x10 0x20 */ + CONTEXT Context; /* 0x14 0x28 */ + ULONG GuaranteedStackBytes; /* 0x2E0 */ + PVOID FlsData; /* 0x2E4 */ + PVOID ActivationContextStack; /* 0x2E8 */ +} FIBER, *PFIBER; + +typedef struct +{ + char Type; + char Name[55]; + ULONGLONG Value; +} ASMGENDATA; + +#define TYPE_END 0 +#define TYPE_RAW 1 +#define TYPE_CONSTANT 2 +#define TYPE_HEADER 3 + +#define RAW(x) {TYPE_RAW, x, 0} +#define CONSTANT(name) {TYPE_CONSTANT, #name, (ULONG)name} +#define CONSTANT64(name) {TYPE_CONSTANT, #name, (ULONGLONG)name} +#define CONSTANTPTR(name) {TYPE_CONSTANT, #name, (ULONG_PTR)name} +#define CONSTANTX(name, value) {TYPE_CONSTANT, #name, value} +#define OFFSET(name, struct, member) {TYPE_CONSTANT, #name, FIELD_OFFSET(struct, member)} +#define RELOFFSET(name, struct, member, to) {TYPE_CONSTANT, #name, FIELD_OFFSET(struct, member) - FIELD_OFFSET(struct, to)} +#define SIZE(name, struct) {TYPE_CONSTANT, #name, sizeof(struct)} +#define HEADER(x) {TYPE_HEADER, x, 0} + +#if defined(_MSC_VER) +#pragma section(".asmdef") +__declspec(allocate(".asmdef")) +#elif defined(__GNUC__) +__attribute__ ((section(".asmdef"))) +#else +#error Your compiler is not supported. +#endif + +ASMGENDATA Table[] = +{ + +/* PORTABLE CONSTANTS ********************************************************/ +#include "ksx.template.h" + +/* ARCHITECTURE SPECIFIC CONTSTANTS ******************************************/ +#ifdef _M_IX86 +#include "ks386.template.h" +#elif defined(_M_AMD64) +#include "ksamd64.template.h" +#endif + + /* End of list */ + {TYPE_END, "", 0} +}; + diff --git a/reactos/include/asm/ks386.template.h b/reactos/include/asm/ks386.template.h new file mode 100644 index 00000000000..956305739d7 --- /dev/null +++ b/reactos/include/asm/ks386.template.h @@ -0,0 +1,468 @@ + +HEADER("CR0 flags"), +CONSTANT(CR0_PE), +CONSTANT(CR0_MP), +CONSTANT(CR0_EM), +CONSTANT(CR0_TS), +CONSTANT(CR0_ET), +CONSTANT(CR0_NE), +CONSTANT(CR0_WP), +CONSTANT(CR0_AM), +CONSTANT(CR0_NW), +CONSTANT(CR0_CD), +CONSTANT(CR0_PG), + +HEADER("CR4 flags"), +CONSTANT(CR4_VME), +CONSTANT(CR4_PVI), +CONSTANT(CR4_TSD), +CONSTANT(CR4_DE), +CONSTANT(CR4_PSE), +CONSTANT(CR4_PAE), +CONSTANT(CR4_MCE), +CONSTANT(CR4_PGE), +CONSTANT(CR4_FXSR), +CONSTANT(CR4_XMMEXCPT), +//CONSTANT(CR4_PGE_V), +//CONSTANT(CR4_XSAVE), + +HEADER("KeFeatureBits flags"), +CONSTANT(KF_RDTSC), +CONSTANT(KF_CR4), +CONSTANT(KF_GLOBAL_PAGE), +CONSTANT(KF_LARGE_PAGE), +CONSTANT(KF_CMPXCHG8B), +CONSTANT(KF_FAST_SYSCALL), +CONSTANT(KF_V86_VIS), +//CONSTANT(KF_XSTATE), + +HEADER("Machine type definitions"), +CONSTANT(MACHINE_TYPE_ISA), +CONSTANT(MACHINE_TYPE_EISA), +CONSTANT(MACHINE_TYPE_MCA), + +HEADER("EFLAGS"), +CONSTANT(EFLAGS_TF), +CONSTANT(EFLAGS_INTERRUPT_MASK), +CONSTANT(EFLAGS_V86_MASK), +CONSTANT(EFLAGS_ALIGN_CHECK), +CONSTANT(EFLAGS_VIF), +CONSTANT(EFLAGS_VIP), +CONSTANT(EFLAGS_USER_SANITIZE), + +HEADER("KDGT selectors"), +CONSTANT(KGDT_R3_DATA), +CONSTANT(KGDT_R3_CODE), +CONSTANT(KGDT_R0_CODE), +CONSTANT(KGDT_R0_DATA), +CONSTANT(KGDT_R0_PCR), +//CONSTANT(KGDT_STACK16), +//CONSTANT(KGDT_CODE16), +CONSTANT(KGDT_TSS), +CONSTANT(KGDT_R3_TEB), +CONSTANT(KGDT_DF_TSS), +CONSTANT(KGDT_NMI_TSS), +CONSTANT(KGDT_LDT), + +CONSTANT(NPX_STATE_NOT_LOADED), +CONSTANT(NPX_STATE_LOADED), +//CONSTANT(NPX_MASK_LAZY), + +/* +HEADER("VDM constants"), +CONSTANT(VDM_INDEX_Invalid), +CONSTANT(VDM_INDEX_0F), +CONSTANT(VDM_INDEX_ESPrefix), +CONSTANT(VDM_INDEX_CSPrefix), +CONSTANT(VDM_INDEX_SSPrefix), +CONSTANT(VDM_INDEX_DSPrefix), +CONSTANT(VDM_INDEX_FSPrefix), +CONSTANT(VDM_INDEX_GSPrefix), +CONSTANT(VDM_INDEX_OPER32Prefix), +CONSTANT(VDM_INDEX_ADDR32Prefix), +CONSTANT(VDM_INDEX_INSB), +CONSTANT(VDM_INDEX_INSW), +CONSTANT(VDM_INDEX_OUTSB), +CONSTANT(VDM_INDEX_OUTSW), +CONSTANT(VDM_INDEX_PUSHF), +CONSTANT(VDM_INDEX_POPF), +CONSTANT(VDM_INDEX_INTnn), +CONSTANT(VDM_INDEX_INTO), +CONSTANT(VDM_INDEX_IRET), +CONSTANT(VDM_INDEX_NPX), +CONSTANT(VDM_INDEX_INBimm), +CONSTANT(VDM_INDEX_INWimm), +CONSTANT(VDM_INDEX_OUTBimm), +CONSTANT(VDM_INDEX_OUTWimm), +CONSTANT(VDM_INDEX_INB), +CONSTANT(VDM_INDEX_INW), +CONSTANT(VDM_INDEX_OUTB), +CONSTANT(VDM_INDEX_OUTW), +CONSTANT(VDM_INDEX_LOCKPrefix), +CONSTANT(VDM_INDEX_REPNEPrefix), +CONSTANT(VDM_INDEX_REPPrefix), +CONSTANT(VDM_INDEX_CLI), +CONSTANT(VDM_INDEX_STI), +CONSTANT(VDM_INDEX_HLT), +CONSTANT(MAX_VDM_INDEX), +*/ +CONSTANT(PF_XMMI_INSTRUCTIONS_AVAILABLE), +CONSTANT(EFLAG_SELECT), +//CONSTANT(IPI_FREEZE), +//CONSTANT(XSAVE_PRESENT), + +HEADER("CONTEXT"), +OFFSET(CsContextFlags, CONTEXT, ContextFlags), +OFFSET(CsDr0, CONTEXT, Dr0), +OFFSET(CsDr1, CONTEXT, Dr1), +OFFSET(CsDr2, CONTEXT, Dr2), +OFFSET(CsDr3, CONTEXT, Dr3), +OFFSET(CsDr6, CONTEXT, Dr6), +OFFSET(CsDr7, CONTEXT, Dr7), +OFFSET(CsFloatSave, CONTEXT, FloatSave), +OFFSET(CsSegGs, CONTEXT, SegGs), +OFFSET(CsSegFs, CONTEXT, SegFs), +OFFSET(CsSegEs, CONTEXT, SegEs), +OFFSET(CsSegDs, CONTEXT, SegDs), +OFFSET(CsEdi, CONTEXT, Edi), +OFFSET(CsEsi, CONTEXT, Esi), +OFFSET(CsEbx, CONTEXT, Ebx), +OFFSET(CsEdx, CONTEXT, Edx), +OFFSET(CsEcx, CONTEXT, Ecx), +OFFSET(CsEax, CONTEXT, Eax), +OFFSET(CsEbp, CONTEXT, Ebp), +OFFSET(CsEip, CONTEXT, Eip), +OFFSET(CsSegCs, CONTEXT, SegCs), +OFFSET(CsEflags, CONTEXT, EFlags), +OFFSET(CsEsp, CONTEXT, Esp), +OFFSET(CsSegSs, CONTEXT, SegSs), +OFFSET(CsExtendedRegisters, CONTEXT, ExtendedRegisters), +SIZE(ContextFrameLength, CONTEXT), +SIZE(CONTEXT_LENGTH, CONTEXT), + +HEADER("KGDTENTRY"), +OFFSET(KgdtBaseLow, KGDTENTRY, BaseLow), +OFFSET(KgdtBaseMid, KGDTENTRY, HighWord.Bytes.BaseMid), +OFFSET(KgdtBaseHi, KGDTENTRY, HighWord.Bytes.BaseHi), +OFFSET(KgdtLimitHi, KGDTENTRY, HighWord.Bytes.Flags2), +OFFSET(KgdtLimitLow, KGDTENTRY, LimitLow), + +HEADER("KTRAP_FRAME"), +OFFSET(TsExceptionList, KTRAP_FRAME, ExceptionList), +OFFSET(TsPreviousPreviousMode, KTRAP_FRAME, PreviousPreviousMode), +OFFSET(TsSegGs, KTRAP_FRAME, SegGs), +OFFSET(TsSegFs, KTRAP_FRAME, SegFs), +OFFSET(TsSegEs, KTRAP_FRAME, SegEs), +OFFSET(TsSegDs, KTRAP_FRAME, SegDs), +OFFSET(TsEdi, KTRAP_FRAME, Edi), +OFFSET(TsEsi, KTRAP_FRAME, Esi), +OFFSET(TsEbp, KTRAP_FRAME, Ebp), +OFFSET(TsEbx, KTRAP_FRAME, Ebx), +OFFSET(TsEdx, KTRAP_FRAME, Edx), +OFFSET(TsEcx, KTRAP_FRAME, Ecx), +OFFSET(TsEax, KTRAP_FRAME, Eax), +OFFSET(TsErrCode, KTRAP_FRAME, ErrCode), +OFFSET(TsEip, KTRAP_FRAME, Eip), +OFFSET(TsSegCs, KTRAP_FRAME, SegCs), +OFFSET(TsEflags, KTRAP_FRAME, EFlags), +OFFSET(TsHardwareEsp, KTRAP_FRAME, HardwareEsp), +OFFSET(TsHardwareSegSs, KTRAP_FRAME, HardwareSegSs), +OFFSET(TsTempSegCs, KTRAP_FRAME, TempSegCs), +//OFFSET(TsLogging, KTRAP_FRAME, Logging), +OFFSET(TsTempEsp, KTRAP_FRAME, TempEsp), +OFFSET(TsDbgEbp, KTRAP_FRAME, DbgEbp), +OFFSET(TsDbgEip, KTRAP_FRAME, DbgEip), +OFFSET(TsDbgArgMark, KTRAP_FRAME, DbgArgMark), +OFFSET(TsDbgArgPointer, KTRAP_FRAME, DbgArgPointer), +OFFSET(TsDr0, KTRAP_FRAME, Dr0), +OFFSET(TsDr1, KTRAP_FRAME, Dr1), +OFFSET(TsDr2, KTRAP_FRAME, Dr2), +OFFSET(TsDr3, KTRAP_FRAME, Dr3), +OFFSET(TsDr6, KTRAP_FRAME, Dr6), +OFFSET(TsDr7, KTRAP_FRAME, Dr7), +OFFSET(TsV86Es, KTRAP_FRAME, V86Es), +OFFSET(TsV86Ds, KTRAP_FRAME, V86Ds), +OFFSET(TsV86Fs, KTRAP_FRAME, V86Fs), +OFFSET(TsV86Gs, KTRAP_FRAME, V86Gs), +SIZE(KTRAP_FRAME_LENGTH, KTRAP_FRAME), +CONSTANT(KTRAP_FRAME_ALIGN), +CONSTANT(FRAME_EDITED), + +HEADER("KTSS"), +OFFSET(TssEsp0, KTSS, Esp0), +OFFSET(TssCR3, KTSS, CR3), +OFFSET(TssEip, KTSS, Eip), +OFFSET(TssEFlags, KTSS, EFlags), +OFFSET(TssEax, KTSS, Eax), +OFFSET(TssEbx, KTSS, Ebx), +OFFSET(TssEcx, KTSS, Ecx), +OFFSET(TssEdx, KTSS, Edx), +OFFSET(TssEsp, KTSS, Esp), +OFFSET(TssEbp, KTSS, Ebp), +OFFSET(TssEsi, KTSS, Esi), +OFFSET(TssEdi, KTSS, Edi), +OFFSET(TssEs, KTSS, Es), +OFFSET(TssCs, KTSS, Cs), +OFFSET(TssSs, KTSS, Ss), +OFFSET(TssDs, KTSS, Ds), +OFFSET(TssFs, KTSS, Fs), +OFFSET(TssGs, KTSS, Gs), +OFFSET(TssLDT, KTSS, LDT), +OFFSET(TssIoMapBase, KTSS, IoMapBase), +OFFSET(TssIoMaps, KTSS, IoMaps), +SIZE(TssLength, KTSS), + +// ReactOS stuff here +HEADER("KPCR"), +OFFSET(KPCR_EXCEPTION_LIST, KPCR, NtTib.ExceptionList), +//KPCR_INITIAL_STACK +//KPCR_STACK_LIMIT +OFFSET(KPCR_PERF_GLOBAL_GROUP_MASK, KIPCR, PerfGlobalGroupMask), +OFFSET(KPCR_CONTEXT_SWITCHES, KPCR, ContextSwitches), +// KPCR_SET_MEMBER_COPY +OFFSET(KPCR_TEB, KIPCR, Used_Self), +OFFSET(KPCR_SELF, KIPCR, Self), +OFFSET(KPCR_PRCB, KPCR, Prcb), +//KPCR_IRQL +//KPCR_IRR +//KPCR_IRR_ACTIVE +//KPCR_IDR +//KPCR_KD_VERSION_BLOCK +OFFSET(KPCR_IDT, KIPCR, IDT), +OFFSET(KPCR_GDT, KIPCR, GDT), +OFFSET(KPCR_TSS, KPCR, TSS), +OFFSET(KPCR_STALL_SCALE_FACTOR, KPCR, StallScaleFactor), +//KPCR_SET_MEMBER +//KPCR_NUMBER +//KPCR_VDM_ALERT +OFFSET(KPCR_PRCB_DATA, KIPCR, PrcbData), +OFFSET(KPCR_CURRENT_THREAD, KIPCR, PrcbData.CurrentThread), +OFFSET(KPCR_PRCB_NEXT_THREAD, KIPCR, PrcbData.NextThread), +//KPCR_PRCB_IDLE_THREAD +//KPCR_PROCESSOR_NUMBER +//KPCR_PRCB_SET_MEMBER +//KPCR_PRCB_CPU_TYPE +//KPCR_PRCB_PRCB_LOCK +//KPCR_NPX_THREAD +//KPCR_DR6 +//KPCR_DR7 +//KPCR_PRCB_INTERRUPT_COUNT 0x644 +//KPCR_PRCB_KERNEL_TIME 0x648 +//KPCR_PRCB_USER_TIME 0x64C +//KPCR_PRCB_DPC_TIME 0x650 +//KPCR_PRCB_DEBUG_DPC_TIME 0x654 +//KPCR_PRCB_INTERRUPT_TIME 0x658 +//KPCR_PRCB_ADJUST_DPC_THRESHOLD 0x65C +//KPCR_PRCB_SKIP_TICK 0x664 +//KPCR_SYSTEM_CALLS 0x6B8 +OFFSET(KPCR_PRCB_DPC_QUEUE_DEPTH, KIPCR, PrcbData.DpcData[0].DpcQueueDepth), +//KPCR_PRCB_DPC_COUNT 0xA50 +OFFSET(KPCR_PRCB_DPC_STACK, KIPCR, PrcbData.DpcStack), +OFFSET(KPCR_PRCB_MAXIMUM_DPC_QUEUE_DEPTH, KIPCR, PrcbData.MaximumDpcQueueDepth), +//KPCR_PRCB_MAXIMUM_DPC_QUEUE_DEPTH 0xA6C +//KPCR_PRCB_DPC_REQUEST_RATE 0xA70 +//KPCR_PRCB_DPC_INTERRUPT_REQUESTED 0xA78 +OFFSET(KPCR_PRCB_DPC_ROUTINE_ACTIVE, KIPCR, PrcbData.DpcRoutineActive), +//KPCR_PRCB_DPC_LAST_COUNT 0xA80 +OFFSET(KPCR_PRCB_TIMER_REQUEST, KIPCR, PrcbData.TimerRequest), +OFFSET(KPCR_PRCB_QUANTUM_END, KIPCR, PrcbData.QuantumEnd), +//KPCR_PRCB_IDLE_SCHEDULE 0xAA3 +OFFSET(KPCR_PRCB_DEFERRED_READY_LIST_HEAD, KIPCR, PrcbData.DeferredReadyListHead), +OFFSET(KPCR_PRCB_POWER_STATE_IDLE_FUNCTION, KIPCR, PrcbData.PowerState.IdleFunction), + +HEADER("KTRAP_FRAME"), +OFFSET(KTRAP_FRAME_DEBUGEBP, KTRAP_FRAME, DbgEbp), +OFFSET(KTRAP_FRAME_DEBUGEIP, KTRAP_FRAME, DbgEip), +//OFFSET(KTRAP_FRAME_DEBUGARGMARK 0x8 +//OFFSET(KTRAP_FRAME_DEBUGPOINTER 0xC +//OFFSET(KTRAP_FRAME_TEMPCS 0x10 +OFFSET(KTRAP_FRAME_TEMPESP, KTRAP_FRAME, TempEsp), +OFFSET(KTRAP_FRAME_DR0, KTRAP_FRAME, Dr0), +OFFSET(KTRAP_FRAME_DR1, KTRAP_FRAME, Dr1), +OFFSET(KTRAP_FRAME_DR2, KTRAP_FRAME, Dr2), +OFFSET(KTRAP_FRAME_DR3, KTRAP_FRAME, Dr3), +OFFSET(KTRAP_FRAME_DR6, KTRAP_FRAME, Dr6), +OFFSET(KTRAP_FRAME_DR7, KTRAP_FRAME, Dr7), +OFFSET(KTRAP_FRAME_GS, KTRAP_FRAME, SegGs), +//OFFSET(KTRAP_FRAME_RESERVED1 0x32 +OFFSET(KTRAP_FRAME_ES, KTRAP_FRAME, SegEs), +//OFFSET(KTRAP_FRAME_RESERVED2 0x36 +OFFSET(KTRAP_FRAME_DS, KTRAP_FRAME, SegDs), +//OFFSET(KTRAP_FRAME_RESERVED3 0x3A +OFFSET(KTRAP_FRAME_EDX, KTRAP_FRAME, Edx), +OFFSET(KTRAP_FRAME_ECX, KTRAP_FRAME, Ecx), +OFFSET(KTRAP_FRAME_EAX, KTRAP_FRAME, Eax), +OFFSET(KTRAP_FRAME_PREVIOUS_MODE, KTRAP_FRAME, PreviousPreviousMode), +OFFSET(KTRAP_FRAME_EXCEPTION_LIST, KTRAP_FRAME, ExceptionList), +OFFSET(KTRAP_FRAME_FS, KTRAP_FRAME, SegFs), +//OFFSET(KTRAP_FRAME_RESERVED4 0x52 +OFFSET(KTRAP_FRAME_EDI, KTRAP_FRAME, Edi), +OFFSET(KTRAP_FRAME_ESI, KTRAP_FRAME, Esi), +OFFSET(KTRAP_FRAME_EBX, KTRAP_FRAME, Ebx), +OFFSET(KTRAP_FRAME_EBP, KTRAP_FRAME, Ebp), +OFFSET(KTRAP_FRAME_ERROR_CODE, KTRAP_FRAME, ErrCode), +OFFSET(KTRAP_FRAME_EIP, KTRAP_FRAME, Eip), +//OFFSET(KTRAP_FRAME_CS 0x6C +OFFSET(KTRAP_FRAME_EFLAGS, KTRAP_FRAME, EFlags), +OFFSET(KTRAP_FRAME_ESP, KTRAP_FRAME, HardwareEsp), +OFFSET(KTRAP_FRAME_SS, KTRAP_FRAME, HardwareSegSs), +//OFFSET(KTRAP_FRAME_RESERVED5 0x7A +OFFSET(KTRAP_FRAME_V86_ES, KTRAP_FRAME, V86Es), +//OFFSET(KTRAP_FRAME_RESERVED6 0x7E +OFFSET(KTRAP_FRAME_V86_DS, KTRAP_FRAME, V86Ds), +//OFFSET(KTRAP_FRAME_RESERVED7 0x82 +OFFSET(KTRAP_FRAME_V86_FS, KTRAP_FRAME, V86Fs), +//OFFSET(KTRAP_FRAME_RESERVED8 0x86 +OFFSET(KTRAP_FRAME_V86_GS, KTRAP_FRAME, V86Gs), +//OFFSET(KTRAP_FRAME_RESERVED9 0x8A +//OFFSET(KTRAP_FRAME_SIZE 0x8C +//OFFSET(KTRAP_FRAME_LENGTH 0x8C +//OFFSET(KTRAP_FRAME_ALIGN 0x04 +SIZE(KTRAP_FRAME_SIZE, KTRAP_FRAME), +CONSTANT(FRAME_EDITED), + +// ok + +HEADER("CONTEXT"), +OFFSET(CONTEXT_FLAGS, CONTEXT, ContextFlags), +//OFFSET(CONTEXT_DR6 0x14 +//OFFSET(CONTEXT_FLOAT_SAVE 0x1C +OFFSET(CONTEXT_SEGGS, CONTEXT, SegGs), +OFFSET(CONTEXT_SEGFS, CONTEXT, SegFs), +OFFSET(CONTEXT_SEGES, CONTEXT, SegEs), +OFFSET(CONTEXT_SEGDS, CONTEXT, SegDs), +OFFSET(CONTEXT_EDI, CONTEXT, Edi), +OFFSET(CONTEXT_ESI, CONTEXT, Esi), +OFFSET(CONTEXT_EBX, CONTEXT, Ebx), +OFFSET(CONTEXT_EDX, CONTEXT, Edx), +OFFSET(CONTEXT_ECX, CONTEXT, Ecx), +OFFSET(CONTEXT_EAX, CONTEXT, Eax), +OFFSET(CONTEXT_EBP, CONTEXT, Ebp), +OFFSET(CONTEXT_EIP, CONTEXT, Eip), +OFFSET(CONTEXT_SEGCS, CONTEXT, SegCs), +OFFSET(CONTEXT_EFLAGS, CONTEXT, EFlags), +OFFSET(CONTEXT_ESP, CONTEXT, Esp), +OFFSET(CONTEXT_SEGSS, CONTEXT, SegSs), +//OFFSET(CONTEXT_FLOAT_SAVE_CONTROL_WORD CONTEXT_FLOAT_SAVE + FP_CONTROL_WORD +//OFFSET(CONTEXT_FLOAT_SAVE_STATUS_WORD CONTEXT_FLOAT_SAVE + FP_STATUS_WORD +//OFFSET(CONTEXT_FLOAT_SAVE_TAG_WORD CONTEXT_FLOAT_SAVE + FP_TAG_WORD +//OFFSET(CONTEXT_FRAME_LENGTH 0x2D0 +SIZE(CONTEXT_FRAME_LENGTH, CONTEXT), + +HEADER("FIBER"), +OFFSET(FIBER_PARAMETER, FIBER, Parameter), +OFFSET(FIBER_EXCEPTION_LIST, FIBER, ExceptionList), +OFFSET(FIBER_STACK_BASE, FIBER, StackBase), +OFFSET(FIBER_STACK_LIMIT, FIBER, StackLimit), +OFFSET(FIBER_DEALLOCATION_STACK, FIBER, DeallocationStack), +OFFSET(FIBER_CONTEXT, FIBER, Context), +OFFSET(FIBER_CONTEXT_FLAGS, FIBER, Context.ContextFlags), +OFFSET(FIBER_CONTEXT_EAX, FIBER, Context.Eax), +OFFSET(FIBER_CONTEXT_EBX, FIBER, Context.Ebx), +OFFSET(FIBER_CONTEXT_ECX, FIBER, Context.Ecx), +OFFSET(FIBER_CONTEXT_EDX, FIBER, Context.Edx), +OFFSET(FIBER_CONTEXT_ESI, FIBER, Context.Esi), +OFFSET(FIBER_CONTEXT_EDI, FIBER, Context.Edi), +OFFSET(FIBER_CONTEXT_EBP, FIBER, Context.Ebp), +OFFSET(FIBER_CONTEXT_EIP, FIBER, Context.Eip), +OFFSET(FIBER_CONTEXT_ESP, FIBER, Context.Esp), +OFFSET(FIBER_CONTEXT_DR6, FIBER, Context.Dr6), +OFFSET(FIBER_CONTEXT_FLOAT_SAVE_CONTROL_WORD, FIBER, Context.FloatSave.ControlWord), +OFFSET(FIBER_CONTEXT_FLOAT_SAVE_STATUS_WORD, FIBER, Context.FloatSave.StatusWord), +OFFSET(FIBER_CONTEXT_FLOAT_SAVE_TAG_WORD, FIBER, Context.FloatSave.TagWord), +OFFSET(FIBER_GUARANTEED_STACK_BYTES, FIBER, GuaranteedStackBytes), +OFFSET(FIBER_FLS_DATA, FIBER, FlsData), +OFFSET(FIBER_ACTIVATION_CONTEXT_STACK, FIBER, ActivationContextStack), + +HEADER("KTSS"), +OFFSET(KTSS_IOMAPBASE, KTSS, IoMapBase), +OFFSET(KTSS_ESP0, KTSS, Esp0), + +HEADER("EXCEPTION_RECORD"), +OFFSET(EXCEPTION_RECORD_EXCEPTION_CODE, EXCEPTION_RECORD, ExceptionCode), +OFFSET(EXCEPTION_RECORD_EXCEPTION_FLAGS, EXCEPTION_RECORD, ExceptionFlags), +OFFSET(EXCEPTION_RECORD_EXCEPTION_RECORD, EXCEPTION_RECORD, ExceptionRecord), +OFFSET(EXCEPTION_RECORD_EXCEPTION_ADDRESS, EXCEPTION_RECORD, ExceptionAddress), +OFFSET(EXCEPTION_RECORD_NUMBER_PARAMETERS, EXCEPTION_RECORD, NumberParameters), +OFFSET(EXCEPTION_RECORD_EXCEPTION_ADDRESS, EXCEPTION_RECORD, ExceptionAddress), +SIZE(SIZEOF_EXCEPTION_RECORD, EXCEPTION_RECORD), +CONSTANT(EXCEPTION_RECORD_LENGTH), + +//#define EXCEPTION_RECORD_LENGTH 0x50 + +HEADER("KTHREAD"), +OFFSET(KTHREAD_DEBUG_ACTIVE, KTHREAD, DispatcherHeader.DebugActive), +OFFSET(KTHREAD_INITIAL_STACK, KTHREAD, InitialStack), +OFFSET(KTHREAD_STACK_LIMIT, KTHREAD, StackLimit), +OFFSET(KTHREAD_TEB, KTHREAD, Teb), +OFFSET(KTHREAD_KERNEL_STACK, KTHREAD, KernelStack), +//OFFSET(KTHREAD_ALERTED 0x5E +OFFSET(KTHREAD_APCSTATE_PROCESS, KTHREAD, ApcState.Process), +//OFFSET(KTHREAD_PENDING_USER_APC 0x28 + 0x16 +OFFSET(KTHREAD_PENDING_KERNEL_APC, KTHREAD, ApcState.KernelApcPending), +OFFSET(KTHREAD_CONTEXT_SWITCHES, KTHREAD, ContextSwitches), +OFFSET(KTHREAD_STATE_, KTHREAD, State), +OFFSET(KTHREAD_NPX_STATE, KTHREAD, NpxState), +OFFSET(KTHREAD_WAIT_IRQL, KTHREAD, WaitIrql), +//OFFSET(KTHREAD_NEXT_PROCESSOR 0x40 +OFFSET(KTHREAD_WAIT_REASON, KTHREAD, WaitReason), +//OFFSET(KTHREAD_PRIORITY 0x5B +//OFFSET(KTHREAD_SWAP_BUSY 0x5D +//OFFSET(KTHREAD_SERVICE_TABLE 0x118 +//OFFSET(KTHREAD_PREVIOUS_MODE 0xD7 +OFFSET(KTHREAD_COMBINED_APC_DISABLE, KTHREAD, CombinedApcDisable), +OFFSET(KTHREAD_SPECIAL_APC_DISABLE, KTHREAD, SpecialApcDisable), +OFFSET(KTHREAD_LARGE_STACK, KTHREAD, LargeStack), +OFFSET(KTHREAD_TRAP_FRAME, KTHREAD, TrapFrame), +OFFSET(KTHREAD_CALLBACK_STACK, KTHREAD, CallbackStack), +OFFSET(KTHREAD_APC_STATE_INDEX, KTHREAD, ApcStateIndex), +OFFSET(KTHREAD_STACK_BASE, KTHREAD, StackBase), +//OFFSET(KTHREAD_QUANTUM 0x15D +//OFFSET(KTHREAD_KERNEL_TIME 0x160 +//OFFSET(KTHREAD_USER_TIME 0x18C + +HEADER("KPROCESS"), +OFFSET(KPROCESS_DIRECTORY_TABLE_BASE, KPROCESS, DirectoryTableBase), +OFFSET(KPROCESS_LDT_DESCRIPTOR0, KPROCESS, LdtDescriptor), +OFFSET(KPROCESS_LDT_DESCRIPTOR1, KPROCESS, LdtDescriptor.HighWord), +OFFSET(KPROCESS_INT21_DESCRIPTOR0, KPROCESS, Int21Descriptor), +OFFSET(KPROCESS_INT21_DESCRIPTOR1, KPROCESS, Int21Descriptor.Access), +OFFSET(KPROCESS_IOPM_OFFSET, KPROCESS, IopmOffset), +//OFFSET(KPROCESS_ACTIVE_PROCESSORS 0x34 +//OFFSET(EPROCESS_VDM_OBJECTS 0x144 + +HEADER("Teb"), +OFFSET(TEB_EXCEPTION_LIST, TEB, NtTib.ExceptionList), +OFFSET(TEB_STACK_LIMIT, TEB, NtTib.StackLimit), +OFFSET(TEB_STACK_BASE, TEB, NtTib.StackBase), +OFFSET(TEB_SELF, TEB, NtTib.Self), +OFFSET(TEB_FIBER_DATA, TEB, NtTib.FiberData), +OFFSET(TEB_PEB, TEB, ProcessEnvironmentBlock), +OFFSET(TEB_EXCEPTION_CODE, TEB, ExceptionCode), +OFFSET(PEB_KERNEL_CALLBACK_TABLE, PEB, KernelCallbackTable), +OFFSET(TEB_FLS_DATA, TEB, FlsData), +OFFSET(TEB_ACTIVATION_CONTEXT_STACK_POINTER, TEB, ActivationContextStackPointer), +OFFSET(TEB_GUARANTEED_STACK_BYTES, TEB, GuaranteedStackBytes), +OFFSET(TEB_DEALLOCATION_STACK, TEB, DeallocationStack), + +HEADER("Misc"), +CONSTANT(NPX_FRAME_LENGTH), +CONSTANT(FN_CR0_NPX_STATE), +CONSTANT(DR7_RESERVED_MASK), +CONSTANT(FP_CONTROL_WORD), +CONSTANT(FP_STATUS_WORD), +CONSTANT(FP_TAG_WORD), +CONSTANT(FP_DATA_SELECTOR), +CONSTANT(CBSTACK_RESULT), +CONSTANT(CBSTACK_RESULT_LENGTH), +CONSTANT(CBSTACK_TRAP_FRAME), +CONSTANT(CBSTACK_CALLBACK_STACK), +SIZE(SIZEOF_FX_SAVE_AREA, FX_SAVE_AREA), +CONSTANT(KUSER_SHARED_SYSCALL), +CONSTANT(EXCEPTION_EXECUTE_HANDLER), +CONSTANT(STATUS_CALLBACK_POP_STACK), +CONSTANT(CONTEXT_ALIGNED_SIZE), +CONSTANT(PROCESSOR_FEATURE_FXSR), + + + diff --git a/reactos/include/asm/ksamd64.template.h b/reactos/include/asm/ksamd64.template.h new file mode 100644 index 00000000000..88b96633f11 --- /dev/null +++ b/reactos/include/asm/ksamd64.template.h @@ -0,0 +1,581 @@ + +HEADER("CR0 flags"), +CONSTANT(CR0_PE), +CONSTANT(CR0_MP), +CONSTANT(CR0_EM), +CONSTANT(CR0_TS), +CONSTANT(CR0_ET), +CONSTANT(CR0_NE), +CONSTANT(CR0_WP), +CONSTANT(CR0_AM), +CONSTANT(CR0_NW), +CONSTANT(CR0_CD), +CONSTANT(CR0_PG), + +HEADER("CR4 flags"), +CONSTANT(CR4_VME), +CONSTANT(CR4_PVI), +CONSTANT(CR4_TSD), +CONSTANT(CR4_DE), +CONSTANT(CR4_PSE), +CONSTANT(CR4_PAE), +CONSTANT(CR4_MCE), +CONSTANT(CR4_PGE), +CONSTANT(CR4_FXSR), +CONSTANT(CR4_XMMEXCPT), +CONSTANT(CR4_CHANNELS), + +HEADER("KeFeatureBits flags"), +CONSTANT(KF_RDTSC), +CONSTANT(KF_CR4), +CONSTANT(KF_GLOBAL_PAGE), +CONSTANT(KF_LARGE_PAGE), +CONSTANT(KF_CMPXCHG8B), +CONSTANT(KF_FAST_SYSCALL), + +HEADER("Machine type definitions"), +CONSTANT(MACHINE_TYPE_ISA), +CONSTANT(MACHINE_TYPE_EISA), +CONSTANT(MACHINE_TYPE_MCA), + +HEADER("EFLAGS"), +CONSTANT(EFLAGS_TF_MASK), +CONSTANT(EFLAGS_TF_SHIFT), +CONSTANT(EFLAGS_IF_MASK), +CONSTANT(EFLAGS_IF_SHIFT), +CONSTANT(EFLAGS_ID_MASK), + +HEADER("Hypervisor Enlightenment Definitions"), +//CONSTANT(HV_MMU_USE_HYPERCALL_FOR_ADDRESS_SWITCH), +//CONSTANT(HV_MMU_USE_HYPERCALL_FOR_LOCAL_FLUSH), +//CONSTANT(HV_MMU_USE_HYPERCALL_FOR_REMOTE_FLUSH), +//CONSTANT(HV_X64_MSR_APIC_EOI), +//CONSTANT(HV_APIC_ENLIGHTENED), +//CONSTANT(HV_KE_USE_HYPERCALL_FOR_LONG_SPIN_WAIT), +//CONSTANT(HV_VIRTUAL_APIC_NO_EOI_REQUIRED_V), +//CONSTANT(HvApicFlags), + +HEADER("KDGT selectors"), +CONSTANT(KGDT64_NULL), +CONSTANT(KGDT64_R0_CODE), +CONSTANT(KGDT64_R0_DATA), +CONSTANT(KGDT64_R3_CMCODE), +CONSTANT(KGDT64_R3_DATA), +CONSTANT(KGDT64_R3_CODE), +CONSTANT(KGDT64_SYS_TSS), +CONSTANT(KGDT64_R3_CMTEB), + +HEADER("Machine Specific Register Numbers"), +CONSTANT(MSR_EFER), +CONSTANT(MSR_STAR), +CONSTANT(MSR_LSTAR), +CONSTANT(MSR_CSTAR), +CONSTANT(MSR_SYSCALL_MASK), +CONSTANT(MSR_FS_BASE), +CONSTANT(MSR_GS_BASE), +CONSTANT(MSR_GS_SWAP), +CONSTANT(MSR_MCG_STATUS), +CONSTANT(MSR_AMD_ACCESS), + +HEADER("Flags for MSR_EFER"), +CONSTANT(MSR_LMA), +CONSTANT(MSR_LME), +CONSTANT(MSR_SCE), +CONSTANT(MSR_NXE), +CONSTANT(MSR_PAT), +CONSTANT(MSR_DEGUG_CTL), +CONSTANT(MSR_LAST_BRANCH_FROM), +CONSTANT(MSR_LAST_BRANCH_TO), +CONSTANT(MSR_LAST_EXCEPTION_FROM), +CONSTANT(MSR_LAST_EXCEPTION_TO), + +HEADER("Flags for MSR_DEGUG_CTL"), +//CONSTANT(MSR_DEBUG_CTL_LBR), +//CONSTANT(MSR_DEBUG_CRL_BTF), + +HEADER("Fatal exception codes"), +CONSTANT(EXCEPTION_DIVIDED_BY_ZERO), +CONSTANT(EXCEPTION_DEBUG), +CONSTANT(EXCEPTION_NMI), +CONSTANT(EXCEPTION_INT3), +CONSTANT(EXCEPTION_BOUND_CHECK), +CONSTANT(EXCEPTION_INVALID_OPCODE), +CONSTANT(EXCEPTION_NPX_NOT_AVAILABLE), +CONSTANT(EXCEPTION_DOUBLE_FAULT), +CONSTANT(EXCEPTION_NPX_OVERRUN), +CONSTANT(EXCEPTION_INVALID_TSS), +CONSTANT(EXCEPTION_SEGMENT_NOT_PRESENT), +CONSTANT(EXCEPTION_STACK_FAULT), +CONSTANT(EXCEPTION_GP_FAULT), +CONSTANT(EXCEPTION_RESERVED_TRAP), +CONSTANT(EXCEPTION_NPX_ERROR), +CONSTANT(EXCEPTION_ALIGNMENT_CHECK), + +HEADER("Argument Home Address"), +OFFSET(P1Home, CONTEXT, P1Home), +OFFSET(P2Home, CONTEXT, P1Home), +OFFSET(P3Home, CONTEXT, P1Home), +OFFSET(P4Home, CONTEXT, P1Home), + +HEADER("CONTEXT"), +OFFSET(CONTEXT_P1Home, CONTEXT, P1Home), +OFFSET(CONTEXT_P2Home, CONTEXT, P2Home), +OFFSET(CONTEXT_P3Home, CONTEXT, P3Home), +OFFSET(CONTEXT_P4Home, CONTEXT, P4Home), +OFFSET(CONTEXT_P5Home, CONTEXT, P5Home), +OFFSET(CONTEXT_P6Home, CONTEXT, P6Home), +OFFSET(CONTEXT_ContextFlags, CONTEXT, ContextFlags), +OFFSET(CONTEXT_MxCsr, CONTEXT, MxCsr), +OFFSET(CONTEXT_SegCs, CONTEXT, SegCs), +OFFSET(CONTEXT_SegDs, CONTEXT, SegDs), +OFFSET(CONTEXT_SegEs, CONTEXT, SegEs), +OFFSET(CONTEXT_SegFs, CONTEXT, SegFs), +OFFSET(CONTEXT_SegGs, CONTEXT, SegGs), +OFFSET(CONTEXT_SegSs, CONTEXT, SegSs), +OFFSET(CONTEXT_EFlags, CONTEXT, EFlags), +OFFSET(CONTEXT_Dr0, CONTEXT, Dr0), +OFFSET(CONTEXT_Dr1, CONTEXT, Dr1), +OFFSET(CONTEXT_Dr2, CONTEXT, Dr2), +OFFSET(CONTEXT_Dr3, CONTEXT, Dr3), +OFFSET(CONTEXT_Dr6, CONTEXT, Dr6), +OFFSET(CONTEXT_Dr7, CONTEXT, Dr7), +OFFSET(CONTEXT_Rax, CONTEXT, Rax), +OFFSET(CONTEXT_Rcx, CONTEXT, Rcx), +OFFSET(CONTEXT_Rdx, CONTEXT, Rdx), +OFFSET(CONTEXT_Rbx, CONTEXT, Rbx), +OFFSET(CONTEXT_Rsp, CONTEXT, Rsp), +OFFSET(CONTEXT_Rbp, CONTEXT, Rbp), +OFFSET(CONTEXT_Rsi, CONTEXT, Rsi), +OFFSET(CONTEXT_Rdi, CONTEXT, Rdi), +OFFSET(CONTEXT_R8, CONTEXT, R8), +OFFSET(CONTEXT_R9, CONTEXT, R9), +OFFSET(CONTEXT_R10, CONTEXT, R10), +OFFSET(CONTEXT_R11, CONTEXT, R11), +OFFSET(CONTEXT_R12, CONTEXT, R12), +OFFSET(CONTEXT_R13, CONTEXT, R13), +OFFSET(CONTEXT_R14, CONTEXT, R14), +OFFSET(CONTEXT_R15, CONTEXT, R15), +OFFSET(CONTEXT_Rip, CONTEXT, Rip), +OFFSET(CONTEXT_FltSave, CONTEXT, FltSave), +OFFSET(CONTEXT_Xmm0, CONTEXT, Xmm0), +OFFSET(CONTEXT_Xmm1, CONTEXT, Xmm1), +OFFSET(CONTEXT_Xmm2, CONTEXT, Xmm2), +OFFSET(CONTEXT_Xmm3, CONTEXT, Xmm3), +OFFSET(CONTEXT_Xmm4, CONTEXT, Xmm4), +OFFSET(CONTEXT_Xmm5, CONTEXT, Xmm5), +OFFSET(CONTEXT_Xmm6, CONTEXT, Xmm6), +OFFSET(CONTEXT_Xmm7, CONTEXT, Xmm7), +OFFSET(CONTEXT_Xmm8, CONTEXT, Xmm8), +OFFSET(CONTEXT_Xmm9, CONTEXT, Xmm9), +OFFSET(CONTEXT_Xmm10, CONTEXT, Xmm10), +OFFSET(CONTEXT_Xmm11, CONTEXT, Xmm11), +OFFSET(CONTEXT_Xmm12, CONTEXT, Xmm12), +OFFSET(CONTEXT_Xmm13, CONTEXT, Xmm13), +OFFSET(CONTEXT_Xmm14, CONTEXT, Xmm14), +OFFSET(CONTEXT_Xmm15, CONTEXT, Xmm15), +OFFSET(CONTEXT_DebugControl, CONTEXT, DebugControl), +OFFSET(CONTEXT_LastBranchToRip, CONTEXT, LastBranchToRip), +OFFSET(CONTEXT_LastBranchFromRip, CONTEXT, LastBranchFromRip), +OFFSET(CONTEXT_LastExceptionToRip, CONTEXT, LastExceptionToRip), +OFFSET(CONTEXT_LastExceptionFromRip, CONTEXT, LastExceptionFromRip), +OFFSET(CONTEXT_VectorControl, CONTEXT, VectorControl), +OFFSET(CONTEXT_VectorRegister, CONTEXT, VectorRegister), +SIZE(CONTEXT_FRAME_LENGTH, CONTEXT), + +HEADER("DISPATCHER_CONTEXT"), +OFFSET(DcControlPc, DISPATCHER_CONTEXT, ControlPc), +OFFSET(DcImageBase, DISPATCHER_CONTEXT, ImageBase), +OFFSET(DcFunctionEntry, DISPATCHER_CONTEXT, FunctionEntry), +OFFSET(DcEstablisherFrame, DISPATCHER_CONTEXT, EstablisherFrame), +OFFSET(DcTargetIp, DISPATCHER_CONTEXT, TargetIp), +OFFSET(DcContextRecord, DISPATCHER_CONTEXT, ContextRecord), +OFFSET(DcLanguageHandler, DISPATCHER_CONTEXT, LanguageHandler), +OFFSET(DcHandlerData, DISPATCHER_CONTEXT, HandlerData), +OFFSET(DcHistoryTable, DISPATCHER_CONTEXT, HistoryTable), +OFFSET(DcScopeIndex, DISPATCHER_CONTEXT, ScopeIndex), + +HEADER("KEXCEPTION_FRAME"), +OFFSET(KEXCEPTION_FRAME_P1Home, KEXCEPTION_FRAME, P1Home), +OFFSET(KEXCEPTION_FRAME_P2Home, KEXCEPTION_FRAME, P2Home), +OFFSET(KEXCEPTION_FRAME_P3Home, KEXCEPTION_FRAME, P3Home), +OFFSET(KEXCEPTION_FRAME_P4Home, KEXCEPTION_FRAME, P4Home), +OFFSET(KEXCEPTION_FRAME_P5, KEXCEPTION_FRAME, P5), +OFFSET(KEXCEPTION_FRAME_Xmm6, KEXCEPTION_FRAME, Xmm6), +OFFSET(KEXCEPTION_FRAME_Xmm7, KEXCEPTION_FRAME, Xmm7), +OFFSET(KEXCEPTION_FRAME_Xmm8, KEXCEPTION_FRAME, Xmm8), +OFFSET(KEXCEPTION_FRAME_Xmm9, KEXCEPTION_FRAME, Xmm9), +OFFSET(KEXCEPTION_FRAME_Xmm10, KEXCEPTION_FRAME, Xmm10), +OFFSET(KEXCEPTION_FRAME_Xmm11, KEXCEPTION_FRAME, Xmm11), +OFFSET(KEXCEPTION_FRAME_Xmm12, KEXCEPTION_FRAME, Xmm12), +OFFSET(KEXCEPTION_FRAME_Xmm13, KEXCEPTION_FRAME, Xmm13), +OFFSET(KEXCEPTION_FRAME_Xmm14, KEXCEPTION_FRAME, Xmm14), +OFFSET(KEXCEPTION_FRAME_Xmm15, KEXCEPTION_FRAME, Xmm15), +OFFSET(KEXCEPTION_FRAME_MxCsr, KEXCEPTION_FRAME, MxCsr), +OFFSET(KEXCEPTION_FRAME_Rbp, KEXCEPTION_FRAME, Rbp), +OFFSET(KEXCEPTION_FRAME_Rbx, KEXCEPTION_FRAME, Rbx), +OFFSET(KEXCEPTION_FRAME_Rdi, KEXCEPTION_FRAME, Rdi), +OFFSET(KEXCEPTION_FRAME_Rsi, KEXCEPTION_FRAME, Rsi), +OFFSET(KEXCEPTION_FRAME_R12, KEXCEPTION_FRAME, R12), +OFFSET(KEXCEPTION_FRAME_R13, KEXCEPTION_FRAME, R13), +OFFSET(KEXCEPTION_FRAME_R14, KEXCEPTION_FRAME, R14), +OFFSET(KEXCEPTION_FRAME_R15, KEXCEPTION_FRAME, R15), +OFFSET(KEXCEPTION_FRAME_Return, KEXCEPTION_FRAME, Return), +OFFSET(KEXCEPTION_FRAME_InitialStack, KEXCEPTION_FRAME, InitialStack), +OFFSET(KEXCEPTION_FRAME_TrapFrame, KEXCEPTION_FRAME, TrapFrame), +OFFSET(KEXCEPTION_FRAME_CallbackStack, KEXCEPTION_FRAME, CallbackStack), +OFFSET(KEXCEPTION_FRAME_OutputBuffer, KEXCEPTION_FRAME, OutputBuffer), +OFFSET(KEXCEPTION_FRAME_OutputLength, KEXCEPTION_FRAME, OutputLength), +SIZE(KEXCEPTION_FRAME_LENGTH, KEXCEPTION_FRAME), + +HEADER("JUMP_BUFFER"), +OFFSET(JbFrame, _JUMP_BUFFER, Frame), +OFFSET(JbRbx, _JUMP_BUFFER, Rbx), +OFFSET(JbRsp, _JUMP_BUFFER, Rsp), +OFFSET(JbRbp, _JUMP_BUFFER, Rbp), +OFFSET(JbRsi, _JUMP_BUFFER, Rsi), +OFFSET(JbRdi, _JUMP_BUFFER, Rdi), +OFFSET(JbR12, _JUMP_BUFFER, R12), +OFFSET(JbR13, _JUMP_BUFFER, R13), +OFFSET(JbR14, _JUMP_BUFFER, R14), +OFFSET(JbR15, _JUMP_BUFFER, R15), +OFFSET(JbRip, _JUMP_BUFFER, Rip), +//OFFSET(JbMxCsr, _JUMP_BUFFER, MxCsr), // Spare +//OFFSET(JbFpCsr, _JUMP_BUFFER, FpCsr), +OFFSET(JbXmm6, _JUMP_BUFFER, Xmm6), +OFFSET(JbXmm7, _JUMP_BUFFER, Xmm7), +OFFSET(JbXmm8, _JUMP_BUFFER, Xmm8), +OFFSET(JbXmm9, _JUMP_BUFFER, Xmm9), +OFFSET(JbXmm10, _JUMP_BUFFER, Xmm10), +OFFSET(JbXmm11, _JUMP_BUFFER, Xmm11), +OFFSET(JbXmm12, _JUMP_BUFFER, Xmm12), +OFFSET(JbXmm13, _JUMP_BUFFER, Xmm13), +OFFSET(JbXmm14, _JUMP_BUFFER, Xmm14), +OFFSET(JbXmm15, _JUMP_BUFFER, Xmm15), + +HEADER("KGDTENTRY64"), +OFFSET(KgdtBaseLow, KGDTENTRY64, BaseLow), +OFFSET(KgdtBaseMiddle, KGDTENTRY64, Bytes.BaseMiddle), +OFFSET(KgdtBaseHigh, KGDTENTRY64, Bytes.BaseHigh), +OFFSET(KgdtBaseUpper, KGDTENTRY64, BaseUpper), +OFFSET(KgdtLimitHigh, KGDTENTRY64, Bytes.Flags2), +OFFSET(KgdtLimitLow, KGDTENTRY64, LimitLow), +//CONSTANT(KGDT_LIMIT_ENCODE_MASK), + +HEADER("KPRCB"), +OFFSET(PbMxCsr, KPRCB, MxCsr), +OFFSET(PbNumber, KPRCB, Number), +OFFSET(PbInterruptRequest, KPRCB, InterruptRequest), +OFFSET(PbIdleHalt, KPRCB, IdleHalt), +OFFSET(PbCurrentThread, KPRCB, CurrentThread), +OFFSET(PbNextThread, KPRCB, NextThread), +OFFSET(PbIdleThread, KPRCB, IdleThread), +OFFSET(PbNestingLevel, KPRCB, NestingLevel), +OFFSET(PbRspBase, KPRCB, RspBase), +OFFSET(PbPrcbLock, KPRCB, PrcbLock), +OFFSET(PbSetMember, KPRCB, SetMember), +OFFSET(PbProcessorState, KPRCB, ProcessorState), +OFFSET(PbCpuType, KPRCB, CpuType), +OFFSET(PbCpuID, KPRCB, CpuID), +OFFSET(PbCpuStep, KPRCB, CpuStep), +OFFSET(PbHalReserved, KPRCB, HalReserved), +OFFSET(PbMinorVersion, KPRCB, MinorVersion), +OFFSET(PbMajorVersion, KPRCB, MajorVersion), +OFFSET(PbBuildType, KPRCB, BuildType), +OFFSET(PbCpuVendor, KPRCB, CpuVendor), +//OFFSET(PbCoresPerPhysicalProcessor, KPRCB, CoresPerPhysicalProcessor), +//OFFSET(PbLogicalProcessorsPerCore, KPRCB, LogicalProcessorsPerCore), +OFFSET(PbApicMask, KPRCB, ApicMask), +OFFSET(PbCFlushSize, KPRCB, CFlushSize), +OFFSET(PbAcpiReserved, KPRCB, AcpiReserved), +OFFSET(PbInitialApicId, KPRCB, InitialApicId), +//OFFSET(PbStride, KPRCB, Stride), +OFFSET(PbLockQueue, KPRCB, LockQueue), +OFFSET(PbPPLookasideList, KPRCB, PPLookasideList), +OFFSET(PbPPNPagedLookasideList, KPRCB, PPNPagedLookasideList), +OFFSET(PbPPPagedLookasideList, KPRCB, PPPagedLookasideList), +OFFSET(PbPacketBarrier, KPRCB, PacketBarrier), +OFFSET(PbDeferredReadyListHead, KPRCB, DeferredReadyListHead), +OFFSET(PbLookasideIrpFloat, KPRCB, LookasideIrpFloat), +//OFFSET(PbSystemCalls, KPRCB, SystemCalls), +//OFFSET(PbReadOperationCount, KPRCB, ReadOperationCount), +//OFFSET(PbWriteOperationCount, KPRCB, WriteOperationCount), +//OFFSET(PbOtherOperationCount, KPRCB, OtherOperationCount), +//OFFSET(PbReadTransferCount, KPRCB, ReadTransferCount), +//OFFSET(PbWriteTransferCount, KPRCB, WriteTransferCount), +//OFFSET(PbOtherTransferCount, KPRCB, OtherTransferCount), +//OFFSET(PbContextSwitches, KPRCB, ContextSwitches), +OFFSET(PbTargetSet, KPRCB, TargetSet), +OFFSET(PbIpiFrozen, KPRCB, IpiFrozen), +OFFSET(PbRequestMailbox, KPRCB, RequestMailbox), +OFFSET(PbSenderSummary, KPRCB, SenderSummary), +//OFFSET(PbDpcListHead, KPRCB, DpcListHead), +//OFFSET(PbDpcLock, KPRCB, DpcLock), +//OFFSET(PbDpcQueueDepth, KPRCB, DpcQueueDepth), +//OFFSET(PbDpcCount, KPRCB, DpcCount), +OFFSET(PbDpcStack, KPRCB, DpcStack), +OFFSET(PbMaximumDpcQueueDepth, KPRCB, MaximumDpcQueueDepth), +OFFSET(PbDpcRequestRate, KPRCB, DpcRequestRate), +OFFSET(PbMinimumDpcRate, KPRCB, MinimumDpcRate), +OFFSET(PbDpcInterruptRequested, KPRCB, DpcInterruptRequested), +OFFSET(PbDpcThreadRequested, KPRCB, DpcThreadRequested), +OFFSET(PbDpcRoutineActive, KPRCB, DpcRoutineActive), +OFFSET(PbDpcThreadActive, KPRCB, DpcThreadActive), +OFFSET(PbTimerHand, KPRCB, TimerHand), +OFFSET(PbTimerRequest, KPRCB, TimerRequest), +OFFSET(PbTickOffset, KPRCB, TickOffset), +OFFSET(PbMasterOffset, KPRCB, MasterOffset), +OFFSET(PbDpcLastCount, KPRCB, DpcLastCount), +OFFSET(PbQuantumEnd, KPRCB, QuantumEnd), +OFFSET(PbDpcSetEventRequest, KPRCB, DpcSetEventRequest), +OFFSET(PbIdleSchedule, KPRCB, IdleSchedule), +OFFSET(PbReadySummary, KPRCB, ReadySummary), +OFFSET(PbDispatcherReadyListHead, KPRCB, DispatcherReadyListHead), +OFFSET(PbInterruptCount, KPRCB, InterruptCount), +OFFSET(PbKernelTime, KPRCB, KernelTime), +OFFSET(PbUserTime, KPRCB, UserTime), +OFFSET(PbDpcTime, KPRCB, DpcTime), +OFFSET(PbInterruptTime, KPRCB, InterruptTime), +OFFSET(PbAdjustDpcThreshold, KPRCB, AdjustDpcThreshold), +OFFSET(PbSkipTick, KPRCB, SkipTick), +OFFSET(PbPollSlot, KPRCB, PollSlot), +OFFSET(PbParentNode, KPRCB, ParentNode), +OFFSET(PbMultiThreadProcessorSet, KPRCB, MultiThreadProcessorSet), +OFFSET(PbMultiThreadSetMaster, KPRCB, MultiThreadSetMaster), +//OFFSET(PbStartCycles, KPRCB, StartCycles), +OFFSET(PbPageColor, KPRCB, PageColor), +OFFSET(PbNodeColor, KPRCB, NodeColor), +OFFSET(PbNodeShiftedColor, KPRCB,NodeShiftedColor), +OFFSET(PbSecondaryColorMask, KPRCB, SecondaryColorMask), +OFFSET(PbSleeping, KPRCB, Sleeping), +//OFFSET(PbCycleTime, KPRCB, CycleTime), +//OFFSET(PbFastReadNoWait, KPRCB, FastReadNoWait), +//OFFSET(PbFastReadWait, KPRCB, FastReadWait), +//OFFSET(PbFastReadNotPossible, KPRCB, FastReadNotPossible), +//OFFSET(PbCopyReadNoWait, KPRCB, CopyReadNoWait), +//OFFSET(PbCopyReadWait, KPRCB, CopyReadWait), +//OFFSET(PbCopyReadNoWaitMiss, KPRCB, CopyReadNoWaitMiss), +//OFFSET(PbAlignmentFixupCount, KPRCB, AlignmentFixupCount), +//OFFSET(PbExceptionDispatchCount, KPRCB, ExceptionDispatchCount), +OFFSET(PbVendorString, KPRCB, VendorString), +OFFSET(PbPowerState, KPRCB, PowerState), +SIZE(ProcessorBlockLength, KPRCB), + +HEADER("KPCR"), +//OFFSET(PcGdt, KPCR, Gdt), +//OFFSET(PcTss, KPCR, Tss), +OFFSET(PcUserRsp, KPCR, UserRsp), +OFFSET(PcSelf, KPCR, Self), +OFFSET(PcCurrentPrcb, KPCR, CurrentPrcb), +OFFSET(PcLockArray, KPCR, LockArray), +//OFFSET(PcTeb, KPCR, Teb), +//OFFSET(PcIdt, KPCR, Idt), +OFFSET(PcIrql, KPCR, Irql), +OFFSET(PcStallScaleFactor, KPCR, StallScaleFactor), +OFFSET(PcHalReserved, KPCR, HalReserved), +//OFFSET(PcPrcb, KPCR, Prcb), +//OFFSET(PcMxCsr, KPCR, MxCsr), +//OFFSET(PcNumber, KPCR, Number), +//OFFSET(PcInterruptRequest, KPCR, InterruptRequest), +//OFFSET(PcIdleHalt, KPCR, IdleHalt), +//OFFSET(PcCurrentThread, KPCR, CurrentThread), +//OFFSET(PcNextThread, KPCR, NextThread), +//OFFSET(PcIdleThread, KPCR, IdleThread), +//OFFSET(PcIpiFrozen, KPCR, IpiFrozen), +//OFFSET(PcNestingLevel, KPCR, NestingLevel), +//OFFSET(PcRspBase, KPCR, RspBase), +//OFFSET(PcPrcbLock, KPCR, PrcbLock), +#if 0 +OFFSET(PcSetMember, KPCR, SetMember), +OFFSET(PcCr0, KPCR, Cr0), +OFFSET(PcCr2, KPCR, Cr2), +OFFSET(PcCr3, KPCR, Cr3), +OFFSET(PcCr4, KPCR, Cr4), +OFFSET(PcKernelDr0, KPCR, KernelDr0), +OFFSET(PcKernelDr1, KPCR, KernelDr1), +OFFSET(PcKernelDr2, KPCR, KernelDr2), +OFFSET(PcKernelDr3, KPCR, KernelDr3), +OFFSET(PcKernelDr7, KPCR, KernelDr7), +OFFSET(PcGdtrLimit, KPCR, GdtrLimit), +OFFSET(PcGdtrBase, KPCR, GdtrBase), +OFFSET(PcIdtrLimit, KPCR, IdtrLimit), +OFFSET(PcIdtrBase, KPCR, IdtrBase), +OFFSET(PcTr, KPCR, Tr), +OFFSET(PcLdtr, KPCR, Ldtr), +OFFSET(PcDebugControl, KPCR, DebugControl), +OFFSET(PcLastBranchToRip, KPCR, LastBranchToRip), +OFFSET(PcLastBranchFromRip, KPCR, LastBranchFromRip), +OFFSET(PcLastExceptionToRip, KPCR, LastExceptionToRip), +OFFSET(PcLastExceptionFromRip, KPCR, LastExceptionFromRip), +OFFSET(PcCr8, KPCR, Cr8), +OFFSET(PcCpuType, KPCR, CpuType), +OFFSET(PcCpuID, KPCR, CpuID), +OFFSET(PcCpuStep, KPCR, CpuStep), +OFFSET(PcCpuVendor, KPCR, CpuVendor), +OFFSET(PcVirtualApicAssist, KPCR, VirtualApicAssist), +OFFSET(PcCFlushSize, KPCR, CFlushSize), +OFFSET(PcDeferredReadyListHead, KPCR, DeferredReadyListHead), +OFFSET(PcSystemCalls, KPCR, SystemCalls), +OFFSET(PcDpcRoutineActive, KPCR, DpcRoutineActive), +OFFSET(PcInterruptCount, KPCR, InterruptCount), +OFFSET(PcDebuggerSavedIRQL, KPCR, DebuggerSavedIRQL), +OFFSET(PcTickOffset, KPCR, TickOffset), +OFFSET(PcMasterOffset, KPCR, MasterOffset), +OFFSET(PcSkipTick, KPCR, SkipTick), +OFFSET(PcStartCycles, KPCR, StartCycles), +SIZE(ProcessorControlRegisterLength, KPCR), +#endif + +HEADER("KPROCESSOR_STATE"), +OFFSET(PsSpecialRegisters, KPROCESSOR_STATE, SpecialRegisters), +OFFSET(PsCr0, KPROCESSOR_STATE, SpecialRegisters.Cr0), +OFFSET(PsCr2, KPROCESSOR_STATE, SpecialRegisters.Cr2), +OFFSET(PsCr3, KPROCESSOR_STATE, SpecialRegisters.Cr3), +OFFSET(PsCr4, KPROCESSOR_STATE, SpecialRegisters.Cr4), +OFFSET(PsKernelDr0, KPROCESSOR_STATE, SpecialRegisters.KernelDr0), +OFFSET(PsKernelDr1, KPROCESSOR_STATE, SpecialRegisters.KernelDr1), +OFFSET(PsKernelDr2, KPROCESSOR_STATE, SpecialRegisters.KernelDr2), +OFFSET(PsKernelDr3, KPROCESSOR_STATE, SpecialRegisters.KernelDr3), +OFFSET(PsKernelDr6, KPROCESSOR_STATE, SpecialRegisters.KernelDr6), +OFFSET(PsKernelDr7, KPROCESSOR_STATE, SpecialRegisters.KernelDr7), +OFFSET(PsGdtr, KPROCESSOR_STATE, SpecialRegisters.Gdtr), +OFFSET(PsIdtr, KPROCESSOR_STATE, SpecialRegisters.Idtr), +OFFSET(PsTr, KPROCESSOR_STATE, SpecialRegisters.Tr), +OFFSET(PsLdtr, KPROCESSOR_STATE, SpecialRegisters.Ldtr), +OFFSET(PsMxCsr, KPROCESSOR_STATE, SpecialRegisters.MxCsr), +OFFSET(PsContextFrame, KPROCESSOR_STATE, ContextFrame), +OFFSET(PsDebugControl, KPROCESSOR_STATE, SpecialRegisters.DebugControl), +OFFSET(PsLastBranchToRip, KPROCESSOR_STATE, SpecialRegisters.LastBranchToRip), +OFFSET(PsLastBranchFromRip, KPROCESSOR_STATE, SpecialRegisters.LastBranchFromRip), +OFFSET(PsLastExceptionToRip, KPROCESSOR_STATE, SpecialRegisters.LastExceptionToRip), +OFFSET(PsLastExceptionFromRip, KPROCESSOR_STATE, SpecialRegisters.LastExceptionFromRip), +OFFSET(PsCr8, KPROCESSOR_STATE, SpecialRegisters.Cr8), +SIZE(ProcessorStateLength, KPROCESSOR_STATE), + +HEADER("KSTART_FRAME"), +OFFSET(SfP1Home, KSTART_FRAME, P1Home), +OFFSET(SfP2Home, KSTART_FRAME, P2Home), +OFFSET(SfP3Home, KSTART_FRAME, P3Home), +OFFSET(SfP4Home, KSTART_FRAME, P4Home), +OFFSET(SfReturn, KSTART_FRAME, Return), +SIZE(KSTART_FRAME_LENGTH, KSTART_FRAME), + +HEADER("KSPECIAL_REGISTERS"), +OFFSET(SrKernelDr0, KSPECIAL_REGISTERS, KernelDr0), +OFFSET(SrKernelDr1, KSPECIAL_REGISTERS, KernelDr1), +OFFSET(SrKernelDr2, KSPECIAL_REGISTERS, KernelDr2), +OFFSET(SrKernelDr3, KSPECIAL_REGISTERS, KernelDr3), +OFFSET(SrKernelDr6, KSPECIAL_REGISTERS, KernelDr6), +OFFSET(SrKernelDr7, KSPECIAL_REGISTERS, KernelDr7), +OFFSET(SrGdtr, KSPECIAL_REGISTERS, Gdtr), +OFFSET(SrIdtr, KSPECIAL_REGISTERS, Idtr), +OFFSET(SrTr, KSPECIAL_REGISTERS, Tr), +OFFSET(SrMxCsr, KSPECIAL_REGISTERS, MxCsr), +OFFSET(SrMsrGsBase, KSPECIAL_REGISTERS, MsrGsBase), +OFFSET(SrMsrGsSwap, KSPECIAL_REGISTERS, MsrGsSwap), +OFFSET(SrMsrStar, KSPECIAL_REGISTERS, MsrStar), +OFFSET(SrMsrLStar, KSPECIAL_REGISTERS, MsrLStar), +OFFSET(SrMsrCStar, KSPECIAL_REGISTERS, MsrCStar), +OFFSET(SrMsrSyscallMask, KSPECIAL_REGISTERS, MsrSyscallMask), + +HEADER("KSYSTEM_TIME"), +OFFSET(StLowTime, KSYSTEM_TIME, LowPart), +OFFSET(StHigh1Time, KSYSTEM_TIME, High1Time), +OFFSET(StHigh2Time, KSYSTEM_TIME, High2Time), + +HEADER("KSWITCH_FRAME"), +OFFSET(SwP5Home, KSWITCH_FRAME, P5Home), +OFFSET(SwApcBypass, KSWITCH_FRAME, ApcBypass), +OFFSET(SwRbp, KSWITCH_FRAME, Rbp), +OFFSET(SwReturn, KSWITCH_FRAME, Return), +SIZE(SwitchFrameLength, KSWITCH_FRAME), +SIZE(KSWITCH_FRAME_LENGTH, KSWITCH_FRAME), + +HEADER("KTRAP_FRAME"), +OFFSET(KTRAP_FRAME_P1Home, KTRAP_FRAME, P1Home), +OFFSET(KTRAP_FRAME_P2Home, KTRAP_FRAME, P2Home), +OFFSET(KTRAP_FRAME_P3Home, KTRAP_FRAME, P3Home), +OFFSET(KTRAP_FRAME_P4Home, KTRAP_FRAME, P4Home), +OFFSET(KTRAP_FRAME_P5, KTRAP_FRAME, P5), +OFFSET(KTRAP_FRAME_PreviousMode, KTRAP_FRAME, PreviousMode), +OFFSET(KTRAP_FRAME_PreviousIrql, KTRAP_FRAME, PreviousIrql), +OFFSET(KTRAP_FRAME_FaultIndicator, KTRAP_FRAME, FaultIndicator), +OFFSET(KTRAP_FRAME_ExceptionActive, KTRAP_FRAME, ExceptionActive), +OFFSET(KTRAP_FRAME_MxCsr, KTRAP_FRAME, MxCsr), +OFFSET(KTRAP_FRAME_Rax, KTRAP_FRAME, Rax), +OFFSET(KTRAP_FRAME_Rcx, KTRAP_FRAME, Rcx), +OFFSET(KTRAP_FRAME_Rdx, KTRAP_FRAME, Rdx), +OFFSET(KTRAP_FRAME_R8, KTRAP_FRAME, R8), +OFFSET(KTRAP_FRAME_R9, KTRAP_FRAME, R9), +OFFSET(KTRAP_FRAME_R10, KTRAP_FRAME, R10), +OFFSET(KTRAP_FRAME_R11, KTRAP_FRAME, R11), +OFFSET(KTRAP_FRAME_GsBase, KTRAP_FRAME, GsBase), +OFFSET(KTRAP_FRAME_GsSwap, KTRAP_FRAME,GsSwap), +OFFSET(KTRAP_FRAME_Xmm0, KTRAP_FRAME, Xmm0), +OFFSET(KTRAP_FRAME_Xmm1, KTRAP_FRAME, Xmm1), +OFFSET(KTRAP_FRAME_Xmm2, KTRAP_FRAME, Xmm2), +OFFSET(KTRAP_FRAME_Xmm3, KTRAP_FRAME, Xmm3), +OFFSET(KTRAP_FRAME_Xmm4, KTRAP_FRAME, Xmm4), +OFFSET(KTRAP_FRAME_Xmm5, KTRAP_FRAME, Xmm5), +OFFSET(KTRAP_FRAME_FaultAddress, KTRAP_FRAME, FaultAddress), +OFFSET(KTRAP_FRAME_TimeStampCKCL, KTRAP_FRAME, TimeStampCKCL), +OFFSET(KTRAP_FRAME_Dr0, KTRAP_FRAME, Dr0), +OFFSET(KTRAP_FRAME_Dr1, KTRAP_FRAME, Dr1), +OFFSET(KTRAP_FRAME_Dr2, KTRAP_FRAME, Dr2), +OFFSET(KTRAP_FRAME_Dr3, KTRAP_FRAME, Dr3), +OFFSET(KTRAP_FRAME_Dr6, KTRAP_FRAME, Dr6), +OFFSET(KTRAP_FRAME_Dr7, KTRAP_FRAME, Dr7), +OFFSET(KTRAP_FRAME_DebugControl, KTRAP_FRAME, DebugControl), +OFFSET(KTRAP_FRAME_LastBranchToRip, KTRAP_FRAME, LastBranchToRip), +OFFSET(KTRAP_FRAME_LastBranchFromRip, KTRAP_FRAME, LastBranchFromRip), +OFFSET(KTRAP_FRAME_LastExceptionToRip, KTRAP_FRAME, LastExceptionToRip), +OFFSET(KTRAP_FRAME_LastExceptionFromRip, KTRAP_FRAME, LastExceptionFromRip), +OFFSET(KTRAP_FRAME_LastBranchControl, KTRAP_FRAME, LastBranchControl), +OFFSET(KTRAP_FRAME_LastBranchMSR, KTRAP_FRAME, LastBranchMSR), +OFFSET(KTRAP_FRAME_SegDs, KTRAP_FRAME, SegDs), +OFFSET(KTRAP_FRAME_SegEs, KTRAP_FRAME, SegEs), +OFFSET(KTRAP_FRAME_SegFs, KTRAP_FRAME, SegFs), +OFFSET(KTRAP_FRAME_SegGs, KTRAP_FRAME, SegGs), +OFFSET(KTRAP_FRAME_TrapFrame, KTRAP_FRAME, TrapFrame), +OFFSET(KTRAP_FRAME_Rbx, KTRAP_FRAME, Rbx), +OFFSET(KTRAP_FRAME_Rdi, KTRAP_FRAME, Rdi), +OFFSET(KTRAP_FRAME_Rsi, KTRAP_FRAME, Rsi), +OFFSET(KTRAP_FRAME_Rbp, KTRAP_FRAME, Rbp), +OFFSET(KTRAP_FRAME_ErrorCode, KTRAP_FRAME, ErrorCode), +OFFSET(KTRAP_FRAME_TimeStampKlog, KTRAP_FRAME, TimeStampKlog), +OFFSET(KTRAP_FRAME_Rip, KTRAP_FRAME, Rip), +OFFSET(KTRAP_FRAME_SegCs, KTRAP_FRAME, SegCs), +OFFSET(KTRAP_FRAME_Logging, KTRAP_FRAME, Logging), +OFFSET(KTRAP_FRAME_EFlags, KTRAP_FRAME, EFlags), +OFFSET(KTRAP_FRAME_Rsp, KTRAP_FRAME, Rsp), +OFFSET(KTRAP_FRAME_SegSs, KTRAP_FRAME, SegSs), +OFFSET(KTRAP_FRAME_CodePatchCycle, KTRAP_FRAME, CodePatchCycle), +SIZE(KTRAP_FRAME_LENGTH, KTRAP_FRAME), + +#if (NTDDI_VERSION >= NTDDI_WIN7) +HEADER("KTIMER_TABLE"), +OFFSET(TtEntry, KTIMER_TABLE, TimerEntries), +OFFSET(TtTime, KTIMER_TABLE_ENTRY, Time), +SIZE(TIMER_ENTRY_SIZE, KTIMER_TABLE_ENTRY), +SIZE(TIMER_TABLE_SIZE, KTIMER_TABLE), +SIZE(KTIMER_TABLE_SIZE, KTIMER_TABLE), +#endif + +HEADER("KTSS"), +OFFSET(TssRsp0, KTSS64, Rsp0), +OFFSET(TssRsp1, KTSS64, Rsp1), +OFFSET(TssRsp2, KTSS64, Rsp2), +OFFSET(TssPanicStack, KTSS64, Ist[1]), +OFFSET(TssMcaStack, KTSS64, Ist[2]), +OFFSET(TssNmiStack, KTSS64, Ist[3]), +OFFSET(TssIoMapBase, KTSS64, IoMapBase), +SIZE(TssLength, KTSS64), + +HEADER("EXCEPTION_RECORD"), +OFFSET(EXCEPTION_RECORD_ExceptionCode, EXCEPTION_RECORD, ExceptionCode), +OFFSET(EXCEPTION_RECORD_ExceptionFlags, EXCEPTION_RECORD, ExceptionFlags), +OFFSET(EXCEPTION_RECORD_ExceptionRecord, EXCEPTION_RECORD, ExceptionRecord), +OFFSET(EXCEPTION_RECORD_ExceptionAddress, EXCEPTION_RECORD, ExceptionAddress), +OFFSET(EXCEPTION_RECORD_NumberParameters, EXCEPTION_RECORD, NumberParameters), +OFFSET(EXCEPTION_RECORD_ExceptionInformation, EXCEPTION_RECORD, ExceptionInformation), + +OFFSET(KTHREAD_WAIT_IRQL, KTHREAD, WaitIrql), diff --git a/reactos/include/asm/ksx.template.h b/reactos/include/asm/ksx.template.h new file mode 100644 index 00000000000..f098751a480 --- /dev/null +++ b/reactos/include/asm/ksx.template.h @@ -0,0 +1,761 @@ + + +HEADER("Pointer size"), +SIZE(SizeofPointer, PVOID), + +HEADER("Breakpoints"), +CONSTANT(BREAKPOINT_BREAK), +CONSTANT(BREAKPOINT_PRINT), +CONSTANT(BREAKPOINT_PROMPT), +CONSTANT(BREAKPOINT_LOAD_SYMBOLS), +CONSTANT(BREAKPOINT_UNLOAD_SYMBOLS), +CONSTANT(BREAKPOINT_COMMAND_STRING), + +HEADER("Context Frame Flags"), +CONSTANT(CONTEXT_FULL), +CONSTANT(CONTEXT_CONTROL), +CONSTANT(CONTEXT_INTEGER), +CONSTANT(CONTEXT_SEGMENTS), +CONSTANT(CONTEXT_FLOATING_POINT), +CONSTANT(CONTEXT_DEBUG_REGISTERS), + +HEADER("Exception flags"), +CONSTANT(EXCEPTION_NONCONTINUABLE), +CONSTANT(EXCEPTION_UNWINDING), +CONSTANT(EXCEPTION_EXIT_UNWIND), +CONSTANT(EXCEPTION_STACK_INVALID), +CONSTANT(EXCEPTION_NESTED_CALL), +CONSTANT(EXCEPTION_TARGET_UNWIND), +CONSTANT(EXCEPTION_COLLIDED_UNWIND), +CONSTANT(EXCEPTION_UNWIND), +CONSTANT(EXCEPTION_EXECUTE_HANDLER), +CONSTANT(EXCEPTION_CONTINUE_SEARCH), +CONSTANT(EXCEPTION_CONTINUE_EXECUTION), +#ifdef _X86_ +CONSTANT(EXCEPTION_CHAIN_END), +//CONSTANT(FIXED_NTVDMSTATE_LINEAR), +#endif + +HEADER("Exception types"), +CONSTANT(ExceptionContinueExecution), +CONSTANT(ExceptionContinueSearch), +CONSTANT(ExceptionNestedException), +CONSTANT(ExceptionCollidedUnwind), + +HEADER("Lock Queue"), +CONSTANT(LOCK_QUEUE_WAIT), +CONSTANT(LOCK_QUEUE_OWNER), +CONSTANT(LockQueueDispatcherLock), + +//HEADER("Performance Definitions"), +//CONSTANT(PERF_CONTEXTSWAP_OFFSET), +//CONSTANT(PERF_CONTEXTSWAP_FLAG), +//CONSTANT(PERF_INTERRUPT_OFFSET), +//CONSTANT(PERF_INTERRUPT_FLAG), +//CONSTANT(PERF_PROFILE_OFFSET), +//CONSTANT(PERF_PROFILE_FLAG), +//CONSTANT(PERF_SYSCALL_OFFSET), +//CONSTANT(PERF_SYSCALL_FLAG), +//CONSTANT(PERF_SPINLOCK_OFFSET), +//CONSTANT(PERF_SPINLOCK_FLAG), +//CONSTANT(NTOS_YIELD_MACRO), + +HEADER("Process states"), +CONSTANT(ProcessInMemory), +CONSTANT(ProcessOutOfMemory), +CONSTANT(ProcessInTransition), + +HEADER("Processor mode"), +CONSTANT(KernelMode), +CONSTANT(UserMode), + +HEADER("Status codes"), +CONSTANT(STATUS_ACCESS_VIOLATION), +CONSTANT(STATUS_ASSERTION_FAILURE), +CONSTANT(STATUS_ARRAY_BOUNDS_EXCEEDED), +CONSTANT(STATUS_BAD_COMPRESSION_BUFFER), +CONSTANT(STATUS_BREAKPOINT), +CONSTANT(STATUS_CALLBACK_POP_STACK), +CONSTANT(STATUS_DATATYPE_MISALIGNMENT), +CONSTANT(STATUS_FLOAT_DENORMAL_OPERAND), +CONSTANT(STATUS_FLOAT_DIVIDE_BY_ZERO), +CONSTANT(STATUS_FLOAT_INEXACT_RESULT), +CONSTANT(STATUS_FLOAT_INVALID_OPERATION), +CONSTANT(STATUS_FLOAT_OVERFLOW), +CONSTANT(STATUS_FLOAT_STACK_CHECK), +CONSTANT(STATUS_FLOAT_UNDERFLOW), +CONSTANT(STATUS_FLOAT_MULTIPLE_FAULTS), +CONSTANT(STATUS_FLOAT_MULTIPLE_TRAPS), +CONSTANT(STATUS_GUARD_PAGE_VIOLATION), +CONSTANT(STATUS_ILLEGAL_FLOAT_CONTEXT), +CONSTANT(STATUS_ILLEGAL_INSTRUCTION), +CONSTANT(STATUS_INSTRUCTION_MISALIGNMENT), +CONSTANT(STATUS_INVALID_HANDLE), +CONSTANT(STATUS_INVALID_LOCK_SEQUENCE), +CONSTANT(STATUS_INVALID_OWNER), +CONSTANT(STATUS_INVALID_PARAMETER), +CONSTANT(STATUS_INVALID_PARAMETER_1), +CONSTANT(STATUS_INVALID_SYSTEM_SERVICE), +//CONSTANT(STATUS_INVALID_THREAD), +CONSTANT(STATUS_INTEGER_DIVIDE_BY_ZERO), +CONSTANT(STATUS_INTEGER_OVERFLOW), +CONSTANT(STATUS_IN_PAGE_ERROR), +CONSTANT(STATUS_KERNEL_APC), +CONSTANT(STATUS_LONGJUMP), +CONSTANT(STATUS_NO_CALLBACK_ACTIVE), +CONSTANT(STATUS_NO_EVENT_PAIR), +CONSTANT(STATUS_PRIVILEGED_INSTRUCTION), +CONSTANT(STATUS_SINGLE_STEP), +CONSTANT(STATUS_STACK_BUFFER_OVERRUN), +CONSTANT(STATUS_STACK_OVERFLOW), +CONSTANT(STATUS_SUCCESS), +CONSTANT(STATUS_THREAD_IS_TERMINATING), +CONSTANT(STATUS_TIMEOUT), +CONSTANT(STATUS_UNWIND), +CONSTANT(STATUS_UNWIND_CONSOLIDATE), +CONSTANT(STATUS_USER_APC), +CONSTANT(STATUS_WAKE_SYSTEM_DEBUGGER), + +HEADER("TLS defines"), +CONSTANT(TLS_MINIMUM_AVAILABLE), +CONSTANT(TLS_EXPANSION_SLOTS), + +HEADER("Thread states"), +CONSTANT(Initialized), +CONSTANT(Ready), +CONSTANT(Running), +CONSTANT(Standby), +CONSTANT(Terminated), +CONSTANT(Waiting), + +HEADER("Wait type / reason"), +CONSTANT(WrExecutive), +CONSTANT(WrMutex), +CONSTANT(WrDispatchInt), +CONSTANT(WrQuantumEnd), +CONSTANT(WrEventPair), +CONSTANT(WaitAny), +CONSTANT(WaitAll), + +HEADER("Interrupt object types"), +CONSTANTX(InLevelSensitive, LevelSensitive), +CONSTANTX(InLatched, Latched), + +HEADER("Bug Check Codes"), +CONSTANT(APC_INDEX_MISMATCH), +CONSTANT(INVALID_AFFINITY_SET), +CONSTANT(INVALID_DATA_ACCESS_TRAP), +CONSTANT(IRQL_NOT_GREATER_OR_EQUAL), +CONSTANT(IRQL_NOT_LESS_OR_EQUAL), +CONSTANT(NO_USER_MODE_CONTEXT), +CONSTANT(SPIN_LOCK_ALREADY_OWNED), +CONSTANT(SPIN_LOCK_NOT_OWNED), +CONSTANT(THREAD_NOT_MUTEX_OWNER), +CONSTANT(TRAP_CAUSE_UNKNOWN), +CONSTANT(KMODE_EXCEPTION_NOT_HANDLED), +CONSTANT(KERNEL_APC_PENDING_DURING_EXIT), +CONSTANT(PANIC_STACK_SWITCH), +CONSTANT(DATA_BUS_ERROR), +CONSTANT(INSTRUCTION_BUS_ERROR), +CONSTANT(SYSTEM_EXIT_OWNED_MUTEX), +//CONSTANT(SYSTEM_UNWIND_PREVIOUS_USER), +//CONSTANT(SYSTEM_SERVICE_EXCEPTION), +//CONSTANT(INTERRUPT_UNWIND_ATTEMPTED), +//CONSTANT(INTERRUPT_EXCEPTION_NOT_HANDLED), +CONSTANT(PAGE_FAULT_WITH_INTERRUPTS_OFF), +CONSTANT(IRQL_GT_ZERO_AT_SYSTEM_SERVICE), +CONSTANT(DATA_COHERENCY_EXCEPTION), +CONSTANT(INSTRUCTION_COHERENCY_EXCEPTION), +CONSTANT(HAL1_INITIALIZATION_FAILED), +CONSTANT(UNEXPECTED_KERNEL_MODE_TRAP), +CONSTANT(NMI_HARDWARE_FAILURE), +CONSTANT(SPIN_LOCK_INIT_FAILURE), +CONSTANT(ATTEMPTED_SWITCH_FROM_DPC), +//CONSTANT(MUTEX_ALREADY_OWNED), +//CONSTANT(HARDWARE_INTERRUPT_STORM), +//CONSTANT(RECURSIVE_MACHINE_CHECK), +//CONSTANT(RECURSIVE_NMI), + +HEADER("IRQL"), +CONSTANT(PASSIVE_LEVEL), +CONSTANT(APC_LEVEL), +CONSTANT(DISPATCH_LEVEL), +#ifdef _M_AMD64 +CONSTANT(CLOCK_LEVEL), +#else +CONSTANT(CLOCK1_LEVEL), +CONSTANT(CLOCK2_LEVEL), +#endif +CONSTANT(IPI_LEVEL), +CONSTANT(POWER_LEVEL), +CONSTANT(PROFILE_LEVEL), +CONSTANT(HIGH_LEVEL), +RAW("#ifdef NT_UP"), +{TYPE_CONSTANT, "SYNCH_LEVEL", DISPATCH_LEVEL}, +RAW("#else"), +{TYPE_CONSTANT, "SYNCH_LEVEL", (IPI_LEVEL - 2)}, +RAW("#endif"), + +HEADER("Stack sizes"), +CONSTANT(KERNEL_STACK_SIZE), +CONSTANT(KERNEL_LARGE_STACK_SIZE), +CONSTANT(KERNEL_LARGE_STACK_COMMIT), +//CONSTANT(DOUBLE_FAULT_STACK_SIZE), +#ifdef _M_AMD64 +CONSTANT(KERNEL_MCA_EXCEPTION_STACK_SIZE), +CONSTANT(NMI_STACK_SIZE), +#endif + +//HEADER("Thread flags"), +//CONSTANT(THREAD_FLAGS_CYCLE_PROFILING), +//CONSTANT(THREAD_FLAGS_CYCLE_PROFILING_LOCK_BIT), +//CONSTANT(THREAD_FLAGS_CYCLE_PROFILING_LOCK), +//CONSTANT(THREAD_FLAGS_COUNTER_PROFILING), +//CONSTANT(THREAD_FLAGS_COUNTER_PROFILING_LOCK_BIT), +//CONSTANT(THREAD_FLAGS_COUNTER_PROFILING_LOCK), +//CONSTANT(THREAD_FLAGS_CPU_THROTTLED), +//CONSTANT(THREAD_FLAGS_CPU_THROTTLED_BIT), +//CONSTANT(THREAD_FLAGS_ACCOUNTING_ANY), + +HEADER("Miscellaneous Definitions"), +//CONSTANT(BASE_PRIORITY_THRESHOLD), +//CONSTANT(EVENT_PAIR_INCREMENT), +CONSTANT(LOW_REALTIME_PRIORITY), +CONSTANT(CLOCK_QUANTUM_DECREMENT), +//CONSTANT(READY_SKIP_QUANTUM), +//CONSTANT(THREAD_QUANTUM), +CONSTANT(WAIT_QUANTUM_DECREMENT), +//CONSTANT(ROUND_TRIP_DECREMENT_COUNT), +CONSTANT(MAXIMUM_PROCESSORS), +CONSTANT(INITIAL_STALL_COUNT), +//CONSTANT(EXCEPTION_EXECUTE_FAULT), +//CONSTANT(KCACHE_ERRATA_MONITOR_FLAGS), +//CONSTANT(KI_EXCEPTION_GP_FAULT), +//CONSTANT(KI_EXCEPTION_INVALID_OP), +//CONSTANT(KI_EXCEPTION_INTEGER_DIVIDE_BY_ZERO), +CONSTANT(KI_EXCEPTION_ACCESS_VIOLATION), +//CONSTANT(TARGET_FREEZE), +//CONSTANT(BlackHole), +CONSTANT(Executive), +CONSTANT(FALSE), +CONSTANT(TRUE), +CONSTANT(DBG_STATUS_CONTROL_C), +CONSTANTPTR(USER_SHARED_DATA), +//CONSTANT(MM_SHARED_USER_DATA_VA), +CONSTANT(PAGE_SIZE), +//CONSTANT(KERNEL_STACK_CONTROL_LARGE_STACK), +//CONSTANT(KI_DPC_ALL_FLAGS), +//CONSTANT(DISPATCH_LENGTH), +CONSTANT(MAXIMUM_IDTVECTOR), +//CONSTANT(MAXIMUM_PRIMARY_VECTOR), +CONSTANT(PRIMARY_VECTOR_BASE), +CONSTANT(RPL_MASK), +CONSTANT(MODE_MASK), +//CONSTANT(KTHREAD_AUTO_ALIGNMENT_BIT), +//CONSTANT(KTHREAD_GUI_THREAD_MASK), +//CONSTANT(KI_SLIST_FAULT_COUNT_MAXIMUM), +CONSTANT(NUMBER_SERVICE_TABLES), +CONSTANT(SERVICE_NUMBER_MASK), +CONSTANT(SERVICE_TABLE_SHIFT), +CONSTANT(SERVICE_TABLE_MASK), +CONSTANT(SERVICE_TABLE_TEST), + + + +/* STRUCTURE OFFSETS *********************************************************/ + +//HEADER("KAFFINITY_EX"), +//OFFSET(AfBitmap, KAFFINITY_EX, Bitmap), + +//HEADER("Aligned Affinity"), +//OFFSET(AfsCpuSet, ???, CpuSet), + +HEADER("KAPC"), +OFFSET(ApType, KAPC, Type), +OFFSET(ApSize, KAPC, Size), +OFFSET(ApThread, KAPC, Thread), +OFFSET(ApApcListEntry, KAPC, ApcListEntry), +OFFSET(ApKernelRoutine, KAPC, KernelRoutine), +OFFSET(ApRundownRoutine, KAPC, RundownRoutine), +OFFSET(ApNormalRoutine, KAPC, NormalRoutine), +OFFSET(ApNormalContext, KAPC, NormalContext), +OFFSET(ApSystemArgument1, KAPC, SystemArgument1), +OFFSET(ApSystemArgument2, KAPC, SystemArgument2), +OFFSET(ApApcStateIndex, KAPC, ApcStateIndex), +OFFSET(ApApcMode, KAPC, ApcMode), +OFFSET(ApInserted, KAPC, Inserted), +SIZE(ApcObjectLength, KAPC), + +HEADER("KAPC_STATE"), +OFFSET(AsApcListHead, KAPC_STATE, ApcListHead), +OFFSET(AsProcess, KAPC_STATE, Process), +OFFSET(AsKernelApcInProgress, KAPC_STATE, KernelApcInProgress), +OFFSET(AsKernelApcPending, KAPC_STATE, KernelApcPending), +OFFSET(AsUserApcPending, KAPC_STATE, UserApcPending), + +HEADER("CLIENT_ID"), +OFFSET(CidUniqueProcess, CLIENT_ID, UniqueProcess), +OFFSET(CidUniqueThread, CLIENT_ID, UniqueThread), + +HEADER("RTL_CRITICAL_SECTION"), +OFFSET(CsDebugInfo, RTL_CRITICAL_SECTION, DebugInfo), +OFFSET(CsLockCount, RTL_CRITICAL_SECTION, LockCount), +OFFSET(CsRecursionCount, RTL_CRITICAL_SECTION, RecursionCount), +OFFSET(CsOwningThread, RTL_CRITICAL_SECTION, OwningThread), +OFFSET(CsLockSemaphore, RTL_CRITICAL_SECTION, LockSemaphore), +OFFSET(CsSpinCount, RTL_CRITICAL_SECTION, SpinCount), + +HEADER("RTL_CRITICAL_SECTION_DEBUG"), +OFFSET(CsType, RTL_CRITICAL_SECTION_DEBUG, Type), +OFFSET(CsCreatorBackTraceIndex, RTL_CRITICAL_SECTION_DEBUG, CreatorBackTraceIndex), +OFFSET(CsCriticalSection, RTL_CRITICAL_SECTION_DEBUG, CriticalSection), +OFFSET(CsProcessLocksList, RTL_CRITICAL_SECTION_DEBUG, ProcessLocksList), +OFFSET(CsEntryCount, RTL_CRITICAL_SECTION_DEBUG, EntryCount), +OFFSET(CsContentionCount, RTL_CRITICAL_SECTION_DEBUG, ContentionCount), + +HEADER("KDEVICE_QUEUE_ENTRY"), +OFFSET(DeDeviceListEntry, KDEVICE_QUEUE_ENTRY, DeviceListEntry), +OFFSET(DeSortKey, KDEVICE_QUEUE_ENTRY, SortKey), +OFFSET(DeInserted, KDEVICE_QUEUE_ENTRY, Inserted), +SIZE(DeviceQueueEntryLength, KDEVICE_QUEUE_ENTRY), + +HEADER("KDPC"), +OFFSET(DpType, KDPC, Type), +OFFSET(DpImportance, KDPC, Importance), +OFFSET(DpNumber, KDPC, Number), +OFFSET(DpDpcListEntry, KDPC, DpcListEntry), +OFFSET(DpDeferredRoutine, KDPC, DeferredRoutine), +OFFSET(DpDeferredContext, KDPC, DeferredContext), +OFFSET(DpSystemArgument1, KDPC, SystemArgument1), +OFFSET(DpSystemArgument2, KDPC, SystemArgument2), +OFFSET(DpDpcData, KDPC, DpcData), +SIZE(DpcObjectLength, KDPC), + +HEADER("KDEVICE_QUEUE"), +OFFSET(DvType, KDEVICE_QUEUE, Type), +OFFSET(DvSize, KDEVICE_QUEUE, Size), +OFFSET(DvDeviceListHead, KDEVICE_QUEUE, DeviceListHead), +OFFSET(DvSpinLock, KDEVICE_QUEUE, Lock), +OFFSET(DvBusy, KDEVICE_QUEUE, Busy), +SIZE(DeviceQueueObjectLength, KDEVICE_QUEUE), + +HEADER("EXCEPTION_RECORD"), +OFFSET(ErExceptionCode, EXCEPTION_RECORD, ExceptionCode), +OFFSET(ErExceptionFlags, EXCEPTION_RECORD, ExceptionFlags), +OFFSET(ErExceptionRecord, EXCEPTION_RECORD, ExceptionRecord), +OFFSET(ErExceptionAddress, EXCEPTION_RECORD, ExceptionAddress), +OFFSET(ErNumberParameters, EXCEPTION_RECORD, NumberParameters), +OFFSET(ErExceptionInformation, EXCEPTION_RECORD, ExceptionInformation), +SIZE(ExceptionRecordLength, EXCEPTION_RECORD), +SIZE(EXCEPTION_RECORD_LENGTH, EXCEPTION_RECORD), + +HEADER("EPROCESS"), +OFFSET(EpDebugPort, EPROCESS, DebugPort), +OFFSET(EpVdmObjects, EPROCESS, VdmObjects), +SIZE(ExecutiveProcessObjectLength, EPROCESS), + +HEADER("KEVENT"), +OFFSET(EvType, KEVENT, Header.Type), +OFFSET(EvSize, KEVENT, Header.Size), +OFFSET(EvSignalState, KEVENT, Header.SignalState), +OFFSET(EvWaitListHead, KEVENT, Header.WaitListHead), +SIZE(EventObjectLength, KEVENT), + +HEADER("FAST_MUTEX"), +OFFSET(FmCount, FAST_MUTEX, Count), +OFFSET(FmOwner, FAST_MUTEX, Owner), +OFFSET(FmContention, FAST_MUTEX, Contention), +//OFFSET(FmGate, FAST_MUTEX, Gate), +OFFSET(FmOldIrql, FAST_MUTEX, OldIrql), + +HEADER("KINTERRUPT"), +OFFSET(InType, KINTERRUPT, Type), +OFFSET(InSize, KINTERRUPT, Size), +OFFSET(InInterruptListEntry, KINTERRUPT, InterruptListEntry), +OFFSET(InServiceRoutine, KINTERRUPT, ServiceRoutine), +OFFSET(InServiceContext, KINTERRUPT, ServiceContext), +OFFSET(InSpinLock, KINTERRUPT, SpinLock), +OFFSET(InTickCount, KINTERRUPT, TickCount), +OFFSET(InActualLock, KINTERRUPT, ActualLock), +OFFSET(InDispatchAddress, KINTERRUPT, DispatchAddress), +OFFSET(InVector, KINTERRUPT, Vector), +OFFSET(InIrql, KINTERRUPT, Irql), +OFFSET(InSynchronizeIrql, KINTERRUPT, SynchronizeIrql), +OFFSET(InFloatingSave, KINTERRUPT, FloatingSave), +OFFSET(InConnected, KINTERRUPT, Connected), +OFFSET(InNumber, KINTERRUPT, Number), +OFFSET(InShareVector, KINTERRUPT, ShareVector), +OFFSET(InMode, KINTERRUPT, Mode), +OFFSET(InServiceCount, KINTERRUPT, ServiceCount), +OFFSET(InDispatchCount, KINTERRUPT, DispatchCount), +//OFFSET(InTrapFrame, KINTERRUPT, TrapFrame), +OFFSET(InDispatchCode, KINTERRUPT, DispatchCode), +SIZE(InterruptObjectLength, KINTERRUPT), + +HEADER("IO_STATUS_BLOCK"), +OFFSET(IoStatus, IO_STATUS_BLOCK, Status), +OFFSET(IoPointer, IO_STATUS_BLOCK, Pointer), +OFFSET(IoInformation, IO_STATUS_BLOCK, Information), + +//HEADER("KERNEL_STACK_CONTROL"), +#ifdef _M_IX86 +// Kernel Stack Control Structure Offset (relative to initial stack pointer) Definitions +//RELOFFSET(KcPreviousBase, KERNEL_STACK_CONTROL, PreviousBase, ???), -40 +//RELOFFSET(KcPreviousLimit, KERNEL_STACK_CONTROL, PreviousBase, ???), -36 +//RELOFFSET(KcPreviousKernel, KERNEL_STACK_CONTROL, PreviousBase, ???), -32 +//RELOFFSET(KcPreviousInitial, KERNEL_STACK_CONTROL, PreviousBase, ???), -28 +#else +//OFFSET(KcPreviousBase, KERNEL_STACK_CONTROL, PreviousBase), +//OFFSET(KcPreviousLimit, KERNEL_STACK_CONTROL, PreviousLimit), +//OFFSET(KcPreviousKernel, KERNEL_STACK_CONTROL, PreviousKernel), +//OFFSET(KcPreviousInitial, KERNEL_STACK_CONTROL, PreviousInitial), +//SIZE(KERNEL_STACK_CONTROL_LENGTH, KERNEL_STACK_CONTROL), +#endif + +HEADER("KNODE"), +//OFFSET(KnRight, KNODE, Right), +//OFFSET(KnLeft, KNODE, Left), +OFFSET(KnPfnDereferenceSListHead, KNODE, PfnDereferenceSListHead), +OFFSET(KnProcessorMask, KNODE, ProcessorMask), +OFFSET(KnColor, KNODE, Color), +OFFSET(KnSeed, KNODE, Seed), +OFFSET(KnNodeNumber, KNODE, NodeNumber), +OFFSET(KnFlags, KNODE, Flags), +OFFSET(knMmShiftedColor, KNODE, MmShiftedColor), +OFFSET(KnFreeCount, KNODE, FreeCount), +OFFSET(KnPfnDeferredList, KNODE, PfnDeferredList), +SIZE(KNODE_SIZE, KNODE), + +HEADER("KSPIN_LOCK_QUEUE"), +OFFSET(LqNext, KSPIN_LOCK_QUEUE, Next), +OFFSET(LqLock, KSPIN_LOCK_QUEUE, Lock), + +HEADER("KLOCK_QUEUE_HANDLE"), +OFFSET(LqhNext, KLOCK_QUEUE_HANDLE, LockQueue.Next), +OFFSET(LqhLock, KLOCK_QUEUE_HANDLE, LockQueue.Lock), +OFFSET(LqhOldIrql, KLOCK_QUEUE_HANDLE, OldIrql), +SIZE(LOCK_QUEUE_HEADER_SIZE, KLOCK_QUEUE_HANDLE), + +HEADER("LARGE_INTEGER"), +OFFSET(LiLowPart, LARGE_INTEGER, LowPart), +OFFSET(LiHighPart, LARGE_INTEGER, HighPart), +#if 0 +HEADER("LOADER_PARAMETER_BLOCK (rel. to LoadOrderListHead)"), +RELOFFSET(LpbLoadOrderListHead, LOADER_PARAMETER_BLOCK, LoadOrderListHead, LoadOrderListHead), +RELOFFSET(LpbMemoryDescriptorListHead, LOADER_PARAMETER_BLOCK, MemoryDescriptorListHead, LoadOrderListHead), +RELOFFSET(LpbKernelStack, LOADER_PARAMETER_BLOCK, KernelStack, LoadOrderListHead), +RELOFFSET(LpbPrcb, LOADER_PARAMETER_BLOCK, Prcb, LoadOrderListHead), +RELOFFSET(LpbProcess, LOADER_PARAMETER_BLOCK, Process, LoadOrderListHead), +RELOFFSET(LpbThread, LOADER_PARAMETER_BLOCK, Thread, LoadOrderListHead), +RELOFFSET(LpbI386, LOADER_PARAMETER_BLOCK, u.I386, LoadOrderListHead), +RELOFFSET(LpbRegistryLength, LOADER_PARAMETER_BLOCK, RegistryLength, LoadOrderListHead), +RELOFFSET(LpbRegistryBase, LOADER_PARAMETER_BLOCK, RegistryBase, LoadOrderListHead), +RELOFFSET(LpbConfigurationRoot, LOADER_PARAMETER_BLOCK, ConfigurationRoot, LoadOrderListHead), +RELOFFSET(LpbArcBootDeviceName, LOADER_PARAMETER_BLOCK, ArcBootDeviceName, LoadOrderListHead), +RELOFFSET(LpbArcHalDeviceName, LOADER_PARAMETER_BLOCK, ArcHalDeviceName, LoadOrderListHead), +RELOFFSET(LpbLoadOptions, LOADER_PARAMETER_BLOCK, LoadOptions, LoadOrderListHead), +RELOFFSET(LpbExtension, LOADER_PARAMETER_BLOCK, Extension, LoadOrderListHead), +#endif + +HEADER("LIST_ENTRY"), +OFFSET(LsFlink, LIST_ENTRY, Flink), +OFFSET(LsBlink, LIST_ENTRY, Blink), + +HEADER("PEB"), +OFFSET(PeKernelCallbackTable, PEB, KernelCallbackTable), +SIZE(ProcessEnvironmentBlockLength, PEB), + +HEADER("KPROFILE"), +OFFSET(PfType, KPROFILE, Type), +OFFSET(PfSize, KPROFILE, Size), +OFFSET(PfProfileListEntry, KPROFILE, ProfileListEntry), +OFFSET(PfProcess, KPROFILE, Process), +OFFSET(PfRangeBase, KPROFILE, RangeBase), +OFFSET(PfRangeLimit, KPROFILE, RangeLimit), +OFFSET(PfBucketShift, KPROFILE, BucketShift), +OFFSET(PfBuffer, KPROFILE, Buffer), +OFFSET(PfSegment, KPROFILE, Segment), +OFFSET(PfAffinity, KPROFILE, Affinity), +OFFSET(PfSource, KPROFILE, Source), +OFFSET(PfStarted, KPROFILE, Started), +SIZE(ProfileObjectLength, KPROFILE), + +HEADER("PORT_MESSAGE"), +OFFSET(PmLength, PORT_MESSAGE, u1.Length), +OFFSET(PmZeroInit, PORT_MESSAGE, u2.ZeroInit), +OFFSET(PmClientId, PORT_MESSAGE, ClientId), +OFFSET(PmProcess, PORT_MESSAGE, ClientId.UniqueProcess), +OFFSET(PmThread, PORT_MESSAGE, ClientId.UniqueThread), +OFFSET(PmMessageId, PORT_MESSAGE, MessageId), +OFFSET(PmClientViewSize, PORT_MESSAGE, ClientViewSize), +SIZE(PortMessageLength, PORT_MESSAGE), + +HEADER("KPROCESS"), +OFFSET(PrType, KPROCESS, Header.Type), +OFFSET(PrSize, KPROCESS, Header.Size), +OFFSET(PrSignalState, KPROCESS, Header.SignalState), +OFFSET(PrProfileListHead, KPROCESS, ProfileListHead), +OFFSET(PrDirectoryTableBase, KPROCESS, DirectoryTableBase), +#ifdef _M_IX86 +OFFSET(PrLdtDescriptor, KPROCESS, LdtDescriptor), +OFFSET(PrIopmOffset, KPROCESS, IopmOffset), +OFFSET(PrInt21Descriptor, KPROCESS, Int21Descriptor), +OFFSET(PrVdmTrapcHandler, KPROCESS, VdmTrapcHandler), +//OFFSET(PrVdmObjects, KPROCESS, VdmObjects), +OFFSET(PrFlags, KPROCESS, Flags), +#endif +//OFFSET(PrInstrumentationCallback, KPROCESS, InstrumentationCallback), +OFFSET(PrActiveProcessors, KPROCESS, ActiveProcessors), +OFFSET(PrKernelTime, KPROCESS, KernelTime), +OFFSET(PrUserTime, KPROCESS, UserTime), +OFFSET(PrReadyListHead, KPROCESS, ReadyListHead), +OFFSET(PrSwapListEntry, KPROCESS, SwapListEntry), +OFFSET(PrThreadListHead, KPROCESS, ThreadListHead), +OFFSET(PrProcessLock, KPROCESS, ProcessLock), +OFFSET(PrAffinity, KPROCESS, Affinity), +OFFSET(PrProcessFlags, KPROCESS, ProcessFlags), +OFFSET(PrBasePriority, KPROCESS, BasePriority), +OFFSET(PrQuantumReset, KPROCESS, QuantumReset), +OFFSET(PrState, KPROCESS, State), +OFFSET(PrStackCount, KPROCESS, StackCount), +#if (NTDDI_VERSION >= NTDDI_LONGHORN) +OFFSET(PrCycleTime, KPROCESS, CycleTime), +#endif +SIZE(KernelProcessObjectLength, KPROCESS), + +HEADER("KQUEUE"), +OFFSET(QuType, KQUEUE, Header.Type), +OFFSET(QuSize, KQUEUE, Header.Size), +OFFSET(QuSignalState, KQUEUE, Header.SignalState), +OFFSET(QuEntryListHead, KQUEUE, EntryListHead), +OFFSET(QuCurrentCount, KQUEUE, CurrentCount), +OFFSET(QuMaximumCount, KQUEUE, MaximumCount), +OFFSET(QuThreadListHead, KQUEUE, ThreadListHead), +SIZE(QueueObjectLength, KQUEUE), + +HEADER("STRING"), +OFFSET(StrLength, STRING, Length), +OFFSET(StrMaximumLength, STRING, MaximumLength), +OFFSET(StrBuffer, STRING, Buffer), + +HEADER("TEB"), +OFFSET(TeCmTeb, TEB, NtTib), +#ifdef _M_IX86 +OFFSET(TeExceptionList, TEB, NtTib.ExceptionList), +#endif +OFFSET(TeStackBase, TEB, NtTib.StackBase), +OFFSET(TeStackLimit, TEB, NtTib.StackLimit), +OFFSET(TeFiberData, TEB, NtTib.FiberData), +OFFSET(TeSelf, TEB, NtTib.Self), +OFFSET(TeEnvironmentPointer, TEB, EnvironmentPointer), +OFFSET(TeClientId, TEB, ClientId), +OFFSET(TeActiveRpcHandle, TEB, ActiveRpcHandle), +OFFSET(TeThreadLocalStoragePointer, TEB, ThreadLocalStoragePointer), +OFFSET(TeCountOfOwnedCriticalSections, TEB, CountOfOwnedCriticalSections), +OFFSET(TePeb, TEB, ProcessEnvironmentBlock), +OFFSET(TeCsrClientThread, TEB, CsrClientThread), +OFFSET(TeWOW32Reserved, TEB, WOW32Reserved), +//OFFSET(TeSoftFpcr, TEB, SoftFpcr), +OFFSET(TeExceptionCode, TEB, ExceptionCode), +OFFSET(TeActivationContextStackPointer, TEB, ActivationContextStackPointer), +OFFSET(TeGdiClientPID, TEB, GdiClientPID), +OFFSET(TeGdiClientTID, TEB, GdiClientTID), +OFFSET(TeGdiThreadLocalInfo, TEB, GdiThreadLocalInfo), +OFFSET(TeglDispatchTable, TEB, glDispatchTable), +OFFSET(TeglReserved1, TEB, glReserved1), +OFFSET(TeglReserved2, TEB, glReserved2), +OFFSET(TeglSectionInfo, TEB, glSectionInfo), +OFFSET(TeglSection, TEB, glSection), +OFFSET(TeglTable, TEB, glTable), +OFFSET(TeglCurrentRC, TEB, glCurrentRC), +OFFSET(TeglContext, TEB, glContext), +OFFSET(TeDeallocationStack, TEB, DeallocationStack), +OFFSET(TeTlsSlots, TEB, TlsSlots), +OFFSET(TeTlsExpansionSlots, TEB, TlsExpansionSlots), +OFFSET(TeLastErrorValue, TEB, LastErrorValue), +OFFSET(TeVdm, TEB, Vdm), +OFFSET(TeInstrumentation, TEB, Instrumentation), +OFFSET(TeGdiBatchCount, TEB, GdiBatchCount), +OFFSET(TeGuaranteedStackBytes, TEB, GuaranteedStackBytes), +OFFSET(TeFlsData, TEB, FlsData), +//OFFSET(TeProcessRundown, TEB, ProcessRundown), +SIZE(ThreadEnvironmentBlockLength, TEB), + +HEADER("TIME_FIELDS"), +OFFSET(TfSecond, TIME_FIELDS, Second), +OFFSET(TfMinute, TIME_FIELDS, Minute), +OFFSET(TfHour, TIME_FIELDS, Hour), +OFFSET(TfWeekday, TIME_FIELDS, Weekday), +OFFSET(TfDay, TIME_FIELDS, Day), +OFFSET(TfMonth, TIME_FIELDS, Month), +OFFSET(TfYear, TIME_FIELDS, Year), +OFFSET(TfMilliseconds, TIME_FIELDS, Milliseconds), + +HEADER("KTHREAD"), +OFFSET(ThType, KTHREAD, DispatcherHeader.Type), +//OFFSET(ThNpxIrql, KTHREAD, NpxIrql), +OFFSET(ThSize, KTHREAD, DispatcherHeader.Size), +OFFSET(ThLock, KTHREAD, DispatcherHeader.Lock), +OFFSET(ThDebugActive, KTHREAD, DispatcherHeader.DebugActive), +//OFFSET(ThThreadControlFlags, KTHREAD, DispatcherHeader.ThreadControlFlags), +OFFSET(ThSignalState, KTHREAD, DispatcherHeader.SignalState), +#if (NTDDI_VERSION >= NTDDI_LONGHORN) +OFFSET(ThCycleTime, KTHREAD, CycleTime), +OFFSET(ThHighCycleTime, KTHREAD, HighCycleTime), +#endif +OFFSET(ThInitialStack, KTHREAD, InitialStack), +OFFSET(ThStackLimit, KTHREAD, StackLimit), +OFFSET(ThKernelStack, KTHREAD, KernelStack), +OFFSET(ThThreadLock, KTHREAD, ThreadLock), +//OFFSET(ThRunning, KTHREAD, Running), +OFFSET(ThAlerted, KTHREAD, Alerted), +//OFFSET(ThMiscFlags, KTHREAD, MiscFlags), +OFFSET(ThApcState, KTHREAD, ApcState), +OFFSET(ThPriority, KTHREAD, Priority), +OFFSET(ThSwapBusy, KTHREAD, SwapBusy), +OFFSET(ThNextProcessor, KTHREAD, NextProcessor), +OFFSET(ThDeferredProcessor, KTHREAD, DeferredProcessor), +OFFSET(ThApcQueueLock, KTHREAD, ApcQueueLock), +OFFSET(ThContextSwitches, KTHREAD, ContextSwitches), +OFFSET(ThState, KTHREAD, State), +OFFSET(ThNpxState, KTHREAD, NpxState), +OFFSET(ThWaitIrql, KTHREAD, WaitIrql), +OFFSET(ThWaitMode, KTHREAD, WaitMode), +OFFSET(ThWaitStatus, KTHREAD, WaitStatus), +OFFSET(ThWaitBlockList, KTHREAD, WaitBlockList), +OFFSET(ThGateObject, KTHREAD, GateObject), +OFFSET(ThWaitListEntry, KTHREAD, WaitListEntry), +OFFSET(ThSwapListEntry, KTHREAD, SwapListEntry), +OFFSET(ThQueue, KTHREAD, Queue), +OFFSET(ThWaitTime, KTHREAD, WaitTime), +OFFSET(ThCombinedApcDisable, KTHREAD, CombinedApcDisable), +OFFSET(ThKernelApcDisable, KTHREAD, KernelApcDisable), +OFFSET(ThSpecialApcDisable, KTHREAD, SpecialApcDisable), +OFFSET(ThTeb, KTHREAD, Teb), +OFFSET(ThTimer, KTHREAD, Timer), +OFFSET(ThThreadFlags, KTHREAD, ThreadFlags), +OFFSET(ThServiceTable, KTHREAD, ServiceTable), +OFFSET(ThWaitBlock, KTHREAD, WaitBlock), +OFFSET(ThResourceIndex, KTHREAD, ResourceIndex), +OFFSET(ThQueueListEntry, KTHREAD, QueueListEntry), +OFFSET(ThTrapFrame, KTHREAD, TrapFrame), +#if (NTDDI_VERSION >= NTDDI_LONGHORN) +OFFSET(ThFirstArgument, KTHREAD, FirstArgument), +#endif +OFFSET(ThCallbackStack, KTHREAD, CallbackStack), +//OFFSET(ThCallbackDepth, KTHREAD, CallbackDepth), +OFFSET(ThApcStateIndex, KTHREAD, ApcStateIndex), +OFFSET(ThIdealProcessor, KTHREAD, IdealProcessor), +OFFSET(ThBasePriority, KTHREAD, BasePriority), +OFFSET(ThPriorityDecrement, KTHREAD, PriorityDecrement), +OFFSET(ThAdjustReason, KTHREAD, AdjustReason), +OFFSET(ThAdjustIncrement, KTHREAD, AdjustIncrement), +OFFSET(ThPreviousMode, KTHREAD, PreviousMode), +OFFSET(ThSaturation, KTHREAD, Saturation), +#if (NTDDI_VERSION >= NTDDI_LONGHORN) +OFFSET(ThSystemCallNumber, KTHREAD, SystemCallNumber), +#endif +OFFSET(ThFreezeCount, KTHREAD, FreezeCount), +OFFSET(ThUserAffinity, KTHREAD, UserAffinity), +OFFSET(ThProcess, KTHREAD, Process), +OFFSET(ThAffinity, KTHREAD, Affinity), +OFFSET(ThUserIdealProcessor, KTHREAD, UserIdealProcessor), +OFFSET(ThApcStatePointer, KTHREAD, ApcStatePointer), +OFFSET(ThSavedApcState, KTHREAD, SavedApcState), +OFFSET(ThWaitReason, KTHREAD, WaitReason), +OFFSET(ThSuspendCount, KTHREAD, SuspendCount), +//OFFSET(ThCodePatchInProgress, KTHREAD, CodePatchInProgress), +OFFSET(ThWin32Thread, KTHREAD, Win32Thread), +OFFSET(ThStackBase, KTHREAD, StackBase), +OFFSET(ThSuspendApc, KTHREAD, SuspendApc), +OFFSET(ThPowerState, KTHREAD, PowerState), +OFFSET(ThKernelTime, KTHREAD, KernelTime), +OFFSET(ThLegoData, KTHREAD, LegoData), +OFFSET(ThLargeStack, KTHREAD, LargeStack), +OFFSET(ThUserTime, KTHREAD, UserTime), +OFFSET(ThSuspendSemaphore, KTHREAD, SuspendSemaphore), +OFFSET(ThSListFaultCount, KTHREAD, SListFaultCount), +OFFSET(ThThreadListEntry, KTHREAD, ThreadListEntry), +OFFSET(ThMutantListHead, KTHREAD, MutantListHead), +OFFSET(ThSListFaultAddress, KTHREAD, SListFaultAddress), +SIZE(KernelThreadObjectLength, KTHREAD), +SIZE(ExecutiveThreadObjectLength, ETHREAD), + +HEADER("KTIMER"), +OFFSET(TiType, KTIMER, Header.Type), +OFFSET(TiSize, KTIMER, Header.Size), +OFFSET(TiInserted, KTIMER, Header.Inserted), +OFFSET(TiSignalState, KTIMER, Header.SignalState), +OFFSET(TiDueTime, KTIMER, DueTime), +OFFSET(TiTimerListEntry, KTIMER, TimerListEntry), +OFFSET(TiDpc, KTIMER, Dpc), +OFFSET(TiPeriod, KTIMER, Period), +SIZE(TimerObjectLength, KTIMER), + +HEADER("TIME"), +//OFFSET(TmLowTime, TIME, LowTime), +//OFFSET(TmHighTime, TIME, HighTime), + +#if 0 +HEADER("SYSTEM_CONTEXT_SWITCH_INFORMATION (relative to FindAny)"), +RELOFFSET(TwFindAny, SYSTEM_CONTEXT_SWITCH_INFORMATION, FindAny, FindAny), +RELOFFSET(TwFindIdeal, SYSTEM_CONTEXT_SWITCH_INFORMATION, FindIdeal, FindAny), +RELOFFSET(TwFindLast, SYSTEM_CONTEXT_SWITCH_INFORMATION, FindLast, FindAny), +RELOFFSET(TwIdleAny, SYSTEM_CONTEXT_SWITCH_INFORMATION, IdleAny, FindAny), +RELOFFSET(TwIdleCurrent, SYSTEM_CONTEXT_SWITCH_INFORMATION, IdleCurrent, FindAny), +RELOFFSET(TwIdleIdeal, SYSTEM_CONTEXT_SWITCH_INFORMATION, IdleIdeal, FindAny), +RELOFFSET(TwIdleLast, SYSTEM_CONTEXT_SWITCH_INFORMATION, IdleLast, FindAny), +RELOFFSET(TwPreemptAny, SYSTEM_CONTEXT_SWITCH_INFORMATION, PreemptAny, FindAny), +RELOFFSET(TwPreemptCurrent, SYSTEM_CONTEXT_SWITCH_INFORMATION, PreemptCurrent, FindAny), +RELOFFSET(TwPreemptLast, SYSTEM_CONTEXT_SWITCH_INFORMATION, PreemptLast, FindAny), +RELOFFSET(TwSwitchToIdle, SYSTEM_CONTEXT_SWITCH_INFORMATION, SwitchToIdle, FindAny), +#endif + +HEADER("KUSER_SHARED_DATA"), +OFFSET(UsTickCountMultiplier, KUSER_SHARED_DATA, TickCountMultiplier), +OFFSET(UsInterruptTime, KUSER_SHARED_DATA, InterruptTime), +OFFSET(UsSystemTime, KUSER_SHARED_DATA, SystemTime), +OFFSET(UsTimeZoneBias, KUSER_SHARED_DATA, TimeZoneBias), +OFFSET(UsImageNumberLow, KUSER_SHARED_DATA, ImageNumberLow), +OFFSET(UsImageNumberHigh, KUSER_SHARED_DATA, ImageNumberHigh), +OFFSET(UsNtSystemRoot, KUSER_SHARED_DATA, NtSystemRoot), +OFFSET(UsMaxStackTraceDepth, KUSER_SHARED_DATA, MaxStackTraceDepth), +OFFSET(UsCryptoExponent, KUSER_SHARED_DATA, CryptoExponent), +OFFSET(UsTimeZoneId, KUSER_SHARED_DATA, TimeZoneId), +OFFSET(UsLargePageMinimum, KUSER_SHARED_DATA, LargePageMinimum), +OFFSET(UsReserved2, KUSER_SHARED_DATA, Reserved2), +OFFSET(UsNtProductType, KUSER_SHARED_DATA, NtProductType), +OFFSET(UsProductTypeIsValid, KUSER_SHARED_DATA, ProductTypeIsValid), +OFFSET(UsNtMajorVersion, KUSER_SHARED_DATA, NtMajorVersion), +OFFSET(UsNtMinorVersion, KUSER_SHARED_DATA, NtMinorVersion), +OFFSET(UsProcessorFeatures, KUSER_SHARED_DATA, ProcessorFeatures), +OFFSET(UsReserved1, KUSER_SHARED_DATA, Reserved1), +OFFSET(UsReserved3, KUSER_SHARED_DATA, Reserved3), +OFFSET(UsTimeSlip, KUSER_SHARED_DATA, TimeSlip), +OFFSET(UsAlternativeArchitecture, KUSER_SHARED_DATA, AlternativeArchitecture), +OFFSET(UsSystemExpirationDate, KUSER_SHARED_DATA, SystemExpirationDate), +OFFSET(UsSuiteMask, KUSER_SHARED_DATA, SuiteMask), +OFFSET(UsKdDebuggerEnabled, KUSER_SHARED_DATA, KdDebuggerEnabled), +OFFSET(UsActiveConsoleId, KUSER_SHARED_DATA, ActiveConsoleId), +OFFSET(UsDismountCount, KUSER_SHARED_DATA, DismountCount), +OFFSET(UsComPlusPackage, KUSER_SHARED_DATA, ComPlusPackage), +OFFSET(UsLastSystemRITEventTickCount, KUSER_SHARED_DATA, LastSystemRITEventTickCount), +OFFSET(UsNumberOfPhysicalPages, KUSER_SHARED_DATA, NumberOfPhysicalPages), +OFFSET(UsSafeBootMode, KUSER_SHARED_DATA, SafeBootMode), +//OFFSET(UsTscQpcData, KUSER_SHARED_DATA, TscQpcData), +OFFSET(UsTestRetInstruction, KUSER_SHARED_DATA, TestRetInstruction), +OFFSET(UsSystemCall, KUSER_SHARED_DATA, SystemCall), +OFFSET(UsSystemCallReturn, KUSER_SHARED_DATA, SystemCallReturn), +OFFSET(UsSystemCallPad, KUSER_SHARED_DATA, SystemCallPad), +OFFSET(UsTickCount, KUSER_SHARED_DATA, TickCount), +OFFSET(UsTickCountQuad, KUSER_SHARED_DATA, TickCountQuad), +OFFSET(UsWow64SharedInformation, KUSER_SHARED_DATA, Wow64SharedInformation), + +HEADER("KWAIT_BLOCK"), +OFFSET(WbWaitListEntry, KWAIT_BLOCK, WaitListEntry), +OFFSET(WbThread, KWAIT_BLOCK, Thread), +OFFSET(WbObject, KWAIT_BLOCK, Object), +OFFSET(WbNextWaitBlock, KWAIT_BLOCK, NextWaitBlock), +OFFSET(WbWaitKey, KWAIT_BLOCK, WaitKey), +OFFSET(WbWaitType, KWAIT_BLOCK, WaitType), + diff --git a/reactos/include/asm/syscalls.inc b/reactos/include/asm/syscalls.inc new file mode 100644 index 00000000000..260ab129461 --- /dev/null +++ b/reactos/include/asm/syscalls.inc @@ -0,0 +1,94 @@ + +#ifdef _M_IX86 +#define KUSER_SHARED_SYSCALL HEX(7ffe0300) +#define KGDT_R0_CODE 8 +MACRO(STUBCODE_U, SyscallId, StackBytes) + mov eax, SyscallId + mov ecx, KUSER_SHARED_SYSCALL + call dword ptr [ecx] + ret StackBytes +ENDM +MACRO(STUBCODE_K, SyscallId, StackBytes) + mov eax, SyscallId + lea edx, [esp + 4] + pushf + push KGDT_R0_CODE + call _KiSystemService + ret StackBytes +ENDM +#elif defined(_M_AMD64) +MACRO(STUBCODE_U, SyscallId, StackBytes) + mov eax, SyscallId + mov r10, rcx + syscall + ret StackBytes +ENDM +MACRO(STUBCODE_K, SyscallId, StackBytes) + mov eax, SyscallId + call KiSystemService + ret StackBytes +ENDM +#elif defined(_M_ARM) +MACRO(STUBCODE_U, SyscallId, StackBytes) + swi #SyscallId + bx lr +ENDM +MACRO(STUBCODE_K, SyscallId, StackBytes) + mov ip, lr + swi #SyscallId + bx ip +ENDM +#elif defined(_M_PPC) +MACRO(STUBCODE_U, SyscallId, StackBytes) + stwu 1,-16(1) + mflr 0 + stw 0,0(1) + li 0, SyscallId + sc + lwz 0,0(1) + mtlr 0 + addi 1,1,16 + blr +ENDM +#define STUBCODE_K STUBCODE_U +#elif defined(_M_MIPS) +MACRO(STUBCODE_U, SyscallId, StackBytes) + li $8, KUSER_SHARED_SYSCALL + lw $8,0($8) + j $8 + nop +ENDM +MACRO(STUBCODE_K, SyscallId, StackBytes) + j KiSystemService + nop +ENDM +#else +#error unsupported architecture +#endif + +#ifdef _M_IX86 +MACRO(MAKE_LABEL, Name, Stackbytes) + PUBLIC _&Name&@&Stackbytes + _&Name&@&Stackbytes: +ENDM +#else +MACRO(MAKE_LABEL, Name, Stackbytes) + PUBLIC &Name + &Name: +ENDM +#endif + +MACRO(STUB_U, Name, ArgCount) + Stackbytes = 4 * &ArgCount + MAKE_LABEL Zw&Name, %Stackbytes + MAKE_LABEL Nt&Name, %Stackbytes + STUBCODE_U SyscallId, %Stackbytes + SyscallId = SyscallId + 1 +ENDM + +MACRO(STUB_K, Name, ArgCount) + Stackbytes = 4 * &ArgCount + MAKE_LABEL Zw&Name, %Stackbytes + STUBCODE_K SyscallId, %Stackbytes + SyscallId = SyscallId + 1 +ENDM diff --git a/reactos/include/dxsdk/CMakeLists.txt b/reactos/include/dxsdk/CMakeLists.txt new file mode 100644 index 00000000000..98789cdc56a --- /dev/null +++ b/reactos/include/dxsdk/CMakeLists.txt @@ -0,0 +1,29 @@ + +list(APPEND SOURCE + amstream.idl + amvideo.idl + austream.idl + #axcore.idl + #axextend.idl + bdatif.idl + ddstream.idl + devenum.idl + dmodshow.idl + #dshowasf.idl + #dyngraph.idl + mediaobj.idl + medparam.idl + mixerocx.idl + mmstream.idl + qedit.idl + regbag.idl + strmif.idl + tvratings.idl + vidcap.idl + videoacc.idl + #vmrender.idl +) + +add_idl_headers(dxsdk ${SOURCE}) + +add_iid_library(mediaobj_guid mediaobj.idl) diff --git a/reactos/include/host/config.h b/reactos/include/host/config.h new file mode 100644 index 00000000000..0a30629b42c --- /dev/null +++ b/reactos/include/host/config.h @@ -0,0 +1,145 @@ +/* include/config.h. Generated by configure. */ +/* include/config.h.in. Generated from configure.ac by autoheader. */ + +#include "reactos/buildno.h" + +#define __WINE_CONFIG_H + +#define HAVE_SPAWNVP 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FLOAT_H 1 + +/* Define to 1 if you have the `getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if the system has the type `long long'. */ +#define HAVE_LONG_LONG 1 + +/* Define to 1 if you have the `memmove' function. */ +#define HAVE_MEMMOVE 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if the system has the type `mode_t'. */ +#define HAVE_MODE_T 1 + +/* Define to 1 if the system has the type `size_t'. */ +#define HAVE_SIZE_T 1 + +/* Define to 1 if you have the `snprintf' function. */ +#define HAVE_SNPRINTF 1 + +/* Define to 1 if the system has the type `ssize_t'. */ +#define HAVE_SSIZE_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `strcasecmp' function. */ +#if !defined(_WIN32) && !defined(_WIN64) +#define HAVE_STRCASECMP 1 +#endif + +/* Define to 1 if you have the `strerror' function. */ +#define HAVE_STRERROR 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strncasecmp' function. */ +#if !defined(_WIN32) && !defined(_WIN64) +#define HAVE_STRNCASECMP 1 +#endif + +/* Define to 1 if you have the header file. */ +#define HAVE_TIFFIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#ifndef _MSC_VER + #define HAVE_SYS_TIME_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define if you have the timezone variable */ +#define HAVE_TIMEZONE 1 + +/* Define to 1 if you have the header file. */ +#if !defined(_MSC_VER) +#define HAVE_UNISTD_H 1 +#endif + +/* Define to 1 if you have the header file. */ +#define HAVE_UTIME_H 1 + +/* Define if we have va_copy */ +#define HAVE_VA_COPY 1 + +/* Define to 1 if you have the `vsnprintf' function. */ +#define HAVE_VSNPRINTF 1 + +/* Define to 1 if you have the `_snprintf' function. */ +#define HAVE__SNPRINTF 1 + +/* Define to 1 if you have the `_stricmp' function. */ +#if defined(_WIN32) || defined(_WIN64) +#define HAVE__STRICMP 1 +#endif + +/* Define to 1 if you have the `_strnicmp' function. */ +#if defined(_WIN32) || defined(_WIN64) +#define HAVE__STRNICMP 1 +#endif + +/* Define to 1 if you have the `_vsnprintf' function. */ +#define HAVE__VSNPRINTF 1 + +/* Define if we have __va_copy */ +#define HAVE___VA_COPY 1 + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "ros-dev@reactos.org" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "ReactOS" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "ReactOS" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION KERNEL_VERSION_STR + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING PACKAGE_NAME " " PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define to 1 if the X Window System is missing or not being used. */ +#define X_DISPLAY_MISSING 1 + +/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a + `char[]'. */ +#define YYTEXT_POINTER 1 + +#if defined(_MSC_VER) +#define inline __inline +#endif diff --git a/reactos/include/host/debug.h b/reactos/include/host/debug.h new file mode 100644 index 00000000000..580665deb98 --- /dev/null +++ b/reactos/include/host/debug.h @@ -0,0 +1,6 @@ +#ifndef __WINE_DEBUG_H +#define __WINE_DEBUG_H + +/* This file is intentionally left blank */ + +#endif /* __WINE_DEBUG_H */ diff --git a/reactos/include/host/guiddef.h b/reactos/include/host/guiddef.h new file mode 100644 index 00000000000..74953a71549 --- /dev/null +++ b/reactos/include/host/guiddef.h @@ -0,0 +1 @@ +#include "../psdk/guiddef.h" diff --git a/reactos/include/host/wine/list.h b/reactos/include/host/wine/list.h new file mode 100644 index 00000000000..92cea5bec87 --- /dev/null +++ b/reactos/include/host/wine/list.h @@ -0,0 +1 @@ +#include "../../reactos/wine/list.h" diff --git a/reactos/include/host/wine/port.h b/reactos/include/host/wine/port.h new file mode 100644 index 00000000000..b5e4bc32be7 --- /dev/null +++ b/reactos/include/host/wine/port.h @@ -0,0 +1 @@ +#include "../../reactos/wine/port.h" diff --git a/reactos/include/host/wine/rpcfc.h b/reactos/include/host/wine/rpcfc.h new file mode 100644 index 00000000000..5f63c64169b --- /dev/null +++ b/reactos/include/host/wine/rpcfc.h @@ -0,0 +1 @@ +#include "../../reactos/wine/rpcfc.h" diff --git a/reactos/include/host/wine/wpp.h b/reactos/include/host/wine/wpp.h new file mode 100644 index 00000000000..10b71e0c785 --- /dev/null +++ b/reactos/include/host/wine/wpp.h @@ -0,0 +1,36 @@ +/* + * Exported functions of the Wine preprocessor + * + * Copyright 2002 Alexandre Julliard + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef __WINE_WPP_H +#define __WINE_WPP_H + +#include + +extern void wpp_add_define( const char *name, const char *value ); +extern void wpp_del_define( const char *name ); +extern void wpp_add_cmdline_define( const char *value ); +extern void wpp_set_debug( int lex_debug, int parser_debug, int msg_debug ); +extern void wpp_set_pedantic( int on ); +extern void wpp_add_include_path( const char *path ); +extern char *wpp_find_include( const char *name, const char *parent_name ); +extern int wpp_parse( const char *input, FILE *output ); +extern int wpp_parse_temp( const char *input, const char *output_base, char **output_name ); + +#endif /* __WINE_WPP_H */ diff --git a/reactos/include/psdk/CMakeLists.txt b/reactos/include/psdk/CMakeLists.txt new file mode 100644 index 00000000000..199c00a94aa --- /dev/null +++ b/reactos/include/psdk/CMakeLists.txt @@ -0,0 +1,115 @@ + +list(APPEND SOURCE +# access.idl + activaut.idl + activdbg.idl + activscp.idl + asptlb.idl +# asynot.idl +# asysta.idl + bdaiface.idl +# binres.idl + bits.idl + bits1_5.idl +# cmdbas.idl +# cmdtxt.idl + comcat.idl + commoncontrols.idl + control.idl +# crtrow.idl + ctxtcall.idl +# dbccmd.idl +# dbcses.idl +# dbdsad.idl +# dbinit.idl +# dbprop.idl +# dbs.idl + devenum.idl + dimm.idl + dispex.idl + docobj.idl + downloadmgr.idl +# dyngraph.idl + exdisp.idl + fusion.idl + hlink.idl + htiframe.idl + iads.idl + icftypes.idl + imnact.idl + imnxport.idl + indexsrv.idl + mimeinfo.idl + mimeole.idl + mlang.idl + mscoree.idl + msctf.idl + msdadc.idl + mshtmhst.idl + mshtml.idl + msinkaut.idl + mstask.idl + msxml.idl + msxml2.idl + msxml6.idl + netcon.idl + netfw.idl + oaidl.idl + objidl.idl + objsafe.idl + ocidl.idl + ocmm.idl + oleacc.idl + oledb.idl + oleidl.idl +# opnrst.idl + optary.idl + perhist.idl + propidl.idl + propsys.idl + pstore.idl + richole.idl +# row.idl +# rowchg.idl +# rstbas.idl +# rstinf.idl +# rstloc.idl + sensevts.idl + servprov.idl +# sesprp.idl + shdeprecated.idl + shldisp.idl + shobjidl.idl + shtypes.idl +# stdole2.idl + strmif.idl + structuredquerycondition.idl + textstor.idl + tom.idl + tuner.idl + unknwn.idl + urlhist.idl + urlmon.idl + vmr9.idl +# vmrender.idl + wia_lh.idl + wia_xp.idl + wincodec.idl + winsxs.idl + wtypes.idl + wuapi.idl + xmldom.idl + xmldso.idl + ctfutb.idl + xmllite.idl) + +if(NOT MSVC) + list(APPEND SOURCE + wbemcli.idl) +endif() + +add_idl_headers(psdk ${SOURCE}) + +add_typelib(stdole2 stdole2.idl) + +add_iid_library(wuguid wuapi.idl) diff --git a/reactos/include/reactos/buildno.h.cmake b/reactos/include/reactos/buildno.h.cmake new file mode 100644 index 00000000000..6e5e34534a8 --- /dev/null +++ b/reactos/include/reactos/buildno.h.cmake @@ -0,0 +1,18 @@ +/* Do not edit - Machine generated */ +#ifndef _INC_REACTOS_BUILDNO +#define _INC_REACTOS_BUILDNO +#define KERNEL_VERSION_BUILD @KERNEL_VERSION_BUILD@ +#define KERNEL_VERSION_BUILD_HEX 0x@KERNEL_VERSION_BUILD_HEX@ +#define KERNEL_VERSION_BUILD_STR "@KERNEL_VERSION_BUILD@@REVISION@" +#define KERNEL_VERSION_BUILD_RC "@KERNEL_VERSION_BUILD@@REVISION@\0" +#define KERNEL_RELEASE_RC "@KERNEL_VERSION@\0" +#define KERNEL_RELEASE_STR "@KERNEL_VERSION@" +#define KERNEL_VERSION_RC "@KERNEL_VERSION@\0" +#define KERNEL_VERSION_STR "@KERNEL_VERSION@" +#define REACTOS_DLL_VERSION_MAJOR @REACTOS_DLL_VERSION_MAJOR@ +#define REACTOS_DLL_RELEASE_RC "@DLL_VERSION_STR@\0" +#define REACTOS_DLL_RELEASE_STR "@DLL_VERSION_STR@" +#define REACTOS_DLL_VERSION_RC "@DLL_VERSION_STR@\0" +#define REACTOS_DLL_VERSION_STR "@DLL_VERSION_STR@" +#endif +/* EOF */ diff --git a/reactos/include/reactos/idl/CMakeLists.txt b/reactos/include/reactos/idl/CMakeLists.txt new file mode 100644 index 00000000000..dd71249adce --- /dev/null +++ b/reactos/include/reactos/idl/CMakeLists.txt @@ -0,0 +1,12 @@ + +include_directories(.) + +add_rpc_library(eventlogrpc eventlogrpc.idl) +add_rpc_library(lsarpc lsa.idl) +add_rpc_library(svcctlrpc svcctl.idl) +add_rpc_library(wlansvcrpc wlansvc.idl) + +remove_definitions(-D_WIN32_WINNT=0x502) +add_definitions(-D_WIN32_WINNT=0x600) + +add_rpc_library(pnprpc pnp.idl) diff --git a/reactos/include/reactos/mc/CMakeLists.txt b/reactos/include/reactos/mc/CMakeLists.txt new file mode 100644 index 00000000000..ef6bc8e6fef --- /dev/null +++ b/reactos/include/reactos/mc/CMakeLists.txt @@ -0,0 +1,9 @@ + +list(APPEND SOURCE + bugcodes.mc + errcodes.mc + neteventmsg.mc + ntstatus.mc + pciclass.mc) + +add_message_headers(${SOURCE}) diff --git a/reactos/include/reactos/msvchelper.h b/reactos/include/reactos/msvchelper.h new file mode 100644 index 00000000000..bbd7627ff31 --- /dev/null +++ b/reactos/include/reactos/msvchelper.h @@ -0,0 +1,32 @@ + +// +#ifdef _M_IX86 +void __stdcall wined3d_mutex_lock(void); +void __stdcall wined3d_mutex_unlock(void); +void* __stdcall WineDirect3DCreate(unsigned int dxVersion,void *parent); + +void __inline wined3d_mutex_lock_inline(void) +{ + wined3d_mutex_lock(); +} + +void __inline wined3d_mutex_unlock_inline(void) +{ + wined3d_mutex_unlock(); +} + +__inline +struct IWineD3D* WineDirect3DCreate_inline(unsigned int dxVersion,void *parent) +{ + return WineDirect3DCreate(dxVersion, parent); +} + +#define wined3d_mutex_lock wined3d_mutex_lock_inline +#define wined3d_mutex_unlock wined3d_mutex_unlock_inline +#define WineDirect3DCreate WineDirect3DCreate_inline + +#endif /* _M_IX86 */ + + + + diff --git a/reactos/include/reactos/version.cmake b/reactos/include/reactos/version.cmake new file mode 100644 index 00000000000..f82bd5c3d84 --- /dev/null +++ b/reactos/include/reactos/version.cmake @@ -0,0 +1,64 @@ +macro(today RESULT) + if(CMAKE_HOST_WIN32) + execute_process(COMMAND "${REACTOS_SOURCE_DIR}/tools/getdate.exe" OUTPUT_VARIABLE ${RESULT}) + string(STRIP ${${RESULT}} ${RESULT}) + elseif(CMAKE_HOST_UNIX) + execute_process(COMMAND "date" "+%Y%m%d" OUTPUT_VARIABLE ${RESULT}) + string(STRIP ${${RESULT}} ${RESULT}) + else() + message(SEND_ERROR "date not implemented") + set(${RESULT} 00000000) + endif() +endmacro() + +macro(inttohex INTVALUE OUTPUT_VARIABLE) + list(APPEND HEXLIST 0 1 2 3 4 5 6 7 8 9 a b c d e f) + list(GET HEXLIST ${INTVALUE} ${OUTPUT_VARIABLE}) +endmacro() + +macro(converttohex INTVALUE OUTPUT_VARIABLE) + set(REMAINING ${INTVALUE}) + while(REMAINING) + math(EXPR REMAINDER "${REMAINING}%16") + inttohex(${REMAINDER} HEXCHAR) + math(EXPR REMAINING "${REMAINING}/16") + set(${OUTPUT_VARIABLE} "${HEXCHAR}${${OUTPUT_VARIABLE}}") + endwhile() +endmacro() + +today(KERNEL_VERSION_BUILD) + +set(KERNEL_VERSION_MAJOR "0") +set(KERNEL_VERSION_MINOR "4") +set(KERNEL_VERSION_PATCH_LEVEL "0") +set(COPYRIGHT_YEAR "2011") +# KERNEL_VERSION_BUILD_TYPE is "SVN", "RC1", "RC2" or "" (for the release) +set(KERNEL_VERSION_BUILD_TYPE "SVN") + + +set(KERNEL_VERSION "${KERNEL_VERSION_MAJOR}.${KERNEL_VERSION_MINOR}") +if(KERNEL_VERSION_PATCH_LEVEL) + set(KERNEL_VERSION "${KERNEL_VERSION}.${KERNEL_VERSION_PATCH_LEVEL}-${KERNEL_VERSION_BUILD_TYPE}") +else() + set(KERNEL_VERSION "${KERNEL_VERSION}-${KERNEL_VERSION_BUILD_TYPE}") +endif() + +math(EXPR REACTOS_DLL_VERSION_MAJOR "${KERNEL_VERSION_MAJOR}+42") +set(DLL_VERSION_STR "${REACTOS_DLL_VERSION_MAJOR}.${KERNEL_VERSION_MINOR}-${KERNEL_VERSION_BUILD_TYPE}") + +# get svn revision number +set(REVISION "-rUNKNOWN") +set(KERNEL_VERSION_BUILD_HEX "0") +if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.svn") + find_package(Subversion) + if(Subversion_FOUND) + subversion_wc_info(${CMAKE_CURRENT_SOURCE_DIR} SVNINFO) + if(SVNINFO_WC_REVISION) + set(REVISION "-r${SVNINFO_WC_REVISION}") + converttohex(${SVNINFO_WC_REVISION} KERNEL_VERSION_BUILD_HEX) + endif() + endif() +endif() + +configure_file(include/reactos/version.h.cmake ${REACTOS_BINARY_DIR}/include/reactos/version.h) +configure_file(include/reactos/buildno.h.cmake ${REACTOS_BINARY_DIR}/include/reactos/buildno.h) diff --git a/reactos/include/reactos/version.h.cmake b/reactos/include/reactos/version.h.cmake new file mode 100644 index 00000000000..7ced99b1620 --- /dev/null +++ b/reactos/include/reactos/version.h.cmake @@ -0,0 +1,31 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: include/internal/version.h + * PURPOSE: Defines the current version + * PROGRAMMER: David Welch (welch@mcmail.com) + * REVISIONS: + * 1999-11-06 (ea) + * Moved from include/internal in include/reactos + * to be used by buildno. + * 2002-01-17 (ea) + * KERNEL_VERSION removed. Use + * reactos/buildno.h:KERNEL_VERSION_STR instead. + */ + +#ifndef __VERSION_H +#define __VERSION_H + +#define KERNEL_VERSION_MAJOR @KERNEL_VERSION_MAJOR@ +#define KERNEL_VERSION_MINOR @KERNEL_VERSION_MINOR@ +#define KERNEL_VERSION_PATCH_LEVEL @KERNEL_VERSION_PATCH_LEVEL@ + +#define COPYRIGHT_YEAR "@COPYRIGHT_YEAR@" + +/* KERNEL_VERSION_BUILD_TYPE is L"SVN", L"RC1", L"RC2" or L"" (for the release) */ +#define KERNEL_VERSION_BUILD_TYPE "@KERNEL_VERSION_BUILD_TYPE@" + + +#endif + +/* EOF */ diff --git a/reactos/include/reactos/wine/CMakeLists.txt b/reactos/include/reactos/wine/CMakeLists.txt new file mode 100644 index 00000000000..d74cd51349e --- /dev/null +++ b/reactos/include/reactos/wine/CMakeLists.txt @@ -0,0 +1,9 @@ + +add_idl_headers(wineheaders itss.idl wined3d.idl) +add_idl_headers(winesdk epm.idl irot.idl) + +add_rpc_library(epmrpc epm.idl) +add_rpc_library(irotrpc irot.idl) + +add_iid_library(wined3d_guid wined3d.idl) +add_iid_library(itss_guid itss.idl) \ No newline at end of file diff --git a/reactos/include/reactos/wine/alloca.h b/reactos/include/reactos/wine/alloca.h new file mode 100644 index 00000000000..265fecfb54f --- /dev/null +++ b/reactos/include/reactos/wine/alloca.h @@ -0,0 +1,2 @@ + +#include diff --git a/reactos/include/reactos/wine/math.h b/reactos/include/reactos/wine/math.h new file mode 100644 index 00000000000..1d86ef9a7df --- /dev/null +++ b/reactos/include/reactos/wine/math.h @@ -0,0 +1,26 @@ +#ifndef __WINE_MATH_H_ +#define __WINE_MATH_H_ + +#include + +#ifdef _MSC_VER +__forceinline float _NaN() +{ + unsigned long NaN = 0x7fc00000; + return *(float*)&NaN; +} +#define NAN _NaN() + +__forceinline float _Infinity() +{ + unsigned long Infinity = 0x7f800000; + return *(float*)&Infinity; +} +#define INFINITY _Infinity() + +#else +#define NAN (0.0f / 0.0f) +#define INFINITY (1.0F/0.0F) +#endif + +#endif /* __WINE_MATH_H_ */ diff --git a/reactos/lib/3rdparty/CMakeLists.txt b/reactos/lib/3rdparty/CMakeLists.txt new file mode 100644 index 00000000000..55fc71342bd --- /dev/null +++ b/reactos/lib/3rdparty/CMakeLists.txt @@ -0,0 +1,15 @@ + +add_subdirectory(adns) +add_subdirectory(bzip2) +add_subdirectory(cardlib) +add_subdirectory(expat) +add_subdirectory(freetype) +add_subdirectory(fullfat) +#add_subdirectory(icu4ros) +add_subdirectory(libmpg123) +add_subdirectory(libsamplerate) +add_subdirectory(libwine) +add_subdirectory(libxml2) +add_subdirectory(mingw) +add_subdirectory(stlport) +add_subdirectory(zlib) diff --git a/reactos/lib/3rdparty/adns/CMakeLists.txt b/reactos/lib/3rdparty/adns/CMakeLists.txt new file mode 100644 index 00000000000..cfc7d0aa091 --- /dev/null +++ b/reactos/lib/3rdparty/adns/CMakeLists.txt @@ -0,0 +1,24 @@ + +include_directories( + src + adns_win32) + +add_definitions( + -D_DLL -D__USE_CRTIMP + -DADNS_JGAA_WIN32) + +list(APPEND SOURCE + adns_win32/adns_unix_calls.c + src/check.c + src/event.c + src/general.c + src/parse.c + src/poll.c + src/query.c + src/reply.c + src/setup.c + src/transmit.c + src/types.c) + +add_library(adns ${SOURCE}) +add_dependencies(adns psdk) diff --git a/reactos/lib/3rdparty/bzip2/CMakeLists.txt b/reactos/lib/3rdparty/bzip2/CMakeLists.txt new file mode 100644 index 00000000000..ee76113cfc4 --- /dev/null +++ b/reactos/lib/3rdparty/bzip2/CMakeLists.txt @@ -0,0 +1,20 @@ + +add_definitions(-DBZ_NO_STDIO -DBZ_DECOMPRESS_ONLY) + +spec2def(unbzip2.sys unbzip2.spec) + +list(APPEND SOURCE + bzlib.c + randtable.c + crctable.c + decompress.c + huffman.c + dllmain.c + ${CMAKE_CURRENT_BINARY_DIR}/unbzip2.def) + +add_library(bzip2 SHARED ${SOURCE}) + +set_module_type(bzip2 kernelmodedriver) +add_importlibs(bzip2 ntoskrnl) + +set_target_properties(bzip2 PROPERTIES OUTPUT_NAME "unbzip2") diff --git a/reactos/lib/3rdparty/cardlib/CMakeLists.txt b/reactos/lib/3rdparty/cardlib/CMakeLists.txt new file mode 100644 index 00000000000..6de3f7a3939 --- /dev/null +++ b/reactos/lib/3rdparty/cardlib/CMakeLists.txt @@ -0,0 +1,18 @@ + +set_cpp() + +list(APPEND SOURCE + cardbitmaps.cpp + cardbutton.cpp + cardcolor.cpp + cardcount.cpp + cardlib.cpp + cardregion.cpp + cardrgndraw.cpp + cardrgnmouse.cpp + cardstack.cpp + cardwindow.cpp + dropzone.cpp) + +add_library(cardlib ${SOURCE}) +add_dependencies(cardlib psdk) diff --git a/reactos/lib/3rdparty/expat/CMakeLists.txt b/reactos/lib/3rdparty/expat/CMakeLists.txt new file mode 100644 index 00000000000..2d35cfc614b --- /dev/null +++ b/reactos/lib/3rdparty/expat/CMakeLists.txt @@ -0,0 +1,13 @@ + +include_directories( + lib + ${REACTOS_SOURCE_DIR}/include/reactos/libs/expat) + +add_definitions(-DHAVE_EXPAT_CONFIG_H) + +list(APPEND SOURCE + lib/xmlparse.c + lib/xmlrole.c + lib/xmltok.c) + +add_library(expat ${SOURCE}) diff --git a/reactos/lib/3rdparty/freetype/CMakeLists.txt b/reactos/lib/3rdparty/freetype/CMakeLists.txt new file mode 100644 index 00000000000..578f46dc8e0 --- /dev/null +++ b/reactos/lib/3rdparty/freetype/CMakeLists.txt @@ -0,0 +1,52 @@ + +add_definitions( + -D__NTDRIVER__ + -DFT2_BUILD_LIBRARY + -DTT_CONFIG_OPTION_BYTECODE_INTERPRETER) + +include_directories(include) + +list(APPEND SOURCE + src/autofit/autofit.c + src/base/ftbase.c + src/base/ftbbox.c + src/base/ftbdf.c + src/base/ftbitmap.c + src/base/ftdebug.c + src/base/ftgasp.c + src/base/ftglyph.c + src/base/ftgxval.c + src/base/ftinit.c + src/base/ftlcdfil.c + src/base/ftmm.c + src/base/ftotval.c + src/base/ftpatent.c + src/base/ftpfr.c + src/base/ftstroke.c + src/base/ftsynth.c + src/base/ftsystem.c + src/base/fttype1.c + src/base/ftwinfnt.c + src/base/ftxf86.c + src/bdf/bdf.c + src/cache/ftcache.c + src/cff/cff.c + src/cid/type1cid.c + src/gxvalid/gxvalid.c + src/gzip/ftgzip.c + src/lzw/ftlzw.c + src/otvalid/otvalid.c + src/pcf/pcf.c + src/pfr/pfr.c + src/psaux/psaux.c + src/pshinter/pshinter.c + src/psnames/psnames.c + src/raster/raster.c + src/sfnt/sfnt.c + src/smooth/smooth.c + src/truetype/truetype.c + src/type1/type1.c + src/type42/type42.c + src/winfonts/winfnt.c) + +add_library(freetype ${SOURCE}) diff --git a/reactos/lib/3rdparty/fullfat/CMakeLists.txt b/reactos/lib/3rdparty/fullfat/CMakeLists.txt new file mode 100644 index 00000000000..657abdd3bb4 --- /dev/null +++ b/reactos/lib/3rdparty/fullfat/CMakeLists.txt @@ -0,0 +1,20 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/libs/fullfat) + +add_definitions(-D__NTDRIVER__) + +list(APPEND SOURCE + ff_blk.c + ff_crc.c + ff_dir.c + ff_error.c + ff_fat.c + ff_file.c + ff_hash.c + ff_ioman.c + ff_memory.c + ff_safety.c + ff_string.c + ff_time.c) + +add_library(fullfat ${SOURCE}) diff --git a/reactos/lib/3rdparty/icu4ros/CMakeLists.txt b/reactos/lib/3rdparty/icu4ros/CMakeLists.txt new file mode 100644 index 00000000000..18133a9f188 --- /dev/null +++ b/reactos/lib/3rdparty/icu4ros/CMakeLists.txt @@ -0,0 +1,52 @@ + +include_directories( + icu/source/common + icu/source/i18n) + +add_definitions( + -DHAVE_EXPAT_CONFIG_H + -DU_STATIC_IMPLEMENTATION + -DU_HAVE_INTTYPES_H + -DUCONFIG_NO_FILE_IO=1 + -DICU_NO_USER_DATA_OVERRIDE=1) + +list(APPEND SOURCE + stubs.cpp + icu/source/common/bmpset.cpp + icu/source/common/uhash_us.cpp + icu/source/common/uidna.cpp + icu/source/common/unifilt.cpp + icu/source/common/unifunct.cpp + icu/source/common/uniset.cpp + icu/source/common/unisetspan.cpp + icu/source/common/unistr.cpp + icu/source/common/unorm.cpp + icu/source/common/uobject.cpp + icu/source/common/uobject.cpp + icu/source/common/uset.cpp + icu/source/common/usprep.cpp + icu/source/common/uiter.cpp + icu/source/common/util.cpp + icu/source/common/cmemory.c + icu/source/common/cstring.c + icu/source/common/locmap.c + icu/source/common/punycode.c + icu/source/common/ubidi_props.c + icu/source/common/ucln_cmn.c + icu/source/common/ucmndata.c + icu/source/common/ucol_swp.c + icu/source/common/udata.c + icu/source/common/udatamem.c + icu/source/common/udataswp.c + icu/source/common/uhash.c + icu/source/common/uinit.c + icu/source/common/uinvchar.c + icu/source/common/umapfile.c + icu/source/common/umath.c + icu/source/common/umutex.c + icu/source/common/ustring.c + icu/source/common/ustrtrns.c + icu/source/common/utf_impl.c + icu/source/common/utrie.c) + +add_library(icu4ros ${SOURCE}) diff --git a/reactos/lib/3rdparty/libmpg123/CMakeLists.txt b/reactos/lib/3rdparty/libmpg123/CMakeLists.txt new file mode 100644 index 00000000000..be3bafc9688 --- /dev/null +++ b/reactos/lib/3rdparty/libmpg123/CMakeLists.txt @@ -0,0 +1,43 @@ + +add_definitions( + -DOPT_I386 + -DREAL_IS_FLOAT + -DNOXFERMEM + -DHAVE_CONFIG_H + -DEOVERFLOW=75 + -Dlseek=_lseek + -Dread=_read + -Dstrdup=_strdup + -D_CRT_NONSTDC_NO_DEPRECATE + -D_DLL -D__USE_CRTIMP) + +include_directories(BEFORE ${REACTOS_SOURCE_DIR}/include/reactos/libs/libmpg123) + +add_library(libmpg123 + compat.c + dct64.c + dct64_i386.c + equalizer.c + feature.c + format.c + frame.c + icy.c + icy2utf8.c + id3.c + index.c + layer1.c + layer2.c + layer3.c + libmpg123.c + ntom.c + optimize.c + parse.c + readers.c + stringbuf.c + synth.c + synth_8bit.c + synth_real.c + synth_s32.c + tabinit.c) + +add_dependencies(libmpg123 psdk) diff --git a/reactos/lib/3rdparty/libsamplerate/CMakeLists.txt b/reactos/lib/3rdparty/libsamplerate/CMakeLists.txt new file mode 100644 index 00000000000..d1864e1f763 --- /dev/null +++ b/reactos/lib/3rdparty/libsamplerate/CMakeLists.txt @@ -0,0 +1,9 @@ + +list(APPEND SOURCE + samplerate.c + src_linear.c + src_sinc.c + src_zoh.c) + +add_library(libsamplerate ${SOURCE}) +add_dependencies(libsamplerate psdk) \ No newline at end of file diff --git a/reactos/lib/3rdparty/libwine/CMakeLists.txt b/reactos/lib/3rdparty/libwine/CMakeLists.txt new file mode 100644 index 00000000000..1a243a2da2a --- /dev/null +++ b/reactos/lib/3rdparty/libwine/CMakeLists.txt @@ -0,0 +1,13 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +add_definitions(-D__WINESRC__) + +list(APPEND SOURCE + config.c + debug_ros.c + loader.c + string.c) + +add_library(wine ${SOURCE}) + +add_library(wineldr loader.c) diff --git a/reactos/lib/3rdparty/libxml2/CMakeLists.txt b/reactos/lib/3rdparty/libxml2/CMakeLists.txt new file mode 100644 index 00000000000..e8c3ea20a95 --- /dev/null +++ b/reactos/lib/3rdparty/libxml2/CMakeLists.txt @@ -0,0 +1,63 @@ + +include_directories( + . + include) + +add_definitions( + -D__MINGW32__ + -DLIBXML_STATIC + -D_REENTRANT + -DHAVE_WIN32_THREADS + -D_MBCS + -D_WINDOWS + -DWIN32 + -DHAVE_CONFIG_H + -D_DLL -D__USE_CRTIMP) + +list(APPEND SOURCE + c14n.c + catalog.c + chvalid.c + debugXML.c + dict.c + DOCBparser.c + encoding.c + entities.c + error.c + globals.c + hash.c + HTMLparser.c + HTMLtree.c + legacy.c + list.c + nanoftp.c + nanohttp.c + parser.c + parserInternals.c + pattern.c + relaxng.c + SAX.c + SAX2.c + threads.c + tree.c + uri.c + valid.c + xinclude.c + xlink.c + xmlIO.c + xmlmemory.c + xmlreader.c + xmlregexp.c + xmlmodule.c + xmlsave.c + xmlschemas.c + xmlschemastypes.c + xmlunicode.c + xmlwriter.c + xpath.c + xpointer.c + xmlstring.c) + +add_library(libxml2 ${SOURCE}) +target_link_libraries(libxml2 oldnames) +add_dependencies(libxml2 psdk) diff --git a/reactos/lib/3rdparty/mingw/CMakeLists.txt b/reactos/lib/3rdparty/mingw/CMakeLists.txt new file mode 100644 index 00000000000..cbbca9ca933 --- /dev/null +++ b/reactos/lib/3rdparty/mingw/CMakeLists.txt @@ -0,0 +1,78 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/mingw-w64) + +add_definitions(-D_CRTBLD) + +if(NOT MSVC) + add_definitions(-Wno-main) +endif() + +list(APPEND MINGW_COMMON_SOURCE + _newmode.c + atonexit.c + binmode.c + charmax.c + cinitexe.c + CRT_glob.c + crt_handler.c + dllentry.c + gs_support.c + merr.c + mingw_helpers.c + natstart.c + pesect.c + pseudo-reloc.c + pseudo-reloc-list.c + tlsmcrt.c + tlsmthread.c + tlssup.c + tlsthrd.c + txtmode.c + wildcard.c + xncommod.c + xthdloc.c + xtxtmode.c + ofmt_stub.c + cxa_pure_virtual.c) + +if(MSVC) + list(APPEND MINGW_COMMON_SOURCE mscmain.c) +else() + list(APPEND MINGW_COMMON_SOURCE gccmain.c) +endif() + +add_library(mingw_common ${MINGW_COMMON_SOURCE}) + +if(NOT MSVC) + target_link_libraries(mingw_common oldnames) +endif() + +set_target_properties(mingw_common PROPERTIES COMPILE_DEFINITIONS _M_CEE_PURE) +add_dependencies(mingw_common psdk) + +add_library(mingw_main crt0_c.c crtexe.c dllargv.c) +set_property(TARGET mingw_main PROPERTY COMPILE_DEFINITIONS _DLL __USE_CRTIMP) +add_dependencies(mingw_main psdk) + +add_library(mingw_wmain crt0_w.c crtexe.c dllargv.c) +set_property(TARGET mingw_wmain PROPERTY COMPILE_DEFINITIONS WPRFLAG UNICODE _UNICODE) +add_dependencies(mingw_wmain psdk) + +add_library(mingw_dllmain crtdll.c dllargv.c) +set_property(TARGET mingw_dllmain PROPERTY COMPILE_DEFINITIONS CRTDLL _WINDOWS_) +add_dependencies(mingw_dllmain psdk) + +if(NOT MSVC) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/liboldnames.a + COMMAND ${MINGW_PREFIX}dlltool --def ${CMAKE_CURRENT_SOURCE_DIR}/moldname-msvcrt.def --kill-at --output-lib ${CMAKE_CURRENT_BINARY_DIR}/liboldnames.a + COMMAND ${MINGW_PREFIX}ar -rc ${CMAKE_CURRENT_BINARY_DIR}/liboldnames.a) + + set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/liboldnames.a PROPERTIES GENERATED TRUE) + + add_custom_target(oldnames ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/liboldnames.a) +endif() + +add_library(getopt getopt.c) +set_property(TARGET getopt PROPERTY COMPILE_DEFINITIONS _DLL __USE_CRTIMP) +add_dependencies(getopt psdk) diff --git a/reactos/lib/3rdparty/mingw/mscmain.c b/reactos/lib/3rdparty/mingw/mscmain.c new file mode 100644 index 00000000000..361d04a7691 --- /dev/null +++ b/reactos/lib/3rdparty/mingw/mscmain.c @@ -0,0 +1,43 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the w64 mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#include +#include + +int _fltused; + +void +__do_global_dtors (void) +{ + +} + +void +__do_global_ctors (void) +{ + +} + +BOOL +WINAPI +_CRT_INIT0(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved) +{ + return TRUE; +} + +static int initialized = 0; + +void +__main (void) +{ + if (!initialized) + { + initialized = 1; + __do_global_ctors (); + } +} + + diff --git a/reactos/lib/3rdparty/zlib/CMakeLists.txt b/reactos/lib/3rdparty/zlib/CMakeLists.txt new file mode 100644 index 00000000000..7233ad5a3d4 --- /dev/null +++ b/reactos/lib/3rdparty/zlib/CMakeLists.txt @@ -0,0 +1,25 @@ + +add_definitions(-DNO_VIZ) + +list(APPEND SOURCE + adler32.c + compress.c + crc32.c + deflate.c + gzclose.c + gzlib.c + gzread.c + gzwrite.c + infback.c + inffast.c + inflate.c + inftrees.c + trees.c + uncompr.c + zutil.c) + +if(CMAKE_CROSSCOMPILING) + add_library(zlib ${SOURCE}) +else() + add_library(zlibhost ${SOURCE}) +endif() diff --git a/reactos/lib/CMakeLists.txt b/reactos/lib/CMakeLists.txt new file mode 100644 index 00000000000..6cfd4567c4a --- /dev/null +++ b/reactos/lib/CMakeLists.txt @@ -0,0 +1,30 @@ + +add_subdirectory(cmlib) +add_subdirectory(newinflib) + +if(CMAKE_CROSSCOMPILING) + +add_subdirectory(3rdparty) +add_subdirectory(atl) +add_subdirectory(cportlib) +add_subdirectory(dnslib) +add_subdirectory(drivers) +add_subdirectory(epsapi) +add_subdirectory(fslib) +add_subdirectory(lsalib) +#add_subdirectory(nls) +add_subdirectory(ppcmmu) +add_subdirectory(pseh) +add_subdirectory(recyclebin) +add_subdirectory(rossym_new) +add_subdirectory(rtl) +add_subdirectory(sdk) +add_subdirectory(smlib) +add_subdirectory(tdilib) + +else() + +add_subdirectory(host/wcsfuncs) +add_subdirectory(3rdparty/zlib) + +endif() diff --git a/reactos/lib/atl/CMakeLists.txt b/reactos/lib/atl/CMakeLists.txt new file mode 100644 index 00000000000..ea353fe542f --- /dev/null +++ b/reactos/lib/atl/CMakeLists.txt @@ -0,0 +1,8 @@ + +add_definitions( + -DUNICODE -D_UNICODE + -DROS_Headers) + +add_library(atlnew atlbase.cpp atlcore.cpp) +add_dependencies(atlnew psdk) + diff --git a/reactos/lib/cmlib/CMakeLists.txt b/reactos/lib/cmlib/CMakeLists.txt new file mode 100644 index 00000000000..0de4e4de151 --- /dev/null +++ b/reactos/lib/cmlib/CMakeLists.txt @@ -0,0 +1,25 @@ + +add_definitions( + -D_NTOSKRNL_ + -D_NTSYSTEM_ + -DNASSERT) + +list(APPEND SOURCE + cminit.c + hivebin.c + hivecell.c + hiveinit.c + hivesum.c + hivewrt.c) + +if(CMAKE_CROSSCOMPILING) + add_library(cmlib ${SOURCE}) + add_dependencies(cmlib bugcodes) +else() + add_definitions( + -DWINE_UNICODE_API= + -D__NO_CTYPE_INLINES + -DCMLIB_HOST) + add_library(cmlibhost ${SOURCE}) + target_link_libraries(cmlibhost unicode) +endif() diff --git a/reactos/lib/cportlib/CMakeLists.txt b/reactos/lib/cportlib/CMakeLists.txt new file mode 100644 index 00000000000..6e10d6bd5cb --- /dev/null +++ b/reactos/lib/cportlib/CMakeLists.txt @@ -0,0 +1,2 @@ + +add_library(cportlib cport.c) diff --git a/reactos/lib/dnslib/CMakeLists.txt b/reactos/lib/dnslib/CMakeLists.txt new file mode 100644 index 00000000000..f726f758e17 --- /dev/null +++ b/reactos/lib/dnslib/CMakeLists.txt @@ -0,0 +1,26 @@ + +include_directories(inc) + +add_definitions(-DUNICODE -D_UNICODE) + +list(APPEND SOURCE + addr.c + debug.c + dnsaddr.c + dnsutil.c + flatbuf.c + hostent.c + ip6.c + memory.c + name.c + print.c + record.c + rrprint.c + sablob.c + straddr.c + string.c + table.c + utf8.c) + +add_library(dnslib ${SOURCE}) +add_dependencies(dnslib psdk) \ No newline at end of file diff --git a/reactos/lib/drivers/CMakeLists.txt b/reactos/lib/drivers/CMakeLists.txt new file mode 100644 index 00000000000..72024e812df --- /dev/null +++ b/reactos/lib/drivers/CMakeLists.txt @@ -0,0 +1,6 @@ + +add_subdirectory(chew) +add_subdirectory(csq) +add_subdirectory(ip) +add_subdirectory(oskittcp) +add_subdirectory(sound) diff --git a/reactos/lib/drivers/chew/CMakeLists.txt b/reactos/lib/drivers/chew/CMakeLists.txt new file mode 100644 index 00000000000..8f7b51762b5 --- /dev/null +++ b/reactos/lib/drivers/chew/CMakeLists.txt @@ -0,0 +1,4 @@ + +add_definitions(-D_NTOSKRNL_) +add_library(chew workqueue.c) +add_dependencies(chew bugcodes) \ No newline at end of file diff --git a/reactos/lib/drivers/csq/CMakeLists.txt b/reactos/lib/drivers/csq/CMakeLists.txt new file mode 100644 index 00000000000..81d1ed0e880 --- /dev/null +++ b/reactos/lib/drivers/csq/CMakeLists.txt @@ -0,0 +1,4 @@ + +add_definitions(-D_NTOSKRNL_) +add_library(csq csq.c) +add_dependencies(csq bugcodes) \ No newline at end of file diff --git a/reactos/lib/drivers/ip/CMakeLists.txt b/reactos/lib/drivers/ip/CMakeLists.txt new file mode 100644 index 00000000000..fbdb2d1b099 --- /dev/null +++ b/reactos/lib/drivers/ip/CMakeLists.txt @@ -0,0 +1,35 @@ + +add_definitions(-D__NTDRIVER__) + +include_directories( + BEFORE ${REACTOS_SOURCE_DIR}/drivers/network/tcpip/include + ${REACTOS_SOURCE_DIR}/lib/drivers/oskittcp/include) + +if(ARCH MATCHES i386) + list(APPEND SOURCE network/i386/checksum.S) +endif() + +list(APPEND SOURCE + network/address.c + network/arp.c + network/checksum.c + network/icmp.c + network/interface.c + network/ip.c + network/loopback.c + network/neighbor.c + network/ports.c + network/receive.c + network/router.c + network/routines.c + network/transmit.c + transport/datagram/datagram.c + transport/rawip/rawip.c + transport/tcp/accept.c + transport/tcp/event.c + transport/tcp/if.c + transport/tcp/tcp.c + transport/udp/udp.c) + +add_library(ip ${SOURCE}) +add_dependencies(ip bugcodes) diff --git a/reactos/lib/drivers/oskittcp/CMakeLists.txt b/reactos/lib/drivers/oskittcp/CMakeLists.txt new file mode 100644 index 00000000000..232dbd7cf2e --- /dev/null +++ b/reactos/lib/drivers/oskittcp/CMakeLists.txt @@ -0,0 +1,51 @@ + +include_directories( + BEFORE include/freebsd/src/sys + include/freebsd + include/freebsd/sys/include + include/freebsd/dev/include + include/freebsd/net/include + include) + +add_definitions( + -D__NTDRIVER__ + -DKERNEL + -DOSKIT) + +list(APPEND SOURCE + oskittcp/defaults.c + oskittcp/in.c + oskittcp/in_cksum.c + oskittcp/in_pcb.c + oskittcp/in_proto.c + oskittcp/in_rmx.c + oskittcp/inet_ntoa.c + oskittcp/interface.c + oskittcp/ip_input.c + oskittcp/ip_output.c + oskittcp/kern_clock.c + oskittcp/kern_subr.c + oskittcp/osenv.c + oskittcp/param.c + oskittcp/radix.c + oskittcp/random.c + oskittcp/raw_cb.c + oskittcp/raw_ip.c + oskittcp/raw_usrreq.c + oskittcp/route.c + oskittcp/rtsock.c + oskittcp/scanc.c + oskittcp/sleep.c + oskittcp/tcp_input.c + oskittcp/tcp_output.c + oskittcp/tcp_subr.c + oskittcp/tcp_usrreq.c + oskittcp/tcp_debug.c + oskittcp/tcp_timer.c + oskittcp/uipc_domain.c + oskittcp/uipc_mbuf.c + oskittcp/uipc_socket.c + oskittcp/uipc_socket2.c) + +add_library(oskittcp ${SOURCE}) +add_dependencies(oskittcp bugcodes) diff --git a/reactos/lib/drivers/sound/CMakeLists.txt b/reactos/lib/drivers/sound/CMakeLists.txt new file mode 100644 index 00000000000..17bc771d157 --- /dev/null +++ b/reactos/lib/drivers/sound/CMakeLists.txt @@ -0,0 +1,8 @@ + +add_subdirectory(legacy) +add_subdirectory(mmebuddy) +add_subdirectory(mment4) +add_subdirectory(mmixer) +add_subdirectory(shared) +add_subdirectory(soundblaster) +add_subdirectory(uartmidi) diff --git a/reactos/lib/drivers/sound/legacy/CMakeLists.txt b/reactos/lib/drivers/sound/legacy/CMakeLists.txt new file mode 100644 index 00000000000..30624092be3 --- /dev/null +++ b/reactos/lib/drivers/sound/legacy/CMakeLists.txt @@ -0,0 +1,11 @@ + +add_definitions( + -D__NTDRIVER__ + -DKERNEL) + +include_directories( + ${REACTOS_SOURCE_DIR}/lib/drivers/sound/soundblaster + ${REACTOS_SOURCE_DIR}/include/reactos/libs/sound) + +add_library(audioleg devname.c hardware.c) +add_dependencies(audioleg bugcodes) diff --git a/reactos/lib/drivers/sound/mmebuddy/CMakeLists.txt b/reactos/lib/drivers/sound/mmebuddy/CMakeLists.txt new file mode 100644 index 00000000000..19af9789f1c --- /dev/null +++ b/reactos/lib/drivers/sound/mmebuddy/CMakeLists.txt @@ -0,0 +1,29 @@ + +add_definitions( + -DUNICODE -D_UNICODE + -DNDEBUG=1) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/libs/sound) + +list(APPEND SOURCE + capabilities.c + devicelist.c + deviceinstance.c + functiontable.c + mmewrap.c + reentrancy.c + utility.c + kernel.c + thread.c + auxiliary/auxMessage.c + midi/midMessage.c + midi/modMessage.c + mixer/mxdMessage.c + wave/widMessage.c + wave/wodMessage.c + wave/format.c + wave/header.c + wave/streaming.c) + +add_library(mmebuddy ${SOURCE}) +add_dependencies(mmebuddy psdk) diff --git a/reactos/lib/drivers/sound/mment4/CMakeLists.txt b/reactos/lib/drivers/sound/mment4/CMakeLists.txt new file mode 100644 index 00000000000..da02da9f7f3 --- /dev/null +++ b/reactos/lib/drivers/sound/mment4/CMakeLists.txt @@ -0,0 +1,14 @@ + +add_definitions( + -DUNICODE -D_UNICODE + -DDEBUG_NT4=1) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/libs/sound) + +list(APPEND SOURCE + detect.c + registry.c + control.c) + +add_library(mment4 ${SOURCE}) +add_dependencies(mment4 psdk) diff --git a/reactos/lib/drivers/sound/mmixer/CMakeLists.txt b/reactos/lib/drivers/sound/mmixer/CMakeLists.txt new file mode 100644 index 00000000000..4edfc124e47 --- /dev/null +++ b/reactos/lib/drivers/sound/mmixer/CMakeLists.txt @@ -0,0 +1,19 @@ + +add_definitions( + -DUNICODE -D_UNICODE + -DNDEBUG=1) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/libs/sound) + +list(APPEND SOURCE + controls.c + filter.c + midi.c + mixer.c + sup.c + wave.c + topology.c) + +add_library(mmixer ${SOURCE}) +add_dependencies(mmixer bugcodes) + diff --git a/reactos/lib/drivers/sound/shared/CMakeLists.txt b/reactos/lib/drivers/sound/shared/CMakeLists.txt new file mode 100644 index 00000000000..8a007d83ee5 --- /dev/null +++ b/reactos/lib/drivers/sound/shared/CMakeLists.txt @@ -0,0 +1,11 @@ + +add_definitions( + -D__NTDRIVER__ + -DKERNEL) + +include_directories( + ${REACTOS_SOURCE_DIR}/lib/drivers/sound/soundblaster + ${REACTOS_SOURCE_DIR}/include/reactos/libs/sound) + +add_library(audio time.c) +add_dependencies(audio bugcodes) diff --git a/reactos/lib/drivers/sound/soundblaster/CMakeLists.txt b/reactos/lib/drivers/sound/soundblaster/CMakeLists.txt new file mode 100644 index 00000000000..96648442ea2 --- /dev/null +++ b/reactos/lib/drivers/sound/soundblaster/CMakeLists.txt @@ -0,0 +1,16 @@ + +add_definitions( + -D__NTDRIVER__ + -DKERNEL) + +include_directories(BEFORE ${REACTOS_SOURCE_DIR}/include/reactos/libs/sound) + +list(APPEND SOURCE + dsp_io.c + version.c + speaker.c + rate.c + mixer.c) + +add_library(soundblaster ${SOURCE}) +add_dependencies(soundblaster bugcodes) diff --git a/reactos/lib/drivers/sound/uartmidi/CMakeLists.txt b/reactos/lib/drivers/sound/uartmidi/CMakeLists.txt new file mode 100644 index 00000000000..017e0af3843 --- /dev/null +++ b/reactos/lib/drivers/sound/uartmidi/CMakeLists.txt @@ -0,0 +1,11 @@ + +add_definitions( + -D__NTDRIVER__ + -DKERNEL) + +include_directories( + ${REACTOS_SOURCE_DIR}/lib/drivers/sound/soundblaster + ${REACTOS_SOURCE_DIR}/include/reactos/libs/sound) + +add_library(uartmidi midiuart.c) +add_dependencies(uartmidi bugcodes) diff --git a/reactos/lib/epsapi/CMakeLists.txt b/reactos/lib/epsapi/CMakeLists.txt new file mode 100644 index 00000000000..4eb87dfe28a --- /dev/null +++ b/reactos/lib/epsapi/CMakeLists.txt @@ -0,0 +1,8 @@ + +add_library(epsapi + enum/drivers.c + enum/modules.c + enum/processes.c) + +add_dependencies(epsapi psdk) + diff --git a/reactos/lib/fslib/CMakeLists.txt b/reactos/lib/fslib/CMakeLists.txt new file mode 100644 index 00000000000..0d523f6f463 --- /dev/null +++ b/reactos/lib/fslib/CMakeLists.txt @@ -0,0 +1,5 @@ + +add_subdirectory(ext2lib) +add_subdirectory(ntfslib) +add_subdirectory(vfatlib) +add_subdirectory(vfatxlib) diff --git a/reactos/lib/fslib/ext2lib/CMakeLists.txt b/reactos/lib/fslib/ext2lib/CMakeLists.txt new file mode 100644 index 00000000000..c9122d3b788 --- /dev/null +++ b/reactos/lib/fslib/ext2lib/CMakeLists.txt @@ -0,0 +1,13 @@ + +list(APPEND SOURCE + Badblock.c + Bitmap.c + Disk.c + Group.c + Inode.c + Memory.c + Mke2fs.c + Super.c + Uuid.c) +add_library(ext2lib ${SOURCE}) +add_dependencies(ext2lib psdk) diff --git a/reactos/lib/fslib/ntfslib/CMakeLists.txt b/reactos/lib/fslib/ntfslib/CMakeLists.txt new file mode 100644 index 00000000000..77a14234e28 --- /dev/null +++ b/reactos/lib/fslib/ntfslib/CMakeLists.txt @@ -0,0 +1,4 @@ + +add_library(ntfslib ntfslib.c) +add_dependencies(ntfslib psdk) + diff --git a/reactos/lib/fslib/vfatlib/CMakeLists.txt b/reactos/lib/fslib/vfatlib/CMakeLists.txt new file mode 100644 index 00000000000..675bbbd16af --- /dev/null +++ b/reactos/lib/fslib/vfatlib/CMakeLists.txt @@ -0,0 +1,15 @@ + +list(APPEND SOURCE + check/boot.c + check/check.c + check/common.c + check/fat.c + check/file.c + check/io.c + check/lfn.c + fat12.c + fat16.c + fat32.c + vfatlib.c) +add_library(vfatlib ${SOURCE}) +add_dependencies(vfatlib psdk) diff --git a/reactos/lib/fslib/vfatxlib/CMakeLists.txt b/reactos/lib/fslib/vfatxlib/CMakeLists.txt new file mode 100644 index 00000000000..94ba818ea7b --- /dev/null +++ b/reactos/lib/fslib/vfatxlib/CMakeLists.txt @@ -0,0 +1,4 @@ + +add_library(vfatxlib fatx.c vfatxlib.c) +add_dependencies(vfatxlib psdk) + diff --git a/reactos/lib/host/wcsfuncs/CMakeLists.txt b/reactos/lib/host/wcsfuncs/CMakeLists.txt new file mode 100644 index 00000000000..5f16bcbfbbd --- /dev/null +++ b/reactos/lib/host/wcsfuncs/CMakeLists.txt @@ -0,0 +1,2 @@ + +add_library(host_wcsfuncs wcsfuncs.c) diff --git a/reactos/lib/inflib/CMakeLists.txt b/reactos/lib/inflib/CMakeLists.txt new file mode 100644 index 00000000000..bd629b788a9 --- /dev/null +++ b/reactos/lib/inflib/CMakeLists.txt @@ -0,0 +1,15 @@ + +set(GLOBAL_FILES infcore.c infget.c infput.c) + +if(CMAKE_CROSSCOMPILING) + file(GLOB_RECURSE SOURCE "infros*.c") + add_library(inflib ${GLOBAL_FILES} ${SOURCE}) + add_dependencies(inflib psdk) +else() + file(GLOB_RECURSE SOURCE "infhost*.c") + add_definitions(-D__NO_CTYPE_INLINES -DINFLIB_HOST) + if(NOT MSVC) + add_definitions(-Wpointer-arith -Wconversion -Wstrict-prototypes -Wmissing-prototypes) + endif() + add_library(inflibhost ${GLOBAL_FILES} ${SOURCE}) +endif() diff --git a/reactos/lib/lsalib/CMakeLists.txt b/reactos/lib/lsalib/CMakeLists.txt new file mode 100644 index 00000000000..fad7b70a634 --- /dev/null +++ b/reactos/lib/lsalib/CMakeLists.txt @@ -0,0 +1,3 @@ + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/subsys) +add_library(lsalib lsa.c) diff --git a/reactos/lib/newinflib/CMakeLists.txt b/reactos/lib/newinflib/CMakeLists.txt new file mode 100644 index 00000000000..901bd996132 --- /dev/null +++ b/reactos/lib/newinflib/CMakeLists.txt @@ -0,0 +1,28 @@ + +list(APPEND GLOBAL_FILES + infcore.c + infget.c + infput.c) + +if(CMAKE_CROSSCOMPILING) + list(APPEND SOURCE + infrosgen.c + infrosget.c + infrosput.c) + + add_library(inflib ${GLOBAL_FILES} ${SOURCE}) + add_dependencies(inflib psdk) +else() + list(APPEND SOURCE + infhostgen.c + infhostget.c + infhostput.c + infhostrtl.c) + + add_definitions(-DWINE_UNICODE_API= -D__NO_CTYPE_INLINES -DINFLIB_HOST -DUSE_HOST_WCSFUNCS) + if(NOT MSVC) + add_definitions(-Wpointer-arith -Wwrite-strings) + endif() + add_library(inflibhost ${GLOBAL_FILES} ${SOURCE}) + target_link_libraries(inflibhost unicode) +endif() diff --git a/reactos/lib/nls/CMakeLists.txt b/reactos/lib/nls/CMakeLists.txt new file mode 100644 index 00000000000..4417ccc79e2 --- /dev/null +++ b/reactos/lib/nls/CMakeLists.txt @@ -0,0 +1,4 @@ + +add_subdirectory(idna) +add_subdirectory(normalize) +add_subdirectory(scripts) diff --git a/reactos/lib/nls/idna/CMakeLists.txt b/reactos/lib/nls/idna/CMakeLists.txt new file mode 100644 index 00000000000..716f6651d85 --- /dev/null +++ b/reactos/lib/nls/idna/CMakeLists.txt @@ -0,0 +1,8 @@ + +include_directories(${REACTOS_SOURCE_DIR}/lib/3rdparty/icu4ros/icu/source/common) + +# Re-definition of WINVER +remove_definitions(-DWINVER=0x502) # This removes a top-level definition: The compiler never gets it on the command-line +add_definitions(-DWINVER=0x600) # And now we add our own + +add_library(idna idna.cpp nameprep.cpp) diff --git a/reactos/lib/nls/normalize/CMakeLists.txt b/reactos/lib/nls/normalize/CMakeLists.txt new file mode 100644 index 00000000000..cf13b7ffa62 --- /dev/null +++ b/reactos/lib/nls/normalize/CMakeLists.txt @@ -0,0 +1,8 @@ + +include_directories(${REACTOS_SOURCE_DIR}/lib/3rdparty/icu4ros/icu/source/common) + +# Re-definition of WINVER +remove_definitions(-DWINVER=0x502) # This removes a top-level definition: The compiler never gets it on the command-line +add_definitions(-DWINVER=0x600) # And now we add our own + +add_library(normalize normalize.cpp) diff --git a/reactos/lib/nls/scripts/CMakeLists.txt b/reactos/lib/nls/scripts/CMakeLists.txt new file mode 100644 index 00000000000..56e483bca0f --- /dev/null +++ b/reactos/lib/nls/scripts/CMakeLists.txt @@ -0,0 +1,8 @@ + +include_directories(${REACTOS_SOURCE_DIR}/lib/3rdparty/icu4ros/icu/source/common) + +# Re-definition of WINVER +remove_definitions(-DWINVER=0x502) # This removes a top-level definition: The compiler never gets it on the command-line +add_definitions(-DWINVER=0x600) # And now we add our own + +add_library(scripts scripts.cpp) diff --git a/reactos/lib/ppcmmu/CMakeLists.txt b/reactos/lib/ppcmmu/CMakeLists.txt new file mode 100644 index 00000000000..cfc19367eed --- /dev/null +++ b/reactos/lib/ppcmmu/CMakeLists.txt @@ -0,0 +1,8 @@ + +list(APPEND SOURCE dummy.c) + +if(ARCH MATCHES powerpc) + list(APPEND SOURCE mmuutil.c) +endif() + +add_library(ppcmmu ${SOURCE}) diff --git a/reactos/lib/pseh/CMakeLists.txt b/reactos/lib/pseh/CMakeLists.txt new file mode 100644 index 00000000000..23207e13a8a --- /dev/null +++ b/reactos/lib/pseh/CMakeLists.txt @@ -0,0 +1,29 @@ + +if(NOT MSVC) + + list(APPEND SOURCE framebased.c) + if(ARCH MATCHES i386) + list(APPEND SOURCE + i386/framebased.S + i386/framebased-gcchack.c + i386/framebased-gcchack-asm.S) + elseif(ARCH MATCHES amd64) + list(APPEND SOURCE amd64/framebased.S) + elseif(ARCH MATCHES powerpc) + list(APPEND SOURCE powerpc/framebased.S) + endif() + + add_library(pseh ${SOURCE}) + add_dependencies(pseh psdk) + +else() + + list(APPEND SOURCE + dummy.c + i386/seh.s + i386/seh_prolog.s) + + add_library(pseh ${SOURCE}) + add_dependencies(pseh asm) + +endif() diff --git a/reactos/lib/pseh/dummy.c b/reactos/lib/pseh/dummy.c new file mode 100644 index 00000000000..c21b66d7297 --- /dev/null +++ b/reactos/lib/pseh/dummy.c @@ -0,0 +1,2 @@ + /* intentionally empty file */ + diff --git a/reactos/lib/pseh/i386/seh.s b/reactos/lib/pseh/i386/seh.s new file mode 100644 index 00000000000..6fde1e181f7 --- /dev/null +++ b/reactos/lib/pseh/i386/seh.s @@ -0,0 +1,441 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS CRT + * FILE: lib/crt/misc/i386/seh.S + * PURPOSE: SEH Support for the CRT + * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) + */ + +/* INCLUDES ******************************************************************/ + +#include + +#define DISPOSITION_DISMISS 0 +#define DISPOSITION_CONTINUE_SEARCH 1 +#define DISPOSITION_COLLIDED_UNWIND 3 + +#define EXCEPTION_EXIT_UNWIND 4 +#define EXCEPTION_UNWINDING 2 + + +EXTERN _RtlUnwind@16:PROC + +/* GLOBALS *******************************************************************/ + +PUBLIC __global_unwind2 +PUBLIC __local_unwind2 +PUBLIC __abnormal_termination +PUBLIC __except_handler2 +PUBLIC __except_handler3 + +/* FUNCTIONS *****************************************************************/ + +.code +_unwind_handler: + + /* Check if we were unwinding and continue search if not */ + mov ecx, [esp+4] + test dword ptr [ecx+4], EXCEPTION_EXIT_UNWIND + EXCEPTION_UNWINDING + mov eax, DISPOSITION_CONTINUE_SEARCH + jz unwind_handler_return + + /* We have a collision, do a local unwind */ + mov eax, [esp+20] + push ebp + mov ebp, [eax+16] + mov edx, [eax+40] + push edx + mov edx, [eax+36] + push edx + call __local_unwind2 + add esp, 8 + pop ebp + + /* Set new try level */ + mov eax, [esp+8] + mov edx, [esp+16] + mov [edx], eax + + /* Return collided unwind */ + mov eax, DISPOSITION_COLLIDED_UNWIND + +unwind_handler_return: + ret + + +__global_unwind2: + + /* Create stack and save all registers */ + push ebp + mov ebp, esp + push ebx + push esi + push edi + push ebp + + /* Call unwind */ + push 0 + push 0 + push glu_return + push [ebp+8] + call _RtlUnwind@16 + +glu_return: + /* Restore registers and return */ + pop ebp + pop edi + pop esi + pop ebx + mov esp, ebp + pop ebp + ret + + +__abnormal_termination: + + /* Assume false */ + xor eax, eax + + /* Check if the handler is the unwind handler */ + mov ecx, fs:0 + cmp dword ptr [ecx+4], offset _unwind_handler + jne short ab_return + + /* Get the try level */ + mov edx, [ecx+12] + mov edx, [edx+12] + + /* Compare it */ + cmp [ecx+8], edx + jne ab_return + + /* Return true */ + mov eax, 1 + + /* Return */ +ab_return: + ret + + +__local_unwind2: + + /* Save volatiles */ + push ebx + push esi + push edi + + /* Get the exception registration */ + mov eax, [esp+16] + + /* Setup SEH to protect the unwind */ + push ebp + push eax + push -2 + push offset _unwind_handler + push fs:0 + mov fs:0, esp + +unwind_loop: + /* Get the exception registration and try level */ + mov eax, [esp+36] + mov ebx, [eax+8] + mov esi, [eax+12] + + /* Validate the unwind */ + cmp esi, -1 + je unwind_return + cmp dword ptr [esp+40], -1 + je unwind_ok + cmp esi, [esp+40] + jbe unwind_return + +unwind_ok: + /* Get the new enclosing level and save it */ + lea esi, [esi+esi*2] + mov ecx, [ebx+esi*4] + mov [esp+8], ecx + mov [eax+12], ecx + + /* Check the filter type */ + cmp dword ptr [ebx+esi*4+4], 0 + jnz __NLG_Return2 + + /* FIXME: NLG Notification */ + + /* Call the handler */ + call dword ptr [ebx+esi*4+8] + +__NLG_Return2: + /* Unwind again */ + jmp unwind_loop + +unwind_return: + /* Cleanup SEH */ + pop fs:0 + add esp, 16 + pop edi + pop esi + pop ebx + ret + + +__except_handler2: + + /* Setup stack and save volatiles */ + push ebp + mov ebp, esp + sub esp, 8 + push ebx + push esi + push edi + push ebp + + /* Clear direction flag */ + cld + + /* Get exception registration and record */ + mov ebx, [ebp+12] + mov eax, [ebp+8] + + /* Check if this is an unwind */ + test dword ptr [eax+4], EXCEPTION_EXIT_UNWIND + EXCEPTION_UNWINDING + jnz except_unwind2 + + /* Save exception pointers structure */ + mov [ebp-8], eax + mov eax, [ebp+16] + mov [ebp-4], eax + lea eax, [ebp-8] + mov [ebx+20], eax + + /* Get the try level and scope table */ + mov esi, [ebx+12] + mov edi, [ebx+8] + +except_loop2: + /* Validate try level */ + cmp esi, -1 + je except_search2 + + /* Check if this is the termination handler */ + lea ecx, [esi+esi*2] + cmp dword ptr [edi+ecx*4+4], 0 + jz except_continue2 + + /* Save registers and call filter, then restore them */ + push esi + push ebp + mov ebp, [ebx+16] + call dword ptr [edi+ecx*4+4] + pop ebp + pop esi + + /* Restore ebx and check the result */ + mov ebx, [ebp+12] + or eax, eax + jz except_continue2 + js except_dismiss2 + + /* So this is an accept, call the termination handlers */ + mov edi, [ebx+8] + push ebx + call __global_unwind2 + add esp, 4 + + /* Restore ebp */ + mov ebp, [ebx+16] + + /* Do local unwind */ + push esi + push ebx + call __local_unwind2 + add esp, 8 + + /* Set new try level */ + lea ecx, [esi+esi*2] + mov eax, [edi+ecx*4] + mov [ebx+12], eax + + /* Call except handler */ + call dword ptr [edi+ecx*4+8] + +except_continue2: + /* Reload try level and except again */ + mov edi, [ebx+8] + lea ecx, [esi+esi*2] + mov esi, [edi+ecx*4] + jmp except_loop2 + +except_dismiss2: + /* Dismiss it */ + mov eax, DISPOSITION_DISMISS + jmp except_return2 + +except_search2: + /* Continue searching */ + mov eax, DISPOSITION_CONTINUE_SEARCH + jmp except_return2 + + /* Do local unwind */ +except_unwind2: + push ebp + mov ebp, [ebx+16] + push -1 + push ebx + call __local_unwind2 + add esp, 8 + + /* Retore EBP and set return disposition */ + pop ebp + mov eax, DISPOSITION_CONTINUE_SEARCH + +except_return2: + /* Restore registers and stack */ + pop ebp + pop edi + pop esi + pop ebx + mov esp, ebp + pop ebp + ret + + +__except_handler3: + + /* Setup stack and save volatiles */ + push ebp + mov ebp, esp + sub esp, 8 + push ebx + push esi + push edi + push ebp + + /* Clear direction flag */ + cld + + /* Get exception registration and record */ + mov ebx, [ebp+12] + mov eax, [ebp+8] + + /* Check if this is an unwind */ + test dword ptr [eax+4], EXCEPTION_EXIT_UNWIND + EXCEPTION_UNWINDING + jnz except_unwind3 + + /* Save exception pointers structure */ + mov [ebp-8], eax + mov eax, [ebp+16] + mov [ebp-4], eax + lea eax, [ebp-8] + mov [ebx-4], eax + + /* Get the try level and scope table */ + mov esi, [ebx+12] + mov edi, [ebx+8] + + /* FIXME: Validate the SEH exception */ + +except_loop3: + /* Validate try level */ + cmp esi, -1 + je except_search3 + + /* Check if this is the termination handler */ + lea ecx, [esi+esi*2] + mov eax, [edi+ecx*4+4] + or eax, eax + jz except_continue3 + + /* Save registers clear them all */ + push esi + push ebp + lea ebp, [ebx+16] + xor ebx, ebx + xor ecx, ecx + xor edx, edx + xor esi, esi + xor edi, edi + + /* Call the filter and restore our registers */ + call eax + pop ebp + pop esi + + /* Restore ebx and check the result */ + mov ebx, [ebp+12] + or eax, eax + jz except_continue3 + js except_dismiss3 + + /* So this is an accept, call the termination handlers */ + mov edi, [ebx+8] + push ebx + call __global_unwind2 + add esp, 4 + + /* Restore ebp */ + lea ebp, [ebx+16] + + /* Do local unwind */ + push esi + push ebx + call __local_unwind2 + add esp, 8 + + /* FIXME: Do NLG Notification */ + + /* Set new try level */ + lea ecx, [esi+esi*2] + mov eax, [edi+ecx*4] + mov [ebx+12], eax + + /* Clear registers and call except handler */ + mov eax, [edi+ecx*4+8] + xor ebx, ebx + xor ecx, ecx + xor edx, edx + xor esi, esi + xor edi, edi + call eax + +except_continue3: + /* Reload try level and except again */ + mov edi, [ebx+8] + lea ecx, [esi+esi*2] + mov esi, [edi+ecx*4] + jmp except_loop3 + +except_dismiss3: + /* Dismiss it */ + mov eax, DISPOSITION_DISMISS + jmp except_return3 + +except_search3: + /* Continue searching */ + mov eax, DISPOSITION_CONTINUE_SEARCH + jmp except_return3 + + /* Do local unwind */ +except_unwind3: + push ebp + mov ebp, [ebx+16] + push -1 + push ebx + call __local_unwind2 + add esp, 8 + + /* Retore EBP and set return disposition */ + pop ebp + mov eax, DISPOSITION_CONTINUE_SEARCH + +except_return3: + /* Restore registers and stack */ + pop ebp + pop edi + pop esi + pop ebx + mov esp, ebp + pop ebp + ret + +END diff --git a/reactos/lib/pseh/i386/seh_prolog.s b/reactos/lib/pseh/i386/seh_prolog.s new file mode 100644 index 00000000000..98b45baf97b --- /dev/null +++ b/reactos/lib/pseh/i386/seh_prolog.s @@ -0,0 +1,152 @@ +/* + * COPYRIGHT: GNU GPL, see COPYING in the top level directory + * PROJECT: ReactOS CRT + * FILE: lib/crt/misc/i386/seh_prolog.S + * PURPOSE: SEH Support for MSVC + * PROGRAMMERS: Timo Kreuzer + */ + +/* INCLUDES ******************************************************************/ + +#include + +EXTERN __except_handler3:PROC + +/* The very first thing a function compiled with MSVC containing SEH + * will do is call __SEH_prolog like this: + * + * push + * push
+ * call __SEH_prolog + * + * When entering the function the stack layout is like this: + * + * esp + 08: OLDFRAME.StackBytes + * esp + 04: OLDFRAME.SEHTable + * esp + 00: OLDFRAME.ReturnAddress + * + * __SEH_prolog will now setup the stack to the following layout: + * + * esp + N + 24: SEH_FRAME.OriginalEbp OLDFRAME.StackBytes + * esp + N + 20: SEH_FRAME.Disable OLDFRAME.SEHTable + * esp + N + 1C: SEH_FRAME.SEHTable OLDFRAME.ReturnAddress + * esp + N + 18: SEH_FRAME.Handler + * esp + N + 14: SEH_FRAME.PreviousRecord + * esp + N + 10: SEH_FRAME.unused + * esp + N + 0c: SEH_FRAME.NewEsp + * + * N bytes local variables + * ... + * esp + 08: SAFE_AREA.Ebx + * esp + 04: SAFE_AREA.Esi + * esp + 00: SAFE_AREA.Edi + * + * all this is documented here (with some minor errors): + * http://reactos-blog.blogspot.com/2009/08/inside-mind-of-reactos-developer.html + */ + +OLDFRAME_ReturnAddress = 0 /* 0x00 */ +OLDFRAME_SEHTable = 4 /* 0x04 */ +OLDFRAME_StackBytes = 8 /* 0x08 */ +OLDFRAME_Size = 12 /* 0x0c */ + +SEH_FRAME_NewEsp = 0 /* 0x00 */ +SEH_FRAME_unused = 4 /* 0x04 */ +SEH_FRAME_PreviousRecord = 8 /* 0x08 */ +SEH_FRAME_Handler = 12 /* 0x0c */ +SEH_FRAME_SEHTable = 16 /* 0x10 */ +SEH_FRAME_Disable = 20 /* 0x14 */ +SEH_FRAME_OriginalEbp = 24 /* 0x18 */ +SEH_FRAME_Size = 28 /* 0x1c */ + +SAFE_AREA_Edi = 0 /* 0x00 */ +SAFE_AREA_Esi = 4 /* 0x04 */ +SAFE_AREA_Ebx = 8 /* 0x08 */ +SAFE_AREA_Size = 12 /* 0x0c */ + + +.code + +PUBLIC __SEH_prolog +__SEH_prolog: + + /* Get the number of stack bytes to reserve */ + mov eax, [esp + OLDFRAME_StackBytes] + + /* Push address of __except_handler3 on the stack */ + push offset __except_handler3 + + /* Push the old exception record on the stack */ + push dword ptr fs:0 + + /* Adjust stack allocation, add size of the stack frame minus 2 pushes */ + add eax, SEH_FRAME_Size + SAFE_AREA_Size - OLDFRAME_Size - 8 + + /* Save old ebp, overwriting OLDFRAME.StackBytes */ + mov [esp + 8 + OLDFRAME_StackBytes], ebp + + /* Load new ebp, pointing to OLDFRAME.StackBytes */ + lea ebp, [esp + 8 + OLDFRAME_StackBytes] + + /* Allocate stack space */ + sub esp, eax + + /* Push the return address on the stack */ + push dword ptr [ebp - OLDFRAME_StackBytes + OLDFRAME_ReturnAddress] + + /* Get address of the SEH table */ + mov eax, [ebp + OLDFRAME_SEHTable] + + /* Save new esp */ + mov [ebp - SEH_FRAME_OriginalEbp + SEH_FRAME_NewEsp], esp + + /* Safe SEH table, overwriting OLDFRAME.ReturnAddress */ + mov [ebp - SEH_FRAME_OriginalEbp + SEH_FRAME_SEHTable], eax + + /* Safe the disable value, overwriting OLDFRAME.SEHTable */ + mov dword ptr [ebp - SEH_FRAME_OriginalEbp + SEH_FRAME_Disable], -1 + + /* Load the address of the new registration record */ + lea eax, [ebp - SEH_FRAME_OriginalEbp + SEH_FRAME_PreviousRecord] + + /* Save registers */ + mov [esp + SAFE_AREA_Edi], edi + mov [esp + SAFE_AREA_Esi], esi + mov [esp + SAFE_AREA_Ebx], ebx + + /* Enqueue the new record */ + mov fs:[0], eax + + /* Return to the caller */ + ret + + +PUBLIC __SEH_epilog +__SEH_epilog: + + /* Restore the previous exception registration record */ + mov ecx, [ebp - SEH_FRAME_OriginalEbp + SEH_FRAME_PreviousRecord] + mov fs:[0], ecx + + /* Restore saved registers */ + mov edi, [esp + 4 + SAFE_AREA_Edi] + mov esi, [esp + 4 + SAFE_AREA_Esi] + mov ebx, [esp + 4 + SAFE_AREA_Ebx] + + /* Get the return address */ + mov ecx, [esp] + + /* Clean up stack */ + mov esp, ebp + + /* Get previous ebp */ + mov ebp, [esp] + + /* Save return address */ + mov [esp], ecx + + /* Return to the caller */ + ret + + +END diff --git a/reactos/lib/recyclebin/CMakeLists.txt b/reactos/lib/recyclebin/CMakeLists.txt new file mode 100644 index 00000000000..d73f53cbb62 --- /dev/null +++ b/reactos/lib/recyclebin/CMakeLists.txt @@ -0,0 +1,12 @@ + +list(APPEND SOURCE + guid.c + recyclebin.c + recyclebin_generic.c + recyclebin_generic_enumerator.c + recyclebin_v5.c + recyclebin_v5_enumerator.c) + +add_library(recyclebin ${SOURCE}) +add_dependencies(recyclebin psdk) + diff --git a/reactos/lib/rossym/CMakeLists.txt b/reactos/lib/rossym/CMakeLists.txt new file mode 100644 index 00000000000..2b05860e247 --- /dev/null +++ b/reactos/lib/rossym/CMakeLists.txt @@ -0,0 +1,27 @@ + +if(MSVC) +add_library(rossym dummy.c) +else() +add_definitions(-D_NTSYSTEM_) +list(APPEND SOURCE + delete.c + dwarf386.c + dwarfabbrev.c + dwarfaranges.c + dwarfcfa.c + dwarfinfo.c + dwarfget.c + dwarfopen.c + dwarfpc.c + dwarfpubnames.c + find.c + fromfile.c + iofile.c + init.c + initkm.c + initum.c + pe.c + zwfile.c) +add_library(rossym ${SOURCE}) +add_dependencies(rossym psdk bugcodes) +endif() diff --git a/reactos/lib/rossym/compat.h b/reactos/lib/rossym/compat.h new file mode 100644 index 00000000000..64dc549f11c --- /dev/null +++ b/reactos/lib/rossym/compat.h @@ -0,0 +1,41 @@ +#ifndef _LIBMACH_COMPAT_H_ +#define _LIBMACH_COMPAT_H_ + +/* BSD like types */ +typedef signed char schar; +typedef unsigned char uchar; +typedef unsigned int uint; +typedef unsigned long ulong; +typedef unsigned long long uvlong; + +typedef unsigned short u16int; +typedef short s16int; +typedef unsigned int u32int; +typedef int s32int; +typedef unsigned long long u64int; +typedef long long s64int; + +#ifndef _WIN32 +typedef ulong size_t; +#endif + +#define offsetof(x,y) FIELD_OFFSET(x,y) +#define nil (0) + +#define nelem(arr) (sizeof((arr)[0]) / sizeof((arr))) + +int readn(void *fd, char *buf, ulong len); +int seek(void *fd, ulong off, int mode); + +void *RosSymAllocMemZero(ulong num, ulong size); +void *RosSymRealloc(void *mem, ulong newsize); +void xfree(void *v); + +#define werrstr(str, ...) DPRINT(str "\n" ,##__VA_ARGS__) +#define malloc(x) RosSymAllocMem(x) +#define mallocz(x,y) RosSymAllocMemZero(x,y) +#define free(x) xfree(x) +#define USED(x) (*((char *)&(x)) ^= 0) +#define memset(x,y,z) RtlZeroMemory(x,z) + +#endif/*_LIBMACH_COMPAT_H_*/ diff --git a/reactos/lib/rossym/dummy.c b/reactos/lib/rossym/dummy.c new file mode 100644 index 00000000000..2e4703fe528 --- /dev/null +++ b/reactos/lib/rossym/dummy.c @@ -0,0 +1,32 @@ + +#include +#include + +#define NDEBUG +#include + +BOOLEAN +RosSymCreateFromFile(PVOID FileContext, PROSSYM_INFO *RosSymInfo) +{ + return FALSE; +} + +VOID +RosSymDelete(PROSSYM_INFO RosSymInfo) +{ +} + +BOOLEAN +RosSymGetAddressInformation(PROSSYM_INFO RosSymInfo, + ULONG_PTR RelativeAddress, + ULONG *LineNumber, + char *FileName, + char *FunctionName) +{ + return FALSE; +} + +VOID +RosSymInitKernelMode(VOID) +{ +} diff --git a/reactos/lib/rossym/dwarf.h b/reactos/lib/rossym/dwarf.h new file mode 100644 index 00000000000..04689814bd7 --- /dev/null +++ b/reactos/lib/rossym/dwarf.h @@ -0,0 +1,471 @@ +#include "compat.h" + +typedef struct Dwarf Dwarf; +typedef struct DwarfAttrs DwarfAttrs; +typedef struct DwarfBlock DwarfBlock; +typedef struct DwarfBuf DwarfBuf; +typedef struct DwarfExpr DwarfExpr; +typedef struct DwarfSym DwarfSym; +typedef union DwarfVal DwarfVal; + +enum +{ + TagArrayType = 0x01, + TagClassType = 0x02, + TagEntryPoint = 0x03, + TagEnumerationType = 0x04, + TagFormalParameter = 0x05, + TagImportedDeclaration = 0x08, + TagLabel = 0x0A, + TagLexDwarfBlock = 0x0B, + TagMember = 0x0D, + TagPointerType = 0x0F, + TagReferenceType = 0x10, + TagCompileUnit = 0x11, + TagStringType = 0x12, + TagStructType = 0x13, + TagSubroutineType = 0x15, + TagTypedef = 0x16, + TagUnionType = 0x17, + TagUnspecifiedParameters = 0x18, + TagVariant = 0x19, + TagCommonDwarfBlock = 0x1A, + TagCommonInclusion = 0x1B, + TagInheritance = 0x1C, + TagInlinedSubroutine = 0x1D, + TagModule = 0x1E, + TagPtrToMemberType = 0x1F, + TagSetType = 0x20, + TagSubrangeType = 0x21, + TagWithStmt = 0x22, + TagAccessDeclaration = 0x23, + TagBaseType = 0x24, + TagCatchDwarfBlock = 0x25, + TagConstType = 0x26, + TagConstant = 0x27, + TagEnumerator = 0x28, + TagFileType = 0x29, + TagFriend = 0x2A, + TagNamelist = 0x2B, + TagNamelistItem = 0x2C, + TagPackedType = 0x2D, + TagSubprogram = 0x2E, + TagTemplateTypeParameter = 0x2F, + TagTemplateValueParameter = 0x30, + TagThrownType = 0x31, + TagTryDwarfBlock = 0x32, + TagVariantPart = 0x33, + TagVariable = 0x34, + TagVolatileType = 0x35, + TagDwarfProcedure = 0x36, + TagRestrictType = 0x37, + TagInterfaceType = 0x38, + TagNamespace = 0x39, + TagImportedModule = 0x3A, + TagUnspecifiedType = 0x3B, + TagPartialUnit = 0x3C, + TagImportedUnit = 0x3D, + TagMutableType = 0x3E, + + TypeAddress = 0x01, + TypeBoolean = 0x02, + TypeComplexFloat = 0x03, + TypeFloat = 0x04, + TypeSigned = 0x05, + TypeSignedChar = 0x06, + TypeUnsigned = 0x07, + TypeUnsignedChar = 0x08, + TypeImaginaryFloat = 0x09, + + AccessPublic = 0x01, + AccessProtected = 0x02, + AccessPrivate = 0x03, + + VisLocal = 0x01, + VisExported = 0x02, + VisQualified = 0x03, + + VirtNone = 0x00, + VirtVirtual = 0x01, + VirtPureVirtual = 0x02, + + LangC89 = 0x0001, + LangC = 0x0002, + LangAda83 = 0x0003, + LangCplusplus = 0x0004, + LangCobol74 = 0x0005, + LangCobol85 = 0x0006, + LangFortran77 = 0x0007, + LangFortran90 = 0x0008, + LangPascal83 = 0x0009, + LangModula2 = 0x000A, + LangJava = 0x000B, + LangC99 = 0x000C, + LangAda95 = 0x000D, + LangFortran95 = 0x000E, + LangPLI = 0x000F, + /* 0x8000-0xFFFF reserved */ + + IdCaseSensitive = 0x00, + IdCaseUpper = 0x01, + IdCaseLower = 0x02, + IdCaseInsensitive = 0x03, + + CallingNormal = 0x01, + CallingProgram = 0x02, + CallingNocall = 0x03, + /* 0x40-0xFF reserved */ + + InNone = 0x00, + InInlined = 0x01, + InDeclaredNotInlined = 0x02, + InDeclaredInlined = 0x03, + + OrderRowMajor = 0x00, + OrderColumnMajor = 0x01, + + DiscLabel = 0x00, + DiscRange = 0x01, + + TReference = 1<<0, + TBlock = 1<<1, + TConstant = 1<<2, + TString = 1<<3, + TFlag = 1<<4, + TAddress = 1<<5, + + OpAddr = 0x03, /* 1 op, const addr */ + OpDeref = 0x06, + OpConst1u = 0x08, /* 1 op, 1 byte const */ + OpConst1s = 0x09, /* " signed */ + OpConst2u = 0x0A, /* 1 op, 2 byte const */ + OpConst2s = 0x0B, /* " signed */ + OpConst4u = 0x0C, /* 1 op, 4 byte const */ + OpConst4s = 0x0D, /* " signed */ + OpConst8u = 0x0E, /* 1 op, 8 byte const */ + OpConst8s = 0x0F, /* " signed */ + OpConstu = 0x10, /* 1 op, LEB128 const */ + OpConsts = 0x11, /* " signed */ + OpDup = 0x12, + OpDrop = 0x13, + OpOver = 0x14, + OpPick = 0x15, /* 1 op, 1 byte stack index */ + OpSwap = 0x16, + OpRot = 0x17, + OpXderef = 0x18, + OpAbs = 0x19, + OpAnd = 0x1A, + OpDiv = 0x1B, + OpMinus = 0x1C, + OpMod = 0x1D, + OpMul = 0x1E, + OpNeg = 0x1F, + OpNot = 0x20, + OpOr = 0x21, + OpPlus = 0x22, + OpPlusUconst = 0x23, /* 1 op, ULEB128 addend */ + OpShl = 0x24, + OpShr = 0x25, + OpShra = 0x26, + OpXor = 0x27, + OpSkip = 0x2F, /* 1 op, signed 2-byte constant */ + OpBra = 0x28, /* 1 op, signed 2-byte constant */ + OpEq = 0x29, + OpGe = 0x2A, + OpGt = 0x2B, + OpLe = 0x2C, + OpLt = 0x2D, + OpNe = 0x2E, + OpLit0 = 0x30, + /* OpLitN = OpLit0 + N for N = 0..31 */ + OpReg0 = 0x50, + /* OpRegN = OpReg0 + N for N = 0..31 */ + OpBreg0 = 0x70, /* 1 op, signed LEB128 constant */ + /* OpBregN = OpBreg0 + N for N = 0..31 */ + OpRegx = 0x90, /* 1 op, ULEB128 register */ + OpFbreg = 0x91, /* 1 op, SLEB128 offset */ + OpBregx = 0x92, /* 2 op, ULEB128 reg, SLEB128 off */ + OpPiece = 0x93, /* 1 op, ULEB128 size of piece */ + OpDerefSize = 0x94, /* 1-byte size of data retrieved */ + OpXderefSize = 0x95, /* 1-byte size of data retrieved */ + OpNop = 0x96, + /* next four new in Dwarf v3 */ + OpPushObjAddr = 0x97, + OpCall2 = 0x98, /* 2-byte offset of DIE */ + OpCall4 = 0x99, /* 4-byte offset of DIE */ + OpCallRef = 0x9A /* 4- or 8- byte offset of DIE */ + /* 0xE0-0xFF reserved for user-specific */ +}; + +struct DwarfBlock +{ + uchar *data; + ulong len; +}; + +/* not for consumer use */ +struct DwarfBuf +{ + Dwarf *d; + uchar *p; + uchar *ep; + uint addrsize; +}; + +union DwarfVal +{ + char *s; + ulong c; + ulong r; + DwarfBlock b; +}; + +struct DwarfAttrs +{ + ulong tag; + uchar haskids; + + /* whether we have it, along with type */ + struct { + uchar abstractorigin; + uchar accessibility; + uchar addrclass; + uchar basetypes; + uchar bitoffset; + uchar bitsize; + uchar bytesize; + uchar calling; + uchar commonref; + uchar compdir; + uchar constvalue; + uchar containingtype; + uchar count; + uchar datamemberloc; + uchar declcolumn; + uchar declfile; + uchar declline; + uchar defaultvalue; + uchar discr; + uchar discrlist; + uchar discrvalue; + uchar encoding; + uchar framebase; + uchar friend; + uchar highpc; + uchar entrypc; + uchar identifiercase; + uchar import; + uchar inlined; + uchar isartificial; + uchar isdeclaration; + uchar isexternal; + uchar isoptional; + uchar isprototyped; + uchar isvarparam; + uchar language; + uchar location; + uchar lowerbound; + uchar lowpc; + uchar macroinfo; + uchar name; + uchar namelistitem; + uchar ordering; + uchar priority; + uchar producer; + uchar ranges; + uchar returnaddr; + uchar segment; + uchar sibling; + uchar specification; + uchar startscope; + uchar staticlink; + uchar stmtlist; + uchar stridesize; + uchar stringlength; + uchar type; + uchar upperbound; + uchar uselocation; + uchar virtuality; + uchar visibility; + uchar vtableelemloc; + } have; + + ulong abstractorigin; + ulong accessibility; + ulong addrclass; + ulong basetypes; + ulong bitoffset; + ulong bitsize; + ulong bytesize; + ulong calling; + ulong commonref; + char* compdir; + DwarfVal constvalue; + ulong containingtype; + ulong count; + DwarfVal datamemberloc; + ulong declcolumn; + ulong declfile; + ulong declline; + ulong defaultvalue; + ulong discr; + DwarfBlock discrlist; + ulong discrvalue; + ulong encoding; + DwarfVal framebase; + ulong friend; + ulong highpc; + ulong entrypc; + ulong identifiercase; + ulong import; + ulong inlined; + uchar isartificial; + uchar isdeclaration; + uchar isexternal; + uchar isoptional; + uchar isprototyped; + uchar isvarparam; + ulong language; + DwarfVal location; + ulong lowerbound; + ulong lowpc; + ulong macroinfo; + char* name; + DwarfBlock namelistitem; + ulong ordering; + ulong priority; + char* producer; + ulong ranges; + DwarfVal returnaddr; + DwarfVal segment; + ulong sibling; + ulong specification; + ulong startscope; + DwarfVal staticlink; + ulong stmtlist; + ulong stridesize; + DwarfVal stringlength; + ulong type; + ulong upperbound; + DwarfVal uselocation; + ulong virtuality; + ulong visibility; + DwarfVal vtableelemloc; +}; + +enum +{ + RuleUndef, + RuleSame, + RuleCfaOffset, + RuleRegister, + RuleRegOff, + RuleLocation +}; +struct DwarfExpr +{ + int type; + long offset; + ulong reg; + DwarfBlock loc; +}; + +struct DwarfSym +{ + DwarfAttrs attrs; + +/* not for consumer use... */ + DwarfBuf b; + ulong unit; + uint uoff; + ulong aoff; + int depth; + int allunits; + ulong nextunit; +}; + + +struct _Pe; +Dwarf *dwarfopen(struct _Pe *elf); +void dwarfclose(Dwarf*); +int dwarfaddrtounit(Dwarf*, ulong, ulong*); +int dwarflookupfn(Dwarf*, ulong, ulong, DwarfSym*); +int dwarflookupname(Dwarf*, char*, DwarfSym*); +int dwarflookupnameinunit(Dwarf*, ulong, char*, DwarfSym*); +int dwarflookupsubname(Dwarf*, DwarfSym*, char*, DwarfSym*); +int dwarflookuptag(Dwarf*, ulong, ulong, DwarfSym*); +int dwarfenumunit(Dwarf*, ulong, DwarfSym*); +int dwarfseeksym(Dwarf*, ulong, ulong, DwarfSym*); +int dwarfenum(Dwarf*, DwarfSym*); +int dwarfnextsym(Dwarf*, DwarfSym*); +int dwarfnextsymat(Dwarf*, DwarfSym*, int); +int dwarfpctoline(Dwarf*, ulong, char**, char**, char**, char **, ulong*, ulong*, ulong*); +int dwarfunwind(Dwarf*, ulong, DwarfExpr*, DwarfExpr*, DwarfExpr*, int); +ulong dwarfget1(DwarfBuf*); +ulong dwarfget2(DwarfBuf*); +ulong dwarfget4(DwarfBuf*); +uvlong dwarfget8(DwarfBuf*); +ulong dwarfget128(DwarfBuf*); +long dwarfget128s(DwarfBuf*); +ulong dwarfgetaddr(DwarfBuf*); +int dwarfgetn(DwarfBuf*, uchar*, int); +uchar *dwarfgetnref(DwarfBuf*, ulong); +char *dwarfgetstring(DwarfBuf*); + + +typedef struct DwarfAbbrev DwarfAbbrev; +typedef struct DwarfAttr DwarfAttr; + +struct DwarfAttr +{ + ulong name; + ulong form; +}; + +struct DwarfAbbrev +{ + ulong num; + ulong tag; + uchar haskids; + DwarfAttr *attr; + int nattr; +}; + +struct _Pe; + +struct Dwarf +{ + struct _Pe *pe; + + char **reg; + int nreg; + int addrsize; + DwarfBlock abbrev; + DwarfBlock aranges; + DwarfBlock frame; + DwarfBlock info; + DwarfBlock line; + DwarfBlock pubnames; + DwarfBlock pubtypes; + DwarfBlock ranges; + DwarfBlock str; + + /* little cache */ + struct { + DwarfAbbrev *a; + int na; + ulong off; + } acache; +}; + +DwarfAbbrev *dwarfgetabbrev(Dwarf*, ulong, ulong); + +int dwarfgetinfounit(Dwarf*, ulong, DwarfBlock*); + +extern int dwarf386nregs; +extern char *dwarf386regs[]; +extern char *dwarf386fp; + +#define SYMBOL_SIZE 18 +#define MAXIMUM_DWARF_NAME_SIZE 64 +#define MAXIMUM_COFF_SYMBOL_LENGTH 256 diff --git a/reactos/lib/rossym/dwarf386.c b/reactos/lib/rossym/dwarf386.c new file mode 100644 index 00000000000..80a594b01a7 --- /dev/null +++ b/reactos/lib/rossym/dwarf386.c @@ -0,0 +1,25 @@ +#if 0 +#include +#include +#include +#include "elf.h" +#endif +#include "dwarf.h" + +char* +dwarf386regs[] = +{ + "AX", + "CX", + "DX", + "BX", + "SP", + "BP", + "SI", + "DI", +}; + +int dwarf386nregs = nelem(dwarf386regs); + + + diff --git a/reactos/lib/rossym/dwarfabbrev.c b/reactos/lib/rossym/dwarfabbrev.c new file mode 100644 index 00000000000..d21ca6a25d1 --- /dev/null +++ b/reactos/lib/rossym/dwarfabbrev.c @@ -0,0 +1,141 @@ +/* + * Dwarf abbreviation parsing code. + * + * The convention here is that calling dwarfgetabbrevs relinquishes + * access to any abbrevs returned previously. Will have to add + * explicit reference counting if this turns out not to be acceptable. + */ + +#define NTOSAPI +#include +#include +#include "rossympriv.h" +#include + +#define NDEBUG +#include + +#include "rossym.h" +#include "rossympriv.h" +#include "dwarf.h" + +static int parseabbrevs(Dwarf*, ulong, DwarfAbbrev*, DwarfAttr*, int*, int*); +DwarfAbbrev *dwarfgetabbrev(Dwarf*, ulong, ulong); + +static int +loadabbrevs(Dwarf *d, ulong off, DwarfAbbrev **aa) +{ + int nattr, nabbrev; + DwarfAbbrev *abbrev; + DwarfAttr *attr; + + if(d->acache.off == off && d->acache.na){ + *aa = d->acache.a; + return d->acache.na; + } + + /* two passes - once to count, then allocate, then a second to copy */ + if(parseabbrevs(d, off, nil, nil, &nabbrev, &nattr) < 0) { + return -1; + } + + abbrev = malloc(nabbrev*sizeof(DwarfAbbrev) + nattr*sizeof(DwarfAttr)); + attr = (DwarfAttr*)(abbrev+nabbrev); + + if(parseabbrevs(d, off, abbrev, attr, nil, nil) < 0){ + free(abbrev); + return -1; + } + + free(d->acache.a); + d->acache.a = abbrev; + d->acache.na = nabbrev; + d->acache.off = off; + + *aa = abbrev; + return nabbrev; +} + +static int +parseabbrevs(Dwarf *d, ulong off, DwarfAbbrev *abbrev, DwarfAttr *attr, int *pnabbrev, int *pnattr) +{ + int i, nabbrev, nattr, haskids; + ulong num, tag, name, form; + DwarfBuf b; + + if(off >= d->abbrev.len){ + werrstr("bad abbrev section offset 0x%lux >= 0x%lux\n", off, d->abbrev.len); + return -1; + } + + memset(&b, 0, sizeof b); + b.p = d->abbrev.data + off; + b.ep = d->abbrev.data + d->abbrev.len; + + nabbrev = 0; + nattr = 0; + for(;;){ + if(b.p == nil){ + werrstr("malformed abbrev data"); + return -1; + } + num = dwarfget128(&b); + if(num == 0) + break; + tag = dwarfget128(&b); + haskids = dwarfget1(&b); + for(i=0;; i++){ + name = dwarfget128(&b); + form = dwarfget128(&b); + if(name == 0 && form == 0) + break; + if(attr){ + attr[i].name = name; + attr[i].form = form; + } + } + if(abbrev){ + abbrev->num = num; + abbrev->tag = tag; + abbrev->haskids = haskids; + abbrev->attr = attr; + abbrev->nattr = i; + abbrev++; + attr += i; + } + nabbrev++; + nattr += i; + } + if(pnabbrev) + *pnabbrev = nabbrev; + if(pnattr) + *pnattr = nattr; + return 0; +} + +static DwarfAbbrev* +findabbrev(DwarfAbbrev *a, int na, ulong num) +{ + int i; + + for(i=0; i +#include +#include "rossympriv.h" +#include + +#define NDEBUG +#include + +#include "dwarf.h" + +int +dwarfaddrtounit(Dwarf *d, ulong addr, ulong *unit) +{ + DwarfBuf b; + int segsize, i; + ulong len, id, off, base, size; + uchar *start, *end; + + memset(&b, 0, sizeof b); + b.d = d; + b.p = d->aranges.data; + b.ep = b.p + d->aranges.len; + + while(b.p < b.ep){ + start = b.p; + len = dwarfget4(&b); + if (!len) { b.ep = b.p - 4; return -1; } + if((id = dwarfget2(&b)) != 2){ + if(b.p == nil){ + underflow: + werrstr("buffer underflow reading address ranges header"); + }else + werrstr("bad dwarf version 0x%x in address ranges header", id); + return -1; + } + off = dwarfget4(&b); + b.addrsize = dwarfget1(&b); + if(d->addrsize == 0) + d->addrsize = b.addrsize; + segsize = dwarfget1(&b); + USED(segsize); /* what am i supposed to do with this? */ + if(b.p == nil) + goto underflow; + if((i = (b.p-start) % (2*b.addrsize)) != 0) + b.p += 2*b.addrsize - i; + end = start+4+len; + while(b.p!=nil && b.pline mapping, but it's a different machine. + * The expressions to generate the old values are similar in function to the + * ``dwarf expressions'' used for locations in the code, but of course not + * the same encoding. + */ + +#define NTOSAPI +#include +#include +#include "rossympriv.h" +#include + +#define NDEBUG +#include + +#include "dwarf.h" + +#define trace 0 + +typedef struct State State; +struct State +{ + ulong loc; + ulong endloc; + ulong iquantum; + ulong dquantum; + char *augmentation; + int version; + ulong rareg; + DwarfBuf init; + DwarfExpr *cfa; + DwarfExpr *ra; + DwarfExpr *r; + DwarfExpr *initr; + int nr; + DwarfExpr **stack; + int nstack; +}; + +static int findfde(Dwarf*, ulong, State*, DwarfBuf*); +static int dexec(DwarfBuf*, State*, int); + +int +dwarfunwind(Dwarf *d, ulong pc, DwarfExpr *cfa, DwarfExpr *ra, DwarfExpr *r, int nr) +{ + int i, ret; + DwarfBuf fde, b; + DwarfExpr *initr; + State s; + + initr = mallocz(nr*sizeof(initr[0]), 1); + if(initr == 0) + return -1; + + memset(&s, 0, sizeof s); + s.loc = 0; + s.cfa = cfa; + s.ra = ra; + s.r = r; + s.nr = nr; + + if(findfde(d, pc, &s, &fde) < 0){ + free(initr); + return -1; + } + + memset(r, 0, nr*sizeof(r[0])); + for(i=0; iframe.data == nil){ + werrstr("no frame debugging information"); + return -1; + } + b.d = d; + b.p = d->frame.data; + b.ep = b.p + d->frame.len; + b.addrsize = d->addrsize; + if(b.addrsize == 0) + b.addrsize = 4; /* where should i find this? */ + + for(; b.p < b.ep; b.p = next){ + if((i = (b.p - d->frame.data) % b.addrsize)) + b.p += b.addrsize - i; + len = dwarfget4(&b); + if(len > b.ep-b.p){ + werrstr("bad length in cie/fde header"); + return -1; + } + next = b.p+len; + id = dwarfget4(&b); + if(id == 0xFFFFFFFF){ /* CIE */ + vers = dwarfget1(&b); + if(vers != 1 && vers != 2 && vers != 3){ + if(++nbad == 1) + werrstr("unknown cie version %d (wanted 1-3)\n", vers); + continue; + } + aug = dwarfgetstring(&b); + if(aug && *aug){ + if(++nbad == 1) + werrstr("unknown augmentation: %s\n", aug); + continue; + } + s->iquantum = dwarfget128(&b); + s->dquantum = dwarfget128s(&b); + s->rareg = dwarfget128(&b); + if(s->rareg > s->nr){ + werrstr("return address is register %d but only have %d registers", + s->rareg, s->nr); + return -1; + } + s->init.p = b.p; + s->init.ep = next; + }else{ /* FDE */ + base = dwarfgetaddr(&b); + size = dwarfgetaddr(&b); + fde->p = b.p; + fde->ep = next; + s->loc = base; + s->endloc = base+size; + if(base <= pc && pc < base+size) + return 0; + } + } + werrstr("cannot find call frame information for pc 0x%lux", pc); + return -1; + +} + +static int +checkreg(State *s, long r) +{ + if(r < 0 || r >= s->nr){ + werrstr("bad register number 0x%lux", r); + return -1; + } + return 0; +} + +static int +dexec(DwarfBuf *b, State *s, int locstop) +{ + int c; + long arg1, arg2; + DwarfExpr *e; + + for(;;){ + if(b->p == b->ep){ + if(s->initr) + s->loc = s->endloc; + return 0; + } + c = dwarfget1(b); + if(b->p == nil){ + werrstr("ran out of instructions during cfa program"); + if(trace) werrstr("%r\n"); + return -1; + } + if(trace) werrstr("+ loc=0x%lux op 0x%ux ", s->loc, c); + switch(c>>6){ + case 1: /* advance location */ + arg1 = c&0x3F; + advance: + if(trace) werrstr("loc += %ld\n", arg1*s->iquantum); + s->loc += arg1 * s->iquantum; + if(locstop) + return 0; + continue; + + case 2: /* offset rule */ + arg1 = c&0x3F; + arg2 = dwarfget128(b); + offset: + if(trace) werrstr("r%ld += %ld\n", arg1, arg2*s->dquantum); + if(checkreg(s, arg1) < 0) + return -1; + s->r[arg1].type = RuleCfaOffset; + s->r[arg1].offset = arg2 * s->dquantum; + continue; + + case 3: /* restore initial setting */ + arg1 = c&0x3F; + restore: + if(trace) werrstr("r%ld = init\n", arg1); + if(checkreg(s, arg1) < 0) + return -1; + s->r[arg1] = s->initr[arg1]; + continue; + } + + switch(c){ + case 0: /* nop */ + if(trace) werrstr("nop\n"); + continue; + + case 0x01: /* set location */ + s->loc = dwarfgetaddr(b); + if(trace) werrstr("loc = 0x%lux\n", s->loc); + if(locstop) + return 0; + continue; + + case 0x02: /* advance loc1 */ + arg1 = dwarfget1(b); + goto advance; + + case 0x03: /* advance loc2 */ + arg1 = dwarfget2(b); + goto advance; + + case 0x04: /* advance loc4 */ + arg1 = dwarfget4(b); + goto advance; + + case 0x05: /* offset extended */ + arg1 = dwarfget128(b); + arg2 = dwarfget128(b); + goto offset; + + case 0x06: /* restore extended */ + arg1 = dwarfget128(b); + goto restore; + + case 0x07: /* undefined */ + arg1 = dwarfget128(b); + if(trace) werrstr("r%ld = undef\n", arg1); + if(checkreg(s, arg1) < 0) + return -1; + s->r[arg1].type = RuleUndef; + continue; + + case 0x08: /* same value */ + arg1 = dwarfget128(b); + if(trace) werrstr("r%ld = same\n", arg1); + if(checkreg(s, arg1) < 0) + return -1; + s->r[arg1].type = RuleSame; + continue; + + case 0x09: /* register */ + arg1 = dwarfget128(b); + arg2 = dwarfget128(b); + if(trace) werrstr("r%ld = r%ld\n", arg1, arg2); + if(checkreg(s, arg1) < 0 || checkreg(s, arg2) < 0) + return -1; + s->r[arg1].type = RuleRegister; + s->r[arg1].reg = arg2; + continue; + + case 0x0A: /* remember state */ + e = malloc(s->nr*sizeof(e[0])); + if(trace) werrstr("push\n"); + if(e == nil) + return -1; + void *newstack = malloc(s->nstack*sizeof(s->stack[0])); + RtlMoveMemory(newstack, s->stack, s->nstack*sizeof(s->stack[0])); + if (newstack) { + free(s->stack); + s->stack = newstack; + } else { + free(e); + return -1; + } + if(b->p == nil){ + free(e); + return -1; + } + s->stack[s->nstack++] = e; + memmove(e, s->r, s->nr*sizeof(e[0])); + continue; + + case 0x0B: /* restore state */ + if(trace) werrstr("pop\n"); + if(s->nstack == 0){ + werrstr("restore state underflow"); + return -1; + } + e = s->stack[s->nstack-1]; + memmove(s->r, e, s->nr*sizeof(e[0])); + free(e); + s->nstack--; + continue; + + case 0x0C: /* def cfa */ + arg1 = dwarfget128(b); + arg2 = dwarfget128(b); + defcfa: + if(trace) werrstr("cfa %ld(r%ld)\n", arg2, arg1); + if(checkreg(s, arg1) < 0) + return -1; + s->cfa->type = RuleRegOff; + s->cfa->reg = arg1; + s->cfa->offset = arg2; + continue; + + case 0x0D: /* def cfa register */ + arg1 = dwarfget128(b); + if(trace) werrstr("cfa reg r%ld\n", arg1); + if(s->cfa->type != RuleRegOff){ + werrstr("change CFA register but CFA not in register+offset form"); + return -1; + } + if(checkreg(s, arg1) < 0) + return -1; + s->cfa->reg = arg1; + continue; + + case 0x0E: /* def cfa offset */ + arg1 = dwarfget128(b); + cfaoffset: + if(trace) werrstr("cfa off %ld\n", arg1); + if(s->cfa->type != RuleRegOff){ + werrstr("change CFA offset but CFA not in register+offset form"); + return -1; + } + s->cfa->offset = arg1; + continue; + + case 0x0F: /* def cfa expression */ + if(trace) werrstr("cfa expr\n"); + s->cfa->type = RuleLocation; + s->cfa->loc.len = dwarfget128(b); + s->cfa->loc.data = dwarfgetnref(b, s->cfa->loc.len); + continue; + + case 0x10: /* def reg expression */ + arg1 = dwarfget128(b); + if(trace) werrstr("reg expr r%ld\n", arg1); + if(checkreg(s, arg1) < 0) + return -1; + s->r[arg1].type = RuleLocation; + s->r[arg1].loc.len = dwarfget128(b); + s->r[arg1].loc.data = dwarfgetnref(b, s->r[arg1].loc.len); + continue; + + case 0x11: /* offset extended */ + arg1 = dwarfget128(b); + arg2 = dwarfget128s(b); + goto offset; + + case 0x12: /* cfa sf */ + arg1 = dwarfget128(b); + arg2 = dwarfget128s(b); + goto defcfa; + + case 0x13: /* cfa offset sf */ + arg1 = dwarfget128s(b); + goto cfaoffset; + + default: /* unknown */ + werrstr("unknown opcode 0x%ux in cfa program", c); + return -1; + } + } + /* not reached */ +} + + diff --git a/reactos/lib/rossym/dwarfdump.c b/reactos/lib/rossym/dwarfdump.c new file mode 100644 index 00000000000..94f0cd3575b --- /dev/null +++ b/reactos/lib/rossym/dwarfdump.c @@ -0,0 +1,143 @@ +#if 0 +#include +#include +#include +#include "elf.h" +#endif +#include "dwarf.h" +#include "pe.h" + +void printrules(Dwarf *d, ulong pc); +//int exprfmt(Fmt*); + +void +usage(void) +{ + fprint(2, "usage: dwarfdump file\n"); + exits("usage"); +} + +void +main(int argc, char **argv) +{ + int c; + Pe *pe; + Dwarf *d; + DwarfSym s; + char *cdir, *dir, *file; + ulong line, mtime, length; + + if(argc != 2) + usage(); + +#if 0 + fmtinstall('R', exprfmt); + fmtinstall('H', encodefmt); +#endif + + if((pe = peopen(argv[1])) == nil) + sysfatal("elfopen %s: %r", argv[1]); + if((d=dwarfopen(pe)) == nil) + sysfatal("dwarfopen: %r"); + + if(dwarfenum(d, &s) < 0) + sysfatal("dwarfenumall: %r"); + + while(dwarfnextsym(d, &s) == 1){ + switch(s.attrs.tag){ + case TagCompileUnit: + print("compileunit %s\n", s.attrs.name); + break; + case TagSubprogram: + c = 't'; + goto sym; + case TagVariable: + c = 'd'; + goto sym; + case TagConstant: + c = 'c'; + goto sym; + case TagFormalParameter: + if(!s.attrs.name) + break; + c = 'p'; + sym: + if(s.attrs.isexternal) + c += 'A' - 'a'; + print("%c %s", c, s.attrs.name); + if(s.attrs.have.lowpc) + print(" 0x%lux-0x%lux", s.attrs.lowpc, s.attrs.highpc); + switch(s.attrs.have.location){ + case TBlock: + print(" @ %.*H", s.attrs.location.b.len, s.attrs.location.b.data); + break; + case TConstant: + print(" @ 0x%lux", s.attrs.location.c); + break; + } + if(s.attrs.have.ranges) + print(" ranges@0x%lux", s.attrs.ranges); + print("\n"); + if(s.attrs.have.lowpc){ + if(dwarfpctoline(d, s.attrs.lowpc, &cdir, &dir, &file, &line, &mtime, &length) < 0) + print("\tcould not find source: %r\n"); + else if(dir == nil) + print("\t%s/%s:%lud mtime=%lud length=%lud\n", + cdir, file, line, mtime, length); + else + print("\t%s/%s/%s:%lud mtime=%lud length=%lud\n", + cdir, dir, file, line, mtime, length); + + if(0) printrules(d, s.attrs.lowpc); + if(0) printrules(d, (s.attrs.lowpc+s.attrs.highpc)/2); + } + break; + } + } + exits(0); +} + +void +printrules(Dwarf *d, ulong pc) +{ + int i; + DwarfExpr r[10]; + DwarfExpr cfa, ra; + + if(dwarfunwind(d, pc, &cfa, &ra, r, nelem(r)) < 0) + print("\tcannot unwind from pc 0x%lux: %r\n", pc); + + print("\tpc=0x%lux cfa=%R ra=%R", pc, &cfa, &ra); + for(i=0; iargs, DwarfExpr*)) == nil) + return fmtstrcpy(fmt, ""); + + switch(e->type){ + case RuleUndef: + return fmtstrcpy(fmt, "undef"); + case RuleSame: + return fmtstrcpy(fmt, "same"); + case RuleCfaOffset: + return fmtprint(fmt, "%ld(cfa)", e->offset); + case RuleRegister: + return fmtprint(fmt, "r%ld", e->reg); + case RuleRegOff: + return fmtprint(fmt, "%ld(r%ld)", e->offset, e->reg); + case RuleLocation: + return fmtprint(fmt, "l.%.*H", e->loc.len, e->loc.data); + default: + return fmtprint(fmt, "?%d", e->type); + } +} +#endif diff --git a/reactos/lib/rossym/dwarfeval.c b/reactos/lib/rossym/dwarfeval.c new file mode 100644 index 00000000000..6d0233fed6c --- /dev/null +++ b/reactos/lib/rossym/dwarfeval.c @@ -0,0 +1,61 @@ + OpAddr = 0x03, /* 1 op, const addr */ + OpDeref = 0x06, + OpConst1u = 0x08, /* 1 op, 1 byte const */ + OpConst1s = 0x09, /* " signed */ + OpConst2u = 0x0A, /* 1 op, 2 byte const */ + OpConst2s = 0x0B, /* " signed */ + OpConst4u = 0x0C, /* 1 op, 4 byte const */ + OpConst4s = 0x0D, /* " signed */ + OpConst8u = 0x0E, /* 1 op, 8 byte const */ + OpConst8s = 0x0F, /* " signed */ + OpConstu = 0x10, /* 1 op, LEB128 const */ + OpConsts = 0x11, /* " signed */ + OpDup = 0x12, + OpDrop = 0x13, + OpOver = 0x14, + OpPick = 0x15, /* 1 op, 1 byte stack index */ + OpSwap = 0x16, + OpRot = 0x17, + OpXderef = 0x18, + OpAbs = 0x19, + OpAnd = 0x1A, + OpDiv = 0x1B, + OpMinus = 0x1C, + OpMod = 0x1D, + OpMul = 0x1E, + OpNeg = 0x1F, + OpNot = 0x20, + OpOr = 0x21, + OpPlus = 0x22, + OpPlusUconst = 0x23, /* 1 op, ULEB128 addend */ + OpShl = 0x24, + OpShr = 0x25, + OpShra = 0x26, + OpXor = 0x27, + OpSkip = 0x2F, /* 1 op, signed 2-byte constant */ + OpBra = 0x28, /* 1 op, signed 2-byte constant */ + OpEq = 0x29, + OpGe = 0x2A, + OpGt = 0x2B, + OpLe = 0x2C, + OpLt = 0x2D, + OpNe = 0x2E, + OpLit0 = 0x30, + /* OpLitN = OpLit0 + N for N = 0..31 */ + OpReg0 = 0x50, + /* OpRegN = OpReg0 + N for N = 0..31 */ + OpBreg0 = 0x70, /* 1 op, signed LEB128 constant */ + /* OpBregN = OpBreg0 + N for N = 0..31 */ + OpRegx = 0x90, /* 1 op, ULEB128 register */ + OpFbreg = 0x91, /* 1 op, SLEB128 offset */ + OpBregx = 0x92, /* 2 op, ULEB128 reg, SLEB128 off */ + OpPiece = 0x93, /* 1 op, ULEB128 size of piece */ + OpDerefSize = 0x94, /* 1-byte size of data retrieved */ + OpXderefSize = 0x95, /* 1-byte size of data retrieved */ + OpNop = 0x96, + /* next four new in Dwarf v3 */ + OpPushObjAddr = 0x97, + OpCall2 = 0x98, /* 2-byte offset of DIE */ + OpCall4 = 0x99, /* 4-byte offset of DIE */ + OpCallRef = 0x9A, /* 4- or 8- byte offset of DIE */ + /* 0xE0-0xFF reserved for user-specific */ diff --git a/reactos/lib/rossym/dwarfget.c b/reactos/lib/rossym/dwarfget.c new file mode 100644 index 00000000000..d32177cd1db --- /dev/null +++ b/reactos/lib/rossym/dwarfget.c @@ -0,0 +1,225 @@ +/* + * Dwarf data format parsing routines. + */ + +#define NTOSAPI +#include +#include +#include "rossympriv.h" +#include + +#define NDEBUG +#include + +#include "dwarf.h" +#include "pe.h" + +ulong +dwarfget1(DwarfBuf *b) +{ + if(b->p==nil || b->p+1 > b->ep){ + b->p = nil; + return 0; + } + return *b->p++; +} + +int +dwarfgetn(DwarfBuf *b, uchar *a, int n) +{ + if(b->p==nil || b->p+n > b->ep){ + b->p = nil; + memset(a, 0, n); + return -1; + } + memmove(a, b->p, n); + b->p += n; + return 0; +} + +uchar* +dwarfgetnref(DwarfBuf *b, ulong n) +{ + uchar *p; + + if(b->p==nil || b->p+n > b->ep){ + b->p = nil; + return nil; + } + p = b->p; + b->p += n; + return p; +} + +char* +dwarfgetstring(DwarfBuf *b) +{ + char *s; + + if(b->p == nil) + return nil; + s = (char*)b->p; + while(b->p < b->ep && *b->p) + b->p++; + if(b->p >= b->ep){ + b->p = nil; + return nil; + } + b->p++; + return s; +} + +void +dwarfskip(DwarfBuf *b, int n) +{ + if(b->p==nil || b->p+n > b->ep) + b->p = nil; + else + b->p += n; +} + +ulong +dwarfget2(DwarfBuf *b) +{ + ulong v; + + if(b->p==nil || b->p+2 > b->ep){ + b->p = nil; + return 0; + } + v = b->d->pe->e2(b->p); + b->p += 2; + return v; +} + +ulong +dwarfget4(DwarfBuf *b) +{ + ulong v; + + if(b->p==nil || b->p+4 > b->ep){ + b->p = nil; + return 0; + } + v = b->d->pe->e4(b->p); + b->p += 4; + return v; +} + +uvlong +dwarfget8(DwarfBuf *b) +{ + uvlong v; + + if(b->p==nil || b->p+8 > b->ep){ + b->p = nil; + return 0; + } + v = b->d->pe->e8(b->p); + b->p += 8; + return v; +} + +ulong +dwarfgetaddr(DwarfBuf *b) +{ + static int nbad; + + if(b->addrsize == 0) + b->addrsize = b->d->addrsize; + + switch(b->addrsize){ + case 1: + return dwarfget1(b); + case 2: + return dwarfget2(b); + case 4: + return dwarfget4(b); + case 8: + return dwarfget8(b); + default: + if(++nbad == 1) + werrstr("dwarf: unexpected address size %lud in dwarfgetaddr\n", b->addrsize); + b->p = nil; + return 0; + } +} + +int n1, n2, n3, n4, n5; + +/* An inline function picks off the calls to dwarfget128 for 1-byte encodings, + * more than by far the common case (99.999% on most binaries!). */ +ulong +dwarfget128(DwarfBuf *b) +{ + static int nbad; + ulong c, d; + + if(b->p == nil) + return 0; + c = *b->p++; + if(!(c&0x80)) +{n1++; + return c; +} + c &= ~0x80; + d = *b->p++; + c |= (d&0x7F)<<7; + if(!(d&0x80)) +{n2++; + return c; +} + d = *b->p++; + c |= (d&0x7F)<<14; + if(!(d&0x80)) +{n3++; + return c; +} + d = *b->p++; + c |= (d&0x7F)<<21; + if(!(d&0x80)) +{n4++; + return c; +} + d = *b->p++; + c |= (d&0x7F)<<28; + if(!(d&0x80)) +{n5++; + return c; +} + while(b->pep && *b->p&0x80) + b->p++; + if(++nbad == 1) + werrstr("dwarf: overflow during parsing of uleb128 integer\n"); + return c; +} + +long +dwarfget128s(DwarfBuf *b) +{ + int nb, c; + ulong v; + static int nbad; + + v = 0; + nb = 0; + if(b->p==nil) + return 0; + while(b->pep){ + c = *b->p++; + v |= (c & 0x7F)< 8*sizeof(ulong)){ + if(0) + if(++nbad == 1) + werrstr("dwarf: overflow during parsing of sleb128 integer: got %d bits", nb); + } + return v; +} + + diff --git a/reactos/lib/rossym/dwarfinfo.c b/reactos/lib/rossym/dwarfinfo.c new file mode 100644 index 00000000000..cc25499483a --- /dev/null +++ b/reactos/lib/rossym/dwarfinfo.c @@ -0,0 +1,661 @@ +/* + * Dwarf info parse and search. + */ + +#define NTOSAPI +#include +#include +#include +#include "rossympriv.h" +#include + +#define NDEBUG +#include + +#include "dwarf.h" +#include + +enum +{ + DwarfAttrSibling = 0x01, + DwarfAttrLocation = 0x02, + DwarfAttrName = 0x03, + DwarfAttrOrdering = 0x09, + DwarfAttrByteSize = 0x0B, + DwarfAttrBitOffset = 0x0C, + DwarfAttrBitSize = 0x0D, + DwarfAttrStmtList = 0x10, + DwarfAttrLowpc = 0x11, + DwarfAttrHighpc = 0x12, + DwarfAttrLanguage = 0x13, + DwarfAttrDiscr = 0x15, + DwarfAttrDiscrValue = 0x16, + DwarfAttrVisibility = 0x17, + DwarfAttrImport = 0x18, + DwarfAttrStringLength = 0x19, + DwarfAttrCommonRef = 0x1A, + DwarfAttrCompDir = 0x1B, + DwarfAttrConstValue = 0x1C, + DwarfAttrContainingType = 0x1D, + DwarfAttrDefaultValue = 0x1E, + DwarfAttrInline = 0x20, + DwarfAttrIsOptional = 0x21, + DwarfAttrLowerBound = 0x22, + DwarfAttrProducer = 0x25, + DwarfAttrPrototyped = 0x27, + DwarfAttrReturnAddr = 0x2A, + DwarfAttrStartScope = 0x2C, + DwarfAttrStrideSize = 0x2E, + DwarfAttrUpperBound = 0x2F, + DwarfAttrAbstractOrigin = 0x31, + DwarfAttrAccessibility = 0x32, + DwarfAttrAddrClass = 0x33, + DwarfAttrArtificial = 0x34, + DwarfAttrBaseTypes = 0x35, + DwarfAttrCalling = 0x36, + DwarfAttrCount = 0x37, + DwarfAttrDataMemberLoc = 0x38, + DwarfAttrDeclColumn = 0x39, + DwarfAttrDeclFile = 0x3A, + DwarfAttrDeclLine = 0x3B, + DwarfAttrDeclaration = 0x3C, + DwarfAttrDiscrList = 0x3D, + DwarfAttrEncoding = 0x3E, + DwarfAttrExternal = 0x3F, + DwarfAttrFrameBase = 0x40, + DwarfAttrFriend = 0x41, + DwarfAttrIdentifierCase = 0x42, + DwarfAttrMacroInfo = 0x43, + DwarfAttrNamelistItem = 0x44, + DwarfAttrPriority = 0x45, + DwarfAttrSegment = 0x46, + DwarfAttrSpecification = 0x47, + DwarfAttrStaticLink = 0x48, + DwarfAttrType = 0x49, + DwarfAttrUseLocation = 0x4A, + DwarfAttrVarParam = 0x4B, + DwarfAttrVirtuality = 0x4C, + DwarfAttrVtableElemLoc = 0x4D, + DwarfAttrAllocated = 0x4E, + DwarfAttrAssociated = 0x4F, + DwarfAttrDataLocation = 0x50, + DwarfAttrStride = 0x51, + DwarfAttrEntrypc = 0x52, + DwarfAttrUseUTF8 = 0x53, + DwarfAttrExtension = 0x54, + DwarfAttrRanges = 0x55, + DwarfAttrTrampoline = 0x56, + DwarfAttrCallColumn = 0x57, + DwarfAttrCallFile = 0x58, + DwarfAttrCallLine = 0x59, + DwarfAttrDescription = 0x5A, + DwarfAttrMax, + + FormAddr = 0x01, + FormDwarfBlock2 = 0x03, + FormDwarfBlock4 = 0x04, + FormData2 = 0x05, + FormData4 = 0x06, + FormData8 = 0x07, + FormString = 0x08, + FormDwarfBlock = 0x09, + FormDwarfBlock1 = 0x0A, + FormData1 = 0x0B, + FormFlag = 0x0C, + FormSdata = 0x0D, + FormStrp = 0x0E, + FormUdata = 0x0F, + FormRefAddr = 0x10, + FormRef1 = 0x11, + FormRef2 = 0x12, + FormRef4 = 0x13, + FormRef8 = 0x14, + FormRefUdata = 0x15, + FormIndirect = 0x16 +}; + +static int parseattrs(DwarfBuf*, ulong, DwarfAbbrev*, DwarfAttrs*); +static int getulong(DwarfBuf*, int, ulong, ulong*, int*); +static int getuchar(DwarfBuf*, int, uchar*); +static int getstring(DwarfBuf*, int, char**); +static int getblock(DwarfBuf*, int, DwarfBlock*); +static int skipform(DwarfBuf*, int); +static int constblock(Dwarf*, DwarfBlock*, ulong*); + +int +dwarflookupnameinunit(Dwarf *d, ulong unit, char *name, DwarfSym *s) +{ + if(dwarfenumunit(d, unit, s) < 0) + return -1; + + dwarfnextsymat(d, s, 0); /* s is now the CompileUnit */ + while(dwarfnextsymat(d, s, 1) == 1) + if(s->attrs.name && strcmp(s->attrs.name, name) == 0) + return 0; + werrstr("symbol '%s' not found", name); + return -1; +} + + +int +dwarflookupsubname(Dwarf *d, DwarfSym *parent, char *name, DwarfSym *s) +{ + *s = *parent; + while(dwarfnextsymat(d, s, parent->depth+1)) + if(s->attrs.name && strcmp(s->attrs.name, name) == 0) + return 0; + werrstr("symbol '%s' not found", name); + return -1; +} + +int +dwarflookuptag(Dwarf *d, ulong unit, ulong tag, DwarfSym *s) +{ + if(dwarfenumunit(d, unit, s) < 0) { + return -1; + } + + dwarfnextsymat(d, s, 0); /* s is now the CompileUnit */ + if(s->attrs.tag == tag) { + return 0; + } + while(dwarfnextsymat(d, s, 1) == 1) + if(s->attrs.tag == tag) { + return 0; + } + werrstr("symbol with tag 0x%lux not found", tag); + return -1; +} + +int +dwarfseeksym(Dwarf *d, ulong unit, ulong off, DwarfSym *s) +{ + if(dwarfenumunit(d, unit, s) < 0) + return -1; + s->b.p = d->info.data + unit + off; + if(dwarfnextsymat(d, s, 0) != 1) + return -1; + return 0; +} + +int +dwarflookupfn(Dwarf *d, ulong unit, ulong pc, DwarfSym *s) +{ + if(dwarfenumunit(d, unit, s) < 0) + return -1; + + if(dwarfnextsymat(d, s, 0) != 1) + return -1; + /* s is now the CompileUnit */ + + while(dwarfnextsymat(d, s, 1) == 1){ + if(s->attrs.tag != TagSubprogram) + continue; + if(s->attrs.lowpc <= pc && pc < s->attrs.highpc) + return 0; + } + werrstr("fn containing pc 0x%lux not found", pc); + return -1; +} + +int +dwarfenumunit(Dwarf *d, ulong unit, DwarfSym *s) +{ + int i; + ulong aoff, len; + + if(unit >= d->info.len){ + werrstr("dwarf unit address 0x%x >= 0x%x out of range", unit, d->info.len); + return -1; + } + memset(s, 0, sizeof *s); + memset(&s->b, 0, sizeof s->b); + + s->b.d = d; + s->b.p = d->info.data + unit; + s->b.ep = d->info.data + d->info.len; + len = dwarfget4(&s->b); + s->nextunit = unit + 4 + len; + + if(s->b.ep - s->b.p < len){ + badheader: + werrstr("bad dwarf unit header at unit 0x%lux", unit); + return -1; + } + s->b.ep = s->b.p+len; + if((i=dwarfget2(&s->b)) != 2) + goto badheader; + aoff = dwarfget4(&s->b); + s->b.addrsize = dwarfget1(&s->b); + if(d->addrsize == 0) + d->addrsize = s->b.addrsize; + if(s->b.p == nil) + goto badheader; + + s->aoff = aoff; + s->unit = unit; + s->depth = 0; + return 0; +} + +int +dwarfenum(Dwarf *d, DwarfSym *s) +{ + if(dwarfenumunit(d, 0, s) < 0) + return -1; + s->allunits = 1; + return 0; +} + +int +dwarfnextsym(Dwarf *d, DwarfSym *s) +{ + ulong num; + DwarfAbbrev *a; + + if(s->attrs.haskids) + s->depth++; +top: + if(s->b.p >= s->b.ep){ + if(s->allunits && s->nextunit < d->info.len){ + if(dwarfenumunit(d, s->nextunit, s) < 0) { + return -1; + } + s->allunits = 1; + goto top; + } + return 0; + } + + s->uoff = s->b.p - (d->info.data+s->unit); + num = dwarfget128(&s->b); + if(num == 0){ + if(s->depth == 0) { + return 0; + } + if(s->depth > 0) + s->depth--; + goto top; + } + + a = dwarfgetabbrev(d, s->aoff, num); + if(a == nil){ + werrstr("getabbrev %ud %ud for %ud,%ud: %r\n", s->aoff, num, s->unit, s->uoff); + return -1; + } + if(parseattrs(&s->b, s->unit, a, &s->attrs) < 0) { + return -1; + } + return 1; +} + +int +dwarfnextsymat(Dwarf *d, DwarfSym *s, int depth) +{ + int r; + DwarfSym t; + uint sib; + + if(s->depth == depth && s->attrs.have.sibling){ + sib = s->attrs.sibling; + if(sib < d->info.len && d->info.data+sib >= s->b.p) + s->b.p = d->info.data+sib; + s->attrs.haskids = 0; + } + + /* + * The funny game with t and s make sure that + * if we get to the end of a run of a particular + * depth, we leave s so that a call to nextsymat with depth-1 + * will actually produce the desired guy. We could change + * the interface to dwarfnextsym instead, but I'm scared + * to touch it. + */ + t = *s; + for(;;){ + if((r = dwarfnextsym(d, &t)) != 1) { + return r; + } + if(t.depth < depth){ + /* went too far - nothing to see */ + return 0; + } + *s = t; + if(t.depth == depth) { + return 1; + } + } +} + +typedef struct Parse Parse; +struct Parse { + int name; + int off; + int haveoff; + int type; +}; + +#define OFFSET(x) offsetof(DwarfAttrs, x), offsetof(DwarfAttrs, have.x) + +static Parse plist[] = { /* Font Tab 4 */ + { DwarfAttrAbstractOrigin, OFFSET(abstractorigin), TReference }, + { DwarfAttrAccessibility, OFFSET(accessibility), TConstant }, + { DwarfAttrAddrClass, OFFSET(addrclass), TConstant }, + { DwarfAttrArtificial, OFFSET(isartificial), TFlag }, + { DwarfAttrBaseTypes, OFFSET(basetypes), TReference }, + { DwarfAttrBitOffset, OFFSET(bitoffset), TConstant }, + { DwarfAttrBitSize, OFFSET(bitsize), TConstant }, + { DwarfAttrByteSize, OFFSET(bytesize), TConstant }, + { DwarfAttrCalling, OFFSET(calling), TConstant }, + { DwarfAttrCommonRef, OFFSET(commonref), TReference }, + { DwarfAttrCompDir, OFFSET(compdir), TString }, + { DwarfAttrConstValue, OFFSET(constvalue), TString|TConstant|TBlock }, + { DwarfAttrContainingType, OFFSET(containingtype), TReference }, + { DwarfAttrCount, OFFSET(count), TConstant|TReference }, + { DwarfAttrDataMemberLoc, OFFSET(datamemberloc), TBlock|TConstant|TReference }, + { DwarfAttrDeclColumn, OFFSET(declcolumn), TConstant }, + { DwarfAttrDeclFile, OFFSET(declfile), TConstant }, + { DwarfAttrDeclLine, OFFSET(declline), TConstant }, + { DwarfAttrDeclaration, OFFSET(isdeclaration), TFlag }, + { DwarfAttrDefaultValue, OFFSET(defaultvalue), TReference }, + { DwarfAttrDiscr, OFFSET(discr), TReference }, + { DwarfAttrDiscrList, OFFSET(discrlist), TBlock }, + { DwarfAttrDiscrValue, OFFSET(discrvalue), TConstant }, + { DwarfAttrEncoding, OFFSET(encoding), TConstant }, + { DwarfAttrExternal, OFFSET(isexternal), TFlag }, + { DwarfAttrFrameBase, OFFSET(framebase), TBlock|TConstant }, + { DwarfAttrFriend, OFFSET(friend), TReference }, + { DwarfAttrHighpc, OFFSET(highpc), TAddress }, + { DwarfAttrEntrypc, OFFSET(entrypc), TAddress }, + { DwarfAttrIdentifierCase, OFFSET(identifiercase), TConstant }, + { DwarfAttrImport, OFFSET(import), TReference }, + { DwarfAttrInline, OFFSET(inlined), TConstant }, + { DwarfAttrIsOptional, OFFSET(isoptional), TFlag }, + { DwarfAttrLanguage, OFFSET(language), TConstant }, + { DwarfAttrLocation, OFFSET(location), TBlock|TConstant }, + { DwarfAttrLowerBound, OFFSET(lowerbound), TConstant|TReference }, + { DwarfAttrLowpc, OFFSET(lowpc), TAddress }, + { DwarfAttrMacroInfo, OFFSET(macroinfo), TConstant }, + { DwarfAttrName, OFFSET(name), TString }, + { DwarfAttrNamelistItem, OFFSET(namelistitem), TBlock }, + { DwarfAttrOrdering, OFFSET(ordering), TConstant }, + { DwarfAttrPriority, OFFSET(priority), TReference }, + { DwarfAttrProducer, OFFSET(producer), TString }, + { DwarfAttrPrototyped, OFFSET(isprototyped), TFlag }, + { DwarfAttrRanges, OFFSET(ranges), TReference }, + { DwarfAttrReturnAddr, OFFSET(returnaddr), TBlock|TConstant }, + { DwarfAttrSegment, OFFSET(segment), TBlock|TConstant }, + { DwarfAttrSibling, OFFSET(sibling), TReference }, + { DwarfAttrSpecification, OFFSET(specification), TReference }, + { DwarfAttrStartScope, OFFSET(startscope), TConstant }, + { DwarfAttrStaticLink, OFFSET(staticlink), TBlock|TConstant }, + { DwarfAttrStmtList, OFFSET(stmtlist), TConstant }, + { DwarfAttrStrideSize, OFFSET(stridesize), TConstant }, + { DwarfAttrStringLength, OFFSET(stringlength), TBlock|TConstant }, + { DwarfAttrType, OFFSET(type), TReference }, + { DwarfAttrUpperBound, OFFSET(upperbound), TConstant|TReference }, + { DwarfAttrUseLocation, OFFSET(uselocation), TBlock|TConstant }, + { DwarfAttrVarParam, OFFSET(isvarparam), TFlag }, + { DwarfAttrVirtuality, OFFSET(virtuality), TConstant }, + { DwarfAttrVisibility, OFFSET(visibility), TConstant }, + { DwarfAttrVtableElemLoc, OFFSET(vtableelemloc), TBlock|TReference }, + { } +}; + +static Parse ptab[DwarfAttrMax]; + +static int +parseattrs(DwarfBuf *b, ulong unit, DwarfAbbrev *a, DwarfAttrs *attrs) +{ + int i, f, n, got; + static int nbad; + void *v; + + /* initialize ptab first time through for quick access */ + if(ptab[DwarfAttrName].name != DwarfAttrName) + for(i=0; plist[i].name; i++) + ptab[plist[i].name] = plist[i]; + + memset(attrs, 0, sizeof *attrs); + attrs->tag = a->tag; + attrs->haskids = a->haskids; + + for(i=0; inattr; i++){ + n = a->attr[i].name; + f = a->attr[i].form; + if(n < 0 || n >= DwarfAttrMax || ptab[n].name==0){ + if(++nbad == 1) + werrstr("dwarf parse attrs: unexpected attribute name 0x%x", n); + continue; //return -1; + } + v = (char*)attrs + ptab[n].off; + got = 0; + if(f == FormIndirect) + f = dwarfget128(b); + if((ptab[n].type&(TConstant|TReference|TAddress)) + && getulong(b, f, unit, v, &got) >= 0) + ; + else if((ptab[n].type&TFlag) && getuchar(b, f, v) >= 0) + got = TFlag; + else if((ptab[n].type&TString) && getstring(b, f, v) >= 0) + got = TString; + else if((ptab[n].type&TBlock) && getblock(b, f, v) >= 0) + got = TBlock; + else{ + if(skipform(b, f) < 0){ + if(++nbad == 1) + werrstr("dwarf parse attrs: cannot skip form %d", f); + return -1; + } + } + if(got == TBlock && (ptab[n].type&TConstant)) + got = constblock(b->d, v, v); + *((uchar*)attrs+ptab[n].haveoff) = got; + } + return 0; +} + +static int +getulong(DwarfBuf *b, int form, ulong unit, ulong *u, int *type) +{ + static int nbad; + uvlong uv; + + switch(form){ + default: + return -1; + + /* addresses */ + case FormAddr: + *type = TAddress; + *u = dwarfgetaddr(b); + return 0; + + /* references */ + case FormRefAddr: + /* absolute ref in .debug_info */ + *type = TReference; + *u = dwarfgetaddr(b); + return 0; + case FormRef1: + *u = dwarfget1(b); + goto relativeref; + case FormRef2: + *u = dwarfget2(b); + goto relativeref; + case FormRef4: + *u = dwarfget4(b); + goto relativeref; + case FormRef8: + *u = dwarfget8(b); + goto relativeref; + case FormRefUdata: + *u = dwarfget128(b); + relativeref: + *u += unit; + *type = TReference; + return 0; + + /* constants */ + case FormData1: + *u = dwarfget1(b); + goto constant; + case FormData2: + *u = dwarfget2(b); + goto constant; + case FormData4: + *u = dwarfget4(b); + goto constant; + case FormData8: + uv = dwarfget8(b); + *u = uv; + if(uv != *u && ++nbad == 1) + werrstr("dwarf: truncating 64-bit attribute constants"); + goto constant; + case FormSdata: + *u = dwarfget128s(b); + goto constant; + case FormUdata: + *u = dwarfget128(b); + constant: + *type = TConstant; + return 0; + } +} + +static int +getuchar(DwarfBuf *b, int form, uchar *u) +{ + switch(form){ + default: + return -1; + + case FormFlag: + *u = dwarfget1(b); + return 0; + } +} + +static int +getstring(DwarfBuf *b, int form, char **s) +{ + static int nbad; + ulong u; + + switch(form){ + default: + return -1; + + case FormString: + *s = dwarfgetstring(b); + return 0; + + case FormStrp: + u = dwarfget4(b); + if(u >= b->d->str.len){ + if(++nbad == 1) + werrstr("dwarf: bad string pointer 0x%lux in attribute", u); + /* don't return error - maybe can proceed */ + *s = nil; + }else + *s = (char*)b->d->str.data + u; + return 0; + + } +} + +static int +getblock(DwarfBuf *b, int form, DwarfBlock *bl) +{ + ulong n; + + switch(form){ + default: + return -1; + case FormDwarfBlock: + n = dwarfget128(b); + goto copyn; + case FormDwarfBlock1: + n = dwarfget1(b); + goto copyn; + case FormDwarfBlock2: + n = dwarfget2(b); + goto copyn; + case FormDwarfBlock4: + n = dwarfget4(b); + copyn: + bl->data = dwarfgetnref(b, n); + bl->len = n; + if(bl->data == nil) + return -1; + return 0; + } +} + +static int +constblock(Dwarf *d, DwarfBlock *bl, ulong *pval) +{ + DwarfBuf b; + + memset(&b, 0, sizeof b); + b.p = bl->data; + b.ep = bl->data+bl->len; + b.d = d; + + switch(dwarfget1(&b)){ + case OpAddr: + *pval = dwarfgetaddr(&b); + return TConstant; + case OpConst1u: + *pval = dwarfget1(&b); + return TConstant; + case OpConst1s: + *pval = (schar)dwarfget1(&b); + return TConstant; + case OpConst2u: + *pval = dwarfget2(&b); + return TConstant; + case OpConst2s: + *pval = (s16int)dwarfget2(&b); + return TConstant; + case OpConst4u: + *pval = dwarfget4(&b); + return TConstant; + case OpConst4s: + *pval = (s32int)dwarfget4(&b); + return TConstant; + case OpConst8u: + *pval = (u64int)dwarfget8(&b); + return TConstant; + case OpConst8s: + *pval = (s64int)dwarfget8(&b); + return TConstant; + case OpConstu: + *pval = dwarfget128(&b); + return TConstant; + case OpConsts: + *pval = dwarfget128s(&b); + return TConstant; + case OpPlusUconst: + *pval = dwarfget128(&b); + return TConstant; + default: + return TBlock; + } +} + +/* last resort */ +static int +skipform(DwarfBuf *b, int form) +{ + int type; + DwarfVal val; + + if(getulong(b, form, 0, &val.c, &type) < 0 + && getuchar(b, form, (uchar*)&val) < 0 + && getstring(b, form, &val.s) < 0 + && getblock(b, form, &val.b) < 0) + return -1; + return 0; +} + diff --git a/reactos/lib/rossym/dwarfopen.c b/reactos/lib/rossym/dwarfopen.c new file mode 100644 index 00000000000..9a5f20c80fa --- /dev/null +++ b/reactos/lib/rossym/dwarfopen.c @@ -0,0 +1,70 @@ +#define NTOSAPI +#include +#include +#include "rossympriv.h" +#include + +#define NDEBUG +#include + +#include "dwarf.h" +#include "pe.h" + +/* Adapted for PE */ + +Dwarf* +dwarfopen(Pe *pe) +{ + Dwarf *d; + + if(pe == nil){ + werrstr("nil pe passed to dwarfopen"); + return nil; + } + + d = mallocz(sizeof(Dwarf), 1); + if(d == nil) + return nil; + + d->pe = pe; + if(pe->loadsection(pe, ".debug_abbrev", &d->abbrev) < 0 + || pe->loadsection(pe, ".debug_aranges", &d->aranges) < 0 + || pe->loadsection(pe, ".debug_line", &d->line) < 0 + || pe->loadsection(pe, ".debug_pubnames", &d->pubnames) < 0 + || pe->loadsection(pe, ".debug_info", &d->info) < 0) + goto err; + pe->loadsection(pe, ".debug_frame", &d->frame); + pe->loadsection(pe, ".debug_ranges", &d->ranges); + pe->loadsection(pe, ".debug_str", &d->str); + + return d; + +err: + DPRINT("Failed to open dwarf\n"); + free(d->abbrev.data); + free(d->aranges.data); + free(d->frame.data); + free(d->line.data); + free(d->pubnames.data); + free(d->ranges.data); + free(d->str.data); + free(d->info.data); + free(d); + return nil; +} + +void +dwarfclose(Dwarf *d) +{ + free(d->abbrev.data); + free(d->aranges.data); + free(d->frame.data); + free(d->line.data); + free(d->pubnames.data); + free(d->ranges.data); + free(d->str.data); + free(d->info.data); + pefree(d->pe); + free(d); +} + diff --git a/reactos/lib/rossym/dwarfpc.c b/reactos/lib/rossym/dwarfpc.c new file mode 100644 index 00000000000..4edb5569ae9 --- /dev/null +++ b/reactos/lib/rossym/dwarfpc.c @@ -0,0 +1,385 @@ +/* + * Dwarf pc to source line conversion. + * + * Maybe should do the reverse here, but what should the interface look like? + * One possibility is to use the Plan 9 line2addr interface: + * + * long line2addr(ulong line, ulong basepc) + * + * which returns the smallest pc > basepc with line number line (ignoring file name). + * + * The encoding may be small, but it sure isn't simple! + */ + +#define NTOSAPI +#include +#include +#include "rossympriv.h" +#include + +#define NDEBUG +#include + +#include "dwarf.h" +#include "pe.h" + +#define trace 0 + +enum +{ + Isstmt = 1<<0, + BasicDwarfBlock = 1<<1, + EndSequence = 1<<2, + PrologueEnd = 1<<3, + EpilogueBegin = 1<<4 +}; + +typedef struct State State; +struct State +{ + ulong addr; + ulong file; + ulong line; + ulong column; + ulong flags; + ulong isa; +}; + +int +dwarfpctoline(Dwarf *d, ulong pc, char **cdir, char **dir, char **file, char **function, ulong *line, ulong *mtime, ulong *length) +{ + uchar *prog, *opcount, *end, *dirs; + ulong off, unit, len, vers, x, start, lastline; + int i, first, firstline, op, a, l, quantum, isstmt, linebase, linerange, opcodebase, nf; + char *files, *s; + DwarfBuf b; + DwarfSym sym; + State emit, cur, reset; + uchar **f, **newf; + + f = nil; + + if(dwarfaddrtounit(d, pc, &unit) < 0 + || dwarflookuptag(d, unit, TagCompileUnit, &sym) < 0) + return -1; + + if(!sym.attrs.have.stmtlist){ + werrstr("no line mapping information for 0x%x", pc); + return -1; + } + off = sym.attrs.stmtlist; + if(off >= d->line.len){ + werrstr("bad stmtlist\n"); + goto bad; + } + + if(trace) werrstr("unit 0x%x stmtlist 0x%x", unit, sym.attrs.stmtlist); + + memset(&b, 0, sizeof b); + b.d = d; + b.p = d->line.data + off; + b.ep = b.p + d->line.len; + b.addrsize = sym.b.addrsize; /* should i get this from somewhere else? */ + + len = dwarfget4(&b); + if(b.p==nil || b.p+len > b.ep || b.p+len < b.p){ + werrstr("bad len\n"); + goto bad; + } + + b.ep = b.p+len; + vers = dwarfget2(&b); + if(vers != 2){ + werrstr("bad dwarf version 0x%x", vers); + return -1; + } + + len = dwarfget4(&b); + if(b.p==nil || b.p+len > b.ep || b.p+len < b.p){ + werrstr("another bad len\n"); + goto bad; + } + prog = b.p+len; + + quantum = dwarfget1(&b); + isstmt = dwarfget1(&b); + linebase = (schar)dwarfget1(&b); + linerange = (schar)dwarfget1(&b); + opcodebase = dwarfget1(&b); + + opcount = b.p-1; + dwarfgetnref(&b, opcodebase-1); + if(b.p == nil){ + werrstr("bad opcode chart\n"); + goto bad; + } + + /* just skip the files and dirs for now; we'll come back */ + dirs = b.p; + while (b.p && *b.p) + dwarfgetstring(&b); + dwarfget1(&b); + + files = (char*)b.p; + while(b.p!=nil && *b.p!=0){ + dwarfgetstring(&b); + dwarfget128(&b); + dwarfget128(&b); + dwarfget128(&b); + } + dwarfget1(&b); + + /* move on to the program */ + if(b.p == nil || b.p > prog){ + werrstr("bad header\n"); + goto bad; + } + b.p = prog; + + reset.addr = 0; + reset.file = 1; + reset.line = 1; + reset.column = 0; + reset.flags = isstmt ? Isstmt : 0; + reset.isa = 0; + + cur = reset; + emit = reset; + nf = 0; + start = 0; + if(trace) werrstr("program @ %lu ... %.*H opbase = %d\n", b.p - d->line.data, b.ep-b.p, b.p, opcodebase); + first = 1; + while(b.p != nil){ + firstline = 0; + op = dwarfget1(&b); + if(trace) werrstr("\tline %lu, addr 0x%x, op %d %.10H", cur.line, cur.addr, op, b.p); + if(op >= opcodebase){ + a = (op - opcodebase) / linerange; + l = (op - opcodebase) % linerange + linebase; + cur.line += l; + cur.addr += a * quantum; + if(trace) werrstr(" +%d,%d\n", a, l); + emit: + if(first){ + if(cur.addr > pc){ + werrstr("found wrong line mapping 0x%x for pc 0x%x", cur.addr, pc); + /* This is an overzealous check. gcc can produce discontiguous ranges + and reorder statements, so it's possible for a future line to start + ahead of pc and still find a matching one. */ + /*goto out;*/ + firstline = 1; + } + first = 0; + start = cur.addr; + } + if(cur.addr > pc && !firstline) + break; + if(b.p == nil){ + werrstr("buffer underflow in line mapping"); + goto out; + } + emit = cur; + if(emit.flags & EndSequence){ + werrstr("found wrong line mapping 0x%x-0x%x for pc 0x%x", start, cur.addr, pc); + goto out; + } + cur.flags &= ~(BasicDwarfBlock|PrologueEnd|EpilogueBegin); + }else{ + switch(op){ + case 0: /* extended op code */ + if(trace) werrstr(" ext"); + len = dwarfget128(&b); + end = b.p+len; + if(b.p == nil || end > b.ep || end < b.p || len < 1) + goto bad; + switch(dwarfget1(&b)){ + case 1: /* end sequence */ + if(trace) werrstr(" end\n"); + cur.flags |= EndSequence; + goto emit; + case 2: /* set address */ + cur.addr = dwarfgetaddr(&b); + if(trace) werrstr(" set pc 0x%x\n", cur.addr); + break; + case 3: /* define file */ + newf = malloc(nf+1*sizeof(f[0])); + if (newf) + RtlMoveMemory(newf, f, nf*sizeof(f[0])); + if(newf == nil) + goto out; + f[nf++] = b.p; + s = dwarfgetstring(&b); + dwarfget128(&b); + dwarfget128(&b); + dwarfget128(&b); + if(trace) werrstr(" def file %s\n", s); + break; + } + if(b.p == nil || b.p > end) + goto bad; + b.p = end; + break; + case 1: /* emit */ + if(trace) werrstr(" emit\n"); + goto emit; + case 2: /* advance pc */ + a = dwarfget128(&b); + if(trace) werrstr(" advance pc + %lu\n", a*quantum); + cur.addr += a * quantum; + break; + case 3: /* advance line */ + l = dwarfget128s(&b); + if(trace) werrstr(" advance line + %ld\n", l); + cur.line += l; + break; + case 4: /* set file */ + if(trace) werrstr(" set file\n"); + cur.file = dwarfget128s(&b); + break; + case 5: /* set column */ + if(trace) werrstr(" set column\n"); + cur.column = dwarfget128(&b); + break; + case 6: /* negate stmt */ + if(trace) werrstr(" negate stmt\n"); + cur.flags ^= Isstmt; + break; + case 7: /* set basic block */ + if(trace) werrstr(" set basic block\n"); + cur.flags |= BasicDwarfBlock; + break; + case 8: /* const add pc */ + a = (255 - opcodebase) / linerange * quantum; + if(trace) werrstr(" const add pc + %d\n", a); + cur.addr += a; + break; + case 9: /* fixed advance pc */ + a = dwarfget2(&b); + if(trace) werrstr(" fixed advance pc + %d\n", a); + cur.addr += a; + break; + case 10: /* set prologue end */ + if(trace) werrstr(" set prologue end\n"); + cur.flags |= PrologueEnd; + break; + case 11: /* set epilogue begin */ + if(trace) werrstr(" set epilogue begin\n"); + cur.flags |= EpilogueBegin; + break; + case 12: /* set isa */ + if(trace) werrstr(" set isa\n"); + cur.isa = dwarfget128(&b); + break; + default: /* something new - skip it */ + if(trace) werrstr(" unknown %d\n", opcount[op]); + for(i=0; i 0 && b.p!=nil && *b.p!=0; i--){ + dwarfgetstring(&b); + dwarfget128(&b); + dwarfget128(&b); + dwarfget128(&b); + } + if(b.p == nil){ + werrstr("problem parsing file data second time (cannot happen)"); + goto bad; + } + if(*b.p == 0){ + if(i >= nf){ + werrstr("bad file index in mapping data"); + goto bad; + } + b.p = f[i]; + } + s = dwarfgetstring(&b); + if(file) + *file = s; + i = dwarfget128(&b); /* directory */ + x = dwarfget128(&b); + if(mtime) + *mtime = x; + x = dwarfget128(&b); + if(length) + *length = x; + + /* fetch dir name */ + if(cdir) + *cdir = sym.attrs.compdir; + + if(dir){ + *dir = nil; + b.p = dirs; + for (x = 1; b.p && *b.p; x++) + if (x == i) { + *dir = dwarfgetstring(&b); + break; + } + } + + *function = nil; + lastline = 0; +#if 0 + if (dwarfenumunit(d, unit, &proc) >= 0) { + dwarfnextsymat(d, &proc, 0); + while (dwarfnextsymat(d, &proc, 1) == 1) { + if (proc.attrs.tag == TagSubprogram && + proc.attrs.have.name && + proc.attrs.declfile == emit.file && + proc.attrs.declline <= *line && + proc.attrs.declline > lastline) { + lastline = proc.attrs.declline; + free(*function); + *function = malloc(strlen(proc.attrs.name)+1); + strcpy(*function, proc.attrs.name); + } + } + } +#elif 1 + ulong lastaddr = 0; + *function = NULL; + for (i = 0; i < d->pe->nsymbols; i++) { + if (d->pe->symtab[i].address > lastaddr && + d->pe->symtab[i].address <= pc - d->pe->imagebase && + d->pe->symtab[i].address < d->pe->imagesize) { + lastaddr = d->pe->symtab[i].address; + *function = d->pe->symtab[i].name; + } + } +#else + // *sigh* we get unrelocated low_pc and high_pc because the dwarf symbols + // are not 'loaded' in the PE sense. + if (dwarflookupfn(d, unit, pc, &proc) >= 0) { + *function = malloc(strlen(proc.attrs.name)+1); + strcpy(*function, proc.attrs.name); + } +#endif + + /* free at last, free at last */ + free(f); + return 0; + +bad: + werrstr("corrupted line mapping for 0x%x", pc); +out: + free(f); + return -1; +} + diff --git a/reactos/lib/rossym/dwarfpubnames.c b/reactos/lib/rossym/dwarfpubnames.c new file mode 100644 index 00000000000..8a8d802b797 --- /dev/null +++ b/reactos/lib/rossym/dwarfpubnames.c @@ -0,0 +1,81 @@ +#define NTOSAPI +#include +#include +#include + +#define NDEBUG +#include + +#include "dwarf.h" + +static int +_dwarfnametounit(Dwarf *d, char *name, DwarfBlock *bl, DwarfSym *s) +{ + int vers; + ulong len, unit, off; + uchar *next; + char *str; + DwarfBuf b; + + b.d = d; + b.p = bl->data; + b.ep = b.p + bl->len; + + while(b.p < b.ep){ + len = dwarfget4(&b); + if(len > b.ep-b.p){ + werrstr("bad length in dwarf name header"); + return -1; + } + next = b.p + len; + vers = dwarfget2(&b); + if(vers != 1 && vers != 2){ + werrstr("bad version %d in dwarf name header", vers); + return -1; + } + unit = dwarfget4(&b); + dwarfget4(&b); /* unit length */ + while(b.p < next){ + off = dwarfget4(&b); + if(off == 0) + break; + str = dwarfgetstring(&b); + if(strcmp(str, name) == 0){ + if(dwarfenumunit(d, unit, s) < 0) + return -1; + if(unit + off >= s->b.ep - d->info.data){ + werrstr("bad offset in name entry"); + return -1; + } + s->b.p = d->info.data + unit + off; + if(dwarfnextsym(d, s) < 0) + return -1; + if(s->attrs.name==nil || strcmp(s->attrs.name, name)!=0){ + werrstr("unexpected name %#q in lookup for %#q", s->attrs.name, name); + return -1; + } + return 0; + } + } + b.p = next; + } + werrstr("unknown name '%s'", name); + return -1; +} + +int +dwarflookupname(Dwarf *d, char *name, DwarfSym *sym) +{ + return _dwarfnametounit(d, name, &d->pubnames, sym); +} + +/* + +int +dwarflookuptype(Dwarf *d, char *name, DwarfSym *sym) +{ + return _dwarfnametounit(d, name, &d->pubtypes, sym); +} + + */ + diff --git a/reactos/lib/rossym/iofile.c b/reactos/lib/rossym/iofile.c new file mode 100644 index 00000000000..97069c50076 --- /dev/null +++ b/reactos/lib/rossym/iofile.c @@ -0,0 +1,34 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: lib/rossym/zwfile.c + * PURPOSE: File I/O using native functions + * + * PROGRAMMERS: Ge van Geldorp (gvg@reactos.com) + */ + +#define NTOSAPI +#include +#include +#include "rossympriv.h" + +#define NDEBUG +#include + +NTSTATUS RosSymStatus; + +BOOLEAN +RosSymIoReadFile(PVOID FileContext, PVOID Buffer, ULONG Size) +{ + PROSSYM_OWN_FILECONTEXT OwnContext = (PROSSYM_OWN_FILECONTEXT)FileContext; + return OwnContext->ReadFileProc(FileContext, Buffer, Size); +} + +BOOLEAN +RosSymIoSeekFile(PVOID FileContext, ULONG_PTR Position) +{ + PROSSYM_OWN_FILECONTEXT OwnContext = (PROSSYM_OWN_FILECONTEXT)FileContext; + return OwnContext->SeekFileProc(FileContext, Position); +} + +/* EOF */ diff --git a/reactos/lib/rossym/pe.c b/reactos/lib/rossym/pe.c new file mode 100644 index 00000000000..a00716cd185 --- /dev/null +++ b/reactos/lib/rossym/pe.c @@ -0,0 +1,142 @@ +#define NTOSAPI +#include +#include +#include +#include "rossympriv.h" +#include + +#define NDEBUG +#include + +#include "dwarf.h" +#include "pe.h" +#include "rossympriv.h" + +PeSect *pesection(Pe *pe, const char *name) +{ + int i; + ANSI_STRING WantName; + RtlInitAnsiString(&WantName, name); + DPRINT("Searching for section %s\n", name); + for (i = 0; i < pe->nsections; i++) { + PANSI_STRING AnsiString = ANSI_NAME_STRING(&pe->sect[i]); + if (WantName.Length == AnsiString->Length && + !memcmp(AnsiString->Buffer, name, WantName.Length)) { + DPRINT("Found %s (%d) @ %x (%x)\n", name, i, + ((PCHAR)pe->imagebase)+pe->sect[i].VirtualAddress, + pe->sect[i].SizeOfRawData); + return &pe->sect[i]; + } + } + DPRINT("%s not found\n", name); + return nil; +} + +u16int peget2(const unsigned char *ptr) { + return *((u16int*)ptr); +} + +u32int peget4(const unsigned char *ptr) { + return *((u32int*)ptr); +} + +u64int peget8(const unsigned char *ptr) { + return *((u64int*)ptr); +} + +int readn(void *filectx, char *buffer, ulong size) { + return RosSymReadFile(filectx, buffer, size); +} + +int seek(void *filectx, ulong position, int origin) { + assert(origin == 0); + return RosSymSeekFile(filectx, position); +} + +static int +readblock(void *fd, DwarfBlock *b, ulong off, ulong len) +{ + b->data = malloc(len); + if(b->data == nil) + return -1; + if(!seek(fd, off, 0) || !readn(fd, (char *)b->data, len)){ + free(b->data); + b->data = nil; + return -1; + } + b->len = len; + return 0; +} + +int +loaddisksection(Pe *pe, char *name, DwarfBlock *b) +{ + PeSect *s; + if((s = pesection(pe, name)) == nil) + return -1; + return readblock(pe->fd, b, s->PointerToRawData, s->SizeOfRawData); +} + +int +loadmemsection(Pe *pe, char *name, DwarfBlock *b) +{ + PeSect *s; + + if((s = pesection(pe, name)) == nil) + return -1; + DPRINT("Loading section %s (ImageBase %x RVA %x)\n", name, pe->fd, s->VirtualAddress); + b->data = RosSymAllocMem(s->SizeOfRawData); + b->len = s->SizeOfRawData; + PCHAR DataSource = ((char *)pe->fd) + s->VirtualAddress; + DPRINT("Copying to %x from %x (%x)\n", DataSource, b->data, b->len); + RtlCopyMemory(b->data, DataSource, s->SizeOfRawData); + + return s->SizeOfRawData; +} + +void *RosSymAllocMemZero(ulong size, ulong count) { + void *res = RosSymAllocMem(size * count); + if (res) memset(res, 0, size * count); + return res; +} + +int GetStrnlen(const char *string, int maxlen) { + int i; + for (i = 0; i < maxlen && string[i]; i++); + return i; +} + +void pefree(Pe *pe) { + int i; + for (i = 0; i < pe->nsections; i++) { + RtlFreeAnsiString(ANSI_NAME_STRING(&pe->sect[i])); + } + for (i = 0; i < pe->nsymbols; i++) { + free(pe->symtab[i].name); + } + free(pe->symtab); + free(pe->sect); + free(pe); +} + +void xfree(void *v) { + if (v) RosSymFreeMem(v); +} + +ulong pefindrva(struct _IMAGE_SECTION_HEADER *SectionHeaders, int NumberOfSections, ulong TargetPhysical) { + int i; + DPRINT("Finding RVA for Physical %x\n", TargetPhysical); + for (i = 0; i < NumberOfSections; i++) { + DPRINT("Section %d name %s Raw %x Virt %x\n", + i, + ANSI_NAME_STRING(&SectionHeaders[i])->Buffer, + SectionHeaders[i].PointerToRawData, + SectionHeaders[i].VirtualAddress); + if (TargetPhysical >= SectionHeaders[i].PointerToRawData && + TargetPhysical < SectionHeaders[i].PointerToRawData + SectionHeaders[i].SizeOfRawData) { + DPRINT("RVA %x\n", TargetPhysical - SectionHeaders[i].PointerToRawData + SectionHeaders[i].VirtualAddress); + return TargetPhysical - SectionHeaders[i].PointerToRawData + SectionHeaders[i].VirtualAddress; + } + } + return nil; +} diff --git a/reactos/lib/rossym/pe.h b/reactos/lib/rossym/pe.h new file mode 100644 index 00000000000..5e659a216e9 --- /dev/null +++ b/reactos/lib/rossym/pe.h @@ -0,0 +1,61 @@ +#ifndef _LIBMACH_PE_H_ +#define _LIBMACH_PE_H_ + +#include "compat.h" + +struct DwarfBlock; +typedef struct _IMAGE_SECTION_HEADER PeSect; + +typedef struct _CoffSymbol { + ulong address; + char *name; +} CoffSymbol; + +typedef struct _Pe { + void *fd; + u16int (*e2)(const unsigned char *data); + u32int (*e4)(const unsigned char *data); + u64int (*e8)(const unsigned char *data); + ulong imagebase, imagesize, loadbase; + ulong nsymbols; + CoffSymbol *symtab; + int (*loadsection)(struct _Pe *pe, char *name, struct DwarfBlock *b); + int nsections; + struct _IMAGE_SECTION_HEADER *sect; +} Pe; + +#define E_SYMNMLEN 8 +#include +typedef struct { + union { + char e_name[E_SYMNMLEN]; + struct { + unsigned long e_zeroes; + unsigned long e_offset; + } e; + } e; + unsigned long e_value; + short e_scnum; + unsigned short e_type; + unsigned char e_sclass; + unsigned char e_numaux; +} SYMENT, *PSYMENT; +#include + +#define C_EXT 2 +#define C_STAT 3 +#define DT_FCN 0x40 + +Pe *peopen(const char *name); +int loaddisksection(struct _Pe *pe, char *name, struct DwarfBlock *b); +int loadmemsection(struct _Pe *pe, char *name, struct DwarfBlock *b); +u16int peget2(const unsigned char *ptr); +u32int peget4(const unsigned char *ptr); +u64int peget8(const unsigned char *ptr); +void pefree(struct _Pe *pe); +ulong pefindrva(struct _IMAGE_SECTION_HEADER *SectionHeader, int NumberOfSections, ulong TargetPhysical); +int GetStrnlen(const char *string, int maxlen); + +#define ANSI_NAME_STRING(s) ((PANSI_STRING)((s)->Name)) + +#endif/*_LIBMACH_PE_H_*/ diff --git a/reactos/lib/rossym_new/CMakeLists.txt b/reactos/lib/rossym_new/CMakeLists.txt new file mode 100644 index 00000000000..2b05860e247 --- /dev/null +++ b/reactos/lib/rossym_new/CMakeLists.txt @@ -0,0 +1,27 @@ + +if(MSVC) +add_library(rossym dummy.c) +else() +add_definitions(-D_NTSYSTEM_) +list(APPEND SOURCE + delete.c + dwarf386.c + dwarfabbrev.c + dwarfaranges.c + dwarfcfa.c + dwarfinfo.c + dwarfget.c + dwarfopen.c + dwarfpc.c + dwarfpubnames.c + find.c + fromfile.c + iofile.c + init.c + initkm.c + initum.c + pe.c + zwfile.c) +add_library(rossym ${SOURCE}) +add_dependencies(rossym psdk bugcodes) +endif() diff --git a/reactos/lib/rossym_new/compat.h b/reactos/lib/rossym_new/compat.h new file mode 100644 index 00000000000..64dc549f11c --- /dev/null +++ b/reactos/lib/rossym_new/compat.h @@ -0,0 +1,41 @@ +#ifndef _LIBMACH_COMPAT_H_ +#define _LIBMACH_COMPAT_H_ + +/* BSD like types */ +typedef signed char schar; +typedef unsigned char uchar; +typedef unsigned int uint; +typedef unsigned long ulong; +typedef unsigned long long uvlong; + +typedef unsigned short u16int; +typedef short s16int; +typedef unsigned int u32int; +typedef int s32int; +typedef unsigned long long u64int; +typedef long long s64int; + +#ifndef _WIN32 +typedef ulong size_t; +#endif + +#define offsetof(x,y) FIELD_OFFSET(x,y) +#define nil (0) + +#define nelem(arr) (sizeof((arr)[0]) / sizeof((arr))) + +int readn(void *fd, char *buf, ulong len); +int seek(void *fd, ulong off, int mode); + +void *RosSymAllocMemZero(ulong num, ulong size); +void *RosSymRealloc(void *mem, ulong newsize); +void xfree(void *v); + +#define werrstr(str, ...) DPRINT(str "\n" ,##__VA_ARGS__) +#define malloc(x) RosSymAllocMem(x) +#define mallocz(x,y) RosSymAllocMemZero(x,y) +#define free(x) xfree(x) +#define USED(x) (*((char *)&(x)) ^= 0) +#define memset(x,y,z) RtlZeroMemory(x,z) + +#endif/*_LIBMACH_COMPAT_H_*/ diff --git a/reactos/lib/rossym_new/delete.c b/reactos/lib/rossym_new/delete.c new file mode 100644 index 00000000000..1e6fe8393e2 --- /dev/null +++ b/reactos/lib/rossym_new/delete.c @@ -0,0 +1,28 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: lib/rossym/delete.c + * PURPOSE: Free rossym info + * + * PROGRAMMERS: Ge van Geldorp (gvg@reactos.com) + */ + +#define NTOSAPI +#include +#include +#include + +#define NDEBUG +#include + +#include "rossympriv.h" +#include "pe.h" +#include "dwarf.h" + +VOID +RosSymDelete(PROSSYM_INFO RosSymInfo) +{ + dwarfclose(RosSymInfo); +} + +/* EOF */ diff --git a/reactos/lib/rossym_new/dummy.c b/reactos/lib/rossym_new/dummy.c new file mode 100644 index 00000000000..2e4703fe528 --- /dev/null +++ b/reactos/lib/rossym_new/dummy.c @@ -0,0 +1,32 @@ + +#include +#include + +#define NDEBUG +#include + +BOOLEAN +RosSymCreateFromFile(PVOID FileContext, PROSSYM_INFO *RosSymInfo) +{ + return FALSE; +} + +VOID +RosSymDelete(PROSSYM_INFO RosSymInfo) +{ +} + +BOOLEAN +RosSymGetAddressInformation(PROSSYM_INFO RosSymInfo, + ULONG_PTR RelativeAddress, + ULONG *LineNumber, + char *FileName, + char *FunctionName) +{ + return FALSE; +} + +VOID +RosSymInitKernelMode(VOID) +{ +} diff --git a/reactos/lib/rossym_new/dwarf.h b/reactos/lib/rossym_new/dwarf.h new file mode 100644 index 00000000000..04689814bd7 --- /dev/null +++ b/reactos/lib/rossym_new/dwarf.h @@ -0,0 +1,471 @@ +#include "compat.h" + +typedef struct Dwarf Dwarf; +typedef struct DwarfAttrs DwarfAttrs; +typedef struct DwarfBlock DwarfBlock; +typedef struct DwarfBuf DwarfBuf; +typedef struct DwarfExpr DwarfExpr; +typedef struct DwarfSym DwarfSym; +typedef union DwarfVal DwarfVal; + +enum +{ + TagArrayType = 0x01, + TagClassType = 0x02, + TagEntryPoint = 0x03, + TagEnumerationType = 0x04, + TagFormalParameter = 0x05, + TagImportedDeclaration = 0x08, + TagLabel = 0x0A, + TagLexDwarfBlock = 0x0B, + TagMember = 0x0D, + TagPointerType = 0x0F, + TagReferenceType = 0x10, + TagCompileUnit = 0x11, + TagStringType = 0x12, + TagStructType = 0x13, + TagSubroutineType = 0x15, + TagTypedef = 0x16, + TagUnionType = 0x17, + TagUnspecifiedParameters = 0x18, + TagVariant = 0x19, + TagCommonDwarfBlock = 0x1A, + TagCommonInclusion = 0x1B, + TagInheritance = 0x1C, + TagInlinedSubroutine = 0x1D, + TagModule = 0x1E, + TagPtrToMemberType = 0x1F, + TagSetType = 0x20, + TagSubrangeType = 0x21, + TagWithStmt = 0x22, + TagAccessDeclaration = 0x23, + TagBaseType = 0x24, + TagCatchDwarfBlock = 0x25, + TagConstType = 0x26, + TagConstant = 0x27, + TagEnumerator = 0x28, + TagFileType = 0x29, + TagFriend = 0x2A, + TagNamelist = 0x2B, + TagNamelistItem = 0x2C, + TagPackedType = 0x2D, + TagSubprogram = 0x2E, + TagTemplateTypeParameter = 0x2F, + TagTemplateValueParameter = 0x30, + TagThrownType = 0x31, + TagTryDwarfBlock = 0x32, + TagVariantPart = 0x33, + TagVariable = 0x34, + TagVolatileType = 0x35, + TagDwarfProcedure = 0x36, + TagRestrictType = 0x37, + TagInterfaceType = 0x38, + TagNamespace = 0x39, + TagImportedModule = 0x3A, + TagUnspecifiedType = 0x3B, + TagPartialUnit = 0x3C, + TagImportedUnit = 0x3D, + TagMutableType = 0x3E, + + TypeAddress = 0x01, + TypeBoolean = 0x02, + TypeComplexFloat = 0x03, + TypeFloat = 0x04, + TypeSigned = 0x05, + TypeSignedChar = 0x06, + TypeUnsigned = 0x07, + TypeUnsignedChar = 0x08, + TypeImaginaryFloat = 0x09, + + AccessPublic = 0x01, + AccessProtected = 0x02, + AccessPrivate = 0x03, + + VisLocal = 0x01, + VisExported = 0x02, + VisQualified = 0x03, + + VirtNone = 0x00, + VirtVirtual = 0x01, + VirtPureVirtual = 0x02, + + LangC89 = 0x0001, + LangC = 0x0002, + LangAda83 = 0x0003, + LangCplusplus = 0x0004, + LangCobol74 = 0x0005, + LangCobol85 = 0x0006, + LangFortran77 = 0x0007, + LangFortran90 = 0x0008, + LangPascal83 = 0x0009, + LangModula2 = 0x000A, + LangJava = 0x000B, + LangC99 = 0x000C, + LangAda95 = 0x000D, + LangFortran95 = 0x000E, + LangPLI = 0x000F, + /* 0x8000-0xFFFF reserved */ + + IdCaseSensitive = 0x00, + IdCaseUpper = 0x01, + IdCaseLower = 0x02, + IdCaseInsensitive = 0x03, + + CallingNormal = 0x01, + CallingProgram = 0x02, + CallingNocall = 0x03, + /* 0x40-0xFF reserved */ + + InNone = 0x00, + InInlined = 0x01, + InDeclaredNotInlined = 0x02, + InDeclaredInlined = 0x03, + + OrderRowMajor = 0x00, + OrderColumnMajor = 0x01, + + DiscLabel = 0x00, + DiscRange = 0x01, + + TReference = 1<<0, + TBlock = 1<<1, + TConstant = 1<<2, + TString = 1<<3, + TFlag = 1<<4, + TAddress = 1<<5, + + OpAddr = 0x03, /* 1 op, const addr */ + OpDeref = 0x06, + OpConst1u = 0x08, /* 1 op, 1 byte const */ + OpConst1s = 0x09, /* " signed */ + OpConst2u = 0x0A, /* 1 op, 2 byte const */ + OpConst2s = 0x0B, /* " signed */ + OpConst4u = 0x0C, /* 1 op, 4 byte const */ + OpConst4s = 0x0D, /* " signed */ + OpConst8u = 0x0E, /* 1 op, 8 byte const */ + OpConst8s = 0x0F, /* " signed */ + OpConstu = 0x10, /* 1 op, LEB128 const */ + OpConsts = 0x11, /* " signed */ + OpDup = 0x12, + OpDrop = 0x13, + OpOver = 0x14, + OpPick = 0x15, /* 1 op, 1 byte stack index */ + OpSwap = 0x16, + OpRot = 0x17, + OpXderef = 0x18, + OpAbs = 0x19, + OpAnd = 0x1A, + OpDiv = 0x1B, + OpMinus = 0x1C, + OpMod = 0x1D, + OpMul = 0x1E, + OpNeg = 0x1F, + OpNot = 0x20, + OpOr = 0x21, + OpPlus = 0x22, + OpPlusUconst = 0x23, /* 1 op, ULEB128 addend */ + OpShl = 0x24, + OpShr = 0x25, + OpShra = 0x26, + OpXor = 0x27, + OpSkip = 0x2F, /* 1 op, signed 2-byte constant */ + OpBra = 0x28, /* 1 op, signed 2-byte constant */ + OpEq = 0x29, + OpGe = 0x2A, + OpGt = 0x2B, + OpLe = 0x2C, + OpLt = 0x2D, + OpNe = 0x2E, + OpLit0 = 0x30, + /* OpLitN = OpLit0 + N for N = 0..31 */ + OpReg0 = 0x50, + /* OpRegN = OpReg0 + N for N = 0..31 */ + OpBreg0 = 0x70, /* 1 op, signed LEB128 constant */ + /* OpBregN = OpBreg0 + N for N = 0..31 */ + OpRegx = 0x90, /* 1 op, ULEB128 register */ + OpFbreg = 0x91, /* 1 op, SLEB128 offset */ + OpBregx = 0x92, /* 2 op, ULEB128 reg, SLEB128 off */ + OpPiece = 0x93, /* 1 op, ULEB128 size of piece */ + OpDerefSize = 0x94, /* 1-byte size of data retrieved */ + OpXderefSize = 0x95, /* 1-byte size of data retrieved */ + OpNop = 0x96, + /* next four new in Dwarf v3 */ + OpPushObjAddr = 0x97, + OpCall2 = 0x98, /* 2-byte offset of DIE */ + OpCall4 = 0x99, /* 4-byte offset of DIE */ + OpCallRef = 0x9A /* 4- or 8- byte offset of DIE */ + /* 0xE0-0xFF reserved for user-specific */ +}; + +struct DwarfBlock +{ + uchar *data; + ulong len; +}; + +/* not for consumer use */ +struct DwarfBuf +{ + Dwarf *d; + uchar *p; + uchar *ep; + uint addrsize; +}; + +union DwarfVal +{ + char *s; + ulong c; + ulong r; + DwarfBlock b; +}; + +struct DwarfAttrs +{ + ulong tag; + uchar haskids; + + /* whether we have it, along with type */ + struct { + uchar abstractorigin; + uchar accessibility; + uchar addrclass; + uchar basetypes; + uchar bitoffset; + uchar bitsize; + uchar bytesize; + uchar calling; + uchar commonref; + uchar compdir; + uchar constvalue; + uchar containingtype; + uchar count; + uchar datamemberloc; + uchar declcolumn; + uchar declfile; + uchar declline; + uchar defaultvalue; + uchar discr; + uchar discrlist; + uchar discrvalue; + uchar encoding; + uchar framebase; + uchar friend; + uchar highpc; + uchar entrypc; + uchar identifiercase; + uchar import; + uchar inlined; + uchar isartificial; + uchar isdeclaration; + uchar isexternal; + uchar isoptional; + uchar isprototyped; + uchar isvarparam; + uchar language; + uchar location; + uchar lowerbound; + uchar lowpc; + uchar macroinfo; + uchar name; + uchar namelistitem; + uchar ordering; + uchar priority; + uchar producer; + uchar ranges; + uchar returnaddr; + uchar segment; + uchar sibling; + uchar specification; + uchar startscope; + uchar staticlink; + uchar stmtlist; + uchar stridesize; + uchar stringlength; + uchar type; + uchar upperbound; + uchar uselocation; + uchar virtuality; + uchar visibility; + uchar vtableelemloc; + } have; + + ulong abstractorigin; + ulong accessibility; + ulong addrclass; + ulong basetypes; + ulong bitoffset; + ulong bitsize; + ulong bytesize; + ulong calling; + ulong commonref; + char* compdir; + DwarfVal constvalue; + ulong containingtype; + ulong count; + DwarfVal datamemberloc; + ulong declcolumn; + ulong declfile; + ulong declline; + ulong defaultvalue; + ulong discr; + DwarfBlock discrlist; + ulong discrvalue; + ulong encoding; + DwarfVal framebase; + ulong friend; + ulong highpc; + ulong entrypc; + ulong identifiercase; + ulong import; + ulong inlined; + uchar isartificial; + uchar isdeclaration; + uchar isexternal; + uchar isoptional; + uchar isprototyped; + uchar isvarparam; + ulong language; + DwarfVal location; + ulong lowerbound; + ulong lowpc; + ulong macroinfo; + char* name; + DwarfBlock namelistitem; + ulong ordering; + ulong priority; + char* producer; + ulong ranges; + DwarfVal returnaddr; + DwarfVal segment; + ulong sibling; + ulong specification; + ulong startscope; + DwarfVal staticlink; + ulong stmtlist; + ulong stridesize; + DwarfVal stringlength; + ulong type; + ulong upperbound; + DwarfVal uselocation; + ulong virtuality; + ulong visibility; + DwarfVal vtableelemloc; +}; + +enum +{ + RuleUndef, + RuleSame, + RuleCfaOffset, + RuleRegister, + RuleRegOff, + RuleLocation +}; +struct DwarfExpr +{ + int type; + long offset; + ulong reg; + DwarfBlock loc; +}; + +struct DwarfSym +{ + DwarfAttrs attrs; + +/* not for consumer use... */ + DwarfBuf b; + ulong unit; + uint uoff; + ulong aoff; + int depth; + int allunits; + ulong nextunit; +}; + + +struct _Pe; +Dwarf *dwarfopen(struct _Pe *elf); +void dwarfclose(Dwarf*); +int dwarfaddrtounit(Dwarf*, ulong, ulong*); +int dwarflookupfn(Dwarf*, ulong, ulong, DwarfSym*); +int dwarflookupname(Dwarf*, char*, DwarfSym*); +int dwarflookupnameinunit(Dwarf*, ulong, char*, DwarfSym*); +int dwarflookupsubname(Dwarf*, DwarfSym*, char*, DwarfSym*); +int dwarflookuptag(Dwarf*, ulong, ulong, DwarfSym*); +int dwarfenumunit(Dwarf*, ulong, DwarfSym*); +int dwarfseeksym(Dwarf*, ulong, ulong, DwarfSym*); +int dwarfenum(Dwarf*, DwarfSym*); +int dwarfnextsym(Dwarf*, DwarfSym*); +int dwarfnextsymat(Dwarf*, DwarfSym*, int); +int dwarfpctoline(Dwarf*, ulong, char**, char**, char**, char **, ulong*, ulong*, ulong*); +int dwarfunwind(Dwarf*, ulong, DwarfExpr*, DwarfExpr*, DwarfExpr*, int); +ulong dwarfget1(DwarfBuf*); +ulong dwarfget2(DwarfBuf*); +ulong dwarfget4(DwarfBuf*); +uvlong dwarfget8(DwarfBuf*); +ulong dwarfget128(DwarfBuf*); +long dwarfget128s(DwarfBuf*); +ulong dwarfgetaddr(DwarfBuf*); +int dwarfgetn(DwarfBuf*, uchar*, int); +uchar *dwarfgetnref(DwarfBuf*, ulong); +char *dwarfgetstring(DwarfBuf*); + + +typedef struct DwarfAbbrev DwarfAbbrev; +typedef struct DwarfAttr DwarfAttr; + +struct DwarfAttr +{ + ulong name; + ulong form; +}; + +struct DwarfAbbrev +{ + ulong num; + ulong tag; + uchar haskids; + DwarfAttr *attr; + int nattr; +}; + +struct _Pe; + +struct Dwarf +{ + struct _Pe *pe; + + char **reg; + int nreg; + int addrsize; + DwarfBlock abbrev; + DwarfBlock aranges; + DwarfBlock frame; + DwarfBlock info; + DwarfBlock line; + DwarfBlock pubnames; + DwarfBlock pubtypes; + DwarfBlock ranges; + DwarfBlock str; + + /* little cache */ + struct { + DwarfAbbrev *a; + int na; + ulong off; + } acache; +}; + +DwarfAbbrev *dwarfgetabbrev(Dwarf*, ulong, ulong); + +int dwarfgetinfounit(Dwarf*, ulong, DwarfBlock*); + +extern int dwarf386nregs; +extern char *dwarf386regs[]; +extern char *dwarf386fp; + +#define SYMBOL_SIZE 18 +#define MAXIMUM_DWARF_NAME_SIZE 64 +#define MAXIMUM_COFF_SYMBOL_LENGTH 256 diff --git a/reactos/lib/rossym_new/dwarf386.c b/reactos/lib/rossym_new/dwarf386.c new file mode 100644 index 00000000000..80a594b01a7 --- /dev/null +++ b/reactos/lib/rossym_new/dwarf386.c @@ -0,0 +1,25 @@ +#if 0 +#include +#include +#include +#include "elf.h" +#endif +#include "dwarf.h" + +char* +dwarf386regs[] = +{ + "AX", + "CX", + "DX", + "BX", + "SP", + "BP", + "SI", + "DI", +}; + +int dwarf386nregs = nelem(dwarf386regs); + + + diff --git a/reactos/lib/rossym_new/dwarfabbrev.c b/reactos/lib/rossym_new/dwarfabbrev.c new file mode 100644 index 00000000000..d21ca6a25d1 --- /dev/null +++ b/reactos/lib/rossym_new/dwarfabbrev.c @@ -0,0 +1,141 @@ +/* + * Dwarf abbreviation parsing code. + * + * The convention here is that calling dwarfgetabbrevs relinquishes + * access to any abbrevs returned previously. Will have to add + * explicit reference counting if this turns out not to be acceptable. + */ + +#define NTOSAPI +#include +#include +#include "rossympriv.h" +#include + +#define NDEBUG +#include + +#include "rossym.h" +#include "rossympriv.h" +#include "dwarf.h" + +static int parseabbrevs(Dwarf*, ulong, DwarfAbbrev*, DwarfAttr*, int*, int*); +DwarfAbbrev *dwarfgetabbrev(Dwarf*, ulong, ulong); + +static int +loadabbrevs(Dwarf *d, ulong off, DwarfAbbrev **aa) +{ + int nattr, nabbrev; + DwarfAbbrev *abbrev; + DwarfAttr *attr; + + if(d->acache.off == off && d->acache.na){ + *aa = d->acache.a; + return d->acache.na; + } + + /* two passes - once to count, then allocate, then a second to copy */ + if(parseabbrevs(d, off, nil, nil, &nabbrev, &nattr) < 0) { + return -1; + } + + abbrev = malloc(nabbrev*sizeof(DwarfAbbrev) + nattr*sizeof(DwarfAttr)); + attr = (DwarfAttr*)(abbrev+nabbrev); + + if(parseabbrevs(d, off, abbrev, attr, nil, nil) < 0){ + free(abbrev); + return -1; + } + + free(d->acache.a); + d->acache.a = abbrev; + d->acache.na = nabbrev; + d->acache.off = off; + + *aa = abbrev; + return nabbrev; +} + +static int +parseabbrevs(Dwarf *d, ulong off, DwarfAbbrev *abbrev, DwarfAttr *attr, int *pnabbrev, int *pnattr) +{ + int i, nabbrev, nattr, haskids; + ulong num, tag, name, form; + DwarfBuf b; + + if(off >= d->abbrev.len){ + werrstr("bad abbrev section offset 0x%lux >= 0x%lux\n", off, d->abbrev.len); + return -1; + } + + memset(&b, 0, sizeof b); + b.p = d->abbrev.data + off; + b.ep = d->abbrev.data + d->abbrev.len; + + nabbrev = 0; + nattr = 0; + for(;;){ + if(b.p == nil){ + werrstr("malformed abbrev data"); + return -1; + } + num = dwarfget128(&b); + if(num == 0) + break; + tag = dwarfget128(&b); + haskids = dwarfget1(&b); + for(i=0;; i++){ + name = dwarfget128(&b); + form = dwarfget128(&b); + if(name == 0 && form == 0) + break; + if(attr){ + attr[i].name = name; + attr[i].form = form; + } + } + if(abbrev){ + abbrev->num = num; + abbrev->tag = tag; + abbrev->haskids = haskids; + abbrev->attr = attr; + abbrev->nattr = i; + abbrev++; + attr += i; + } + nabbrev++; + nattr += i; + } + if(pnabbrev) + *pnabbrev = nabbrev; + if(pnattr) + *pnattr = nattr; + return 0; +} + +static DwarfAbbrev* +findabbrev(DwarfAbbrev *a, int na, ulong num) +{ + int i; + + for(i=0; i +#include +#include "rossympriv.h" +#include + +#define NDEBUG +#include + +#include "dwarf.h" + +int +dwarfaddrtounit(Dwarf *d, ulong addr, ulong *unit) +{ + DwarfBuf b; + int segsize, i; + ulong len, id, off, base, size; + uchar *start, *end; + + memset(&b, 0, sizeof b); + b.d = d; + b.p = d->aranges.data; + b.ep = b.p + d->aranges.len; + + while(b.p < b.ep){ + start = b.p; + len = dwarfget4(&b); + if (!len) { b.ep = b.p - 4; return -1; } + if((id = dwarfget2(&b)) != 2){ + if(b.p == nil){ + underflow: + werrstr("buffer underflow reading address ranges header"); + }else + werrstr("bad dwarf version 0x%x in address ranges header", id); + return -1; + } + off = dwarfget4(&b); + b.addrsize = dwarfget1(&b); + if(d->addrsize == 0) + d->addrsize = b.addrsize; + segsize = dwarfget1(&b); + USED(segsize); /* what am i supposed to do with this? */ + if(b.p == nil) + goto underflow; + if((i = (b.p-start) % (2*b.addrsize)) != 0) + b.p += 2*b.addrsize - i; + end = start+4+len; + while(b.p!=nil && b.pline mapping, but it's a different machine. + * The expressions to generate the old values are similar in function to the + * ``dwarf expressions'' used for locations in the code, but of course not + * the same encoding. + */ + +#define NTOSAPI +#include +#include +#include "rossympriv.h" +#include + +#define NDEBUG +#include + +#include "dwarf.h" + +#define trace 0 + +typedef struct State State; +struct State +{ + ulong loc; + ulong endloc; + ulong iquantum; + ulong dquantum; + char *augmentation; + int version; + ulong rareg; + DwarfBuf init; + DwarfExpr *cfa; + DwarfExpr *ra; + DwarfExpr *r; + DwarfExpr *initr; + int nr; + DwarfExpr **stack; + int nstack; +}; + +static int findfde(Dwarf*, ulong, State*, DwarfBuf*); +static int dexec(DwarfBuf*, State*, int); + +int +dwarfunwind(Dwarf *d, ulong pc, DwarfExpr *cfa, DwarfExpr *ra, DwarfExpr *r, int nr) +{ + int i, ret; + DwarfBuf fde, b; + DwarfExpr *initr; + State s; + + initr = mallocz(nr*sizeof(initr[0]), 1); + if(initr == 0) + return -1; + + memset(&s, 0, sizeof s); + s.loc = 0; + s.cfa = cfa; + s.ra = ra; + s.r = r; + s.nr = nr; + + if(findfde(d, pc, &s, &fde) < 0){ + free(initr); + return -1; + } + + memset(r, 0, nr*sizeof(r[0])); + for(i=0; iframe.data == nil){ + werrstr("no frame debugging information"); + return -1; + } + b.d = d; + b.p = d->frame.data; + b.ep = b.p + d->frame.len; + b.addrsize = d->addrsize; + if(b.addrsize == 0) + b.addrsize = 4; /* where should i find this? */ + + for(; b.p < b.ep; b.p = next){ + if((i = (b.p - d->frame.data) % b.addrsize)) + b.p += b.addrsize - i; + len = dwarfget4(&b); + if(len > b.ep-b.p){ + werrstr("bad length in cie/fde header"); + return -1; + } + next = b.p+len; + id = dwarfget4(&b); + if(id == 0xFFFFFFFF){ /* CIE */ + vers = dwarfget1(&b); + if(vers != 1 && vers != 2 && vers != 3){ + if(++nbad == 1) + werrstr("unknown cie version %d (wanted 1-3)\n", vers); + continue; + } + aug = dwarfgetstring(&b); + if(aug && *aug){ + if(++nbad == 1) + werrstr("unknown augmentation: %s\n", aug); + continue; + } + s->iquantum = dwarfget128(&b); + s->dquantum = dwarfget128s(&b); + s->rareg = dwarfget128(&b); + if(s->rareg > s->nr){ + werrstr("return address is register %d but only have %d registers", + s->rareg, s->nr); + return -1; + } + s->init.p = b.p; + s->init.ep = next; + }else{ /* FDE */ + base = dwarfgetaddr(&b); + size = dwarfgetaddr(&b); + fde->p = b.p; + fde->ep = next; + s->loc = base; + s->endloc = base+size; + if(base <= pc && pc < base+size) + return 0; + } + } + werrstr("cannot find call frame information for pc 0x%lux", pc); + return -1; + +} + +static int +checkreg(State *s, long r) +{ + if(r < 0 || r >= s->nr){ + werrstr("bad register number 0x%lux", r); + return -1; + } + return 0; +} + +static int +dexec(DwarfBuf *b, State *s, int locstop) +{ + int c; + long arg1, arg2; + DwarfExpr *e; + + for(;;){ + if(b->p == b->ep){ + if(s->initr) + s->loc = s->endloc; + return 0; + } + c = dwarfget1(b); + if(b->p == nil){ + werrstr("ran out of instructions during cfa program"); + if(trace) werrstr("%r\n"); + return -1; + } + if(trace) werrstr("+ loc=0x%lux op 0x%ux ", s->loc, c); + switch(c>>6){ + case 1: /* advance location */ + arg1 = c&0x3F; + advance: + if(trace) werrstr("loc += %ld\n", arg1*s->iquantum); + s->loc += arg1 * s->iquantum; + if(locstop) + return 0; + continue; + + case 2: /* offset rule */ + arg1 = c&0x3F; + arg2 = dwarfget128(b); + offset: + if(trace) werrstr("r%ld += %ld\n", arg1, arg2*s->dquantum); + if(checkreg(s, arg1) < 0) + return -1; + s->r[arg1].type = RuleCfaOffset; + s->r[arg1].offset = arg2 * s->dquantum; + continue; + + case 3: /* restore initial setting */ + arg1 = c&0x3F; + restore: + if(trace) werrstr("r%ld = init\n", arg1); + if(checkreg(s, arg1) < 0) + return -1; + s->r[arg1] = s->initr[arg1]; + continue; + } + + switch(c){ + case 0: /* nop */ + if(trace) werrstr("nop\n"); + continue; + + case 0x01: /* set location */ + s->loc = dwarfgetaddr(b); + if(trace) werrstr("loc = 0x%lux\n", s->loc); + if(locstop) + return 0; + continue; + + case 0x02: /* advance loc1 */ + arg1 = dwarfget1(b); + goto advance; + + case 0x03: /* advance loc2 */ + arg1 = dwarfget2(b); + goto advance; + + case 0x04: /* advance loc4 */ + arg1 = dwarfget4(b); + goto advance; + + case 0x05: /* offset extended */ + arg1 = dwarfget128(b); + arg2 = dwarfget128(b); + goto offset; + + case 0x06: /* restore extended */ + arg1 = dwarfget128(b); + goto restore; + + case 0x07: /* undefined */ + arg1 = dwarfget128(b); + if(trace) werrstr("r%ld = undef\n", arg1); + if(checkreg(s, arg1) < 0) + return -1; + s->r[arg1].type = RuleUndef; + continue; + + case 0x08: /* same value */ + arg1 = dwarfget128(b); + if(trace) werrstr("r%ld = same\n", arg1); + if(checkreg(s, arg1) < 0) + return -1; + s->r[arg1].type = RuleSame; + continue; + + case 0x09: /* register */ + arg1 = dwarfget128(b); + arg2 = dwarfget128(b); + if(trace) werrstr("r%ld = r%ld\n", arg1, arg2); + if(checkreg(s, arg1) < 0 || checkreg(s, arg2) < 0) + return -1; + s->r[arg1].type = RuleRegister; + s->r[arg1].reg = arg2; + continue; + + case 0x0A: /* remember state */ + e = malloc(s->nr*sizeof(e[0])); + if(trace) werrstr("push\n"); + if(e == nil) + return -1; + void *newstack = malloc(s->nstack*sizeof(s->stack[0])); + RtlMoveMemory(newstack, s->stack, s->nstack*sizeof(s->stack[0])); + if (newstack) { + free(s->stack); + s->stack = newstack; + } else { + free(e); + return -1; + } + if(b->p == nil){ + free(e); + return -1; + } + s->stack[s->nstack++] = e; + memmove(e, s->r, s->nr*sizeof(e[0])); + continue; + + case 0x0B: /* restore state */ + if(trace) werrstr("pop\n"); + if(s->nstack == 0){ + werrstr("restore state underflow"); + return -1; + } + e = s->stack[s->nstack-1]; + memmove(s->r, e, s->nr*sizeof(e[0])); + free(e); + s->nstack--; + continue; + + case 0x0C: /* def cfa */ + arg1 = dwarfget128(b); + arg2 = dwarfget128(b); + defcfa: + if(trace) werrstr("cfa %ld(r%ld)\n", arg2, arg1); + if(checkreg(s, arg1) < 0) + return -1; + s->cfa->type = RuleRegOff; + s->cfa->reg = arg1; + s->cfa->offset = arg2; + continue; + + case 0x0D: /* def cfa register */ + arg1 = dwarfget128(b); + if(trace) werrstr("cfa reg r%ld\n", arg1); + if(s->cfa->type != RuleRegOff){ + werrstr("change CFA register but CFA not in register+offset form"); + return -1; + } + if(checkreg(s, arg1) < 0) + return -1; + s->cfa->reg = arg1; + continue; + + case 0x0E: /* def cfa offset */ + arg1 = dwarfget128(b); + cfaoffset: + if(trace) werrstr("cfa off %ld\n", arg1); + if(s->cfa->type != RuleRegOff){ + werrstr("change CFA offset but CFA not in register+offset form"); + return -1; + } + s->cfa->offset = arg1; + continue; + + case 0x0F: /* def cfa expression */ + if(trace) werrstr("cfa expr\n"); + s->cfa->type = RuleLocation; + s->cfa->loc.len = dwarfget128(b); + s->cfa->loc.data = dwarfgetnref(b, s->cfa->loc.len); + continue; + + case 0x10: /* def reg expression */ + arg1 = dwarfget128(b); + if(trace) werrstr("reg expr r%ld\n", arg1); + if(checkreg(s, arg1) < 0) + return -1; + s->r[arg1].type = RuleLocation; + s->r[arg1].loc.len = dwarfget128(b); + s->r[arg1].loc.data = dwarfgetnref(b, s->r[arg1].loc.len); + continue; + + case 0x11: /* offset extended */ + arg1 = dwarfget128(b); + arg2 = dwarfget128s(b); + goto offset; + + case 0x12: /* cfa sf */ + arg1 = dwarfget128(b); + arg2 = dwarfget128s(b); + goto defcfa; + + case 0x13: /* cfa offset sf */ + arg1 = dwarfget128s(b); + goto cfaoffset; + + default: /* unknown */ + werrstr("unknown opcode 0x%ux in cfa program", c); + return -1; + } + } + /* not reached */ +} + + diff --git a/reactos/lib/rossym_new/dwarfdump.c b/reactos/lib/rossym_new/dwarfdump.c new file mode 100644 index 00000000000..94f0cd3575b --- /dev/null +++ b/reactos/lib/rossym_new/dwarfdump.c @@ -0,0 +1,143 @@ +#if 0 +#include +#include +#include +#include "elf.h" +#endif +#include "dwarf.h" +#include "pe.h" + +void printrules(Dwarf *d, ulong pc); +//int exprfmt(Fmt*); + +void +usage(void) +{ + fprint(2, "usage: dwarfdump file\n"); + exits("usage"); +} + +void +main(int argc, char **argv) +{ + int c; + Pe *pe; + Dwarf *d; + DwarfSym s; + char *cdir, *dir, *file; + ulong line, mtime, length; + + if(argc != 2) + usage(); + +#if 0 + fmtinstall('R', exprfmt); + fmtinstall('H', encodefmt); +#endif + + if((pe = peopen(argv[1])) == nil) + sysfatal("elfopen %s: %r", argv[1]); + if((d=dwarfopen(pe)) == nil) + sysfatal("dwarfopen: %r"); + + if(dwarfenum(d, &s) < 0) + sysfatal("dwarfenumall: %r"); + + while(dwarfnextsym(d, &s) == 1){ + switch(s.attrs.tag){ + case TagCompileUnit: + print("compileunit %s\n", s.attrs.name); + break; + case TagSubprogram: + c = 't'; + goto sym; + case TagVariable: + c = 'd'; + goto sym; + case TagConstant: + c = 'c'; + goto sym; + case TagFormalParameter: + if(!s.attrs.name) + break; + c = 'p'; + sym: + if(s.attrs.isexternal) + c += 'A' - 'a'; + print("%c %s", c, s.attrs.name); + if(s.attrs.have.lowpc) + print(" 0x%lux-0x%lux", s.attrs.lowpc, s.attrs.highpc); + switch(s.attrs.have.location){ + case TBlock: + print(" @ %.*H", s.attrs.location.b.len, s.attrs.location.b.data); + break; + case TConstant: + print(" @ 0x%lux", s.attrs.location.c); + break; + } + if(s.attrs.have.ranges) + print(" ranges@0x%lux", s.attrs.ranges); + print("\n"); + if(s.attrs.have.lowpc){ + if(dwarfpctoline(d, s.attrs.lowpc, &cdir, &dir, &file, &line, &mtime, &length) < 0) + print("\tcould not find source: %r\n"); + else if(dir == nil) + print("\t%s/%s:%lud mtime=%lud length=%lud\n", + cdir, file, line, mtime, length); + else + print("\t%s/%s/%s:%lud mtime=%lud length=%lud\n", + cdir, dir, file, line, mtime, length); + + if(0) printrules(d, s.attrs.lowpc); + if(0) printrules(d, (s.attrs.lowpc+s.attrs.highpc)/2); + } + break; + } + } + exits(0); +} + +void +printrules(Dwarf *d, ulong pc) +{ + int i; + DwarfExpr r[10]; + DwarfExpr cfa, ra; + + if(dwarfunwind(d, pc, &cfa, &ra, r, nelem(r)) < 0) + print("\tcannot unwind from pc 0x%lux: %r\n", pc); + + print("\tpc=0x%lux cfa=%R ra=%R", pc, &cfa, &ra); + for(i=0; iargs, DwarfExpr*)) == nil) + return fmtstrcpy(fmt, ""); + + switch(e->type){ + case RuleUndef: + return fmtstrcpy(fmt, "undef"); + case RuleSame: + return fmtstrcpy(fmt, "same"); + case RuleCfaOffset: + return fmtprint(fmt, "%ld(cfa)", e->offset); + case RuleRegister: + return fmtprint(fmt, "r%ld", e->reg); + case RuleRegOff: + return fmtprint(fmt, "%ld(r%ld)", e->offset, e->reg); + case RuleLocation: + return fmtprint(fmt, "l.%.*H", e->loc.len, e->loc.data); + default: + return fmtprint(fmt, "?%d", e->type); + } +} +#endif diff --git a/reactos/lib/rossym_new/dwarfeval.c b/reactos/lib/rossym_new/dwarfeval.c new file mode 100644 index 00000000000..6d0233fed6c --- /dev/null +++ b/reactos/lib/rossym_new/dwarfeval.c @@ -0,0 +1,61 @@ + OpAddr = 0x03, /* 1 op, const addr */ + OpDeref = 0x06, + OpConst1u = 0x08, /* 1 op, 1 byte const */ + OpConst1s = 0x09, /* " signed */ + OpConst2u = 0x0A, /* 1 op, 2 byte const */ + OpConst2s = 0x0B, /* " signed */ + OpConst4u = 0x0C, /* 1 op, 4 byte const */ + OpConst4s = 0x0D, /* " signed */ + OpConst8u = 0x0E, /* 1 op, 8 byte const */ + OpConst8s = 0x0F, /* " signed */ + OpConstu = 0x10, /* 1 op, LEB128 const */ + OpConsts = 0x11, /* " signed */ + OpDup = 0x12, + OpDrop = 0x13, + OpOver = 0x14, + OpPick = 0x15, /* 1 op, 1 byte stack index */ + OpSwap = 0x16, + OpRot = 0x17, + OpXderef = 0x18, + OpAbs = 0x19, + OpAnd = 0x1A, + OpDiv = 0x1B, + OpMinus = 0x1C, + OpMod = 0x1D, + OpMul = 0x1E, + OpNeg = 0x1F, + OpNot = 0x20, + OpOr = 0x21, + OpPlus = 0x22, + OpPlusUconst = 0x23, /* 1 op, ULEB128 addend */ + OpShl = 0x24, + OpShr = 0x25, + OpShra = 0x26, + OpXor = 0x27, + OpSkip = 0x2F, /* 1 op, signed 2-byte constant */ + OpBra = 0x28, /* 1 op, signed 2-byte constant */ + OpEq = 0x29, + OpGe = 0x2A, + OpGt = 0x2B, + OpLe = 0x2C, + OpLt = 0x2D, + OpNe = 0x2E, + OpLit0 = 0x30, + /* OpLitN = OpLit0 + N for N = 0..31 */ + OpReg0 = 0x50, + /* OpRegN = OpReg0 + N for N = 0..31 */ + OpBreg0 = 0x70, /* 1 op, signed LEB128 constant */ + /* OpBregN = OpBreg0 + N for N = 0..31 */ + OpRegx = 0x90, /* 1 op, ULEB128 register */ + OpFbreg = 0x91, /* 1 op, SLEB128 offset */ + OpBregx = 0x92, /* 2 op, ULEB128 reg, SLEB128 off */ + OpPiece = 0x93, /* 1 op, ULEB128 size of piece */ + OpDerefSize = 0x94, /* 1-byte size of data retrieved */ + OpXderefSize = 0x95, /* 1-byte size of data retrieved */ + OpNop = 0x96, + /* next four new in Dwarf v3 */ + OpPushObjAddr = 0x97, + OpCall2 = 0x98, /* 2-byte offset of DIE */ + OpCall4 = 0x99, /* 4-byte offset of DIE */ + OpCallRef = 0x9A, /* 4- or 8- byte offset of DIE */ + /* 0xE0-0xFF reserved for user-specific */ diff --git a/reactos/lib/rossym_new/dwarfget.c b/reactos/lib/rossym_new/dwarfget.c new file mode 100644 index 00000000000..d32177cd1db --- /dev/null +++ b/reactos/lib/rossym_new/dwarfget.c @@ -0,0 +1,225 @@ +/* + * Dwarf data format parsing routines. + */ + +#define NTOSAPI +#include +#include +#include "rossympriv.h" +#include + +#define NDEBUG +#include + +#include "dwarf.h" +#include "pe.h" + +ulong +dwarfget1(DwarfBuf *b) +{ + if(b->p==nil || b->p+1 > b->ep){ + b->p = nil; + return 0; + } + return *b->p++; +} + +int +dwarfgetn(DwarfBuf *b, uchar *a, int n) +{ + if(b->p==nil || b->p+n > b->ep){ + b->p = nil; + memset(a, 0, n); + return -1; + } + memmove(a, b->p, n); + b->p += n; + return 0; +} + +uchar* +dwarfgetnref(DwarfBuf *b, ulong n) +{ + uchar *p; + + if(b->p==nil || b->p+n > b->ep){ + b->p = nil; + return nil; + } + p = b->p; + b->p += n; + return p; +} + +char* +dwarfgetstring(DwarfBuf *b) +{ + char *s; + + if(b->p == nil) + return nil; + s = (char*)b->p; + while(b->p < b->ep && *b->p) + b->p++; + if(b->p >= b->ep){ + b->p = nil; + return nil; + } + b->p++; + return s; +} + +void +dwarfskip(DwarfBuf *b, int n) +{ + if(b->p==nil || b->p+n > b->ep) + b->p = nil; + else + b->p += n; +} + +ulong +dwarfget2(DwarfBuf *b) +{ + ulong v; + + if(b->p==nil || b->p+2 > b->ep){ + b->p = nil; + return 0; + } + v = b->d->pe->e2(b->p); + b->p += 2; + return v; +} + +ulong +dwarfget4(DwarfBuf *b) +{ + ulong v; + + if(b->p==nil || b->p+4 > b->ep){ + b->p = nil; + return 0; + } + v = b->d->pe->e4(b->p); + b->p += 4; + return v; +} + +uvlong +dwarfget8(DwarfBuf *b) +{ + uvlong v; + + if(b->p==nil || b->p+8 > b->ep){ + b->p = nil; + return 0; + } + v = b->d->pe->e8(b->p); + b->p += 8; + return v; +} + +ulong +dwarfgetaddr(DwarfBuf *b) +{ + static int nbad; + + if(b->addrsize == 0) + b->addrsize = b->d->addrsize; + + switch(b->addrsize){ + case 1: + return dwarfget1(b); + case 2: + return dwarfget2(b); + case 4: + return dwarfget4(b); + case 8: + return dwarfget8(b); + default: + if(++nbad == 1) + werrstr("dwarf: unexpected address size %lud in dwarfgetaddr\n", b->addrsize); + b->p = nil; + return 0; + } +} + +int n1, n2, n3, n4, n5; + +/* An inline function picks off the calls to dwarfget128 for 1-byte encodings, + * more than by far the common case (99.999% on most binaries!). */ +ulong +dwarfget128(DwarfBuf *b) +{ + static int nbad; + ulong c, d; + + if(b->p == nil) + return 0; + c = *b->p++; + if(!(c&0x80)) +{n1++; + return c; +} + c &= ~0x80; + d = *b->p++; + c |= (d&0x7F)<<7; + if(!(d&0x80)) +{n2++; + return c; +} + d = *b->p++; + c |= (d&0x7F)<<14; + if(!(d&0x80)) +{n3++; + return c; +} + d = *b->p++; + c |= (d&0x7F)<<21; + if(!(d&0x80)) +{n4++; + return c; +} + d = *b->p++; + c |= (d&0x7F)<<28; + if(!(d&0x80)) +{n5++; + return c; +} + while(b->pep && *b->p&0x80) + b->p++; + if(++nbad == 1) + werrstr("dwarf: overflow during parsing of uleb128 integer\n"); + return c; +} + +long +dwarfget128s(DwarfBuf *b) +{ + int nb, c; + ulong v; + static int nbad; + + v = 0; + nb = 0; + if(b->p==nil) + return 0; + while(b->pep){ + c = *b->p++; + v |= (c & 0x7F)< 8*sizeof(ulong)){ + if(0) + if(++nbad == 1) + werrstr("dwarf: overflow during parsing of sleb128 integer: got %d bits", nb); + } + return v; +} + + diff --git a/reactos/lib/rossym_new/dwarfinfo.c b/reactos/lib/rossym_new/dwarfinfo.c new file mode 100644 index 00000000000..cc25499483a --- /dev/null +++ b/reactos/lib/rossym_new/dwarfinfo.c @@ -0,0 +1,661 @@ +/* + * Dwarf info parse and search. + */ + +#define NTOSAPI +#include +#include +#include +#include "rossympriv.h" +#include + +#define NDEBUG +#include + +#include "dwarf.h" +#include + +enum +{ + DwarfAttrSibling = 0x01, + DwarfAttrLocation = 0x02, + DwarfAttrName = 0x03, + DwarfAttrOrdering = 0x09, + DwarfAttrByteSize = 0x0B, + DwarfAttrBitOffset = 0x0C, + DwarfAttrBitSize = 0x0D, + DwarfAttrStmtList = 0x10, + DwarfAttrLowpc = 0x11, + DwarfAttrHighpc = 0x12, + DwarfAttrLanguage = 0x13, + DwarfAttrDiscr = 0x15, + DwarfAttrDiscrValue = 0x16, + DwarfAttrVisibility = 0x17, + DwarfAttrImport = 0x18, + DwarfAttrStringLength = 0x19, + DwarfAttrCommonRef = 0x1A, + DwarfAttrCompDir = 0x1B, + DwarfAttrConstValue = 0x1C, + DwarfAttrContainingType = 0x1D, + DwarfAttrDefaultValue = 0x1E, + DwarfAttrInline = 0x20, + DwarfAttrIsOptional = 0x21, + DwarfAttrLowerBound = 0x22, + DwarfAttrProducer = 0x25, + DwarfAttrPrototyped = 0x27, + DwarfAttrReturnAddr = 0x2A, + DwarfAttrStartScope = 0x2C, + DwarfAttrStrideSize = 0x2E, + DwarfAttrUpperBound = 0x2F, + DwarfAttrAbstractOrigin = 0x31, + DwarfAttrAccessibility = 0x32, + DwarfAttrAddrClass = 0x33, + DwarfAttrArtificial = 0x34, + DwarfAttrBaseTypes = 0x35, + DwarfAttrCalling = 0x36, + DwarfAttrCount = 0x37, + DwarfAttrDataMemberLoc = 0x38, + DwarfAttrDeclColumn = 0x39, + DwarfAttrDeclFile = 0x3A, + DwarfAttrDeclLine = 0x3B, + DwarfAttrDeclaration = 0x3C, + DwarfAttrDiscrList = 0x3D, + DwarfAttrEncoding = 0x3E, + DwarfAttrExternal = 0x3F, + DwarfAttrFrameBase = 0x40, + DwarfAttrFriend = 0x41, + DwarfAttrIdentifierCase = 0x42, + DwarfAttrMacroInfo = 0x43, + DwarfAttrNamelistItem = 0x44, + DwarfAttrPriority = 0x45, + DwarfAttrSegment = 0x46, + DwarfAttrSpecification = 0x47, + DwarfAttrStaticLink = 0x48, + DwarfAttrType = 0x49, + DwarfAttrUseLocation = 0x4A, + DwarfAttrVarParam = 0x4B, + DwarfAttrVirtuality = 0x4C, + DwarfAttrVtableElemLoc = 0x4D, + DwarfAttrAllocated = 0x4E, + DwarfAttrAssociated = 0x4F, + DwarfAttrDataLocation = 0x50, + DwarfAttrStride = 0x51, + DwarfAttrEntrypc = 0x52, + DwarfAttrUseUTF8 = 0x53, + DwarfAttrExtension = 0x54, + DwarfAttrRanges = 0x55, + DwarfAttrTrampoline = 0x56, + DwarfAttrCallColumn = 0x57, + DwarfAttrCallFile = 0x58, + DwarfAttrCallLine = 0x59, + DwarfAttrDescription = 0x5A, + DwarfAttrMax, + + FormAddr = 0x01, + FormDwarfBlock2 = 0x03, + FormDwarfBlock4 = 0x04, + FormData2 = 0x05, + FormData4 = 0x06, + FormData8 = 0x07, + FormString = 0x08, + FormDwarfBlock = 0x09, + FormDwarfBlock1 = 0x0A, + FormData1 = 0x0B, + FormFlag = 0x0C, + FormSdata = 0x0D, + FormStrp = 0x0E, + FormUdata = 0x0F, + FormRefAddr = 0x10, + FormRef1 = 0x11, + FormRef2 = 0x12, + FormRef4 = 0x13, + FormRef8 = 0x14, + FormRefUdata = 0x15, + FormIndirect = 0x16 +}; + +static int parseattrs(DwarfBuf*, ulong, DwarfAbbrev*, DwarfAttrs*); +static int getulong(DwarfBuf*, int, ulong, ulong*, int*); +static int getuchar(DwarfBuf*, int, uchar*); +static int getstring(DwarfBuf*, int, char**); +static int getblock(DwarfBuf*, int, DwarfBlock*); +static int skipform(DwarfBuf*, int); +static int constblock(Dwarf*, DwarfBlock*, ulong*); + +int +dwarflookupnameinunit(Dwarf *d, ulong unit, char *name, DwarfSym *s) +{ + if(dwarfenumunit(d, unit, s) < 0) + return -1; + + dwarfnextsymat(d, s, 0); /* s is now the CompileUnit */ + while(dwarfnextsymat(d, s, 1) == 1) + if(s->attrs.name && strcmp(s->attrs.name, name) == 0) + return 0; + werrstr("symbol '%s' not found", name); + return -1; +} + + +int +dwarflookupsubname(Dwarf *d, DwarfSym *parent, char *name, DwarfSym *s) +{ + *s = *parent; + while(dwarfnextsymat(d, s, parent->depth+1)) + if(s->attrs.name && strcmp(s->attrs.name, name) == 0) + return 0; + werrstr("symbol '%s' not found", name); + return -1; +} + +int +dwarflookuptag(Dwarf *d, ulong unit, ulong tag, DwarfSym *s) +{ + if(dwarfenumunit(d, unit, s) < 0) { + return -1; + } + + dwarfnextsymat(d, s, 0); /* s is now the CompileUnit */ + if(s->attrs.tag == tag) { + return 0; + } + while(dwarfnextsymat(d, s, 1) == 1) + if(s->attrs.tag == tag) { + return 0; + } + werrstr("symbol with tag 0x%lux not found", tag); + return -1; +} + +int +dwarfseeksym(Dwarf *d, ulong unit, ulong off, DwarfSym *s) +{ + if(dwarfenumunit(d, unit, s) < 0) + return -1; + s->b.p = d->info.data + unit + off; + if(dwarfnextsymat(d, s, 0) != 1) + return -1; + return 0; +} + +int +dwarflookupfn(Dwarf *d, ulong unit, ulong pc, DwarfSym *s) +{ + if(dwarfenumunit(d, unit, s) < 0) + return -1; + + if(dwarfnextsymat(d, s, 0) != 1) + return -1; + /* s is now the CompileUnit */ + + while(dwarfnextsymat(d, s, 1) == 1){ + if(s->attrs.tag != TagSubprogram) + continue; + if(s->attrs.lowpc <= pc && pc < s->attrs.highpc) + return 0; + } + werrstr("fn containing pc 0x%lux not found", pc); + return -1; +} + +int +dwarfenumunit(Dwarf *d, ulong unit, DwarfSym *s) +{ + int i; + ulong aoff, len; + + if(unit >= d->info.len){ + werrstr("dwarf unit address 0x%x >= 0x%x out of range", unit, d->info.len); + return -1; + } + memset(s, 0, sizeof *s); + memset(&s->b, 0, sizeof s->b); + + s->b.d = d; + s->b.p = d->info.data + unit; + s->b.ep = d->info.data + d->info.len; + len = dwarfget4(&s->b); + s->nextunit = unit + 4 + len; + + if(s->b.ep - s->b.p < len){ + badheader: + werrstr("bad dwarf unit header at unit 0x%lux", unit); + return -1; + } + s->b.ep = s->b.p+len; + if((i=dwarfget2(&s->b)) != 2) + goto badheader; + aoff = dwarfget4(&s->b); + s->b.addrsize = dwarfget1(&s->b); + if(d->addrsize == 0) + d->addrsize = s->b.addrsize; + if(s->b.p == nil) + goto badheader; + + s->aoff = aoff; + s->unit = unit; + s->depth = 0; + return 0; +} + +int +dwarfenum(Dwarf *d, DwarfSym *s) +{ + if(dwarfenumunit(d, 0, s) < 0) + return -1; + s->allunits = 1; + return 0; +} + +int +dwarfnextsym(Dwarf *d, DwarfSym *s) +{ + ulong num; + DwarfAbbrev *a; + + if(s->attrs.haskids) + s->depth++; +top: + if(s->b.p >= s->b.ep){ + if(s->allunits && s->nextunit < d->info.len){ + if(dwarfenumunit(d, s->nextunit, s) < 0) { + return -1; + } + s->allunits = 1; + goto top; + } + return 0; + } + + s->uoff = s->b.p - (d->info.data+s->unit); + num = dwarfget128(&s->b); + if(num == 0){ + if(s->depth == 0) { + return 0; + } + if(s->depth > 0) + s->depth--; + goto top; + } + + a = dwarfgetabbrev(d, s->aoff, num); + if(a == nil){ + werrstr("getabbrev %ud %ud for %ud,%ud: %r\n", s->aoff, num, s->unit, s->uoff); + return -1; + } + if(parseattrs(&s->b, s->unit, a, &s->attrs) < 0) { + return -1; + } + return 1; +} + +int +dwarfnextsymat(Dwarf *d, DwarfSym *s, int depth) +{ + int r; + DwarfSym t; + uint sib; + + if(s->depth == depth && s->attrs.have.sibling){ + sib = s->attrs.sibling; + if(sib < d->info.len && d->info.data+sib >= s->b.p) + s->b.p = d->info.data+sib; + s->attrs.haskids = 0; + } + + /* + * The funny game with t and s make sure that + * if we get to the end of a run of a particular + * depth, we leave s so that a call to nextsymat with depth-1 + * will actually produce the desired guy. We could change + * the interface to dwarfnextsym instead, but I'm scared + * to touch it. + */ + t = *s; + for(;;){ + if((r = dwarfnextsym(d, &t)) != 1) { + return r; + } + if(t.depth < depth){ + /* went too far - nothing to see */ + return 0; + } + *s = t; + if(t.depth == depth) { + return 1; + } + } +} + +typedef struct Parse Parse; +struct Parse { + int name; + int off; + int haveoff; + int type; +}; + +#define OFFSET(x) offsetof(DwarfAttrs, x), offsetof(DwarfAttrs, have.x) + +static Parse plist[] = { /* Font Tab 4 */ + { DwarfAttrAbstractOrigin, OFFSET(abstractorigin), TReference }, + { DwarfAttrAccessibility, OFFSET(accessibility), TConstant }, + { DwarfAttrAddrClass, OFFSET(addrclass), TConstant }, + { DwarfAttrArtificial, OFFSET(isartificial), TFlag }, + { DwarfAttrBaseTypes, OFFSET(basetypes), TReference }, + { DwarfAttrBitOffset, OFFSET(bitoffset), TConstant }, + { DwarfAttrBitSize, OFFSET(bitsize), TConstant }, + { DwarfAttrByteSize, OFFSET(bytesize), TConstant }, + { DwarfAttrCalling, OFFSET(calling), TConstant }, + { DwarfAttrCommonRef, OFFSET(commonref), TReference }, + { DwarfAttrCompDir, OFFSET(compdir), TString }, + { DwarfAttrConstValue, OFFSET(constvalue), TString|TConstant|TBlock }, + { DwarfAttrContainingType, OFFSET(containingtype), TReference }, + { DwarfAttrCount, OFFSET(count), TConstant|TReference }, + { DwarfAttrDataMemberLoc, OFFSET(datamemberloc), TBlock|TConstant|TReference }, + { DwarfAttrDeclColumn, OFFSET(declcolumn), TConstant }, + { DwarfAttrDeclFile, OFFSET(declfile), TConstant }, + { DwarfAttrDeclLine, OFFSET(declline), TConstant }, + { DwarfAttrDeclaration, OFFSET(isdeclaration), TFlag }, + { DwarfAttrDefaultValue, OFFSET(defaultvalue), TReference }, + { DwarfAttrDiscr, OFFSET(discr), TReference }, + { DwarfAttrDiscrList, OFFSET(discrlist), TBlock }, + { DwarfAttrDiscrValue, OFFSET(discrvalue), TConstant }, + { DwarfAttrEncoding, OFFSET(encoding), TConstant }, + { DwarfAttrExternal, OFFSET(isexternal), TFlag }, + { DwarfAttrFrameBase, OFFSET(framebase), TBlock|TConstant }, + { DwarfAttrFriend, OFFSET(friend), TReference }, + { DwarfAttrHighpc, OFFSET(highpc), TAddress }, + { DwarfAttrEntrypc, OFFSET(entrypc), TAddress }, + { DwarfAttrIdentifierCase, OFFSET(identifiercase), TConstant }, + { DwarfAttrImport, OFFSET(import), TReference }, + { DwarfAttrInline, OFFSET(inlined), TConstant }, + { DwarfAttrIsOptional, OFFSET(isoptional), TFlag }, + { DwarfAttrLanguage, OFFSET(language), TConstant }, + { DwarfAttrLocation, OFFSET(location), TBlock|TConstant }, + { DwarfAttrLowerBound, OFFSET(lowerbound), TConstant|TReference }, + { DwarfAttrLowpc, OFFSET(lowpc), TAddress }, + { DwarfAttrMacroInfo, OFFSET(macroinfo), TConstant }, + { DwarfAttrName, OFFSET(name), TString }, + { DwarfAttrNamelistItem, OFFSET(namelistitem), TBlock }, + { DwarfAttrOrdering, OFFSET(ordering), TConstant }, + { DwarfAttrPriority, OFFSET(priority), TReference }, + { DwarfAttrProducer, OFFSET(producer), TString }, + { DwarfAttrPrototyped, OFFSET(isprototyped), TFlag }, + { DwarfAttrRanges, OFFSET(ranges), TReference }, + { DwarfAttrReturnAddr, OFFSET(returnaddr), TBlock|TConstant }, + { DwarfAttrSegment, OFFSET(segment), TBlock|TConstant }, + { DwarfAttrSibling, OFFSET(sibling), TReference }, + { DwarfAttrSpecification, OFFSET(specification), TReference }, + { DwarfAttrStartScope, OFFSET(startscope), TConstant }, + { DwarfAttrStaticLink, OFFSET(staticlink), TBlock|TConstant }, + { DwarfAttrStmtList, OFFSET(stmtlist), TConstant }, + { DwarfAttrStrideSize, OFFSET(stridesize), TConstant }, + { DwarfAttrStringLength, OFFSET(stringlength), TBlock|TConstant }, + { DwarfAttrType, OFFSET(type), TReference }, + { DwarfAttrUpperBound, OFFSET(upperbound), TConstant|TReference }, + { DwarfAttrUseLocation, OFFSET(uselocation), TBlock|TConstant }, + { DwarfAttrVarParam, OFFSET(isvarparam), TFlag }, + { DwarfAttrVirtuality, OFFSET(virtuality), TConstant }, + { DwarfAttrVisibility, OFFSET(visibility), TConstant }, + { DwarfAttrVtableElemLoc, OFFSET(vtableelemloc), TBlock|TReference }, + { } +}; + +static Parse ptab[DwarfAttrMax]; + +static int +parseattrs(DwarfBuf *b, ulong unit, DwarfAbbrev *a, DwarfAttrs *attrs) +{ + int i, f, n, got; + static int nbad; + void *v; + + /* initialize ptab first time through for quick access */ + if(ptab[DwarfAttrName].name != DwarfAttrName) + for(i=0; plist[i].name; i++) + ptab[plist[i].name] = plist[i]; + + memset(attrs, 0, sizeof *attrs); + attrs->tag = a->tag; + attrs->haskids = a->haskids; + + for(i=0; inattr; i++){ + n = a->attr[i].name; + f = a->attr[i].form; + if(n < 0 || n >= DwarfAttrMax || ptab[n].name==0){ + if(++nbad == 1) + werrstr("dwarf parse attrs: unexpected attribute name 0x%x", n); + continue; //return -1; + } + v = (char*)attrs + ptab[n].off; + got = 0; + if(f == FormIndirect) + f = dwarfget128(b); + if((ptab[n].type&(TConstant|TReference|TAddress)) + && getulong(b, f, unit, v, &got) >= 0) + ; + else if((ptab[n].type&TFlag) && getuchar(b, f, v) >= 0) + got = TFlag; + else if((ptab[n].type&TString) && getstring(b, f, v) >= 0) + got = TString; + else if((ptab[n].type&TBlock) && getblock(b, f, v) >= 0) + got = TBlock; + else{ + if(skipform(b, f) < 0){ + if(++nbad == 1) + werrstr("dwarf parse attrs: cannot skip form %d", f); + return -1; + } + } + if(got == TBlock && (ptab[n].type&TConstant)) + got = constblock(b->d, v, v); + *((uchar*)attrs+ptab[n].haveoff) = got; + } + return 0; +} + +static int +getulong(DwarfBuf *b, int form, ulong unit, ulong *u, int *type) +{ + static int nbad; + uvlong uv; + + switch(form){ + default: + return -1; + + /* addresses */ + case FormAddr: + *type = TAddress; + *u = dwarfgetaddr(b); + return 0; + + /* references */ + case FormRefAddr: + /* absolute ref in .debug_info */ + *type = TReference; + *u = dwarfgetaddr(b); + return 0; + case FormRef1: + *u = dwarfget1(b); + goto relativeref; + case FormRef2: + *u = dwarfget2(b); + goto relativeref; + case FormRef4: + *u = dwarfget4(b); + goto relativeref; + case FormRef8: + *u = dwarfget8(b); + goto relativeref; + case FormRefUdata: + *u = dwarfget128(b); + relativeref: + *u += unit; + *type = TReference; + return 0; + + /* constants */ + case FormData1: + *u = dwarfget1(b); + goto constant; + case FormData2: + *u = dwarfget2(b); + goto constant; + case FormData4: + *u = dwarfget4(b); + goto constant; + case FormData8: + uv = dwarfget8(b); + *u = uv; + if(uv != *u && ++nbad == 1) + werrstr("dwarf: truncating 64-bit attribute constants"); + goto constant; + case FormSdata: + *u = dwarfget128s(b); + goto constant; + case FormUdata: + *u = dwarfget128(b); + constant: + *type = TConstant; + return 0; + } +} + +static int +getuchar(DwarfBuf *b, int form, uchar *u) +{ + switch(form){ + default: + return -1; + + case FormFlag: + *u = dwarfget1(b); + return 0; + } +} + +static int +getstring(DwarfBuf *b, int form, char **s) +{ + static int nbad; + ulong u; + + switch(form){ + default: + return -1; + + case FormString: + *s = dwarfgetstring(b); + return 0; + + case FormStrp: + u = dwarfget4(b); + if(u >= b->d->str.len){ + if(++nbad == 1) + werrstr("dwarf: bad string pointer 0x%lux in attribute", u); + /* don't return error - maybe can proceed */ + *s = nil; + }else + *s = (char*)b->d->str.data + u; + return 0; + + } +} + +static int +getblock(DwarfBuf *b, int form, DwarfBlock *bl) +{ + ulong n; + + switch(form){ + default: + return -1; + case FormDwarfBlock: + n = dwarfget128(b); + goto copyn; + case FormDwarfBlock1: + n = dwarfget1(b); + goto copyn; + case FormDwarfBlock2: + n = dwarfget2(b); + goto copyn; + case FormDwarfBlock4: + n = dwarfget4(b); + copyn: + bl->data = dwarfgetnref(b, n); + bl->len = n; + if(bl->data == nil) + return -1; + return 0; + } +} + +static int +constblock(Dwarf *d, DwarfBlock *bl, ulong *pval) +{ + DwarfBuf b; + + memset(&b, 0, sizeof b); + b.p = bl->data; + b.ep = bl->data+bl->len; + b.d = d; + + switch(dwarfget1(&b)){ + case OpAddr: + *pval = dwarfgetaddr(&b); + return TConstant; + case OpConst1u: + *pval = dwarfget1(&b); + return TConstant; + case OpConst1s: + *pval = (schar)dwarfget1(&b); + return TConstant; + case OpConst2u: + *pval = dwarfget2(&b); + return TConstant; + case OpConst2s: + *pval = (s16int)dwarfget2(&b); + return TConstant; + case OpConst4u: + *pval = dwarfget4(&b); + return TConstant; + case OpConst4s: + *pval = (s32int)dwarfget4(&b); + return TConstant; + case OpConst8u: + *pval = (u64int)dwarfget8(&b); + return TConstant; + case OpConst8s: + *pval = (s64int)dwarfget8(&b); + return TConstant; + case OpConstu: + *pval = dwarfget128(&b); + return TConstant; + case OpConsts: + *pval = dwarfget128s(&b); + return TConstant; + case OpPlusUconst: + *pval = dwarfget128(&b); + return TConstant; + default: + return TBlock; + } +} + +/* last resort */ +static int +skipform(DwarfBuf *b, int form) +{ + int type; + DwarfVal val; + + if(getulong(b, form, 0, &val.c, &type) < 0 + && getuchar(b, form, (uchar*)&val) < 0 + && getstring(b, form, &val.s) < 0 + && getblock(b, form, &val.b) < 0) + return -1; + return 0; +} + diff --git a/reactos/lib/rossym_new/dwarfopen.c b/reactos/lib/rossym_new/dwarfopen.c new file mode 100644 index 00000000000..9a5f20c80fa --- /dev/null +++ b/reactos/lib/rossym_new/dwarfopen.c @@ -0,0 +1,70 @@ +#define NTOSAPI +#include +#include +#include "rossympriv.h" +#include + +#define NDEBUG +#include + +#include "dwarf.h" +#include "pe.h" + +/* Adapted for PE */ + +Dwarf* +dwarfopen(Pe *pe) +{ + Dwarf *d; + + if(pe == nil){ + werrstr("nil pe passed to dwarfopen"); + return nil; + } + + d = mallocz(sizeof(Dwarf), 1); + if(d == nil) + return nil; + + d->pe = pe; + if(pe->loadsection(pe, ".debug_abbrev", &d->abbrev) < 0 + || pe->loadsection(pe, ".debug_aranges", &d->aranges) < 0 + || pe->loadsection(pe, ".debug_line", &d->line) < 0 + || pe->loadsection(pe, ".debug_pubnames", &d->pubnames) < 0 + || pe->loadsection(pe, ".debug_info", &d->info) < 0) + goto err; + pe->loadsection(pe, ".debug_frame", &d->frame); + pe->loadsection(pe, ".debug_ranges", &d->ranges); + pe->loadsection(pe, ".debug_str", &d->str); + + return d; + +err: + DPRINT("Failed to open dwarf\n"); + free(d->abbrev.data); + free(d->aranges.data); + free(d->frame.data); + free(d->line.data); + free(d->pubnames.data); + free(d->ranges.data); + free(d->str.data); + free(d->info.data); + free(d); + return nil; +} + +void +dwarfclose(Dwarf *d) +{ + free(d->abbrev.data); + free(d->aranges.data); + free(d->frame.data); + free(d->line.data); + free(d->pubnames.data); + free(d->ranges.data); + free(d->str.data); + free(d->info.data); + pefree(d->pe); + free(d); +} + diff --git a/reactos/lib/rossym_new/dwarfpc.c b/reactos/lib/rossym_new/dwarfpc.c new file mode 100644 index 00000000000..4edb5569ae9 --- /dev/null +++ b/reactos/lib/rossym_new/dwarfpc.c @@ -0,0 +1,385 @@ +/* + * Dwarf pc to source line conversion. + * + * Maybe should do the reverse here, but what should the interface look like? + * One possibility is to use the Plan 9 line2addr interface: + * + * long line2addr(ulong line, ulong basepc) + * + * which returns the smallest pc > basepc with line number line (ignoring file name). + * + * The encoding may be small, but it sure isn't simple! + */ + +#define NTOSAPI +#include +#include +#include "rossympriv.h" +#include + +#define NDEBUG +#include + +#include "dwarf.h" +#include "pe.h" + +#define trace 0 + +enum +{ + Isstmt = 1<<0, + BasicDwarfBlock = 1<<1, + EndSequence = 1<<2, + PrologueEnd = 1<<3, + EpilogueBegin = 1<<4 +}; + +typedef struct State State; +struct State +{ + ulong addr; + ulong file; + ulong line; + ulong column; + ulong flags; + ulong isa; +}; + +int +dwarfpctoline(Dwarf *d, ulong pc, char **cdir, char **dir, char **file, char **function, ulong *line, ulong *mtime, ulong *length) +{ + uchar *prog, *opcount, *end, *dirs; + ulong off, unit, len, vers, x, start, lastline; + int i, first, firstline, op, a, l, quantum, isstmt, linebase, linerange, opcodebase, nf; + char *files, *s; + DwarfBuf b; + DwarfSym sym; + State emit, cur, reset; + uchar **f, **newf; + + f = nil; + + if(dwarfaddrtounit(d, pc, &unit) < 0 + || dwarflookuptag(d, unit, TagCompileUnit, &sym) < 0) + return -1; + + if(!sym.attrs.have.stmtlist){ + werrstr("no line mapping information for 0x%x", pc); + return -1; + } + off = sym.attrs.stmtlist; + if(off >= d->line.len){ + werrstr("bad stmtlist\n"); + goto bad; + } + + if(trace) werrstr("unit 0x%x stmtlist 0x%x", unit, sym.attrs.stmtlist); + + memset(&b, 0, sizeof b); + b.d = d; + b.p = d->line.data + off; + b.ep = b.p + d->line.len; + b.addrsize = sym.b.addrsize; /* should i get this from somewhere else? */ + + len = dwarfget4(&b); + if(b.p==nil || b.p+len > b.ep || b.p+len < b.p){ + werrstr("bad len\n"); + goto bad; + } + + b.ep = b.p+len; + vers = dwarfget2(&b); + if(vers != 2){ + werrstr("bad dwarf version 0x%x", vers); + return -1; + } + + len = dwarfget4(&b); + if(b.p==nil || b.p+len > b.ep || b.p+len < b.p){ + werrstr("another bad len\n"); + goto bad; + } + prog = b.p+len; + + quantum = dwarfget1(&b); + isstmt = dwarfget1(&b); + linebase = (schar)dwarfget1(&b); + linerange = (schar)dwarfget1(&b); + opcodebase = dwarfget1(&b); + + opcount = b.p-1; + dwarfgetnref(&b, opcodebase-1); + if(b.p == nil){ + werrstr("bad opcode chart\n"); + goto bad; + } + + /* just skip the files and dirs for now; we'll come back */ + dirs = b.p; + while (b.p && *b.p) + dwarfgetstring(&b); + dwarfget1(&b); + + files = (char*)b.p; + while(b.p!=nil && *b.p!=0){ + dwarfgetstring(&b); + dwarfget128(&b); + dwarfget128(&b); + dwarfget128(&b); + } + dwarfget1(&b); + + /* move on to the program */ + if(b.p == nil || b.p > prog){ + werrstr("bad header\n"); + goto bad; + } + b.p = prog; + + reset.addr = 0; + reset.file = 1; + reset.line = 1; + reset.column = 0; + reset.flags = isstmt ? Isstmt : 0; + reset.isa = 0; + + cur = reset; + emit = reset; + nf = 0; + start = 0; + if(trace) werrstr("program @ %lu ... %.*H opbase = %d\n", b.p - d->line.data, b.ep-b.p, b.p, opcodebase); + first = 1; + while(b.p != nil){ + firstline = 0; + op = dwarfget1(&b); + if(trace) werrstr("\tline %lu, addr 0x%x, op %d %.10H", cur.line, cur.addr, op, b.p); + if(op >= opcodebase){ + a = (op - opcodebase) / linerange; + l = (op - opcodebase) % linerange + linebase; + cur.line += l; + cur.addr += a * quantum; + if(trace) werrstr(" +%d,%d\n", a, l); + emit: + if(first){ + if(cur.addr > pc){ + werrstr("found wrong line mapping 0x%x for pc 0x%x", cur.addr, pc); + /* This is an overzealous check. gcc can produce discontiguous ranges + and reorder statements, so it's possible for a future line to start + ahead of pc and still find a matching one. */ + /*goto out;*/ + firstline = 1; + } + first = 0; + start = cur.addr; + } + if(cur.addr > pc && !firstline) + break; + if(b.p == nil){ + werrstr("buffer underflow in line mapping"); + goto out; + } + emit = cur; + if(emit.flags & EndSequence){ + werrstr("found wrong line mapping 0x%x-0x%x for pc 0x%x", start, cur.addr, pc); + goto out; + } + cur.flags &= ~(BasicDwarfBlock|PrologueEnd|EpilogueBegin); + }else{ + switch(op){ + case 0: /* extended op code */ + if(trace) werrstr(" ext"); + len = dwarfget128(&b); + end = b.p+len; + if(b.p == nil || end > b.ep || end < b.p || len < 1) + goto bad; + switch(dwarfget1(&b)){ + case 1: /* end sequence */ + if(trace) werrstr(" end\n"); + cur.flags |= EndSequence; + goto emit; + case 2: /* set address */ + cur.addr = dwarfgetaddr(&b); + if(trace) werrstr(" set pc 0x%x\n", cur.addr); + break; + case 3: /* define file */ + newf = malloc(nf+1*sizeof(f[0])); + if (newf) + RtlMoveMemory(newf, f, nf*sizeof(f[0])); + if(newf == nil) + goto out; + f[nf++] = b.p; + s = dwarfgetstring(&b); + dwarfget128(&b); + dwarfget128(&b); + dwarfget128(&b); + if(trace) werrstr(" def file %s\n", s); + break; + } + if(b.p == nil || b.p > end) + goto bad; + b.p = end; + break; + case 1: /* emit */ + if(trace) werrstr(" emit\n"); + goto emit; + case 2: /* advance pc */ + a = dwarfget128(&b); + if(trace) werrstr(" advance pc + %lu\n", a*quantum); + cur.addr += a * quantum; + break; + case 3: /* advance line */ + l = dwarfget128s(&b); + if(trace) werrstr(" advance line + %ld\n", l); + cur.line += l; + break; + case 4: /* set file */ + if(trace) werrstr(" set file\n"); + cur.file = dwarfget128s(&b); + break; + case 5: /* set column */ + if(trace) werrstr(" set column\n"); + cur.column = dwarfget128(&b); + break; + case 6: /* negate stmt */ + if(trace) werrstr(" negate stmt\n"); + cur.flags ^= Isstmt; + break; + case 7: /* set basic block */ + if(trace) werrstr(" set basic block\n"); + cur.flags |= BasicDwarfBlock; + break; + case 8: /* const add pc */ + a = (255 - opcodebase) / linerange * quantum; + if(trace) werrstr(" const add pc + %d\n", a); + cur.addr += a; + break; + case 9: /* fixed advance pc */ + a = dwarfget2(&b); + if(trace) werrstr(" fixed advance pc + %d\n", a); + cur.addr += a; + break; + case 10: /* set prologue end */ + if(trace) werrstr(" set prologue end\n"); + cur.flags |= PrologueEnd; + break; + case 11: /* set epilogue begin */ + if(trace) werrstr(" set epilogue begin\n"); + cur.flags |= EpilogueBegin; + break; + case 12: /* set isa */ + if(trace) werrstr(" set isa\n"); + cur.isa = dwarfget128(&b); + break; + default: /* something new - skip it */ + if(trace) werrstr(" unknown %d\n", opcount[op]); + for(i=0; i 0 && b.p!=nil && *b.p!=0; i--){ + dwarfgetstring(&b); + dwarfget128(&b); + dwarfget128(&b); + dwarfget128(&b); + } + if(b.p == nil){ + werrstr("problem parsing file data second time (cannot happen)"); + goto bad; + } + if(*b.p == 0){ + if(i >= nf){ + werrstr("bad file index in mapping data"); + goto bad; + } + b.p = f[i]; + } + s = dwarfgetstring(&b); + if(file) + *file = s; + i = dwarfget128(&b); /* directory */ + x = dwarfget128(&b); + if(mtime) + *mtime = x; + x = dwarfget128(&b); + if(length) + *length = x; + + /* fetch dir name */ + if(cdir) + *cdir = sym.attrs.compdir; + + if(dir){ + *dir = nil; + b.p = dirs; + for (x = 1; b.p && *b.p; x++) + if (x == i) { + *dir = dwarfgetstring(&b); + break; + } + } + + *function = nil; + lastline = 0; +#if 0 + if (dwarfenumunit(d, unit, &proc) >= 0) { + dwarfnextsymat(d, &proc, 0); + while (dwarfnextsymat(d, &proc, 1) == 1) { + if (proc.attrs.tag == TagSubprogram && + proc.attrs.have.name && + proc.attrs.declfile == emit.file && + proc.attrs.declline <= *line && + proc.attrs.declline > lastline) { + lastline = proc.attrs.declline; + free(*function); + *function = malloc(strlen(proc.attrs.name)+1); + strcpy(*function, proc.attrs.name); + } + } + } +#elif 1 + ulong lastaddr = 0; + *function = NULL; + for (i = 0; i < d->pe->nsymbols; i++) { + if (d->pe->symtab[i].address > lastaddr && + d->pe->symtab[i].address <= pc - d->pe->imagebase && + d->pe->symtab[i].address < d->pe->imagesize) { + lastaddr = d->pe->symtab[i].address; + *function = d->pe->symtab[i].name; + } + } +#else + // *sigh* we get unrelocated low_pc and high_pc because the dwarf symbols + // are not 'loaded' in the PE sense. + if (dwarflookupfn(d, unit, pc, &proc) >= 0) { + *function = malloc(strlen(proc.attrs.name)+1); + strcpy(*function, proc.attrs.name); + } +#endif + + /* free at last, free at last */ + free(f); + return 0; + +bad: + werrstr("corrupted line mapping for 0x%x", pc); +out: + free(f); + return -1; +} + diff --git a/reactos/lib/rossym_new/dwarfpubnames.c b/reactos/lib/rossym_new/dwarfpubnames.c new file mode 100644 index 00000000000..8a8d802b797 --- /dev/null +++ b/reactos/lib/rossym_new/dwarfpubnames.c @@ -0,0 +1,81 @@ +#define NTOSAPI +#include +#include +#include + +#define NDEBUG +#include + +#include "dwarf.h" + +static int +_dwarfnametounit(Dwarf *d, char *name, DwarfBlock *bl, DwarfSym *s) +{ + int vers; + ulong len, unit, off; + uchar *next; + char *str; + DwarfBuf b; + + b.d = d; + b.p = bl->data; + b.ep = b.p + bl->len; + + while(b.p < b.ep){ + len = dwarfget4(&b); + if(len > b.ep-b.p){ + werrstr("bad length in dwarf name header"); + return -1; + } + next = b.p + len; + vers = dwarfget2(&b); + if(vers != 1 && vers != 2){ + werrstr("bad version %d in dwarf name header", vers); + return -1; + } + unit = dwarfget4(&b); + dwarfget4(&b); /* unit length */ + while(b.p < next){ + off = dwarfget4(&b); + if(off == 0) + break; + str = dwarfgetstring(&b); + if(strcmp(str, name) == 0){ + if(dwarfenumunit(d, unit, s) < 0) + return -1; + if(unit + off >= s->b.ep - d->info.data){ + werrstr("bad offset in name entry"); + return -1; + } + s->b.p = d->info.data + unit + off; + if(dwarfnextsym(d, s) < 0) + return -1; + if(s->attrs.name==nil || strcmp(s->attrs.name, name)!=0){ + werrstr("unexpected name %#q in lookup for %#q", s->attrs.name, name); + return -1; + } + return 0; + } + } + b.p = next; + } + werrstr("unknown name '%s'", name); + return -1; +} + +int +dwarflookupname(Dwarf *d, char *name, DwarfSym *sym) +{ + return _dwarfnametounit(d, name, &d->pubnames, sym); +} + +/* + +int +dwarflookuptype(Dwarf *d, char *name, DwarfSym *sym) +{ + return _dwarfnametounit(d, name, &d->pubtypes, sym); +} + + */ + diff --git a/reactos/lib/rossym_new/find.c b/reactos/lib/rossym_new/find.c new file mode 100644 index 00000000000..5f613dc573d --- /dev/null +++ b/reactos/lib/rossym_new/find.c @@ -0,0 +1,86 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: lib/rossym/find.c + * PURPOSE: Find symbol info for an address + * + * PROGRAMMERS: Ge van Geldorp (gvg@reactos.com) + */ +/* + * Parts of this file based on work Copyright (c) 1990, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include +#include "rossympriv.h" + +#define NDEBUG +#include + +#include "rossym.h" +#include "dwarf.h" +#include "pe.h" + +BOOLEAN +RosSymGetAddressInformation(PROSSYM_INFO RosSymInfo, + ULONG_PTR RelativeAddress, + ULONG *LineNumber, + char *FileName, + char *FunctionName) +{ + char *cdir, *dir, *file, *function; + ulong line, mtime, length; + int res = dwarfpctoline + (RosSymInfo, + RelativeAddress + RosSymInfo->pe->imagebase, + &cdir, + &dir, + &file, + &function, + &line, + &mtime, + &length); + if (res != -1) { + *LineNumber = line; + FileName[0] = 0; + if (dir) { + strcpy(FileName, dir); + strcat(FileName, "/"); + } + if (file) + strcat(FileName, file); + FunctionName[0] = 0; + if (function) + strcpy(FunctionName, function); + return TRUE; + } else { + return FALSE; + } +} + +/* EOF */ diff --git a/reactos/lib/rossym_new/fromfile.c b/reactos/lib/rossym_new/fromfile.c new file mode 100644 index 00000000000..00884a5a56b --- /dev/null +++ b/reactos/lib/rossym_new/fromfile.c @@ -0,0 +1,210 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: lib/rossym/fromfile.c + * PURPOSE: Creating rossym info from a file + * + * PROGRAMMERS: Ge van Geldorp (gvg@reactos.com) + */ + +#define NTOSAPI +#include +#include +#include +#include "rossympriv.h" +#include "pe.h" +#include + +#include "dwarf.h" + +#define NDEBUG +#include + +extern NTSTATUS RosSymStatus; + +BOOLEAN +RosSymCreateFromFile(PVOID FileContext, PROSSYM_INFO *RosSymInfo) +{ + IMAGE_DOS_HEADER DosHeader; + IMAGE_NT_HEADERS NtHeaders; + PIMAGE_SECTION_HEADER SectionHeaders; + unsigned SectionIndex; + unsigned SymbolTable, NumSymbols; + + /* Load DOS header */ + if (! RosSymSeekFile(FileContext, 0)) + { + DPRINT1("Could not rewind file\n"); + return FALSE; + } + if (! RosSymReadFile(FileContext, &DosHeader, sizeof(IMAGE_DOS_HEADER))) + { + DPRINT1("Failed to read DOS header %x\n", RosSymStatus); + return FALSE; + } + if (! ROSSYM_IS_VALID_DOS_HEADER(&DosHeader)) + { + DPRINT1("Image doesn't have a valid DOS header\n"); + return FALSE; + } + + /* Load NT headers */ + if (! RosSymSeekFile(FileContext, DosHeader.e_lfanew)) + { + DPRINT1("Failed seeking to NT headers\n"); + return FALSE; + } + if (! RosSymReadFile(FileContext, &NtHeaders, sizeof(IMAGE_NT_HEADERS))) + { + DPRINT1("Failed to read NT headers\n"); + return FALSE; + } + if (! ROSSYM_IS_VALID_NT_HEADERS(&NtHeaders)) + { + DPRINT1("Image doesn't have a valid PE header\n"); + return FALSE; + } + + SymbolTable = NtHeaders.FileHeader.PointerToSymbolTable; + NumSymbols = NtHeaders.FileHeader.NumberOfSymbols; + + if (!NumSymbols) + { + DPRINT1("Image doesn't have debug symbols\n"); + return FALSE; + } + + DPRINT("SymbolTable %x NumSymbols %x\n", SymbolTable, NumSymbols); + + /* Load section headers */ + if (! RosSymSeekFile(FileContext, (char *) IMAGE_FIRST_SECTION(&NtHeaders) - + (char *) &NtHeaders + DosHeader.e_lfanew)) + { + DPRINT1("Failed seeking to section headers\n"); + return FALSE; + } + DPRINT("Alloc section headers\n"); + SectionHeaders = RosSymAllocMem(NtHeaders.FileHeader.NumberOfSections + * sizeof(IMAGE_SECTION_HEADER)); + if (NULL == SectionHeaders) + { + DPRINT1("Failed to allocate memory for %u section headers\n", + NtHeaders.FileHeader.NumberOfSections); + return FALSE; + } + if (! RosSymReadFile(FileContext, SectionHeaders, + NtHeaders.FileHeader.NumberOfSections + * sizeof(IMAGE_SECTION_HEADER))) + { + RosSymFreeMem(SectionHeaders); + DPRINT1("Failed to read section headers\n"); + return FALSE; + } + + // Convert names to ANSI_STRINGs + for (SectionIndex = 0; SectionIndex < NtHeaders.FileHeader.NumberOfSections; + SectionIndex++) + { + ANSI_STRING astr; + if (SectionHeaders[SectionIndex].Name[0] != '/') { + DPRINT("Short name string %d, %s\n", SectionIndex, SectionHeaders[SectionIndex].Name); + astr.Buffer = RosSymAllocMem(IMAGE_SIZEOF_SHORT_NAME); + memcpy(astr.Buffer, SectionHeaders[SectionIndex].Name, IMAGE_SIZEOF_SHORT_NAME); + astr.MaximumLength = IMAGE_SIZEOF_SHORT_NAME; + astr.Length = GetStrnlen(astr.Buffer, IMAGE_SIZEOF_SHORT_NAME); + } else { + UNICODE_STRING intConv; + NTSTATUS Status; + ULONG StringOffset; + + Status = RtlCreateUnicodeStringFromAsciiz(&intConv, (PCSZ)SectionHeaders[SectionIndex].Name + 1); + if (!NT_SUCCESS(Status)) goto freeall; + Status = RtlUnicodeStringToInteger(&intConv, 10, &StringOffset); + RtlFreeUnicodeString(&intConv); + if (!NT_SUCCESS(Status)) goto freeall; + if (!RosSymSeekFile(FileContext, SymbolTable + NumSymbols * SYMBOL_SIZE + StringOffset)) + goto freeall; + astr.Buffer = RosSymAllocMem(MAXIMUM_DWARF_NAME_SIZE); + if (!RosSymReadFile(FileContext, astr.Buffer, MAXIMUM_DWARF_NAME_SIZE)) + goto freeall; + astr.Length = GetStrnlen(astr.Buffer, MAXIMUM_DWARF_NAME_SIZE); + astr.MaximumLength = MAXIMUM_DWARF_NAME_SIZE; + DPRINT("Long name %d, %s\n", SectionIndex, astr.Buffer); + } + *ANSI_NAME_STRING(&SectionHeaders[SectionIndex]) = astr; + } + + DPRINT("Done with sections\n"); + Pe *pe = RosSymAllocMem(sizeof(*pe)); + pe->fd = FileContext; + pe->e2 = peget2; + pe->e4 = peget4; + pe->e8 = peget8; + pe->nsections = NtHeaders.FileHeader.NumberOfSections; + pe->sect = SectionHeaders; + pe->nsymbols = NtHeaders.FileHeader.NumberOfSymbols; + pe->symtab = malloc(pe->nsymbols * sizeof(CoffSymbol)); + SYMENT SymbolData; + int i, j; + DPRINT("Getting symbol data\n"); + ASSERT(sizeof(SymbolData) == 18); + for (i = 0, j = 0; i < pe->nsymbols; i++) { + if (!RosSymSeekFile + (FileContext, + NtHeaders.FileHeader.PointerToSymbolTable + i * sizeof(SymbolData))) + goto freeall; + if (!RosSymReadFile(FileContext, &SymbolData, sizeof(SymbolData))) + goto freeall; + if ((SymbolData.e_scnum < 1) || + (SymbolData.e_sclass != C_EXT && + SymbolData.e_sclass != C_STAT)) + continue; + int section = SymbolData.e_scnum - 1; + if (SymbolData.e.e.e_zeroes) { + pe->symtab[j].name = malloc(sizeof(SymbolData.e.e_name)+1); + memcpy(pe->symtab[j].name, SymbolData.e.e_name, sizeof(SymbolData.e.e_name)); + pe->symtab[j].name[sizeof(SymbolData.e.e_name)] = 0; + } else { + if (!RosSymSeekFile + (FileContext, + NtHeaders.FileHeader.PointerToSymbolTable + + (NtHeaders.FileHeader.NumberOfSymbols * 18) + + SymbolData.e.e.e_offset)) + goto freeall; + pe->symtab[j].name = malloc(MAXIMUM_COFF_SYMBOL_LENGTH+1); + pe->symtab[j].name[MAXIMUM_COFF_SYMBOL_LENGTH] = 0; + // It's possible that we've got a string just at the end of the file + // we'll skip that symbol if needed + if (!RosSymReadFile(FileContext, pe->symtab[j].name, MAXIMUM_COFF_SYMBOL_LENGTH)) { + free(pe->symtab[j].name); + continue; + } + } + if (pe->symtab[j].name[0] == '.') { + free(pe->symtab[j].name); + continue; + } + pe->symtab[j].address = pe->sect[section].VirtualAddress + SymbolData.e_value; + j++; + } + DPRINT("%d symbols\n", j); + pe->nsymbols = j; + pe->imagebase = pe->loadbase = NtHeaders.OptionalHeader.ImageBase; + pe->imagesize = NtHeaders.OptionalHeader.SizeOfImage; + pe->loadsection = loaddisksection; + DPRINT("do dwarfopen\n"); + *RosSymInfo = dwarfopen(pe); + DPRINT("done %x\n", *RosSymInfo); + + return TRUE; + +freeall: + for (SectionIndex = 0; SectionIndex < NtHeaders.FileHeader.NumberOfSections; + SectionIndex++) + RtlFreeAnsiString(ANSI_NAME_STRING(&SectionHeaders[SectionIndex])); + RosSymFreeMem(SectionHeaders); + + return FALSE; +} + +/* EOF */ diff --git a/reactos/lib/rossym_new/frommem.c b/reactos/lib/rossym_new/frommem.c new file mode 100644 index 00000000000..2e201d27a48 --- /dev/null +++ b/reactos/lib/rossym_new/frommem.c @@ -0,0 +1,160 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: lib/rossym/frommem.c + * PURPOSE: Creating rossym info from an in-memory image + * + * PROGRAMMERS: Ge van Geldorp (gvg@reactos.com) + */ + +#define NTOSAPI +#include +#include +#include +#include "rossympriv.h" +#include + +#define NDEBUG +#include + +#include "dwarf.h" +#include "pe.h" + +BOOLEAN +RosSymCreateFromMem(PVOID ImageStart, ULONG_PTR ImageSize, PROSSYM_INFO *RosSymInfo) +{ + ANSI_STRING AnsiNameString = { }; + PIMAGE_DOS_HEADER DosHeader; + PIMAGE_NT_HEADERS NtHeaders; + PIMAGE_SECTION_HEADER SectionHeaders; + ULONG SectionIndex; + unsigned SymbolTable, NumSymbols; + + /* Check if MZ header is valid */ + DosHeader = (PIMAGE_DOS_HEADER) ImageStart; + if (ImageSize < sizeof(IMAGE_DOS_HEADER) + || ! ROSSYM_IS_VALID_DOS_HEADER(DosHeader)) + { + DPRINT1("Image doesn't have a valid DOS header\n"); + return FALSE; + } + + /* Locate NT header */ + NtHeaders = (PIMAGE_NT_HEADERS)((char *) ImageStart + DosHeader->e_lfanew); + if (ImageSize < DosHeader->e_lfanew + sizeof(IMAGE_NT_HEADERS) + || ! ROSSYM_IS_VALID_NT_HEADERS(NtHeaders)) + { + DPRINT1("Image doesn't have a valid PE header\n"); + return FALSE; + } + + SymbolTable = NtHeaders->FileHeader.PointerToSymbolTable; + NumSymbols = NtHeaders->FileHeader.NumberOfSymbols; + + /* Search for the section header */ + ULONG SectionHeaderSize = NtHeaders->FileHeader.NumberOfSections * sizeof(IMAGE_SECTION_HEADER); + SectionHeaders = RosSymAllocMem(SectionHeaderSize); + RtlCopyMemory(SectionHeaders, IMAGE_FIRST_SECTION(NtHeaders), SectionHeaderSize); + + // Convert names to ANSI_STRINGs + for (SectionIndex = 0; SectionIndex < NtHeaders->FileHeader.NumberOfSections; + SectionIndex++) + { + if (SectionHeaders[SectionIndex].Name[0] != '/') { + AnsiNameString.Buffer = RosSymAllocMem(IMAGE_SIZEOF_SHORT_NAME); + RtlCopyMemory(AnsiNameString.Buffer, SectionHeaders[SectionIndex].Name, IMAGE_SIZEOF_SHORT_NAME); + AnsiNameString.MaximumLength = IMAGE_SIZEOF_SHORT_NAME; + AnsiNameString.Length = GetStrnlen(AnsiNameString.Buffer, IMAGE_SIZEOF_SHORT_NAME); + } else { + UNICODE_STRING intConv; + NTSTATUS Status; + ULONG StringOffset; + + Status = RtlCreateUnicodeStringFromAsciiz(&intConv, (PCSZ)SectionHeaders[SectionIndex].Name + 1); + if (!NT_SUCCESS(Status)) goto freeall; + Status = RtlUnicodeStringToInteger(&intConv, 10, &StringOffset); + RtlFreeUnicodeString(&intConv); + if (!NT_SUCCESS(Status)) goto freeall; + ULONG VirtualOffset = pefindrva(SectionHeaders, NtHeaders->FileHeader.NumberOfSections, SymbolTable+(NumSymbols*SYMBOL_SIZE)+StringOffset); + if (!VirtualOffset) goto freeall; + AnsiNameString.Buffer = RosSymAllocMem(MAXIMUM_DWARF_NAME_SIZE); + if (!AnsiNameString.Buffer) goto freeall; + PCHAR StringTarget = ((PCHAR)ImageStart)+VirtualOffset; + PCHAR EndOfImage = ((PCHAR)ImageStart) + NtHeaders->OptionalHeader.SizeOfImage; + if (StringTarget >= EndOfImage) goto freeall; + ULONG PossibleStringLength = EndOfImage - StringTarget; + if (PossibleStringLength > MAXIMUM_DWARF_NAME_SIZE) + PossibleStringLength = MAXIMUM_DWARF_NAME_SIZE; + RtlCopyMemory(AnsiNameString.Buffer, StringTarget, PossibleStringLength); + AnsiNameString.Length = strlen(AnsiNameString.Buffer); + AnsiNameString.MaximumLength = MAXIMUM_DWARF_NAME_SIZE; + } + memcpy + (&SectionHeaders[SectionIndex], + &AnsiNameString, + sizeof(AnsiNameString)); + } + + Pe *pe = RosSymAllocMem(sizeof(*pe)); + pe->fd = ImageStart; + pe->e2 = peget2; + pe->e4 = peget4; + pe->e8 = peget8; + pe->loadbase = (ULONG)ImageStart; + pe->imagebase = NtHeaders->OptionalHeader.ImageBase; + pe->imagesize = NtHeaders->OptionalHeader.SizeOfImage; + pe->nsections = NtHeaders->FileHeader.NumberOfSections; + pe->sect = SectionHeaders; + pe->nsymbols = NtHeaders->FileHeader.NumberOfSymbols; + pe->symtab = malloc(pe->nsymbols * sizeof(CoffSymbol)); + PSYMENT SymbolData = (PSYMENT) + (((PCHAR)ImageStart) + + pefindrva + (pe->sect, + pe->nsections, + NtHeaders->FileHeader.PointerToSymbolTable)); + int i, j; + for (i = 0, j = 0; i < pe->nsymbols; i++) { + if ((SymbolData[i].e_scnum < 1) || + (SymbolData[i].e_sclass != C_EXT && + SymbolData[i].e_sclass != C_STAT)) + continue; + int section = SymbolData[i].e_scnum - 1; + if (SymbolData[i].e.e.e_zeroes) { + pe->symtab[j].name = malloc(sizeof(SymbolData[i].e.e_name)+1); + strcpy(pe->symtab[j].name, SymbolData[i].e.e_name); + } else { + PCHAR SymbolName = ((PCHAR)ImageStart) + + pefindrva + (pe->sect, + pe->nsections, + NtHeaders->FileHeader.PointerToSymbolTable + + (NtHeaders->FileHeader.NumberOfSymbols * 18) + + SymbolData[i].e.e.e_offset); + pe->symtab[j].name = malloc(strlen(SymbolName)+1); + strcpy(pe->symtab[j].name, SymbolName); + } + if (pe->symtab[j].name[0] == '.') { + free(pe->symtab[j].name); + continue; + } + pe->symtab[j].address = pe->sect[section].VirtualAddress + SymbolData[i].e_value; + j++; + } + pe->nsymbols = j; + pe->loadsection = loadmemsection; + *RosSymInfo = dwarfopen(pe); + + return !!*RosSymInfo; + +freeall: + if (AnsiNameString.Buffer) RosSymFreeMem(AnsiNameString.Buffer); + for (SectionIndex = 0; SectionIndex < NtHeaders->FileHeader.NumberOfSections; + SectionIndex++) + RtlFreeAnsiString(ANSI_NAME_STRING(&SectionHeaders[SectionIndex])); + RosSymFreeMem(SectionHeaders); + + return FALSE; +} + +/* EOF */ diff --git a/reactos/lib/rossym_new/fromraw.c b/reactos/lib/rossym_new/fromraw.c new file mode 100644 index 00000000000..ae484252424 --- /dev/null +++ b/reactos/lib/rossym_new/fromraw.c @@ -0,0 +1,55 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: lib/rossym/frommem.c + * PURPOSE: Creating rossym info from an in-memory image + * + * PROGRAMMERS: Ge van Geldorp (gvg@reactos.com) + */ + +#define NTOSAPI +#include +#include +#include "rossympriv.h" + +#define NDEBUG +#include + +BOOLEAN +RosSymCreateFromRaw(PVOID RawData, ULONG_PTR DataSize, PROSSYM_INFO *RosSymInfo) +{ + PROSSYM_HEADER RosSymHeader; + + RosSymHeader = (PROSSYM_HEADER) RawData; + if (RosSymHeader->SymbolsOffset < sizeof(ROSSYM_HEADER) + || RosSymHeader->StringsOffset < RosSymHeader->SymbolsOffset + RosSymHeader->SymbolsLength + || DataSize < RosSymHeader->StringsOffset + RosSymHeader->StringsLength + || 0 != (RosSymHeader->SymbolsLength % sizeof(ROSSYM_ENTRY))) + { + DPRINT1("Invalid ROSSYM_HEADER\n"); + return FALSE; + } + + /* Copy */ + *RosSymInfo = RosSymAllocMem(sizeof(ROSSYM_INFO) + RosSymHeader->SymbolsLength + + RosSymHeader->StringsLength + 1); + if (NULL == *RosSymInfo) + { + DPRINT1("Failed to allocate memory for rossym\n"); + return FALSE; + } + (*RosSymInfo)->Symbols = (PROSSYM_ENTRY)((char *) *RosSymInfo + sizeof(ROSSYM_INFO)); + (*RosSymInfo)->SymbolsCount = RosSymHeader->SymbolsLength / sizeof(ROSSYM_ENTRY); + (*RosSymInfo)->Strings = (PCHAR) *RosSymInfo + sizeof(ROSSYM_INFO) + RosSymHeader->SymbolsLength; + (*RosSymInfo)->StringsLength = RosSymHeader->StringsLength; + memcpy((*RosSymInfo)->Symbols, (char *) RosSymHeader + RosSymHeader->SymbolsOffset, + RosSymHeader->SymbolsLength); + memcpy((*RosSymInfo)->Strings, (char *) RosSymHeader + RosSymHeader->StringsOffset, + RosSymHeader->StringsLength); + /* Make sure the last string is null terminated, we allocated an extra byte for that */ + (*RosSymInfo)->Strings[(*RosSymInfo)->StringsLength] = '\0'; + + return TRUE; +} + +/* EOF */ diff --git a/reactos/lib/rossym_new/getraw.c b/reactos/lib/rossym_new/getraw.c new file mode 100644 index 00000000000..1f11057a38e --- /dev/null +++ b/reactos/lib/rossym_new/getraw.c @@ -0,0 +1,43 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: lib/rossym/getraw.c + * PURPOSE: Convert rossym info to raw external format + * + * PROGRAMMERS: Ge van Geldorp (gvg@reactos.com) + */ + +#define NTOSAPI +#include +#include +#include "rossympriv.h" + +#define NDEBUG +#include + +ULONG +RosSymGetRawDataLength(PROSSYM_INFO RosSymInfo) +{ + return sizeof(ROSSYM_HEADER) + + RosSymInfo->SymbolsCount * sizeof(ROSSYM_ENTRY) + + RosSymInfo->StringsLength; +} + +VOID +RosSymGetRawData(PROSSYM_INFO RosSymInfo, PVOID RawData) +{ + PROSSYM_HEADER RosSymHeader; + + RosSymHeader = (PROSSYM_HEADER) RawData; + RosSymHeader->SymbolsOffset = sizeof(ROSSYM_HEADER); + RosSymHeader->SymbolsLength = RosSymInfo->SymbolsCount * sizeof(ROSSYM_ENTRY); + RosSymHeader->StringsOffset = RosSymHeader->SymbolsOffset + RosSymHeader->SymbolsLength; + RosSymHeader->StringsLength = RosSymInfo->StringsLength; + + memcpy((char *) RawData + RosSymHeader->SymbolsOffset, RosSymInfo->Symbols, + RosSymHeader->SymbolsLength); + memcpy((char *) RawData + RosSymHeader->StringsOffset, RosSymInfo->Strings, + RosSymHeader->StringsLength); +} + +/* EOF */ diff --git a/reactos/lib/rossym_new/init.c b/reactos/lib/rossym_new/init.c new file mode 100644 index 00000000000..80be79a1ee0 --- /dev/null +++ b/reactos/lib/rossym_new/init.c @@ -0,0 +1,22 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: lib/rossym/data.c + * PURPOSE: Definition of external variables + * + * PROGRAMMERS: Ge van Geldorp (gvg@reactos.com) + */ + +#include +#include +#include "rossympriv.h" + +ROSSYM_CALLBACKS RosSymCallbacks; + +VOID +RosSymInit(PROSSYM_CALLBACKS Callbacks) +{ + RosSymCallbacks = *Callbacks; +} + +/* EOF */ diff --git a/reactos/lib/rossym_new/initkm.c b/reactos/lib/rossym_new/initkm.c new file mode 100644 index 00000000000..4f1c07111a3 --- /dev/null +++ b/reactos/lib/rossym_new/initkm.c @@ -0,0 +1,48 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: lib/rossym/initkm.c + * PURPOSE: Initialize library for use in kernel mode + * + * PROGRAMMERS: Ge van Geldorp (gvg@reactos.com) + */ + +#include +#undef DECLSPEC_IMPORT +#define DECLSPEC_IMPORT +#include +#include +#include "rossympriv.h" + +#define NDEBUG +#include + +#define TAG_ROSSYM 'MYSR' + +static PVOID +RosSymAllocMemKM(ULONG_PTR Size) +{ + return ExAllocatePoolWithTag(NonPagedPool, Size, TAG_ROSSYM); +} + +static VOID +RosSymFreeMemKM(PVOID Area) +{ + ExFreePool(Area); +} + +VOID +RosSymInitKernelMode(VOID) +{ + static ROSSYM_CALLBACKS KmCallbacks = + { + RosSymAllocMemKM, + RosSymFreeMemKM, + RosSymIoReadFile, + RosSymIoSeekFile + }; + + RosSymInit(&KmCallbacks); +} + +/* EOF */ diff --git a/reactos/lib/rossym_new/initum.c b/reactos/lib/rossym_new/initum.c new file mode 100644 index 00000000000..5a80fd37eef --- /dev/null +++ b/reactos/lib/rossym_new/initum.c @@ -0,0 +1,46 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: lib/rossym/initum.c + * PURPOSE: Initialize library for use in user mode + * + * PROGRAMMERS: Ge van Geldorp (gvg@reactos.com) + */ + +#define WIN32_NO_STATUS +#include +#include +#include "rossympriv.h" +#define NTOS_MODE_USER +#include + +#define NDEBUG +#include + +static PVOID +RosSymAllocMemUM(ULONG_PTR Size) +{ + return RtlAllocateHeap(RtlGetProcessHeap(), 0, Size); +} + +static VOID +RosSymFreeMemUM(PVOID Area) +{ + RtlFreeHeap(RtlGetProcessHeap(), 0, Area); +} + +VOID +RosSymInitUserMode(VOID) +{ + static ROSSYM_CALLBACKS KmCallbacks = + { + RosSymAllocMemUM, + RosSymFreeMemUM, + RosSymZwReadFile, + RosSymZwSeekFile + }; + + RosSymInit(&KmCallbacks); +} + +/* EOF */ diff --git a/reactos/lib/rossym_new/iofile.c b/reactos/lib/rossym_new/iofile.c new file mode 100644 index 00000000000..97069c50076 --- /dev/null +++ b/reactos/lib/rossym_new/iofile.c @@ -0,0 +1,34 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: lib/rossym/zwfile.c + * PURPOSE: File I/O using native functions + * + * PROGRAMMERS: Ge van Geldorp (gvg@reactos.com) + */ + +#define NTOSAPI +#include +#include +#include "rossympriv.h" + +#define NDEBUG +#include + +NTSTATUS RosSymStatus; + +BOOLEAN +RosSymIoReadFile(PVOID FileContext, PVOID Buffer, ULONG Size) +{ + PROSSYM_OWN_FILECONTEXT OwnContext = (PROSSYM_OWN_FILECONTEXT)FileContext; + return OwnContext->ReadFileProc(FileContext, Buffer, Size); +} + +BOOLEAN +RosSymIoSeekFile(PVOID FileContext, ULONG_PTR Position) +{ + PROSSYM_OWN_FILECONTEXT OwnContext = (PROSSYM_OWN_FILECONTEXT)FileContext; + return OwnContext->SeekFileProc(FileContext, Position); +} + +/* EOF */ diff --git a/reactos/lib/rossym_new/pe.c b/reactos/lib/rossym_new/pe.c new file mode 100644 index 00000000000..a00716cd185 --- /dev/null +++ b/reactos/lib/rossym_new/pe.c @@ -0,0 +1,142 @@ +#define NTOSAPI +#include +#include +#include +#include "rossympriv.h" +#include + +#define NDEBUG +#include + +#include "dwarf.h" +#include "pe.h" +#include "rossympriv.h" + +PeSect *pesection(Pe *pe, const char *name) +{ + int i; + ANSI_STRING WantName; + RtlInitAnsiString(&WantName, name); + DPRINT("Searching for section %s\n", name); + for (i = 0; i < pe->nsections; i++) { + PANSI_STRING AnsiString = ANSI_NAME_STRING(&pe->sect[i]); + if (WantName.Length == AnsiString->Length && + !memcmp(AnsiString->Buffer, name, WantName.Length)) { + DPRINT("Found %s (%d) @ %x (%x)\n", name, i, + ((PCHAR)pe->imagebase)+pe->sect[i].VirtualAddress, + pe->sect[i].SizeOfRawData); + return &pe->sect[i]; + } + } + DPRINT("%s not found\n", name); + return nil; +} + +u16int peget2(const unsigned char *ptr) { + return *((u16int*)ptr); +} + +u32int peget4(const unsigned char *ptr) { + return *((u32int*)ptr); +} + +u64int peget8(const unsigned char *ptr) { + return *((u64int*)ptr); +} + +int readn(void *filectx, char *buffer, ulong size) { + return RosSymReadFile(filectx, buffer, size); +} + +int seek(void *filectx, ulong position, int origin) { + assert(origin == 0); + return RosSymSeekFile(filectx, position); +} + +static int +readblock(void *fd, DwarfBlock *b, ulong off, ulong len) +{ + b->data = malloc(len); + if(b->data == nil) + return -1; + if(!seek(fd, off, 0) || !readn(fd, (char *)b->data, len)){ + free(b->data); + b->data = nil; + return -1; + } + b->len = len; + return 0; +} + +int +loaddisksection(Pe *pe, char *name, DwarfBlock *b) +{ + PeSect *s; + if((s = pesection(pe, name)) == nil) + return -1; + return readblock(pe->fd, b, s->PointerToRawData, s->SizeOfRawData); +} + +int +loadmemsection(Pe *pe, char *name, DwarfBlock *b) +{ + PeSect *s; + + if((s = pesection(pe, name)) == nil) + return -1; + DPRINT("Loading section %s (ImageBase %x RVA %x)\n", name, pe->fd, s->VirtualAddress); + b->data = RosSymAllocMem(s->SizeOfRawData); + b->len = s->SizeOfRawData; + PCHAR DataSource = ((char *)pe->fd) + s->VirtualAddress; + DPRINT("Copying to %x from %x (%x)\n", DataSource, b->data, b->len); + RtlCopyMemory(b->data, DataSource, s->SizeOfRawData); + + return s->SizeOfRawData; +} + +void *RosSymAllocMemZero(ulong size, ulong count) { + void *res = RosSymAllocMem(size * count); + if (res) memset(res, 0, size * count); + return res; +} + +int GetStrnlen(const char *string, int maxlen) { + int i; + for (i = 0; i < maxlen && string[i]; i++); + return i; +} + +void pefree(Pe *pe) { + int i; + for (i = 0; i < pe->nsections; i++) { + RtlFreeAnsiString(ANSI_NAME_STRING(&pe->sect[i])); + } + for (i = 0; i < pe->nsymbols; i++) { + free(pe->symtab[i].name); + } + free(pe->symtab); + free(pe->sect); + free(pe); +} + +void xfree(void *v) { + if (v) RosSymFreeMem(v); +} + +ulong pefindrva(struct _IMAGE_SECTION_HEADER *SectionHeaders, int NumberOfSections, ulong TargetPhysical) { + int i; + DPRINT("Finding RVA for Physical %x\n", TargetPhysical); + for (i = 0; i < NumberOfSections; i++) { + DPRINT("Section %d name %s Raw %x Virt %x\n", + i, + ANSI_NAME_STRING(&SectionHeaders[i])->Buffer, + SectionHeaders[i].PointerToRawData, + SectionHeaders[i].VirtualAddress); + if (TargetPhysical >= SectionHeaders[i].PointerToRawData && + TargetPhysical < SectionHeaders[i].PointerToRawData + SectionHeaders[i].SizeOfRawData) { + DPRINT("RVA %x\n", TargetPhysical - SectionHeaders[i].PointerToRawData + SectionHeaders[i].VirtualAddress); + return TargetPhysical - SectionHeaders[i].PointerToRawData + SectionHeaders[i].VirtualAddress; + } + } + return nil; +} diff --git a/reactos/lib/rossym_new/pe.h b/reactos/lib/rossym_new/pe.h new file mode 100644 index 00000000000..5e659a216e9 --- /dev/null +++ b/reactos/lib/rossym_new/pe.h @@ -0,0 +1,61 @@ +#ifndef _LIBMACH_PE_H_ +#define _LIBMACH_PE_H_ + +#include "compat.h" + +struct DwarfBlock; +typedef struct _IMAGE_SECTION_HEADER PeSect; + +typedef struct _CoffSymbol { + ulong address; + char *name; +} CoffSymbol; + +typedef struct _Pe { + void *fd; + u16int (*e2)(const unsigned char *data); + u32int (*e4)(const unsigned char *data); + u64int (*e8)(const unsigned char *data); + ulong imagebase, imagesize, loadbase; + ulong nsymbols; + CoffSymbol *symtab; + int (*loadsection)(struct _Pe *pe, char *name, struct DwarfBlock *b); + int nsections; + struct _IMAGE_SECTION_HEADER *sect; +} Pe; + +#define E_SYMNMLEN 8 +#include +typedef struct { + union { + char e_name[E_SYMNMLEN]; + struct { + unsigned long e_zeroes; + unsigned long e_offset; + } e; + } e; + unsigned long e_value; + short e_scnum; + unsigned short e_type; + unsigned char e_sclass; + unsigned char e_numaux; +} SYMENT, *PSYMENT; +#include + +#define C_EXT 2 +#define C_STAT 3 +#define DT_FCN 0x40 + +Pe *peopen(const char *name); +int loaddisksection(struct _Pe *pe, char *name, struct DwarfBlock *b); +int loadmemsection(struct _Pe *pe, char *name, struct DwarfBlock *b); +u16int peget2(const unsigned char *ptr); +u32int peget4(const unsigned char *ptr); +u64int peget8(const unsigned char *ptr); +void pefree(struct _Pe *pe); +ulong pefindrva(struct _IMAGE_SECTION_HEADER *SectionHeader, int NumberOfSections, ulong TargetPhysical); +int GetStrnlen(const char *string, int maxlen); + +#define ANSI_NAME_STRING(s) ((PANSI_STRING)((s)->Name)) + +#endif/*_LIBMACH_PE_H_*/ diff --git a/reactos/lib/rossym_new/rossympriv.h b/reactos/lib/rossym_new/rossympriv.h new file mode 100644 index 00000000000..ffeb2ce6782 --- /dev/null +++ b/reactos/lib/rossym_new/rossympriv.h @@ -0,0 +1,30 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: lib/rossym/rossympriv.h + * PURPOSE: Private header for rossym + * + * PROGRAMMERS: Ge van Geldorp (gvg@reactos.com) + */ + +#pragma once + +extern ROSSYM_CALLBACKS RosSymCallbacks; + +#define RosSymAllocMem(Size) (*RosSymCallbacks.AllocMemProc)(Size) +#define RosSymFreeMem(Area) (*RosSymCallbacks.FreeMemProc)(Area) +#define RosSymReadFile(FileContext, Buffer, Size) (*RosSymCallbacks.ReadFileProc)((FileContext), (Buffer), (Size)) +#define RosSymSeekFile(FileContext, Position) (*RosSymCallbacks.SeekFileProc)((FileContext), (Position)) + +extern BOOLEAN RosSymZwReadFile(PVOID FileContext, PVOID Buffer, ULONG Size); +extern BOOLEAN RosSymZwSeekFile(PVOID FileContext, ULONG_PTR Position); + +extern BOOLEAN RosSymIoReadFile(PVOID FileContext, PVOID Buffer, ULONG Size); +extern BOOLEAN RosSymIoSeekFile(PVOID FileContext, ULONG_PTR Position); + +#define ROSSYM_IS_VALID_DOS_HEADER(DosHeader) (IMAGE_DOS_SIGNATURE == (DosHeader)->e_magic \ + && 0L != (DosHeader)->e_lfanew) +#define ROSSYM_IS_VALID_NT_HEADERS(NtHeaders) (IMAGE_NT_SIGNATURE == (NtHeaders)->Signature \ + && IMAGE_NT_OPTIONAL_HDR_MAGIC == (NtHeaders)->OptionalHeader.Magic) + +/* EOF */ diff --git a/reactos/lib/rossym_new/zwfile.c b/reactos/lib/rossym_new/zwfile.c new file mode 100644 index 00000000000..a6ce196c632 --- /dev/null +++ b/reactos/lib/rossym_new/zwfile.c @@ -0,0 +1,54 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: lib/rossym/zwfile.c + * PURPOSE: File I/O using native functions + * + * PROGRAMMERS: Ge van Geldorp (gvg@reactos.com) + */ + +#define NTOSAPI +#include +#include +#include "rossympriv.h" + +#define NDEBUG +#include + +NTSTATUS RosSymStatus; + +BOOLEAN +RosSymZwReadFile(PVOID FileContext, PVOID Buffer, ULONG Size) +{ + //NTSTATUS Status; + IO_STATUS_BLOCK IoStatusBlock; + + RosSymStatus = ZwReadFile(*((HANDLE *) FileContext), + 0, 0, 0, + &IoStatusBlock, + Buffer, + Size, + 0, 0); + + return NT_SUCCESS(RosSymStatus) && IoStatusBlock.Information == Size; +} + +BOOLEAN +RosSymZwSeekFile(PVOID FileContext, ULONG_PTR Position) +{ + //NTSTATUS Status; + IO_STATUS_BLOCK IoStatusBlock; + FILE_POSITION_INFORMATION NewPosition; + + NewPosition.CurrentByteOffset.u.HighPart = 0; + NewPosition.CurrentByteOffset.u.LowPart = Position; + RosSymStatus = ZwSetInformationFile(*((HANDLE *) FileContext), + &IoStatusBlock, + (PVOID) &NewPosition, + sizeof(FILE_POSITION_INFORMATION), + FilePositionInformation); + + return NT_SUCCESS(RosSymStatus); +} + +/* EOF */ diff --git a/reactos/lib/rtl/CMakeLists.txt b/reactos/lib/rtl/CMakeLists.txt new file mode 100644 index 00000000000..64194389eac --- /dev/null +++ b/reactos/lib/rtl/CMakeLists.txt @@ -0,0 +1,102 @@ + +add_definitions( + -D_NTOSKRNL_ + -DNO_RTL_INLINES + -D_NTSYSTEM_ + -D_NTDLLBUILD_) + +list(APPEND SOURCE + access.c + acl.c + actctx.c + assert.c + atom.c + avltable.c + bitmap.c + bootdata.c + compress.c + condvar.c + crc32.c + critical.c + dbgbuffer.c + debug.c + dos8dot3.c + encode.c + env.c + error.c + exception.c + generictable.c + handle.c + heap.c + heapdbg.c + heappage.c + image.c + interlck.c + message.c + largeint.c + luid.c + network.c + nls.c + path.c + ppb.c + process.c + propvar.c + qsort.c + random.c + rangelist.c + registry.c + res.c + resource.c + sd.c + security.c + slist.c + sid.c + srw.c + splaytree.c + thread.c + time.c + timezone.c + timerqueue.c + unicode.c + unicodeprefix.c + vectoreh.c + version.c + wait.c + workitem.c) + +if(ARCH MATCHES i386) + list(APPEND SOURCE + i386/debug_asm.S + i386/except_asm.s + i386/except.c + i386/interlck.S + i386/rtlmem.s + i386/res_asm.s + i386/thread.c) +elseif(ARCH MATCHES amd64) + list(APPEND SOURCE + amd64/debug_asm.S + amd64/except_asm.S + amd64/slist.S + amd64/unwind.c + amd64/stubs.c + mem.c + memgen.c) +elseif(ARCH MATCHES arm) + list(APPEND SOURCE + arm/debug_asm.S + mem.c + memgen.c) +elseif(ARCH MATCHES powerpc) + list(APPEND SOURCE + powerpc/debug.c + powerpc/except.c + powerpc/interlocked.c + powerpc/rtlmem.s + powerpc/rtlswap.s + powerpc/thread.c) +endif() + +add_library(rtl ${CMAKE_CURRENT_BINARY_DIR}/rtl_rtl.h.gch ${SOURCE}) +add_pch(rtl ${CMAKE_CURRENT_SOURCE_DIR}/rtl.h ${SOURCE}) +add_dependencies(rtl psdk asm) diff --git a/reactos/lib/sdk/CMakeLists.txt b/reactos/lib/sdk/CMakeLists.txt new file mode 100644 index 00000000000..ef3b4678875 --- /dev/null +++ b/reactos/lib/sdk/CMakeLists.txt @@ -0,0 +1,10 @@ + +add_subdirectory(crt) +add_subdirectory(delayimp) +add_subdirectory(dxguid) +add_subdirectory(ioevent) +add_subdirectory(nt) +add_subdirectory(scrnsave) +add_subdirectory(strmiids) +add_subdirectory(uuid) +add_subdirectory(wdmguid) diff --git a/reactos/lib/sdk/crt/CMakeLists.txt b/reactos/lib/sdk/crt/CMakeLists.txt new file mode 100644 index 00000000000..094d377da77 --- /dev/null +++ b/reactos/lib/sdk/crt/CMakeLists.txt @@ -0,0 +1,643 @@ + +include_directories(include) + +add_definitions(-D_CRTBLD) + +list(APPEND CRT_SOURCE + conio/cgets.c + conio/cputs.c + conio/getch.c + conio/getche.c + conio/kbhit.c + conio/putch.c + conio/ungetch.c + direct/chdir.c + direct/chdrive.c + direct/getcwd.c + direct/getdcwd.c + direct/getdfree.c + direct/getdrive.c + direct/mkdir.c + direct/rmdir.c + direct/wchdir.c + direct/wgetcwd.c + direct/wgetdcwd.c + direct/wmkdir.c + direct/wrmdir.c + except/abnorter.c + except/checkesp.c + except/cpp.c + except/cppexcept.c + except/except.c + except/matherr.c + except/xcptfil.c + float/chgsign.c + float/copysign.c + float/fpclass.c + float/fpecode.c + float/isnan.c + float/nafter.c + float/scalb.c + locale/locale.c + math/acos.c + math/adjust.c + math/asin.c + math/cabs.c + math/cosf.c + math/cosh.c + math/div.c + math/fdivbug.c + math/frexp.c + math/huge_val.c + math/hypot.c + math/ldiv.c + math/logf.c + math/modf.c + math/powf.c + math/rand.c + math/sqrtf.c + math/s_modf.c + math/sinf.c + math/sinh.c + math/tanh.c + mbstring/hanzen.c + mbstring/ischira.c + mbstring/iskana.c + mbstring/iskmoji.c + mbstring/iskpun.c + mbstring/islead.c + mbstring/islwr.c + mbstring/ismbal.c + mbstring/ismbaln.c + mbstring/ismbc.c + mbstring/ismbgra.c + mbstring/ismbkaln.c + mbstring/ismblead.c + mbstring/ismbpri.c + mbstring/ismbpun.c + mbstring/ismbtrl.c + mbstring/isuppr.c + mbstring/jistojms.c + mbstring/jmstojis.c + mbstring/mbbtype.c + mbstring/mbccpy.c + mbstring/mbclen.c + mbstring/mbscat.c + mbstring/mbschr.c + mbstring/mbscmp.c + mbstring/mbscoll.c + mbstring/mbscpy.c + mbstring/mbscspn.c + mbstring/mbsdec.c + mbstring/mbsdup.c + mbstring/mbsicmp.c + mbstring/mbsicoll.c + mbstring/mbsinc.c + mbstring/mbslen.c + mbstring/mbslwr.c + mbstring/mbsncat.c + mbstring/mbsnccnt.c + mbstring/mbsncmp.c + mbstring/mbsncoll.c + mbstring/mbsncpy.c + mbstring/mbsnextc.c + mbstring/mbsnicmp.c + mbstring/mbsnicoll.c + mbstring/mbsninc.c + mbstring/mbsnset.c + mbstring/mbspbrk.c + mbstring/mbsrchr.c + mbstring/mbsrev.c + mbstring/mbsset.c + mbstring/mbsspn.c + mbstring/mbsspnp.c + mbstring/mbsstr.c + mbstring/mbstok.c + mbstring/mbstrlen.c + mbstring/mbsupr.c + mem/memcmp.c + mem/memccpy.c + mem/memicmp.c + misc/amsg.c + misc/assert.c + misc/environ.c + misc/getargs.c + misc/i10output.c + misc/initterm.c + misc/lock.c + misc/purecall.c + misc/stubs.c + misc/tls.c + printf/_cprintf.c + printf/_snprintf.c + printf/_snwprintf.c + printf/_vcprintf.c + printf/_vsnprintf.c + printf/_vsnwprintf.c + printf/fprintf.c + printf/fwprintf.c + printf/printf.c + printf/sprintf.c + printf/streamout.c + printf/swprintf.c + printf/vfprintf.c + printf/vfwprintf.c + printf/vprintf.c + printf/vsprintf.c + printf/vswprintf.c + printf/vwprintf.c + printf/wprintf.c + printf/wstreamout.c + process/_cwait.c + process/_system.c + process/dll.c + process/process.c + process/procid.c + process/thread.c + process/threadid.c + process/threadx.c + process/wprocess.c + search/bsearch.c + search/lfind.c + search/lsearch.c + signal/signal.c + signal/xcptinfo.c + stdio/_flsbuf.c + stdio/_flswbuf.c + stdio/access.c + stdio/file.c + stdio/find.c + stdio/find64.c + stdio/findi64.c + stdio/fmode.c + stdio/lock_file.c + stdio/perror.c + stdio/popen.c + stdio/stat.c + stdio/stat64.c + stdio/waccess.c + stdio/wfind.c + stdio/wfind64.c + stdio/wfindi64.c + stdio/wpopen.c + stdio/wstat.c + stdio/wstat64.c + stdlib/_exit.c + stdlib/abort.c + stdlib/atexit.c + stdlib/ecvt.c + stdlib/errno.c + stdlib/fcvt.c + stdlib/fcvtbuf.c + stdlib/fullpath.c + stdlib/gcvt.c + stdlib/getenv.c + stdlib/makepath.c + stdlib/makepath_s.c + stdlib/mbtowc.c + stdlib/mbstowcs.c + stdlib/obsol.c + stdlib/putenv.c + stdlib/qsort.c + stdlib/rot.c + stdlib/senv.c + stdlib/swab.c + stdlib/wfulpath.c + stdlib/wputenv.c + stdlib/wsenv.c + stdlib/wmakpath.c + stdlib/wmakpath_s.c + string/atof.c + string/atoi.c + string/atoi64.c + string/atol.c + string/ctype.c + string/itoa.c + string/itow.c + string/lasttok.c + string/scanf.c + string/splitp.c + string/strcoll.c + string/strcspn.c + string/strdup.c + string/strerror.c + string/stricmp.c + string/string.c + string/strlwr.c + string/strncoll.c + string/strnicmp.c + string/strpbrk.c + string/strrev.c + string/strset.c + string/strspn.c + string/strstr.c + string/strtod.c + string/strtoi64.c + string/strtok.c + string/strtol.c + string/strtoul.c + string/strtoull.c + string/strupr.c + string/strxfrm.c + string/wcs.c + string/wcstol.c + string/wcstoul.c + string/wsplitp.c + string/wtoi.c + string/wtoi64.c + string/wtol.c + sys_stat/systime.c + time/asctime.c + time/clock.c + time/ctime32.c + time/ctime64.c + time/ctime.c + time/difftime32.c + time/difftime64.c + time/difftime.c + time/ftime32.c + time/ftime64.c + time/ftime.c + time/futime32.c + time/futime64.c + time/futime.c + time/gmtime.c + time/localtime32.c + time/localtime64.c + time/localtime.c + time/mktime.c + time/strdate.c + time/strftime.c + time/strtime.c + time/time32.c + time/time64.c + time/time.c + time/timezone.c + time/tzname.c + time/utime32.c + time/utime64.c + time/utime.c + time/wasctime.c + time/wcsftime.c + time/wctime32.c + time/wctime64.c + time/wctime.c + time/wstrdate.c + time/wstrtime.c + time/wutime32.c + time/wutime64.c + time/wutime.c + wstring/wcscoll.c + wstring/wcscspn.c + wstring/wcsicmp.c + wstring/wcslwr.c + wstring/wcsnicmp.c + wstring/wcsspn.c + wstring/wcsstr.c + wstring/wcstok.c + wstring/wcsupr.c + wstring/wcsxfrm.c + wstring/wlasttok.c + wine/heap.c + wine/undname.c) + +if(ARCH MATCHES i386) + list(APPEND CRT_SOURCE + except/i386/chkstk_asm.s + except/i386/prolog.s + except/i386/seh.s + except/i386/seh_prolog.s + except/i386/unwind.c + float/i386/clearfp.c + float/i386/cntrlfp.c + float/i386/fpreset.c + float/i386/logb.c + float/i386/statfp.c + setjmp/i386/setjmp.s) +elseif(ARCH MATCHES amd64) + list(APPEND CRT_SOURCE + except/amd64/chkstk_asm.s + except/amd64/seh.s + float/i386/clearfp.c + float/i386/cntrlfp.c + float/i386/fpreset.c + float/i386/logb.c + float/i386/statfp.c + setjmp/amd64/setjmp.s) +endif() + +if(ARCH MATCHES i386) + list(APPEND CRT_SOURCE + math/i386/alldiv_asm.s + math/i386/alldvrm_asm.s + math/i386/allmul_asm.s + math/i386/allrem_asm.s + math/i386/allshl_asm.s + math/i386/allshr_asm.s + math/i386/atan_asm.s + math/i386/aulldiv_asm.s + math/i386/aulldvrm_asm.s + math/i386/aullrem_asm.s + math/i386/aullshr_asm.s + math/i386/ceil_asm.s + math/i386/ceilf.S + math/i386/cos_asm.s + math/i386/fabs_asm.s + math/i386/floor_asm.s + math/i386/floorf.S + math/i386/ftol_asm.s + math/i386/ftol2_asm.s + math/i386/log_asm.s + math/i386/log10_asm.s + math/i386/pow_asm.s + math/i386/sin_asm.s + math/i386/sqrt_asm.s + math/i386/tan_asm.s + math/i386/atan2_asm.s + math/i386/ci.c + math/i386/exp_asm.s + math/i386/fmod_asm.s + math/i386/fmodf_asm.s + math/i386/ldexp.c + mem/i386/memchr_asm.s + mem/i386/memmove_asm.s + mem/i386/memset_asm.s + misc/i386/readcr4.S + string/i386/strcat_asm.s + string/i386/strchr_asm.s + string/i386/strcmp_asm.s + string/i386/strcpy_asm.s + string/i386/strlen_asm.s + string/i386/strncat_asm.s + string/i386/strncmp_asm.s + string/i386/strncpy_asm.s + string/i386/strnlen_asm.s + string/i386/strrchr_asm.s + string/i386/wcscat_asm.s + string/i386/wcschr_asm.s + string/i386/wcscmp_asm.s + string/i386/wcscpy_asm.s + string/i386/wcslen_asm.s + string/i386/wcsncat_asm.s + string/i386/wcsncmp_asm.s + string/i386/wcsncpy_asm.s + string/i386/wcsnlen_asm.s + string/i386/wcsrchr_asm.s) +else() + list(APPEND CRT_SOURCE + math/stubs.c + mem/memchr.c + mem/memcpy.c + mem/memmove.c + mem/memset.c + string/strcat.c + string/strchr.c + string/strcmp.c + string/strcpy.c + string/strlen.c + string/strncat.c + string/strncmp.c + string/strncpy.c + string/strnlen.c + string/strrchr.c + string/wcscat.c + string/wcschr.c + string/wcscmp.c + string/wcscpy.c + string/wcslen.c + string/wcsncat.c + string/wcsncmp.c + string/wcsncpy.c + string/wcsnlen.c + string/wcsrchr.c) +endif() + +if(ARCH MATCHES amd64) + list(APPEND CRT_SOURCE + math/cos.c + math/sin.c + math/amd64/alldiv.S + math/amd64/atan.S + math/amd64/atan2.S + math/amd64/ceil.S + math/amd64/ceilf.S + math/amd64/exp.S + math/amd64/fabs.S + math/amd64/floor.S + math/amd64/floorf.S + math/amd64/fmod.S + math/amd64/fmodf.S + math/amd64/ldexp.S + math/amd64/log.S + math/amd64/log10.S + math/amd64/pow.S + math/amd64/sqrt.S + math/amd64/sqrtf.S + math/amd64/tan.S) +endif() + +add_library(crt ${CMAKE_CURRENT_BINARY_DIR}/crt_precomp.h.gch ${CRT_SOURCE}) + +set_property(TARGET crt PROPERTY COMPILE_DEFINITIONS __MINGW_IMPORT=extern USE_MSVCRT_PREFIX _MSVCRT_LIB_ _MSVCRT_ _MT) +add_pch(crt ${CMAKE_CURRENT_SOURCE_DIR}/precomp.h ${CRT_SOURCE}) +add_dependencies(crt psdk asm) + +list(APPEND LIBCNTPR_SOURCE + float/isnan.c + math/abs.c + math/div.c + math/labs.c + math/rand_nt.c + mbstring/mbstrlen.c + mem/memccpy.c + mem/memcmp.c + mem/memicmp.c + printf/_snprintf.c + printf/_snwprintf.c + printf/_vcprintf.c + printf/_vsnprintf.c + printf/_vsnwprintf.c + printf/sprintf.c + printf/streamout.c + printf/swprintf.c + printf/vprintf.c + printf/vsprintf.c + printf/vswprintf.c + printf/wstreamout.c + search/bsearch.c + search/lfind.c + stdlib/qsort.c + string/ctype.c + string/scanf.c + string/strcspn.c + string/stricmp.c + string/strnicmp.c + string/strlwr.c + string/strrev.c + string/strset.c + string/strstr.c + string/strupr.c + string/strpbrk.c + string/strspn.c + string/atoi64.c + string/atoi.c + string/atol.c + string/itoa.c + string/itow.c + string/mbstowcs_nt.c + string/splitp.c + string/strtol.c + string/strtoul.c + string/strtoull.c + string/wcs.c + string/wcstol.c + string/wcstombs_nt.c + string/wcstoul.c + string/wsplitp.c + string/wtoi64.c + string/wtoi.c + string/wtol.c + wstring/wcsicmp.c + wstring/wcslwr.c + wstring/wcsnicmp.c + wstring/wcsupr.c + wstring/wcscspn.c + wstring/wcsspn.c + wstring/wcsstr.c) + +if(ARCH MATCHES i386) + list(APPEND LIBCNTPR_SOURCE + except/i386/chkstk_asm.s + except/i386/seh.s + except/i386/seh_prolog.s + setjmp/i386/setjmp.s + math/i386/alldiv_asm.s + math/i386/alldvrm_asm.s + math/i386/allmul_asm.s + math/i386/allrem_asm.s + math/i386/allshl_asm.s + math/i386/allshr_asm.s + math/i386/atan_asm.s + math/i386/aulldiv_asm.s + math/i386/aulldvrm_asm.s + math/i386/aullrem_asm.s + math/i386/aullshr_asm.s + math/i386/ceil_asm.s + math/i386/cos_asm.s + math/i386/fabs_asm.s + math/i386/floor_asm.s + math/i386/ftol_asm.s + math/i386/ftol2_asm.s + math/i386/log_asm.s + math/i386/log10_asm.s + math/i386/pow_asm.s + math/i386/sin_asm.s + math/i386/sqrt_asm.s + math/i386/tan_asm.s + math/i386/ci.c + misc/i386/readcr4.S) +elseif(ARCH MATCHES amd64) + list(APPEND LIBCNTPR_SOURCE + except/amd64/chkstk_asm.s + except/amd64/seh.s + setjmp/amd64/setjmp.s + math/cos.c + math/sin.c + math/amd64/alldiv.S + math/amd64/atan.S + math/amd64/atan2.S + math/amd64/ceil.S + math/amd64/exp.S + math/amd64/fabs.S + math/amd64/floor.S + math/amd64/fmod.S + math/amd64/ldexp.S + math/amd64/log.S + math/amd64/log10.S + math/amd64/pow.S + math/amd64/sqrt.S + math/amd64/tan.S) +endif() + +if(ARCH MATCHES i386) + list(APPEND LIBCNTPR_SOURCE + mem/i386/memchr_asm.s + mem/i386/memmove_asm.s + mem/i386/memset_asm.s + string/i386/strcat_asm.s + string/i386/strchr_asm.s + string/i386/strcmp_asm.s + string/i386/strcpy_asm.s + string/i386/strlen_asm.s + string/i386/strncat_asm.s + string/i386/strncmp_asm.s + string/i386/strncpy_asm.s + string/i386/strnlen_asm.s + string/i386/strrchr_asm.s + string/i386/wcscat_asm.s + string/i386/wcschr_asm.s + string/i386/wcscmp_asm.s + string/i386/wcscpy_asm.s + string/i386/wcslen_asm.s + string/i386/wcsncat_asm.s + string/i386/wcsncmp_asm.s + string/i386/wcsncpy_asm.s + string/i386/wcsnlen_asm.s + string/i386/wcsrchr_asm.s) +else() + list(APPEND LIBCNTPR_SOURCE + mem/memchr.c + mem/memcpy.c + mem/memmove.c + mem/memset.c + string/strcat.c + string/strchr.c + string/strcmp.c + string/strcpy.c + string/strlen.c + string/strncat.c + string/strncmp.c + string/strncpy.c + string/strnlen.c + string/strrchr.c + string/wcscat.c + string/wcschr.c + string/wcscmp.c + string/wcscpy.c + string/wcslen.c + string/wcsncat.c + string/wcsncmp.c + string/wcsncpy.c + string/wcsnlen.c + string/wcsrchr.c) +endif() + +add_library(libcntpr ${LIBCNTPR_SOURCE}) +set_property(TARGET libcntpr PROPERTY COMPILE_DEFINITIONS NO_RTL_INLINES _NTSYSTEM_ _NTDLLBUILD_ _LIBCNT_ __CRT__NO_INLINE) +add_dependencies(libcntpr psdk asm) + +if(MSVC) +# This is a temporary solution until we have proper crt libs + list(APPEND MSVCSUP_SOURCE + misc/fltused.c + except/i386/chkstk_asm.s + math/i386/ci.c + math/i386/ftol2_asm.S) + + add_library(msvcsup ${MSVCSUP_SOURCE}) + add_dependencies(msvcsup psdk asm) +endif() + +add_library(user32_wsprintf + printf/streamout.c + printf/wstreamout.c + printf/wsprintfA.c + printf/wsprintfW.c + printf/wvsprintfA.c + printf/wvsprintfW.c + printf/wvsnprintfA.c + printf/wvsnprintfW.c + string/mbstowcs_nt.c + string/wcstombs_nt.c) + +set_property(TARGET user32_wsprintf PROPERTY COMPILE_DEFINITIONS _USER32_WSPRINTF) diff --git a/reactos/lib/sdk/crt/except/i386/seh_prolog.s b/reactos/lib/sdk/crt/except/i386/seh_prolog.s new file mode 100644 index 00000000000..98b45baf97b --- /dev/null +++ b/reactos/lib/sdk/crt/except/i386/seh_prolog.s @@ -0,0 +1,152 @@ +/* + * COPYRIGHT: GNU GPL, see COPYING in the top level directory + * PROJECT: ReactOS CRT + * FILE: lib/crt/misc/i386/seh_prolog.S + * PURPOSE: SEH Support for MSVC + * PROGRAMMERS: Timo Kreuzer + */ + +/* INCLUDES ******************************************************************/ + +#include + +EXTERN __except_handler3:PROC + +/* The very first thing a function compiled with MSVC containing SEH + * will do is call __SEH_prolog like this: + * + * push + * push
+ * call __SEH_prolog + * + * When entering the function the stack layout is like this: + * + * esp + 08: OLDFRAME.StackBytes + * esp + 04: OLDFRAME.SEHTable + * esp + 00: OLDFRAME.ReturnAddress + * + * __SEH_prolog will now setup the stack to the following layout: + * + * esp + N + 24: SEH_FRAME.OriginalEbp OLDFRAME.StackBytes + * esp + N + 20: SEH_FRAME.Disable OLDFRAME.SEHTable + * esp + N + 1C: SEH_FRAME.SEHTable OLDFRAME.ReturnAddress + * esp + N + 18: SEH_FRAME.Handler + * esp + N + 14: SEH_FRAME.PreviousRecord + * esp + N + 10: SEH_FRAME.unused + * esp + N + 0c: SEH_FRAME.NewEsp + * + * N bytes local variables + * ... + * esp + 08: SAFE_AREA.Ebx + * esp + 04: SAFE_AREA.Esi + * esp + 00: SAFE_AREA.Edi + * + * all this is documented here (with some minor errors): + * http://reactos-blog.blogspot.com/2009/08/inside-mind-of-reactos-developer.html + */ + +OLDFRAME_ReturnAddress = 0 /* 0x00 */ +OLDFRAME_SEHTable = 4 /* 0x04 */ +OLDFRAME_StackBytes = 8 /* 0x08 */ +OLDFRAME_Size = 12 /* 0x0c */ + +SEH_FRAME_NewEsp = 0 /* 0x00 */ +SEH_FRAME_unused = 4 /* 0x04 */ +SEH_FRAME_PreviousRecord = 8 /* 0x08 */ +SEH_FRAME_Handler = 12 /* 0x0c */ +SEH_FRAME_SEHTable = 16 /* 0x10 */ +SEH_FRAME_Disable = 20 /* 0x14 */ +SEH_FRAME_OriginalEbp = 24 /* 0x18 */ +SEH_FRAME_Size = 28 /* 0x1c */ + +SAFE_AREA_Edi = 0 /* 0x00 */ +SAFE_AREA_Esi = 4 /* 0x04 */ +SAFE_AREA_Ebx = 8 /* 0x08 */ +SAFE_AREA_Size = 12 /* 0x0c */ + + +.code + +PUBLIC __SEH_prolog +__SEH_prolog: + + /* Get the number of stack bytes to reserve */ + mov eax, [esp + OLDFRAME_StackBytes] + + /* Push address of __except_handler3 on the stack */ + push offset __except_handler3 + + /* Push the old exception record on the stack */ + push dword ptr fs:0 + + /* Adjust stack allocation, add size of the stack frame minus 2 pushes */ + add eax, SEH_FRAME_Size + SAFE_AREA_Size - OLDFRAME_Size - 8 + + /* Save old ebp, overwriting OLDFRAME.StackBytes */ + mov [esp + 8 + OLDFRAME_StackBytes], ebp + + /* Load new ebp, pointing to OLDFRAME.StackBytes */ + lea ebp, [esp + 8 + OLDFRAME_StackBytes] + + /* Allocate stack space */ + sub esp, eax + + /* Push the return address on the stack */ + push dword ptr [ebp - OLDFRAME_StackBytes + OLDFRAME_ReturnAddress] + + /* Get address of the SEH table */ + mov eax, [ebp + OLDFRAME_SEHTable] + + /* Save new esp */ + mov [ebp - SEH_FRAME_OriginalEbp + SEH_FRAME_NewEsp], esp + + /* Safe SEH table, overwriting OLDFRAME.ReturnAddress */ + mov [ebp - SEH_FRAME_OriginalEbp + SEH_FRAME_SEHTable], eax + + /* Safe the disable value, overwriting OLDFRAME.SEHTable */ + mov dword ptr [ebp - SEH_FRAME_OriginalEbp + SEH_FRAME_Disable], -1 + + /* Load the address of the new registration record */ + lea eax, [ebp - SEH_FRAME_OriginalEbp + SEH_FRAME_PreviousRecord] + + /* Save registers */ + mov [esp + SAFE_AREA_Edi], edi + mov [esp + SAFE_AREA_Esi], esi + mov [esp + SAFE_AREA_Ebx], ebx + + /* Enqueue the new record */ + mov fs:[0], eax + + /* Return to the caller */ + ret + + +PUBLIC __SEH_epilog +__SEH_epilog: + + /* Restore the previous exception registration record */ + mov ecx, [ebp - SEH_FRAME_OriginalEbp + SEH_FRAME_PreviousRecord] + mov fs:[0], ecx + + /* Restore saved registers */ + mov edi, [esp + 4 + SAFE_AREA_Edi] + mov esi, [esp + 4 + SAFE_AREA_Esi] + mov ebx, [esp + 4 + SAFE_AREA_Ebx] + + /* Get the return address */ + mov ecx, [esp] + + /* Clean up stack */ + mov esp, ebp + + /* Get previous ebp */ + mov ebp, [esp] + + /* Save return address */ + mov [esp], ecx + + /* Return to the caller */ + ret + + +END diff --git a/reactos/lib/sdk/crt/include/internal/wine_msc.h b/reactos/lib/sdk/crt/include/internal/wine_msc.h new file mode 100644 index 00000000000..d7c799a09f2 --- /dev/null +++ b/reactos/lib/sdk/crt/include/internal/wine_msc.h @@ -0,0 +1,50 @@ + +#define DEFINE_THISCALL_WRAPPER(func, args) \ + void __declspec(naked) __thiscall_ ## func (void) \ + { \ + __asm { pop eax } \ + __asm { push ecx } \ + __asm { push eax } \ + __asm { jmp func } \ + } + +exception * __stdcall MSVCRT_exception_ctor(exception * _this, const char ** name); +exception * __stdcall MSVCRT_exception_ctor_noalloc(exception * _this, char ** name, int noalloc); +exception * __stdcall MSVCRT_exception_copy_ctor(exception * _this, const exception * rhs); +exception * __stdcall MSVCRT_exception_default_ctor(exception * _this); +void __stdcall MSVCRT_exception_dtor(exception * _this); +exception * __stdcall MSVCRT_exception_opequals(exception * _this, const exception * rhs); +void * __stdcall MSVCRT_exception_vector_dtor(exception * _this, unsigned int flags); +void * __stdcall MSVCRT_exception_scalar_dtor(exception * _this, unsigned int flags); +const char * __stdcall MSVCRT_what_exception(exception * _this); +bad_typeid * __stdcall MSVCRT_bad_typeid_copy_ctor(bad_typeid * _this, const bad_typeid * rhs); +bad_typeid * __stdcall MSVCRT_bad_typeid_ctor(bad_typeid * _this, const char * name); +bad_typeid * __stdcall MSVCRT_bad_typeid_default_ctor(bad_typeid * _this); +void __stdcall MSVCRT_bad_typeid_dtor(bad_typeid * _this); +bad_typeid * __stdcall MSVCRT_bad_typeid_opequals(bad_typeid * _this, const bad_typeid * rhs); +void * __stdcall MSVCRT_bad_typeid_vector_dtor(bad_typeid * _this, unsigned int flags); +void * __stdcall MSVCRT_bad_typeid_scalar_dtor(bad_typeid * _this, unsigned int flags); +__non_rtti_object * __stdcall MSVCRT___non_rtti_object_copy_ctor(__non_rtti_object * _this, const __non_rtti_object * rhs); +__non_rtti_object * __stdcall MSVCRT___non_rtti_object_ctor(__non_rtti_object * _this, const char * name); +void __stdcall MSVCRT___non_rtti_object_dtor(__non_rtti_object * _this); +__non_rtti_object * __stdcall MSVCRT___non_rtti_object_opequals(__non_rtti_object * _this, const __non_rtti_object *rhs); +void * __stdcall MSVCRT___non_rtti_object_vector_dtor(__non_rtti_object * _this, unsigned int flags); +void * __stdcall MSVCRT___non_rtti_object_scalar_dtor(__non_rtti_object * _this, unsigned int flags); +bad_cast * __stdcall MSVCRT_bad_cast_ctor(bad_cast * _this, const char ** name); +bad_cast * __stdcall MSVCRT_bad_cast_copy_ctor(bad_cast * _this, const bad_cast * rhs); +bad_cast * __stdcall MSVCRT_bad_cast_ctor_charptr(bad_cast * _this, const char * name); +bad_cast * __stdcall MSVCRT_bad_cast_default_ctor(bad_cast * _this); +void __stdcall MSVCRT_bad_cast_dtor(bad_cast * _this); +bad_cast * __stdcall MSVCRT_bad_cast_opequals(bad_cast * _this, const bad_cast * rhs); +void * __stdcall MSVCRT_bad_cast_vector_dtor(bad_cast * _this, unsigned int flags); +void * __stdcall MSVCRT_bad_cast_scalar_dtor(bad_cast * _this, unsigned int flags); +int __stdcall MSVCRT_type_info_opequals_equals(type_info * _this, const type_info * rhs); +int __stdcall MSVCRT_type_info_opnot_equals(type_info * _this, const type_info * rhs); +int __stdcall MSVCRT_type_info_before(type_info * _this, const type_info * rhs); +void __stdcall MSVCRT_type_info_dtor(type_info * _this); +const char * __stdcall MSVCRT_type_info_name(type_info * _this); +const char * __stdcall MSVCRT_type_info_raw_name(type_info * _this); +void * __stdcall MSVCRT_type_info_vector_dtor(type_info * _this, unsigned int flags); + +#define __ASM_VTABLE(name,funcs) +//void *MSVCRT_ ## name ##_vtable[] = diff --git a/reactos/lib/sdk/crt/math/sqrtf.c b/reactos/lib/sdk/crt/math/sqrtf.c new file mode 100644 index 00000000000..054f1ec9f19 --- /dev/null +++ b/reactos/lib/sdk/crt/math/sqrtf.c @@ -0,0 +1,12 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the w64 mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ +#include + +float +_sqrtf(float x) +{ + return ((float)sqrt((double)x)); +} diff --git a/reactos/lib/sdk/crt/misc/fltused.c b/reactos/lib/sdk/crt/misc/fltused.c new file mode 100644 index 00000000000..bf706c69c52 --- /dev/null +++ b/reactos/lib/sdk/crt/misc/fltused.c @@ -0,0 +1,2 @@ + +int _fltused; diff --git a/reactos/lib/sdk/crt/misc/i386/readcr4.S b/reactos/lib/sdk/crt/misc/i386/readcr4.S new file mode 100644 index 00000000000..14975deeb62 --- /dev/null +++ b/reactos/lib/sdk/crt/misc/i386/readcr4.S @@ -0,0 +1,12 @@ + +#include + +.code + +PUBLIC ____readcr4 +____readcr4: + mov eax, cr4 + ret + +END + diff --git a/reactos/lib/sdk/delayimp/CMakeLists.txt b/reactos/lib/sdk/delayimp/CMakeLists.txt new file mode 100644 index 00000000000..4873173dbb0 --- /dev/null +++ b/reactos/lib/sdk/delayimp/CMakeLists.txt @@ -0,0 +1,4 @@ + +add_definitions(-DUNICODE -D_UNICODE) +add_library(delayimp delayimp.c) +add_dependencies(delayimp psdk) \ No newline at end of file diff --git a/reactos/lib/sdk/dxguid/CMakeLists.txt b/reactos/lib/sdk/dxguid/CMakeLists.txt new file mode 100644 index 00000000000..9cbcaecc3c7 --- /dev/null +++ b/reactos/lib/sdk/dxguid/CMakeLists.txt @@ -0,0 +1,2 @@ + +add_library(dxguid dxguid-mingw.c) diff --git a/reactos/lib/sdk/ioevent/CMakeLists.txt b/reactos/lib/sdk/ioevent/CMakeLists.txt new file mode 100644 index 00000000000..2f7d583bc0b --- /dev/null +++ b/reactos/lib/sdk/ioevent/CMakeLists.txt @@ -0,0 +1,2 @@ + +add_library(ioevent ioevent.c) diff --git a/reactos/lib/sdk/nt/CMakeLists.txt b/reactos/lib/sdk/nt/CMakeLists.txt new file mode 100644 index 00000000000..f3c0adf3c8e --- /dev/null +++ b/reactos/lib/sdk/nt/CMakeLists.txt @@ -0,0 +1,3 @@ + +add_library(nt entry_point.c) +add_dependencies(nt psdk) \ No newline at end of file diff --git a/reactos/lib/sdk/scrnsave/CMakeLists.txt b/reactos/lib/sdk/scrnsave/CMakeLists.txt new file mode 100644 index 00000000000..033eab286c2 --- /dev/null +++ b/reactos/lib/sdk/scrnsave/CMakeLists.txt @@ -0,0 +1,4 @@ + +add_definitions(-DUNICODE -D_UNICODE) +add_library(scrnsave scrnsave.c) +add_dependencies(scrnsave psdk) diff --git a/reactos/lib/sdk/strmiids/CMakeLists.txt b/reactos/lib/sdk/strmiids/CMakeLists.txt new file mode 100644 index 00000000000..e40f871d0ba --- /dev/null +++ b/reactos/lib/sdk/strmiids/CMakeLists.txt @@ -0,0 +1,2 @@ + +add_library(strmiids strmiids.c) diff --git a/reactos/lib/sdk/uuid/CMakeLists.txt b/reactos/lib/sdk/uuid/CMakeLists.txt new file mode 100644 index 00000000000..ed842a4f3e4 --- /dev/null +++ b/reactos/lib/sdk/uuid/CMakeLists.txt @@ -0,0 +1,217 @@ + +add_definitions(-D_MIDL_USE_GUIDDEF_) + +list(APPEND IDL_SOURCES +# These are the ones that MS uuid contains: +# activaut.idl + activdbg.idl + activscp.idl +# alg.idl +# autodiscovery.idl +# bidispl.idl +# bidisplp.idl +# bthguid +# callobj.idl +# cguid.idl +# chanmgr.idl +# ciintf.idl +# cladmwiz.idl +# cluadmex.idl +# cluscfgserver.idl +# cluscfgwizard.idl + comcat.idl + commoncontrols.idl +# confpriv.idl +# ctffunc.idl +# ctfbui.idl +# ctfspui.idl +# ctfutb.idl + ctxtcall.idl +# cxq_cust.idl +# dbgprop.idl + dimm.idl + dispex.idl +# dlmgridl.idl + docobj.idl +# dwnnot.idl +# dxtmsft.idl +# dxtrans.idl +# dxtransp.idl +# emptyvc.idl + exdisp.idl +# filter.idl +# filtntfy.idl +# fsciclnt.idl +# h323priv.idl + hlink.idl +# hnetbcon.idl +# hnetcfg.idl +# htiface.idl + htiframe.idl +# htmlfilter.idl +# httprequest.idl +# iaccess.idl +# iaspolcy.idl +# iedial.idl +# iextag.idl +# imapi.idl +# imguitil.idl +# immact.idl +# indexsrc.idl +# inputscope.idl +# interned.idl +# ipmsp.idl +# mdhcp.idl + mimeinfo.idl + mlang.idl +# mobsync.idl +# mobsyncp.idl +# mparser.idl + msctf.idl +# msdaosp.idl + mshtmhst.idl + mshtml.idl +# msp.idl +# mstime.idl + msxml.idl +# my_msdatsrc.idl +# natupnp.idl +# netcfgn.idl +# netcfgp.idl +# netcfgx.idl + netcon.idl +# netconp.idl +# netfwv6.idl +# netfwv6clsid +# netmon.idl +# netprov.idl + oaidl.idl + objidl.idl + objsafe.idl + ocidl.idl + ocmm.idl + oleacc.idl +# oleext.idl + oleidl.idl +# opsprof.idl + optary.idl +# pbagex.idl + perhist.idl +# prgsnk.idl + propidl.idl +# query.idl +# ratingsp.idl +# recalc.idl +# rend.idl +# rtccore.idl +# safeocx.idl +# sdoias.idl +# sdpblb.idl + sensevts.idl + servprov.idl +# shappmgr.idl +# shgina.idl +# shimgdata.idl + shldisp.idl + shobjidl.idl +# sifmt.idl +# simpdata.idl +# softkbd.idl +# storext.idl +# subsmgr.idl +# syncmgr.idl +# sysmgmt.idl +# tapi3.idl +# tapi3if.idl +# termmgr.idl + textstor.idl +# tlog.idl +# tlogstg.idl +# trkadm.idl +# trkcom.idl + unknwn.idl +# upnp.idl +# upnphost.idl +# upnpp.idl + urlhist.idl + urlmon.idl +# urltrack.idl +# vervec.idl +# vrsscan.idl +# webcheck.idl +# xenroll.idl +# xmlparser.idl +# xmlprov.idl + +# These are others that reactos provides: + asptlb.idl + bdaiface.idl + bits.idl + bits1_5.idl + control.idl + downloadmgr.idl + fusion.idl + iads.idl + imnact.idl + imnxport.idl + indexsrv.idl + mimeole.idl + mscoree.idl + msdadc.idl + mstask.idl + netfw.idl + oledb.idl + propsys.idl + pstore.idl + richole.idl + strmif.idl + tom.idl + tuner.idl + vmr9.idl + wia_xp.idl + xmldom.idl + xmldso.idl + ctfutb.idl + xmllite.idl) + +if(NOT MSVC) + list(APPEND IDL_SOURCES + wbemcli.idl + wincodec.idl + wuapi.idl) +endif() + +foreach(IDL_FILE ${IDL_SOURCES}) + get_filename_component(NAME ${IDL_FILE} NAME_WE) + generate_idl_iids(${CMAKE_SOURCE_DIR}/include/psdk/${IDL_FILE}) + list(APPEND SOURCE ${NAME}_i.c) +endforeach() + +list(APPEND SOURCE + cguid_i.c +# bthguid.c +# cluscfgguids.c + cmdtreeiid.c +# ctffunc_g.c +# ctfspui_g.c +# hnclsid.c + ieguids.c +# iid.c +# msctf_g.c +# ncclsid.c +# ndisguid.c + netfwv6clsid.c +# oledbdat.c +# oledbdepiid.c +# oledbiid.c +# oledbnewiid.c +# qosguid.c + shguids.c +# tapi3iid.c +# vcguids.c + wdmguids.c + otherguids.c + undoc.c) + +add_library(uuid ${SOURCE}) +add_dependencies(uuid psdk) diff --git a/reactos/lib/sdk/uuid/bthguid.c b/reactos/lib/sdk/uuid/bthguid.c new file mode 100644 index 00000000000..919182ba017 --- /dev/null +++ b/reactos/lib/sdk/uuid/bthguid.c @@ -0,0 +1,85 @@ + +#include + + +//GenericTelephonyServiceClass_UUID +//GenericAudioServiceClass_UUID +//GenericFileTransferServiceClass_UUID +//GenericNetworkingServiceClass_UUID +//PnPInformationServiceClass_UUID +//AudioVideoServiceClass_UUID +//UDITAServiceClass_UUID +//UDIMTServiceClass_UUID +//VideoConferencingGWServiceClass_UUID +//CommonISDNAccessServiceClass_UUID +//HCRScanServiceClass_UUID +//HCRPrintServiceClass_UUID +//HardcopyCableReplacementServiceClass_UUID +//HumanInterfaceDeviceServiceClass_UUID +//PrintingStatusServiceClass_UUID +//BasicPringingServiceClass_UUID +//ReflectedUIServiceClass_UUID +//DirectPrintingReferenceObjectsServiceClass_UUID +//HandsfreeAudioGatewayServiceClass_UUID +//HandsfreeServiceClass_UUID +//ImagingReferenceObjectsServiceClass_UUID +//ImagingAutomaticArchiveServiceClass_UUID +//ImagingResponderServiceClass_UUID +//ImagingServiceClass_UUID +//ReferencePrintingServiceClass_UUID +//DirectPrintingServiceClass_UUID +//GNServiceClass_UUID +//NAPServiceClass_UUID +//PANUServiceClass_UUID +//WAPClientServiceClass_UUID +//WAPServiceClass_UUID +//HeadsetAudioGatewayServiceClass_UUID +//FaxServiceClass_UUID +//IntercomServiceClass_UUID +//VideoConferencingServiceClass_UUID +//AVRemoteControlServiceClass_UUID +//AdvancedAudioDistributionServiceClass_UUID +//AVRemoteControlTargetServiceClass_UUID +//AudioSinkServiceClass_UUID +//AudioSourceServiceClass_UUID +//CordlessTelephonyServiceClass_UUID +//HeadsetServiceClass_UUID +//IrMCSyncCommandServiceClass_UUID +//OBEXFileTransferServiceClass_UUID +//OBEXObjectPushServiceClass_UUID +//IrMCSyncServiceClass_UUID +//DialupNetworkingServiceClass_UUID +//LANAccessUsingPPPServiceClass_UUID +//SerialPortServiceClass_UUID +//PublicBrowseGroupServiceClass_UUID +//BrowseGroupDescriptorServiceClassID_UUID +//ServiceDiscoveryServerServiceClassID_UUID +//L2CAP_PROTOCOL_UUID +//UDI_C_PLANE_PROTOCOL_UUID +//CMPT_PROTOCOL_UUID +//AVDTP_PROTOCOL_UUID +//AVCTP_PROTOCOL_UUID +//HN_PROTOCOL_UUID +//HCDC_PROTOCOL_UUID +//HCCC_PROTOCOL_UUID +//HID_PROTOCOL_UUID +//UPNP_PROTOCOL_UUID +//BNEP_PROTOCOL_UUID +//WSP_PROTOCOL_UUID +//HTTP_PROTOCOL_UUID +//FTP_PROTOCOL_UUID +//IP_PROTOCOL_UUID +//OBEX_PROTOCOL_UUID +//TCSAT_PROTOCOL_UUID +//TCSBIN_PROTOCOL_UUID +//TCP_PROTOCOL_UUID +//RFCOMM_PROTOCOL_UUID +//UDP_PROTOCOL_UUID +//SDP_PROTOCOL_UUID +//Bluetooth_Base_UUID +//GUID_BLUETOOTH_HCI_EVENT +//GUID_BLUETOOTH_L2CAP_EVENT +//GUID_BLUETOOTH_PIN_REQUEST +//GUID_BLUETOOTH_RADIO_OUT_OF_RANGE +//GUID_BLUETOOTH_RADIO_IN_RANGE +//GUID_BTHPORT_DEVICE_INTERFACE diff --git a/reactos/lib/sdk/uuid/cguid_i.c b/reactos/lib/sdk/uuid/cguid_i.c new file mode 100644 index 00000000000..29538d473c0 --- /dev/null +++ b/reactos/lib/sdk/uuid/cguid_i.c @@ -0,0 +1,86 @@ + +#ifndef INITGUID +#define INITGUID +#include +#undef INITGUID +#else +#include +#endif + +DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0); +extern const IID IID_IRpcChannel; +extern const IID IID_IRpcStub; +extern const IID IID_IStubManager; +extern const IID IID_IRpcProxy; +DEFINE_GUID(IID_IProxyManager, 0x00000008,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +extern const IID IID_IPSFactory; +extern const IID IID_IInternalMoniker; +extern const IID IID_IDfReserved1; +extern const IID IID_IDfReserved2; +extern const IID IID_IDfReserved3; +DEFINE_GUID(CLSID_StdMarshal, 0x00000017,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +extern const CLSID CLSID_AggStdMarshal; +extern const CLSID CLSID_StdAsyncActManager; +extern const IID IID_IStub; +extern const IID IID_IProxy; +extern const IID IID_IEnumGeneric; +extern const IID IID_IEnumHolder; +extern const IID IID_IEnumCallback; +extern const IID IID_IOleManager; +extern const IID IID_IOlePresObj; +extern const IID IID_IDebug; +extern const IID IID_IDebugStream; +DEFINE_GUID(CLSID_PSGenObject, 0x0000030c,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_PSClientSite, 0x0000030d,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_PSClassObject, 0x0000030e,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_PSInPlaceActive, 0x0000030f,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_PSInPlaceFrame, 0x00000310,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_PSDragDrop, 0x00000311,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_PSBindCtx, 0x00000312,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_PSEnumerators, 0x00000313,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_StaticMetafile, 0x00000315,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_StaticDib, 0x00000316,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_IdentityUnmarshal, 0x0000001b,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_InProcFreeMarshaler, 0x0000033a,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_Picture_Metafile, 0x00000315,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_Picture_EnhMetafile, 0x00000319,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_Picture_Dib, 0x00000316,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +extern const CLSID CID_CDfsVolume; +DEFINE_GUID(CLSID_DCOMAccessControl, 0x0000031d,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_StdGlobalInterfaceTable,0x00000323,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_ComBinding, 0x00000328,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_StdEvent, 0x0000032b,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_ManualResetEvent, 0x0000032c,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_SynchronizeContainer, 0x0000032d,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +extern const CLSID CLSID_CCDFormKrnl; +extern const CLSID CLSID_CCDPropertyPage; +extern const CLSID CLSID_CCDFormDialog; +extern const CLSID CLSID_CCDCommandButton; +extern const CLSID CLSID_CCDComboBox; +extern const CLSID CLSID_CCDTextBox; +extern const CLSID CLSID_CCDCheckBox; +extern const CLSID CLSID_CCDLabel; +extern const CLSID CLSID_CCDOptionButton; +extern const CLSID CLSID_CCDListBox; +extern const CLSID CLSID_CCDScrollBar; +extern const CLSID CLSID_CCDGroupBox; +extern const CLSID CLSID_CCDGeneralPropertyPage; +extern const CLSID CLSID_CCDGenericPropertyPage; +extern const CLSID CLSID_CCDFontPropertyPage; +extern const CLSID CLSID_CCDColorPropertyPage; +extern const CLSID CLSID_CCDLabelPropertyPage; +extern const CLSID CLSID_CCDCheckBoxPropertyPage; +extern const CLSID CLSID_CCDTextBoxPropertyPage; +extern const CLSID CLSID_CCDOptionButtonPropertyPage; +extern const CLSID CLSID_CCDListBoxPropertyPage; +extern const CLSID CLSID_CCDCommandButtonPropertyPage; +extern const CLSID CLSID_CCDComboBoxPropertyPage; +extern const CLSID CLSID_CCDScrollBarPropertyPage; +extern const CLSID CLSID_CCDGroupBoxPropertyPage; +extern const CLSID CLSID_CCDXObjectPropertyPage; +extern const CLSID CLSID_CStdPropertyFrame; +extern const CLSID CLSID_CFormPropertyPage; +extern const CLSID CLSID_CGridPropertyPage; +extern const CLSID CLSID_CWSJArticlePage; +extern const CLSID CLSID_CSystemPage; +extern const GUID GUID_TRISTATE; diff --git a/reactos/lib/sdk/uuid/cluscfgguids.c b/reactos/lib/sdk/uuid/cluscfgguids.c new file mode 100644 index 00000000000..3215ea664af --- /dev/null +++ b/reactos/lib/sdk/uuid/cluscfgguids.c @@ -0,0 +1,47 @@ + +#include + +//RESCLASSTYPE_NetworkName +//RESCLASSTYPE_IPAddress +//RESCLASSTYPE_CoreNetworkName +//RESCLASSTYPE_CoreIPAddress +//RESCLASSTYPE_QuorumResource +//RESCLASSTYPE_StorageDevice +//RESTYPE_ClusterQuorum +//RESTYPE_ClusterIPAddress +//RESTYPE_ClusterNetName +//RESTYPE_WINSService +//RESTYPE_PrintSpooler +//RESTYPE_FileShare +//RESTYPE_DTC +//RESTYPE_DHCPService +//RESTYPE_GenericService +//RESTYPE_GenericScript +//RESTYPE_GenericApplication +//RESTYPE_NetworkName +//RESTYPE_IPAddress +//RESTYPE_MajorityNodeSet +//RESTYPE_LocalQuorum +//RESTYPE_PhysicalDisk +//TASKID_Major_Update_Progress +//TASKID_Major_Gather_Networks +//TASKID_Major_Gather_Resources +//TASKID_Major_Client_And_Server_Log +//TASKID_Major_Server_Log +//TASKID_Major_Client_Log +//TASKID_Major_Configure_Resources +//TASKID_Major_Configure_Cluster_Services +//TASKID_Major_Configure_Resource_Types +//TASKID_Major_Reanalyze +//TASKID_Major_Check_Cluster_Feasibility +//TASKID_Major_Find_Devices +//TASKID_Major_Check_Node_Feasibility +//TASKID_Major_Establish_Connection +//TASKID_Major_Checking_For_Existing_Cluster +//CLSID_ClusCfgResTypeServices +//CATID_ClusCfgEvictListeners +//CATID_ClusCfgStartupListeners +//CATID_ClusCfgMemberSetChangeListeners +//CATID_ClusCfgResourceTypes +//CATID_EnumClusCfgManagedResources +//CATID_ClusCfgCapabilities diff --git a/reactos/lib/sdk/uuid/cmdtreeiid.c b/reactos/lib/sdk/uuid/cmdtreeiid.c new file mode 100644 index 00000000000..285a7e970ea --- /dev/null +++ b/reactos/lib/sdk/uuid/cmdtreeiid.c @@ -0,0 +1,5 @@ + +#include + +DEFINE_GUID(IID_ICommandTree, 0x0C733A87,0x2A1C,0x11CE,0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D); +DEFINE_GUID(IID_IQuery, 0x0C733A51,0x2A1C,0x11CE,0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D); diff --git a/reactos/lib/sdk/uuid/hnclsid.c b/reactos/lib/sdk/uuid/hnclsid.c new file mode 100644 index 00000000000..da3f20d00cb --- /dev/null +++ b/reactos/lib/sdk/uuid/hnclsid.c @@ -0,0 +1,12 @@ + +#include + +//CLSID_SharingConfiguration +//CLSID_SharingApplicationDefinition +//CLSID_SharingManagerEnumPortMapping +//CLSID_SharingManagerEnumApplicationDefinition +//CLSID_SharingManagerEnumPrivateConnection +//CLSID_SharingManagerEnumPublicConnection +//CLSID_HomeNetAutoConfigService +//CLSID_InternetConnectionBeaconService +//CLSID_HNetCfgMgr diff --git a/reactos/lib/sdk/uuid/ieguids.c b/reactos/lib/sdk/uuid/ieguids.c new file mode 100644 index 00000000000..6c685c0e17c --- /dev/null +++ b/reactos/lib/sdk/uuid/ieguids.c @@ -0,0 +1,241 @@ + + +#include + +DEFINE_GUID(CLSID_HTMLLoadOptions, 0x18845040, 0x0FA5, 0x11D1, 0xBA,0x19, 0x00,0xC0,0x4F,0xD9,0x12,0xD0); +DEFINE_GUID(CGID_MSHTML, 0xde4ba900,0x59ca,0x11cf,0x95,0x92,0x44,0x45,0x53,0x54,0x00,0x00); +DEFINE_GUID(CATID_SafeForScripting, 0x7dd95801,0x9882,0x11cf,0x9f,0xa9,0x00,0xaa,0x00,0x6c,0x42,0xc4); +DEFINE_GUID(CLSID_StdComponentCategoriesMgr, 0x0002e005, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); +DEFINE_GUID(IID_IBindStatusCallbackHolder,0x79eac9cc,0xbaf9,0x11ce,0x8c,0x82,0x00,0xaa,0x00,0x4b,0xa9,0x0b); +DEFINE_GUID(CLSID_StdHlink, 0x79eac9d0, 0xbaf9, 0x11ce, 0x8c, 0x82, 0x00, 0xaa,0x00,0x4b,0xa9,0x0b); +DEFINE_GUID(CLSID_StdHlinkBrowseContext, 0x79eac9d1, 0xbaf9, 0x11ce, 0x8c, 0x82, 0x00, 0xaa,0x00,0x4b,0xa9,0x0b); + +//SID_SVersionHost +//CGID_InternetExplorer +//CGID_DownloadHost +//CLSID_SubscriptionThrottler +//CLSID_PersistentZoneIdentifier +//GUID_CUSTOM_LOCALMACHINEZONEUNLOCKED +//CLSID_InternetZoneManager +//CLSID_InternetSecurityManager +//CLSID_IActiveXSafetyProvider +//CLSID_SoftDistExt +//NAMEDTIMER_DRAW +//IID_IIntDitherer +//CLSID_IntDitherer +//BFID_GRAY_16 +//BFID_GRAY_8 +//BFID_RGBA_32 +//BFID_RGB_32 +//BFID_RGB_24 +//BFID_RGB_565 +//BFID_RGB_555 +//BFID_RGB_8 +//BFID_RGB_4 +//BFID_MONOCHROME +//SID_SHTMLEditServices +//CGID_DocHostCommandHandler +//CLSID_HTMLPluginDocument +//CLSID_HTMLApplication +//CLSID_HTADocument +//CLSID_MHTMLDocument +//CLSID_IImageDecodeFilter +//IID_IImgCtx +//CLSID_IImgCtx +//CATID_DesignTimeUIActivatableControl +//CATID_SafeForInitializing +//CATID_InternetAware +//CATID_PersistsToPropertyBag +//CATID_PersistsToFile +//CATID_PersistsToMemory +//CATID_PersistsToStream +//CATID_PersistsToStreamInit +//CATID_PersistsToStorage +//CATID_PersistsToMoniker +//CATID_RequiresDataPathHost +//CATID_Printable +//CATID_DocObject +//CATID_NeverShowExt +//CATID_IsShortcut +//CATID_Programmable +//CATID_Control +//CATID_Insertable +//ARRAYID_PathProperties +//FLAGID_Internet +//OLE_DATAPATH_PENDATA +//OLE_DATAPATH_PALETTE +//OLE_DATAPATH_BIFF +//OLE_DATAPATH_SYLK +//OLE_DATAPATH_DIF +//OLE_DATAPATH_ALLTEXT +//OLE_DATAPATH_POSTSCRIPT +//OLE_DATAPATH_HTML +//OLE_DATAPATH_RTF +//OLE_DATAPATH_UNICODE +//OLE_DATAPATH_ANSITEXT +//OLE_DATAPATH_ALLMM +//OLE_DATAPATH_VIDEO +//OLE_DATAPATH_SOUND +//OLE_DATAPATH_RIFF +//OLE_DATAPATH_WAV +//OLE_DATAPATH_MIDI +//OLE_DATAPATH_BASICAUDIO +//OLE_DATAPATH_QUICKTIME +//OLE_DATAPATH_MPEG +//OLE_DATAPATH_AVI +//OLE_DATAPATH_ALLIMAGE +//OLE_DATAPATH_COMMONIMAGE +//OLE_DATAPATH_EPS +//OLE_DATAPATH_CGM +//OLE_DATAPATH_PICT +//OLE_DATAPATH_PCX +//OLE_DATAPATH_XBM +//OLE_DATAPATH_TIFF +//OLE_DATAPATH_JPEG +//OLE_DATAPATH_GIF +//OLE_DATAPATH_ENHMF +//OLE_DATAPATH_WMF +//OLE_DATAPATH_DIB +//OLE_DATAPATH_BMP +//GUID_HasPathProperties +//GUID_PathProperty +//SID_SDataPathBrowser +//SID_SContainerDispatch +//IID_IAccessible +//LIBID_Accessibility +//CLSID_ClassInstallFilter +//CLSID_CdlProtocol +//CLSID_DeCompMimeFilter +//CLSID_StdEncodingFilterFac +//CLSID_NotificaitonTest4 +//CLSID_NotificaitonTest3 +//CLSID_NotificaitonTest2 +//CLSID_NotificaitonTest1 +//NOTIFICATIONTYPE_START_F +//NOTIFICATIONTYPE_START_E +//NOTIFICATIONTYPE_START_D +//NOTIFICATIONTYPE_START_C +//NOTIFICATIONTYPE_START_B +//NOTIFICATIONTYPE_START_A +//NOTIFICATIONTYPE_START_9 +//NOTIFICATIONTYPE_START_8 +//NOTIFICATIONTYPE_START_7 +//NOTIFICATIONTYPE_START_6 +//NOTIFICATIONTYPE_START_5 +//NOTIFICATIONTYPE_START_4 +//NOTIFICATIONTYPE_START_3 +//NOTIFICATIONTYPE_START_2 +//NOTIFICATIONTYPE_START_1 +//NOTIFICATIONTYPE_START_0 +//NOTIFICATIONTYPE_15 +//NOTIFICATIONTYPE_14 +//NOTIFICATIONTYPE_13 +//NOTIFICATIONTYPE_12 +//NOTIFICATIONTYPE_11 +//NOTIFICATIONTYPE_f +//NOTIFICATIONTYPE_e +//NOTIFICATIONTYPE_d +//NOTIFICATIONTYPE_TASKS_ERROR +//NOTIFICATIONTYPE_TASKS_STARTED +//NOTIFICATIONTYPE_USER_IDLE_END +//NOTIFICATIONTYPE_USER_IDLE_BEGIN +//NOTIFICATIONTYPE_PROGRESS_REPORT +//NOTIFICATIONTYPE_CONFIG_CHANGED +//NOTIFICATIONTYPE_DISCONNECT_FROM_INTERNET +//NOTIFICATIONTYPE_CONNECT_TO_INTERNET +//NOTIFICATIONTYPE_AGENT_INIT +//NOTIFICATIONTYPE_END_REPORT +//NOTIFICATIONTYPE_BEGIN_REPORT +//NOTIFICATIONTYPE_AGENT_START +//NOTIFICATIONTYPE_TASKS_PROGRESS +//NOTIFICATIONTYPE_TASKS_COMPLETED +//NOTIFICATIONTYPE_TASKS_ABORT +//NOTIFICATIONTYPE_TASKS_RESUME +//NOTIFICATIONTYPE_TASKS_SUSPEND +//NOTIFICATIONTYPE_INET_ONLINE +//NOTIFICATIONTYPE_INET_OFFLINE +//NOTIFICATIONTYPE_INET_IDLE +//NOTIFICATIONTYPE_ALERT +//NOTIFICATIONTYPE_TASK +//NOTIFICATIONTYPE_ANOUNCMENT +//NOTIFICATIONTYPE_NULL +//NOTFCOOKIE_SCHEDULE_GROUP_MANUAL +//NOTFCOOKIE_SCHEDULE_GROUP_MONTHLY +//NOTFCOOKIE_SCHEDULE_GROUP_WEEKLY +//NOTFCOOKIE_SCHEDULE_GROUP_DAILY +//NOTIFICATIONTYPE_iF +//NOTIFICATIONTYPE_iE +//NOTIFICATIONTYPE_iD +//NOTIFICATIONTYPE_iC +//NOTIFICATIONTYPE_iB +//NOTIFICATIONTYPE_iA +//NOTIFICATIONTYPE_i9 +//NOTIFICATIONTYPE_i8 +//NOTIFICATIONTYPE_i7 +//NOTIFICATIONTYPE_i6 +//NOTIFICATIONTYPE_GROUP_DONE +//NOTIFICATIONTYPE_GROUP_RESTART +//NOTIFICATIONTYPE_GROUP_START +//NOTIFICATIONTYPE_ITEM_DONE +//NOTIFICATIONTYPE_ITEM_RESTART +//NOTIFICATIONTYPE_ITEM_START +//CLSID_d +//CLSID_c +//CLSID_b +//CLSID_a +//CLSID_9 +//CLSID_8 +//CLSID_7 +//CLSID_6 +//CLSID_5 +//CLSID_4 +//CLSID_3 +//CLSID_2 +//CLSID_1 +//CLSID_THREAD_BROADCAST +//CLSID_PROCESS_BROADCAST +//CLSID_GLOBAL_BROADCAST +//IID_IOInetProtocolInfo +//IID_IOInetPriority +//IID_IOInetCache 00000C10 P +//IID_IOInetThreadSwitch 00000C20 P +//IID_IOInetSession 00000C30 P +//IID_IOInetProtocolSink 00000C40 P +//IID_IOInetProtocol 00000C50 P +//IID_IOInetProtocolRoot 00000C60 P +//IID_IOInetBindClient +//IID_IOInetBindInfo +//IID_IOInet +//IID_INotificationProcessMgr0 +//IID_INotificationRunning +//IID_INotificationPing +//IID_INotificationHelper +//IID_IEnumNotificationSinkItem +//IID_IEnumScheduleGroup +//IID_IEnumNotification +//IID_INotificationReport +//IID_IScheduleGroup +//IID_INotificationSink +//IID_INotificationMgr +//IID_INotification +//IID_IPropertyMap +//IID_IEnumPropertyMap +//CLSID_WebCheckDefaultProcess +//CLSID_StdNotificationMgr +//IID_IDebugOut +//IID_IDebugRegister +//IID_IBindStatusCallbackMsg +//IID_IAsyncBindCtx +//IID_IAsyncMoniker +//CLSID_AboutProtocol +//CLSID_ResProtocol +//CLSID_UrlMkBindCtx +//CLSID_PSUrlMonProxy +//CLSID_FileProtocol +//CLSID_MkProtocol +//CLSID_HttpSProtocol +//CLSID_GopherProtocol +//CLSID_FtpProtocol +//CLSID_HttpProtocol +//CLSID_StdURLProtocol +//CLSID_StdURLMoniker diff --git a/reactos/lib/sdk/uuid/iid.c b/reactos/lib/sdk/uuid/iid.c new file mode 100644 index 00000000000..d1b993c51e4 --- /dev/null +++ b/reactos/lib/sdk/uuid/iid.c @@ -0,0 +1,384 @@ + +#include + +//guidTransactionProperty +//guidJITActivationPolicy +//guidTrkPropPolicy +//guidActivityPolicy +//guidContextMarshaler +//guidUserPropertiesProperty +//guidApplicationInfo +//guidSecurityPolicy +//guidSPMPolicy +//guidPartitionProperty +//guidSxsProperty +//CLSID_TrustManager +//CLSID_StdPolicyManager +//CLSID_ScriptPolicyMaker +//CLSID_VolatilePolicyManager +//CLSID_TrustGlobals +//CLSID_MTSPackage +//guidQCDeadLetterQueueListenerAppId +//GUID_DefaultAppPartition +//guidGlobalPartition +//guidSystemApplication +//GUID_FinalizerCID +//IID_ITmNodeName +//IID_ITransactionOutcomeEvents +//IID_ITransactionOptions +//IID_ITransactionDispenser +//IID_ITransaction2 +//IID_ITransactionCloner +//IID_ITransaction +//IID_IEventServerTrace +//IID_IComLceEventDispatcher +//IID_INtaHelper +//IID_IProcessWatch +//IID_IProcessTerminateNotify +//IID_IEventServerInternal +//IID_IEventServer2 +//IID_IEventServer +//IID_IEventRegistrar +//IID_IEventDispatcher +//IID_IEventCall +//IID_AsyncIEventSourceCallback2 +//IID_IEventSourceCallback2 +//IID_AsyncIEventSourceCallback +//IID_IEventSourceCallback +//IID_IEnterActivityWithNoLock +//IID_IQCPartitionInfo +//IID_IMarshalInterceptor +//IID_IQCMonikerInfo +//IID_IMkOption +//IID_IQCQueueAdministration +//IID_IMSMQQueueOptions +//IID_IQCPlayer +//IID_IIntegrator +//IID_ILQue +//IID_ILMessage +//IID_IQCListener +//IID_IQCInterfaceManager +//IID_IRpcChannelBufferInternal +//IID_IChannelManager +//IID_IRecorderInternal +//IID_IMarshal3 +//IID_IMessageMover +//CLSID_MtsVbHelper +//LIBID_ComPlusVbDebugLib +//IID_IClassVbDebugInfo +//IID_IClassFactoryWithCoContext +//IID_IMtsVbHelper +//IID_IEventSystem2 +//IID_IEventSubscription3 +//IID_IEventSubscription2 +//IID_IEventClassParallelFiringTimeout +//IID_IEventClass3 +//CLSID_EventObjectChange2 +//CLSID_EventObjectChange +//CLSID_CEventSubscription +//CLSID_CEventClass +//CLSID_CEventPublisher +//CLSID_CEventSystem +//LIBID_DummyEventSystemLib +//IID_IMultiInterfaceEventControl +//IID_IEventControl +//IID_IEventProperty +//IID_IEventObjectCollection +//IID_IEnumEventObject +//IID_IEventObjectChange2 +//IID_IEventObjectChange +//IID_IMultiInterfacePublisherFilter +//IID_IPublisherFilter +//IID_IFiringControl +//IID_IEventSubscription +//IID_IEventClass2 +//IID_IEventClass +//IID_IEventPublisher +//IID_IEventSystem +//IID_ISystemDebugEventFireAuto +//IID_ISystemDebugEventFire +//CLSID_COMAdminCatalogCollection +//CLSID_COMAdminCatalogObject +//CLSID_COMAdminCatalog +//LIBID_COMAdmin +//IID_ICatalogCollection +//IID_ICatalogObject +//IID_ICOMAdminCatalog2 +//IID_ICOMAdminCatalog +//IID_IMtsGrp +//IID_IMTSLocator +//IID_IMtsEventInfo +//IID_IMtsEvents +//IID_ISystemAppEventData +//IID_IComObjectConstruction2Events +//IID_IComObjectPool2Events +//IID_IComInstance2Events +//IID_IComTransaction2Events +//IID_IComApp2Events +//IID_IComTrackingInfoProperties +//IID_IComTrackingInfoObject +//IID_IComTrackingInfoCollection +//IID_IComTrackingInfoEvents +//IID_IComMethod2Events +//IID_IComCRMEvents +//IID_ILBEvents +//IID_IComExceptionEvents +//IID_IComQCEvents +//IID_IComIdentityEvents +//IID_IComActivityEvents +//IID_IComObjectConstructionEvents +//IID_IComObjectPoolEvents2 +//IID_IComObjectPoolEvents +//IID_IComSecurityEvents +//IID_IComResourceEvents +//IID_IComObjectEvents +//IID_IComMethodEvents +//IID_IComTransactionEvents +//IID_IComInstanceEvents +//IID_IComAppEvents +//IID_IComThreadEvents +//IID_IComUserEvent +//IID_IComLTxEvents +//IID_IMtsEventsPriv2 +//IID_IMtsEventsPriv +//IID_IVolatilePolicyManager +//IID_ICreateWithTipTransactionEx +//IID_ICreateWithLocalTransaction +//IID_ICreateWithTransactionEx +//IID_ITransactionContext +//IID_ITransactionContextEx +//IID_IEnumTRUSTPOLICYINFO +//IID_IEnumTrustPolicy +//IID_IScriptPolicyMaker +//IID_ITrustPolicyScript +//IID_ITrustPolicySetup +//IID_ITrustPolicyVerbs +//IID_ITrustPropertySet +//IID_ITrustEvaluationContextProvider +//IID_ITrustEvaluationContext +//IID_IInstancesCollection +//IID_ICategoriesCollection +//IID_IPolicyCategoryRegister +//IID_IPolicyManager +//IID_ITrustManager +//IID_ITrustPolicy +//IID_IProvideEvalContext +//IID_ITrustable +//IID_IContextTransactionInfo +//IID_IClrObjectFactory +//IID_IClerksCollection +//IID_ICRMRecoveryClerk +//IID_ICRMClerk +//IID_IPoolMgrPrivate +//IID_IPoolMgr +//IID_IServicePoolOptions +//IID_ISvcPoolInit +//IID_IObjPool +//IID_IPooledObj +//IID_ISTAPropStore +//IID_IUserPropsEnumInternal +//IID_IUserPropsInternal +//IID_IAssociation +//IID_IImpersonationControl +//IID_INonMTSActivation +//IID_IThreadEventSource +//IID_IThreadEvents +//IID_IDumpControl +//IID_IFailfastControl +//IID_IPauseResumeApp +//IID_IMTSPackage +//IID_IMTSPackageControl +//IID_IPackageControlInternal +//IID_ISecurityInternal +//IID_IObjectContextTransaction +//IID_IGetInternalTransaction +//IID_ITransactionProperty2 +//IID_ITransactionProperty +//IID_IRootTxStreamInternal +//IID_ITxStreamInternal +//IID_ITransactionEvents +//IID_ITransactionStream +//IID_IActivity +//IID_IMTSActivity +//IID_ICallContextNotify +//IID_IBabyJITInterceptor +//IID_IBabyJITActivation +//IID_IEnableDisableProperty +//IID_ITrackerProperty +//IID_IJITActivationProperty +//IID_IActivationEvents +//IID_IRegisterPhase0 +//IID_IPhase0Notify +//IID_IServiceConfigInternal +//IID_IContextProperties +//IID_IMTSCall +//IID_ITransactionResourcePool +//IID_ISendMethodEvents +//IID_IManagedActivationEvents +//IID_IAssemblyLocator +//IID_IAppDomainHelper +//IID_IManagedObjectInfo +//IID_IManagedPoolAction +//IID_IManagedPooledObj +//IID_IServicePool +//IID_IServicePoolConfig +//IID_IProcessInitializer +//IID_IComStaThreadPoolKnobs2 +//IID_IComMtaThreadPoolKnobs +//IID_IComStaThreadPoolKnobs +//IID_IThreadPoolKnobs +//IID_IServiceActivity +//IID_IAsyncErrorNotify +//IID_IServiceCall +//IID_IServicePartitionConfig +//IID_IServiceTrackerConfig +//IID_IServiceSynchronizationConfig +//IID_IServiceSysTxnConfig +//IID_IServiceTransactionConfig +//IID_IServiceTransactionConfigBase +//IID_IServiceThreadPoolConfig +//IID_IServiceInheritanceConfig +//IID_ICheckSxsConfig +//IID_IServiceSxsConfig +//IID_IServiceComTIIntrinsicsConfig +//IID_IServiceIISIntrinsicsConfig +//IID_ICrmFormatLogRecords +//IID_ICrmMonitor +//IID_ICrmMonitorClerks +//IID_ICrmMonitorLogRecords +//IID_ICrmCompensator +//IID_ICrmCompensatorVariants +//IID_ICrmLogControl +//IID_ICOMLBArguments +//IID_ISelectCOMLBServer +//IID_IPoolManager +//IID_IContextState +//IID_IGetContextProperties +//IID_IPlaybackControl +//IID_IObjectContextTip +//IID_ITransactionStatus +//IID_IObjectContextInfo2 +//IID_IObjectContextInfo +//IID_IObjectContextActivity +//IID_IObjectConstructString +//IID_IObjectConstruct +//IID_ISharedPropertyGroupManager +//IID_ISharedPropertyGroup +//IID_ISharedProperty +//IID_ObjectControl +//IID_ISecurityProperty +//IID_IEnumNames +//IID_IObjectControl +//IID_IObjectContext +//IID_ITxProxyHolder +//IID_IContextSecurityPerimeter +//IID_ITransactionProxy +//IID_IDispenserDriver +//IID_IHolder +//IID_IDispenserManagerShutdownGuarantee +//IID_IDispenserManager +//IID_IProcessDump2 +//IID_IProcessDump +//IID_ITrkSvrAppControl +//IID_IGetAppData +//IID_IReceiveAppData +//IID_IClassTrackerUpdate +//IID_IAppTracker +//IID_IGetSecurityCallContext +//IID_ISecurityCallContext +//IID_ISecurityCallersColl +//IID_ISecurityIdentityColl +//IID_ISecurityCertificateColl +//IID_ISecurityCallCtxPrivate +//IID_IMTxAS +//IID_ObjectContext +//IID_ContextInfo2 +//IID_ContextInfo +//IID_SecurityProperty +//CLSID_ClrAssemblyLocator +//CLSID_AppDomainHelper +//CLSID_SoapMoniker +//CLSID_PartitionMoniker +//CLSID_ProcessDump +//CLSID_TrackerServer +//CLSID_EventServer +//CLSID_PoolMgr +//CLSID_DispenserManager +//CLSID_MessageMover +//CLSID_LBEvents +//CLSID_CRMRecoveryClerk +//CLSID_CRMClerk +//CLSID_ComSystemAppEventData +//CLSID_ComServiceEvents +//CLSID_MtsGrp +//CLSID_CoMTSLocator +//CLSID_COMEvents +//CLSID_SharedPropertyGroupManager +//CLSID_SharedPropertyGroup +//CLSID_SharedProperty +//CLSID_ServicePoolConfig +//CLSID_ServicePool +//CLSID_CServiceConfig +//CLSID_ByotServerEx +//CLSID_TransactionContextEx +//CLSID_TransactionContext +//CLSID_AppServer +//CLSID_Dummy30040732 +//CLSID_GetSecurityCallContextAppObject +//CLSID_SecurityCallContext +//CLSID_SecurityCallers +//CLSID_SecurityIdentity +//CLSID_SecurityCertificate +//CLSID_ObjectWrapperUnmarshaler +//CLSID_ComExceptionEvents +//CLSID_ComCRMEvents +//CLSID_ComQCEvents +//CLSID_ComIdentityEvents +//CLSID_ComActivityEvents +//CLSID_ComObjectConstructionEvents +//CLSID_ComObjectPoolEvents2 +//CLSID_ComObjectPoolEvents +//CLSID_ComSecurityEvents +//CLSID_ComResourceEvents +//CLSID_ComObjectEvents +//CLSID_ComMethodEvents +//CLSID_ComTransactionEvents +//CLSID_ComInstanceEvents +//CLSID_ComAppEvents +//CLSID_ComUserEvent +//CLSID_ComThreadEvents +//CLSID_QCMarshalInterceptor +//CLSID_DLQListenerStarter +//CLSID_QCQueueAdmin +//CLSID_QueueMoniker +//CLSID_NewMoniker +//CLSID_Player +//CLSID_Integrator +//CLSID_QCListener +//CLSID_Recorder +//CLSID_ClerksCollection +//CLSID_cfw +//CLSID_ComEventRegistrar +//CLSID_ComLceEventDispatcher +//CLSID_NtaHelper +//CLSID_ClassTracker +//CLSID_AppTracker +//CLSID_ObjectConstruct +//CLSID_CtorAct +//CLSID_SoapAct +//CLSID_ObjPoolAct +//CLSID_AssociationUnmarshal +//CLSID_UserContextProperty +//CLSID_vca +//CLSID_stapa +//CLSID_obja +//CLSID_CFAct +//CLSID_sca +//CLSID_NonRootTransactionEnvoy +//CLSID_TransactionUnmarshal +//CLSID_SecurityEnvoy +//CLSID_ActivityUnmarshal +//CLSID_PartitionPropertyUnmarshal +//CLSID_TrkInfoObjUnmarshal +//CLSID_TrkInfoCollUnmarshal +//LIBID_COMSVCSLib diff --git a/reactos/lib/sdk/uuid/ncclsid.c b/reactos/lib/sdk/uuid/ncclsid.c new file mode 100644 index 00000000000..4e46f393722 --- /dev/null +++ b/reactos/lib/sdk/uuid/ncclsid.c @@ -0,0 +1,13 @@ + +#include + +//CLSID_BluetoothConnectionManager +//GUID_NETSHELL_PROPS +//CLSID_NetConnectionHNetUtil +//CLSID_EAPOLManager +//CLSID_NetConnectionUiUtilities +//CLSID_LanConnectionManager +//CLSID_ConnectionManager2 +//CLSID_ConnectionManager +//CLSID_ConnectionCommonUi +//CLSID_CNetCfg diff --git a/reactos/lib/sdk/uuid/ndisguid.c b/reactos/lib/sdk/uuid/ndisguid.c new file mode 100644 index 00000000000..bd22dad5687 --- /dev/null +++ b/reactos/lib/sdk/uuid/ndisguid.c @@ -0,0 +1,145 @@ + +#include + +//GUID_NDIS_STATUS_LINK_SPEED_CHANGE +//GUID_NDIS_STATUS_MEDIA_SPECIFIC_INDICATION +//GUID_NDIS_STATUS_MEDIA_DISCONNECT +//GUID_NDIS_STATUS_MEDIA_CONNECT +//GUID_NDIS_STATUS_RESET_END +//GUID_NDIS_STATUS_RESET_START +//GUID_NDIS_ATM_RCV_CELLS_DROPPED +//GUID_NDIS_ATM_XMIT_CELLS_OK +//GUID_NDIS_ATM_RCV_CELLS_OK +//GUID_NDIS_ATM_MAX_AAL5_PACKET_SIZE +//GUID_NDIS_ATM_MAX_AAL34_PACKET_SIZE +//GUID_NDIS_ATM_MAX_AAL1_PACKET_SIZE +//GUID_NDIS_ATM_MAX_AAL0_PACKET_SIZE +//GUID_NDIS_ATM_MAX_ACTIVE_VPI_BITS +//GUID_NDIS_ATM_MAX_ACTIVE_VCI_BITS +//GUID_NDIS_ATM_MAX_ACTIVE_VCS +//GUID_NDIS_ATM_HW_CURRENT_ADDRESS +//GUID_NDIS_ATM_SUPPORTED_AAL_TYPES +//GUID_NDIS_ATM_SUPPORTED_SERVICE_CATEGORY +//GUID_NDIS_ATM_SUPPORTED_VC_RATES +//GUID_NDIS_802_11_MEDIA_STREAM_MODE +//GUID_NDIS_802_11_TEST +//GUID_NDIS_802_11_ASSOCIATION_INFORMATION +//GUID_NDIS_802_11_REMOVE_KEY +//GUID_NDIS_802_11_ADD_KEY +//GUID_NDIS_802_11_RELOAD_DEFAULTS +//GUID_NDIS_802_11_WEP_STATUS +//GUID_NDIS_802_11_BSSID_LIST_SCAN +//GUID_NDIS_802_11_PRIVACY_FILTER +//GUID_NDIS_802_11_AUTHENTICATION_MODE +//GUID_NDIS_802_11_DISASSOCIATE +//GUID_NDIS_802_11_REMOVE_WEP +//GUID_NDIS_802_11_ADD_WEP +//GUID_NDIS_802_11_STATISTICS +//GUID_NDIS_802_11_CONFIGURATION +//GUID_NDIS_802_11_DESIRED_RATES +//GUID_NDIS_802_11_SUPPORTED_RATES +//GUID_NDIS_802_11_TX_ANTENNA_SELECTED +//GUID_NDIS_802_11_RX_ANTENNA_SELECTED +//GUID_NDIS_802_11_NUMBER_OF_ANTENNAS +//GUID_NDIS_802_11_RTS_THRESHOLD +//GUID_NDIS_802_11_FRAGMENTATION_THRESHOLD +//GUID_NDIS_802_11_INFRASTRUCTURE_MODE +//GUID_NDIS_802_11_BSSID_LIST +//GUID_NDIS_802_11_RSSI_TRIGGER +//GUID_NDIS_802_11_RSSI +//GUID_NDIS_802_11_TX_POWER_LEVEL +//GUID_NDIS_802_11_POWER_MODE +//GUID_NDIS_802_11_NETWORK_TYPE_IN_USE +//GUID_NDIS_802_11_NETWORK_TYPES_SUPPORTED +//GUID_NDIS_802_11_SSID +//GUID_NDIS_802_11_BSSID +//GUID_NDIS_FDDI_LCONNECTION_STATE +//GUID_NDIS_FDDI_LEM_REJECTS +//GUID_NDIS_FDDI_LCT_FAILURES +//GUID_NDIS_FDDI_RING_MGT_STATE +//GUID_NDIS_FDDI_FRAMES_LOST +//GUID_NDIS_FDDI_FRAME_ERRORS +//GUID_NDIS_FDDI_DOWNSTREAM_NODE_LONG +//GUID_NDIS_FDDI_UPSTREAM_NODE_LONG +//GUID_NDIS_FDDI_ATTACHMENT_TYPE +//GUID_NDIS_FDDI_SHORT_MAX_LIST_SIZE +//GUID_NDIS_FDDI_SHORT_MULTICAST_LIST +//GUID_NDIS_FDDI_SHORT_CURRENT_ADDR +//GUID_NDIS_FDDI_SHORT_PERMANENT_ADDR +//GUID_NDIS_FDDI_LONG_MAX_LIST_SIZE +//GUID_NDIS_FDDI_LONG_MULTICAST_LIST +//GUID_NDIS_FDDI_LONG_CURRENT_ADDR +//GUID_NDIS_FDDI_LONG_PERMANENT_ADDR +//GUID_NDIS_802_5_LOST_FRAMES +//GUID_NDIS_802_5_LINE_ERRORS +//GUID_NDIS_802_5_CURRENT_RING_STATE +//GUID_NDIS_802_5_CURRENT_RING_STATUS +//GUID_NDIS_802_5_LAST_OPEN_STATUS +//GUID_NDIS_802_5_CURRENT_GROUP +//GUID_NDIS_802_5_CURRENT_FUNCTIONAL +//GUID_NDIS_802_5_CURRENT_ADDRESS +//GUID_NDIS_802_5_PERMANENT_ADDRESS +//GUID_NDIS_802_3_XMIT_MORE_COLLISIONS +//GUID_NDIS_802_3_XMIT_ONE_COLLISION +//GUID_NDIS_802_3_RCV_ERROR_ALIGNMENT +//GUID_NDIS_802_3_MAC_OPTIONS +//GUID_NDIS_802_3_MAXIMUM_LIST_SIZE +//GUID_NDIS_802_3_MULTICAST_LIST +//GUID_NDIS_802_3_CURRENT_ADDRESS +//GUID_NDIS_802_3_PERMANENT_ADDRESS +//GUID_NDIS_GEN_CO_RCV_PDUS_NO_BUFFER +//GUID_NDIS_GEN_CO_RCV_PDUS_ERROR +//GUID_NDIS_GEN_CO_XMIT_PDUS_ERROR +//GUID_NDIS_GEN_CO_RCV_PDUS_OK +//GUID_NDIS_GEN_CO_XMIT_PDUS_OK +//GUID_NDIS_GEN_CO_MINIMUM_LINK_SPEED +//GUID_NDIS_GEN_CO_VENDOR_DRIVER_VERSION +//GUID_NDIS_GEN_CO_MEDIA_CONNECT_STATUS +//GUID_NDIS_GEN_CO_MAC_OPTIONS +//GUID_NDIS_GEN_CO_DRIVER_VERSION +//GUID_NDIS_GEN_CO_VENDOR_DESCRIPTION +//GUID_NDIS_GEN_CO_VENDOR_ID +//GUID_NDIS_GEN_CO_LINK_SPEED +//GUID_NDIS_GEN_CO_MEDIA_IN_USE +//GUID_NDIS_GEN_CO_MEDIA_SUPPORTED +//GUID_NDIS_GEN_CO_HARDWARE_STATUS +//GUID_NDIS_GEN_RCV_NO_BUFFER +//GUID_NDIS_GEN_RCV_ERROR +//GUID_NDIS_GEN_XMIT_ERROR +//GUID_NDIS_GEN_RCV_OK +//GUID_NDIS_GEN_XMIT_OK +//GUID_NDIS_GEN_PHYSICAL_MEDIUM +//GUID_NDIS_GEN_VLAN_ID +//GUID_NDIS_GEN_VENDOR_DRIVER_VERSION +//GUID_NDIS_GEN_MAXIMUM_SEND_PACKETS +//GUID_NDIS_GEN_MEDIA_CONNECT_STATUS +//GUID_NDIS_GEN_MAC_OPTIONS +//GUID_NDIS_GEN_MAXIMUM_TOTAL_SIZE +//GUID_NDIS_GEN_DRIVER_VERSION +//GUID_NDIS_GEN_CURRENT_LOOKAHEAD +//GUID_NDIS_GEN_CURRENT_PACKET_FILTER +//GUID_NDIS_GEN_VENDOR_DESCRIPTION +//GUID_NDIS_GEN_VENDOR_ID +//GUID_NDIS_GEN_RECEIVE_BLOCK_SIZE +//GUID_NDIS_GEN_TRANSMIT_BLOCK_SIZE +//GUID_NDIS_GEN_RECEIVE_BUFFER_SPACE +//GUID_NDIS_GEN_TRANSMIT_BUFFER_SPACE +//GUID_NDIS_GEN_LINK_SPEED +//GUID_NDIS_GEN_MAXIMUM_FRAME_SIZE +//GUID_NDIS_GEN_MAXIMUM_LOOKAHEAD +//GUID_NDIS_GEN_MEDIA_IN_USE +//GUID_NDIS_GEN_MEDIA_SUPPORTED +//GUID_NDIS_GEN_HARDWARE_STATUS +//GUID_NDIS_NOTIFY_DEVICE_POWER_OFF +//GUID_NDIS_NOTIFY_DEVICE_POWER_ON +//GUID_NDIS_WAKE_ON_MAGIC_PACKET_ONLY +//GUID_NDIS_NOTIFY_UNBIND +//GUID_NDIS_NOTIFY_BIND +//GUID_NDIS_NOTIFY_VC_ARRIVAL +//GUID_NDIS_NOTIFY_VC_REMOVAL +//GUID_NDIS_ENUMERATE_VC +//GUID_NDIS_NOTIFY_ADAPTER_ARRIVAL +//GUID_NDIS_NOTIFY_ADAPTER_REMOVAL +//GUID_NDIS_ENUMERATE_ADAPTER +//GUID_DEVINTERFACE_NET +//GUID_NDIS_LAN_CLASS diff --git a/reactos/lib/sdk/uuid/netfwv6clsid.c b/reactos/lib/sdk/uuid/netfwv6clsid.c new file mode 100644 index 00000000000..8ef3e98838b --- /dev/null +++ b/reactos/lib/sdk/uuid/netfwv6clsid.c @@ -0,0 +1,4 @@ + +#include + +DEFINE_GUID(CLSID_NetFwV6Mgr, 0x03707315,0x53E9,0x4B84,0x82,0xB2,0xF0,0x90,0x25,0xCA,0xD2,0x07); diff --git a/reactos/lib/sdk/uuid/oledbdat.c b/reactos/lib/sdk/uuid/oledbdat.c new file mode 100644 index 00000000000..e0fbc1eb070 --- /dev/null +++ b/reactos/lib/sdk/uuid/oledbdat.c @@ -0,0 +1,191 @@ + +#include + +//IID_IService +//IID_IDBPromptInitialize +//IID_IDataInitialize +//IID_IDataSourceLocator +//CLSID_DataLinks +//CLSID_MSDAINITIALIZE +//CLSID_PDPO +//CLSID_RootBinder +//CLSID_DataConvert +//OLEDB_SVC_DSLPropertyPages +//CLSID_OLEDB_ROWPOSITIONLIBRARY +//CLSID_OLEDB_CONVERSIONLIBRARY +//CLSID_MSDAVTM +//CLSID_EXTENDEDERRORINFO +//CLSID_OLEDB_ENUMERATOR +//DBGUID_LIKE_MAPI +//DBGUID_LIKE_OFS +//DBGUID_LIKE_DOS +//DBGUID_LIKE_SQL +//DB_PROPERTY_EXPLICITUPDATE +//DB_PROPERTY_AUTOMATICUPDATE +//DB_PROPERTY_SORTBOOKMARKS +//DB_PROPERTY_IGNOREANYNULL +//DB_PROPERTY_IGNORENULL +//DB_PROPERTY_DISALLOWNULL +//DB_PROPERTY_INITIALSIZE +//DB_PROPERTY_FILLFACTOR +//DB_PROPERTY_HASH +//DB_PROPERTY_BTREE +//DB_PROPERTY_NONCLUSTERED +//DB_PROPERTY_CLUSTERED +//DB_PROPERTY_PRIMARY +//DB_PROPERTY_ON_COMMIT_PRESERVE_ROWS +//DB_PROPERTY_UNIQUE +//DB_PROPERTY_DROP_CASCADE +//DB_PROPERTY_CONSTRAINT_CHECK_DEFERRED +//DB_PROPERTY_CHECK_OPTION +//DBGUID_SQL +//DBGUID_DEFAULT +//DBGUID//DBSQL +//DBCOLUMN_DERIVEDCOLUMNNAME +//DBGUID_HISTOGRAM_ROWSET +//DBSCHEMA_CHECK_CONSTRAINTS_BY_TABLE +//DBSCHEMA_TABLE_STATISTICS +//DBPROPSET_STREAMALL +//DBPROPSET_STREAM +//DBPROPSET_VIEWALL +//DBPROPSET_VIEW +//DBPROPSET_PROPERTIESINERROR +//DBPROPSET//DBINITALL +//DBPROPSET_SESSIONALL +//DBPROPSET_SESSION +//DBPROPSET_ROWSETALL +//DBPROPSET_DATASOURCEINFOALL +//DBPROPSET_DATASOURCEALL +//DBPROPSET_TABLE +//DBPROPSET_ROWSET +//DBPROPSET_INDEX +//DBPROPSET//DBINIT +//DBPROPSET_DATASOURCEINFO +//DBPROPSET_DATASOURCE +//DBPROPSET_COLUMN +//PSGUID_QUERY +//DBCOL_SPECIALCOL +//DBCOL_SELFCOLUMNS +//DBSCHEMA_PROCEDURE_COLUMNS +//DBSCHEMA_PRIMARY_KEYS +//DBSCHEMA_FOREIGN_KEYS +//DBSCHEMA_PROCEDURE_PARAMETERS +//DBSCHEMA_VIEW_TABLE_USAGE +//DBSCHEMA_VIEW_COLUMN_USAGE +//DBSCHEMA_VIEWS +//DBSCHEMA_PROVIDER_TYPES +//DBSCHEMA_TRANSLATIONS +//DBSCHEMA_TABLES +//DBSCHEMA_STATISTICS +//DBSCHEMA_SQL_LANGUAGES +//DBSCHEMA_SCHEMATA +//DBSCHEMA_PROCEDURES +//DBSCHEMA_USAGE_PRIVILEGES +//DBSCHEMA_TABLE_PRIVILEGES +//DBSCHEMA_COLUMN_PRIVILEGES +//DBSCHEMA_INDEXES +//DBSCHEMA_COLUMN_DOMAIN_USAGE +//DBSCHEMA_TABLE_CONSTRAINTS +//DBSCHEMA_REFERENTIAL_CONSTRAINTS +//DBSCHEMA_KEY_COLUMN_USAGE +//DBSCHEMA_CONSTRAINT_TABLE_USAGE +//DBSCHEMA_CONSTRAINT_COLUMN_USAGE +//DBSCHEMA_CHECK_CONSTRAINTS +//DBSCHEMA_COLUMNS +//DBSCHEMA_COLLATIONS +//DBSCHEMA_CHARACTER_SETS +//DBSCHEMA_CATALOGS +//DBSCHEMA_ASSERTIONS +//DBGUID_CONTAINEROBJECT +//DBROWCOL_DEFAULTSTREAM +//DBROWCOL_ISROOT +//DBROWCOL_DISPLAYNAME +//DBROWCOL_DEFAULTDOCUMENT +//DBROWCOL_ISSTRUCTUREDDOCUMENT +//DBROWCOL_ISCOLLECTION +//DBROWCOL_STREAMSIZE +//DBROWCOL_LASTWRITETIME +//DBROWCOL_LASTACCESSTIME +//DBROWCOL_CREATIONTIME +//DBROWCOL_CONTENTLANGUAGE +//DBROWCOL_CONTENTCLASS +//DBROWCOL_CONTENTTYPE +//DBROWCOL_ISREADONLY +//DBROWCOL_ISHIDDEN +//DBROWCOL_ABSOLUTEPARSENAME +//DBROWCOL_PARENTNAME +//DBROWCOL_PARSENAME +//DBROWCOL_ROWURL +//DBGUID_STREAM +//DBGUID_COMMAND +//DBGUID_ROW +//DBGUID_ROWSET +//DBGUID_SESSION +//DBGUID_DSO +//DBPROPSET_CONSTRAINTALL +//DBPROPSET_TRUSTEEALL +//DBPROPSET_TABLEALL +//DBPROPSET_INDEXALL +//DBPROPSET_COLUMNALL +//DBSCHEMA_TRUSTEE +//DBOBJECT_TRANSLATION +//DBOBJECT_CHARACTERSET +//DBOBJECT_SCHEMAROWSET +//DBOBJECT_TRUSTEE +//DBOBJECT_COLLATION +//DBOBJECT_DOMAIN +//DBOBJECT_SCHEMA +//DBOBJECT_VIEW +//DBOBJECT_PROCEDURE +//DBOBJECT_DATABASE +//DBOBJECT_COLUMN +//DBOBJECT_TABLE +//DBPROPSET_TRUSTEE +//DBCOLUMN_KEYCOLUMN +//DBCOLUMN_BASETABLEVERSION +//MDSCHEMA_MEMBERS +//MDSCHEMA_PROPERTIES +//MDSCHEMA_MEASURES +//MDSCHEMA_LEVELS +//MDSCHEMA_HIERARCHIES +//MDSCHEMA_DIMENSIONS +//MDSCHEMA_CUBES +//DBGUID_MDX +//MDGUID_MDX +//DBSCHEMA_TABLES_INFO +//MDSCHEMA_SETS +//MDSCHEMA_COMMANDS +//MDSCHEMA_ACTIONS +//MDSCHEMA_FUNCTIONS +//DBCOLUMN_MAYSORT +//DBCOLUMN_CLSID +//DBCOLUMN_COLUMNSIZE +//DBCOLUMN_OCTETLENGTH +//DBCOLUMN_NUMERICPRECISIONRADIX +//DBCOLUMN_DATETIMEPRECISION +//DBCOLUMN_DOMAINSCHEMA +//DBCOLUMN_DOMAINCATALOG +//DBCOLUMN_TYPEINFO +//DBCOLUMN_PROPID +//DBCOLUMN_GUID +//DBCOLUMN_BASESCHEMANAME +//DBCOLUMN_BASECATALOGNAME +//DBCOLUMN_ISUNIQUE +//DBCOLUMN_ISSEARCHABLE +//DBCOLUMN_ISCASESENSITIVE +//DBCOLUMN_ISAUTOINCREMENT +//DBCOLUMN_HASDEFAULT +//DBCOLUMN_DOMAINNAME +//DBCOLUMN_DEFAULTVALUE +//DBCOLUMN_COMPUTEMODE +//DBCOLUMN_COLLATINGSEQUENCE +//DBCOLUMN_BASETABLENAME +//DBCOLUMN_BASECOLUMNNAME +//DBCOLUMN_FLAGS +//DBCOLUMN_SCALE +//DBCOLUMN_PRECISION +//DBCOLUMN_TYPE +//DBCOLUMN_NUMBER +//DBCOLUMN_NAME +//DBCOLUMN_IDNAME +//DB_NULLID diff --git a/reactos/lib/sdk/uuid/oledbdepiid.c b/reactos/lib/sdk/uuid/oledbdepiid.c new file mode 100644 index 00000000000..4d7b9eef10b --- /dev/null +++ b/reactos/lib/sdk/uuid/oledbdepiid.c @@ -0,0 +1,18 @@ + +#include + +//IID_IRowsetNextRowset +//IID_IRowsetNewRowAfter +//IID_IRowsetWithParameters +//IID_IRowsetAsynch +//IID_IRowsetKeys +//IID_IRowsetWatchAll +//IID_IRowsetWatchNotify +//IID_IRowsetWatchRegion +//IID_IRowsetCopyRows +//IID_IReadData +//IID_ICommandCost +//IID_ICommandValidate +//IID_ITableRename +//IID_IDBSchemaCommand +//IID_IProvideMoniker diff --git a/reactos/lib/sdk/uuid/oledbiid.c b/reactos/lib/sdk/uuid/oledbiid.c new file mode 100644 index 00000000000..865beeba795 --- /dev/null +++ b/reactos/lib/sdk/uuid/oledbiid.c @@ -0,0 +1,84 @@ + +#include + +//IID_IAccessor +//IID_IRowset +//IID_IRowsetInfo +//IID_IRowsetLocate +//IID_IRowsetResynch +//IID_IRowsetScroll +//IID_IChapteredRowset +//IID_IRowsetFind +//IID_IRowPosition +//IID_IRowPositionChange +//IID_IViewRowset +//IID_IViewChapter +//IID_IViewSort +//IID_IViewFilter +//IID_IRowsetView +//IID_IRowsetExactScroll +//IID_IRowsetChange +//IID_IRowsetUpdate +//IID_IRowsetIdentity +//IID_IRowsetNotify +//IID_IRowsetIndex +//IID_ICommand +//IID_IMultipleResults +//IID_IConvertType +//IID_ICommandPrepare +//IID_ICommandProperties +//IID_ICommandText +//IID_ICommandWithParameters +//IID_IColumnsRowset +//IID_IColumnsInfo +//IID_IDBCreateCommand +//IID_IDBCreateSession +//IID_ISourcesRowset +//IID_IDBProperties +//IID_IDBInitialize +//IID_IDBInfo +//IID_IDBDataSourceAdmin +//IID_IDBAsynchNotify +//IID_IDBAsynchStatus +//IID_ISessionProperties +//IID_IIndexDefinition +//IID_ITableDefinition +//IID_IOpenRowset +//IID_IDBSchemaRowset +//IID_IMDDataset +//IID_IMDFind +//IID_IMDRangeRowset +//IID_IAlterTable +//IID_IAlterIndex +//IID_IRowsetChapterMember +//IID_ICommandPersist +//IID_IRowsetRefresh +//IID_IParentRowset +//IID_IErrorRecords +//IID_IErrorLookup +//IID_ISQLErrorInfo +//IID_IGetDataSource +//IID_ITransactionLocal +//IID_ITransactionJoin +//IID_ITransactionObject +//IID_ITrusteeAdmin +//IID_ITrusteeGroupAdmin +//IID_IObjectAccessControl +//IID_ISecurityInfo +//IID_ITableCreation +//IID_ITableDefinitionWithConstraints +//IID_IRow +//IID_IRowChange +//IID_IRowSchemaChange +//IID_IGetRow +//IID_IBindResource +//IID_IScopedOperations +//IID_ICreateRow +//IID_IDBBinderProperties +//IID_IColumnsInfo2 +//IID_IRegisterProvider +//IID_IGetSession +//IID_IGetSourceRow +//IID_IRowsetCurrentIndex +//IID_ICommandStream +//IID_IRowsetBookmark diff --git a/reactos/lib/sdk/uuid/oledbnewiid.c b/reactos/lib/sdk/uuid/oledbnewiid.c new file mode 100644 index 00000000000..dd8b2042b37 --- /dev/null +++ b/reactos/lib/sdk/uuid/oledbnewiid.c @@ -0,0 +1,4 @@ + +#include + +//IID_IRowInfo diff --git a/reactos/lib/sdk/uuid/otherguids.c b/reactos/lib/sdk/uuid/otherguids.c new file mode 100644 index 00000000000..986a42ca409 --- /dev/null +++ b/reactos/lib/sdk/uuid/otherguids.c @@ -0,0 +1,55 @@ + + +#include +#include + +DEFINE_GUID(IID_IDirectPlaySP, 0xc9f6360, 0xcc61, 0x11cf, 0xac, 0xec, 0x0, 0xaa, 0x0, 0x68, 0x86, 0xe3); +DEFINE_GUID(IID_ISFHelper, 0x1fe68efb,0x1874,0x9812,0x56,0xdc,0x00,0x00,0x00,0x00,0x00,0x00); +DEFINE_GUID(IID_IDPLobbySP, 0x5a4e5a20,0x2ced,0x11d0,0xa8,0x89,0x00,0xa0,0xc9,0x05,0x43,0x3c); +DEFINE_GUID(IID_IEnumNetConnection, 0xC08956A0,0x1CD3,0x11D1,0xB1,0xC5,0x00,0x80,0x5F,0xC1,0x27,0x0E); +DEFINE_GUID(IID_INetConnectionManager, 0xC08956A2,0x1CD3,0x11D1,0xB1,0xC5,0x00,0x80,0x5F,0xC1,0x27,0x0E); +DEFINE_GUID(IID_INetConnectionConnectUi, 0xC08956A3,0x1CD3,0x11D1,0xB1,0xC5,0x00,0x80,0x5F,0xC1,0x27,0x0E); +DEFINE_GUID(IID_INetConnectionPropertyUi, 0xC08956A4,0x1CD3,0x11D1,0xB1,0xC5,0x00,0x80,0x5F,0xC1,0x27,0x0E); +DEFINE_GUID(IID_INetLanConnectionUiInfo, 0xC08956A6,0x1CD3,0x11D1,0xB1,0xC5,0x00,0x80,0x5F,0xC1,0x27,0x0E); +DEFINE_GUID(IID_IEnumNetCfgComponent, 0xC0E8AE92,0x306E,0x11D1,0xAA,0xCF,0x00,0x80,0x5F,0xC1,0x27,0x0E); +DEFINE_GUID(IID_INetCfg, 0xC0E8AE93,0x306E,0x11D1,0xAA,0xCF,0x00,0x80,0x5F,0xC1,0x27,0x0E); +DEFINE_GUID(IID_INetCfgComponent, 0xC0E8AE99,0x306E,0x11D1,0xAA,0xCF,0x00,0x80,0x5F,0xC1,0x27,0x0E); +DEFINE_GUID(IID_INetCfgComponentBindings, 0xC0E8AE9E,0x306E,0x11D1,0xAA,0xCF,0x00,0x80,0x5F,0xC1,0x27,0x0E); +DEFINE_GUID(IID_INetCfgLock, 0xC0E8AE9F,0x306E,0x11D1,0xAA,0xCF,0x00,0x80,0x5F,0xC1,0x27,0x0E); +DEFINE_GUID(IID_INetConnectionPropertyUi2, 0xC08956B9,0x1CD3,0x11D1,0xB1,0xC5,0x00,0x80,0x5F,0xC1,0x27,0x0E); +DEFINE_GUID(IID_INetCfgPnpReconfigCallback,0x8D84BD35,0xE227,0x11D2,0xB7,0x00,0x00,0xA0,0xC9,0x8A,0x6A,0x85); +DEFINE_GUID(IID_INetCfgComponentPropertyUi,0x932238E0,0xBEA1,0x11D0,0x92,0x98,0x00,0xC0,0x4f,0xC9,0x9D,0xCF); +DEFINE_GUID(IID_INetCfgComponentControl, 0x932238DF,0xBEA1,0x11D0,0x92,0x98,0x00,0xC0,0x4f,0xC9,0x9D,0xCF); +DEFINE_GUID(FMTID_SummaryInformation,0xF29F85E0,0x4FF9,0x1068,0xAB,0x91,0x08,0x00,0x2B,0x27,0xB3,0xD9); +DEFINE_GUID(FMTID_DocSummaryInformation,0xD5CDD502,0x2E9C,0x101B,0x93,0x97,0x08,0x00,0x2B,0x2C,0xF9,0xAE); +DEFINE_GUID(FMTID_UserDefinedProperties,0xD5CDD505,0x2E9C,0x101B,0x93,0x97,0x08,0x00,0x2B,0x2C,0xF9,0xAE); +DEFINE_GUID(CLSID_InProcFreeMarshaler, 0x0000033a,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); +DEFINE_GUID(CLSID_TF_ThreadMgr, 0x529a9e6b,0x6587,0x4f23,0xab,0x9e,0x9c,0x7d,0x68,0x3e,0x3c,0x50); +DEFINE_GUID(CLSID_TF_InputProcessorProfiles, 0x33c53a50,0xf456,0x4884,0xb0,0x49,0x85,0xfd,0x64,0x3e,0xcf,0xed); +DEFINE_GUID(CLSID_TF_CategoryMgr, 0xA4B544A1,0x438D,0x4B41,0x93,0x25,0x86,0x95,0x23,0xE2,0xD6,0xC7); +DEFINE_GUID(CLSID_TF_LangBarMgr, 0xebb08c45,0x6c4a,0x4fdc,0xae,0x53,0x4e,0xb8,0xc4,0xc7,0xdb,0x8e); +DEFINE_GUID(CLSID_TF_DisplayAttributeMgr, 0x3ce74de4,0x53d3,0x4d74,0x8b,0x83,0x43,0x1b,0x38,0x28,0xba,0x53); +DEFINE_GUID(CLSID_TaskbarList, 0x56fdf344,0xfd6d,0x11d0,0x95,0x8a,0x00,0x60,0x97,0xc9,0xa0,0x90); +DEFINE_GUID(GUID_TFCAT_TIP_KEYBOARD, 0x34745c63,0xb2f0,0x4784,0x8b,0x67,0x5e,0x12,0xc8,0x70,0x1a,0x31); +DEFINE_GUID(GUID_TFCAT_TIP_SPEECH, 0xB5A73CD1,0x8355,0x426B,0xA1,0x61,0x25,0x98,0x08,0xF2,0x6B,0x14); +DEFINE_GUID(GUID_TFCAT_TIP_HANDWRITING, 0x246ecb87,0xc2f2,0x4abe,0x90,0x5b,0xc8,0xb3,0x8a,0xdd,0x2c,0x43); +DEFINE_GUID(CLSID_ConnectionManager, 0xBA126AD1,0x2166,0x11D1,0xB1,0xD0,0x0,0x80,0x5F,0xC1,0x27,0x0E); +DEFINE_GUID(CLSID_CNetCfg, 0x5B035261,0x40F9,0x11D1,0xAA,0xEC,0x00,0x80,0x5F,0xC1,0x27,0x0E); +DEFINE_GUID(GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER, 0x046B8C80,0x1647,0x40F7,0x9B,0x21,0xB9,0x3B,0x81,0xAA,0xBC,0x1B); +DEFINE_GUID(GUID_COMPARTMENT_KEYBOARD_DISABLED, 0x71a5b253,0x1951,0x466b,0x9f,0xbc,0x9c,0x88,0x08,0xfa,0x84,0xf2); +DEFINE_GUID(GUID_COMPARTMENT_KEYBOARD_OPENCLOSE, 0x58273aad,0x01bb,0x4164,0x95,0xc6,0x75,0x5b,0xa0,0xb5,0x16,0x2d); +DEFINE_GUID(GUID_COMPARTMENT_HANDWRITING_OPENCLOSE, 0xf9ae2c6b,0x1866,0x4361,0xaf,0x72,0x7a,0xa3,0x09,0x48,0x89,0x0e); +DEFINE_GUID(GUID_COMPARTMENT_SPEECH_DISABLED, 0x56c5c607,0x0703,0x4e59,0x8e,0x52,0xcb,0xc8,0x4e,0x8b,0xbe,0x35); +DEFINE_GUID(GUID_COMPARTMENT_SPEECH_OPENCLOSE, 0x544d6a63,0xe2e8,0x4752,0xbb,0xd1,0x00,0x09,0x60,0xbc,0xa0,0x83); +DEFINE_GUID(GUID_COMPARTMENT_SPEECH_GLOBALSTATE, 0x2a54fe8e,0x0d08,0x460c,0xa7,0x5d,0x87,0x03,0x5f,0xf4,0x36,0xc5); +DEFINE_GUID(GUID_COMPARTMENT_PERSISTMENUENABLED, 0x575f3783,0x70c8,0x47c8,0xae,0x5d,0x91,0xa0,0x1a,0x1f,0x75,0x92); +DEFINE_GUID(GUID_COMPARTMENT_EMPTYCONTEXT, 0xd7487dbf,0x804e,0x41c5,0x89,0x4d,0xad,0x96,0xfd,0x4e,0xea,0x13); +DEFINE_GUID(GUID_COMPARTMENT_TIPUISTATUS, 0x148ca3ec,0x0366,0x401c,0x8d,0x75,0xed,0x97,0x8d,0x85,0xfb,0xc9); + +DEFINE_GUID(IID_IDsObjectPicker, 0x0c87e64e, 0x3b7a, 0x11d2, 0x00b9, 0xe0,0x00,0xc0,0x4f,0xd8,0xdb,0xf7); +DEFINE_GUID(CLSID_DsObjectPicker, 0x17d6ccd8, 0x3b7b, 0x11d2, 0x00b9, 0xe0,0x00,0xc0,0x4f,0xd8,0xdb,0xf7); +DEFINE_GUID(IID_IDeskBarClient, 0xEB0FE175, 0x1A3A, 0x11D0, 0x89,0xB3, 0x00,0xA0,0xC9,0x0A,0x90,0xAC); +DEFINE_GUID(CLSID_StdPicture, 0x0BE35204, 0x8F91, 0x11CE, 0x9D,0xE3, 0x00,0xAA,0x00,0x4B,0xB8,0x51); +DEFINE_GUID(CLSID_StdFont, 0x0BE35203, 0x8F91, 0x11CE, 0x9D,0xE3, 0x00,0xAA,0x00,0x4B,0xB8,0x51); + +DEFINE_GUID(CLSID_ShellItem, 0x2fe352ea, 0xfd1f, 0x11d2, 0xb1, 0xf4, 0x00, 0xc0, 0x4f, 0x8e, 0xeb, 0x3e); diff --git a/reactos/lib/sdk/uuid/qosguid.c b/reactos/lib/sdk/uuid/qosguid.c new file mode 100644 index 00000000000..5235fec845b --- /dev/null +++ b/reactos/lib/sdk/uuid/qosguid.c @@ -0,0 +1,19 @@ + +#include + +//GUID_QOS_ENABLE_WINDOW_ADJUSTMENT +//GUID_QOS_ENABLE_AVG_STATS +//GUID_QOS_FLOW_8021P_NONCONFORMING +//GUID_QOS_FLOW_8021P_CONFORMING +//GUID_QOS_FLOW_IP_NONCONFORMING +//GUID_QOS_FLOW_IP_CONFORMING +//GUID_QOS_TIMER_RESOLUTION +//GUID_QOS_ISSLOW_FLOW +//GUID_QOS_FLOW_MODE +//GUID_QOS_STATISTICS_BUFFER +//GUID_QOS_MAX_OUTSTANDING_SENDS +//GUID_QOS_NON_BESTEFFORT_LIMIT +//GUID_QOS_FLOW_COUNT +//GUID_QOS_LATENCY +//GUID_QOS_BESTEFFORT_BANDWIDTH +//GUID_QOS_REMAINING_BANDWIDTH diff --git a/reactos/lib/sdk/uuid/shguids.c b/reactos/lib/sdk/uuid/shguids.c new file mode 100644 index 00000000000..626540218dc --- /dev/null +++ b/reactos/lib/sdk/uuid/shguids.c @@ -0,0 +1,118 @@ + +#include + +#include +#include + +//BHID_LinkTargetItem +//BHID_SFObject +//BHID_SFUIObject +//BHID_SFViewObject +//BHID_Storage +//BHID_StorageEnum +//BHID_Stream +//CGID_MENUDESKBAR +//CGID_ShortCut +//CLSID_ACLCustomMRU +//CLSID_ACLHistory +//CLSID_ACLMRU +//CLSID_ActiveDesktop +//CLSID_CFSIconOverlayManager +//CLSID_CommonQuery +//CLSID_DarwinAppPublisher +//CLSID_DocFileColumnProvider +//CLSID_DocHostUIHandler +//CLSID_DsDisplaySpecifier +//CLSID_DsDomainTreeBrowser +//CLSID_DsFindAdvanced +//CLSID_DsFindComputer +//CLSID_DsFindContainer +//CLSID_DsFindDomainController +//CLSID_DsFindObjects +//CLSID_DsFindPeople +//CLSID_DsFindPrinter +//CLSID_DsFindVolume +//CLSID_DsFolderProperties +//CLSID_DsPropertyPages +//CLSID_DsQuery +//CLSID_FileSysColumnProvider +//CLSID_FileTypes +//CLSID_FolderItem +//CLSID_FolderItemsFDF +//CLSID_HWShellExecute +//CLSID_ISFBand +//CLSID_LinkColumnProvider +//CLSID_MSOButtons +//CLSID_MenuBandSite +//CLSID_MenuToolbarBase +//CLSID_MicrosoftDS +//CLSID_MountedVolume +//CLSID_QuickLinks +//CLSID_ShellTaskScheduler +//CLSID_ShellThumbnailDiskCache +//CLSID_StgFolder +//CLSID_ToolbarExtButtons +//FMTID_Briefcase +//FMTID_DRM +//FMTID_ImageProperties +//FMTID_MUSIC +//FMTID_Misc +//FMTID_Query +//FMTID_Volume +//FMTID_WebView +//IID_CDefView +//IID_IADesktopP2 +//IID_IActiveDesktop +//IID_IActiveDesktopP +//IID_IAutoCompList +//IID_IBanneredBar +//IID_IBriefcaseStg +//IID_IColumnProvider +//IID_ICommDlgBrowser2 +//IID_ICommonQuery +//IID_IContextMenu3 +//IID_ICurrentWorkingDirectory +//IID_IDefViewFrame +//IID_IDefViewID +//IID_IDiscardableBrowserProperty +//IID_IDocViewSite +//IID_IDockingWindowFrame +//IID_IDragSourceHelper +//IID_IDropTargetHelper +//IID_IDsBrowseDomainTree +//IID_IEnumExtraSearch +//IID_IEnumShellImageStore +//IID_IFileSystemBindData +//IID_IMountedVolume +//IID_INamedPropertyBag +//IID_IPersistFolder3 +//IID_IPersistQuery +//IID_IPrintDialogCallback +//IID_IPrintDialogServices +//IID_IQueryForm +//IID_IQueryFrame +//IID_IQueryHandler +//IID_IResolveShellLink +//IID_IRunnableTask +//IID_ISearchContext +//IID_IShellChangeNotify +//IID_IShellDetails3 +//IID_IShellFolder2 in shobjidl +//IID_IShellFolderBand +//IID_IShellIcon shlguid.h +//IID_IShellIconOverlay +//IID_IShellIconOverlayIdentifier in shlobj.h +//IID_IShellIconOverlayManager +//IID_IShellImageStore +//IID_IShellLinkDataList in shobjidl +//IID_IShellTaskScheduler +//IID_IShellView2 +//IID_ISynchronizedCallBack +//IID_IThumbnailCapture +//IID_IURLSearchHook +//IID_IURLSearchHook2 +//SID_CtxQueryAssociations +//SID_DefView +//SID_MenuShellFolder +//SID_SGetViewFromViewDual +//SID_SMenuBandTop diff --git a/reactos/lib/sdk/uuid/tapi3iid.c b/reactos/lib/sdk/uuid/tapi3iid.c new file mode 100644 index 00000000000..fc137983662 --- /dev/null +++ b/reactos/lib/sdk/uuid/tapi3iid.c @@ -0,0 +1,23 @@ + +#include + +//TAPIPROTOCOL_Multicast +//TAPIPROTOCOL_H323 +//TAPIPROTOCOL_PSTN +//TAPIMEDIATYPE_G3Fax +//TAPIMEDIATYPE_DataModem +//TAPIMEDIATYPE_Video +//TAPIMEDIATYPE_Audio +//CLSID_FilePlaybackTerminal +//CLSID_FileRecordingTrack +//CLSID_FileRecordingTerminal +//CLSID_FileTerminal +//CLSID_SpeakersTerminal +//CLSID_BridgeTerminal +//CLSID_MediaStreamTerminal +//CLSID_MicrophoneTerminal +//CLSID_SpeakerphoneTerminal +//CLSID_HeadsetTerminal +//CLSID_HandsetTerminal +//CLSID_VideoInputTerminal +//CLSID_VideoWindowTerm diff --git a/reactos/lib/sdk/uuid/undoc.c b/reactos/lib/sdk/uuid/undoc.c new file mode 100644 index 00000000000..5e3fab46533 --- /dev/null +++ b/reactos/lib/sdk/uuid/undoc.c @@ -0,0 +1,8 @@ + +#ifndef INITGUID +#define INITGUID +#endif +#include + +#include + diff --git a/reactos/lib/sdk/uuid/vcguids.c b/reactos/lib/sdk/uuid/vcguids.c new file mode 100644 index 00000000000..dccba077867 --- /dev/null +++ b/reactos/lib/sdk/uuid/vcguids.c @@ -0,0 +1,44 @@ + +#include + +//DBBMK_END +//DBBMK_BEGINNING +//DBBMK_CURRENT +//DBBMK_INVALID +//COLUMN_BMKPERSISTREL +//COLUMN_BMKPERSIST +//COLUMN_BMKSESSIONREL +//COLUMN_BMKSESSION +//COLUMN_BMKCURSORREL +//COLUMN_BMKCURSOR +//COLUMN_BMKTEMPORARYREL +//COLUMN_BMKTEMPORARY +//COLUMN_STATUS +//COLUMN_VERSION +//COLUMN_UPDATABLE +//COLUMN_UNIQUE +//COLUMN_TYPE +//COLUMN_SEARCHABLE +//COLUMN_SCALE +//COLUMN_ROWENTRYID +//COLUMN_NUMBER +//COLUMN_PHYSICALSORT +//COLUMN_NULLABLE +//COLUMN_NAME +//COLUMN_MULTIVALUED +//COLUMN_MAXLENGTH +//COLUMN_HASDEFAULT +//COLUMN_FIXED +//COLUMN_ENTRYIDMAXLENGTH +//COLUMN_DEFAULTVALUE +//COLUMN_DATACOLUMN +//COLUMN_CURSORCOLUMN +//COLUMN_COLUMNID +//COLUMN_COLLATINGORDER +//COLUMN_CASESENSITIVE +//COLUMN_BINDTYPE +//COLUMN_BINARYCOMPARABLE +//COLUMN_BASENAME +//COLUMN_BASECOLUMNNAME +//COLUMN_AUTOINCREMENT +//COLUMNID_INVALID diff --git a/reactos/lib/sdk/uuid/wdmguids.c b/reactos/lib/sdk/uuid/wdmguids.c new file mode 100644 index 00000000000..283b5df5c4c --- /dev/null +++ b/reactos/lib/sdk/uuid/wdmguids.c @@ -0,0 +1,4 @@ + +#include +#include + diff --git a/reactos/lib/sdk/wdmguid/CMakeLists.txt b/reactos/lib/sdk/wdmguid/CMakeLists.txt new file mode 100644 index 00000000000..2203b0851f2 --- /dev/null +++ b/reactos/lib/sdk/wdmguid/CMakeLists.txt @@ -0,0 +1,2 @@ + +add_library(wdmguid wdmguid.c) diff --git a/reactos/lib/smlib/CMakeLists.txt b/reactos/lib/smlib/CMakeLists.txt new file mode 100644 index 00000000000..1151b92dde7 --- /dev/null +++ b/reactos/lib/smlib/CMakeLists.txt @@ -0,0 +1,13 @@ + +add_definitions(-D_DLL -D__USE_CRTIMP) + +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/subsys) + +list(APPEND SOURCE + compses.c + connect.c + execpgm.c + lookupss.c) + +add_library(smlib ${SOURCE}) +add_dependencies(smlib psdk) diff --git a/reactos/lib/tdilib/CMakeLists.txt b/reactos/lib/tdilib/CMakeLists.txt new file mode 100644 index 00000000000..310fa4af02b --- /dev/null +++ b/reactos/lib/tdilib/CMakeLists.txt @@ -0,0 +1,5 @@ + +# FIXFIX: You guys should move this header in include/reactos/libs/iphlpapi! +include_directories(${REACTOS_SOURCE_DIR}/dll/win32/iphlpapi) +add_library(tdilib enum.c handle.c) +add_dependencies(tdilib psdk) diff --git a/reactos/media/CMakeLists.txt b/reactos/media/CMakeLists.txt new file mode 100644 index 00000000000..87b64003cdb --- /dev/null +++ b/reactos/media/CMakeLists.txt @@ -0,0 +1,9 @@ +add_subdirectory(fonts) +add_subdirectory(inf) +add_subdirectory(nls) +add_subdirectory(vgafonts) + +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/drivers/etc/hosts DESTINATION reactos/system32/drivers/etc FOR all) +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/drivers/etc/KDBinit DESTINATION reactos/system32/drivers/etc FOR all) +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/drivers/etc/services DESTINATION reactos/system32/drivers/etc FOR all) +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/sounds/ReactOS_LogOn.wav DESTINATION reactos/media FOR all) \ No newline at end of file diff --git a/reactos/media/fonts/CMakeLists.txt b/reactos/media/fonts/CMakeLists.txt new file mode 100644 index 00000000000..d0836ac0622 --- /dev/null +++ b/reactos/media/fonts/CMakeLists.txt @@ -0,0 +1,38 @@ +list(APPEND FONT_FILES + DejaVuSans.ttf + DejaVuSans-Bold.ttf + DejaVuSans-BoldOblique.ttf + DejaVuSans-Oblique.ttf + DejaVuSansMono.ttf + DejaVuSansMono-Bold.ttf + DejaVuSansMono-BoldOblique.ttf + DejaVuSansMono-Oblique.ttf + DejaVuSerif.ttf + DejaVuSerif-Bold.ttf + DejaVuSerif-BoldItalic.ttf + DejaVuSerif-Italic.ttf + FreeMono.ttf + FreeMonoBold.ttf + FreeMonoBoldOblique.ttf + FreeMonoOblique.ttf + LiberationMono-Bold.ttf + LiberationMono-BoldItalic.ttf + LiberationMono-Italic.ttf + LiberationMono-Regular.ttf + LiberationSans-Bold.ttf + LiberationSans-BoldItalic.ttf + LiberationSans-Italic.ttf + LiberationSans-Regular.ttf + LiberationSerif-Bold.ttf + LiberationSerif-BoldItalic.ttf + LiberationSerif-Italic.ttf + LiberationSerif-Regular.ttf + Marlett.ttf + symbol.ttf + tahoma.ttf + tahomabd.ttf +) + +foreach(item ${FONT_FILES}) + add_cd_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/${item}" DESTINATION reactos/Fonts FOR all) +endforeach(item) \ No newline at end of file diff --git a/reactos/media/inf/CMakeLists.txt b/reactos/media/inf/CMakeLists.txt new file mode 100644 index 00000000000..f21f8eb15ba --- /dev/null +++ b/reactos/media/inf/CMakeLists.txt @@ -0,0 +1,36 @@ +list(APPEND INF_FILES + acpi.inf + audio.inf + battery.inf + bda.inf + cdrom.inf + cpu.inf + display.inf + fdc.inf + font.inf + hdc.inf + intl.inf + keyboard.inf + ks.inf + kscaptur.inf + layout.inf + machine.inf + msmouse.inf + NET_NIC.inf + netamd.inf + netisa.inf + netrtpnt.inf + nettcpip.inf + ports.inf + scsi.inf + usb.inf + usbport.inf + usbstor.inf + xboxdisp.inf +) + +foreach(item ${INF_FILES}) + add_cd_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/${item}" DESTINATION reactos/inf FOR all) +endforeach(item) + +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/syssetup.inf DESTINATION reactos/inf FOR all) \ No newline at end of file diff --git a/reactos/media/inf/syssetup.inf b/reactos/media/inf/syssetup.inf new file mode 100644 index 00000000000..f293c265a58 --- /dev/null +++ b/reactos/media/inf/syssetup.inf @@ -0,0 +1,83 @@ +[Version] +Signature = $Windows NT$ +ClassGUID = {00000000-0000-0000-0000-000000000000} + +[DeviceInfsToInstall] +battery.inf +cdrom.inf +display.inf +fdc.inf +hdc.inf +keyboard.inf +machine.inf +msmouse.inf +NET_NIC.inf +ports.inf +scsi.inf +usbport.inf +audio.inf +ks.inf + +[RegistrationPhase2] +RegisterDlls = OleControlDlls + +[OleControlDlls] +11,,actxprxy.dll,1 +11,,amstream.dll,1 +11,,atl.dll,1 +11,,avifil32.dll,1 +11,,browseui.dll,1 +11,,comcat.dll,1 +11,,comctl32.dll,2 +11,,cryptdlg.dll,1 +11,,cryptnet.dll,1 +11,,ddraw.dll,1 +11,,devenum.dll,1 +11,,dinput.dll,1 +11,,dinput8.dll,1 +11,,dmusic.dll,1 +11,,dplayx.dll,1 +11,,dsound.dll,1 +11,,dxdiagn.dll,1 +11,,hhctrl.ocx,1 +11,,hlink.dll,1 +11,,hnetcfg.dll,1 +11,,inetcomm.dll,1 +11,,inseng.dll,1 +11,,itss.dll,1 +11,,jscript.dll,1 +11,,ksproxy.ax,1 +11,,mlang.dll,1 +11,,mscat32.dll,1 +11,,msctf.dll,1 +11,,mshtml.dll,3 +11,,msi.dll,1 +11,,msimtf.dll,1 +11,,msisip.dll,1 +11,,mstask.dll,1 +11,,msxml3.dll,1 +11,,netcfgx.dll,1 +11,,netshell.dll,1 +11,,objsel.dll,1 +11,,ole32.dll,1 +11,,oleacc.dll,1 +11,,oleaut32.dll,1 +11,,olepro32.dll,1 +11,,pstorec.dll,1 +11,,qedit.dll,1 +11,,qmgr.dll,1 +11,,qmgrprxy.dll,1 +11,,quartz.dll,1 +11,,rpcrt4.dll,1 +11,,rsabase.dll,1 +11,,rsaenh.dll,1 +11,,shdocvw.dll,3 +11,,shell32.dll,3 +11,,softpub.dll,1 +11,,sti.dll,1 +11,,urlmon.dll,3 +11,,windowscodecs.dll,1 +11,,winhttp.dll,1 +11,,wininet.dll,2 +11,,wintrust.dll,1 +11,,wuapi.dll,1 diff --git a/reactos/media/nls/CMakeLists.txt b/reactos/media/nls/CMakeLists.txt new file mode 100644 index 00000000000..13007972da3 --- /dev/null +++ b/reactos/media/nls/CMakeLists.txt @@ -0,0 +1,68 @@ +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/l_intl.nls DESTINATION reactos/system32 NO_CAB FOR all) +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/c_437.nls DESTINATION reactos/system32 NO_CAB FOR all) +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/c_1252.nls DESTINATION reactos/system32 NO_CAB FOR all) + +list(APPEND NLS_FILES + c_037.nls + c_424.nls + c_500.nls + c_737.nls + c_775.nls + c_850.nls + c_852.nls + c_855.nls + c_856.nls + c_857.nls + c_860.nls + c_861.nls + c_862.nls + c_863.nls + c_864.nls + c_865.nls + c_866.nls + c_869.nls + c_874.nls + c_875.nls + c_878.nls + c_932.nls + c_936.nls + c_949.nls + c_950.nls + c_1006.nls + c_1026.nls + c_1250.nls + c_1251.nls + c_1253.nls + c_1254.nls + c_1255.nls + c_1256.nls + c_1257.nls + c_1258.nls + c_10000.nls + c_10006.nls + c_10007.nls + c_10029.nls + c_10079.nls + c_10081.nls + c_20866.nls + c_21866.nls + c_28591.nls + c_28592.nls + c_28593.nls + c_28594.nls + c_28595.nls + c_28596.nls + c_28597.nls + c_28598.nls + c_28599.nls + c_28600.nls + c_28603.nls + c_28604.nls + c_28605.nls + c_28606.nls +) + + +foreach(item ${NLS_FILES}) + add_cd_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/${item}" DESTINATION reactos/system32 FOR all) +endforeach(item) diff --git a/reactos/media/vgafonts/CMakeLists.txt b/reactos/media/vgafonts/CMakeLists.txt new file mode 100644 index 00000000000..b3ae7540c8e --- /dev/null +++ b/reactos/media/vgafonts/CMakeLists.txt @@ -0,0 +1,19 @@ + +list(APPEND SOURCE + ${CMAKE_CURRENT_SOURCE_DIR}/437-8x8.bin + ${CMAKE_CURRENT_SOURCE_DIR}/737-8x8.bin + ${CMAKE_CURRENT_SOURCE_DIR}/775-8x8.bin + ${CMAKE_CURRENT_SOURCE_DIR}/850-8x8.bin + ${CMAKE_CURRENT_SOURCE_DIR}/852-8x8.bin + ${CMAKE_CURRENT_SOURCE_DIR}/865-8x8.bin + ${CMAKE_CURRENT_SOURCE_DIR}/866-8x8.bin + ${CMAKE_CURRENT_SOURCE_DIR}/932-8x8.bin +) + +add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/vgafonts.cab + COMMAND native-cabman -M raw -S ${CMAKE_CURRENT_BINARY_DIR}/vgafonts.cab ${SOURCE} + DEPENDS ${SOURCE}) + +add_custom_target(vgafonts DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/vgafonts.cab) + +add_cd_file(TARGET vgafonts FILE ${CMAKE_CURRENT_BINARY_DIR}/vgafonts.cab DESTINATION reactos NO_CAB FOR all) \ No newline at end of file diff --git a/reactos/modules/CMakeLists.txt b/reactos/modules/CMakeLists.txt new file mode 100644 index 00000000000..9c8ee987616 --- /dev/null +++ b/reactos/modules/CMakeLists.txt @@ -0,0 +1,4 @@ + +if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/rostests/) +add_subdirectory(rostests) +endif() diff --git a/reactos/msc.cmake b/reactos/msc.cmake new file mode 100644 index 00000000000..66558a6882a --- /dev/null +++ b/reactos/msc.cmake @@ -0,0 +1,208 @@ + +if(${CMAKE_BUILD_TYPE} MATCHES Debug) + # no optimitation +elseif(OPTIMIZE STREQUAL "1") + add_definitions(/O1) +elseif(OPTIMIZE STREQUAL "2") + add_definitions(/O2) +elseif(OPTIMIZE STREQUAL "3") + add_definitions(/Ot /Ox /GS-) +elseif(OPTIMIZE STREQUAL "4") + add_definitions(/Os /Ox /GS-) +elseif(OPTIMIZE STREQUAL "5") + add_definitions(/GF /Gy /Ob2 /Os /Ox /GS-) +endif() + +add_definitions(/X /GR- /GS- /Zl) +add_definitions(-Dinline=__inline -D__STDC__=1) + +if(${_MACHINE_ARCH_FLAG} MATCHES X86) + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO") + set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /SAFESEH:NO") +endif() + +if(${ARCH} MATCHES amd64) + add_definitions(-D__x86_64) +endif() + +link_directories("${REACTOS_BINARY_DIR}/importlibs" ${REACTOS_BINARY_DIR}/lib/3rdparty/mingw) + +set(CMAKE_RC_CREATE_SHARED_LIBRARY ${CMAKE_C_CREATE_SHARED_LIBRARY}) +set(CMAKE_ASM_CREATE_SHARED_LIBRARY ${CMAKE_C_CREATE_SHARED_LIBRARY}) + +macro(add_pch _target_name _header_filename _src_list) + get_filename_component(FILE ${_header_filename} NAME) + set(_gch_filename "${_target_name}_${FILE}.gch") + add_custom_command( + OUTPUT ${_gch_filename} + COMMAND echo Ignoring precompiled header + DEPENDS ${_header_filename}) +endmacro() + +macro(add_linkerflag MODULE _flag) + set(NEW_LINKER_FLAGS ${_flag}) + get_target_property(LINKER_FLAGS ${MODULE} LINK_FLAGS) + if(LINKER_FLAGS) + set(NEW_LINKER_FLAGS "${LINKER_FLAGS} ${NEW_LINKER_FLAGS}") + endif() + set_target_properties(${MODULE} PROPERTIES LINK_FLAGS ${NEW_LINKER_FLAGS}) +endmacro() + +macro(set_entrypoint MODULE ENTRYPOINT) + if(${ENTRYPOINT} STREQUAL "0") + add_linkerflag(${MODULE} "/NOENTRY") + else() + add_linkerflag(${MODULE} "/ENTRY:${ENTRYPOINT}") + endif() +endmacro() + +macro(set_subsystem MODULE SUBSYSTEM) + add_linkerflag(${MODULE} "/subsystem:${SUBSYSTEM}") +endmacro() + +macro(set_image_base MODULE IMAGE_BASE) + add_linkerflag(${MODULE} "/BASE:${IMAGE_BASE}") +endmacro() + +macro(set_module_type MODULE TYPE) + add_dependencies(${MODULE} psdk) + if(${TYPE} MATCHES nativecui) + set_subsystem(${MODULE} native) + set_entrypoint(${MODULE} NtProcessStartup@4) + endif() + if (${TYPE} MATCHES win32gui) + set_subsystem(${MODULE} windows) + set_entrypoint(${MODULE} WinMainCRTStartup) + if(IS_UNICODE) + target_link_libraries(${MODULE} mingw_wmain) + else() + target_link_libraries(${MODULE} mingw_main) + endif() + target_link_libraries(${MODULE} mingw_common msvcsup) + endif () + if (${TYPE} MATCHES win32cui) + set_subsystem(${MODULE} console) + set_entrypoint(${MODULE} mainCRTStartup) + if(IS_UNICODE) + target_link_libraries(${MODULE} mingw_wmain) + else() + target_link_libraries(${MODULE} mingw_main) + endif() + target_link_libraries(${MODULE} mingw_common msvcsup) + endif () + if(${TYPE} MATCHES win32dll) + # Need this only because mingw library is broken + set_entrypoint(${MODULE} DllMainCRTStartup@12) + if(DEFINED baseaddress_${MODULE}) + set_image_base(${MODULE} ${baseaddress_${MODULE}}) + else() + message(STATUS "${MODULE} has no base address") + endif() + target_link_libraries(${MODULE} mingw_common mingw_dllmain msvcsup) + add_linkerflag(${MODULE} "/DLL") + endif() + if(${TYPE} MATCHES win32ocx) + set_entrypoint(${MODULE} DllMainCRTStartup@12) + set_target_properties(${MODULE} PROPERTIES SUFFIX ".ocx") + target_link_libraries(${MODULE} mingw_common mingw_dllmain msvcsup) + add_linkerflag(${MODULE} "/DLL") + endif() + if(${TYPE} MATCHES cpl) + set_entrypoint(${MODULE} DllMainCRTStartup@12) + set_target_properties(${MODULE} PROPERTIES SUFFIX ".cpl") + target_link_libraries(${MODULE} mingw_common mingw_dllmain msvcsup) + add_linkerflag(${MODULE} "/DLL") + endif() + if(${TYPE} MATCHES kernelmodedriver) + set_target_properties(${MODULE} PROPERTIES SUFFIX ".sys") + set_entrypoint(${MODULE} DriverEntry@8) + set_subsystem(${MODULE} native) + set_image_base(${MODULE} 0x00010000) + add_linkerflag(${MODULE} "/DRIVER") + add_dependencies(${MODULE} bugcodes) + target_link_libraries(${MODULE} msvcsup) + endif() +endmacro() + +macro(set_unicode) + add_definitions(-DUNICODE -D_UNICODE) + set(IS_UNICODE 1) +endmacro() + +macro(set_rc_compiler) +# dummy, this workaround is only needed in mingw due to lack of RC support in cmake +endmacro() + +# Thanks MS for creating a stupid linker +macro(add_importlib_target _exports_file) + get_filename_component(_name ${_exports_file} NAME_WE) + get_target_property(_suffix ${_name} SUFFIX) + if(${_suffix} STREQUAL "_suffix-NOTFOUND") + get_target_property(_type ${_name} TYPE) + if(${_type} MATCHES EXECUTABLE) + set(_suffix ".exe") + else() + set(_suffix ".dll") + endif() + endif() + + # Generate the asm stub file and the export def file + add_custom_command( + OUTPUT ${CMAKE_BINARY_DIR}/importlibs/lib${_name}_stubs.asm ${CMAKE_BINARY_DIR}/importlibs/lib${_name}_exp.def + COMMAND native-spec2def --ms --kill-at -r -n=${_name}${_suffix} -d=${CMAKE_BINARY_DIR}/importlibs/lib${_name}_exp.def -l=${CMAKE_BINARY_DIR}/importlibs/lib${_name}_stubs.asm ${CMAKE_CURRENT_SOURCE_DIR}/${_exports_file} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_exports_file}) + + # Assemble the stub file + add_custom_command( + OUTPUT ${CMAKE_BINARY_DIR}/importlibs/lib${_name}_stubs.obj + COMMAND ${CMAKE_ASM_COMPILER} /nologo /Cp /Fo${CMAKE_BINARY_DIR}/importlibs/lib${_name}_stubs.obj /c /Ta ${CMAKE_BINARY_DIR}/importlibs/lib${_name}_stubs.asm + DEPENDS "${CMAKE_BINARY_DIR}/importlibs/lib${_name}_stubs.asm") + + # Add neccessary importlibs for redirections + set(_libraries "") + foreach(_lib ${ARGN}) + list(APPEND _libraries "${CMAKE_BINARY_DIR}/importlibs/${_lib}.lib") + list(APPEND _dependencies ${_lib}) + endforeach() + + # Build the importlib + add_custom_command( + OUTPUT ${CMAKE_BINARY_DIR}/importlibs/lib${_name}.lib + COMMAND LINK /LIB /NOLOGO /MACHINE:X86 /DEF:${CMAKE_BINARY_DIR}/importlibs/lib${_name}_exp.def /OUT:${CMAKE_BINARY_DIR}/importlibs/lib${_name}.lib ${CMAKE_BINARY_DIR}/importlibs/lib${_name}_stubs.obj ${_libraries} + DEPENDS ${CMAKE_BINARY_DIR}/importlibs/lib${_name}_stubs.obj ${CMAKE_BINARY_DIR}/importlibs/lib${_name}_exp.def) + + # Add the importlib target + add_custom_target( + lib${_name} + DEPENDS ${CMAKE_BINARY_DIR}/importlibs/lib${_name}.lib) + + add_dependencies(lib${_name} asm ${_dependencies}) +endmacro() + +macro(add_importlibs MODULE) + foreach(LIB ${ARGN}) + target_link_libraries(${MODULE} ${CMAKE_BINARY_DIR}/importlibs/lib${LIB}.lib) + add_dependencies(${MODULE} lib${LIB}) + endforeach() +endmacro() + +macro(spec2def _dllname _spec_file) + get_filename_component(_file ${_spec_file} NAME_WE) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_file}.def ${CMAKE_CURRENT_BINARY_DIR}/${_file}_stubs.c + COMMAND native-spec2def --ms --kill-at -n=${_dllname} -d=${CMAKE_CURRENT_BINARY_DIR}/${_file}.def -s=${CMAKE_CURRENT_BINARY_DIR}/${_file}_stubs.c ${CMAKE_CURRENT_SOURCE_DIR}/${_spec_file} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_spec_file}) + set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${_file}.def ${CMAKE_CURRENT_BINARY_DIR}/${_file}_stubs.c + PROPERTIES GENERATED TRUE) +endmacro() + +macro(macro_mc FILE) + set(COMMAND_MC mc -r ${REACTOS_BINARY_DIR}/include/reactos -h ${REACTOS_BINARY_DIR}/include/reactos ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}.mc) +endmacro() + +file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/importlibs) + +#pseh workaround +set(PSEH_LIB "pseh") + diff --git a/reactos/ntoskrnl/CMakeLists.txt b/reactos/ntoskrnl/CMakeLists.txt new file mode 100644 index 00000000000..4ad133b4a22 --- /dev/null +++ b/reactos/ntoskrnl/CMakeLists.txt @@ -0,0 +1,455 @@ + +spec2def(ntoskrnl.exe ntoskrnl.spec) + +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) + +set_rc_compiler() + +set(NEWCC FALSE) + +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 + cache/section/data.c + cache/section/fault.c + cache/section/reqtools.c + cache/section/sptab.c + cache/section/swapout.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 + 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/fastinterlck.c + ex/fmutex.c + ex/handle.c + ex/harderr.c + ex/hdlsterm.c + ex/init.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 + ex/zw.S + 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/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/sysldr.c + mm/ARM3/syspte.c + mm/ARM3/vadnode.c + mm/ARM3/virtual.c + mm/ARM3/zeropage.c + mm/anonmem.c + mm/balance.c + mm/freelist.c + mm/marea.c + mm/mmfault.c + mm/mminit.c + mm/pagefile.c + mm/pageop.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/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 + ${CMAKE_CURRENT_BINARY_DIR}/ntoskrnl.def) + +if(ARCH MATCHES i386) + list(APPEND SOURCE + config/i386/cmhardwr.c + ex/i386/interlck_asm.S + ex/i386/fastinterlck_asm.S + ex/i386/ioport.S + ke/freeldr.c + ke/i386/abios.c + ke/i386/cpu.c + ke/i386/context.c + ke/i386/ctxswitch.S + 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/trap.s + ke/i386/traphdlr.c + ke/i386/usercall_asm.S + 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 + rtl/i386/stack.S + vdm/vdmmain.c + vdm/vdmexec.c) +elseif(ARCH MATCHES amd64) + list(APPEND SOURCE + config/i386/cmhardwr.c + ex/amd64/fastinterlck.c + ke/amd64/boot.S + ke/amd64/context.c + ke/amd64/cpu.c + ke/amd64/ctxswitch.S + ke/amd64/except.c + ke/amd64/interrupt.c + ke/amd64/irql.c + ke/amd64/kiinit.c + ke/amd64/spinlock.c + ke/amd64/stubs.c + ke/amd64/thrdini.c + ke/amd64/trap.S + mm/amd64/init.c + mm/amd64/page.c + ps/amd64/psctx.c) +elseif(ARCH MATCHES arm) + list(APPEND SOURCE + config/arm/cmhardwr.c + ke/arm/boot.s + ke/arm/cpu.c + ke/arm/ctxswtch.s + ke/arm/exp.c + ke/arm/kiinit.c + ke/arm/stubs_asm.s + ke/arm/thrdini.c + ke/arm/trap.s + 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 MATCHES powerpc) + list(APPEND SOURCE + config/powerpc/cmhardwr.c + ke/powerpc/main_asm.S + 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 + ke/powerpc/ctxhelp.S + mm/powerpc/pfault.c + mm/powerpc/page.c) +endif() + +if(NOT _WINKD_) + if(ARCH MATCHES i386) + list(APPEND SOURCE + kd/i386/kdmemsup.c + kd/wrappers/gdbstub.c) + if(KDBG) + list(APPEND SOURCE + kdbg/i386/i386-dis.c + kdbg/i386/kdb_help.S) + endif() + elseif(ARCH MATCHES amd64) + list(APPEND SOURCE + kd/amd64/kd.c + kd/amd64/kdmemsup.c) + if(KDBG) + list(APPEND SOURCE + kdbg/amd64/i386-dis.c + kdbg/amd64/kdb_help.S + kdbg/amd64/kdb.c) + endif() + elseif(ARCH MATCHES powerpc) + list(APPEND SOURCE kd/wrappers/gdbstub_powerpc.c) + endif() + + if(KDBG) + list(APPEND SOURCE + kdbg/kdb.c + kdbg/kdb_cli.c + kdbg/kdb_expr.c + kdbg/kdb_keyboard.c + kdbg/kdb_serial.c) + endif() + + if(DBG OR KDBG) + list(APPEND SOURCE kdbg/kdb_symbols.cmake.c) + endif() + + list(APPEND SOURCE + kd/wrappers/bochs.c + kd/wrappers/kdbg.c + kd/kdinit.c + kd/kdio.c + kd/kdmain.c) + +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 MATCHES i386) + list(APPEND SOURCE kd64/i386/kdx86.c) + elseif(ARCH MATCHES amd64) + list(APPEND SOURCE kd64/amd64/kdx64.c) + elseif(ARCH MATCHES arm) + list(APPEND SOURCE kd64/arm/kdarm.c) + endif() + +endif() + +add_executable(ntoskrnl ${CMAKE_CURRENT_BINARY_DIR}/ntoskrnl_ntoskrnl.h.gch ${SOURCE}) + +set_entrypoint(ntoskrnl KiSystemStartup@4) +set_subsystem(ntoskrnl native) + +if(MSVC) + set_image_base(ntoskrnl 0x00400000) +else() + set_image_base(ntoskrnl 0x80800000) +endif() + +target_link_libraries(ntoskrnl + cportlib + csq + ${PSEH_LIB} + cmlib + rtl + rossym + libcntpr + wdmguid + ioevent) + +add_importlibs(ntoskrnl hal kdcom bootvid) + +add_pch(ntoskrnl ${CMAKE_CURRENT_SOURCE_DIR}/include/ntoskrnl.h ${SOURCE}) +add_dependencies(ntoskrnl psdk bugcodes asm) + +add_cd_file(TARGET ntoskrnl DESTINATION reactos/system32 NO_CAB FOR all) +add_importlib_target(ntoskrnl.spec) + +add_library(ntdllsys ntdll.S) +set_target_properties(ntdllsys PROPERTIES LINKER_LANGUAGE C) diff --git a/reactos/ntoskrnl/kdbg/kdb_symbols.cmake.c b/reactos/ntoskrnl/kdbg/kdb_symbols.cmake.c new file mode 100644 index 00000000000..64325b1ba17 --- /dev/null +++ b/reactos/ntoskrnl/kdbg/kdb_symbols.cmake.c @@ -0,0 +1,641 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: ntoskrnl/dbg/kdb_symbols.c + * PURPOSE: Getting symbol information... + * + * PROGRAMMERS: David Welch (welch@cwcom.net) + * Colin Finck (colin@reactos.org) + */ + +/* INCLUDES *****************************************************************/ + +#include + +#define NDEBUG +#include "../cache/section/newmm.h" +#include + +/* GLOBALS ******************************************************************/ + +typedef struct _IMAGE_SYMBOL_INFO_CACHE +{ + LIST_ENTRY ListEntry; + ULONG RefCount; + UNICODE_STRING FileName; + PROSSYM_INFO RosSymInfo; +} +IMAGE_SYMBOL_INFO_CACHE, *PIMAGE_SYMBOL_INFO_CACHE; + +typedef struct _ROSSYM_KM_OWN_CONTEXT { + ROSSYM_OWN_FILECONTEXT Rossym; + LARGE_INTEGER FileOffset; + PFILE_OBJECT FileObject; +} ROSSYM_KM_OWN_CONTEXT, *PROSSYM_KM_OWN_CONTEXT; + +static BOOLEAN LoadSymbols; +static LIST_ENTRY SymbolFileListHead; +static KSPIN_LOCK SymbolFileListLock; +static PROSSYM_INFO KdbpRosSymInfo; +static ULONG_PTR KdbpImageBase; +BOOLEAN KdbpSymbolsInitialized = FALSE; + +/* FUNCTIONS ****************************************************************/ + +static BOOLEAN +KdbpSeekSymFile(PVOID FileContext, ULONG_PTR Target) +{ + PROSSYM_KM_OWN_CONTEXT Context = (PROSSYM_KM_OWN_CONTEXT)FileContext; + Context->FileOffset.QuadPart = Target; + return TRUE; +} + +static BOOLEAN +KdbpReadSymFile(PVOID FileContext, PVOID Buffer, ULONG Length) +{ + PROSSYM_KM_OWN_CONTEXT Context = (PROSSYM_KM_OWN_CONTEXT)FileContext; + IO_STATUS_BLOCK Iosb; + NTSTATUS Status = MiSimpleRead + (Context->FileObject, + &Context->FileOffset, + Buffer, + Length, + FALSE, + &Iosb); + return NT_SUCCESS(Status); +} + +static PROSSYM_OWN_FILECONTEXT +KdbpCaptureFileForSymbols(PFILE_OBJECT FileObject) +{ + PROSSYM_KM_OWN_CONTEXT Context = ExAllocatePool(NonPagedPool, sizeof(*Context)); + if (!Context) return NULL; + ObReferenceObject(FileObject); + Context->FileOffset.QuadPart = 0; + Context->FileObject = FileObject; + Context->Rossym.ReadFileProc = KdbpReadSymFile; + Context->Rossym.SeekFileProc = KdbpSeekSymFile; + return &Context->Rossym; +} + +static VOID +KdbpReleaseFileForSymbols(PROSSYM_OWN_FILECONTEXT FileContext) +{ + PROSSYM_KM_OWN_CONTEXT Context = (PROSSYM_KM_OWN_CONTEXT)FileContext; + ObDereferenceObject(Context->FileObject); + ExFreePool(Context); +} + +static BOOLEAN +KdbpSymSearchModuleList( + IN PLIST_ENTRY current_entry, + IN PLIST_ENTRY end_entry, + IN PLONG Count, + IN PVOID Address, + IN LPCWSTR Name, + IN INT Index, + OUT PLDR_DATA_TABLE_ENTRY* pLdrEntry) +{ + while (current_entry && current_entry != end_entry) + { + *pLdrEntry = CONTAINING_RECORD(current_entry, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks); + + if ((Address && Address >= (PVOID)(*pLdrEntry)->DllBase && Address < (PVOID)((ULONG_PTR)(*pLdrEntry)->DllBase + (*pLdrEntry)->SizeOfImage)) || + (Name && !_wcsnicmp((*pLdrEntry)->BaseDllName.Buffer, Name, (*pLdrEntry)->BaseDllName.Length / sizeof(WCHAR))) || + (Index >= 0 && (*Count)++ == Index)) + { + return TRUE; + } + + current_entry = current_entry->Flink; + } + + return FALSE; +} + +/*! \brief Find a module... + * + * \param Address If \a Address is not NULL the module containing \a Address + * is searched. + * \param Name If \a Name is not NULL the module named \a Name will be + * searched. + * \param Index If \a Index is >= 0 the Index'th module will be returned. + * \param pLdrEntry Pointer to a PLDR_DATA_TABLE_ENTRY which is filled. + * + * \retval TRUE Module was found, \a pLdrEntry was filled. + * \retval FALSE No module was found. + */ +BOOLEAN +KdbpSymFindModule( + IN PVOID Address OPTIONAL, + IN LPCWSTR Name OPTIONAL, + IN INT Index OPTIONAL, + OUT PLDR_DATA_TABLE_ENTRY* pLdrEntry) +{ + LONG Count = 0; + PEPROCESS CurrentProcess; + + /* First try to look up the module in the kernel module list. */ + if(KdbpSymSearchModuleList(PsLoadedModuleList.Flink, + &PsLoadedModuleList, + &Count, + Address, + Name, + Index, + pLdrEntry)) + { + return TRUE; + } + + /* That didn't succeed. Try the module list of the current process now. */ + CurrentProcess = PsGetCurrentProcess(); + + if(!CurrentProcess || !CurrentProcess->Peb || !CurrentProcess->Peb->Ldr) + return FALSE; + + return KdbpSymSearchModuleList(CurrentProcess->Peb->Ldr->InLoadOrderModuleList.Flink, + &CurrentProcess->Peb->Ldr->InLoadOrderModuleList, + &Count, + Address, + Name, + Index, + pLdrEntry); +} + +/*! \brief Print address... + * + * Tries to lookup line number, file name and function name for the given + * address and prints it. + * If no such information is found the address is printed in the format + * , otherwise the format will be + * + * + * \retval TRUE Module containing \a Address was found, \a Address was printed. + * \retval FALSE No module containing \a Address was found, nothing was printed. + */ +BOOLEAN +KdbSymPrintAddress( + IN PVOID Address) +{ + PMEMORY_AREA MemoryArea = NULL; + PROS_SECTION_OBJECT SectionObject; + PLDR_DATA_TABLE_ENTRY LdrEntry; + PROSSYM_OWN_FILECONTEXT FileContext; + ULONG_PTR RelativeAddress; + NTSTATUS Status; + ULONG LineNumber; + CHAR FileName[256]; + CHAR FunctionName[256]; + + if (!KdbpSymbolsInitialized || !KdbpSymFindModule(Address, NULL, -1, &LdrEntry)) + return FALSE; + + RelativeAddress = (ULONG_PTR)Address - (ULONG_PTR)LdrEntry->DllBase; + Status = KdbSymGetAddressInformation(LdrEntry->PatchInformation, + RelativeAddress, + &LineNumber, + FileName, + FunctionName); + if (NT_SUCCESS(Status)) + { + DbgPrint("<%wZ:%x (%s:%d (%s))>", + &LdrEntry->BaseDllName, RelativeAddress, FileName, LineNumber, FunctionName); + return TRUE; + } + else if (Address < MmSystemRangeStart) + { + MemoryArea = MmLocateMemoryAreaByAddress(&PsGetCurrentProcess()->Vm, Address); + if (!MemoryArea || MemoryArea->Type != MEMORY_AREA_SECTION_VIEW) + { + goto end; + } + SectionObject = MemoryArea->Data.SectionData.Section; + if (!(SectionObject->AllocationAttributes & SEC_IMAGE)) goto end; + if (MemoryArea->StartingAddress != (PVOID)KdbpImageBase) + { + if (KdbpRosSymInfo) + { + RosSymDelete(KdbpRosSymInfo); + KdbpRosSymInfo = NULL; + KdbpImageBase = 0; + } + + if ((FileContext = KdbpCaptureFileForSymbols(SectionObject->FileObject))) + { + if (RosSymCreateFromFile(FileContext, &KdbpRosSymInfo)) + KdbpImageBase = (ULONG_PTR)MemoryArea->StartingAddress; + + KdbpReleaseFileForSymbols(FileContext); + } + } + + if (KdbpRosSymInfo) + { + RelativeAddress = (ULONG_PTR)Address - KdbpImageBase; + Status = KdbSymGetAddressInformation + (KdbpRosSymInfo, + RelativeAddress, + &LineNumber, + FileName, + FunctionName); + if (NT_SUCCESS(Status)) + { + DbgPrint + ("<%wZ:%x (%s:%d (%s))>", + &SectionObject->FileObject->FileName, + RelativeAddress, FileName, LineNumber, FunctionName); + return TRUE; + } + } + } + +end: + DbgPrint("<%wZ:%x>", &LdrEntry->BaseDllName, RelativeAddress); + + return TRUE; +} + + +/*! \brief Get information for an address (source file, line number, + * function name) + * + * \param SymbolInfo Pointer to ROSSYM_INFO. + * \param RelativeAddress Relative address to look up. + * \param LineNumber Pointer to an ULONG which is filled with the line + * number (can be NULL) + * \param FileName Pointer to an array of CHARs which gets filled with + * the filename (can be NULL) + * \param FunctionName Pointer to an array of CHARs which gets filled with + * the function name (can be NULL) + * + * \returns NTSTATUS error code. + * \retval STATUS_SUCCESS At least one of the requested informations was found. + * \retval STATUS_UNSUCCESSFUL None of the requested information was found. + */ +NTSTATUS +KdbSymGetAddressInformation( + IN PROSSYM_INFO RosSymInfo, + IN ULONG_PTR RelativeAddress, + OUT PULONG LineNumber OPTIONAL, + OUT PCH FileName OPTIONAL, + OUT PCH FunctionName OPTIONAL) +{ + if (!KdbpSymbolsInitialized || + !RosSymInfo || + !RosSymGetAddressInformation(RosSymInfo, RelativeAddress, LineNumber, FileName, FunctionName)) + { + return STATUS_UNSUCCESSFUL; + } + + return STATUS_SUCCESS; +} + +/*! \brief Find cached symbol file. + * + * Looks through the list of cached symbol files and tries to find an already + * loaded one. + * + * \param FileName FileName of the symbol file to look for. + * + * \returns A pointer to the cached symbol info. + * \retval NULL No cached info found. + * + * \sa KdbpSymAddCachedFile + */ +static PROSSYM_INFO +KdbpSymFindCachedFile( + IN PUNICODE_STRING FileName) +{ + PIMAGE_SYMBOL_INFO_CACHE Current; + PLIST_ENTRY CurrentEntry; + KIRQL Irql; + + KeAcquireSpinLock(&SymbolFileListLock, &Irql); + + CurrentEntry = SymbolFileListHead.Flink; + while (CurrentEntry != (&SymbolFileListHead)) + { + Current = CONTAINING_RECORD(CurrentEntry, IMAGE_SYMBOL_INFO_CACHE, ListEntry); + + if (RtlEqualUnicodeString(&Current->FileName, FileName, TRUE)) + { + Current->RefCount++; + KeReleaseSpinLock(&SymbolFileListLock, Irql); + DPRINT("Found cached file!\n"); + return Current->RosSymInfo; + } + + CurrentEntry = CurrentEntry->Flink; + } + + KeReleaseSpinLock(&SymbolFileListLock, Irql); + + DPRINT("Cached file not found!\n"); + return NULL; +} + +/*! \brief Add a symbol file to the cache. + * + * \param FileName Filename of the symbol file. + * \param RosSymInfo Pointer to the symbol info. + * + * \sa KdbpSymRemoveCachedFile + */ +static VOID +KdbpSymAddCachedFile( + IN PUNICODE_STRING FileName, + IN PROSSYM_INFO RosSymInfo) +{ + PIMAGE_SYMBOL_INFO_CACHE CacheEntry; + + DPRINT("Adding symbol file: RosSymInfo = %p\n", RosSymInfo); + + /* allocate entry */ + CacheEntry = ExAllocatePoolWithTag(NonPagedPool, sizeof (IMAGE_SYMBOL_INFO_CACHE), TAG_KDBS); + ASSERT(CacheEntry); + RtlZeroMemory(CacheEntry, sizeof (IMAGE_SYMBOL_INFO_CACHE)); + + /* fill entry */ + CacheEntry->FileName.Buffer = ExAllocatePoolWithTag(NonPagedPool, + FileName->Length, + TAG_KDBS); + RtlCopyUnicodeString(&CacheEntry->FileName, FileName); + ASSERT(CacheEntry->FileName.Buffer); + CacheEntry->RefCount = 1; + CacheEntry->RosSymInfo = RosSymInfo; + InsertTailList(&SymbolFileListHead, &CacheEntry->ListEntry); /* FIXME: Lock list? */ +} + +/*! \brief Remove a symbol file (reference) from the cache. + * + * Tries to find a cache entry matching the given symbol info and decreases + * it's reference count. If the refcount is 0 after decreasing it the cache + * entry will be removed from the list and freed. + * + * \param RosSymInfo Pointer to the symbol info. + * + * \sa KdbpSymAddCachedFile + */ +static VOID +KdbpSymRemoveCachedFile( + IN PROSSYM_INFO RosSymInfo) +{ + PIMAGE_SYMBOL_INFO_CACHE Current; + PLIST_ENTRY CurrentEntry; + KIRQL Irql; + + KeAcquireSpinLock(&SymbolFileListLock, &Irql); + + CurrentEntry = SymbolFileListHead.Flink; + while (CurrentEntry != (&SymbolFileListHead)) + { + Current = CONTAINING_RECORD(CurrentEntry, IMAGE_SYMBOL_INFO_CACHE, ListEntry); + + if (Current->RosSymInfo == RosSymInfo) /* found */ + { + ASSERT(Current->RefCount > 0); + Current->RefCount--; + if (Current->RefCount < 1) + { + RemoveEntryList(&Current->ListEntry); + RosSymDelete(Current->RosSymInfo); + ExFreePool(Current); + } + + KeReleaseSpinLock(&SymbolFileListLock, Irql); + return; + } + + CurrentEntry = CurrentEntry->Flink; + } + + KeReleaseSpinLock(&SymbolFileListLock, Irql); +} + +/*! \brief Loads a symbol file. + * + * \param FileName Filename of the symbol file to load. + * \param RosSymInfo Pointer to a ROSSYM_INFO which gets filled. + * + * \sa KdbpSymUnloadModuleSymbols + */ +static VOID +KdbpSymLoadModuleSymbols( + IN PUNICODE_STRING FileName, + OUT PROSSYM_INFO *RosSymInfo) +{ + OBJECT_ATTRIBUTES ObjectAttributes; + HANDLE FileHandle; + NTSTATUS Status; + IO_STATUS_BLOCK IoStatusBlock; + PFILE_OBJECT FileObject; + PROSSYM_OWN_FILECONTEXT FileContext; + + /* Allow KDB to break on module load */ + KdbModuleLoaded(FileName); + + if (!LoadSymbols) + { + *RosSymInfo = NULL; + return; + } + + /* Try to find cached (already loaded) symbol file */ + *RosSymInfo = KdbpSymFindCachedFile(FileName); + if (*RosSymInfo) + { + DPRINT("Found cached symbol file %wZ\n", FileName); + return; + } + + /* Open the file */ + InitializeObjectAttributes(&ObjectAttributes, + FileName, + OBJ_CASE_INSENSITIVE, + NULL, + NULL); + + DPRINT("Attempting to open image: %wZ\n", FileName); + + Status = ZwOpenFile(&FileHandle, + FILE_READ_ACCESS, + &ObjectAttributes, + &IoStatusBlock, + FILE_SHARE_READ|FILE_SHARE_WRITE, + FILE_SYNCHRONOUS_IO_NONALERT); + if (!NT_SUCCESS(Status)) + { + DPRINT("Could not open image file: %wZ\n", FileName); + return; + } + + DPRINT("Loading symbols from %wZ...\n", FileName); + + Status = ObReferenceObjectByHandle + (FileHandle, + FILE_READ_DATA|SYNCHRONIZE, + NULL, + KernelMode, + (PVOID*)&FileObject, + NULL); + + if (!NT_SUCCESS(Status)) + { + DPRINT("Could not get the file object\n"); + ZwClose(FileHandle); + return; + } + + if ((FileContext = KdbpCaptureFileForSymbols(FileObject))) + { + if (RosSymCreateFromFile(FileContext, RosSymInfo)) + { + /* add file to cache */ + KdbpSymAddCachedFile(FileName, *RosSymInfo); + DPRINT("Installed symbols: %wZ %p\n", FileName, *RosSymInfo); + } + KdbpReleaseFileForSymbols(FileContext); + } + + ObDereferenceObject(FileObject); + ZwClose(FileHandle); +} + +VOID +KdbSymProcessSymbols( + IN PLDR_DATA_TABLE_ENTRY LdrEntry) +{ + if (!LoadSymbols) + { + LdrEntry->PatchInformation = NULL; + return; + } + + /* Remove symbol info if it already exists */ + if (LdrEntry->PatchInformation) + KdbpSymRemoveCachedFile(LdrEntry->PatchInformation); + + /* Error loading symbol info, try to load it from file */ + KdbpSymLoadModuleSymbols(&LdrEntry->FullDllName, + (PROSSYM_INFO*)&LdrEntry->PatchInformation); + + /* It already added symbols to cache */ + DPRINT("Installed symbols: %wZ@%p-%p %p\n", + &LdrEntry->BaseDllName, + LdrEntry->DllBase, + (PVOID)(LdrEntry->SizeOfImage + (ULONG_PTR)LdrEntry->DllBase), + LdrEntry->PatchInformation); +} + +VOID +NTAPI +KdbDebugPrint( + PCH Message, + ULONG Length) +{ + /* Nothing here */ +} + + +/*! \brief Initializes the KDB symbols implementation. + * + * \param DispatchTable Pointer to the KD dispatch table + * \param BootPhase Phase of initialization + */ +VOID +NTAPI +KdbInitialize( + PKD_DISPATCH_TABLE DispatchTable, + ULONG BootPhase) +{ + PCHAR p1, p2; + SHORT Found = FALSE; + CHAR YesNo; + PLDR_DATA_TABLE_ENTRY LdrEntry; + + DPRINT("KdbSymInit() BootPhase=%d\n", BootPhase); + + LoadSymbols = FALSE; + +#if DBG + /* Load symbols only if we have 96Mb of RAM or more */ + if (MmNumberOfPhysicalPages >= 0x6000) + LoadSymbols = TRUE; +#endif + + if (BootPhase == 0) + { + /* Write out the functions that we support for now */ + DispatchTable->KdpInitRoutine = KdpKdbgInit; + DispatchTable->KdpPrintRoutine = KdbDebugPrint; + + /* Register as a Provider */ + InsertTailList(&KdProviders, &DispatchTable->KdProvidersList); + + /* Perform actual initialization of symbol module */ + //NtoskrnlModuleObject->PatchInformation = NULL; + //LdrHalModuleObject->PatchInformation = NULL; + + InitializeListHead(&SymbolFileListHead); + KeInitializeSpinLock(&SymbolFileListLock); + + /* Check the command line for /LOADSYMBOLS, /NOLOADSYMBOLS, + * /LOADSYMBOLS={YES|NO}, /NOLOADSYMBOLS={YES|NO} */ + ASSERT(KeLoaderBlock); + p1 = KeLoaderBlock->LoadOptions; + while('\0' != *p1 && NULL != (p2 = strchr(p1, '/'))) + { + p2++; + Found = 0; + if (0 == _strnicmp(p2, "LOADSYMBOLS", 11)) + { + Found = +1; + p2 += 11; + } + else if (0 == _strnicmp(p2, "NOLOADSYMBOLS", 13)) + { + Found = -1; + p2 += 13; + } + if (0 != Found) + { + while (isspace(*p2)) + { + p2++; + } + if ('=' == *p2) + { + p2++; + while (isspace(*p2)) + { + p2++; + } + YesNo = toupper(*p2); + if ('N' == YesNo || 'F' == YesNo || '0' == YesNo) + { + Found = -1 * Found; + } + } + LoadSymbols = (0 < Found); + } + p1 = p2; + } + + RosSymInitKernelMode(); + } + else if (BootPhase == 3) + { + /* Load symbols for NTOSKRNL.EXE. + It is always the first module in PsLoadedModuleList. KeLoaderBlock can't be used here as its content is just temporary. */ + LdrEntry = CONTAINING_RECORD(PsLoadedModuleList.Flink, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks); + KdbSymProcessSymbols(LdrEntry); + + /* Also load them for HAL.DLL. */ + LdrEntry = CONTAINING_RECORD(PsLoadedModuleList.Flink->Flink, LDR_DATA_TABLE_ENTRY, InLoadOrderLinks); + KdbSymProcessSymbols(LdrEntry); + + KdbpSymbolsInitialized = TRUE; + } +} + +/* EOF */ diff --git a/reactos/ntoskrnl/ntoskrnl.spec b/reactos/ntoskrnl/ntoskrnl.spec new file mode 100644 index 00000000000..021abac3809 --- /dev/null +++ b/reactos/ntoskrnl/ntoskrnl.spec @@ -0,0 +1,1597 @@ +@ stdcall CcCanIWrite(ptr long long long) +@ stdcall CcCopyRead(ptr ptr long long ptr ptr) +@ stdcall CcCopyWrite(ptr ptr long long ptr) +@ stdcall CcDeferWrite(ptr ptr ptr ptr long long) +@ stdcall CcFastCopyRead(ptr long long long ptr ptr) +@ stdcall CcFastCopyWrite(ptr long long ptr) +@ extern CcFastMdlReadWait +@ extern CcFastReadNotPossible +@ extern CcFastReadWait +@ stdcall CcFlushCache(ptr ptr long ptr) +@ stdcall CcGetDirtyPages(ptr ptr ptr ptr) +@ stdcall CcGetFileObjectFromBcb(ptr) +@ stdcall CcGetFileObjectFromSectionPtrs(ptr) +@ stdcall CcGetFlushedValidData(ptr long) +@ stdcall CcGetLsnForFileObject(ptr ptr) +@ stdcall CcInitializeCacheMap(ptr ptr long ptr ptr) +@ stdcall CcIsThereDirtyData(ptr) +@ stdcall CcMapData(ptr ptr long long ptr ptr) +@ stdcall CcMdlRead(ptr ptr long ptr ptr) +@ stdcall CcMdlReadComplete(ptr ptr) +@ stdcall CcMdlWriteAbort(ptr ptr) +@ stdcall CcMdlWriteComplete(ptr ptr ptr) +@ stdcall CcPinMappedData(ptr ptr long long ptr) +@ stdcall CcPinRead(ptr ptr long long ptr ptr) +@ stdcall CcPrepareMdlWrite(ptr ptr long ptr ptr) +@ stdcall CcPreparePinWrite(ptr ptr long long long ptr ptr) +@ stdcall CcPurgeCacheSection(ptr ptr long long) +@ stdcall CcRemapBcb(ptr) +@ stdcall CcRepinBcb(ptr) +@ stdcall CcScheduleReadAhead(ptr ptr long) +@ stdcall CcSetAdditionalCacheAttributes(ptr long long) +@ stdcall CcSetBcbOwnerPointer(ptr ptr) +@ stdcall CcSetDirtyPageThreshold(ptr long) +@ stdcall CcSetDirtyPinnedData(ptr ptr) +@ stdcall CcSetFileSizes(ptr ptr) +@ stdcall CcSetLogHandleForFile(ptr ptr ptr) +@ stdcall CcSetReadAheadGranularity(ptr long) +@ stdcall CcUninitializeCacheMap(ptr ptr ptr) +@ stdcall CcUnpinData(ptr) +@ stdcall CcUnpinDataForThread(ptr ptr) +@ stdcall CcUnpinRepinnedBcb(ptr long ptr) +@ stdcall CcWaitForCurrentLazyWriterActivity() +@ stdcall CcZeroData(ptr ptr ptr long) +@ stdcall CmRegisterCallback(ptr ptr ptr) +@ stdcall CmUnRegisterCallback(long long) +@ stdcall DbgBreakPoint() +@ stdcall DbgBreakPointWithStatus(long) +@ stdcall DbgCommandString(ptr ptr) +@ stdcall DbgLoadImageSymbols(ptr ptr long) +@ cdecl DbgPrint(str) +@ cdecl DbgPrintEx(long long str) +@ cdecl DbgPrintReturnControlC(str) +@ stdcall DbgPrompt(str ptr long) +@ stdcall DbgQueryDebugFilterState(long long) +@ stdcall DbgSetDebugFilterState(long long long) +@ stdcall -arch=x86_64 ExAcquireFastMutex(ptr) +@ fastcall ExAcquireFastMutexUnsafe(ptr) +@ stdcall ExAcquireResourceExclusiveLite(ptr long) +@ stdcall ExAcquireResourceSharedLite(ptr long) +@ fastcall ExAcquireRundownProtection(ptr) ExfAcquireRundownProtection +@ fastcall ExAcquireRundownProtectionCacheAware(ptr) ExfAcquireRundownProtectionCacheAware +@ fastcall ExAcquireRundownProtectionCacheAwareEx(ptr long) ExfAcquireRundownProtectionCacheAwareEx +@ fastcall ExAcquireRundownProtectionEx(ptr long) ExfAcquireRundownProtectionEx +@ stdcall ExAcquireSharedStarveExclusive(ptr long) +@ stdcall ExAcquireSharedWaitForExclusive(ptr long) +@ stdcall ExAllocateCacheAwareRundownProtection(long long) +@ stdcall ExAllocateFromPagedLookasideList(ptr) ExiAllocateFromPagedLookasideList +@ stdcall ExAllocatePool(long long) +@ stdcall ExAllocatePoolWithQuota(long long) +@ stdcall ExAllocatePoolWithQuotaTag(long long long) +@ stdcall ExAllocatePoolWithTag(long long long) +@ stdcall ExAllocatePoolWithTagPriority(long long long long) +@ stdcall ExConvertExclusiveToSharedLite(ptr) +@ stdcall ExCreateCallback(ptr ptr long long) +@ stdcall ExDeleteNPagedLookasideList(ptr) +@ stdcall ExDeletePagedLookasideList(ptr) +@ stdcall ExDeleteResourceLite(ptr) +@ extern ExDesktopObjectType +@ stdcall ExDisableResourceBoostLite(ptr) +@ fastcall ExEnterCriticalRegionAndAcquireFastMutexUnsafe(ptr) +@ stdcall ExEnterCriticalRegionAndAcquireResourceExclusive(ptr) +@ stdcall ExEnterCriticalRegionAndAcquireResourceShared(ptr) +@ stdcall ExEnterCriticalRegionAndAcquireSharedWaitForExclusive(ptr) +@ stdcall ExEnumHandleTable(ptr ptr ptr ptr) +@ extern ExEventObjectType _ExEventObjectType +@ stdcall ExExtendZone(ptr ptr long) +@ stdcall ExFreeCacheAwareRundownProtection(ptr) +@ stdcall ExFreePool(ptr) +@ stdcall ExFreePoolWithTag(ptr long) +@ stdcall ExFreeToPagedLookasideList(ptr ptr) ExiFreeToPagedLookasideList +@ stdcall ExGetCurrentProcessorCounts(ptr ptr ptr) +@ stdcall ExGetCurrentProcessorCpuUsage(ptr) +@ stdcall ExGetExclusiveWaiterCount(ptr) +@ stdcall ExGetPreviousMode() +@ stdcall ExGetSharedWaiterCount(ptr) +@ stdcall ExInitializeNPagedLookasideList(ptr ptr ptr long long long long) +@ stdcall ExInitializePagedLookasideList(ptr ptr ptr long long long long) +@ stdcall ExInitializeResourceLite(ptr) +@ fastcall ExInitializeRundownProtection(ptr) ExfInitializeRundownProtection +@ stdcall ExInitializeRundownProtectionCacheAware(ptr long) +@ stdcall ExInitializeZone(ptr long ptr long) +@ stdcall ExInterlockedAddLargeInteger(ptr long long ptr) +@ fastcall -arch=i386,arm ExInterlockedAddLargeStatistic(ptr long) +@ stdcall ExInterlockedAddUlong(ptr long ptr) +@ fastcall -arch=i386 ExInterlockedCompareExchange64(ptr ptr ptr ptr) +@ stdcall -arch=i386 ExInterlockedDecrementLong(ptr ptr) +@ stdcall -arch=i386 ExInterlockedExchangeUlong(ptr long ptr) +@ stdcall ExInterlockedExtendZone(ptr ptr long ptr) +@ fastcall -arch=i386,arm ExInterlockedFlushSList(ptr) +@ stdcall -arch=i386,arm ExInterlockedIncrementLong(ptr ptr) +@ stdcall ExInterlockedInsertHeadList(ptr ptr ptr) +@ stdcall ExInterlockedInsertTailList(ptr ptr ptr) +@ stdcall ExInterlockedPopEntryList(ptr ptr) +@ fastcall -arch=i386,arm ExInterlockedPopEntrySList(ptr ptr) +@ stdcall ExInterlockedPushEntryList(ptr ptr ptr) +@ fastcall -arch=i386,arm ExInterlockedPushEntrySList(ptr ptr ptr) +@ stdcall ExInterlockedRemoveHeadList(ptr ptr) +@ stdcall ExIsProcessorFeaturePresent(long) +@ stdcall ExIsResourceAcquiredExclusiveLite(ptr) +@ stdcall ExIsResourceAcquiredSharedLite(ptr) +@ stdcall ExLocalTimeToSystemTime(ptr ptr) +@ stdcall ExNotifyCallback(ptr ptr ptr) +@ stdcall -arch=x86_64 ExQueryDepthSList(ptr) +@ stdcall ExQueryPoolBlockSize(ptr ptr) +@ stdcall ExQueueWorkItem(ptr long) +@ stdcall ExRaiseAccessViolation() +@ stdcall ExRaiseDatatypeMisalignment() +@ stdcall ExRaiseException(ptr) RtlRaiseException +@ stdcall ExRaiseHardError(long long long ptr long ptr) +@ stdcall ExRaiseStatus(long) RtlRaiseStatus +@ fastcall ExReInitializeRundownProtection(ptr) ExfReInitializeRundownProtection +@ fastcall ExReInitializeRundownProtectionCacheAware(ptr) ExfReInitializeRundownProtectionCacheAware +@ stdcall ExRegisterCallback(ptr ptr ptr) +@ stdcall ExReinitializeResourceLite(ptr) +@ stdcall -arch=x86_64 ExReleaseFastMutex(ptr) +@ fastcall ExReleaseFastMutexUnsafe(ptr) +@ fastcall ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(ptr) +@ fastcall ExReleaseResourceAndLeaveCriticalRegion(ptr) +@ stdcall ExReleaseResourceForThreadLite(ptr long) +@ fastcall ExReleaseResourceLite(ptr) +@ fastcall ExReleaseRundownProtection(ptr) ExfReleaseRundownProtection +@ fastcall ExReleaseRundownProtectionCacheAware(ptr) ExfReleaseRundownProtectionCacheAware +@ fastcall ExReleaseRundownProtectionCacheAwareEx(ptr long) ExfReleaseRundownProtectionCacheAwareEx +@ fastcall ExReleaseRundownProtectionEx(ptr long) ExfReleaseRundownProtectionEx +@ fastcall ExRundownCompleted(ptr) ExfRundownCompleted +@ fastcall ExRundownCompletedCacheAware(ptr) ExfRundownCompletedCacheAware +@ extern ExSemaphoreObjectType _ExSemaphoreObjectType +@ stdcall ExSetResourceOwnerPointer(ptr ptr) +@ stdcall ExSetTimerResolution(long long) +@ stdcall ExSizeOfRundownProtectionCacheAware() +@ stdcall ExSystemExceptionFilter() +@ stdcall ExSystemTimeToLocalTime(ptr ptr) +@ stdcall -arch=x86_64 ExTryToAcquireFastMutex(ptr) +@ stdcall ExUnregisterCallback(ptr) +@ stdcall ExUuidCreate(ptr) +@ stdcall ExVerifySuite(long) +@ fastcall ExWaitForRundownProtectionRelease(ptr) ExfWaitForRundownProtectionRelease +@ fastcall ExWaitForRundownProtectionReleaseCacheAware(ptr) ExfWaitForRundownProtectionReleaseCacheAware +@ extern ExWindowStationObjectType +@ fastcall ExfAcquirePushLockExclusive(ptr) +@ fastcall ExfAcquirePushLockShared(ptr) +@ fastcall -arch=i386,arm ExfInterlockedAddUlong(ptr long ptr) +@ fastcall -arch=i386,arm ExfInterlockedCompareExchange64(ptr ptr ptr) +@ fastcall -arch=i386,arm ExfInterlockedInsertHeadList(ptr ptr ptr) +@ fastcall -arch=i386,arm ExfInterlockedInsertTailList(ptr ptr ptr) +@ fastcall -arch=i386,arm ExfInterlockedPopEntryList(ptr ptr) +@ fastcall -arch=i386,arm ExfInterlockedPushEntryList(ptr ptr ptr) +@ fastcall -arch=i386,arm ExfInterlockedRemoveHeadList(ptr ptr) +@ fastcall ExfReleasePushLock(ptr) +@ fastcall ExfReleasePushLockExclusive(ptr) +@ fastcall ExfReleasePushLockShared(ptr) +@ fastcall ExfTryToWakePushLock(ptr) +@ fastcall ExfUnblockPushLock(ptr ptr) +@ stdcall -arch=x86_64 ExpInterlockedFlushSList(ptr) +@ stdcall -arch=x86_64 ExpInterlockedPopEntrySList(ptr ptr) +@ stdcall -arch=x86_64 ExpInterlockedPushEntrySList(ptr ptr) +@ fastcall -arch=i386 Exfi386InterlockedDecrementLong(ptr) +@ fastcall -arch=i386 Exfi386InterlockedExchangeUlong(ptr long) +@ fastcall -arch=i386 Exfi386InterlockedIncrementLong(ptr) +@ stdcall -arch=i386 Exi386InterlockedDecrementLong(ptr) +@ stdcall -arch=i386 Exi386InterlockedExchangeUlong(ptr long long) +@ stdcall -arch=i386 Exi386InterlockedIncrementLong(ptr) +@ fastcall -arch=i386 ExiAcquireFastMutex(ptr) ExAcquireFastMutex +@ fastcall -arch=i386 ExiReleaseFastMutex(ptr) ExReleaseFastMutex +@ fastcall -arch=i386 ExiTryToAcquireFastMutex(ptr) ExTryToAcquireFastMutex +@ stdcall FsRtlAcquireFileExclusive(ptr) +;FsRtlAddBaseMcbEntry +@ stdcall FsRtlAddLargeMcbEntry(ptr long long long long long long) +@ stdcall FsRtlAddMcbEntry(ptr long long long) +@ stdcall FsRtlAddToTunnelCache(ptr long long ptr ptr long long ptr) +@ stdcall FsRtlAllocateFileLock(ptr ptr) +@ stdcall FsRtlAllocatePool(long long) +@ stdcall FsRtlAllocatePoolWithQuota(long long) +@ stdcall FsRtlAllocatePoolWithQuotaTag(long long long) +@ stdcall FsRtlAllocatePoolWithTag(long long long) +@ stdcall FsRtlAllocateResource() +@ stdcall FsRtlAreNamesEqual(ptr ptr long wstr) +@ stdcall FsRtlBalanceReads(ptr) +@ stdcall FsRtlCheckLockForReadAccess(ptr ptr) +@ stdcall FsRtlCheckLockForWriteAccess(ptr ptr) +@ stdcall FsRtlCheckOplock(ptr ptr ptr ptr ptr) +@ stdcall FsRtlCopyRead(ptr ptr long long long ptr ptr ptr) +@ stdcall FsRtlCopyWrite(ptr ptr long long long ptr ptr ptr) +@ stdcall FsRtlCreateSectionForDataScan(ptr ptr ptr ptr long ptr ptr long long long) +@ stdcall FsRtlCurrentBatchOplock(ptr) +@ stdcall FsRtlDeleteKeyFromTunnelCache(ptr long long) +@ stdcall FsRtlDeleteTunnelCache(ptr) +@ stdcall FsRtlDeregisterUncProvider(ptr) +@ stdcall FsRtlDissectDbcs(long ptr ptr ptr) +@ stdcall FsRtlDissectName(long ptr ptr ptr) +@ stdcall FsRtlDoesDbcsContainWildCards(ptr) +@ stdcall FsRtlDoesNameContainWildCards(ptr) +@ stdcall FsRtlFastCheckLockForRead(ptr ptr ptr long ptr ptr) +@ stdcall FsRtlFastCheckLockForWrite(ptr ptr ptr long ptr ptr) +@ stdcall FsRtlFastUnlockAll(ptr ptr ptr ptr) +@ stdcall FsRtlFastUnlockAllByKey(ptr ptr ptr long ptr) +@ stdcall FsRtlFastUnlockSingle(ptr ptr ptr ptr ptr long ptr long) +@ stdcall FsRtlFindInTunnelCache(ptr long long ptr ptr ptr ptr ptr) +@ stdcall FsRtlFreeFileLock(ptr) +@ stdcall FsRtlGetFileSize(ptr ptr) +;FsRtlGetNextBaseMcbEntry +@ stdcall FsRtlGetNextFileLock(ptr long) +@ stdcall FsRtlGetNextLargeMcbEntry(ptr long ptr ptr ptr) +@ stdcall FsRtlGetNextMcbEntry(ptr long ptr ptr ptr) +@ stdcall FsRtlIncrementCcFastReadNoWait() +@ stdcall FsRtlIncrementCcFastReadNotPossible() +@ stdcall FsRtlIncrementCcFastReadResourceMiss() +@ stdcall FsRtlIncrementCcFastReadWait() +;FsRtlInitializeBaseMcb +@ stdcall FsRtlInitializeFileLock(ptr ptr ptr) +@ stdcall FsRtlInitializeLargeMcb(ptr long) +@ stdcall FsRtlInitializeMcb(ptr long) +@ stdcall FsRtlInitializeOplock(ptr) +@ stdcall FsRtlInitializeTunnelCache(ptr) +@ stdcall FsRtlInsertPerFileObjectContext(ptr ptr) +@ stdcall FsRtlInsertPerStreamContext(ptr ptr) +@ stdcall FsRtlIsDbcsInExpression(ptr ptr) +@ stdcall FsRtlIsFatDbcsLegal(long ptr long long long) +@ stdcall FsRtlIsHpfsDbcsLegal(long ptr long long long) +@ stdcall FsRtlIsNameInExpression(ptr ptr long wstr) +@ stdcall FsRtlIsNtstatusExpected(long) +@ stdcall FsRtlIsPagingFile(ptr) +@ stdcall FsRtlIsTotalDeviceFailure(ptr) +@ extern FsRtlLegalAnsiCharacterArray _FsRtlLegalAnsiCharacterArray +;FsRtlLookupBaseMcbEntry +@ stdcall FsRtlLookupLargeMcbEntry(ptr long long ptr ptr ptr ptr ptr) +;FsRtlLookupLastBaseMcbEntry +;FsRtlLookupLastBaseMcbEntryAndIndex +@ stdcall FsRtlLookupLastLargeMcbEntry(ptr ptr ptr) +@ stdcall FsRtlLookupLastLargeMcbEntryAndIndex(ptr ptr ptr ptr) +@ stdcall FsRtlLookupLastMcbEntry(ptr ptr ptr) +@ stdcall FsRtlLookupMcbEntry(ptr long ptr ptr ptr) +@ stdcall FsRtlLookupPerFileObjectContext(ptr ptr ptr) +@ stdcall FsRtlLookupPerStreamContextInternal(ptr ptr ptr) +@ stdcall FsRtlMdlRead(ptr ptr long long ptr ptr) +@ stdcall FsRtlMdlReadComplete(ptr ptr) +@ stdcall FsRtlMdlReadCompleteDev(ptr ptr ptr) +@ stdcall FsRtlMdlReadDev(ptr ptr long long ptr ptr ptr) +@ stdcall FsRtlMdlWriteComplete(ptr ptr ptr) +@ stdcall FsRtlMdlWriteCompleteDev(ptr ptr ptr ptr) +@ stdcall FsRtlNormalizeNtstatus(long long) +@ stdcall FsRtlNotifyChangeDirectory(ptr ptr ptr ptr long long ptr) +@ stdcall FsRtlNotifyCleanup(ptr ptr ptr) +@ stdcall FsRtlNotifyFilterChangeDirectory(ptr ptr ptr ptr long long long ptr ptr ptr ptr) +@ stdcall FsRtlNotifyFilterReportChange(ptr ptr ptr long ptr ptr long long ptr ptr) +@ stdcall FsRtlNotifyFullChangeDirectory(ptr ptr ptr ptr long long long ptr ptr ptr) +@ stdcall FsRtlNotifyFullReportChange(ptr ptr ptr long ptr ptr long long ptr) +@ stdcall FsRtlNotifyInitializeSync(ptr) +@ stdcall FsRtlNotifyReportChange(ptr ptr ptr ptr long) +@ stdcall FsRtlNotifyUninitializeSync(ptr) +@ stdcall FsRtlNotifyVolumeEvent(ptr long) +;FsRtlNumberOfRunsInBaseMcb +@ stdcall FsRtlNumberOfRunsInLargeMcb(ptr) +@ stdcall FsRtlNumberOfRunsInMcb(ptr) +@ stdcall FsRtlOplockFsctrl(ptr ptr long) +@ stdcall FsRtlOplockIsFastIoPossible(ptr) +@ stdcall FsRtlPostPagingFileStackOverflow(ptr ptr ptr) +@ stdcall FsRtlPostStackOverflow(ptr ptr ptr) +@ stdcall FsRtlPrepareMdlWrite(ptr ptr long long ptr ptr) +@ stdcall FsRtlPrepareMdlWriteDev(ptr ptr long long ptr ptr ptr) +@ stdcall FsRtlPrivateLock(ptr ptr ptr ptr ptr long long long ptr ptr ptr long) +@ stdcall FsRtlProcessFileLock(ptr ptr ptr) +@ stdcall FsRtlRegisterFileSystemFilterCallbacks(ptr ptr) +@ stdcall FsRtlRegisterUncProvider(ptr ptr long) +@ stdcall FsRtlReleaseFile(ptr) +;FsRtlRemoveBaseMcbEntry +@ stdcall FsRtlRemoveLargeMcbEntry(ptr long long long long) +@ stdcall FsRtlRemoveMcbEntry(ptr long long) +@ stdcall FsRtlRemovePerFileObjectContext(ptr ptr ptr) +@ stdcall FsRtlRemovePerStreamContext(ptr ptr ptr) +;FsRtlResetBaseMcb +@ stdcall FsRtlResetLargeMcb(ptr long) +;FsRtlSplitBaseMcb +@ stdcall FsRtlSplitLargeMcb(ptr long long long long) +@ stdcall FsRtlSyncVolumes(long long long) +@ stdcall FsRtlTeardownPerStreamContexts(ptr) +;FsRtlTruncateBaseMcb +@ stdcall FsRtlTruncateLargeMcb(ptr long long) +@ stdcall FsRtlTruncateMcb(ptr long) +;FsRtlUninitializeBaseMcb +@ stdcall FsRtlUninitializeFileLock(ptr) +@ stdcall FsRtlUninitializeLargeMcb(ptr) +@ stdcall FsRtlUninitializeMcb(ptr) +@ stdcall FsRtlUninitializeOplock(ptr) +@ extern HalDispatchTable _HalDispatchTable +@ fastcall HalExamineMBR(ptr long long ptr) +@ extern HalPrivateDispatchTable +;HeadlessDispatch +@ stdcall InbvAcquireDisplayOwnership() +@ stdcall InbvCheckDisplayOwnership() +@ stdcall InbvDisplayString(str) +@ stdcall InbvEnableBootDriver(long) +@ stdcall InbvEnableDisplayString(long) +@ stdcall InbvInstallDisplayStringFilter(ptr) +@ stdcall InbvIsBootDriverInstalled() +@ stdcall InbvNotifyDisplayOwnershipLost(ptr) +@ stdcall InbvResetDisplay() +@ stdcall InbvSetScrollRegion(long long long long) +@ stdcall InbvSetTextColor(long) +@ stdcall InbvSolidColorFill(long long long long long) +@ extern InitSafeBootMode +@ fastcall -arch=i386,arm InterlockedCompareExchange(ptr long long) +@ fastcall -arch=i386,arm InterlockedDecrement(ptr) +@ fastcall -arch=i386,arm InterlockedExchange(ptr long) +@ fastcall -arch=i386,arm InterlockedExchangeAdd(ptr long) +@ fastcall -arch=i386,arm InterlockedIncrement(ptr) +@ fastcall -arch=i386,arm InterlockedPopEntrySList(ptr) +@ fastcall -arch=i386,arm InterlockedPushEntrySList(ptr ptr) +@ stdcall -arch=x86_64 InitializeSListHead(ptr) RtlInitializeSListHead +@ stdcall IoAcquireCancelSpinLock(ptr) +@ stdcall IoAcquireRemoveLockEx(ptr ptr str long long) +@ stdcall IoAcquireVpbSpinLock(ptr) +@ extern IoAdapterObjectType +@ stdcall IoAllocateAdapterChannel(ptr ptr long ptr ptr) +@ stdcall IoAllocateController(ptr ptr ptr ptr) +@ stdcall IoAllocateDriverObjectExtension(ptr ptr long ptr) +@ stdcall IoAllocateErrorLogEntry(ptr long) +@ stdcall IoAllocateIrp(long long) +@ stdcall IoAllocateMdl(ptr long long long ptr) +@ stdcall IoAllocateWorkItem(ptr) +@ fastcall IoAssignDriveLetters(ptr ptr ptr ptr) +@ stdcall IoAssignResources(ptr ptr ptr ptr ptr ptr) +@ stdcall IoAttachDevice(ptr ptr ptr) +@ stdcall IoAttachDeviceByPointer(ptr ptr) +@ stdcall IoAttachDeviceToDeviceStack(ptr ptr) +@ stdcall IoAttachDeviceToDeviceStackSafe(ptr ptr ptr) +@ stdcall IoBuildAsynchronousFsdRequest(long ptr ptr long ptr ptr) +@ stdcall IoBuildDeviceIoControlRequest(long ptr ptr long ptr long long ptr ptr) +@ stdcall IoBuildPartialMdl(ptr ptr ptr long) +@ stdcall IoBuildSynchronousFsdRequest(long ptr ptr long ptr ptr ptr) +@ stdcall IoCallDriver(ptr ptr) +@ stdcall IoCancelFileOpen(ptr ptr) +@ stdcall IoCancelIrp(ptr) +@ stdcall IoCheckDesiredAccess(ptr long) +@ stdcall IoCheckEaBufferValidity(ptr long ptr) +@ stdcall IoCheckFunctionAccess(long long long long ptr ptr) +@ stdcall IoCheckQuerySetFileInformation(long long long) +@ stdcall IoCheckQuerySetVolumeInformation(long long long) +@ stdcall IoCheckQuotaBufferValidity(ptr long ptr) +@ stdcall IoCheckShareAccess(long long ptr ptr long) +@ stdcall IoCompleteRequest(ptr long) +@ stdcall IoConnectInterrupt(ptr ptr ptr ptr long long long long long long long) +@ stdcall IoCreateController(long) +@ stdcall IoCreateDevice(ptr long ptr long long long ptr) +@ stdcall IoCreateDisk(ptr ptr) +@ stdcall IoCreateDriver(ptr ptr) +@ stdcall IoCreateFile(ptr long ptr ptr ptr long long long long ptr long long ptr long) +@ stdcall IoCreateFileSpecifyDeviceObjectHint(ptr long ptr ptr ptr long long long long ptr long long ptr long ptr) +@ stdcall IoCreateNotificationEvent(ptr ptr) +@ stdcall IoCreateStreamFileObject(ptr ptr) +@ stdcall IoCreateStreamFileObjectEx(ptr ptr ptr) +@ stdcall IoCreateStreamFileObjectLite(ptr ptr) +@ stdcall IoCreateSymbolicLink(ptr ptr) +@ stdcall IoCreateSynchronizationEvent(ptr ptr) +@ stdcall IoCreateUnprotectedSymbolicLink(ptr ptr) +@ stdcall IoCsqInitialize(ptr ptr ptr ptr ptr ptr ptr) +@ stdcall IoCsqInitializeEx(ptr ptr ptr ptr ptr ptr ptr) +@ stdcall IoCsqInsertIrp(ptr ptr ptr) +@ stdcall IoCsqInsertIrpEx(ptr ptr ptr ptr) +@ stdcall IoCsqRemoveIrp(ptr ptr) +@ stdcall IoCsqRemoveNextIrp(ptr ptr) +@ stdcall IoDeleteController(ptr) +@ stdcall IoDeleteDevice(ptr) +@ stdcall IoDeleteDriver(ptr) +@ stdcall IoDeleteSymbolicLink(ptr) +@ stdcall IoDetachDevice(ptr) +@ extern IoDeviceHandlerObjectSize +@ extern IoDeviceHandlerObjectType +@ extern IoDeviceObjectType +@ stdcall IoDisconnectInterrupt(ptr) +@ extern IoDriverObjectType +@ stdcall IoEnqueueIrp(ptr) +@ stdcall IoEnumerateDeviceObjectList(ptr ptr long ptr) +@ stdcall IoEnumerateRegisteredFiltersList(ptr long ptr) +@ stdcall IoFastQueryNetworkAttributes(ptr long long ptr ptr) +@ extern IoFileObjectType _IoFileObjectType +@ stdcall IoForwardAndCatchIrp(ptr ptr) IoForwardIrpSynchronously +@ stdcall IoForwardIrpSynchronously(ptr ptr) +@ stdcall IoFreeController(ptr) +@ stdcall IoFreeErrorLogEntry(ptr) +@ stdcall IoFreeIrp(ptr) +@ stdcall IoFreeMdl(ptr) +@ stdcall IoFreeWorkItem(ptr) +@ stdcall IoGetAttachedDevice(ptr) +@ stdcall IoGetAttachedDeviceReference(ptr) +@ stdcall IoGetBaseFileSystemDeviceObject(ptr) +@ stdcall IoGetBootDiskInformation(ptr long) +@ stdcall IoGetConfigurationInformation() +@ stdcall IoGetCurrentProcess() +@ stdcall IoGetDeviceAttachmentBaseRef(ptr) +@ stdcall IoGetDeviceInterfaceAlias(ptr ptr ptr) +@ stdcall IoGetDeviceInterfaces(ptr ptr long ptr) +@ stdcall IoGetDeviceObjectPointer(ptr long ptr ptr) +@ stdcall IoGetDeviceProperty(ptr long long ptr ptr) +@ stdcall IoGetDeviceToVerify(ptr) +@ stdcall IoGetDiskDeviceObject(ptr ptr) +@ stdcall IoGetDmaAdapter(ptr ptr ptr) +@ stdcall IoGetDriverObjectExtension(ptr ptr) +@ stdcall IoGetFileObjectGenericMapping() +@ stdcall IoGetInitialStack() +@ stdcall IoGetLowerDeviceObject(ptr) +@ fastcall IoGetPagingIoPriority(ptr) +@ stdcall IoGetRelatedDeviceObject(ptr) +@ stdcall IoGetRequestorProcess(ptr) +@ stdcall IoGetRequestorProcessId(ptr) +@ stdcall IoGetRequestorSessionId(ptr ptr) +@ stdcall IoGetStackLimits(ptr ptr) +@ stdcall IoGetTopLevelIrp() +@ stdcall IoInitializeIrp(ptr long long) +@ stdcall IoInitializeRemoveLockEx(ptr long long long long) +@ stdcall IoInitializeTimer(ptr ptr ptr) +@ stdcall IoInvalidateDeviceRelations(ptr long) +@ stdcall IoInvalidateDeviceState(ptr) +@ stdcall -arch=x86_64 IoIs32bitProcess(ptr) +@ stdcall IoIsFileOriginRemote(ptr) +@ stdcall IoIsOperationSynchronous(ptr) +@ stdcall IoIsSystemThread(ptr) +@ stdcall IoIsValidNameGraftingBuffer(ptr ptr) +@ stdcall IoIsWdmVersionAvailable(long long) +@ stdcall IoMakeAssociatedIrp(ptr long) +@ stdcall IoOpenDeviceInterfaceRegistryKey(ptr long ptr) +@ stdcall IoOpenDeviceRegistryKey(ptr long long ptr) +@ stdcall IoPageRead(ptr ptr ptr ptr ptr) +@ stdcall IoPnPDeliverServicePowerNotification(long long long long) +@ stdcall IoQueryDeviceDescription(ptr ptr ptr ptr ptr ptr ptr ptr) +@ stdcall IoQueryFileDosDeviceName(ptr ptr) +@ stdcall IoQueryFileInformation(ptr long long ptr ptr) +@ stdcall IoQueryVolumeInformation(ptr long long ptr ptr) +@ stdcall IoQueueThreadIrp(ptr) +@ stdcall IoQueueWorkItem(ptr ptr long ptr) +@ stdcall IoRaiseHardError(ptr ptr ptr) +@ stdcall IoRaiseInformationalHardError(long ptr ptr) +@ stdcall IoReadDiskSignature(ptr long ptr) +@ extern IoReadOperationCount +@ fastcall IoReadPartitionTable(ptr long long ptr) +@ stdcall IoReadPartitionTableEx(ptr ptr) +@ extern IoReadTransferCount +@ stdcall IoRegisterBootDriverReinitialization(ptr ptr ptr) +@ stdcall IoRegisterDeviceInterface(ptr ptr ptr ptr) +@ stdcall IoRegisterDriverReinitialization(ptr ptr ptr) +@ stdcall IoRegisterFileSystem(ptr) +@ stdcall IoRegisterFsRegistrationChange(ptr ptr) +@ stdcall IoRegisterLastChanceShutdownNotification(ptr) +@ stdcall IoRegisterPlugPlayNotification(long long ptr ptr ptr ptr ptr) +@ stdcall IoRegisterShutdownNotification(ptr) +@ stdcall IoReleaseCancelSpinLock(long) +@ stdcall IoReleaseRemoveLockAndWaitEx(ptr ptr long) +@ stdcall IoReleaseRemoveLockEx(ptr ptr long) +@ stdcall IoReleaseVpbSpinLock(long) +@ stdcall IoRemoveShareAccess(ptr ptr) +@ stdcall IoReportDetectedDevice(ptr long long long ptr ptr long ptr) +@ stdcall IoReportHalResourceUsage(ptr ptr ptr long) +@ stdcall IoReportResourceForDetection(ptr ptr long ptr ptr long ptr) +@ stdcall IoReportResourceUsage(ptr ptr ptr long ptr ptr long long ptr) +@ stdcall IoReportTargetDeviceChange(ptr ptr) +@ stdcall IoReportTargetDeviceChangeAsynchronous(ptr ptr ptr ptr) +@ stdcall IoRequestDeviceEject(ptr) +@ stdcall IoReuseIrp(ptr long) +@ stdcall IoSetCompletionRoutineEx(ptr ptr ptr ptr long long long) +@ stdcall IoSetDeviceInterfaceState(ptr long) +@ stdcall IoSetDeviceToVerify(ptr ptr) +@ stdcall IoSetFileOrigin(ptr long) +@ stdcall IoSetHardErrorOrVerifyDevice(ptr ptr) +@ stdcall IoSetInformation(ptr ptr long ptr) +@ stdcall IoSetIoCompletion(ptr ptr ptr long ptr long) +@ fastcall IoSetPartitionInformation(ptr long long long) +@ stdcall IoSetPartitionInformationEx(ptr long ptr) +@ stdcall IoSetShareAccess(long long ptr ptr) +@ stdcall IoSetStartIoAttributes(ptr long long) +@ stdcall IoSetSystemPartition(ptr) +@ stdcall IoSetThreadHardErrorMode(long) +@ stdcall IoSetTopLevelIrp(ptr) +@ stdcall IoStartNextPacket(ptr long) +@ stdcall IoStartNextPacketByKey(ptr long long) +@ stdcall IoStartPacket(ptr ptr ptr ptr) +@ stdcall IoStartTimer(ptr) +@ extern IoStatisticsLock +@ stdcall IoStopTimer(ptr) +@ stdcall IoSynchronousInvalidateDeviceRelations(ptr long) +@ stdcall IoSynchronousPageWrite(ptr ptr ptr ptr ptr) +@ stdcall IoThreadToProcess(ptr) +@ stdcall IoTranslateBusAddress(long long long long ptr ptr) +@ stdcall IoUnregisterFileSystem(ptr) +@ stdcall IoUnregisterFsRegistrationChange(ptr ptr) +@ stdcall IoUnregisterPlugPlayNotification(ptr) +@ stdcall IoUnregisterShutdownNotification(ptr) +@ stdcall IoUpdateShareAccess(ptr ptr) +@ stdcall IoValidateDeviceIoControlAccess(ptr long) +@ stdcall IoVerifyPartitionTable(ptr long) +@ stdcall IoVerifyVolume(ptr long) +@ stdcall IoVolumeDeviceToDosName(ptr ptr) +@ stdcall IoWMIAllocateInstanceIds(ptr long ptr) +@ stdcall IoWMIDeviceObjectToInstanceName(ptr ptr ptr) +@ stdcall -arch=x86_64 IoWMIDeviceObjectToProviderId(ptr) +@ stdcall IoWMIExecuteMethod(ptr ptr long long ptr ptr) +@ stdcall IoWMIHandleToInstanceName(ptr ptr ptr) +@ stdcall IoWMIOpenBlock(ptr long ptr) +@ stdcall IoWMIQueryAllData(ptr ptr ptr) +@ stdcall IoWMIQueryAllDataMultiple(ptr long ptr ptr) +@ stdcall IoWMIQuerySingleInstance(ptr ptr ptr ptr) +@ stdcall IoWMIQuerySingleInstanceMultiple(ptr ptr long ptr ptr) +@ stdcall IoWMIRegistrationControl(ptr long) +@ stdcall IoWMISetNotificationCallback(ptr ptr ptr) +@ stdcall IoWMISetSingleInstance(ptr ptr long long ptr) +@ stdcall IoWMISetSingleItem(ptr ptr long long long ptr) +@ stdcall IoWMISuggestInstanceName(ptr ptr long ptr) +@ stdcall IoWMIWriteEvent(ptr) +@ stdcall IoWriteErrorLogEntry(ptr) +@ extern IoWriteOperationCount +@ fastcall IoWritePartitionTable(ptr long long long ptr) +@ stdcall IoWritePartitionTableEx(ptr ptr) +@ extern IoWriteTransferCount +@ fastcall IofCallDriver(ptr ptr) +@ fastcall IofCompleteRequest(ptr long) +@ stdcall KdChangeOption(long long ptr long ptr ptr) +@ extern KdDebuggerEnabled _KdDebuggerEnabled +@ extern KdDebuggerNotPresent _KdDebuggerNotPresent +@ stdcall KdDisableDebugger() +@ stdcall KdEnableDebugger() +@ extern KdEnteredDebugger +@ stdcall KdPollBreakIn() +@ stdcall KdPowerTransition(long) +@ stdcall KdRefreshDebuggerNotPresent() +@ stdcall KdSystemDebugControl(long ptr long ptr long ptr long) +@ stdcall -arch=i386 Ke386CallBios(long ptr) +@ stdcall -arch=i386 Ke386IoSetAccessProcess(ptr long) +@ stdcall -arch=i386 Ke386QueryIoAccessMap(long ptr) +@ stdcall -arch=i386 Ke386SetIoAccessMap(long ptr) +@ fastcall KeAcquireGuardedMutex(ptr) +@ fastcall KeAcquireGuardedMutexUnsafe(ptr) +@ fastcall KeAcquireInStackQueuedSpinLockAtDpcLevel(ptr ptr) +@ fastcall KeAcquireInStackQueuedSpinLockForDpc(ptr ptr) +@ stdcall KeAcquireInterruptSpinLock(ptr) +@ stdcall KeAcquireSpinLockAtDpcLevel(ptr) +@ fastcall KeAcquireSpinLockForDpc(ptr) +@ stdcall -arch=x86_64 KeAcquireSpinLockRaiseToDpc(ptr) +@ stdcall KeAddSystemServiceTable(ptr ptr long ptr long) +@ stdcall KeAreAllApcsDisabled() +@ stdcall KeAreApcsDisabled() +@ stdcall KeAttachProcess(ptr) +@ stdcall KeBugCheck(long) +@ stdcall KeBugCheckEx(long ptr ptr ptr ptr) +@ stdcall KeCancelTimer(ptr) +@ stdcall KeCapturePersistentThreadState(ptr long long long long long ptr) +@ stdcall KeClearEvent(ptr) +@ stdcall KeConnectInterrupt(ptr) +@ stdcall KeDelayExecutionThread(long long ptr) +@ stdcall KeDeregisterBugCheckCallback(ptr) +@ stdcall KeDeregisterBugCheckReasonCallback(ptr) +@ stdcall KeDeregisterNmiCallback(ptr) +@ stdcall KeDetachProcess() +@ stdcall KeDisconnectInterrupt(ptr) +@ stdcall KeEnterCriticalRegion() _KeEnterCriticalRegion +@ stdcall KeEnterGuardedRegion() _KeEnterGuardedRegion +@ stdcall KeEnterKernelDebugger() +@ stdcall KeFindConfigurationEntry(ptr long long ptr) +@ stdcall KeFindConfigurationNextEntry(ptr long long ptr ptr) +@ stdcall KeFlushEntireTb(long long) +@ stdcall KeFlushQueuedDpcs() +;KeGenericCallDpc +@ stdcall KeGetCurrentThread() +@ stdcall KeGetPreviousMode() +@ stdcall KeGetRecommendedSharedDataAlignment() +;KeI386AbiosCall +@ stdcall -arch=i386 KeI386AllocateGdtSelectors(ptr long) +; -arch=i386 KeI386Call16BitCStyleFunction +; -arch=i386 KeI386Call16BitFunction +@ stdcall -arch=i386 KeI386FlatToGdtSelector(long long long) +; -arch=i386 KeI386GetLid +@ extern -arch=i386 KeI386MachineType +@ stdcall -arch=i386 KeI386ReleaseGdtSelectors(ptr long) +; -arch=i386 KeI386ReleaseLid +; -arch=i386 KeI386SetGdtSelector +@ stdcall KeInitializeApc(ptr ptr long ptr ptr ptr long ptr) +@ stdcall KeInitializeCrashDumpHeader(long long ptr long ptr) +@ stdcall KeInitializeDeviceQueue(ptr) +@ stdcall KeInitializeDpc(ptr ptr ptr) +@ stdcall KeInitializeEvent(ptr long long) +@ fastcall KeInitializeGuardedMutex(ptr) +@ stdcall KeInitializeInterrupt(ptr ptr ptr ptr long long long long long long long) +@ stdcall KeInitializeMutant(ptr long) +@ stdcall KeInitializeMutex(ptr long) +@ stdcall KeInitializeQueue(ptr long) +@ stdcall KeInitializeSemaphore(ptr long long) +@ stdcall -arch=i386,arm KeInitializeSpinLock(ptr) _KeInitializeSpinLock +@ stdcall KeInitializeThreadedDpc(ptr ptr ptr) +@ stdcall KeInitializeTimer(ptr) +@ stdcall KeInitializeTimerEx(ptr long) +@ stdcall KeInsertByKeyDeviceQueue(ptr ptr long) +@ stdcall KeInsertDeviceQueue(ptr ptr) +@ stdcall KeInsertHeadQueue(ptr ptr) +@ stdcall KeInsertQueue(ptr ptr) +@ stdcall KeInsertQueueApc(ptr ptr ptr long) +@ stdcall KeInsertQueueDpc(ptr ptr ptr) +@ stdcall KeInvalidateAllCaches() +@ stdcall KeIpiGenericCall(ptr ptr) +@ stdcall KeIsAttachedProcess() +@ stdcall KeIsExecutingDpc() +;KeIsWaitListEmpty +@ stdcall KeLeaveCriticalRegion() _KeLeaveCriticalRegion +@ stdcall KeLeaveGuardedRegion() _KeLeaveGuardedRegion +@ extern KeLoaderBlock +@ extern KeNumberProcessors +@ stdcall KeProfileInterrupt(ptr) +@ stdcall KeProfileInterruptWithSource(ptr long) +@ stdcall KePulseEvent(ptr long long) +@ stdcall KeQueryActiveProcessors() +@ stdcall -arch=i386,arm KeQueryInterruptTime() +@ stdcall KeQueryPriorityThread(ptr) +@ stdcall KeQueryRuntimeThread(ptr ptr) +@ stdcall -arch=i386,arm KeQuerySystemTime(ptr) +@ stdcall KeQueryTickCount(ptr) +@ stdcall KeQueryTimeIncrement() +@ stdcall KeRaiseUserException(long) +@ stdcall KeReadStateEvent(ptr) +@ stdcall KeReadStateMutant(ptr) +@ stdcall KeReadStateMutex(ptr) KeReadStateMutant +@ stdcall KeReadStateQueue(ptr) +@ stdcall KeReadStateSemaphore(ptr) +@ stdcall KeReadStateTimer(ptr) +@ stdcall KeRegisterBugCheckCallback(ptr ptr ptr long ptr) +@ stdcall KeRegisterBugCheckReasonCallback(ptr ptr ptr ptr) +@ stdcall KeRegisterNmiCallback(ptr ptr) +@ fastcall KeReleaseGuardedMutex(ptr) +@ fastcall KeReleaseGuardedMutexUnsafe(ptr) +@ fastcall KeReleaseInStackQueuedSpinLockForDpc(ptr) +@ fastcall KeReleaseInStackQueuedSpinLockFromDpcLevel(ptr) +@ stdcall KeReleaseInterruptSpinLock(ptr long) +@ stdcall KeReleaseMutant(ptr long long long) +@ stdcall KeReleaseMutex(ptr long) +@ stdcall KeReleaseSemaphore(ptr long long long) +@ stdcall -arch=x86_64 KeReleaseSpinLock(ptr long) +@ fastcall KeReleaseSpinLockForDpc(ptr long) +@ stdcall KeReleaseSpinLockFromDpcLevel(ptr) +@ stdcall KeRemoveByKeyDeviceQueue(ptr long) +@ stdcall KeRemoveByKeyDeviceQueueIfBusy(ptr long) +@ stdcall KeRemoveDeviceQueue(ptr) +@ stdcall KeRemoveEntryDeviceQueue(ptr ptr) +@ stdcall KeRemoveQueue(ptr long ptr) +@ stdcall KeRemoveQueueDpc(ptr) +@ stdcall KeRemoveSystemServiceTable(long) +@ stdcall KeResetEvent(ptr) +@ stdcall KeRestoreFloatingPointState(ptr) +@ stdcall KeRevertToUserAffinityThread() +@ stdcall KeRundownQueue(ptr) +@ stdcall KeSaveFloatingPointState(ptr) +@ cdecl KeSaveStateForHibernate(ptr) +@ extern KeServiceDescriptorTable +@ stdcall KeSetAffinityThread(ptr long) +@ stdcall KeSetBasePriorityThread(ptr long) +@ stdcall KeSetDmaIoCoherency(long) +@ stdcall KeSetEvent(ptr long long) +@ stdcall KeSetEventBoostPriority(ptr ptr) +@ stdcall KeSetIdealProcessorThread(ptr long) +@ stdcall KeSetImportanceDpc(ptr long) +@ stdcall KeSetKernelStackSwapEnable(long) +@ stdcall KeSetPriorityThread(ptr long) +@ stdcall KeSetProfileIrql(long) +@ stdcall KeSetSystemAffinityThread(long) +@ stdcall KeSetTargetProcessorDpc(ptr long) +@ stdcall KeSetTimeIncrement(long long) +@ stdcall KeSetTimer(ptr long long ptr) +@ stdcall KeSetTimerEx(ptr long long long ptr) +;KeSignalCallDpcDone +;KeSignalCallDpcSynchronize +@ stdcall KeStackAttachProcess(ptr ptr) +@ stdcall KeSynchronizeExecution(ptr ptr ptr) +@ stdcall KeTerminateThread(long) +@ fastcall KeTestSpinLock(ptr) +@ extern KeTickCount +@ fastcall KeTryToAcquireGuardedMutex(ptr) +@ fastcall KeTryToAcquireSpinLockAtDpcLevel(ptr) +@ stdcall KeUnstackDetachProcess(ptr) +@ stdcall KeUpdateRunTime(ptr long) +@ fastcall KeUpdateSystemTime(ptr long long) +@ stdcall KeUserModeCallback(long ptr long ptr ptr) +@ stdcall KeWaitForMultipleObjects(long ptr long long long long ptr ptr) +@ stdcall KeWaitForMutexObject(ptr long long long ptr) KeWaitForSingleObject +@ stdcall KeWaitForSingleObject(ptr long long long ptr) +@ fastcall KefAcquireSpinLockAtDpcLevel(ptr) +@ fastcall KefReleaseSpinLockFromDpcLevel(ptr) +@ stdcall -arch=i386 Kei386EoiHelper() +@ fastcall -arch=i386 KiEoiHelper(ptr) +@ fastcall KiAcquireSpinLock(ptr) +@ extern KiBugCheckData +@ stdcall KiCheckForKernelApcDelivery() +;KiCheckForSListAddress +@ stdcall -arch=i386 KiCoprocessorError() +@ stdcall KiDeliverApc(long ptr ptr) +@ stdcall -arch=i386 KiDispatchInterrupt() +@ extern KiEnableTimerWatchdog +@ stdcall KiIpiServiceRoutine(ptr ptr) +@ fastcall KiReleaseSpinLock(ptr) +@ cdecl KiUnexpectedInterrupt() +@ stdcall -arch=i386 Kii386SpinOnSpinLock(ptr long) +@ stdcall LdrAccessResource(ptr ptr ptr ptr) +@ stdcall LdrEnumResources(ptr ptr long ptr ptr) +@ stdcall LdrFindResourceDirectory_U(ptr ptr long ptr) +@ stdcall LdrFindResource_U(ptr ptr long ptr) +@ extern LpcPortObjectType +@ stdcall LpcRequestPort(ptr ptr) +@ stdcall LpcRequestWaitReplyPort(ptr ptr ptr) +@ stdcall LsaCallAuthenticationPackage(long long long long long long long) +@ stdcall LsaDeregisterLogonProcess(long long) +@ stdcall LsaFreeReturnBuffer(ptr) +@ stdcall LsaLogonUser(ptr ptr long long ptr long ptr ptr ptr ptr ptr ptr ptr ptr) +@ stdcall LsaLookupAuthenticationPackage(long long long) +@ stdcall LsaRegisterLogonProcess(ptr ptr ptr) +@ extern Mm64BitPhysicalAddress +@ stdcall MmAddPhysicalMemory(ptr ptr) +@ stdcall MmAddVerifierThunks(ptr long) +@ stdcall MmAdjustWorkingSetSize(long long long long) +@ stdcall MmAdvanceMdl(ptr long) +@ stdcall MmAllocateContiguousMemory(long long long) +@ stdcall MmAllocateContiguousMemorySpecifyCache(long long long long long long long long) +@ stdcall MmAllocateMappingAddress(long long) +@ stdcall MmAllocateNonCachedMemory(long) +@ stdcall MmAllocatePagesForMdl(ptr ptr ptr ptr ptr ptr ptr) +@ stdcall MmAllocatePagesForMdlEx(long long long long long long long long long) +@ stdcall MmBuildMdlForNonPagedPool(ptr) +@ stdcall MmCanFileBeTruncated(ptr ptr) +;MmCommitSessionMappedView +@ stdcall MmCreateMdl(ptr ptr long) +;MmCreateMirror +@ stdcall MmCreateSection(ptr long ptr ptr long long ptr ptr) +@ stdcall MmDisableModifiedWriteOfSection(long) +@ stdcall MmFlushImageSection(ptr long) +@ stdcall MmForceSectionClosed(ptr long) +@ stdcall MmFreeContiguousMemory(ptr) +@ stdcall MmFreeContiguousMemorySpecifyCache(ptr long long) +@ stdcall MmFreeMappingAddress(ptr long) +@ stdcall MmFreeNonCachedMemory(ptr long) +@ stdcall MmFreePagesFromMdl(ptr) +@ stdcall MmGetPhysicalAddress(ptr) +@ stdcall MmGetPhysicalMemoryRanges() +@ stdcall MmGetSystemRoutineAddress(ptr) +@ stdcall MmGetVirtualForPhysical(long long) +@ stdcall MmGrowKernelStack(ptr) +@ extern MmHighestUserAddress +@ stdcall MmIsAddressValid(ptr) +@ stdcall MmIsDriverVerifying(ptr) +;MmIsIoSpaceActive +@ stdcall MmIsNonPagedSystemAddressValid(ptr) +@ stdcall MmIsRecursiveIoFault() +@ stdcall MmIsThisAnNtAsSystem() +@ stdcall MmIsVerifierEnabled(ptr) +@ stdcall MmLockPagableDataSection(ptr) MmLockPageableDataSection +@ stdcall MmLockPagableImageSection(ptr) MmLockPageableDataSection +@ stdcall MmLockPagableSectionByHandle(ptr) MmLockPageableSectionByHandle +@ stdcall MmMapIoSpace(long long long long) +@ stdcall MmMapLockedPages(ptr long) +@ stdcall MmMapLockedPagesSpecifyCache(ptr long long ptr long long) +@ stdcall MmMapLockedPagesWithReservedMapping(ptr long ptr long) +@ stdcall MmMapMemoryDumpMdl(ptr) +@ stdcall MmMapUserAddressesToPage(ptr long ptr) +@ stdcall MmMapVideoDisplay(long long long long) +@ stdcall MmMapViewInSessionSpace(ptr ptr ptr) +@ stdcall MmMapViewInSystemSpace(ptr ptr ptr) +@ stdcall MmMapViewOfSection(ptr ptr ptr long long ptr ptr long long long) +@ stdcall MmMarkPhysicalMemoryAsBad(ptr ptr) +@ stdcall MmMarkPhysicalMemoryAsGood(ptr ptr) +@ stdcall MmPageEntireDriver(ptr) +@ stdcall MmPrefetchPages(long ptr) +@ stdcall MmProbeAndLockPages(ptr long long) +@ stdcall MmProbeAndLockProcessPages(ptr ptr long long) +@ stdcall MmProbeAndLockSelectedPages(ptr ptr long long) +@ stdcall MmProtectMdlSystemAddress(ptr long) +@ stdcall MmQuerySystemSize() +@ stdcall MmRemovePhysicalMemory(ptr ptr) +@ stdcall MmResetDriverPaging(ptr) +@ extern MmSectionObjectType +@ stdcall MmSecureVirtualMemory(ptr long long) +@ stdcall MmSetAddressRangeModified(ptr long) +@ stdcall MmSetBankedSection(long long long long long long) +@ stdcall MmSizeOfMdl(ptr long) +@ extern MmSystemRangeStart +@ stdcall MmTrimAllSystemPagableMemory(long) MmTrimAllSystemPageableMemory +@ stdcall MmUnlockPagableImageSection(ptr) MmUnlockPageableImageSection +@ stdcall MmUnlockPages(ptr) +@ stdcall MmUnmapIoSpace(ptr long) +@ stdcall MmUnmapLockedPages(ptr ptr) +@ stdcall MmUnmapReservedMapping(ptr long ptr) +@ stdcall MmUnmapVideoDisplay(ptr long) +@ stdcall MmUnmapViewInSessionSpace(ptr) +@ stdcall MmUnmapViewInSystemSpace(ptr) +@ stdcall MmUnmapViewOfSection(ptr ptr) +@ stdcall MmUnsecureVirtualMemory(ptr) +@ extern MmUserProbeAddress +@ extern NlsAnsiCodePage +@ extern NlsLeadByteInfo +@ extern NlsMbCodePageTag +@ extern NlsMbOemCodePageTag +@ extern NlsOemCodePage +@ extern NlsOemLeadByteInfo _NlsOemLeadByteInfo +@ stdcall NtAddAtom(wstr long ptr) +@ stdcall NtAdjustPrivilegesToken(ptr long ptr long ptr ptr) +@ stdcall NtAlertThread(ptr) +@ stdcall NtAllocateLocallyUniqueId(ptr) +@ stdcall NtAllocateUuids(ptr ptr ptr ptr) +@ stdcall NtAllocateVirtualMemory(ptr ptr long ptr long long) +@ extern NtBuildNumber +@ stdcall NtClose(ptr) +@ stdcall NtConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr) +@ stdcall NtCreateEvent(ptr long ptr long long) +@ stdcall NtCreateFile(ptr long ptr ptr ptr long long long long ptr long) +@ stdcall NtCreateSection(ptr long ptr ptr long long ptr) +@ stdcall NtCreateTimer(ptr long ptr long) +@ stdcall NtDeleteAtom(ptr) +@ stdcall NtDeleteFile(ptr) +@ stdcall NtDeviceIoControlFile(ptr ptr ptr ptr ptr long ptr long ptr long) +@ stdcall NtDuplicateObject(ptr ptr ptr ptr long long long) +@ stdcall NtDuplicateToken(ptr long ptr long long ptr) +@ stdcall NtFindAtom(wstr long ptr) +@ stdcall NtFreeVirtualMemory(ptr ptr ptr long) +@ stdcall NtFsControlFile(ptr ptr ptr ptr ptr long ptr long ptr long) +@ extern NtGlobalFlag +@ stdcall NtLockFile(ptr ptr ptr ptr ptr ptr ptr long long long) +@ stdcall NtMakePermanentObject(ptr) +@ stdcall NtMapViewOfSection(ptr ptr ptr long long ptr ptr long long long) +@ stdcall NtNotifyChangeDirectoryFile(ptr ptr ptr ptr ptr ptr long long long) +@ stdcall NtOpenEvent(ptr long ptr) +@ stdcall NtOpenFile(ptr long ptr ptr long long) +@ stdcall NtOpenProcess(ptr long ptr ptr) +@ stdcall NtOpenProcessToken(ptr long ptr) +@ stdcall NtOpenProcessTokenEx(ptr long long ptr) +@ stdcall NtOpenThread(ptr long ptr ptr) +@ stdcall NtOpenThreadToken(ptr long long ptr) +@ stdcall NtOpenThreadTokenEx(ptr long long long ptr) +@ stdcall NtQueryDirectoryFile(ptr ptr ptr ptr ptr ptr long long long ptr long) +@ stdcall NtQueryEaFile(ptr ptr ptr long long ptr long ptr long) +@ stdcall NtQueryInformationAtom(ptr long ptr long ptr) +@ stdcall NtQueryInformationFile(ptr ptr ptr long long) +@ stdcall NtQueryInformationProcess(ptr ptr ptr long ptr) +@ stdcall NtQueryInformationThread(ptr long ptr long ptr) +@ stdcall NtQueryInformationToken(ptr long ptr long ptr) +@ stdcall NtQueryQuotaInformationFile(ptr ptr ptr long long ptr long ptr long) +@ stdcall NtQuerySecurityObject(ptr long ptr long ptr) +@ stdcall NtQuerySystemInformation(long ptr long ptr) +@ stdcall NtQueryVolumeInformationFile(ptr ptr ptr long long) +@ stdcall NtReadFile(ptr ptr ptr ptr ptr ptr long ptr ptr) +@ stdcall NtRequestPort(ptr ptr) +@ stdcall NtRequestWaitReplyPort(ptr ptr ptr) +@ stdcall NtSetEaFile(ptr ptr ptr long) +@ stdcall NtSetEvent(ptr ptr) +@ stdcall NtSetInformationFile(ptr ptr ptr long long) +@ stdcall NtSetInformationProcess(ptr ptr ptr long) +@ stdcall NtSetInformationThread(ptr long ptr long) +@ stdcall NtSetQuotaInformationFile(ptr ptr ptr long) +@ stdcall NtSetSecurityObject(ptr long ptr) +@ stdcall NtSetVolumeInformationFile(ptr ptr ptr long long) +@ stdcall NtShutdownSystem(long) +@ stdcall NtTraceEvent(long long long ptr) +@ stdcall NtUnlockFile(ptr ptr ptr ptr long) +@ stdcall NtVdmControl(long ptr) +@ stdcall NtWaitForSingleObject(ptr long ptr) +@ stdcall NtWriteFile(ptr ptr ptr ptr ptr ptr long ptr ptr) +@ stdcall ObAssignSecurity(ptr ptr ptr ptr) +@ stdcall ObCheckCreateObjectAccess(ptr long ptr ptr long long ptr) +@ stdcall ObCheckObjectAccess(ptr ptr long long ptr) +@ stdcall ObCloseHandle(ptr long) +@ stdcall ObCreateObject(long ptr ptr long ptr long long long ptr) +@ stdcall ObCreateObjectType(ptr ptr ptr ptr) +;ObDeleteCapturedInsertInfo +@ stdcall ObDereferenceObject(ptr) +@ stdcall ObDereferenceObjectDeferDelete(ptr) +@ stdcall ObDereferenceSecurityDescriptor(ptr long) +@ stdcall ObFindHandleForObject(ptr ptr ptr ptr ptr) +@ stdcall ObGetObjectSecurity(ptr ptr ptr) +@ stdcall ObInsertObject(ptr ptr long long ptr ptr) +@ stdcall ObIsKernelHandle(ptr) +@ stdcall ObLogSecurityDescriptor(ptr ptr long) +@ stdcall ObMakeTemporaryObject(ptr) +@ stdcall ObOpenObjectByName(ptr ptr long ptr long ptr ptr) +@ stdcall ObOpenObjectByPointer(ptr long ptr long ptr long ptr) +@ stdcall ObQueryNameString(ptr ptr long ptr) +@ stdcall ObQueryObjectAuditingByHandle(ptr ptr) +@ stdcall ObReferenceObjectByHandle(ptr long ptr long ptr ptr) +@ stdcall ObReferenceObjectByName(ptr long ptr long ptr long ptr ptr) +@ stdcall ObReferenceObjectByPointer(ptr long ptr long) +@ stdcall ObReferenceSecurityDescriptor(ptr long) +@ stdcall ObReleaseObjectSecurity(ptr long) +;ObSetHandleAttributes@12 +@ stdcall ObSetSecurityDescriptorInfo(ptr ptr ptr ptr long ptr) +@ stdcall ObSetSecurityObjectByPointer(ptr long ptr) +@ fastcall ObfDereferenceObject(ptr) +@ fastcall ObfReferenceObject(ptr) +;PfxFindPrefix +;PfxInitialize +;PfxInsertPrefix +;PfxRemovePrefix +@ stdcall PoCallDriver(ptr ptr) +@ stdcall PoCancelDeviceNotify(ptr) +@ stdcall PoQueueShutdownWorkItem(ptr) +@ stdcall PoRegisterDeviceForIdleDetection(ptr long long long) +@ stdcall PoRegisterDeviceNotify(ptr long long long ptr ptr) +@ stdcall PoRegisterSystemState(ptr long) +@ stdcall PoRequestPowerIrp(ptr long long ptr ptr ptr) +@ stdcall PoRequestShutdownEvent(ptr) +@ stdcall PoSetHiberRange(ptr long ptr long long) +@ stdcall PoSetPowerState(ptr long long) +@ stdcall PoSetSystemState(long) +@ stdcall PoShutdownBugCheck(long long ptr ptr ptr ptr) +@ stdcall PoStartNextPowerIrp(ptr) +@ stdcall PoUnregisterSystemState(ptr) +@ stdcall ProbeForRead(ptr long long) +@ stdcall ProbeForWrite(ptr long long) +@ stdcall PsAssignImpersonationToken(ptr ptr) +@ stdcall PsChargePoolQuota(ptr long long) +@ stdcall PsChargeProcessNonPagedPoolQuota(ptr long) +@ stdcall PsChargeProcessPagedPoolQuota(ptr long) +@ stdcall PsChargeProcessPoolQuota(ptr long long) +@ stdcall PsCreateSystemProcess(ptr long ptr) +@ stdcall PsCreateSystemThread(ptr long ptr ptr ptr ptr ptr) +@ stdcall PsDereferenceImpersonationToken(ptr) PsDereferencePrimaryToken +@ stdcall PsDereferencePrimaryToken(ptr) +@ stdcall PsDisableImpersonation(ptr ptr) +@ stdcall PsEstablishWin32Callouts(ptr) +@ stdcall PsGetContextThread(ptr ptr long) +@ stdcall PsGetCurrentProcess() IoGetCurrentProcess +@ stdcall PsGetCurrentProcessId() +@ stdcall PsGetCurrentProcessSessionId() +@ stdcall PsGetCurrentProcessWin32Process() +@ stdcall PsGetCurrentThread() KeGetCurrentThread +@ stdcall PsGetCurrentThreadId() +@ stdcall PsGetCurrentThreadPreviousMode() +;PsGetCurrentThreadProcess +;PsGetCurrentThreadProcessId +@ stdcall PsGetCurrentThreadStackBase() +@ stdcall PsGetCurrentThreadStackLimit() +;PsGetCurrentThreadTeb +@ stdcall PsGetCurrentThreadWin32Thread() +;PsGetCurrentThreadWin32ThreadAndEnterCriticalRegion +@ stdcall PsGetJobLock(ptr) +@ stdcall PsGetJobSessionId(ptr) +@ stdcall PsGetJobUIRestrictionsClass(ptr) +@ stdcall PsGetProcessCreateTimeQuadPart(ptr) +@ stdcall PsGetProcessDebugPort(ptr) +@ stdcall PsGetProcessExitProcessCalled(ptr) +@ stdcall PsGetProcessExitStatus(ptr) +@ stdcall PsGetProcessExitTime() +@ stdcall PsGetProcessId(ptr) +@ stdcall PsGetProcessImageFileName(ptr) +@ stdcall PsGetProcessInheritedFromUniqueProcessId(ptr) +@ stdcall PsGetProcessJob(ptr) +@ stdcall PsGetProcessPeb(ptr) +@ stdcall PsGetProcessPriorityClass(ptr) +@ stdcall PsGetProcessSectionBaseAddress(ptr) +@ stdcall PsGetProcessSecurityPort(ptr) +@ stdcall PsGetProcessSessionId(ptr) +;PsGetProcessSessionIdEx +@ stdcall PsGetProcessWin32Process(ptr) +@ stdcall PsGetProcessWin32WindowStation(ptr) +@ stdcall PsGetThreadFreezeCount(ptr) +@ stdcall PsGetThreadHardErrorsAreDisabled(ptr) +@ stdcall PsGetThreadId(ptr) +@ stdcall PsGetThreadProcess(ptr) +@ stdcall PsGetThreadProcessId(ptr) +@ stdcall PsGetThreadSessionId(ptr) +@ stdcall PsGetThreadTeb(ptr) +@ stdcall PsGetThreadWin32Thread(ptr) +@ stdcall PsGetVersion(ptr ptr ptr ptr) +@ stdcall PsImpersonateClient(ptr ptr long long long) +@ extern PsInitialSystemProcess +@ stdcall PsIsProcessBeingDebugged(ptr) +@ stdcall PsIsSystemProcess(ptr) +@ stdcall PsIsSystemThread(ptr) +@ stdcall PsIsThreadImpersonating(ptr) +@ stdcall PsIsThreadTerminating(ptr) +@ extern PsJobType +@ stdcall PsLookupProcessByProcessId(ptr ptr) +@ stdcall PsLookupProcessThreadByCid(ptr ptr ptr) +@ stdcall PsLookupThreadByThreadId(ptr ptr) +@ extern PsProcessType _PsProcessType +@ stdcall PsReferenceImpersonationToken(ptr ptr ptr ptr) +@ stdcall PsReferencePrimaryToken(ptr) +@ stdcall PsRemoveCreateThreadNotifyRoutine(ptr) +@ stdcall PsRemoveLoadImageNotifyRoutine(ptr) +@ stdcall PsRestoreImpersonation(ptr ptr) +@ stdcall PsReturnPoolQuota(ptr long long) +@ stdcall PsReturnProcessNonPagedPoolQuota(ptr long) +@ stdcall PsReturnProcessPagedPoolQuota(ptr long) +@ stdcall PsRevertThreadToSelf(ptr) +@ stdcall PsRevertToSelf() +@ stdcall PsSetContextThread(ptr ptr long) +@ stdcall PsSetCreateProcessNotifyRoutine(ptr long) +@ stdcall PsSetCreateThreadNotifyRoutine(ptr) +@ stdcall PsSetJobUIRestrictionsClass(ptr long) +@ stdcall PsSetLegoNotifyRoutine(ptr) +@ stdcall PsSetLoadImageNotifyRoutine(ptr) +@ stdcall PsSetProcessPriorityByClass(ptr ptr) +@ stdcall PsSetProcessPriorityClass(ptr long) +@ stdcall PsSetProcessSecurityPort(ptr ptr) +@ stdcall PsSetProcessWin32Process(ptr ptr) +@ stdcall PsSetProcessWindowStation(ptr ptr) +@ stdcall PsSetThreadHardErrorsAreDisabled(ptr long) +@ stdcall PsSetThreadWin32Thread(ptr ptr) +@ stdcall PsTerminateSystemThread(long) +@ extern PsThreadType _PsThreadType +;PsWrapApcWow64Thread +@ stdcall -arch=i386,arm READ_REGISTER_BUFFER_UCHAR(ptr ptr long) +@ stdcall -arch=i386,arm READ_REGISTER_BUFFER_ULONG(ptr ptr long) +@ stdcall -arch=i386,arm READ_REGISTER_BUFFER_USHORT(ptr ptr long) +@ stdcall -arch=i386,arm READ_REGISTER_UCHAR(ptr) +@ stdcall -arch=i386,arm READ_REGISTER_ULONG(ptr) +@ stdcall -arch=i386,arm READ_REGISTER_USHORT(ptr) +@ stdcall RtlAbsoluteToSelfRelativeSD(ptr ptr ptr) +@ stdcall RtlAddAccessAllowedAce(ptr long long ptr) +@ stdcall RtlAddAccessAllowedAceEx(ptr long long long ptr) +@ stdcall RtlAddAce(ptr long long ptr long) +@ stdcall RtlAddAtomToAtomTable(ptr wstr ptr) +@ stdcall RtlAddRange(ptr long long long long long long ptr ptr) +@ stdcall RtlAllocateAndInitializeSid(ptr long long long long long long long long long ptr) +@ stdcall RtlAllocateHeap(ptr long long) +@ stdcall RtlAnsiCharToUnicodeChar(ptr) +@ stdcall RtlAnsiStringToUnicodeSize(ptr) RtlxAnsiStringToUnicodeSize +@ stdcall RtlAnsiStringToUnicodeString(ptr ptr long) +@ stdcall RtlAppendAsciizToString(ptr str) +@ stdcall RtlAppendStringToString(ptr ptr) +@ stdcall RtlAppendUnicodeStringToString(ptr ptr) +@ stdcall RtlAppendUnicodeToString(ptr wstr) +@ stdcall RtlAreAllAccessesGranted(long long) +@ stdcall RtlAreAnyAccessesGranted(long long) +@ stdcall RtlAreBitsClear(ptr long long) +@ stdcall RtlAreBitsSet(ptr long long) +@ stdcall RtlAssert(str str long str) +@ stdcall RtlCaptureContext(ptr) +@ stdcall RtlCaptureStackBackTrace(long long ptr ptr) +@ stdcall RtlCharToInteger(str long ptr) +@ stdcall RtlCheckRegistryKey(long wstr) +@ stdcall RtlClearAllBits(ptr) +@ stdcall RtlClearBit(ptr long) +@ stdcall RtlClearBits(ptr long long) +@ stdcall RtlCompareMemory(ptr ptr long) +@ stdcall RtlCompareMemoryUlong(ptr long long) +@ stdcall RtlCompareString(ptr ptr long) +@ stdcall RtlCompareUnicodeString(ptr ptr long) +@ stdcall RtlCompressBuffer(long ptr long ptr long long ptr ptr) +@ stdcall RtlCompressChunks(ptr long ptr long ptr long ptr) +@ stdcall RtlConvertLongToLargeInteger(long) +@ stdcall RtlConvertSidToUnicodeString(ptr ptr long) +@ stdcall RtlConvertUlongToLargeInteger(long) +@ stdcall RtlCopyLuid(ptr ptr) +@ stdcall RtlCopyRangeList(ptr ptr) +@ stdcall RtlCopySid(long ptr ptr) +@ stdcall RtlCopyString(ptr ptr) +@ stdcall RtlCopyUnicodeString(ptr ptr) +@ stdcall RtlCreateAcl(ptr long long) +@ stdcall RtlCreateAtomTable(long ptr) +@ stdcall RtlCreateHeap(long ptr long long ptr ptr) +@ stdcall RtlCreateRegistryKey(long wstr) +@ stdcall RtlCreateSecurityDescriptor(ptr long) +@ stdcall RtlCreateSystemVolumeInformationFolder(ptr) +@ stdcall RtlCreateUnicodeString(ptr wstr) +@ stdcall RtlCustomCPToUnicodeN(ptr wstr long ptr ptr long) +@ stdcall RtlDecompressBuffer(long ptr long ptr long ptr) +@ stdcall RtlDecompressChunks(ptr long ptr long ptr long ptr) +@ stdcall RtlDecompressFragment(long ptr long ptr long long ptr ptr) +@ stdcall RtlDelete(ptr) +@ stdcall RtlDeleteAce(ptr long) +@ stdcall RtlDeleteAtomFromAtomTable(ptr ptr) +@ stdcall RtlDeleteElementGenericTable(ptr ptr) +@ stdcall RtlDeleteElementGenericTableAvl(ptr ptr) +@ stdcall RtlDeleteNoSplay(ptr ptr) +@ stdcall RtlDeleteOwnersRanges(ptr ptr) +@ stdcall RtlDeleteRange(ptr long long long long ptr) +@ stdcall RtlDeleteRegistryValue(long wstr wstr) +@ stdcall RtlDescribeChunk(long ptr ptr ptr ptr) +@ stdcall RtlDestroyAtomTable(ptr) +@ stdcall RtlDestroyHeap(ptr) +@ stdcall RtlDowncaseUnicodeString(ptr ptr long) +@ stdcall RtlEmptyAtomTable(ptr long) +@ stdcall RtlEnlargedIntegerMultiply(long long) +@ stdcall RtlEnlargedUnsignedDivide(long long long ptr) +@ stdcall RtlEnlargedUnsignedMultiply(long long) +@ stdcall RtlEnumerateGenericTable(ptr long) +@ stdcall RtlEnumerateGenericTableAvl(ptr long) +@ stdcall RtlEnumerateGenericTableLikeADirectory(ptr ptr ptr long ptr ptr ptr) +@ stdcall RtlEnumerateGenericTableWithoutSplaying(ptr ptr) +@ stdcall RtlEnumerateGenericTableWithoutSplayingAvl(ptr ptr) +@ stdcall RtlEqualLuid(ptr ptr) +@ stdcall RtlEqualSid(ptr ptr) +@ stdcall RtlEqualString(ptr ptr long) +@ stdcall RtlEqualUnicodeString(ptr ptr long) +@ stdcall RtlExtendedIntegerMultiply(long long long) +@ stdcall RtlExtendedLargeIntegerDivide(long long long ptr) +@ stdcall RtlExtendedMagicDivide(long long long long long) +@ stdcall RtlFillMemory(ptr long long) +@ stdcall RtlFillMemoryUlong(ptr long long) +@ stdcall RtlFindClearBits(ptr long long) +@ stdcall RtlFindClearBitsAndSet(ptr long long) +@ stdcall RtlFindClearRuns(ptr ptr long long) +@ stdcall RtlFindFirstRunClear(ptr ptr) +@ stdcall RtlFindLastBackwardRunClear(ptr long ptr) +@ stdcall RtlFindLeastSignificantBit(long long) +@ stdcall RtlFindLongestRunClear(ptr ptr) +@ stdcall RtlFindMessage(ptr long long long ptr) +@ stdcall RtlFindMostSignificantBit(long long) +@ stdcall RtlFindNextForwardRunClear(ptr long ptr) +@ stdcall RtlFindRange(ptr long long long long long long long long ptr ptr ptr) +@ stdcall RtlFindSetBits(ptr long long) +@ stdcall RtlFindSetBitsAndClear(ptr long long) +@ stdcall RtlFindUnicodePrefix(ptr ptr long) +@ stdcall RtlFormatCurrentUserKeyPath(ptr) +@ stdcall RtlFreeAnsiString(ptr) +@ stdcall RtlFreeHeap(ptr long ptr) +@ stdcall RtlFreeOemString(ptr) +@ stdcall RtlFreeRangeList(ptr) +@ stdcall RtlFreeUnicodeString(ptr) +@ stdcall RtlGUIDFromString(ptr ptr) +@ stdcall RtlGenerate8dot3Name(ptr ptr long ptr) +@ stdcall RtlGetAce(ptr long ptr) +@ stdcall RtlGetCallersAddress(ptr ptr) +@ stdcall RtlGetCompressionWorkSpaceSize(long ptr ptr) +@ stdcall RtlGetDaclSecurityDescriptor(ptr ptr ptr ptr) +@ stdcall RtlGetDefaultCodePage(ptr ptr) +@ stdcall RtlGetElementGenericTable(ptr long) +@ stdcall RtlGetElementGenericTableAvl(ptr long) +@ stdcall RtlGetFirstRange(ptr ptr ptr) +@ stdcall RtlGetGroupSecurityDescriptor(ptr ptr ptr) +@ stdcall RtlGetNextRange(ptr ptr long) +@ stdcall RtlGetNtGlobalFlags() +@ stdcall RtlGetOwnerSecurityDescriptor(ptr ptr ptr) +@ stdcall RtlGetSaclSecurityDescriptor(ptr ptr ptr ptr) +@ stdcall RtlGetSetBootStatusData(ptr long long ptr long long) +@ stdcall RtlGetVersion(ptr) +@ stdcall RtlHashUnicodeString(ptr long long ptr) +@ stdcall RtlImageDirectoryEntryToData(ptr long long ptr) +@ stdcall RtlImageNtHeader(ptr) +@ stdcall RtlInitAnsiString(ptr str) +@ stdcall RtlInitAnsiStringEx(ptr str) +@ stdcall RtlInitCodePageTable(ptr ptr) +@ stdcall RtlInitString(ptr str) +@ stdcall RtlInitUnicodeString(ptr wstr) +@ stdcall RtlInitUnicodeStringEx(ptr wstr) +@ stdcall RtlInitializeBitMap(ptr ptr long) +@ stdcall RtlInitializeGenericTable(ptr ptr ptr ptr ptr) +@ stdcall RtlInitializeGenericTableAvl(ptr ptr ptr ptr ptr) +@ stdcall RtlInitializeRangeList(ptr) +@ stdcall RtlInitializeSid(ptr ptr long) +@ stdcall RtlInitializeUnicodePrefix(ptr) +@ stdcall RtlInsertElementGenericTable(ptr ptr long ptr) +@ stdcall RtlInsertElementGenericTableAvl(ptr ptr long ptr) +@ stdcall RtlInsertElementGenericTableFull(ptr ptr long ptr ptr long) +@ stdcall RtlInsertElementGenericTableFullAvl(ptr ptr long ptr ptr ptr) +@ stdcall RtlInsertUnicodePrefix(ptr ptr ptr) +@ stdcall RtlInt64ToUnicodeString(long long long ptr) +@ stdcall RtlIntegerToChar(long long long ptr) +@ stdcall RtlIntegerToUnicode(long long long ptr) +@ stdcall RtlIntegerToUnicodeString(long long ptr) +@ stdcall RtlInvertRangeList(ptr ptr) +@ stdcall RtlIpv4AddressToStringA(ptr ptr) +@ stdcall RtlIpv4AddressToStringExA(ptr long ptr ptr) +@ stdcall RtlIpv4AddressToStringExW(ptr long ptr ptr) +@ stdcall RtlIpv4AddressToStringW(ptr ptr) +@ stdcall RtlIpv4StringToAddressA(str long ptr ptr) +@ stdcall RtlIpv4StringToAddressExA(str long ptr ptr) +@ stdcall RtlIpv4StringToAddressExW(wstr long ptr ptr) +@ stdcall RtlIpv4StringToAddressW(wstr long ptr ptr) +@ stdcall RtlIpv6AddressToStringA(ptr ptr) +@ stdcall RtlIpv6AddressToStringExA(ptr long long ptr ptr) +@ stdcall RtlIpv6AddressToStringExW(ptr long long ptr ptr) +@ stdcall RtlIpv6AddressToStringW(ptr ptr) +@ stdcall RtlIpv6StringToAddressA(str ptr ptr) +@ stdcall RtlIpv6StringToAddressExA(str ptr ptr ptr) +@ stdcall RtlIpv6StringToAddressExW(wstr ptr ptr ptr) +@ stdcall RtlIpv6StringToAddressW(wstr ptr ptr) +@ stdcall RtlIsGenericTableEmpty(ptr) +@ stdcall RtlIsGenericTableEmptyAvl(ptr) +@ stdcall RtlIsNameLegalDOS8Dot3(ptr ptr ptr) +@ stdcall RtlIsRangeAvailable(ptr long long long long long long ptr ptr ptr) +@ stdcall RtlIsValidOemCharacter(ptr) +@ stdcall RtlLargeIntegerAdd(long long long long) +@ stdcall RtlLargeIntegerArithmeticShift(long long long) +@ stdcall RtlLargeIntegerDivide(long long long long ptr) +@ stdcall RtlLargeIntegerNegate(long long) +@ stdcall RtlLargeIntegerShiftLeft(long long long) +@ stdcall RtlLargeIntegerShiftRight(long long long) +@ stdcall RtlLargeIntegerSubtract(long long long long) +@ stdcall RtlLengthRequiredSid(long) +@ stdcall RtlLengthSecurityDescriptor(ptr) +@ stdcall RtlLengthSid(ptr) +@ stdcall RtlLockBootStatusData(ptr) +@ stdcall RtlLookupAtomInAtomTable(ptr wstr ptr) +@ stdcall RtlLookupElementGenericTable(ptr ptr) +@ stdcall RtlLookupElementGenericTableAvl(ptr ptr) +@ stdcall RtlLookupElementGenericTableFull(ptr ptr ptr ptr) +@ stdcall RtlLookupElementGenericTableFullAvl(ptr ptr ptr ptr) +@ stdcall RtlMapGenericMask(ptr ptr) +@ stdcall RtlMapSecurityErrorToNtStatus(long) +@ stdcall RtlMergeRangeLists(ptr ptr ptr long) +@ stdcall RtlMoveMemory(ptr ptr long) +@ stdcall RtlMultiByteToUnicodeN(ptr long ptr str long) +@ stdcall RtlMultiByteToUnicodeSize(ptr str long) +@ stdcall RtlNextUnicodePrefix(ptr long) +@ stdcall RtlNtStatusToDosError(long) +@ stdcall RtlNtStatusToDosErrorNoTeb(long) +@ stdcall RtlNumberGenericTableElements(ptr) +@ stdcall RtlNumberGenericTableElementsAvl(ptr) +@ stdcall RtlNumberOfClearBits(ptr) +@ stdcall RtlNumberOfSetBits(ptr) +@ stdcall RtlOemStringToCountedUnicodeString(ptr ptr long) +@ stdcall RtlOemStringToUnicodeSize(ptr) RtlxOemStringToUnicodeSize +@ stdcall RtlOemStringToUnicodeString(ptr ptr long) +@ stdcall RtlOemToUnicodeN(wstr long ptr ptr long) +@ stdcall RtlPinAtomInAtomTable(ptr ptr) +@ fastcall RtlPrefetchMemoryNonTemporal(ptr long) +@ stdcall RtlPrefixString(ptr ptr long) +@ stdcall RtlPrefixUnicodeString(ptr ptr long) +@ stdcall RtlQueryAtomInAtomTable(ptr ptr ptr ptr ptr ptr) +@ stdcall RtlQueryRegistryValues(long wstr ptr ptr ptr) +@ stdcall RtlQueryTimeZoneInformation(ptr) +@ stdcall RtlRaiseException(ptr) +@ stdcall RtlRandom(ptr) +@ stdcall RtlRandomEx(ptr) +@ stdcall RtlRealPredecessor(ptr) +@ stdcall RtlRealSuccessor(ptr) +@ stdcall RtlRemoveUnicodePrefix(ptr ptr) +@ stdcall RtlReserveChunk(long ptr ptr ptr long) +@ stdcall RtlSecondsSince1970ToTime(long ptr) +@ stdcall RtlSecondsSince1980ToTime(long ptr) +@ stdcall RtlSelfRelativeToAbsoluteSD(ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) +@ stdcall RtlSelfRelativeToAbsoluteSD2(ptr long) +@ stdcall RtlSetAllBits(ptr) +@ stdcall RtlSetBit(ptr long) +@ stdcall RtlSetBits(ptr long long) +@ stdcall RtlSetDaclSecurityDescriptor(ptr long ptr long) +@ stdcall RtlSetGroupSecurityDescriptor(ptr ptr long) +@ stdcall RtlSetOwnerSecurityDescriptor(ptr ptr long) +@ stdcall RtlSetSaclSecurityDescriptor(ptr long ptr long) +@ stdcall RtlSetTimeZoneInformation(ptr) +@ stdcall RtlSizeHeap(ptr long ptr) +@ stdcall RtlSplay(ptr) +@ stdcall RtlStringFromGUID(ptr ptr) +@ stdcall RtlSubAuthorityCountSid(ptr) +@ stdcall RtlSubAuthoritySid(ptr long) +@ stdcall RtlSubtreePredecessor(ptr) +@ stdcall RtlSubtreeSuccessor(ptr) +@ stdcall RtlTestBit(ptr long) +@ stdcall RtlTimeFieldsToTime(ptr ptr) +@ stdcall RtlTimeToElapsedTimeFields(ptr ptr) +@ stdcall RtlTimeToSecondsSince1970(ptr ptr) +@ stdcall RtlTimeToSecondsSince1980(ptr ptr) +@ stdcall RtlTimeToTimeFields(ptr ptr) +;RtlTraceDatabaseAdd +;RtlTraceDatabaseCreate +;RtlTraceDatabaseDestroy +;RtlTraceDatabaseEnumerate +;RtlTraceDatabaseFind +;RtlTraceDatabaseLock +;RtlTraceDatabaseUnlock +;RtlTraceDatabaseValidate +@ fastcall -arch=i386,arm RtlUlongByteSwap(long) +@ fastcall -arch=i386,arm RtlUlonglongByteSwap(long long) +@ stdcall RtlUnicodeStringToAnsiSize(ptr) RtlxUnicodeStringToAnsiSize +@ stdcall RtlUnicodeStringToAnsiString(ptr ptr long) +@ stdcall RtlUnicodeStringToCountedOemString(ptr ptr long) +@ stdcall RtlUnicodeStringToInteger(ptr long ptr) +@ stdcall RtlUnicodeStringToOemSize(ptr) RtlxUnicodeStringToOemSize +@ stdcall RtlUnicodeStringToOemString(ptr ptr long) +@ stdcall RtlUnicodeToCustomCPN(ptr ptr long ptr wstr long) +@ stdcall RtlUnicodeToMultiByteN(ptr long ptr wstr long) +@ stdcall RtlUnicodeToMultiByteSize(ptr wstr long) +@ stdcall RtlUnicodeToOemN(ptr long ptr wstr long) +@ stdcall RtlUnlockBootStatusData(ptr) +@ stdcall RtlUnwind(ptr ptr ptr ptr) +@ stdcall RtlUpcaseUnicodeChar(long) +@ stdcall RtlUpcaseUnicodeString(ptr ptr long) +@ stdcall RtlUpcaseUnicodeStringToAnsiString(ptr ptr long) +@ stdcall RtlUpcaseUnicodeStringToCountedOemString(ptr ptr long) +@ stdcall RtlUpcaseUnicodeStringToOemString(ptr ptr long) +@ stdcall RtlUpcaseUnicodeToCustomCPN(ptr ptr long ptr wstr long) +@ stdcall RtlUpcaseUnicodeToMultiByteN(ptr long ptr wstr long) +@ stdcall RtlUpcaseUnicodeToOemN(ptr long ptr wstr long) +@ stdcall RtlUpperChar(long) +@ stdcall RtlUpperString(ptr ptr) +@ fastcall -arch=i386,arm RtlUshortByteSwap(long) +@ stdcall RtlValidRelativeSecurityDescriptor(ptr long long) +@ stdcall RtlValidSecurityDescriptor(ptr) +@ stdcall RtlValidSid(ptr) +@ stdcall RtlVerifyVersionInfo(ptr long long long) +@ stdcall RtlVolumeDeviceToDosName(ptr ptr) +@ stdcall RtlWalkFrameChain(ptr long long) +@ stdcall RtlWriteRegistryValue(long wstr wstr long ptr long) +@ stdcall RtlZeroHeap(ptr long) +@ stdcall RtlZeroMemory(ptr long) +@ stdcall RtlxAnsiStringToUnicodeSize(ptr) +@ stdcall RtlxOemStringToUnicodeSize(ptr) +@ stdcall RtlxUnicodeStringToAnsiSize(ptr) +@ stdcall RtlxUnicodeStringToOemSize(ptr) +@ stdcall SeAccessCheck(ptr ptr ptr long long ptr ptr long ptr ptr) +@ stdcall SeAppendPrivileges(ptr ptr) +@ stdcall SeAssignSecurity(ptr ptr ptr long ptr ptr ptr) +@ stdcall SeAssignSecurityEx(ptr ptr ptr ptr long long ptr ptr ptr) +@ stdcall SeAuditHardLinkCreation(ptr ptr long) +@ stdcall SeAuditingFileEvents(long ptr) +@ stdcall SeAuditingFileEventsWithContext(long ptr ptr) +@ stdcall SeAuditingFileOrGlobalEvents(long ptr ptr) +@ stdcall SeAuditingHardLinkEvents(long ptr) +@ stdcall SeAuditingHardLinkEventsWithContext(long ptr ptr) +@ stdcall SeCaptureSecurityDescriptor(ptr long long long ptr) +@ stdcall SeCaptureSubjectContext(ptr) +@ stdcall SeCloseObjectAuditAlarm(ptr ptr long) +@ stdcall SeCreateAccessState(ptr ptr long ptr) +@ stdcall SeCreateClientSecurity(ptr ptr long ptr) +@ stdcall SeCreateClientSecurityFromSubjectContext(ptr ptr long ptr) +@ stdcall SeDeassignSecurity(ptr) +@ stdcall SeDeleteAccessState(ptr) +@ stdcall SeDeleteObjectAuditAlarm(ptr ptr) +@ extern SeExports +@ stdcall SeFilterToken(ptr long ptr ptr ptr ptr) +@ stdcall SeFreePrivileges(ptr) +@ stdcall SeImpersonateClient(ptr ptr) +@ stdcall SeImpersonateClientEx(ptr ptr) +@ stdcall SeLockSubjectContext(ptr) +@ stdcall SeMarkLogonSessionForTerminationNotification(ptr) +@ stdcall SeOpenObjectAuditAlarm(ptr ptr ptr ptr ptr long long long ptr) +@ stdcall SeOpenObjectForDeleteAuditAlarm(ptr ptr ptr ptr ptr long long long ptr) +@ stdcall SePrivilegeCheck(ptr ptr long) +@ stdcall SePrivilegeObjectAuditAlarm(ptr ptr long ptr long long) +@ extern SePublicDefaultDacl +@ stdcall SeQueryAuthenticationIdToken(ptr ptr) +@ stdcall SeQueryInformationToken(ptr long ptr) +@ stdcall SeQuerySecurityDescriptorInfo(ptr ptr ptr ptr) +@ stdcall SeQuerySessionIdToken(ptr ptr) +@ stdcall SeRegisterLogonSessionTerminatedRoutine(ptr) +@ stdcall SeReleaseSecurityDescriptor(ptr long long) +@ stdcall SeReleaseSubjectContext(ptr) +@ stdcall SeSetAccessStateGenericMapping(ptr ptr) +;SeSetAuditParameter +@ stdcall SeSetSecurityDescriptorInfo(ptr ptr ptr ptr long ptr) +@ stdcall SeSetSecurityDescriptorInfoEx(ptr ptr ptr ptr long long ptr) +@ stdcall SeSinglePrivilegeCheck(long long long) +@ extern SeSystemDefaultDacl +@ stdcall SeTokenImpersonationLevel(ptr) +@ stdcall SeTokenIsAdmin(ptr) +@ stdcall SeTokenIsRestricted(ptr) +@ stdcall SeTokenIsWriteRestricted(ptr) +@ stdcall SeTokenType(ptr) +@ stdcall SeUnlockSubjectContext(ptr) +@ stdcall SeUnregisterLogonSessionTerminatedRoutine(ptr) +@ stdcall SeValidSecurityDescriptor(long ptr) +@ stdcall VerSetConditionMask(long long long long) +@ cdecl VfFailDeviceNode(ptr long long long ptr ptr ptr) +;VfFailDriver +@ cdecl VfFailSystemBIOS(long long long ptr ptr ptr) +@ stdcall VfIsVerificationEnabled(long ptr) +@ stdcall -arch=i386,arm WRITE_REGISTER_BUFFER_UCHAR(ptr ptr long) +@ stdcall -arch=i386,arm WRITE_REGISTER_BUFFER_ULONG(ptr ptr long) +@ stdcall -arch=i386,arm WRITE_REGISTER_BUFFER_USHORT(ptr ptr long) +@ stdcall -arch=i386,arm WRITE_REGISTER_UCHAR(ptr long) +@ stdcall -arch=i386,arm WRITE_REGISTER_ULONG(ptr long) +@ stdcall -arch=i386,arm WRITE_REGISTER_USHORT(ptr long) +;WmiFlushTrace +;WmiGetClock +;WmiQueryTrace +@ stdcall WmiQueryTraceInformation(long ptr long ptr ptr) +;WmiStartTrace +;WmiStopTrace +;WmiTraceFastEvent +@ cdecl WmiTraceMessage() +@ stdcall WmiTraceMessageVa(double long ptr long long) +;WmiUpdateTrace +;XIPDispatch +@ stdcall ZwAccessCheckAndAuditAlarm(ptr ptr ptr ptr ptr long ptr long ptr ptr ptr) +@ stdcall ZwAddBootEntry(ptr long) +@ stdcall ZwAddDriverEntry(ptr long) +@ stdcall ZwAdjustPrivilegesToken(ptr long ptr long ptr ptr) +@ stdcall ZwAlertThread(ptr) +@ stdcall ZwAllocateVirtualMemory(ptr ptr long ptr long long) +@ stdcall ZwAssignProcessToJobObject(ptr ptr) +@ stdcall ZwCancelIoFile(ptr ptr) +@ stdcall ZwCancelTimer(ptr ptr) +@ stdcall ZwClearEvent(ptr) +@ stdcall ZwClose(ptr) +@ stdcall ZwCloseObjectAuditAlarm(ptr ptr long) +@ stdcall ZwConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr) +@ stdcall ZwCreateDirectoryObject(ptr long ptr) +@ stdcall ZwCreateEvent(ptr long ptr long long) +@ stdcall ZwCreateFile(ptr long ptr ptr ptr long long long long ptr long) +@ stdcall ZwCreateJobObject(ptr long ptr) +@ stdcall ZwCreateKey(ptr long ptr long ptr long ptr) +@ stdcall ZwCreateSection(ptr long ptr ptr long long ptr) +@ stdcall ZwCreateSymbolicLinkObject(ptr long ptr ptr) +@ stdcall ZwCreateTimer(ptr long ptr long) +@ stdcall ZwDeleteBootEntry(long) +@ stdcall ZwDeleteDriverEntry(long) +@ stdcall ZwDeleteFile(ptr) +@ stdcall ZwDeleteKey(ptr) +@ stdcall ZwDeleteValueKey(ptr ptr) +@ stdcall ZwDeviceIoControlFile(ptr ptr ptr ptr ptr long ptr long ptr long) +@ stdcall ZwDisplayString(ptr) +@ stdcall ZwDuplicateObject(ptr ptr ptr ptr long long long) +@ stdcall ZwDuplicateToken(ptr long ptr long long ptr) +@ stdcall ZwEnumerateBootEntries(ptr ptr) +@ stdcall ZwEnumerateDriverEntries(ptr ptr) +@ stdcall ZwEnumerateKey(ptr long long ptr long ptr) +@ stdcall ZwEnumerateValueKey(ptr long long ptr long ptr) +@ stdcall ZwFlushInstructionCache(ptr ptr long) +@ stdcall ZwFlushKey(ptr) +@ stdcall ZwFlushVirtualMemory(ptr ptr ptr ptr) +@ stdcall ZwFreeVirtualMemory(ptr ptr ptr long) +@ stdcall ZwFsControlFile(ptr ptr ptr ptr ptr long ptr long ptr long) +@ stdcall ZwInitiatePowerAction(long long long long) +@ stdcall ZwIsProcessInJob(ptr ptr) +@ stdcall ZwLoadDriver(ptr) +@ stdcall ZwLoadKey(ptr ptr) +@ stdcall ZwMakeTemporaryObject(ptr) +@ stdcall ZwMapViewOfSection(ptr ptr ptr long long ptr ptr long long long) +@ stdcall ZwModifyBootEntry(ptr) +@ stdcall ZwModifyDriverEntry(ptr) +@ stdcall ZwNotifyChangeKey(ptr ptr ptr ptr ptr long long ptr long long) +@ stdcall ZwOpenDirectoryObject(ptr long ptr) +@ stdcall ZwOpenEvent(ptr long ptr) +@ stdcall ZwOpenFile(ptr long ptr ptr long long) +@ stdcall ZwOpenJobObject(ptr long ptr) +@ stdcall ZwOpenKey(ptr long ptr) +@ stdcall ZwOpenProcess(ptr long ptr ptr) +@ stdcall ZwOpenProcessToken(ptr long ptr) +@ stdcall ZwOpenProcessTokenEx(ptr long long ptr) +@ stdcall ZwOpenSection(ptr long ptr) +@ stdcall ZwOpenSymbolicLinkObject(ptr long ptr) +@ stdcall ZwOpenThread(ptr long ptr ptr) +@ stdcall ZwOpenThreadToken(ptr long long ptr) +@ stdcall ZwOpenThreadTokenEx(ptr long long long ptr) +@ stdcall ZwOpenTimer(ptr long ptr) +@ stdcall ZwPowerInformation(long ptr long ptr long) +@ stdcall ZwPulseEvent(ptr ptr) +@ stdcall ZwQueryBootEntryOrder(ptr ptr) +@ stdcall ZwQueryBootOptions(ptr ptr) +@ stdcall ZwQueryDefaultLocale(long ptr) +@ stdcall ZwQueryDefaultUILanguage(ptr) +@ stdcall ZwQueryDirectoryFile(ptr ptr ptr ptr ptr ptr long long long ptr long) +@ stdcall ZwQueryDirectoryObject(ptr ptr long long long ptr ptr) +@ stdcall ZwQueryDriverEntryOrder(ptr ptr) +@ stdcall ZwQueryEaFile(ptr ptr ptr long long ptr long ptr long) +@ stdcall ZwQueryFullAttributesFile(ptr ptr) +@ stdcall ZwQueryInformationAtom(ptr long ptr long ptr) +@ stdcall ZwQueryInformationFile(ptr ptr ptr long long) +@ stdcall ZwQueryInformationJobObject(ptr long ptr long ptr) +@ stdcall ZwQueryInformationProcess(ptr long ptr long ptr) +@ stdcall ZwQueryInformationThread(ptr long ptr long ptr) +@ stdcall ZwQueryInformationToken(ptr long long long ptr) +@ stdcall ZwQueryInstallUILanguage(ptr) +@ stdcall ZwQueryKey(ptr long ptr long ptr) +@ stdcall ZwQueryObject(ptr long ptr long ptr) +@ stdcall ZwQuerySection(ptr long ptr long ptr) +@ stdcall ZwQuerySecurityObject(ptr long ptr long ptr) +@ stdcall ZwQuerySymbolicLinkObject(ptr ptr ptr) +@ stdcall ZwQuerySystemInformation(long ptr long ptr) +@ stdcall ZwQueryValueKey(ptr ptr long ptr long ptr) +@ stdcall ZwQueryVolumeInformationFile(ptr ptr ptr long long) +@ stdcall ZwReadFile(ptr ptr ptr ptr ptr ptr long ptr ptr) +@ stdcall ZwReplaceKey(ptr ptr ptr) +@ stdcall ZwRequestWaitReplyPort(ptr ptr ptr) +@ stdcall ZwResetEvent(ptr ptr) +@ stdcall ZwRestoreKey(ptr ptr long) +@ stdcall ZwSaveKey(ptr ptr) +@ stdcall ZwSaveKeyEx(ptr ptr long) +@ stdcall ZwSecureConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr ptr) +@ stdcall ZwSetBootEntryOrder(ptr ptr) +@ stdcall ZwSetBootOptions(ptr long) +@ stdcall ZwSetDefaultLocale(long long) +@ stdcall ZwSetDefaultUILanguage(long) +@ stdcall ZwSetDriverEntryOrder(ptr ptr) +@ stdcall ZwSetEaFile(ptr ptr ptr long) +@ stdcall ZwSetEvent(ptr ptr) +@ stdcall ZwSetInformationFile(ptr ptr ptr long long) +@ stdcall ZwSetInformationJobObject(ptr long ptr long) +@ stdcall ZwSetInformationObject(ptr long ptr long) +@ stdcall ZwSetInformationProcess(ptr long ptr long) +@ stdcall ZwSetInformationThread(ptr long ptr long) +@ stdcall ZwSetSecurityObject(ptr long ptr) +@ stdcall ZwSetSystemInformation(long ptr long) +@ stdcall ZwSetSystemTime(ptr ptr) +@ stdcall ZwSetTimer(ptr ptr ptr ptr long long ptr) +@ stdcall ZwSetValueKey(ptr ptr long long ptr long) +@ stdcall ZwSetVolumeInformationFile(ptr ptr ptr long long) +@ stdcall ZwTerminateJobObject(ptr long) +@ stdcall ZwTerminateProcess(ptr long) +@ stdcall ZwTranslateFilePath(ptr long ptr long) +@ stdcall ZwUnloadDriver(ptr) +@ stdcall ZwUnloadKey(ptr) +@ stdcall ZwUnmapViewOfSection(ptr ptr) +@ stdcall ZwWaitForMultipleObjects(long ptr long long ptr) +@ stdcall ZwWaitForSingleObject(ptr long ptr) +@ stdcall ZwWriteFile(ptr ptr ptr ptr ptr ptr long ptr ptr) +@ stdcall ZwYieldExecution() +;_CIcos +;_CIsin +;_CIsqrt +@ cdecl -arch=i386,arm _abnormal_termination() +@ cdecl -arch=i386 _alldiv() +@ cdecl -arch=i386 _alldvrm() +@ cdecl -arch=i386 _allmul() +@ cdecl -arch=i386 _alloca_probe() +@ cdecl -arch=i386 _allrem() +@ cdecl -arch=i386 _allshl() +@ cdecl -arch=i386 _allshr() +@ cdecl -arch=i386 _aulldiv() +@ cdecl -arch=i386 _aulldvrm() +@ cdecl -arch=i386 _aullrem() +@ cdecl -arch=i386 _aullshr() +@ cdecl -arch=i386,arm _except_handler2() +@ cdecl -arch=i386,arm _except_handler3() +@ cdecl -arch=i386,arm _global_unwind2() +@ cdecl _itoa() +@ cdecl _itow() +@ cdecl -arch=i386,arm _local_unwind2() +@ cdecl _purecall() +@ cdecl _snprintf() +@ cdecl _snwprintf() +@ cdecl _stricmp() +@ cdecl _strlwr() +@ cdecl _strnicmp() +@ cdecl _strnset() +@ cdecl _strrev() +@ cdecl _strset() +@ cdecl _strupr() +@ cdecl _vsnprintf() +@ cdecl _vsnwprintf() +@ cdecl _wcsicmp() +@ cdecl _wcslwr() +@ cdecl _wcsnicmp() +@ cdecl _wcsnset() +@ cdecl _wcsrev() +@ cdecl _wcsupr() +@ cdecl atoi() +@ cdecl atol() +@ cdecl isdigit() +@ cdecl islower() +@ cdecl isprint() +@ cdecl isspace() +@ cdecl isupper() +@ cdecl isxdigit() +@ cdecl mbstowcs() +@ cdecl mbtowc() +@ cdecl memchr() +@ cdecl memcpy() +@ cdecl memmove() +@ cdecl memset() +@ cdecl qsort() +@ cdecl rand() +@ cdecl sprintf() +@ cdecl srand() +@ cdecl strcat() +@ cdecl strchr() +@ cdecl strcmp() +@ cdecl strcpy() +@ cdecl strlen() +@ cdecl strncat() +@ cdecl strncmp() +@ cdecl strncpy() +@ cdecl strrchr() +@ cdecl strspn() +@ cdecl strstr() +@ cdecl swprintf() +@ cdecl tolower() +@ cdecl toupper() +@ cdecl towlower() +@ cdecl towupper() +@ stdcall vDbgPrintEx(long long str ptr) +@ stdcall vDbgPrintExWithPrefix(str long long str ptr) +@ cdecl vsprintf() +@ cdecl wcscat() +@ cdecl wcschr() +@ cdecl wcscmp() +@ cdecl wcscpy() +@ cdecl wcscspn() +@ cdecl wcslen() +@ cdecl wcsncat() +@ cdecl wcsncmp() +@ cdecl wcsncpy() +@ cdecl wcsrchr() +@ cdecl wcsspn() +@ cdecl wcsstr() +@ cdecl wcstombs() +@ cdecl wctomb() diff --git a/reactos/ntoskrnl/po/guid.c b/reactos/ntoskrnl/po/guid.c new file mode 100644 index 00000000000..a3ec3196c0f --- /dev/null +++ b/reactos/ntoskrnl/po/guid.c @@ -0,0 +1,4 @@ + +#include +#include +#include diff --git a/reactos/ros_cd.cmake b/reactos/ros_cd.cmake new file mode 100644 index 00000000000..6b5382161aa --- /dev/null +++ b/reactos/ros_cd.cmake @@ -0,0 +1,159 @@ +#reactos.dff +add_custom_command( + OUTPUT ${REACTOS_BINARY_DIR}/boot/reactos.dff + COMMAND ${CMAKE_COMMAND} -E copy ${REACTOS_SOURCE_DIR}/boot/bootdata/packages/reactos.dff.in ${REACTOS_BINARY_DIR}/boot/reactos.dff + DEPENDS ${REACTOS_SOURCE_DIR}/boot/bootdata/packages/reactos.dff.in) + +file(STRINGS ${REACTOS_BINARY_DIR}/boot/ros_cab_target.txt CAB_TARGET_ENTRIES) +foreach(ENTRY ${CAB_TARGET_ENTRIES}) + string(REGEX REPLACE "^(.*)\t.*" "\\1" _targetname ${ENTRY}) + string(REGEX REPLACE "^.*\t(.)" "\\1" _dir_num ${ENTRY}) + get_target_property(_FILENAME ${_targetname} LOCATION) + if(NOT CMAKE_HOST_SYSTEM_NAME MATCHES Windows) + set(_FILENAME '\"${_FILENAME}\"') + endif() + add_custom_command( + OUTPUT ${REACTOS_BINARY_DIR}/boot/reactos.dff + COMMAND ${CMAKE_COMMAND} -E echo ${_FILENAME} ${_dir_num} >> ${REACTOS_BINARY_DIR}/boot/reactos.dff + DEPENDS ${_targetname} + APPEND) +endforeach() + +file(STRINGS ${REACTOS_BINARY_DIR}/boot/ros_cab.txt CAB_TARGET_ENTRIES) +foreach(ENTRY ${CAB_TARGET_ENTRIES}) + string(REGEX REPLACE "^(.*)\t.*" "\\1" _FILENAME ${ENTRY}) + string(REGEX REPLACE "^.*\t(.)" "\\1" _dir_num ${ENTRY}) + if(NOT CMAKE_HOST_SYSTEM_NAME MATCHES Windows) + set(QUOTED_FILENAME '\"${_FILENAME}\"') + else() + set(QUOTED_FILENAME ${_FILENAME}) + endif() + add_custom_command( + OUTPUT ${REACTOS_BINARY_DIR}/boot/reactos.dff + COMMAND ${CMAKE_COMMAND} -E echo ${QUOTED_FILENAME} ${_dir_num} >> ${REACTOS_BINARY_DIR}/boot/reactos.dff + DEPENDS ${_FILENAME} + APPEND) +endforeach() + +#reactos.cab +add_custom_command( + OUTPUT ${REACTOS_BINARY_DIR}/boot/reactos.inf + COMMAND native-cabman -C ${REACTOS_BINARY_DIR}/boot/reactos.dff -L ${REACTOS_BINARY_DIR}/boot -I -P ${REACTOS_SOURCE_DIR} + DEPENDS ${REACTOS_BINARY_DIR}/boot/reactos.dff) +add_custom_command( + OUTPUT ${REACTOS_BINARY_DIR}/boot/reactos.cab + COMMAND native-cabman -C ${REACTOS_BINARY_DIR}/boot/reactos.dff -RC ${REACTOS_BINARY_DIR}/boot/reactos.inf -L ${REACTOS_BINARY_DIR}/boot -N -P ${REACTOS_SOURCE_DIR} + DEPENDS ${REACTOS_BINARY_DIR}/boot/reactos.inf) + +#bootcd target +macro(create_bootcd_dir BOOTCD_DIR _target) + + file(MAKE_DIRECTORY + "${BOOTCD_DIR}" + "${BOOTCD_DIR}/loader" + "${BOOTCD_DIR}/reactos" + "${BOOTCD_DIR}/reactos/system32") + + file(STRINGS ${REACTOS_BINARY_DIR}/boot/ros_minicd_target.txt MINICD_TARGET_ENTRIES) + foreach(ENTRY ${MINICD_TARGET_ENTRIES}) + string(REGEX REPLACE "^(.*)\t.*\t.*" "\\1" _targetname ${ENTRY}) + string(REGEX REPLACE "^.*\t(.*)\t.*" "\\1" _DIR ${ENTRY}) + string(REGEX REPLACE "^.*\t.*\t(.*)" "\\1"_NAMEONCD ${ENTRY}) + get_target_property(_FILENAME ${_targetname} LOCATION) + set(filename ${BOOTCD_DIR}/${_DIR}/${_NAMEONCD}) + list(APPEND ${_target}_FILES ${filename}) + add_custom_command( + OUTPUT ${filename} + COMMAND ${CMAKE_COMMAND} -E copy ${_FILENAME} ${filename} + DEPENDS ${_targetname}) + endforeach() + + file(STRINGS ${REACTOS_BINARY_DIR}/boot/ros_minicd.txt MINICD_ENTRIES) + foreach(ENTRY ${MINICD_ENTRIES}) + string(REGEX REPLACE "^(.*)\t.*\t.*" "\\1" _FILENAME ${ENTRY}) + string(REGEX REPLACE "^.*\t(.*)\t.*" "\\1" _DIR ${ENTRY}) + string(REGEX REPLACE "^.*\t.*\t(.*)" "\\1"_NAMEONCD ${ENTRY}) + set(filename ${BOOTCD_DIR}/${_DIR}/${_NAMEONCD}) + list(APPEND ${_target}_FILES ${filename}) + add_custom_command( + OUTPUT ${filename} + COMMAND ${CMAKE_COMMAND} -E copy ${_FILENAME} ${filename} + DEPENDS ${_FILENAME}) + endforeach() + + add_custom_command( + OUTPUT ${BOOTCD_DIR}/reactos/reactos.inf ${BOOTCD_DIR}/reactos/reactos.cab + COMMAND ${CMAKE_COMMAND} -E copy ${REACTOS_BINARY_DIR}/boot/reactos.inf ${BOOTCD_DIR}/reactos/reactos.inf + COMMAND ${CMAKE_COMMAND} -E copy ${REACTOS_BINARY_DIR}/boot/reactos.cab ${BOOTCD_DIR}/reactos/reactos.cab + DEPENDS ${REACTOS_BINARY_DIR}/boot/reactos.cab) + list(APPEND ${_target}_FILES ${filename} ${BOOTCD_DIR}/reactos/reactos.inf ${BOOTCD_DIR}/reactos/reactos.cab) +endmacro() + +create_bootcd_dir(${REACTOS_BINARY_DIR}/boot/bootcd bootcd) +add_custom_target(bootcd + COMMAND native-cdmake -v -j -m -b ${CMAKE_CURRENT_BINARY_DIR}/boot/freeldr/bootsect/isoboot.bin ${BOOTCD_DIR} REACTOS ${REACTOS_BINARY_DIR}/bootcd.iso + DEPENDS ${bootcd_FILES}) +add_dependencies(bootcd dosmbr ext2 fat32 fat isoboot isobtrt vgafonts) +set_directory_properties(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${REACTOS_BINARY_DIR}/bootcd.iso) + +#bootcdregtest target +create_bootcd_dir(${REACTOS_BINARY_DIR}/boot/bootcdregtest bootcdregtest) +add_custom_command( + OUTPUT ${REACTOS_BINARY_DIR}/boot/bootcdregtest/reactos/unattend.inf + COMMAND ${CMAKE_COMMAND} -E copy ${REACTOS_SOURCE_DIR}/boot/bootdata/bootcdregtest/unattend.inf ${REACTOS_BINARY_DIR}/boot/bootcdregtest/reactos/unattend.inf + DEPENDS ${REACTOS_SOURCE_DIR}/boot/bootdata/bootcdregtest/unattend.inf ${REACTOS_BINARY_DIR}/boot/bootcdregtest) +add_custom_target(bootcdregtest + COMMAND native-cdmake -v -j -m -b ${CMAKE_CURRENT_BINARY_DIR}/boot/freeldr/bootsect/isoboot.bin ${REACTOS_BINARY_DIR}/boot/bootcdregtest REACTOS ${REACTOS_BINARY_DIR}/bootcdregtest.iso + DEPENDS ${REACTOS_BINARY_DIR}/boot/bootcdregtest/reactos/unattend.inf ${bootcdregtest_FILES}) +add_dependencies(bootcdregtest dosmbr ext2 fat32 fat isoboot isobtrt vgafonts) + + +#livecd target +file(MAKE_DIRECTORY + "${LIVECD_DIR}" + "${LIVECD_DIR}/loader" + "${LIVECD_DIR}/Profiles" + "${LIVECD_DIR}/Profiles/All Users" + "${LIVECD_DIR}/Profiles/All Users/Desktop" + "${LIVECD_DIR}/Profiles/Default User" + "${LIVECD_DIR}/Profiles/Default User/Desktop" + "${LIVECD_DIR}/Profiles/Default User/My Documents" + "${LIVECD_DIR}/reactos" + "${LIVECD_DIR}/reactos/inf" + "${LIVECD_DIR}/reactos/fonts" + "${LIVECD_DIR}/reactos/system32" + "${LIVECD_DIR}/reactos/system32/config") + +file(STRINGS ${REACTOS_BINARY_DIR}/boot/ros_livecd_target.txt LIVECD_TARGET_ENTRIES) +foreach(ENTRY ${LIVECD_TARGET_ENTRIES}) + string(REGEX REPLACE "^(.*)\t.*\t.*" "\\1" _targetname ${ENTRY}) + string(REGEX REPLACE "^.*\t(.*)\t.*" "\\1" _DIR ${ENTRY}) + string(REGEX REPLACE "^.*\t.*\t(.*)" "\\1"_NAMEONCD ${ENTRY}) + get_target_property(_FILENAME ${_targetname} LOCATION) + set(filename ${LIVECD_DIR}/${_DIR}/${_NAMEONCD}) + list(APPEND LIVECD_FILES ${filename}) + add_custom_command( + OUTPUT ${filename} + COMMAND ${CMAKE_COMMAND} -E copy ${_FILENAME} ${LIVECD_DIR}/${_DIR}/${_NAMEONCD} + DEPENDS ${_targetname}) +endforeach() +file(STRINGS ${REACTOS_BINARY_DIR}/boot/ros_livecd.txt LIVECD_ENTRIES) + +foreach(ENTRY ${LIVECD_ENTRIES}) + string(REGEX REPLACE "^(.*)\t.*\t.*" "\\1" _FILENAME ${ENTRY}) + string(REGEX REPLACE "^.*\t(.*)\t.*" "\\1" _DIR ${ENTRY}) + string(REGEX REPLACE "^.*\t.*\t(.*)" "\\1"_NAMEONCD ${ENTRY}) + set(filename ${LIVECD_DIR}/${_DIR}/${_NAMEONCD}) + list(APPEND LIVECD_FILES ${filename}) + add_custom_command( + OUTPUT ${filename} + COMMAND ${CMAKE_COMMAND} -E copy ${_FILENAME} ${LIVECD_DIR}/${_DIR}/${_NAMEONCD} + DEPENDS ${_FILENAME}) +endforeach() + +add_custom_target(livecd + COMMAND native-cdmake -v -j -m -b ${CMAKE_CURRENT_BINARY_DIR}/boot/freeldr/bootsect/isoboot.bin ${LIVECD_DIR} REACTOS ${REACTOS_BINARY_DIR}/livecd.iso + DEPENDS ${LIVECD_FILES}) +add_dependencies(livecd isoboot livecd_hives vgafonts) + +set_directory_properties(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${REACTOS_BINARY_DIR}/livecd.iso) diff --git a/reactos/subsystems/CMakeLists.txt b/reactos/subsystems/CMakeLists.txt new file mode 100644 index 00000000000..86b3cd1727b --- /dev/null +++ b/reactos/subsystems/CMakeLists.txt @@ -0,0 +1,4 @@ +if(ARCH MATCHES i386) + add_subdirectory(ntvdm) +endif() +add_subdirectory(win32) diff --git a/reactos/subsystems/ntvdm/CMakeLists.txt b/reactos/subsystems/ntvdm/CMakeLists.txt new file mode 100644 index 00000000000..a64fd05ee4e --- /dev/null +++ b/reactos/subsystems/ntvdm/CMakeLists.txt @@ -0,0 +1,19 @@ + +include_directories(.) + +set_rc_compiler() + +add_executable(ntvdm + ntvdm.c + ntvdm.rc) + +set_module_type(ntvdm win32cui) + +target_link_libraries(ntvdm + mingw_main + mingw_common) + +add_importlibs(ntvdm ntdll user32 gdi32 advapi32 kernel32 msvcrt) +add_dependencies(ntvdm ndk bugcodes) + +add_cd_file(TARGET ntvdm DESTINATION reactos/system32 FOR all) \ No newline at end of file diff --git a/reactos/subsystems/win32/CMakeLists.txt b/reactos/subsystems/win32/CMakeLists.txt new file mode 100644 index 00000000000..f7e923f7976 --- /dev/null +++ b/reactos/subsystems/win32/CMakeLists.txt @@ -0,0 +1,3 @@ + +add_subdirectory(csrss) +add_subdirectory(win32k) diff --git a/reactos/subsystems/win32/csrss/CMakeLists.txt b/reactos/subsystems/win32/csrss/CMakeLists.txt new file mode 100644 index 00000000000..7d993c48c20 --- /dev/null +++ b/reactos/subsystems/win32/csrss/CMakeLists.txt @@ -0,0 +1,16 @@ + +include_directories( + include + ${REACTOS_SOURCE_DIR}/include/reactos/subsys + ${REACTOS_SOURCE_DIR}/include/reactos/drivers) + +add_executable(csrss csrss.c csrss.rc) + +set_module_type(csrss nativecui) +target_link_libraries(csrss nt) +add_importlibs(csrss ntdll csrsrv) +add_dependencies(csrss psdk bugcodes) +add_cd_file(TARGET csrss DESTINATION reactos/system32 FOR all) + +add_subdirectory(csrsrv) +add_subdirectory(win32csr) diff --git a/reactos/subsystems/win32/csrss/csrsrv/CMakeLists.txt b/reactos/subsystems/win32/csrss/csrsrv/CMakeLists.txt new file mode 100644 index 00000000000..34944902ed3 --- /dev/null +++ b/reactos/subsystems/win32/csrss/csrsrv/CMakeLists.txt @@ -0,0 +1,33 @@ + +include_directories(${REACTOS_SOURCE_DIR}/subsystems/win32/csrss/include) +include_directories(${REACTOS_SOURCE_DIR}/include/reactos/subsys) + +spec2def(csrsrv.dll csrsrv.spec) + +list(APPEND SOURCE + api/process.c + api/user.c + api/wapi.c + procsup.c + thredsup.c + init.c + ${CMAKE_CURRENT_BINARY_DIR}/csrsrv.def) + +add_library(csrsrv SHARED ${CMAKE_CURRENT_BINARY_DIR}/csrsrv_srv.h.gch ${SOURCE}) + +target_link_libraries(csrsrv ${PSEH_LIB}) + +set_module_type(csrsrv nativedll) + +if(MSVC) +set_entrypoint(csrsrv DllMainCRTStartup) +endif() + + +add_importlibs(csrsrv ntdll smdll) + +add_pch(csrsrv ${CMAKE_CURRENT_SOURCE_DIR}/srv.h ${SOURCE}) + +add_dependencies(csrsrv psdk bugcodes) +add_cd_file(TARGET csrsrv DESTINATION reactos/system32 FOR all) +add_importlib_target(csrsrv.spec) diff --git a/reactos/subsystems/win32/csrss/win32csr/CMakeLists.txt b/reactos/subsystems/win32/csrss/win32csr/CMakeLists.txt new file mode 100644 index 00000000000..20f278a69e3 --- /dev/null +++ b/reactos/subsystems/win32/csrss/win32csr/CMakeLists.txt @@ -0,0 +1,44 @@ +add_definitions(-D_DLL -D__USE_CRTIMP) + +include_directories( + BEFORE . + ${REACTOS_SOURCE_DIR}/subsystems/win32/csrss/include + ${REACTOS_SOURCE_DIR}/include/reactos/subsys + ${REACTOS_SOURCE_DIR}/include/reactos/drivers + ${REACTOS_SOURCE_DIR}/dll/cpl/console) + +spec2def(win32csr.dll win32csr.spec) + +set_rc_compiler() + +list(APPEND SOURCE + alias.c + coninput.c + conoutput.c + console.c + desktopbg.c + dllmain.c + exitros.c + file.c + guiconsole.c + handle.c + harderror.c + lineinput.c + tuiconsole.c + win32csr.rc + ${CMAKE_CURRENT_BINARY_DIR}/win32csr.def) + +add_library(win32csr SHARED ${CMAKE_CURRENT_BINARY_DIR}/win32csr_w32csr.h.gch ${SOURCE}) + +target_link_libraries(win32csr + win32ksys + ${PSEH_LIB}) + +set_module_type(win32csr win32dll) + +add_importlibs(win32csr user32 gdi32 advapi32 psapi msvcrt kernel32 ntdll) + +add_pch(win32csr ${CMAKE_CURRENT_SOURCE_DIR}/w32csr.h ${SOURCE}) + +add_dependencies(win32csr bugcodes) +add_cd_file(TARGET win32csr DESTINATION reactos/system32 FOR all) diff --git a/reactos/subsystems/win32/win32k/CMakeLists.txt b/reactos/subsystems/win32/win32k/CMakeLists.txt new file mode 100644 index 00000000000..da0d3cba119 --- /dev/null +++ b/reactos/subsystems/win32/win32k/CMakeLists.txt @@ -0,0 +1,201 @@ + +spec2def(win32k.sys win32k.spec) + +include_directories( + . + include + ${REACTOS_SOURCE_DIR}/ntoskrnl/include + ${REACTOS_SOURCE_DIR}/lib/3rdparty/freetype/include + ${REACTOS_SOURCE_DIR}/include/reactos/subsys + ${REACTOS_SOURCE_DIR}/include/reactos/drivers) + +add_definitions( + -DLANGPACK + -D_WIN32K_) + +file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/dib) + +list(APPEND GENDIB_FILES + ${CMAKE_CURRENT_BINARY_DIR}/dib/dib8gen.c + ${CMAKE_CURRENT_BINARY_DIR}/dib/dib16gen.c + ${CMAKE_CURRENT_BINARY_DIR}/dib/dib32gen.c) + +add_custom_command( + OUTPUT ${GENDIB_FILES} + COMMAND native-gendib ${CMAKE_CURRENT_BINARY_DIR}/dib) + +list(APPEND SOURCE + dib/alphablend.c + dib/dib1bpp.c + dib/dib4bpp.c + dib/dib8bpp.c + dib/dib16bpp.c + dib/dib24bpp.c + dib/dib32bpp.c + dib/dib.c + dib/floodfill.c + dib/stretchblt.c + eng/alphablend.c + eng/bitblt.c + eng/engbrush.c + eng/engevent.c + eng/clip.c + eng/copybits.c + eng/debug.c + eng/device.c + eng/driverobj.c + eng/error.c + eng/float.c + eng/gradient.c + eng/lineto.c + eng/ldevobj.c + eng/mapping.c + eng/mem.c + eng/engmisc.c + eng/mouse.c + eng/paint.c + eng/pdevobj.c + eng/perfcnt.c + eng/rlecomp.c + eng/semaphor.c + eng/sort.c + eng/string.c + eng/stretchblt.c + eng/surface.c + eng/transblt.c + eng/engwindow.c + eng/xlate.c + main/dllmain.c + misc/driver.c + misc/file.c + misc/math.c + misc/rtlstr.c + misc/copy.c + misc/registry.c + misc/usrheap.c + ntddraw/ddraw.c + ntddraw/dd.c + ntddraw/ddsurf.c + ntddraw/d3d.c + ntddraw/dvp.c + ntddraw/mocomp.c + ntddraw/eng.c + ntddraw/dxeng.c + ntuser/accelerator.c + ntuser/callback.c + ntuser/callproc.c + ntuser/caret.c + ntuser/class.c + ntuser/clipboard.c + ntuser/csr.c + ntuser/cursoricon.c + ntuser/defwnd.c + ntuser/desktop.c + ntuser/display.c + ntuser/event.c + ntuser/focus.c + ntuser/guicheck.c + ntuser/hook.c + ntuser/hotkey.c + ntuser/input.c + ntuser/keyboard.c + ntuser/kbdlayout.c + ntuser/menu.c + ntuser/message.c + ntuser/metric.c + ntuser/misc.c + ntuser/monitor.c + ntuser/msgqueue.c + ntuser/ntstubs.c + ntuser/ntuser.c + ntuser/painting.c + ntuser/prop.c + ntuser/scrollbar.c + ntuser/session.c + ntuser/simplecall.c + ntuser/sysparams.c + ntuser/timer.c + ntuser/useratom.c + ntuser/vis.c + ntuser/windc.c + ntuser/window.c + ntuser/winpos.c + ntuser/winsta.c + ntuser/object.c + objects/arc.c + objects/bezier.c + objects/bitblt.c + objects/bitmaps.c + objects/brush.c + objects/cliprgn.c + objects/coord.c + objects/dcattr.c + objects/dclife.c + objects/dcobjs.c + objects/dcstate.c + objects/dcutil.c + objects/device.c + objects/dibobj.c + objects/drawing.c + objects/fillshap.c + objects/font.c + objects/freetype.c + objects/gdibatch.c + objects/gdidbg.c + objects/gdiobj.c + objects/gdipool.c + objects/icm.c + objects/line.c + objects/metafile.c + objects/palette.c + objects/path.c + objects/pen.c + objects/polyfill.c + objects/print.c + objects/rect.c + objects/region.c + objects/stockobj.c + objects/text.c + objects/wingl.c + objects/xformobj.c + stubs/stubs.c + stubs/umpdstubs.c + win32k.rc) + +list(APPEND SOURCE ${GENDIB_FILES}) + +if(ARCH MATCHES i386) +list(APPEND SOURCE + dib/i386/dib24bpp_hline.s + dib/i386/dib32bpp_hline.s + dib/i386/dib32bpp_colorfill.s + eng/i386/floatobj.S + misc/i386/cos_asm.s + misc/i386/sin_asm.s + misc/i386/atan2_asm.s + misc/i386/floor_asm.s + misc/i386/ceil_asm.s) +else() +list(APPEND SOURCE + dib/dib24bppc.c + dib/dib32bppc.c) +endif() + +add_library(win32k SHARED + ${CMAKE_CURRENT_BINARY_DIR}/win32k_pch.h.gch + ${CMAKE_CURRENT_BINARY_DIR}/win32k.def + ${SOURCE}) + +set_module_type(win32k kernelmodedriver) + +target_link_libraries(win32k + ${PSEH_LIB} + dxguid + libcntpr) + +add_importlibs(win32k ntoskrnl hal ftfd) +add_pch(win32k ${CMAKE_CURRENT_SOURCE_DIR}/pch.h ${SOURCE}) +add_cd_file(TARGET win32k DESTINATION reactos/system32 FOR all) +add_importlib_target(win32k.spec) + +add_library(win32ksys sys-stubs.S) diff --git a/reactos/subsystems/win32/win32k/win32k.spec b/reactos/subsystems/win32/win32k/win32k.spec new file mode 100644 index 00000000000..800a084c1b5 --- /dev/null +++ b/reactos/subsystems/win32/win32k/win32k.spec @@ -0,0 +1,226 @@ +@ stdcall -arch=i386 FLOATOBJ_AddFloatObj(ptr ptr) FLOATOBJ_Add +@ stdcall -arch=i386 FLOATOBJ_DivFloatObj(ptr ptr) FLOATOBJ_Div +@ stdcall -arch=i386 FLOATOBJ_MulFloatObj(ptr ptr) FLOATOBJ_Mul +@ stdcall -arch=i386 FLOATOBJ_SubFloatObj(ptr ptr) FLOATOBJ_Sub +@ stdcall BRUSHOBJ_hGetColorTransform(ptr) +@ stdcall BRUSHOBJ_pvAllocRbrush(ptr long) +@ stdcall BRUSHOBJ_pvGetRbrush(ptr) +@ stdcall BRUSHOBJ_ulGetBrushColor(ptr) +@ stdcall CLIPOBJ_bEnum(ptr long ptr) +@ stdcall CLIPOBJ_cEnumStart(ptr long long long long) +@ stdcall CLIPOBJ_ppoGetPath(ptr) +@ stdcall EngAcquireSemaphore(ptr) +@ stdcall EngAllocMem(long long long) +@ stdcall EngAllocPrivateUserMem(ptr ptr long) +@ stdcall EngAllocSectionMem(ptr long ptr long) +@ stdcall EngAllocUserMem(ptr long) +@ stdcall EngAlphaBlend(ptr ptr ptr ptr ptr ptr ptr) +@ stdcall EngAssociateSurface(ptr ptr long) +@ stdcall EngBitBlt(ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr long) +@ stdcall EngBugCheckEx(long ptr ptr ptr ptr) NTOSKRNL.KeBugCheckEx +@ stdcall EngCheckAbort(ptr) +@ stdcall EngClearEvent(ptr) +@ stdcall EngComputeGlyphSet(long long long) +@ stdcall EngControlSprites(ptr long) +@ stdcall EngCopyBits(ptr ptr ptr ptr ptr ptr) +@ stdcall EngCreateBitmap(long long long long long ptr) +@ stdcall EngCreateClip() +@ stdcall EngCreateDeviceBitmap(ptr long long long) +@ stdcall EngCreateDeviceSurface(ptr long long long) +@ stdcall EngCreateDriverObj(ptr ptr ptr) +@ stdcall EngCreateEvent(ptr) +@ stdcall EngCreatePalette(long long long long long long) +@ stdcall EngCreatePath() +@ stdcall EngCreateSemaphore() +@ stdcall EngCreateWnd(ptr ptr ptr long long) +@ stdcall EngDebugBreak() NTOSKRNL.DbgBreakPoint +@ stdcall EngDebugPrint(ptr ptr ptr) +@ stdcall EngDeleteClip(ptr) +@ stdcall EngDeleteDriverObj(ptr long long) +@ stdcall EngDeleteEvent(ptr) +@ stdcall EngDeleteFile(ptr) +@ stdcall EngDeletePalette(ptr) +@ stdcall EngDeletePath(ptr) +@ stdcall EngDeleteSafeSemaphore(ptr) +@ stdcall EngDeleteSemaphore(ptr) +@ stdcall EngDeleteSurface(ptr) +@ stdcall EngDeleteWnd(ptr) +@ stdcall EngDeviceIoControl(ptr long ptr long ptr long ptr) +@ stdcall EngDitherColor(ptr long long long) +@ stdcall EngDxIoctl(long ptr long) +@ stdcall EngEnumForms(ptr long ptr long ptr ptr) +@ stdcall EngEraseSurface(ptr ptr long) +@ stdcall EngFileIoControl(ptr long ptr ptr ptr ptr ptr) +@ stdcall EngFileWrite(ptr ptr ptr ptr) +@ stdcall EngFillPath(ptr ptr ptr ptr ptr long long) +@ stdcall EngFindImageProcAddress(ptr ptr) +@ stdcall EngFindResource(ptr long long ptr) +@ stdcall EngFntCacheAlloc(long long) +@ stdcall EngFntCacheFault(long long) +@ stdcall EngFntCacheLookUp(long ptr) +@ stdcall EngFreeMem(ptr) +@ stdcall EngFreeModule(ptr) +@ stdcall EngFreePrivateUserMem(ptr ptr) +@ stdcall EngFreeSectionMem(ptr ptr) +@ stdcall EngFreeUserMem(ptr) +@ stdcall EngGetCurrentCodePage(ptr ptr) +@ stdcall EngGetCurrentProcessId() NTOSKRNL.PsGetCurrentProcessId +@ stdcall EngGetCurrentThreadId() NTOSKRNL.PsGetCurrentThreadId +@ stdcall EngGetDriverName(ptr) +@ stdcall EngGetFileChangeTime(ptr ptr) +@ stdcall EngGetFilePath(ptr ptr) +@ stdcall EngGetForm(ptr ptr long ptr long ptr) +@ stdcall EngGetLastError() +@ stdcall EngGetPrinter(ptr long ptr long ptr) +@ stdcall EngGetPrinterData(ptr ptr ptr ptr long ptr) +@ stdcall EngGetPrinterDataFileName(ptr) +@ stdcall EngGetPrinterDriver(ptr ptr long ptr long ptr) +@ stdcall EngGetProcessHandle() +@ stdcall EngGetTickCount() +@ stdcall EngGetType1FontList(ptr ptr long ptr ptr ptr) +@ stdcall EngGradientFill(ptr ptr ptr ptr long ptr long ptr ptr long) +@ stdcall EngHangNotification(ptr ptr) +@ stdcall EngInitializeSafeSemaphore(ptr) +@ stdcall EngIsSemaphoreOwned(ptr) +@ stdcall EngIsSemaphoreOwnedByCurrentThread(ptr) +@ stdcall EngLineTo(ptr ptr ptr long long long long ptr long) +@ stdcall EngLoadImage(ptr) +@ stdcall EngLoadModule(ptr) +@ stdcall EngLoadModuleForWrite(ptr long) +@ stdcall EngLockDirectDrawSurface(ptr) +@ stdcall EngLockDriverObj(ptr) +@ stdcall EngLockSurface(ptr) +@ stdcall EngLpkInstalled() +@ stdcall EngMapEvent(ptr ptr ptr ptr ptr) +@ stdcall EngMapFile(ptr long ptr) +@ stdcall EngMapFontFile(ptr ptr ptr) +@ stdcall EngMapFontFileFD(ptr ptr ptr) +@ stdcall EngMapModule(ptr ptr) +@ stdcall EngMapSection(ptr long ptr ptr) +@ stdcall EngMarkBandingSurface(ptr) +@ stdcall EngModifySurface(ptr ptr long long ptr ptr long ptr) +@ stdcall EngMovePointer(ptr long long ptr) +@ stdcall EngMulDiv(long long long) +@ stdcall EngMultiByteToUnicodeN(ptr long ptr ptr long) NTOSKRNL.RtlMultiByteToUnicodeN +@ stdcall EngMultiByteToWideChar(long ptr long ptr long) +@ stdcall EngNineGrid(ptr ptr ptr ptr ptr ptr ptr ptr ptr) +@ stdcall EngPaint(ptr ptr ptr ptr long) +@ stdcall EngPlgBlt(ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr long) +@ stdcall EngProbeForRead(ptr long long) NTOSKRNL.ProbeForRead +@ stdcall EngProbeForReadAndWrite(ptr long long) NTOSKRNL.ProbeForWrite +@ stdcall EngQueryDeviceAttribute(ptr long ptr long ptr long) +@ stdcall EngQueryFileTimeStamp(ptr) +@ stdcall EngQueryLocalTime(ptr) +@ stdcall EngQueryPalette(ptr ptr long ptr) +@ stdcall EngQueryPerformanceCounter(ptr) +@ stdcall EngQueryPerformanceFrequency(ptr) +@ stdcall EngQuerySystemAttribute(long ptr) +@ stdcall EngReadStateEvent(ptr) +@ stdcall EngReleaseSemaphore(ptr) +@ stdcall EngRestoreFloatingPointState(ptr) +@ stdcall EngSaveFloatingPointState(ptr long) +@ stdcall EngSecureMem(ptr long) +@ stdcall EngSetEvent(ptr) +@ stdcall EngSetLastError(long) +@ stdcall EngSetPointerShape(ptr ptr ptr ptr long long long long ptr long) +@ stdcall EngSetPointerTag(ptr ptr ptr ptr long) +@ stdcall EngSetPrinterData(ptr ptr long ptr long) +@ stdcall EngSort(ptr long long ptr) +@ stdcall EngStretchBlt(ptr ptr ptr ptr ptr long long ptr ptr ptr long) +@ stdcall EngStretchBltROP(ptr ptr ptr ptr ptr long long ptr ptr ptr long ptr long) +@ stdcall EngStrokeAndFillPath(ptr ptr ptr ptr ptr ptr ptr ptr long long) +@ stdcall EngStrokePath(ptr ptr ptr ptr ptr ptr ptr long) +@ stdcall EngTextOut(ptr ptr ptr ptr ptr ptr ptr ptr ptr long) +@ stdcall EngTransparentBlt(ptr ptr ptr ptr ptr ptr long long) +@ stdcall EngUnicodeToMultiByteN(ptr long ptr ptr long) NTOSKRNL.RtlUnicodeToMultiByteN +@ stdcall EngUnloadImage(ptr) +@ stdcall EngUnlockDirectDrawSurface(ptr) +@ stdcall EngUnlockDriverObj(ptr) +@ stdcall EngUnlockSurface(ptr) +@ stdcall EngUnmapEvent(ptr) +@ stdcall EngUnmapFile(ptr) +@ stdcall EngUnmapFontFile(ptr) +@ stdcall EngUnmapFontFileFD(ptr) +@ stdcall EngUnsecureMem(ptr) +@ stdcall EngWaitForSingleObject(ptr ptr) +@ stdcall EngWideCharToMultiByte(long ptr long ptr long) +@ stdcall EngWritePrinter(ptr ptr long ptr) +@ stdcall -arch=i386 FLOATOBJ_Add(ptr ptr) +@ stdcall -arch=i386 FLOATOBJ_AddFloat(ptr long) +@ stdcall -arch=i386 FLOATOBJ_AddLong(ptr long) +@ stdcall -arch=i386 FLOATOBJ_Div(ptr ptr) +@ stdcall -arch=i386 FLOATOBJ_DivFloat(ptr long) +@ stdcall -arch=i386 FLOATOBJ_DivLong(ptr long) +@ stdcall -arch=i386 FLOATOBJ_Equal(ptr ptr) +@ stdcall -arch=i386 FLOATOBJ_EqualLong(ptr long) +@ stdcall -arch=i386 FLOATOBJ_GetFloat(ptr) +@ stdcall -arch=i386 FLOATOBJ_GetLong(ptr) +@ stdcall -arch=i386 FLOATOBJ_GreaterThan(ptr ptr) +@ stdcall -arch=i386 FLOATOBJ_GreaterThanLong(ptr long) +@ stdcall -arch=i386 FLOATOBJ_LessThan(ptr ptr) +@ stdcall -arch=i386 FLOATOBJ_LessThanLong(ptr long) +@ stdcall -arch=i386 FLOATOBJ_Mul(ptr ptr) +@ stdcall -arch=i386 FLOATOBJ_MulFloat(ptr long) +@ stdcall -arch=i386 FLOATOBJ_MulLong(ptr long) +@ stdcall -arch=i386 FLOATOBJ_Neg(ptr) +@ stdcall -arch=i386 FLOATOBJ_SetFloat(ptr long) +@ stdcall -arch=i386 FLOATOBJ_SetLong(ptr long) +@ stdcall -arch=i386 FLOATOBJ_Sub(ptr ptr) +@ stdcall -arch=i386 FLOATOBJ_SubFloat(ptr long) +@ stdcall -arch=i386 FLOATOBJ_SubLong(ptr long) +@ stdcall FONTOBJ_cGetAllGlyphHandles(ptr ptr) +@ stdcall FONTOBJ_cGetGlyphs(ptr long long ptr ptr) +@ stdcall FONTOBJ_pQueryGlyphAttrs(ptr long) +@ stdcall FONTOBJ_pfdg(ptr) +@ stdcall FONTOBJ_pifi(ptr) +@ stdcall FONTOBJ_pjOpenTypeTablePointer(ptr long ptr) +@ stdcall FONTOBJ_pvTrueTypeFontFile(ptr ptr) +@ stdcall FONTOBJ_pwszFontFilePaths(ptr ptr) +@ stdcall FONTOBJ_pxoGetXform(ptr) +@ stdcall FONTOBJ_vGetInfo(ptr long ptr) +@ stdcall HT_ComputeRGBGammaTable(long long long long long ptr) +@ stdcall HT_Get8BPPFormatPalette(ptr long long long) +@ stdcall HT_Get8BPPMaskPalette(ptr long long long long long) +@ stdcall HeapVidMemAllocAligned(ptr long long ptr ptr) +@ stdcall PALOBJ_cGetColors(ptr long long ptr) +@ stdcall PATHOBJ_bCloseFigure(ptr) +@ stdcall PATHOBJ_bEnum(ptr ptr) +@ stdcall PATHOBJ_bEnumClipLines(ptr long ptr) +@ stdcall PATHOBJ_bMoveTo(ptr long long) +@ stdcall PATHOBJ_bPolyBezierTo(ptr ptr long) +@ stdcall PATHOBJ_bPolyLineTo(ptr ptr long) +@ stdcall PATHOBJ_vEnumStart(ptr) +@ stdcall PATHOBJ_vEnumStartClipLines(ptr ptr ptr ptr) +@ stdcall PATHOBJ_vGetBounds(ptr ptr) +@ stdcall RtlAnsiCharToUnicodeChar(ptr) NTOSKRNL.RtlAnsiCharToUnicodeChar +@ stdcall RtlMultiByteToUnicodeN(ptr long ptr ptr long) NTOSKRNL.RtlMultiByteToUnicodeN +@ stdcall RtlRaiseException(ptr) NTOSKRNL.RtlRaiseException +@ stdcall RtlUnicodeToMultiByteN(ptr long ptr ptr long) NTOSKRNL.RtlUnicodeToMultiByteN +@ stdcall RtlUnicodeToMultiByteSize(ptr ptr long) NTOSKRNL.RtlUnicodeToMultiByteSize +@ stdcall RtlUnwind(ptr ptr ptr ptr) NTOSKRNL.RtlUnwind +@ stdcall RtlUpcaseUnicodeChar(long) NTOSKRNL.RtlUpcaseUnicodeChar +@ stdcall RtlUpcaseUnicodeToMultiByteN(ptr long ptr ptr long) NTOSKRNL.RtlUpcaseUnicodeToMultiByteN +@ stdcall STROBJ_bEnum(ptr ptr ptr) +@ stdcall STROBJ_bEnumPositionsOnly(ptr ptr ptr) +@ stdcall STROBJ_bGetAdvanceWidths(ptr long long ptr) +@ stdcall STROBJ_dwGetCodePage(ptr) +@ stdcall STROBJ_fxBreakExtra(ptr) +@ stdcall STROBJ_fxCharacterExtra(ptr) +@ stdcall STROBJ_vEnumStart(ptr) +@ stdcall VidMemFree(ptr ptr) +@ stdcall WNDOBJ_bEnum(ptr long ptr) +@ stdcall WNDOBJ_cEnumStart(ptr long long long) +@ stdcall WNDOBJ_vSetConsumer(ptr ptr) +@ stdcall XFORMOBJ_bApplyXform(ptr long long ptr ptr) EXFORMOBJ_bApplyXform +@ stdcall XFORMOBJ_iGetFloatObjXform(ptr ptr) EXFORMOBJ_iGetFloatObjXform +@ stdcall XFORMOBJ_iGetXform(ptr ptr) EXFORMOBJ_iGetXform +@ stdcall XLATEOBJ_cGetPalette(ptr long long ptr) +@ stdcall XLATEOBJ_hGetColorTransform(ptr) +@ stdcall XLATEOBJ_iXlate(ptr long) +@ stdcall XLATEOBJ_piVector(ptr) +@ cdecl _abnormal_termination() NTOSKRNL._abnormal_termination +@ cdecl _except_handler2() NTOSKRNL._except_handler2 +@ cdecl _global_unwind2() NTOSKRNL._global_unwind2 +@ cdecl _itoa() NTOSKRNL._itoa +@ cdecl _itow() NTOSKRNL._itow +@ cdecl _local_unwind2() NTOSKRNL._local_unwind2 diff --git a/reactos/toolchain-mingw32.cmake b/reactos/toolchain-mingw32.cmake new file mode 100644 index 00000000000..e50a63d0424 --- /dev/null +++ b/reactos/toolchain-mingw32.cmake @@ -0,0 +1,49 @@ + +if(NOT ARCH) + set(ARCH i386) +endif() + +# Choose the right MinGW prefix +if(ARCH MATCHES i386) + + if(CMAKE_HOST_SYSTEM_NAME MATCHES Windows) + set(MINGW_PREFIX "" CACHE STRING "MinGW Prefix") + else() + set(MINGW_PREFIX "mingw32-" CACHE STRING "MinGW Prefix") + endif(CMAKE_HOST_SYSTEM_NAME MATCHES Windows) + +elseif(ARCH MATCHES amd64) + set(MINGW_PREFIX "x86_64-w64-mingw32-" CACHE STRING "MinGW Prefix") +elseif(ARCH MATCHES arm) + set(MINGW_PREFIX "arm-mingw32ce-" CACHE STRING "MinGW Prefix") +endif() + +if(ENABLE_CCACHE) + set(CCACHE "ccache" CACHE STRING "ccache") +else() + set(CCACHE "" CACHE STRING "ccache") +endif() + +# the name of the target operating system +set(CMAKE_SYSTEM_NAME Windows) +set(CMAKE_SYSTEM_PROCESSOR i686) + +# which compilers to use for C and C++ +set(CMAKE_C_COMPILER ${CCACHE} ${MINGW_PREFIX}gcc) +set(CMAKE_CXX_COMPILER ${CCACHE} ${MINGW_PREFIX}g++) +set(CMAKE_RC_COMPILER ${MINGW_PREFIX}windres) +set(CMAKE_ASM_COMPILER ${MINGW_PREFIX}gcc) +set(CMAKE_ASM_COMPILE_OBJECT " -x assembler-with-cpp -o -I${REACTOS_SOURCE_DIR}/include/asm -I${REACTOS_BINARY_DIR}/include/asm -D__ASM__ -c ") + +# Use stdcall fixups, and don't link with anything by default unless we say so +set(CMAKE_C_STANDARD_LIBRARIES "-lgcc" CACHE STRING "Standard C Libraries") + +#MARK_AS_ADVANCED(CLEAR CMAKE_CXX_STANDARD_LIBRARIES) +set(CMAKE_CXX_STANDARD_LIBRARIES "" CACHE STRING "Standard C++ Libraries") + +if(ARCH MATCHES i386) + set(CMAKE_SHARED_LINKER_FLAGS_INIT "-nodefaultlibs -nostdlib -Wl,--enable-auto-image-base -Wl,--disable-auto-import") +#-Wl,-T,${REACTOS_SOURCE_DIR}/global.lds +elseif(ARCH MATCHES amd64) + set(CMAKE_SHARED_LINKER_FLAGS_INIT "-nodefaultlibs -nostdlib -Wl,--enable-auto-image-base -Wl,--disable-auto-import") +endif() diff --git a/reactos/toolchain-msvc.cmake b/reactos/toolchain-msvc.cmake new file mode 100644 index 00000000000..e2db500e731 --- /dev/null +++ b/reactos/toolchain-msvc.cmake @@ -0,0 +1,26 @@ + +# the name of the target operating system +set(CMAKE_SYSTEM_NAME Windows) +set(CMAKE_SYSTEM_PROCESSOR i686) + +# which compilers to use for C and C++ +set(CMAKE_C_COMPILER cl) +set(CMAKE_CXX_COMPILER cl) +set(CMAKE_RC_COMPILER rc) +if(${ARCH} MATCHES amd64) + set(CMAKE_ASM_COMPILER ml64) +else() + set(CMAKE_ASM_COMPILER ml) +endif() + +set(CMAKE_RC_COMPILE_OBJECT " /I${REACTOS_SOURCE_DIR}/include/psdk /I${REACTOS_BINARY_DIR}/include/psdk /I${REACTOS_SOURCE_DIR}/include /I${REACTOS_SOURCE_DIR}/include/reactos /I${REACTOS_BINARY_DIR}/include/reactos /I${REACTOS_SOURCE_DIR}/include/reactos/wine /I${REACTOS_SOURCE_DIR}/include/crt /I${REACTOS_SOURCE_DIR}/include/crt/mingw32 /fo ") + +set(CMAKE_ASM_COMPILE_OBJECT + " /nologo /X /I${REACTOS_SOURCE_DIR}/include/asm /I${REACTOS_BINARY_DIR}/include/asm /D__ASM__ /D_USE_ML /EP /c > .tmp" + " /nologo /Cp /Fo /c /Ta .tmp") + +set(CMAKE_C_STANDARD_LIBRARIES "" CACHE INTERNAL "") + +if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86") + add_definitions(-D__i386__) +endif() diff --git a/reactos/tools/CMakeLists.txt b/reactos/tools/CMakeLists.txt new file mode 100644 index 00000000000..dc58496d9d5 --- /dev/null +++ b/reactos/tools/CMakeLists.txt @@ -0,0 +1,16 @@ + +#add_executable(pefixup pefixup.c) + +add_subdirectory(cabman) +add_subdirectory(cdmake) +add_subdirectory(gendib) +add_subdirectory(geninc) +add_subdirectory(mkhive) +add_subdirectory(spec2def) +add_subdirectory(unicode) + +if(NOT MSVC) +add_subdirectory(widl) +add_subdirectory(wpp) +add_subdirectory(wrc) +endif() diff --git a/reactos/tools/cabman/CMakeLists.txt b/reactos/tools/cabman/CMakeLists.txt new file mode 100644 index 00000000000..fd580af1d5a --- /dev/null +++ b/reactos/tools/cabman/CMakeLists.txt @@ -0,0 +1,12 @@ +list(APPEND SOURCE + cabinet.cxx + dfp.cxx + main.cxx + mszip.cxx + raw.cxx) + +include_directories(${REACTOS_SOURCE_DIR}/lib/3rdparty/zlib) + +add_executable(cabman ${SOURCE}) + +target_link_libraries(cabman zlibhost) \ No newline at end of file diff --git a/reactos/tools/cdmake/CMakeLists.txt b/reactos/tools/cdmake/CMakeLists.txt new file mode 100644 index 00000000000..bb3669b5d64 --- /dev/null +++ b/reactos/tools/cdmake/CMakeLists.txt @@ -0,0 +1,2 @@ + +add_executable(cdmake cdmake.c llmosrt.c) diff --git a/reactos/tools/gendib/CMakeLists.txt b/reactos/tools/gendib/CMakeLists.txt new file mode 100644 index 00000000000..b78ad2a51d4 --- /dev/null +++ b/reactos/tools/gendib/CMakeLists.txt @@ -0,0 +1,2 @@ + +add_executable(gendib gendib.c) diff --git a/reactos/tools/geninc/CMakeLists.txt b/reactos/tools/geninc/CMakeLists.txt new file mode 100644 index 00000000000..dedf28f4b54 --- /dev/null +++ b/reactos/tools/geninc/CMakeLists.txt @@ -0,0 +1,2 @@ + +add_executable(geninc geninc.c) diff --git a/reactos/tools/getdate.c b/reactos/tools/getdate.c new file mode 100644 index 00000000000..892a8ea40fa --- /dev/null +++ b/reactos/tools/getdate.c @@ -0,0 +1,13 @@ +#include +#include +void main() +{ + char curdate[9]; + time_t now; + struct tm *tm_now; + + time(&now); + tm_now=localtime(&now); + strftime(curdate, sizeof(curdate), "%Y%m%d", tm_now); + printf("%s", curdate); +} diff --git a/reactos/tools/getdate.cmd b/reactos/tools/getdate.cmd new file mode 100644 index 00000000000..324e24d6ece --- /dev/null +++ b/reactos/tools/getdate.cmd @@ -0,0 +1 @@ +gcc getdate.c -o getdate.exe -s diff --git a/reactos/tools/getdate.exe b/reactos/tools/getdate.exe new file mode 100644 index 0000000000000000000000000000000000000000..d3e80076f83ecb015a7d308e7dc4f136aec68bb7 GIT binary patch literal 5632 zcmeHLe{2)i9e*}vm=I%YfS?+z2gHo7C`(qgo4Q7G3vLl5)R1PQgUC4cId$jQ*7=+t zsBB>uue;tnWoxOr3Z@yRjiFBJ5MrSq>cyo5X`QkNRc!DFqp5aY{6{opnPKT}pYOYK zVzvtHkEzlop7g!%_xs-W_xrwgXSaTBh%I1@IRJ*i*f1~+AAjEYF@WWz_rAH5om%|v z+F{%Fch^4sY%DFLq-2*A>K4MGL?S5*ouVLR5<)B?Ys%6`G4`>*zQ#yM4uR&O3m_=grGT2@V@-ud z$rQXs^GyJf<4QDP4#@c$JJV_6cGJU0kAEKn%vWfPnf7>X0+6BDXb)-z`K@8^lK+Dh zXjeZ_%B$3lispAVUsW@+8f%`>Sj+brEA(z|$pJ}w&eI9I=xA^PHIJ)LH#qbO&`QN7 z@6Q(GrPh)$cGkd9uV^sSQBlhsBM#Q`GEB%Lz1vz|BI4BTt3xddX?9P`8lcPt7@|IF zo>67^7_fXi2OlS_C1Y&zwU$>PJo!7z>o5hUZh?FN^4S^pU=M=O*Mlj=K|yQ@*(`9G zO_t53Y{5OaYkt`nD}CAID1bBE=62YeT?8}UdAWISH)v%ER&uAI!E)z5LkRV3Q_2l+ z$~-=%d&yndp&$ALWBL#@F8V86+FwC9o;(wLR9J`4M=8|j{L?_rVP^8sgG$~B4kd^j zb3j^KaV-FL+?~zCkaFv~d@mQE?DDjv`I=NmgWd*BQ&zcEkT?FTOn_uQ2boFNQ0>r{ zaXs>+dh{RR)u2pF=^N|_zl0n#3e%ad#+T=T!_q<&OfBl?A)>Bs&^N${S(cixJmm5m z8R03Ee5l{F>KovJuTt))=@ISDSJGFrdHMfoks_U=Tu4}F`bkq+zj6de&4Xj;r zU9a+#m)YO>dgOx=K0y1@1Q)a)*cVK#yNJTMFh|jSn@>A2y%>_DWQ<)Z@^>QU{yH}| z`RAJWI*K&~B!3fAO1Vk@3j)q2c7g$|el}To3=w2Kc8q=w$%8^`vvs z)LBmzgyZ`u?4M%pQV~LP!>muWrRs6~01I%D;(vHS=vJ(-z-&%!eJd=1rpW=}`4xuCRM#uA&X^J%NIL}ssM zrYFze-v4=zkG2ElauSH0kha3IxT^`A5mL{zI5j%JpLyJaqNEL-px%WDR%r zERg|cZg;(M%jVAh05)s)>*|yjAD-w&k9+V# z5bhWL#9601y8+hRr@uvlg9X)JR!91mx$vE8%=Igu%yEO-0sX#_oa14dsxkR{80+m* zDo*#{1+rVLFLlwaZQd_x(Tp(txEVEtw?HYSNA*`eGz?Qu z`mJTiIzP8{S*{0J37PL&#&Ydtbrk;fuR^_agYO@$Z`OE*r6z>s{uQUy5oFiUYTP;3FU&?_ahj$-ozVdUT-Gc=fY%aKuQUs?!^Hb?QI`ae)nb zfXj~eHE|O@`5sf0*-?ty-)FeE%+PG5Rus;XgMrDnc@dER)%R;|aKn2gfNmc$yuYz9 z+iCJ+7C&L(Q42e*^=XTDSp2NTPg%HPVco*@mfUfRKV{+9E&PUshb?@LV}8G_(!Do% z6Zq(YzF9GhOVxJ}ax~tcTN;CCPTb+aWqgcXw{-3xdUxsnumbT|XIJ>SV7f69kF(&m zp5QLAE0&f;X>&Z3PK#+u+53#Q+Z$nCVp?N~u3q{y#6G>iIvvoF#W4Q(SzDdq=Y_E^uwbxDl)FQ*L`dpN zvsUn_U{Fl-#H3_`v8PNvO8=iR76z9VcVG&W|k0e_#mh5Ego3>yw z!KY5xNZ8bT!XD~ON;2DF58)pulJB=id!?8R8$Y(w@r%>RW+&|3Vs|*z&)6^RDJhna zql}H%)3L5ZD9+fJJuOR7E{M!cT(Y0y#C;hv2__sgsd4Au}zCz}|0p01I Puq0Ql!tmYkA64L=C;#Jo literal 0 HcmV?d00001 diff --git a/reactos/tools/mkhive/CMakeLists.txt b/reactos/tools/mkhive/CMakeLists.txt new file mode 100644 index 00000000000..3629fb6f272 --- /dev/null +++ b/reactos/tools/mkhive/CMakeLists.txt @@ -0,0 +1,20 @@ + +add_definitions( + -DMKHIVE_HOST + -DWINE_UNICODE_API= ) + +include_directories( + ${REACTOS_SOURCE_DIR}/lib/newinflib + ${REACTOS_SOURCE_DIR}/lib/cmlib + ${REACTOS_SOURCE_DIR}/lib/rtl) + +list(APPEND SOURCE + binhive.c + cmi.c + mkhive.c + reginf.c + registry.c + rtl.c) + +add_executable(mkhive ${SOURCE}) +target_link_libraries(mkhive unicode cmlibhost inflibhost) diff --git a/reactos/tools/rsym/CMakeLists.txt b/reactos/tools/rsym/CMakeLists.txt new file mode 100644 index 00000000000..d2fce2ab32a --- /dev/null +++ b/reactos/tools/rsym/CMakeLists.txt @@ -0,0 +1,3 @@ + +add_executable(rsym rsym_common.c rsym.cmake.c) +add_executable(raddr2line rsym_common.c raddr2line.c) diff --git a/reactos/tools/rsym/rsym.cmake.c b/reactos/tools/rsym/rsym.cmake.c new file mode 100644 index 00000000000..a5160fac42e --- /dev/null +++ b/reactos/tools/rsym/rsym.cmake.c @@ -0,0 +1,116 @@ +/* + * Usage: rsym input-file output-file + * + * There are two sources of information: the .stab/.stabstr + * sections of the executable and the COFF symbol table. Most + * of the information is in the .stab/.stabstr sections. + * However, most of our asm files don't contain .stab directives, + * so routines implemented in assembler won't show up in the + * .stab section. They are present in the COFF symbol table. + * So, we mostly use the .stab/.stabstr sections, but we augment + * the info there with info from the COFF symbol table when + * possible. + * + * This is a tool and is compiled using the host compiler, + * i.e. on Linux gcc and not mingw-gcc (cross-compiler). + * Therefore we can't include SDK headers and we have to + * duplicate some definitions here. + * Also note that the internal functions are "old C-style", + * returning an int, where a return of 0 means success and + * non-zero is failure. + */ + +#include +#include +#include +#include + +#include "rsym.h" + +int main(int argc, char* argv[]) +{ + int i; + PSYMBOLFILE_HEADER SymbolFileHeader; + PIMAGE_DOS_HEADER PEDosHeader; + PIMAGE_FILE_HEADER PEFileHeader; + PIMAGE_OPTIONAL_HEADER PEOptHeader; + PIMAGE_SECTION_HEADER PESectionHeaders; + char* path1; + char* path2; + FILE* out; + size_t FileSize; + void *FileData; + char elfhdr[] = { '\377', 'E', 'L', 'F' }; + + if (3 != argc) + { + fprintf(stderr, "Usage: rsym \n"); + exit(1); + } + + path1 = convert_path(argv[1]); + path2 = convert_path(argv[2]); + + FileData = load_file ( path1, &FileSize ); + if ( !FileData ) + { + fprintf ( stderr, "An error occured loading '%s'\n", path1 ); + exit(1); + } + + /* Check if MZ header exists */ + PEDosHeader = (PIMAGE_DOS_HEADER) FileData; + if (PEDosHeader->e_magic != IMAGE_DOS_MAGIC || PEDosHeader->e_lfanew == 0L) + { + /* Ignore elf */ + if (!memcmp(PEDosHeader, elfhdr, sizeof(elfhdr))) + exit(0); + perror("Input file is not a PE image.\n"); + free(FileData); + exit(1); + } + + /* Locate PE file header */ + /* sizeof(ULONG) = sizeof(MAGIC) */ + PEFileHeader = (PIMAGE_FILE_HEADER)((char *) FileData + PEDosHeader->e_lfanew + sizeof(ULONG)); + + /* Locate optional header */ + assert(sizeof(ULONG) == 4); + PEOptHeader = (PIMAGE_OPTIONAL_HEADER)(PEFileHeader + 1); + + /* Locate PE section headers */ + PESectionHeaders = (PIMAGE_SECTION_HEADER)((char *) PEOptHeader + PEFileHeader->SizeOfOptionalHeader); + + for (i = 0; i < PEFileHeader->NumberOfSections; i++) { + if (PESectionHeaders[i].Name[0] == '/') { + PESectionHeaders[i].Characteristics |= IMAGE_SCN_CNT_INITIALIZED_DATA; + PESectionHeaders[i].Characteristics &= ~(IMAGE_SCN_MEM_PURGEABLE | IMAGE_SCN_MEM_DISCARDABLE); + } + } + + PESectionHeaders[PEFileHeader->NumberOfSections-1].SizeOfRawData = + FileSize - PESectionHeaders[PEFileHeader->NumberOfSections-1].PointerToRawData; + if (PESectionHeaders[PEFileHeader->NumberOfSections-1].SizeOfRawData > + PESectionHeaders[PEFileHeader->NumberOfSections-1].Misc.VirtualSize) { + PESectionHeaders[PEFileHeader->NumberOfSections-1].Misc.VirtualSize = + ROUND_UP(PESectionHeaders[PEFileHeader->NumberOfSections-1].SizeOfRawData, + PEOptHeader->SectionAlignment); + PEOptHeader->SizeOfImage = PESectionHeaders[PEFileHeader->NumberOfSections-1].VirtualAddress + PESectionHeaders[PEFileHeader->NumberOfSections-1].Misc.VirtualSize; + } + + out = fopen(path2, "wb"); + if (out == NULL) + { + perror("Cannot open output file"); + free(FileData); + exit(1); + } + + fwrite(FileData, 1, FileSize, out); + fclose(out); + free(FileData); + + return 0; +} + +/* EOF */ diff --git a/reactos/tools/spec2def/CMakeLists.txt b/reactos/tools/spec2def/CMakeLists.txt new file mode 100644 index 00000000000..15be2cdbb02 --- /dev/null +++ b/reactos/tools/spec2def/CMakeLists.txt @@ -0,0 +1 @@ +add_executable(spec2def spec2def.c) diff --git a/reactos/tools/spec2def/spec2def.c b/reactos/tools/spec2def/spec2def.c new file mode 100644 index 00000000000..d88d2e490b9 --- /dev/null +++ b/reactos/tools/spec2def/spec2def.c @@ -0,0 +1,806 @@ +#include +#include +#include +#include + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#endif + +typedef struct +{ + char *pcName; + int nNameLength; + char *pcRedirection; + int nRedirectionLength; + int nCallingConvention; + int nOrdinal; + int nStackBytes; + int nArgCount; + int anArgs[30]; + unsigned int uFlags; +} EXPORT; + +typedef int (*PFNOUTLINE)(FILE *, EXPORT *); +int gbKillAt = 0; +int gbUseDeco = 0; +int gbMSComp = 0; +int no_redirections = 0; +char *pszArchString = "i386"; +char *pszArchString2; +char *pszDllName = 0; + +enum +{ + FL_PRIVATE = 1, + FL_STUB = 2, + FL_NONAME = 4, +}; + +enum +{ + CC_STDCALL, + CC_CDECL, + CC_FASTCALL, + CC_EXTERN, + CC_STUB, +}; + +enum +{ + ARG_LONG, + ARG_PTR, + ARG_STR, + ARG_WSTR, + ARG_DBL, + ARG_INT64 +}; + +char* astrCallingConventions[] = +{ + "STDCALL", + "CDECL", + "FASTCALL", + "EXTERN" +}; + +static +int +IsSeparator(char chr) +{ + return ((chr <= ',' && chr != '$') || + (chr >= ':' && chr < '?') ); +} + +int +CompareToken(const char *token, const char *comparand) +{ + while (*comparand) + { + if (*token != *comparand) return 0; + token++; + comparand++; + } + if (!IsSeparator(*token)) return 0; + return 1; +} + +int +ScanToken(const char *token, char chr) +{ + while (!IsSeparator(*token)) + { + if (*token++ == chr) return 1; + } + return 0; +} + +char * +NextLine(char *pc) +{ + while (*pc != 0) + { + if (pc[0] == '\n' && pc[1] == '\r') return pc + 2; + else if (pc[0] == '\n') return pc + 1; + pc++; + } + return pc; +} + +int +TokenLength(char *pc) +{ + int length = 0; + + while (!IsSeparator(*pc++)) length++; + + return length; +} + +char * +NextToken(char *pc) +{ + /* Skip token */ + while (!IsSeparator(*pc)) pc++; + + /* Skip white spaces */ + while (*pc == ' ' || *pc == '\t') pc++; + + /* Check for end of line */ + if (*pc == '\n' || *pc == '\r' || *pc == 0) return 0; + + /* Check for comment */ + if (*pc == '#' || *pc == ';') return 0; + + return pc; +} + +void +OutputHeader_stub(FILE *file) +{ + fprintf(file, "/* This file is autogenerated, do not edit. */\n\n" + "#include \n\n"); +} + +int +OutputLine_stub(FILE *file, EXPORT *pexp) +{ + int i; + + if (pexp->nCallingConvention != CC_STUB && + (pexp->uFlags & FL_STUB) == 0) return 0; + + fprintf(file, "int "); + if (strcmp(pszArchString, "i386") == 0 && + pexp->nCallingConvention == CC_STDCALL) + { + fprintf(file, "__stdcall "); + } + + fprintf(file, "%.*s(", pexp->nNameLength, pexp->pcName); + + for (i = 0; i < pexp->nArgCount; i++) + { + if (i != 0) fprintf(file, ", "); + switch (pexp->anArgs[i]) + { + case ARG_LONG: fprintf(file, "long"); break; + case ARG_PTR: fprintf(file, "void*"); break; + case ARG_STR: fprintf(file, "char*"); break; + case ARG_WSTR: fprintf(file, "wchar_t*"); break; + case ARG_DBL: case ARG_INT64 : fprintf(file, "__int64"); break; + } + fprintf(file, " a%d", i); + } + fprintf(file, ")\n{\n\tDPRINT1(\"WARNING: calling stub %.*s(", + pexp->nNameLength, pexp->pcName); + + for (i = 0; i < pexp->nArgCount; i++) + { + if (i != 0) fprintf(file, ","); + switch (pexp->anArgs[i]) + { + case ARG_LONG: fprintf(file, "0x%%lx"); break; + case ARG_PTR: fprintf(file, "0x%%p"); break; + case ARG_STR: fprintf(file, "'%%s'"); break; + case ARG_WSTR: fprintf(file, "'%%ws'"); break; + case ARG_DBL: fprintf(file, "%%f"); break; + case ARG_INT64: fprintf(file, "%%\"PRix64\""); break; + } + } + fprintf(file, ")\\n\""); + + for (i = 0; i < pexp->nArgCount; i++) + { + fprintf(file, ", "); + switch (pexp->anArgs[i]) + { + case ARG_LONG: fprintf(file, "(long)a%d", i); break; + case ARG_PTR: fprintf(file, "(void*)a%d", i); break; + case ARG_STR: fprintf(file, "(char*)a%d", i); break; + case ARG_WSTR: fprintf(file, "(wchar_t*)a%d", i); break; + case ARG_DBL: fprintf(file, "(double)a%d", i); break; + case ARG_INT64: fprintf(file, "(__int64)a%d", i); break; + } + } + fprintf(file, ");\n"); + + if (pexp->nCallingConvention == CC_STUB) + { + fprintf(file, "\t__wine_spec_unimplemented_stub(\"%s\", __FUNCTION__);\n", pszDllName); + } + + fprintf(file, "\treturn 0;\n}\n\n"); + + return 1; +} + +void +OutputHeader_asmstub(FILE *file, char *libname) +{ + fprintf(file, "; File generated automatically, do not edit! \n\n" + ".586\n.model flat\n.code\n"); +} + +int +OutputLine_asmstub(FILE *fileDest, EXPORT *pexp) +{ + /* Handle autoname */ + if (pexp->nNameLength == 1 && pexp->pcName[0] == '@') + { + fprintf(fileDest, "PUBLIC ordinal%d\nordinal%d: nop\n", + pexp->nOrdinal, pexp->nOrdinal); + } + else if (pexp->nCallingConvention == CC_STDCALL) + { + fprintf(fileDest, "PUBLIC _%.*s@%d\n_%.*s@%d: nop\n", + pexp->nNameLength, pexp->pcName, pexp->nStackBytes, + pexp->nNameLength, pexp->pcName, pexp->nStackBytes); + } + else if (pexp->nCallingConvention == CC_FASTCALL) + { + fprintf(fileDest, "PUBLIC @%.*s@%d\n@%.*s@%d: nop\n", + pexp->nNameLength, pexp->pcName, pexp->nStackBytes, + pexp->nNameLength, pexp->pcName, pexp->nStackBytes); + } + else if (pexp->nCallingConvention == CC_CDECL || + pexp->nCallingConvention == CC_STUB) + { + fprintf(fileDest, "PUBLIC _%.*s\n_%.*s: nop\n", + pexp->nNameLength, pexp->pcName, + pexp->nNameLength, pexp->pcName); + } + else if (pexp->nCallingConvention == CC_EXTERN) + { + fprintf(fileDest, "PUBLIC _%.*s\n_%.*s:\n", + pexp->nNameLength, pexp->pcName, + pexp->nNameLength, pexp->pcName); + } + + return 1; +} + +void +OutputHeader_def(FILE *file, char *libname) +{ + fprintf(file, + "; File generated automatically, do not edit!\n\n" + "LIBRARY %s\n\n" + "EXPORTS\n", + libname); +} + +void +PrintName(FILE *fileDest, EXPORT *pexp, int fRedir, int fDeco) +{ + char *pcName = fRedir ? pexp->pcRedirection : pexp->pcName; + int nNameLength = fRedir ? pexp->nRedirectionLength : pexp->nNameLength; + + if (fDeco && pexp->nCallingConvention == CC_FASTCALL) + fprintf(fileDest, "@"); + fprintf(fileDest, "%.*s", nNameLength, pcName); + if ((pexp->nCallingConvention == CC_STDCALL || + pexp->nCallingConvention == CC_FASTCALL) && fDeco) + { + fprintf(fileDest, "@%d", pexp->nStackBytes); + } +} + +int +OutputLine_def(FILE *fileDest, EXPORT *pexp) +{ + fprintf(fileDest, " "); + + /* Handle autoname */ + if (pexp->nNameLength == 1 && pexp->pcName[0] == '@') + { + fprintf(fileDest, "ordinal%d", pexp->nOrdinal); + } + else + { + PrintName(fileDest, pexp, 0, gbUseDeco && !gbKillAt); + } + + if (pexp->pcRedirection && !no_redirections) + { + int fDeco = (gbUseDeco && !ScanToken(pexp->pcRedirection, '.')); + + fprintf(fileDest, "="); + PrintName(fileDest, pexp, 1, fDeco && !gbMSComp); + } + else if (gbUseDeco && gbKillAt && !gbMSComp && + (pexp->nCallingConvention == CC_STDCALL || + pexp->nCallingConvention == CC_FASTCALL)) + { + fprintf(fileDest, "="); + PrintName(fileDest, pexp, 0, 1); + } + + if (pexp->nOrdinal != -1) + { + fprintf(fileDest, " @%d", pexp->nOrdinal); + } + + if (pexp->nCallingConvention == CC_EXTERN) + { + fprintf(fileDest, " DATA"); + } + + if (pexp->uFlags & FL_PRIVATE) + { + fprintf(fileDest, " PRIVATE"); + } + + if (pexp->uFlags & FL_NONAME) + { + fprintf(fileDest, " NONAME"); + } + + fprintf(fileDest, "\n"); + + return 1; +} + +int +ParseFile(char* pcStart, FILE *fileDest, PFNOUTLINE OutputLine) +{ + char *pc, *pcLine; + int nLine; + EXPORT exp; + int included; + + //fprintf(stderr, "info: line %d, pcStart:'%.30s'\n", nLine, pcStart); + + /* Loop all lines */ + nLine = 1; + for (pcLine = pcStart; *pcLine; pcLine = NextLine(pcLine), nLine++) + { + pc = pcLine; + + exp.nArgCount = 0; + exp.uFlags = 0; + + //fprintf(stderr, "info: line %d, token:'%d, %.20s'\n", + // nLine, TokenLength(pcLine), pcLine); + + /* Skip white spaces */ + while (*pc == ' ' || *pc == '\t') pc++; + + /* Skip empty lines, stop at EOF */ + if (*pc == ';' || *pc <= '#') continue; + if (*pc == 0) return 0; + + //fprintf(stderr, "info: line %d, token:'%.*s'\n", + // nLine, TokenLength(pc), pc); + + /* Now we should get either an ordinal or @ */ + if (*pc == '@') exp.nOrdinal = -1; + else exp.nOrdinal = atol(pc); + + /* Go to next token (type) */ + if (!(pc = NextToken(pc))) + { + fprintf(stderr, "error: line %d, unexpected end of line\n", nLine); + return -10; + } + + //fprintf(stderr, "info: Token:'%.10s'\n", pc); + + /* Now we should get the type */ + if (CompareToken(pc, "stdcall")) + { + exp.nCallingConvention = CC_STDCALL; + } + else if (CompareToken(pc, "cdecl") || + CompareToken(pc, "varargs")) + { + exp.nCallingConvention = CC_CDECL; + } + else if (CompareToken(pc, "fastcall")) + { + exp.nCallingConvention = CC_FASTCALL; + } + else if (CompareToken(pc, "extern")) + { + exp.nCallingConvention = CC_EXTERN; + } + else if (CompareToken(pc, "stub")) + { + exp.nCallingConvention = CC_STUB; + } + else + { + fprintf(stderr, "error: line %d, expected type, got '%.*s' %d\n", + nLine, TokenLength(pc), pc, *pc); + return -11; + } + + //fprintf(stderr, "info: nCallingConvention: %d\n", exp.nCallingConvention); + + /* Go to next token (options or name) */ + if (!(pc = NextToken(pc))) + { + fprintf(stderr, "fail2\n"); + return -12; + } + + /* Handle options */ + included = 1; + while (*pc == '-') + { + if (CompareToken(pc, "-arch")) + { + /* Default to not included */ + included = 0; + pc += 5; + + /* Look if we are included */ + while (*pc == '=' || *pc == ',') + { + pc++; + if (CompareToken(pc, pszArchString) || + CompareToken(pc, pszArchString2)) + { + included = 1; + } + + /* Skip to next arch or end */ + while (*pc > ',') pc++; + } + } + else if (CompareToken(pc, "-i386")) + { + if (strcasecmp(pszArchString, "i386") != 0) included = 0; + } + else if (CompareToken(pc, "-private")) + { + exp.uFlags |= FL_PRIVATE; + } + else if (CompareToken(pc, "-noname") || + CompareToken(pc, "-ordinal")) + { + exp.uFlags |= FL_NONAME; + } + else if (CompareToken(pc, "-stub")) + { + exp.uFlags |= FL_STUB; + } + else if (CompareToken(pc, "-norelay") || + CompareToken(pc, "-register") || + CompareToken(pc, "-ret64")) + { + /* silently ignore these */ + } + else + { + fprintf(stderr, "info: ignored option: '%.*s'\n", + TokenLength(pc), pc); + } + + /* Go to next token */ + pc = NextToken(pc); + } + + //fprintf(stderr, "info: Name:'%.10s'\n", pc); + + /* If arch didn't match ours, skip this entry */ + if (!included) continue; + + /* Get name */ + exp.pcName = pc; + exp.nNameLength = TokenLength(pc); + + /* Handle parameters */ + exp.nStackBytes = 0; + if (exp.nCallingConvention != CC_EXTERN && + exp.nCallingConvention != CC_STUB) + { + //fprintf(stderr, "info: options:'%.10s'\n", pc); + /* Go to next token */ + if (!(pc = NextToken(pc))) + { + fprintf(stderr, "fail4\n"); + return -13; + } + + /* Verify syntax */ + if (*pc++ != '(') + { + fprintf(stderr, "error: line %d, expected '('\n", nLine); + return -14; + } + + /* Skip whitespaces */ + while (*pc == ' ' || *pc == '\t') pc++; + + exp.nStackBytes = 0; + while (*pc >= '0') + { + if (CompareToken(pc, "long")) + { + exp.nStackBytes += 4; + exp.anArgs[exp.nArgCount] = ARG_LONG; + } + else if (CompareToken(pc, "double")) + { + exp.nStackBytes += 8; + exp.anArgs[exp.nArgCount] = ARG_DBL; + } + else if (CompareToken(pc, "ptr") || + CompareToken(pc, "str") || + CompareToken(pc, "wstr")) + { + exp.nStackBytes += 4; // sizeof(void*) on x86 + exp.anArgs[exp.nArgCount] = ARG_PTR; // FIXME: handle strings + } + else if (CompareToken(pc, "int64")) + { + exp.nStackBytes += 8; + exp.anArgs[exp.nArgCount] = ARG_INT64; + } + else + fprintf(stderr, "error: line %d, expected type, got: %.10s\n", nLine, pc); + + exp.nArgCount++; + + /* Go to next parameter */ + if (!(pc = NextToken(pc))) + { + fprintf(stderr, "fail5\n"); + return -15; + } + } + + /* Check syntax */ + if (*pc++ != ')') + { + fprintf(stderr, "error: line %d, expected ')'\n", nLine); + return -16; + } + } + + /* Handle special stub cases */ + if (exp.nCallingConvention == CC_STUB) + { + /* Check for c++ mangled name */ + if (pc[0] == '?') + { + printf("Found c++ mangled name...\n"); + // + } + else + { + /* Check for stdcall name */ + char *p = strchr(pc, '@'); + if (p && (p - pc < exp.nNameLength)) + { + int i; + exp.nNameLength = p - pc; + if (exp.nNameLength < 1) + { + fprintf(stderr, "error, @ in line %d\n", nLine); + return -1; + } + exp.nStackBytes = atoi(p + 1); + exp.nArgCount = exp.nStackBytes / 4; + exp.nCallingConvention = CC_STDCALL; + exp.uFlags |= FL_STUB; + for (i = 0; i < exp.nArgCount; i++) + exp.anArgs[i] = ARG_LONG; + } + } + } + + /* Get optional redirection */ + if ((pc = NextToken(pc))) + { + exp.pcRedirection = pc; + exp.nRedirectionLength = TokenLength(pc); + + /* Check syntax (end of line) */ + if (NextToken(pc)) + { + fprintf(stderr, "error: line %d, additional tokens after ')'\n", nLine); + return -17; + } + } + else + { + exp.pcRedirection = 0; + exp.nRedirectionLength = 0; + } + + OutputLine(fileDest, &exp); + } + + return 0; +} + + +void usage(void) +{ + printf("syntax: spec2pdef [ ...] \n" + "Possible options:\n" + " -h --help prints this screen\n" + " -l= generates an asm lib stub\n" + " -d= generates a def file\n" + " -s= generates a stub file\n" + " --ms msvc compatibility\n" + " -n= name of the dll\n" + " --kill-at removes @xx decorations from exports\n" + " -r removes redirections from def file\n" + " -a= Set architecture to . (i386, x86_64, arm)\n"); +} + +int main(int argc, char *argv[]) +{ + size_t nFileSize; + char *pszSource, *pszDefFileName = 0, *pszStubFileName = 0, *pszLibStubName = 0; + char achDllName[40]; + FILE *file; + int result, i; + + if (argc < 2) + { + usage(); + return -1; + } + + /* Read options */ + for (i = 1; i < argc && *argv[i] == '-'; i++) + { + if ((strcasecmp(argv[i], "--help") == 0) || + (strcasecmp(argv[i], "-h") == 0)) + { + usage(); + return 0; + } + else if (argv[i][1] == 'd' && argv[i][2] == '=') + { + pszDefFileName = argv[i] + 3; + } + else if (argv[i][1] == 'l' && argv[i][2] == '=') + { + pszLibStubName = argv[i] + 3; + } + else if (argv[i][1] == 's' && argv[i][2] == '=') + { + pszStubFileName = argv[i] + 3; + } + else if (argv[i][1] == 'n' && argv[i][2] == '=') + { + pszDllName = argv[i] + 3; + } + else if ((strcasecmp(argv[i], "--kill-at") == 0)) + { + gbKillAt = 1; + } + else if ((strcasecmp(argv[i], "--ms") == 0)) + { + gbMSComp = 1; + } + else if ((strcasecmp(argv[i], "-r") == 0)) + { + no_redirections = 1; + } + else if (argv[i][1] == 'a' && argv[i][2] == '=') + { + pszArchString = argv[i] + 3; + } + else + { + fprintf(stderr, "Unrecognized option: %s\n", argv[i]); + return -1; + } + } + + if ((strcasecmp(pszArchString, "x86_64") == 0) || + (strcasecmp(pszArchString, "ia64") == 0)) + { + pszArchString2 = "win64"; + } + else + pszArchString2 = "win32"; + + if (strcasecmp(pszArchString, "i386") == 0) + { + gbUseDeco = 1; + } + + /* Set a default dll name */ + if (!pszDllName) + { + char *p1, *p2; + int len; + + p1 = strrchr(argv[i], '\\'); + if (!p1) p1 = strrchr(argv[i], '/'); + p2 = p1 = p1 ? p1 + 1 : argv[i]; + + /* walk up to '.' */ + while (*p2 != '.' && *p2 != 0) p2++; + len = p2 - p1; + if (len >= sizeof(achDllName) - 5) + { + fprintf(stderr, "name too long: %s\n", p1); + return -2; + } + + strncpy(achDllName, p1, len); + strncpy(achDllName + len, ".dll", sizeof(achDllName) - len); + pszDllName = achDllName; + } + + /* Open input file argv[1] */ + file = fopen(argv[i], "r"); + if (!file) + { + fprintf(stderr, "error: could not open file %s ", argv[i]); + return -3; + } + + /* Get file size */ + fseek(file, 0, SEEK_END); + nFileSize = ftell(file); + rewind(file); + + /* Allocate memory buffer */ + pszSource = malloc(nFileSize + 1); + if (!pszSource) return -4; + + /* Load input file into memory */ + nFileSize = fread(pszSource, 1, nFileSize, file); + fclose(file); + + /* Zero terminate the source */ + pszSource[nFileSize] = '\0'; + + if (pszDefFileName) + { + /* Open output file */ + file = fopen(pszDefFileName, "w"); + if (!file) + { + fprintf(stderr, "error: could not open output file %s ", argv[i + 1]); + return -5; + } + + OutputHeader_def(file, pszDllName); + result = ParseFile(pszSource, file, OutputLine_def); + fclose(file); + } + + if (pszStubFileName) + { + /* Open output file */ + file = fopen(pszStubFileName, "w"); + if (!file) + { + fprintf(stderr, "error: could not open output file %s ", argv[i + 1]); + return -5; + } + + OutputHeader_stub(file); + result = ParseFile(pszSource, file, OutputLine_stub); + fclose(file); + } + + if (pszLibStubName) + { + /* Open output file */ + file = fopen(pszLibStubName, "w"); + if (!file) + { + fprintf(stderr, "error: could not open output file %s ", argv[i + 1]); + return -5; + } + + OutputHeader_asmstub(file, pszDllName); + result = ParseFile(pszSource, file, OutputLine_asmstub); + fprintf(file, "\nEND\n"); + fclose(file); + } + + + return result; +} diff --git a/reactos/tools/unicode/CMakeLists.txt b/reactos/tools/unicode/CMakeLists.txt new file mode 100644 index 00000000000..82fd36b0b6d --- /dev/null +++ b/reactos/tools/unicode/CMakeLists.txt @@ -0,0 +1,76 @@ + +add_definitions(-DWINE_UNICODE_API= ) + +list(APPEND SOURCE + casemap.c + compose.c + cptable.c + mbtowc.c + string.c + wctomb.c + wctype.c + utf8.c + c_037.c + c_424.c + c_437.c + c_500.c + c_737.c + c_775.c + c_850.c + c_852.c + c_855.c + c_856.c + c_857.c + c_860.c + c_861.c + c_862.c + c_863.c + c_864.c + c_865.c + c_866.c + c_869.c + c_874.c + c_875.c + c_878.c + c_932.c + c_936.c + c_949.c + c_950.c + c_1006.c + c_1026.c + c_1250.c + c_1251.c + c_1252.c + c_1253.c + c_1254.c + c_1255.c + c_1256.c + c_1257.c + c_1258.c + c_1361.c + c_10000.c + c_10006.c + c_10007.c + c_10029.c + c_10079.c + c_10081.c + c_20866.c + c_20932.c + c_20127.c + c_21866.c + c_28591.c + c_28592.c + c_28593.c + c_28594.c + c_28595.c + c_28596.c + c_28597.c + c_28598.c + c_28599.c + c_28600.c + c_28603.c + c_28604.c + c_28605.c + c_28606.c) + +add_library(unicode ${SOURCE}) diff --git a/reactos/tools/widl/CMakeLists.txt b/reactos/tools/widl/CMakeLists.txt new file mode 100644 index 00000000000..d11f1fa9948 --- /dev/null +++ b/reactos/tools/widl/CMakeLists.txt @@ -0,0 +1,25 @@ + +list(APPEND SOURCE + client.c + expr.c + hash.c + header.c + proxy.c + register.c + server.c + typegen.c + typelib.c + typetree.c + utils.c + widl.c + write_msft.c + parser.yy.c + parser.tab.c + port/mkstemps.c) + +# Taken from widl.rbuild +add_definitions(-DINT16=SHORT) + +add_executable(widl ${SOURCE}) + +target_link_libraries(widl wpp) diff --git a/reactos/tools/wmc/CMakeLists.txt b/reactos/tools/wmc/CMakeLists.txt new file mode 100644 index 00000000000..dd82e0f00cd --- /dev/null +++ b/reactos/tools/wmc/CMakeLists.txt @@ -0,0 +1,14 @@ + +list(APPEND SOURCE + lang.c + mcl.c + utils.c + wmc.c + write.c + mcy.tab.c) + +add_executable(wmc ${SOURCE}) + +add_definitions(-DWINE_UNICODE_API= ) + +target_link_libraries(wmc unicode) diff --git a/reactos/tools/wpp/CMakeLists.txt b/reactos/tools/wpp/CMakeLists.txt new file mode 100644 index 00000000000..b8da62d8c35 --- /dev/null +++ b/reactos/tools/wpp/CMakeLists.txt @@ -0,0 +1,10 @@ + +list(APPEND SOURCE + lex.yy.c + preproc.c + wpp.c + ppy.tab.c) + +add_library(wpp ${SOURCE}) + +add_dependencies(wpp build_header) \ No newline at end of file diff --git a/reactos/tools/wrc/CMakeLists.txt b/reactos/tools/wrc/CMakeLists.txt new file mode 100644 index 00000000000..5121cf9fb16 --- /dev/null +++ b/reactos/tools/wrc/CMakeLists.txt @@ -0,0 +1,19 @@ + +list(APPEND SOURCE + dumpres.c + genres.c + newstruc.c + readres.c + translation.c + utils.c + wrc.c + writeres.c + parser.tab.c + lex.yy.c + port/mkstemps.c) + +add_executable(wrc ${SOURCE}) + +add_definitions(-DWINE_UNICODE_API= ) + +target_link_libraries(wrc wpp unicode) -- 2.17.1