Move RtlFillMemory() routine to ntosdrv driver
Some checks failed
Builds / ExectOS (i686) (push) Failing after 42s
Builds / ExectOS (amd64) (push) Successful in 49s

This commit is contained in:
Rafal Kupiec 2024-02-20 16:08:10 +01:00
parent 246968045a
commit 477e56e294
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4
6 changed files with 39 additions and 35 deletions

View File

@ -7,7 +7,8 @@ include_directories(
# Specify list of source code files
list(APPEND NTOSDRV_SOURCE
${NTOSDRV_SOURCE_DIR}/ntosdrv.c)
${NTOSDRV_SOURCE_DIR}/ntosdrv.c
${NTOSDRV_SOURCE_DIR}/rtl.c)
# Set module definition SPEC file
set_specfile(ntosdrv.spec ntosdrv.sys)

View File

@ -1,2 +1,3 @@
# NT compatibilty layer exports
@ fastcall ExRundownCompleted(ptr) ExCompleteRundownProtection
@ stdcall RtlFillMemory(ptr long long)

36
drivers/ntosdrv/rtl.c Normal file
View File

@ -0,0 +1,36 @@
/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: drivers/ntosdrv/rtl.c
* DESCRIPTION: NTOS compatibility driver runtime library
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
*/
#include <xtkmapi.h>
/**
* This routine fills a section of memory with a specified byte.
*
* @param Destination
* Supplies a pointer to the buffer to fill.
*
* @param Length
* Specifies a number of bytes to store in memory.
*
* @param Byte
* Supplies a pattern to fill memory.
*
* @return This routine does not return any value.
*
* @since NT 3.5
*/
XTAPI
VOID
RtlFillMemory(OUT PVOID Destination,
IN SIZE_T Length,
IN UCHAR Byte)
{
/* Fill the buffer with specified byte */
RtlSetMemory(Destination, Byte, Length);
}

View File

@ -116,13 +116,6 @@ RtlDivideLargeInteger(IN LARGE_INTEGER Dividend,
IN ULONG Divisor,
OUT PULONG Remainder);
XTAPI
VOID
RtlFillMemory(OUT PVOID Destination,
IN SIZE_T Length,
IN UCHAR Value);
XTAPI
XTSTATUS
RtlFormatWideString(IN PRTL_PRINT_CONTEXT Context,

View File

@ -87,32 +87,6 @@ RtlCopyMemory(OUT PVOID Destination,
}
}
/**
* This routine fills a section of memory with a specified byte.
*
* @param Destination
* Supplies a pointer to the buffer to fill.
*
* @param Length
* Specifies a number of bytes to store in memory.
*
* @param Byte
* Supplies a pattern to fill memory.
*
* @return This routine does not return any value.
*
* @since NT 3.5
*/
XTAPI
VOID
RtlFillMemory(OUT PVOID Destination,
IN SIZE_T Length,
IN UCHAR Byte)
{
/* Fill the buffer with specified byte */
RtlSetMemory(Destination, Byte, Length);
}
/**
* This routine copies a block of memory either forward of backward, depeding
* if source and destination buffers overlap or not.

View File

@ -42,7 +42,6 @@
@ stdcall RtlConvertToLargeIntegerUnsigned32(long)
@ stdcall RtlCopyMemory(ptr ptr long)
@ stdcall RtlDivideLargeInteger(long long long ptr)
@ stdcall RtlFillMemory(ptr long long)
@ stdcall RtlMoveMemory(ptr ptr long)
@ stdcall RtlMultiplyLargeInteger(long long long)
@ stdcall RtlReadRegisterByte(ptr)