alder_lake_bios/Insyde/InsydeModulePkg/Include/StdLib/StdCLibSupport.h

130 lines
3.5 KiB
C

/** @file
;******************************************************************************
;* Copyright (c) 2012 - 2014, Insyde Software Corporation. All Rights Reserved.
;*
;* You may not reproduce, distribute, publish, display, perform, modify, adapt,
;* transmit, broadcast, present, recite, release, license or otherwise exploit
;* any part of this publication in any form, by any means, without the prior
;* written permission of Insyde Software Corporation.
;*
;******************************************************************************
*/
#ifndef _STD_C_LIB_SUPPORT_H
#define _STD_C_LIB_SUPPORT_H
#include <Uefi.h>
#include <Library/BaseLib.h>
#define va_list VA_LIST
#define va_arg VA_ARG
#define va_start VA_START
#define va_end VA_END
#define CHAR_BIT 8 /* number of bits in a char */
#define INT_MAX 2147483647 /* max value for an int */
#define INT_MIN (-2147483647-1) /* min value for an int */
#define UINT_MAX 0xffffffff /* max value for an unsigned int */
#define ULONG_MAX 0xffffffff /* max value for an unsigned long */
#define SHRT_MAX 32767/* max value for a short */
#define LONG_MAX 2147483647 /* max value for a long */
#define LONG_MIN (-2147483647-1) /* min value for a long */
#define EOF (-1)
typedef unsigned short wchar_t;
typedef UINTN size_t;
//
// ctype.h
//
int tolower(int c);
int isdigit(int c);
int isalpha(int c);
int isupper(int c);
int isscii(int c);
int isspace(int c);
//
// setjmp.h
//
typedef BASE_LIBRARY_JUMP_BUFFER jmp_buf[1];
#define setjmp(env) (INTN)SetJump((env))
void longjmp(jmp_buf env, int val);
//
// stdlib.h
//
int abs(register int i);
void *calloc (size_t, size_t);
//void exit(int status);
void free (void *);
long labs(long j);
void *malloc (size_t);
void qsort (void *base, size_t num, size_t width, int (*compare)(const void *, const void *));
void *realloc (void *, size_t);
//
// string.h
//
void *memchr (const void *, int, size_t);
int memcmp (const void *, const void *, size_t);
void *memcpy (void *, const void *, size_t);
void *memmove (void *, const void *, size_t size);
void *memset (void *, int, size_t size);
char *strcat (char *, const char *);
int strcmp (const char *, const char *);
char *strcpy (char *, const char *);
size_t strlen (const char *);
int strncmp (const char *, const char *, size_t);
char *strncpy (char *, const char *, size_t);
char *strrchr (const char *, int);
char *strstr (const char *, const char *);
int strcmpi ( const char * str1, const char * str2 );
char *strdup(const char *s1);
//
// wchar.h
//
wchar_t * wcsdup(wchar_t *str);
unsigned long wcstoul(wchar_t *nptr, wchar_t **endptr , unsigned int base );
long wcstol(wchar_t *nptr, wchar_t **endptr , int base );
int wcscasecmp (wchar_t *s1, wchar_t *s2);
wchar_t *wcscpy (wchar_t *to, const wchar_t *from);
size_t wcslen(const wchar_t *str);
wchar_t *wcscat(wchar_t *s, const wchar_t *append);
int wcscmp(const wchar_t *s1, const wchar_t *s2);
wchar_t *wcsncpy(wchar_t *dst, const wchar_t * src,size_t n);
#if defined (MDE_CPU_X64)
#if defined(_MSC_EXTENSIONS)
#define ptrdiff_t __int64
#else
#define ptrdiff_t long long
#endif
#else
#define ptrdiff_t int
#endif
#define assert(exp) ASSERT(exp)
#ifdef __GNUC__
#if __GNUC__ >= 4
#define OFFSET_OF(TYPE, Field) ((UINTN) __builtin_offsetof(TYPE, Field))
#endif
#endif
#ifndef OFFSET_OF
#define OFFSET_OF(TYPE, Field) ((UINTN) &(((TYPE *)0)->Field))
#endif
#define offsetof(StrucName, Member) OFFSET_OF(StrucName, Member)
#define swprintf UnicodeSPrint
#endif