Clean up handling of stack frames.
[pintos-anon] / src / lib / lib.h
1 #ifndef HEADER_LIB_H
2 #define HEADER_LIB_H 1
3
4 #include <stdarg.h>
5 #include <stddef.h>
6
7 #define ROUND_UP(X, STEP) (((X) + (STEP) - 1) / (STEP) * (STEP))
8 #define DIV_ROUND_UP(X, STEP) (((X) + (STEP) - 1) / (STEP))
9 #define ROUND_DOWN(X, STEP) ((X) / (STEP) * (STEP))
10
11 void *memset (void *, int, size_t);
12 void *memcpy (void *, const void *, size_t);
13 void *memmove (void *, const void *, size_t);
14 void *memchr (const void *, int, size_t);
15 int memcmp (const void *, const void *, size_t);
16
17 char *strchr (const char *, int);
18 size_t strlcpy (char *, const char *, size_t);
19 size_t strlen (const char *);
20
21 void vprintk (const char *, va_list);
22 void printk (const char *, ...)
23      __attribute__ ((format (printf, 1, 2)));
24
25 static inline int
26 isdigit (int c) 
27 {
28   return c >= '0' && c <= '9';
29 }
30
31 #endif /* lib.h */