#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
+/* Some NVRAM byte definitions */
+#define NVRAM_RTC_SECONDS 0
+#define NVRAM_RTC_MINUTES 2
+#define NVRAM_RTC_HOURS 4
+#define NVRAM_RTC_DAY 7
+#define NVRAM_RTC_MONTH 8
+#define NVRAM_RTC_YEAR 9
+
+/* drivers/nvram.c */
+u8 nvram_read(u8 addr);
+void nvram_write(u8 val, u8 addr);
+
/* drivers/keyboard.c */
int keyboard_havechar(void);
unsigned char keyboard_get_scancode(void);
void vga_clear(void);
void vga_putc(uint8_t row, uint8_t col, unsigned int c);
void vga_putchar(unsigned int ch);
-int vga_move_cursor(int x, int y);
+void vga_move_cursor(int x, int y);
void vga_init(void);
/* libc/console.c */
void *calloc(size_t nmemb, size_t size);
void *realloc(void *ptr, size_t size);
+/* libc/lib.c */
+int bcd2dec(int b);
+int dec2bcd(int d);
+
/* libc/memory.c */
void *memset(void *s, int c, size_t n);
void *memcpy(void *dst, const void *src, size_t n);
int memcmp(const char *s1, const char *s2, size_t len);
/* libc/printf.c */
+int snprintf(char *str, size_t size, const char *fmt, ...);
int sprintf(char *str, const char *fmt, ...);
int vsnprintf(char *str, size_t size, const char *fmt, va_list ap);
int vsprintf(char *str, const char *fmt, va_list ap);
void lib_get_sysinfo(void);
/* i386/timer.c */
-/* Timer functions - defined by each arcitecture. */
+/* Timer functions - defined by each architecture. */
unsigned int get_cpu_speed(void);
void ndelay(unsigned int n);
void mdelay(unsigned int n);