/** @file Miscellaneous Functions for . Copyright (c) 2010, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License that accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php. THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ //#include #include #include #include #include #include #include #include #include #include extern char *sys_errlist[]; /** The memset function copies the value of c (converted to an unsigned char) into each of the first n characters of the object pointed to by s. @return The memset function returns the value of s. **/ void * memset(void *s, int c, size_t n) { return SetMem( s, (UINTN)n, (UINT8)c); } int strerror_r(int errnum, char *buf, size_t buflen) { const char *estring; INTN i; int retval = 0; if( (errnum < 0) || (errnum >= EMAXERRORVAL)) { (void) AsciiSPrint( buf, ASCII_STRING_MAX, "Unknown Error: %d.", errnum); retval = EINVAL; } else { estring = sys_errlist[errnum]; for( i = buflen; i > 0; --i) { if( (*buf++ = *estring++) == '\0') { break; } } if(i == 0) { retval = ERANGE; } } return retval; } /** The strerror function maps the number in errnum to a message string. Typically, the values for errnum come from errno, but strerror shall map any value of type int to a message. The implementation shall behave as if no library function calls the strerror function. @return The strerror function returns a pointer to the string, the contents of which are locale specific. The array pointed to shall not be modified by the program, but may be overwritten by a subsequent call to the strerror function. **/ char * strerror(int errnum) { static char errorbuf[ASCII_STRING_MAX]; int status; status = strerror_r(errnum, errorbuf, sizeof(errorbuf)); if(status != 0) { errno = status; } return errorbuf; } /** The strlen function computes the length of the string pointed to by s. @return The strlen function returns the number of characters that precede the terminating null character. **/ size_t strlen(const char *s) { return (size_t)AsciiStrLen( s); }