#ifndef __BOARD_H
#define __BOARD_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#define BOARD_NAME_LEN 32
struct board_desc {
extern const struct board_desc *brd_desc;
void board_init(void);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* __BOARD_H */
#ifndef __CONSOLE_H
#define __CONSOLE_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef void (*console_write_hook)(char);
typedef char (*console_read_hook)(void);
typedef int (*console_read_nonblock_hook)(void);
void putsnonl(const char *s);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* __CONSOLE_H */
#ifndef __CRC_H
#define __CRC_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
unsigned short crc16(const unsigned char *buffer, int len);
unsigned int crc32(const unsigned char *buffer, unsigned int len);
+#ifdef __cplusplus
+}
+#endif
+
#endif
#ifndef __CTYPE_H
#define __CTYPE_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/*
* NOTE! This ctype does not handle EOF like the standard C
* library is required to.
#define tolower(c) __tolower(c)
#define toupper(c) __toupper(c)
+#ifdef __cplusplus
+}
+#endif
+
#endif /* __CTYPE_H */
#ifndef __ENDIAN_H
#define __ENDIAN_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#define __LITTLE_ENDIAN 0
#define __BIG_ENDIAN 1
#define __BYTE_ORDER __BIG_ENDIAN
(val & 0xff00) >> 8;
}
+#ifdef __cplusplus
+}
+#endif
+
#endif /* __ENDIAN_H */
#ifndef __ERRNO_H
#define __ERRNO_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern int errno;
#define EPERM 1
#define EMEDIUMTYPE 124
#define EMEDIUMTYPE_STR "Wrong medium type"
+#ifdef __cplusplus
+}
+#endif
+
#endif /* __ERRNO_H */
#ifndef __FLOAT_H
#define __FLOAT_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
#define FLT_ROUNDS (__builtin_flt_rounds())
#define FLT_RADIX __FLT_RADIX__
#define DBL_TRUE_MIN __DBL_DENORM_MIN__
#define LDBL_TRUE_MIN __LDBL_DENORM_MIN__
+#ifdef __cplusplus
+}
+#endif
+
#endif /* __FLOAT_H */
#ifndef __IRQ_H
#define __IRQ_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
static inline unsigned int irq_getie(void)
{
unsigned int ie;
return pending;
}
+#ifdef __cplusplus
+}
+#endif
+
#endif /* __IRQ_H */
#ifndef __LIMITS_H
#define __LIMITS_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#define ULONG_MAX 0xffffffff
#define UINT_MAX 0xffffffff
#define CHAR_BIT 8
+#ifdef __cplusplus
+}
+#endif
+
#endif /* __LIMITS_H */
#ifndef __SETJMP_H
#define __SETJMP_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#define _JBLEN 19
typedef int jmp_buf[_JBLEN];
int setjmp(jmp_buf env);
void longjmp(jmp_buf env, int val);
-#endif /* __SETJMP_H */
+#ifdef __cplusplus
+}
+#endif
+#endif /* __SETJMP_H */
#include <stdlib.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#define va_start(v, l) __builtin_va_start((v), l)
#define va_arg(ap, type) __builtin_va_arg((ap), type)
#define va_copy(aq, ap) __builtin_va_copy((aq), (ap))
int vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
int vsprintf(char *buf, const char *fmt, va_list args);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* __STDARG_H */
#ifndef __STDDEF_H
#define __STDDEF_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#ifdef __cplusplus
#define NULL 0
#else
#define offsetof(s,m) (size_t)&(((s *)0)->m)
+#ifdef __cplusplus
+}
+#endif
+
#endif /* __STDDEF_H */
#ifndef __STDINT_H
#define __STDINT_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef unsigned int uintptr_t;
typedef unsigned long long uint64_t;
#define INT32_C(v) v
#define UINT32_C(v) v##U
+#ifdef __cplusplus
+}
+#endif
+
#endif /* __STDINT_H */
#include <stddef.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
int putchar(int c);
int puts(const char *s);
int fseek(FILE *stream, long offset, int whence);
long ftell(FILE *stream);
+#ifdef __cplusplus
+}
+#endif
#endif /* __STDIO_H */
#include <stddef.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#define PRINTF_ZEROPAD 1 /* pad with zero */
#define PRINTF_SIGN 2 /* unsigned/signed long */
#define PRINTF_PLUS 4 /* show plus */
void free(void *ptr);
void *realloc(void *ptr, size_t size);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* __STDLIB_H */
#include <stddef.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
char *strchr(const char *s, int c);
char *strpbrk(const char *,const char *);
char *strrchr(const char *s, int c);
char *strerror(int errnum);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* __STRING_H */
#ifndef __SYSTEM_H
#define __SYSTEM_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
void flush_cpu_icache(void);
void flush_cpu_dcache(void);
-__attribute__((noreturn)) void reboot(void);
-__attribute__((noreturn)) void reconf(void);
+
+#ifdef __cplusplus
+}
+#endif
#endif /* __SYSTEM_H */
#ifndef __TIMER_H
#define __TIMER_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
unsigned int get_system_frequency(void);
void timer_enable(int en);
unsigned int timer_get(void);
void timer_set_reload(unsigned int value);
void busy_wait(unsigned int ms);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* __TIMER_H */
#ifndef __UART_H
#define __UART_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
void uart_init(void);
void uart_isr(void);
void uart_sync(void);
char uart_read(void);
int uart_read_nonblock(void);
+#ifdef __cplusplus
+}
+#endif
+
#endif