#pragma once #include "stdarg.h" #define islower(c) (('a' <= (c)) && ((c) <= 'z')) #define isupper(c) (('A' <= (c)) && ((c) <= 'Z')) #define isdigit(c) (('0' <= (c)) && ((c) <= '9')) #define isspace(c) (((c) == ' ') || ((c) == '\t') || \ ((c) == '\f') || ((c) == '\n') || \ ((c) == '\r') || ((c) == '\v')) #define isprint(c) ((' ' <= (c)) && ((c) <= '~')) int memcmp(const void *s1, const void *s2, size_t n); void *memcpy(void *dest, const void *src, size_t n); void *memset(void *s, int c, size_t n); char *itoa(int value, char *str, int base); void reverse(char s[]); int strlen(char s[]); int strcmp(char s1[], char s2[]); void puts(const char *str); void putc(const char str); void printInt(int integer); void vprintf(const char *format, va_list ap); void printf(const char *format, ...); /* * Dummy printk for disabled debugging statements to use whilst maintaining * gcc's format checking. */ #define no_printf(fmt, ...) \ ({ \ if (0) \ printf(fmt, ##__VA_ARGS__); \ 0; \ }) #ifdef DEBUG #define pr_devel(fmt, ...) \ printf(pr_fmt(fmt), ##__VA_ARGS__) #else #define pr_devel(fmt, ...) \ no_printf(pr_fmt(fmt), ##__VA_ARGS__) #endif #define pr_info(fmt, ...) \ printf(pr_fmt(fmt), ##__VA_ARGS__)