#include "asm.h"
Defines | |
#define | assert(X) {if (!(X)) { out_string("\nAssertion failed: '" #X "'\n\n"); __exit(0xbadbbbad);}} |
#define | memcpy(x, y, z) __builtin_memcpy(x,y,z) |
we want inlined stringops | |
#define | memset(x, y, z) __builtin_memset(x,y,z) |
#define | strlen(x) __builtin_strlen(x) |
#define | ERROR(result, value, msg) |
A fatal error happens if value is true. | |
#define | CHECK3(result, value, msg) |
Returns result and prints the msg, if value is true. | |
#define | CHECK4(result, value, msg, hex) |
Returns result and prints the msg and hex, if value is true. | |
Functions | |
int | out_char (unsigned value) |
lowlevel output functions | |
void | out_unsigned (unsigned int value, int len, unsigned base, char flag) |
void | out_string (const char *value) |
Output a string. | |
void | out_hex (unsigned int value, unsigned int bitlen) |
void | out_description (const char *prefix, unsigned int value) |
Output a string followed by a single hex value, prefixed with a message label. | |
void | out_info (const char *msg) |
Output a string, prefixed with a message label. | |
void | wait (int ms) |
Helper functions. | |
void | __exit (unsigned status) __attribute__((noreturn)) |
Print the exit status and reboot the machine. | |
int | check_cpuid (void) |
int | enable_svm (void) |
void | serial_init (void) |
Variables | |
const char const * | message_label |
every message with out_description is prefixed with message_label |
#define assert | ( | X | ) | {if (!(X)) { out_string("\nAssertion failed: '" #X "'\n\n"); __exit(0xbadbbbad);}} |
#define CHECK3 | ( | result, | ||
value, | ||||
msg | ||||
) |
#define CHECK4 | ( | result, | ||
value, | ||||
msg, | ||||
hex | ||||
) |
{ \ if (value) \ { \ out_description(msg, hex); \ return result; \ } \ }
Returns result and prints the msg and hex, if value is true.
{ \ if (value) \ { \ out_string(msg); \ __exit(result); \ } \ }
A fatal error happens if value is true.
#define memcpy | ( | x, | ||
y, | ||||
z | ||||
) | __builtin_memcpy(x,y,z) |
we want inlined stringops
#define memset | ( | x, | ||
y, | ||||
z | ||||
) | __builtin_memset(x,y,z) |
#define strlen | ( | x | ) | __builtin_strlen(x) |
void __exit | ( | unsigned | status | ) |
Print the exit status and reboot the machine.
int check_cpuid | ( | void | ) |
int enable_svm | ( | void | ) |
int out_char | ( | unsigned | value | ) |
lowlevel output functions
lowlevel output functions
Note: We allow only to put a char on the last line.
void out_description | ( | const char * | prefix, | |
unsigned int | value | |||
) |
Output a string followed by a single hex value, prefixed with a message label.
void out_hex | ( | unsigned int | value, | |
unsigned int | bitlen | |||
) |
void out_info | ( | const char * | msg | ) |
Output a string, prefixed with a message label.
void out_string | ( | const char * | value | ) |
Output a string.
void out_unsigned | ( | unsigned int | value, | |
int | len, | |||
unsigned | base, | |||
char | flag | |||
) |
void serial_init | ( | void | ) |
void wait | ( | int | ms | ) |
Helper functions.
Helper functions.
We use the PIT for this.
const char const* message_label |
every message with out_description is prefixed with message_label