1 | #ifndef UTIL_H |
---|
2 | #define UTIL_H |
---|
3 | |
---|
4 | void outb(uint16_t addr, uint8_t val); |
---|
5 | void outw(uint16_t addr, uint16_t val); |
---|
6 | void outl(uint16_t addr, uint32_t val); |
---|
7 | uint8_t inb(uint16_t addr); |
---|
8 | uint16_t inw(uint16_t addr); |
---|
9 | uint32_t inl(uint16_t addr); |
---|
10 | void mssleep(uint32_t time); |
---|
11 | |
---|
12 | char *itoa(char *a, unsigned int i); |
---|
13 | int strcmp(const char *cs, const char *ct); |
---|
14 | int strncmp(const char *s1, const char *s2, uint32_t n); |
---|
15 | void *memcpy(void *dest, const void *src, unsigned n); |
---|
16 | void *memmove(void *dest, const void *src, unsigned n); |
---|
17 | char *strcpy(char *dest, const char *src); |
---|
18 | char *strncpy(char *dest, const char *src, unsigned n); |
---|
19 | unsigned strlen(const char *s); |
---|
20 | void * memset(void *s, int c, unsigned n); |
---|
21 | int memcmp(const void *s1, const void *s2, unsigned n); |
---|
22 | void cpuid(uint32_t idx, uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx); |
---|
23 | void byte_to_hex(char *digits, uint8_t byte); |
---|
24 | void uuid_to_string(char *dest, uint8_t *uuid); |
---|
25 | int printf(const char *fmt, ...); |
---|
26 | |
---|
27 | static inline uint8_t mmio_readb(uint8_t *addr) |
---|
28 | { |
---|
29 | return *(volatile uint8_t *)addr; |
---|
30 | } |
---|
31 | |
---|
32 | static inline uint16_t mmio_readw(uint16_t *addr) |
---|
33 | { |
---|
34 | return *(volatile uint16_t *)addr; |
---|
35 | } |
---|
36 | |
---|
37 | static inline uint32_t mmio_readl(uint32_t *addr) |
---|
38 | { |
---|
39 | return *(volatile uint32_t *)addr; |
---|
40 | } |
---|
41 | |
---|
42 | |
---|
43 | #endif |
---|