summaryrefslogtreecommitdiff
path: root/StdLib/Include/string.h
diff options
context:
space:
mode:
Diffstat (limited to 'StdLib/Include/string.h')
-rw-r--r--StdLib/Include/string.h493
1 files changed, 0 insertions, 493 deletions
diff --git a/StdLib/Include/string.h b/StdLib/Include/string.h
deleted file mode 100644
index 0c809441e8..0000000000
--- a/StdLib/Include/string.h
+++ /dev/null
@@ -1,493 +0,0 @@
-/** @file
- The header <string.h> declares one type and several functions, and defines
- one macro useful for manipulating arrays of character type and other objects
- treated as arrays of character type. Various methods are used for
- determining the lengths of the arrays, but in all cases a char * or void *
- argument points to the initial (lowest addressed) character of the array. If
- an array is accessed beyond the end of an object, the behavior is undefined.
-
- Where an argument declared as size_t n specifies the length of the array for
- a function, n can have the value zero on a call to that function. Unless
- explicitly stated otherwise in the description of those functions, pointer
- arguments on such a call must still have valid values.
-
- For all functions declared in this header, each character shall be
- interpreted as if it had the type unsigned char (and therefore every possible
- object representation is valid and has a different value).
-
- The following macros are defined in this file:<BR>
- @verbatim
- NULL
- bcopy(a,b,c) ( memcpy((void *)b, (const void *)a, (size_t)c))
- bcmp(a,b,c) ( memcmp((void *)a, (void *)b, (size_t)c))
- @endverbatim
-
- The following types are defined in this file:<BR>
- @verbatim
- size_t Unsigned integer type of the result of the sizeof operator.
- @endverbatim
-
- The following functions are declared in this file:<BR>
- @verbatim
- ################ Copying Functions
- void *memcpy (void * __restrict s1, const void * __restrict s2, size_t n);
- void *memmove (void *s1, const void *s2, size_t n);
- char *strcpy (char * __restrict s1, const char * __restrict s2);
- char *strncpy (char * __restrict s1, const char * __restrict s2, size_t n);
- int strncpyX (char * __restrict s1, const char * __restrict s2, size_t n);
-
- ################ Concatenation Functions
- char *strcat (char * __restrict s1, const char * __restrict s2);
- char *strncat (char * __restrict s1, const char * __restrict s2, size_t n);
- int strncatX (char * __restrict s1, const char * __restrict s2, size_t n);
-
- ################ Comparison Functions
- int memcmp (const void *s1, const void *s2, size_t n);
- int strcmp (const char *s1, const char *s2);
- int strcoll (const char *s1, const char *s2);
- int strncmp (const char *s1, const char *s2, size_t n);
- size_t strxfrm (char * __restrict s1, const char * __restrict s2, size_t n);
-
- ################ Search Functions
- void *memchr (const void *s, int c, size_t n);
- char *strchr (const char *s, int c);
- size_t strcspn (const char *s1, const char *s2);
- char *strpbrk (const char *s1, const char *s2);
- char *strrchr (const char *s, int c);
- size_t strspn (const char *s1 , const char *s2);
- char *strstr (const char *s1 , const char *s2);
- char *strtok (char * __restrict s1, const char * __restrict s2);
-
- ################ Miscellaneous Functions
- void *memset (void *s, int c, size_t n);
- char *strerror (int num);
- size_t strlen (const char *);
-
- ################ BSD Compatibility Functions
- char *strdup (const char *);
- int strerror_r (int, char *, size_t);
- int strcasecmp (const char *s1, const char *s2);
- void *memccpy (void *, const void *, int, size_t);
- int strncasecmp (const char *s1, const char *s2, size_t n);
- size_t strlcpy (char *destination, const char *source, size_t size);
- size_t strlcat (char *destination, const char *source, size_t size);
- char *strsep (register char **stringp, register const char *delim);
- @endverbatim
-
- Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
- 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.
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-**/
-#ifndef _STRING_H
-#define _STRING_H
-#include <sys/EfiCdefs.h>
-
-#ifdef _EFI_SIZE_T_
- typedef _EFI_SIZE_T_ size_t;
- #undef _EFI_SIZE_T_
- #undef _BSD_SIZE_T_
-#endif
-
-__BEGIN_DECLS
-
-/* ################ Copying Functions ################################# */
-
-/** The memcpy function copies N characters from the object pointed to by Src
- into the object pointed to by Dest. If copying takes place between objects
- that overlap, the behavior is undefined.
-
- @param[out] Dest Pointer to the destination of the copy operation.
- @param[in] Src Pointer to the Source data to be copied.
- @param[in] N Number of characters (bytes) to be copied.
-
- @return The memcpy function returns the value of Dest.
-**/
-void *memcpy(void * __restrict Dest, const void * __restrict Src, size_t N);
-
-/** The memmove function copies N characters from the object pointed to by Src
- into the object pointed to by Dest. Copying takes place as if the N
- characters from the object pointed to by Src are first copied into a
- temporary array of N characters that does not overlap the objects pointed
- to by Dest and Src, and then the N characters from the temporary array are
- copied into the object pointed to by Dest.
-
- @param[out] Dest Pointer to the destination of the copy operation.
- @param[in] Src Pointer to the Source data to be copied.
- @param[in] N Number of characters (bytes) to be copied.
-
- @return The memmove function returns the value of Dest.
-**/
-void *memmove(void *Dest, const void *Src, size_t N);
-
-/** The strcpy function copies the string pointed to by Src (including the
- terminating null character) into the array pointed to by Dest. If copying
- takes place between objects that overlap, the behavior is undefined.
-
- @param[out] Dest Pointer to the destination of the copy operation.
- @param[in] Src Pointer to the Source data to be copied.
-
- @return The strcpy function returns the value of Dest.
-**/
-char *strcpy(char * __restrict Dest, const char * __restrict Src);
-
-/** The strncpy function copies not more than N characters (characters that
- follow a null character are not copied) from the array pointed to by Src to
- the array pointed to by Dest. If copying takes place between objects that
- overlap, the behavior is undefined.
-
- If the array pointed to by Src is a string that is shorter than N
- characters, null characters are appended to the copy in the array pointed
- to by Dest, until N characters in all have been written.
-
- @param[out] Dest Pointer to the destination of the copy operation.
- @param[in] Src Pointer to the Source data to be copied.
- @param[in] N Number of characters (bytes) to be copied.
-
- @return The strncpy function returns the value of Dest.
-**/
-char *strncpy(char * __restrict Dest, const char * __restrict Src, size_t N);
-
-/** The strncpyX function copies not more than N-1 characters (characters that
- follow a null character are not copied) from the array pointed to by Src to
- the array pointed to by Dest. Array Dest is guaranteed to be NULL terminated.
- If copying takes place between objects that overlap,
- the behavior is undefined.
-
- strncpyX exists because normal strncpy does not indicate if the copy was
- terminated because of exhausting the buffer or reaching the end of Src.
-
- @param[out] Dest Pointer to the destination of the copy operation.
- @param[in] Src Pointer to the Source data to be copied.
- @param[in] N Number of characters (bytes) to be copied.
-
- @return The strncpyX function returns 0 if the copy operation was
- terminated because it reached the end of Dest. Otherwise,
- a non-zero value is returned indicating how many characters
- remain in Dest.
-**/
-int strncpyX(char * __restrict Dest, const char * __restrict Src, size_t N);
-
-/* ################ Concatenation Functions ########################### */
-
-/** The strcat function appends a copy of the string pointed to by Src
- (including the terminating null character) to the end of the string pointed
- to by Dest. The initial character of Src overwrites the null character at the
- end of Dest. If copying takes place between objects that overlap, the
- behavior is undefined.
-
- @param[out] Dest Pointer to the destination of the concatenation operation.
- @param[in] Src Pointer to the Source data to be concatenated.
-
- @return The strcat function returns the value of Dest.
-**/
-char *strcat(char * __restrict Dest, const char * __restrict Src);
-
-/** The strncat function appends not more than N characters (a null character
- and characters that follow it are not appended) from the array pointed to
- by Src to the end of the string pointed to by Dest. The initial character of
- Src overwrites the null character at the end of Dest. A terminating null
- character is always appended to the result. If copying takes place
- between objects that overlap, the behavior is undefined.
-
- @param[out] Dest Pointer to the destination of the concatenation operation.
- @param[in] Src Pointer to the Source data to be concatenated.
- @param[in] N Max Number of characters (bytes) to be concatenated.
-
- @return The strncat function returns the value of Dest.
-**/
-char *strncat(char * __restrict Dest, const char * __restrict Src, size_t N);
-
-/** The strncatX function appends not more than N characters (a null character
- and characters that follow it are not appended) from the array pointed to
- by Src to the end of the string pointed to by Dest. The initial character of
- Src overwrites the null character at the end of Dest. The result is always
- terminated with a null character. If copying takes place between objects
- that overlap, the behavior is undefined.
-
- strncatX exists because normal strncat does not indicate if the operation
- was terminated because of exhausting N or reaching the end of Src.
-
- @param[out] Dest Pointer to the destination of the concatenation operation.
- @param[in] Src Pointer to the Source data to be concatenated.
- @param[in] N Max Number of characters (bytes) to be concatenated.
-
- @return The strncatX function returns 0 if the operation was terminated
- because it reached the end of Dest. Otherwise, a non-zero value is
- returned indicating how many characters remain in Dest.
-**/
-int strncatX(char * __restrict s1, const char * __restrict s2, size_t n);
-
-/* ################ Comparison Functions ############################## */
-
-/** The memcmp function compares the first N characters of the object pointed
- to by S1 to the first N characters of the object pointed to by S2.
-
- @param[out] S1 Pointer to the first object to be compared.
- @param[in] S2 Pointer to the object to be compared to S1.
- @param[in] N Max Number of characters (bytes) to be compared.
-
- @return The memcmp function returns an integer greater than, equal to, or
- less than zero, accordingly as the object pointed to by S1 is
- greater than, equal to, or less than the object pointed to by S2.
-**/
-int memcmp(const void *S1, const void *S2, size_t N);
-
-/** The strcmp function compares the string pointed to by S1 to the string
- pointed to by S2.
-
- @param[out] S1 Pointer to the first string to be compared.
- @param[in] S2 Pointer to the string to be compared to S1.
-
- @return The strcmp function returns an integer greater than, equal to, or
- less than zero, accordingly as the string pointed to by S1 is
- greater than, equal to, or less than the string pointed to by S2.
-**/
-int strcmp(const char *S1, const char *S2);
-
-/** The strcoll function compares the string pointed to by S1 to the string
- pointed to by S2, both interpreted as appropriate to the LC_COLLATE
- category of the current locale.
-
- @param[out] S1 Pointer to the first string to be compared.
- @param[in] S2 Pointer to the string to be compared to S1.
-
- @return The strcoll function returns an integer greater than, equal to,
- or less than zero, accordingly as the string pointed to by S1 is
- greater than, equal to, or less than the string pointed to by S2
- when both are interpreted as appropriate to the current locale.
-**/
-int strcoll(const char *S1, const char *S2);
-
-/** The strncmp function compares not more than N characters (characters that
- follow a null character are not compared) from the array pointed to by S1
- to the array pointed to by S2.
-
- @param[out] S1 Pointer to the first object to be compared.
- @param[in] S2 Pointer to the object to be compared to S1.
- @param[in] N Max Number of characters (bytes) to be compared.
-
- @return The strncmp function returns an integer greater than, equal to,
- or less than zero, accordingly as the possibly null-terminated
- array pointed to by S1 is greater than, equal to, or less than
- the possibly null-terminated array pointed to by S2.
-**/
-int strncmp(const char *S1, const char *S2, size_t N);
-
-/** The strxfrm function transforms the string pointed to by Src and places the
- resulting string into the array pointed to by Dest. The transformation is
- such that if the strcmp function is applied to two transformed strings, it
- returns a value greater than, equal to, or less than zero, corresponding to
- the result of the strcoll function applied to the same two original
- strings. No more than N characters are placed into the resulting array
- pointed to by Dest, including the terminating null character. If N is zero,
- Dest is permitted to be a null pointer. If copying takes place between
- objects that overlap, the behavior is undefined.
-
- @param[out] Dest Pointer to the object to receive the transformed string.
- @param[in] Src Pointer to the string to be transformed.
- @param[in] N Max Number of characters (bytes) to be transformed.
-
- @return The strxfrm function returns the length of the transformed string
- (not including the terminating null character). If the value
- returned is N or more, the contents of the array pointed to by Dest
- are indeterminate.
-**/
-size_t strxfrm(char * __restrict Dest, const char * __restrict Src, size_t N);
-
-/* ################ Search Functions ################################## */
-
-/** The memchr function locates the first occurrence of C (converted to an
- unsigned char) in the initial N characters (each interpreted as
- unsigned char) of the object pointed to by S.
-
- @param[in] S Pointer to the object to be searched.
- @param[in] C The character value to search for.
- @param[in] N Max Number of characters (bytes) to be searched.
-
- @return The memchr function returns a pointer to the located character,
- or a null pointer if the character does not occur in the object.
-**/
-void *memchr(const void *S, int C, size_t N);
-
-/** The strchr function locates the first occurrence of C (converted to a char)
- in the string pointed to by S. The terminating null character is considered
- to be part of the string.
-
- @param[in] S Pointer to the object to be searched.
- @param[in] C The character value to search for.
-
- @return The strchr function returns a pointer to the located character,
- or a null pointer if the character does not occur in the string.
-**/
-char *strchr(const char *S, int C);
-
-/** The strcspn function computes the length of the maximum initial segment of
- the string pointed to by S1 which consists entirely of characters NOT from
- the string pointed to by S2.
-
- @param[in] S1 Pointer to the object to be searched.
- @param[in] S2 Pointer to the list of characters to search for.
-
- @return The strcspn function returns the length of the segment.
-**/
-size_t strcspn(const char *S1, const char *S2);
-
-/** The strpbrk function locates the first occurrence in the string pointed to
- by S1 of any character from the string pointed to by S2.
-
- @param[in] S1 Pointer to the object to be searched.
- @param[in] S2 Pointer to the list of characters to search for.
-
- @return The strpbrk function returns a pointer to the character, or a
- null pointer if no character from S2 occurs in S1.
-**/
-char *strpbrk(const char *S1, const char *S2);
-
-/** The strrchr function locates the last occurrence of C (converted to a char)
- in the string pointed to by S. The terminating null character is considered
- to be part of the string.
-
- @param[in] S Pointer to the object to be searched.
- @param[in] C The character value to search for.
-
- @return The strrchr function returns a pointer to the character, or a
- null pointer if C does not occur in the string.
-**/
-char *strrchr(const char *S, int C);
-
-/** The strspn function computes the length of the maximum initial segment of
- the string pointed to by S1 which consists entirely of characters from the
- string pointed to by S2.
-
- @param[in] S1 Pointer to the object to be searched.
- @param[in] S2 Pointer to the list of characters to search for.
-
- @return The strspn function returns the length of the segment.
-**/
-size_t strspn(const char *S1 , const char *S2);
-
-/** The strstr function locates the first occurrence in the string pointed to
- by S1 of the sequence of characters (excluding the terminating null
- character) in the string pointed to by S2.
-
- @param[in] S1 Pointer to the object to be searched.
- @param[in] S2 Pointer to the sequence of characters to search for.
-
- @return The strstr function returns a pointer to the located string, or a
- null pointer if the string is not found. If S2 points to a string
- with zero length, the function returns S1.
-**/
-char *strstr(const char *S1 , const char *S2);
-
-/** Break a string into a sequence of tokens.
-
- A sequence of calls to the strtok function breaks the string pointed to by
- S1 into a sequence of tokens, each of which is delimited by a character
- from the string pointed to by S2. The first call in the sequence has a
- non-null first argument; subsequent calls in the sequence have a null first
- argument. The separator string pointed to by S2 may be different from call
- to call.
-
- The first call in the sequence searches the string pointed to by S1 for the
- first character that is not contained in the current separator string
- pointed to by S2. If no such character is found, then there are no tokens
- in the string pointed to by S1 and the strtok function returns a null
- pointer. If such a character is found, it is the start of the first token.
-
- The strtok function then searches from there for a character that is
- contained in the current separator string. If no such character is found,
- the current token extends to the end of the string pointed to by S1, and
- subsequent searches for a token will return a null pointer. If such a
- character is found, it is overwritten by a null character, which terminates
- the current token. The strtok function saves a pointer to the following
- character, from which the next search for a token will start.
-
- Each subsequent call, with a null pointer as the value of the first
- argument, starts searching from the saved pointer and behaves as
- described above.
-
- @param[in] S1 Pointer to the string to be tokenized.
- @param[in] S2 Pointer to a list of separator characters.
-
- @return The strtok function returns a pointer to the first character of a
- token, or a null pointer if there is no token.
-**/
-char *strtok(char * __restrict S1, const char * __restrict S2);
-
-/* ################ Miscellaneous Functions ########################### */
-
-/** 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.
-
- @param[out] S Pointer to the first element of the object to be set.
- @param[in] C Value to store in each element of S.
- @param[in] N Number of elements in S to be set.
-
- @return The memset function returns the value of S.
-**/
-void *memset(void *S, int C, size_t N);
-
-/** The strerror function maps the number in Num to a message string.
- Typically, the values for Num come from errno, but strerror shall map
- any value of type int to a message.
-
- @param[in] Num A value to be converted to a message.
-
- @return The strerror function returns a pointer to the string, the
- contents of which are locale specific. The array pointed to
- must not be modified by the program, but may be overwritten by
- a subsequent call to the strerror function.
-**/
-char *strerror(int Num);
-
-/** The strlen function computes the length of the string pointed to by S.
-
- @param[in] S Pointer to the string to determine the length of.
-
- @return The strlen function returns the number of characters that
- precede the terminating null character.
-**/
-size_t strlen(const char *S);
-
-
-/* ################ BSD Compatibility Functions ####################### */
-
-char *strdup (const char *);
-int strerror_r(int, char *, size_t);
-int strcasecmp(const char *s1, const char *s2);
-void *memccpy (void *, const void *, int, size_t);
-int strncasecmp(const char *s1, const char *s2, size_t n);
-size_t strlcpy(char *destination, const char *source, size_t size);
-size_t strlcat(char *destination, const char *source, size_t size);
-
-// bcopy is is a void function with the src/dest arguments reversed, being used in socket lib
-#define bcopy(a,b,c) ( memcpy((void *)b, (const void *)a, (size_t)c))
-
-// bcmp is same as memcmp, returns 0 for successful compare, non-zero otherwise
-#define bcmp(a,b,c) ( memcmp((void *)a, (void *)b, (size_t)c))
-
-/*
- * Get next token from string *stringp, where tokens are possibly-empty
- * strings separated by characters from delim.
- *
- * Writes NULs into the string at *stringp to end tokens.
- * delim need not remain constant from call to call.
- * On return, *stringp points past the last NUL written (if there might
- * be further tokens), or is NULL (if there are definitely no more tokens).
- *
- * If *stringp is NULL, strsep returns NULL.
- */
-char *
-strsep(
- register char **stringp,
- register const char *delim
- );
-
-__END_DECLS
-
-#endif /* _STRING_H */