]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/RegularExpressionDxe/OnigurumaUefiPort.c
MdeModulePkg: Fix SetMem parameter in OnigurumaUefiPort
[mirror_edk2.git] / MdeModulePkg / Universal / RegularExpressionDxe / OnigurumaUefiPort.c
CommitLineData
48b6c60c
SZ
1/** @file\r
2\r
3 Module to rewrite stdlib references within Oniguruma\r
4\r
5 (C) Copyright 2014-2015 Hewlett Packard Enterprise Development LP<BR>\r
6 Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
7\r
8 SPDX-License-Identifier: BSD-2-Clause-Patent\r
9**/\r
10#include "OnigurumaUefiPort.h"\r
11\r
12#define ONIGMEM_HEAD_SIGNATURE SIGNATURE_32('o','m','h','d')\r
13\r
14typedef struct {\r
15 UINT32 Signature;\r
16 UINTN Size;\r
17} ONIGMEM_HEAD;\r
18\r
19#define ONIGMEM_OVERHEAD sizeof(ONIGMEM_HEAD)\r
20\r
21int EFIAPI sprintf_s(char *str, size_t sizeOfBuffer, char const *fmt, ...)\r
22{\r
23 VA_LIST Marker;\r
24 int NumberOfPrinted;\r
25\r
26 VA_START (Marker, fmt);\r
27 NumberOfPrinted = (int)AsciiVSPrint (str, sizeOfBuffer, fmt, Marker);\r
28 VA_END (Marker);\r
29\r
30 return NumberOfPrinted;\r
31}\r
32\r
33int OnigStrCmp (const char* Str1, const char* Str2)\r
34{\r
35 return (int)AsciiStrCmp (Str1, Str2);\r
36}\r
37\r
38int strlen(const char* str)\r
39{\r
40 return strlen_s(str, MAX_STRING_SIZE);\r
41}\r
42\r
43void * malloc (size_t size)\r
44{\r
45 ONIGMEM_HEAD *PoolHdr;\r
46 UINTN NewSize;\r
47 VOID *Data;\r
48\r
49 NewSize = (UINTN)(size) + ONIGMEM_OVERHEAD;\r
50\r
51 Data = AllocatePool (NewSize);\r
52 if (Data != NULL) {\r
53 PoolHdr = (ONIGMEM_HEAD *)Data;\r
54 PoolHdr->Signature = ONIGMEM_HEAD_SIGNATURE;\r
55 PoolHdr->Size = size;\r
56\r
57 return (VOID *)(PoolHdr + 1);\r
58 }\r
59 return NULL;\r
60}\r
61\r
62void * realloc (void *ptr, size_t size)\r
63{\r
64 ONIGMEM_HEAD *OldPoolHdr;\r
65 ONIGMEM_HEAD *NewPoolHdr;\r
66 UINTN OldSize;\r
67 UINTN NewSize;\r
68 VOID *Data;\r
69\r
70 NewSize = (UINTN)size + ONIGMEM_OVERHEAD;\r
71 Data = AllocatePool (NewSize);\r
72 if (Data != NULL) {\r
73 NewPoolHdr = (ONIGMEM_HEAD *)Data;\r
74 NewPoolHdr->Signature = ONIGMEM_HEAD_SIGNATURE;\r
75 NewPoolHdr->Size = size;\r
76 if (ptr != NULL) {\r
77 OldPoolHdr = (ONIGMEM_HEAD *)ptr - 1;\r
78 ASSERT (OldPoolHdr->Signature == ONIGMEM_HEAD_SIGNATURE);\r
79 OldSize = OldPoolHdr->Size;\r
80\r
81 CopyMem ((VOID *)(NewPoolHdr + 1), ptr, MIN (OldSize, size));\r
82 FreePool ((VOID *)OldPoolHdr);\r
83 }\r
84 return (VOID *)(NewPoolHdr + 1);\r
85 }\r
86 return NULL;\r
87}\r
88\r
8b680e4a
SZ
89void* memcpy (void *dest, const void *src, unsigned int count)\r
90{\r
91 return CopyMem (dest, src, (UINTN)count);\r
92}\r
93\r
94void* memset (void *dest, char ch, unsigned int count)\r
95{\r
1f304300 96 return SetMem (dest, count, ch);\r
8b680e4a
SZ
97}\r
98\r