--- /dev/null
+/** @file\r
+\r
+ Module to rewrite stdlib references within Oniguruma\r
+\r
+ (C) Copyright 2014-2015 Hewlett Packard Enterprise Development LP<BR>\r
+ Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
+**/\r
+#ifndef ONIGURUMA_UEFI_PORT_H\r
+#define ONIGURUMA_UEFI_PORT_H\r
+\r
+#include <Library/MemoryAllocationLib.h>\r
+#include <Library/PrintLib.h>\r
+#include <Library/BaseMemoryLib.h>\r
+#include <Library/BaseLib.h>\r
+#include <Library/DebugLib.h>\r
+\r
+\r
+#define ONIG_NO_STANDARD_C_HEADERS\r
+#define ONIG_NO_PRINT\r
+#define P_(args) args\r
+\r
+#define INT_MAX 0x7FFFFFFF\r
+#define LONG_MAX 0x7FFFFFFF\r
+#define UINT_MAX 0xFFFFFFFF\r
+#define ULONG_MAX 0xFFFFFFFF\r
+\r
+\r
+#define SIZEOF_LONG 4\r
+#define SIZEOF_LONG_LONG 8\r
+typedef UINTN size_t;\r
+typedef UINT32 uint32_t;\r
+typedef INTN intptr_t;\r
+\r
+#ifndef offsetof\r
+#define offsetof OFFSET_OF\r
+#endif\r
+\r
+#ifdef MDE_CPU_IA32\r
+#define SIZEOF_VOIDP 4\r
+#endif\r
+\r
+#ifdef MDE_CPU_X64\r
+#define SIZEOF_VOIDP 8\r
+#endif\r
+\r
+#define calloc(n,s) AllocateZeroPool((n)*(s))\r
+\r
+#define free(p) \\r
+ do { \\r
+ VOID *EvalOnce; \\r
+ \\r
+ EvalOnce = (p); \\r
+ if (EvalOnce != NULL) { \\r
+ FreePool (EvalOnce); \\r
+ } \\r
+ } while (FALSE)\r
+\r
+#define xmemmove(Dest,Src,Length) CopyMem(Dest,Src,Length)\r
+#define xmemcpy(Dest,Src,Length) CopyMem(Dest,Src,Length)\r
+#define xmemset(Buffer,Value,Length) SetMem(Buffer,Length,Value)\r
+\r
+#define va_init_list(a,b) VA_START(a,b)\r
+#define va_list VA_LIST\r
+#define va_arg(a,b) VA_ARG(a,b)\r
+#define va_end(a) VA_END(a)\r
+#define va_start VA_START\r
+\r
+#define FILE VOID\r
+#define stdout NULL\r
+#define fprintf(...)\r
+#define fputs(a,b)\r
+#define vsnprintf (int)AsciiVSPrint\r
+#define _vsnprintf vsnprintf\r
+#define xsnprintf sprintf_s\r
+#define xvsnprintf vsnprintf\r
+#define alloca malloc\r
+\r
+#define setlocale(a,b)\r
+#define LC_ALL 0\r
+\r
+#define UCHAR_MAX 255\r
+#define MAX_STRING_SIZE 0x1000\r
+#define strlen_s(String,MaxSize) AsciiStrnLenS (String, MaxSize)\r
+#define xstrncpy(Dest, Src, MaxSize) strcat_s(Dest,MaxSize,Src)\r
+#define xstrcat(Dest,Src,MaxSize) strcat(Dest,Src,MaxSize)\r
+#define strcat(Dest,Src,MaxSize) strcat_s(Dest,MaxSize,Src)\r
+#define strcat_s(Dest,MaxSize,Src) AsciiStrCatS (Dest, MaxSize, Src)\r
+#define strncpy_s(Dest,MaxSize,Src,Length) AsciiStrnCpyS (Dest, MaxSize, Src, Length)\r
+#define strcmp OnigStrCmp\r
+\r
+int OnigStrCmp (const char* Str1, const char* Str2);\r
+\r
+int EFIAPI sprintf_s (char *str, size_t sizeOfBuffer, char const *fmt, ...);\r
+int strlen(const char* str);\r
+void* malloc(size_t size);\r
+void* realloc(void *ptr, size_t size);\r
+\r
+#define exit(n) ASSERT(FALSE);\r
+\r
+#endif // !ONIGURUMA_UEFI_PORT_H\r