summaryrefslogtreecommitdiff
path: root/Cryptlib/Include/CrtLibSupport.h
diff options
context:
space:
mode:
authorGary Lin <glin@suse.com>2017-04-07 12:32:24 +0800
committerPeter Jones <pjones@redhat.com>2017-04-11 10:42:19 -0400
commite883479f35644d17db7efed710657c8543cfcb68 (patch)
tree0d26338cea50d49c95ef5af10785b23c325eebde /Cryptlib/Include/CrtLibSupport.h
parent97469449fda5ba933a64280917e776487301a127 (diff)
downloadefi-boot-shim-e883479f35644d17db7efed710657c8543cfcb68.tar.gz
efi-boot-shim-e883479f35644d17db7efed710657c8543cfcb68.zip
Cryptlib: amend the headers and fix signness
- Declare some functions in the proper headers + We missed them for a long time... - Cast offsetof to UINTN + The original casting triggers the gcc warning since int can not present the offset for the 64bit machines. - Cast the "char" array to "CHAR8 *" to avoid the gcc warnings - Implement atoi correctly Signed-off-by: Gary Lin <glin@suse.com>
Diffstat (limited to 'Cryptlib/Include/CrtLibSupport.h')
-rw-r--r--Cryptlib/Include/CrtLibSupport.h17
1 files changed, 10 insertions, 7 deletions
diff --git a/Cryptlib/Include/CrtLibSupport.h b/Cryptlib/Include/CrtLibSupport.h
index 47b864a4..42c056f0 100644
--- a/Cryptlib/Include/CrtLibSupport.h
+++ b/Cryptlib/Include/CrtLibSupport.h
@@ -191,7 +191,7 @@ typedef CHAR8 *VA_LIST;
For pre-Standard C compilers, here is a version that usually works
(but watch out!): */
#ifndef offsetof
-#define offsetof(type, member) ( (int) & ((type*)0) -> member )
+#define offsetof(type, member) ( (UINTN) & ((type*)0) -> member )
#endif
//
@@ -307,6 +307,9 @@ char *strncpy (char *, const char *, size_t);
char *strrchr (const char *, int);
unsigned long strtoul (const char *, char **, int);
long strtol (const char *, char **, int);
+char *strerror (int);
+size_t strspn (const char *, const char *);
+size_t strcspn (const char *, const char *);
int printf (const char *, ...);
int sscanf (const char *, const char *, ...);
int open (const char *, int, ...);
@@ -356,26 +359,26 @@ extern FILE *stdin;
extern FILE *stdout;
#define AsciiStrLen(x) strlena(x)
-#define AsciiStrnCmp(s1, s2, len) strncmpa(s1, s2, len)
+#define AsciiStrnCmp(s1, s2, len) strncmpa((CHAR8 *)s1, (CHAR8 *)s2, len)
//
// Macros that directly map functions to BaseLib, BaseMemoryLib, and DebugLib functions
//
#define memcpy(dest,source,count) ( {CopyMem(dest,source,(UINTN)(count)); dest; })
#define memset(dest,ch,count) SetMem(dest,(UINTN)(count),(UINT8)(ch))
-#define memchr(buf,ch,count) ScanMem8(buf,(UINTN)(count),(UINT8)ch)
+#define memchr(buf,ch,count) ScanMem8((CHAR8 *)buf,(UINTN)(count),ch)
#define memcmp(buf1,buf2,count) (int)(CompareMem(buf1,buf2,(UINTN)(count)))
#define memmove(dest,source,count) CopyMem(dest,source,(UINTN)(count))
-#define strlen(str) (size_t)(AsciiStrLen(str))
+#define strlen(str) (size_t)(AsciiStrLen((CHAR8 *)str))
#define strcpy(strDest,strSource) AsciiStrCpy(strDest,strSource)
#define strncpy(strDest,strSource,count) AsciiStrnCpy(strDest,strSource,(UINTN)count)
#define strcat(strDest,strSource) AsciiStrCat(strDest,strSource)
-#define strchr(str,ch) ScanMem8((VOID *)(str),AsciiStrSize(str),(UINT8)ch)
-#define strcmp strcmpa
+#define strchr(str,ch) (char *)(ScanMem8((CHAR8 *)str,AsciiStrSize((CHAR8 *)str),ch))
+#define strcmp(string1,string2) strcmpa((CHAR8 *)string1,(CHAR8 *)string2)
#define strncmp(string1,string2,count) (int)(AsciiStrnCmp(string1,string2,(UINTN)(count)))
#define localtime(timer) NULL
#define assert(expression)
-#define atoi(nptr) Atoi(nptr)
+#define atoi(nptr) AsciiStrDecimalToUintn(nptr)
#define gettimeofday(tvp,tz) do { (tvp)->tv_sec = time(NULL); (tvp)->tv_usec = 0; } while (0)
#define gmtime_r(timer,result) (result = NULL)