Files
system76-edk2/MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaIntrinsics.c
Shenglei Zhang 48b6c60cc6 MdeModulePkg/RegularExpressionDxe: Make oniguruma a submodule in edk2.
Use submodule way to access oniguruma. And upgrade oniguruma
version from v6.9.3 to v6.9.4_mark1.
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2073

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
2020-04-13 01:26:12 +00:00

49 lines
1.3 KiB
C

/** @file
Provide intrinsics within Oniguruma
(C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>
Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include <Library/BaseMemoryLib.h>
//
// From CryptoPkg/IntrinsicLib
//
/* Copies bytes between buffers */
#pragma function(memcpy)
void * memcpy (void *dest, const void *src, unsigned int count)
{
return CopyMem (dest, src, (UINTN)count);
}
/* Sets buffers to a specified character */
#pragma function(memset)
void * memset (void *dest, char ch, unsigned int count)
{
//
// NOTE: Here we use one base implementation for memset, instead of the direct
// optimized SetMem() wrapper. Because the IntrinsicLib has to be built
// without whole program optimization option, and there will be some
// potential register usage errors when calling other optimized codes.
//
//
// Declare the local variables that actually move the data elements as
// volatile to prevent the optimizer from replacing this function with
// the intrinsic memset()
//
volatile UINT8 *Pointer;
Pointer = (UINT8 *)dest;
while (count-- != 0) {
*(Pointer++) = ch;
}
return dest;
}