X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=geekos%2Finclude%2Flibc%2Fstring.h;fp=geekos%2Finclude%2Flibc%2Fstring.h;h=5bf42df8bab483a449d4e542845f1d54c4e856c7;hp=0000000000000000000000000000000000000000;hb=ddc16b0737cf58f7aa90a69c6652cdf4090aec51;hpb=626595465a2c6987606a6bc697df65130ad8c2d3 diff --git a/geekos/include/libc/string.h b/geekos/include/libc/string.h new file mode 100644 index 0000000..5bf42df --- /dev/null +++ b/geekos/include/libc/string.h @@ -0,0 +1,64 @@ +/* + * String library + * Copyright (c) 2001,2004 David H. Hovemeyer + * $Revision: 1.3 $ + * + * This is free software. You are permitted to use, + * redistribute, and modify it as specified in the file "COPYING". + */ + +#ifndef STRING_H +#define STRING_H + +#include + +/* Definition of the control structure for streams +*/ +typedef struct file_struct { + short level; /* fill/empty level of buffer */ + unsigned flags; /* File status flags */ + char fd; /* File descriptor */ + unsigned char hold; /* Ungetc char if no buffer */ + short bsize; /* Buffer size */ + unsigned char *buffer; /* Data transfer buffer */ + unsigned char *curp; /* Current active pointer */ + unsigned istemp; /* Temporary file indicator */ + short token; /* Used for validity checking */ +} FILE; + +void* memset(void* s, int c, size_t n); +void* memcpy(void *dst, const void* src, size_t n); +void *memmove(void *dst, const void *src, size_t n); +int memcmp(const void *s1, const void *s2, size_t n); +size_t strlen(const char* s); +size_t strnlen(const char *s, size_t maxlen); +int strcmp(const char* s1, const char* s2); +int strncmp(const char* s1, const char* s2, size_t limit); +char *strcat(char *s1, const char *s2); +char *strcpy(char *dest, const char *src); +char *strncpy(char *dest, const char *src, size_t limit); +char *strdup(const char *s1); +int atoi(const char *buf); +char *strchr(const char *s, int c); +char *strrchr(const char *s, int c); +char *strpbrk(const char *s, const char *accept); +char *strncat(char *s1, const char *s2, size_t limit); +int fprintf(FILE *file, char *fmt, ...); +int fflush(FILE *file); +int printf(char *fmt, ...); + + + +void abort (void) __attribute__ ((__noreturn__)); +#define _tolower(c) ((c) + 'a' - 'A') + +int tolower(int ch); + +/* Note: The ISO C standard puts this in , but we don't + * have that header in GeekOS (yet). */ +int snprintf(char *s, size_t size, const char *fmt, ...) + __attribute__ ((__format__ (__printf__, 3, 4))); + + +#endif /* STRING_H */ +