From 0f64d20e8a34fb8fd9d9f5f6849e94d3e1c8f9c7 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Tue, 29 Sep 2015 17:24:48 +0000 Subject: [PATCH] [CRT] - Add "memcmp" library that is used by kernel drivers to get memcmp/RtlEqualMemory CORE-10285 #resolve svn path=/trunk/; revision=69413 --- reactos/lib/sdk/crt/CMakeLists.txt | 3 +++ rostests/kmtests/CMakeLists.txt | 2 +- rostests/kmtests/rtl/RtlMemory.c | 14 +++++++++++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/reactos/lib/sdk/crt/CMakeLists.txt b/reactos/lib/sdk/crt/CMakeLists.txt index 53b496397e4..3c002b4f773 100644 --- a/reactos/lib/sdk/crt/CMakeLists.txt +++ b/reactos/lib/sdk/crt/CMakeLists.txt @@ -49,6 +49,9 @@ add_library(user32_wsprintf add_dependencies(user32_wsprintf psdk) add_target_compile_definitions(user32_wsprintf _USER32_WSPRINTF) +add_library(memcmp mem/memcmp.c) +add_dependencies(memcmp psdk) + add_library(getopt misc/getopt.c) add_target_compile_definitions(getopt _DLL __USE_CRTIMP) add_dependencies(getopt psdk) diff --git a/rostests/kmtests/CMakeLists.txt b/rostests/kmtests/CMakeLists.txt index b17c970ec3b..30dcadefc98 100644 --- a/rostests/kmtests/CMakeLists.txt +++ b/rostests/kmtests/CMakeLists.txt @@ -85,7 +85,7 @@ list(APPEND KMTEST_DRV_SOURCE add_library(kmtest_drv SHARED ${KMTEST_DRV_SOURCE}) set_module_type(kmtest_drv kernelmodedriver) -target_link_libraries(kmtest_drv kmtest_printf chkstk ${PSEH_LIB}) +target_link_libraries(kmtest_drv kmtest_printf chkstk memcmp ${PSEH_LIB}) add_importlibs(kmtest_drv ntoskrnl hal) add_dependencies(kmtest_drv bugcodes xdk) add_target_compile_definitions(kmtest_drv KMT_KERNEL_MODE NTDDI_VERSION=NTDDI_WS03SP1) diff --git a/rostests/kmtests/rtl/RtlMemory.c b/rostests/kmtests/rtl/RtlMemory.c index c058b201e7d..b16e5b7156f 100644 --- a/rostests/kmtests/rtl/RtlMemory.c +++ b/rostests/kmtests/rtl/RtlMemory.c @@ -287,7 +287,19 @@ START_TEST(RtlMemory) KeRaiseIrql(HIGH_LEVEL, &Irql); /* RtlEqualMemory */ - /* TODO: where is memcmp? */ + MakePattern(Buffer, 8, HalfSize / 8 - 1, 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, + 1, 1, 0x12, + 8, HalfSize / 8, 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, + 1, 7, 0x12, 0); + + ok_bool_true(RtlEqualMemory((PVOID)1, (PVOID)2, 0), + "RtlEqualMemory returned"); + ok_bool_true(RtlEqualMemory(Buffer, Buffer + HalfSize - 7, HalfSize - 8), + "RtlEqualMemory returned"); + ok_bool_true(RtlEqualMemory(Buffer, Buffer + HalfSize - 7, HalfSize - 8 + 1), + "RtlEqualMemory returned"); + ok_bool_false(RtlEqualMemory(Buffer, Buffer + HalfSize - 7, HalfSize - 8 + 2), + "RtlEqualMemory returned"); /* RtlCompareMemory */ MakePattern(Buffer, 8, HalfSize / 8 - 1, 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, -- 2.17.1