1 // =============================================================================
2 // BareMetal -- a 64-bit OS written in Assembly for x86-64 systems
3 // Copyright (C) 2008-2012 Return Infinity -- see LICENSE.TXT
5 // The BareMetal OS C/C++ library header.
9 // This allows for a C/C++ program to access OS functions available in BareMetal OS
10 // =============================================================================
13 void b_print_string(const char *str
);
14 void b_print_char(char chr
);
15 void b_print_char_hex(char chr
);
16 void b_print_newline(void);
17 void b_print_string_with_color(const char *str
, unsigned char clr
);
18 void b_print_char_with_color(char chr
, unsigned char clr
);
19 void b_print_char_hex_with_color(char chr
, unsigned char clr
);
22 unsigned char b_input_get_key(void);
23 unsigned char b_input_wait_for_key(void);
24 unsigned long b_input_string(unsigned char *str
, unsigned long nbr
);
27 unsigned long b_string_length(const unsigned char *str
);
28 unsigned long b_string_find_char(const unsigned char *str
, unsigned char chr
);
29 void b_os_string_copy(unsigned char *dst
, const unsigned char *src
);
30 void b_int_to_string(unsigned long nbr
, unsigned char *str
);
31 unsigned long b_string_to_int(const unsigned char *str
);
34 void b_delay(unsigned long nbr
);
35 unsigned long b_get_argc();
36 char* b_get_argv(unsigned char nbr
);
37 unsigned long b_get_timercounter(void);
40 void b_debug_dump_mem(void *data
, unsigned int size
);
43 void b_serial_send(unsigned char chr
);
44 unsigned char b_serial_recv(void);
47 void b_file_read(const unsigned char *name
, void *mem
);
48 void b_file_write(void *data
, const unsigned char *name
, unsigned int size
);
49 void b_file_delete(const unsigned char *name
);
52 unsigned long b_smp_enqueue(void *ptr
, unsigned long var
);
53 unsigned long b_smp_dequeue(unsigned long *var
);
54 void b_smp_run(unsigned long ptr
, unsigned long var
);
55 unsigned long b_smp_queuelen(void);
56 void b_smp_wait(void);
57 void b_smp_lock(unsigned long ptr
);
58 void b_smp_unlock(unsigned long ptr
);
59 unsigned long b_smp_get_id(void);
60 unsigned long b_smp_numcores(void);
63 unsigned long b_mem_allocate(unsigned long *mem
, unsigned long nbr
);
64 unsigned long b_mem_release(unsigned long *mem
, unsigned long nbr
);
65 unsigned long b_mem_get_free(void);
68 void b_speaker_tone(unsigned long nbr
);
69 void b_speaker_off(void);
70 void b_speaker_beep(void);
73 void b_ethernet_tx(void *mem
, void *dest
, unsigned short type
, unsigned short len
);
74 void b_ethernet_tx_raw(void *mem
, unsigned short len
);
75 unsigned long b_ethernet_rx(void *mem
);
76 unsigned long b_ethernet_avail();
79 // =============================================================================