Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Horrendous hack to ack seastar IRQs....
[palacios.git] / geekos / include / libc / string.h
1 /*
2  * String library
3  * Copyright (c) 2001,2004 David H. Hovemeyer <daveho@cs.umd.edu>
4  * $Revision: 1.3 $
5  * 
6  * This is free software.  You are permitted to use,
7  * redistribute, and modify it as specified in the file "COPYING".
8  */
9
10 #ifndef STRING_H
11 #define STRING_H
12
13 #include <stddef.h>
14
15 /* Definition of the control structure for streams
16 */
17 typedef struct file_struct {
18         short           level;          /* fill/empty level of buffer */
19         unsigned        flags;          /* File status flags    */
20         char            fd;             /* File descriptor      */
21         unsigned char   hold;           /* Ungetc char if no buffer */
22         short           bsize;          /* Buffer size          */
23         unsigned char   *buffer;        /* Data transfer buffer */
24         unsigned char   *curp;          /* Current active pointer */
25         unsigned        istemp;         /* Temporary file indicator */
26         short           token;          /* Used for validity checking */
27 }       FILE;    
28
29 void* memset(void* s, int c, size_t n);
30 void* memcpy(void *dst, const void* src, size_t n);
31 void *memmove(void *dst, const void *src, size_t n);
32 int memcmp(const void *s1, const void *s2, size_t n);
33 size_t strlen(const char* s);
34 size_t strnlen(const char *s, size_t maxlen);
35 int strcmp(const char* s1, const char* s2);
36 int strncmp(const char* s1, const char* s2, size_t limit);
37 char *strcat(char *s1, const char *s2);
38 char *strcpy(char *dest, const char *src);
39 char *strncpy(char *dest, const char *src, size_t limit);
40 char *strdup(const char *s1);
41 int atoi(const char *buf);
42 char *strchr(const char *s, int c);
43 char *strrchr(const char *s, int c);
44 char *strpbrk(const char *s, const char *accept);
45 char *strncat(char *s1, const char *s2, size_t limit);
46 int fprintf(FILE *file, char *fmt, ...);
47 int fflush(FILE *file);
48 int printf(char *fmt, ...);
49
50
51
52 void abort (void) __attribute__ ((__noreturn__));
53 #define _tolower(c)     ((c) + 'a' - 'A')
54
55 int tolower(int ch);
56
57 /* Note: The ISO C standard puts this in <stdio.h>, but we don't
58  * have that header in GeekOS (yet). */
59 int snprintf(char *s, size_t size, const char *fmt, ...)
60     __attribute__ ((__format__ (__printf__, 3, 4)));
61
62
63 #endif  /* STRING_H */
64