#ifndef __STDLIB_H__ #define __STDLIB_H__ extern void *malloc(UINTN size); extern void free(void *buf); extern EFI_STATUS emalloc(UINTN, UINTN, EFI_PHYSICAL_ADDRESS *); extern void efree(EFI_PHYSICAL_ADDRESS, UINTN); static inline void memset(char *dst, char ch, UINTN size) { int i; for (i = 0; i < size; i++) dst[i] = ch; } static inline void memcpy(char *dst, char *src, UINTN size) { int i; for (i = 0; i < size; i++) *dst++ = *src++; } static inline int strlen(char *str) { int len; len = 0; while (*str++) len++; return len; } static inline char *strstr(char *haystack, char *needle) { char *p; char *word = NULL; int len = strlen(needle); if (!len) return NULL; p = haystack; while (*p) { word = p; if (!strncmpa((CHAR8 *)p, (CHAR8 *)needle, len)) break; p++; word = NULL; } return word; } #endif /* __STDLIB_H__ */