Destroy PT pages in addrspace_destroy().
[pintos-anon] / src / lib / lib.h
index 2f788bea4de58e068695bc8cc03a9c3c7d390377..71291395ce2ccdcf9ea4b2c25421dc98a192c285 100644 (file)
@@ -2,10 +2,13 @@
 #define HEADER_LIB_H 1
 
 #include <stdarg.h>
+#include <stdbool.h>
 #include <stddef.h>
+#include "debug.h"
 
 #define ROUND_UP(X, STEP) (((X) + (STEP) - 1) / (STEP) * (STEP))
 #define DIV_ROUND_UP(X, STEP) (((X) + (STEP) - 1) / (STEP))
+#define ROUND_DOWN(X, STEP) ((X) / (STEP) * (STEP))
 
 void *memset (void *, int, size_t);
 void *memcpy (void *, const void *, size_t);
@@ -16,15 +19,24 @@ int memcmp (const void *, const void *, size_t);
 char *strchr (const char *, int);
 size_t strlcpy (char *, const char *, size_t);
 size_t strlen (const char *);
+int strcmp (const char *, const char *);
+char *strtok_r (char *, const char *, char **);
 
-void vprintk (const char *, va_list);
-void printk (const char *, ...)
-     __attribute__ ((format (printf, 1, 2)));
+int atoi (const char *);
 
-static inline int
-isdigit (int c) 
-{
-  return c >= '0' && c <= '9';
-}
+void vprintk (const char *, va_list) PRINTF_FORMAT (1, 0);
+void printk (const char *, ...) PRINTF_FORMAT (1, 2);
+int vsnprintf (char *, size_t, const char *, va_list) PRINTF_FORMAT (3, 0);
+int snprintf (char *, size_t, const char *, ...) PRINTF_FORMAT (3, 4);
+
+void hex_dump (const void *, size_t size, bool ascii);
+
+static inline int isdigit (int c) { return c >= '0' && c <= '9'; }
+static inline int isprint (int c) { return c >= 32 && c < 127; }
+static inline int isgraph (int c) { return c >= 33 && c < 127; }
+static inline int isspace (int c) { return strchr (" \t\n\r\v", c) != NULL; }
+static inline int islower (int c) { return c >= 'a' && c <= 'z'; }
+static inline int isupper (int c) { return c >= 'A' && c <= 'Z'; }
+static inline int isalpha (int c) { return islower (c) || isupper (c); }
 
 #endif /* lib.h */