software/include/base: C++ compatibility
authorSebastien Bourdeauducq <sebastien@milkymist.org>
Mon, 25 Mar 2013 13:38:58 +0000 (14:38 +0100)
committerSebastien Bourdeauducq <sebastien@milkymist.org>
Mon, 25 Mar 2013 13:38:58 +0000 (14:38 +0100)
19 files changed:
software/include/base/board.h
software/include/base/console.h
software/include/base/crc.h
software/include/base/ctype.h
software/include/base/endian.h
software/include/base/errno.h
software/include/base/float.h
software/include/base/irq.h
software/include/base/limits.h
software/include/base/setjmp.h
software/include/base/stdarg.h
software/include/base/stddef.h
software/include/base/stdint.h
software/include/base/stdio.h
software/include/base/stdlib.h
software/include/base/string.h
software/include/base/system.h
software/include/base/timer.h
software/include/base/uart.h

index ef873160d87088cf2537b356a24d1d407cb50d7c..5c5f54c2688f2bf2b81fc8b90263d4e85bd90290 100644 (file)
@@ -1,6 +1,10 @@
 #ifndef __BOARD_H
 #define __BOARD_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define BOARD_NAME_LEN 32
 
 struct board_desc {
@@ -16,4 +20,8 @@ void get_soc_version_formatted(char *version);
 extern const struct board_desc *brd_desc;
 void board_init(void);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BOARD_H */
index 182a80a3c1e13a806c1b394ee40e249c374cae06..a1cf599284c314e730679819027d3c0da990ef54 100644 (file)
@@ -1,6 +1,10 @@
 #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);
@@ -13,4 +17,8 @@ int readchar_nonblock(void);
 
 void putsnonl(const char *s);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __CONSOLE_H */
index 61cc036bd86fc4ce3246c0c677b9e3287191cd07..88c8d953b81b0ae056a7d68d3db95bafd549824d 100644 (file)
@@ -1,7 +1,15 @@
 #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
index a996b288cc30d2f20d63a0a83b4332ec67b2019f..6936859338ea4710bc565ab9b037039bdee7fc20 100644 (file)
@@ -1,6 +1,10 @@
 #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.
@@ -52,4 +56,8 @@ static inline unsigned char __toupper(unsigned char c)
 #define tolower(c) __tolower(c)
 #define toupper(c) __toupper(c)
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __CTYPE_H */
index 03a0d449b3a34c40767ca1fa4085c7fc6cc0a4ff..81cf2153f92e9a57fb68441f759ddeb0c9227e1f 100644 (file)
@@ -1,6 +1,10 @@
 #ifndef __ENDIAN_H
 #define __ENDIAN_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define __LITTLE_ENDIAN 0
 #define __BIG_ENDIAN 1
 #define __BYTE_ORDER __BIG_ENDIAN
@@ -19,4 +23,8 @@ static inline unsigned short le16toh(unsigned short val)
                (val & 0xff00) >> 8;
 }
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __ENDIAN_H */
index 8c202a2f29b65cb2f16799f0b5c448720f109534..be05873aa0e346cae269484f1daf3d55a3f73171 100644 (file)
@@ -1,6 +1,10 @@
 #ifndef __ERRNO_H
 #define __ERRNO_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 extern int errno;
 
 #define EPERM               1
@@ -250,4 +254,8 @@ extern int errno;
 #define EMEDIUMTYPE         124
 #define EMEDIUMTYPE_STR     "Wrong medium type"
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __ERRNO_H */
index bb462d5a8bf626d6192a381219a246cce7c55ee4..2d0bf676ade50cd0c975798031690c71437472fc 100644 (file)
@@ -1,6 +1,10 @@
 #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__
@@ -47,4 +51,8 @@
 #define DBL_TRUE_MIN __DBL_DENORM_MIN__
 #define LDBL_TRUE_MIN __LDBL_DENORM_MIN__
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __FLOAT_H */
index e2599614ab56ca9a416e856d9d9cc3e35573dfce..504f2972155d246b26c253a66590fc74acdeaf6a 100644 (file)
@@ -1,6 +1,10 @@
 #ifndef __IRQ_H
 #define __IRQ_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 static inline unsigned int irq_getie(void)
 {
        unsigned int ie;
@@ -32,4 +36,8 @@ static inline unsigned int irq_pending(void)
        return pending;
 }
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __IRQ_H */
index 95234d258a1d874d0d46ae0df51e27ed25b487bb..49ac6ffe6d69b17d1697553cad0d307d0d457cda 100644 (file)
@@ -1,6 +1,10 @@
 #ifndef __LIMITS_H
 #define __LIMITS_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define ULONG_MAX 0xffffffff
 
 #define UINT_MAX 0xffffffff
@@ -15,4 +19,8 @@
 
 #define CHAR_BIT 8
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __LIMITS_H */
index c4246c14d4389d5c2e86a7036bac72bf4b2c2ea5..a63e846bc7a11ec542daf0bd89692edcec5f6bc6 100644 (file)
@@ -1,6 +1,10 @@
 #ifndef __SETJMP_H
 #define __SETJMP_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define _JBLEN 19
 
 typedef        int jmp_buf[_JBLEN];
@@ -8,5 +12,8 @@ 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 */
index 1d15836a8d7316faefc797266404bb0528f398a9..6df509304bb9f8778f75051a6c83cc9e4bc6ea77 100644 (file)
@@ -3,6 +3,10 @@
 
 #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))
@@ -13,4 +17,8 @@ int vsnprintf(char *buf, size_t size, const char *fmt, va_list args);
 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 */
index 6f00c4fa7b435a9339ce421dad7862dc5bdb9028..d1afa95ec9322aca02074844c12a190f7470f64a 100644 (file)
@@ -1,6 +1,10 @@
 #ifndef __STDDEF_H
 #define __STDDEF_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #ifdef __cplusplus
 #define NULL 0
 #else
@@ -12,4 +16,8 @@ typedef long ptrdiff_t;
 
 #define offsetof(s,m) (size_t)&(((s *)0)->m)
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __STDDEF_H */
index 89f8af386f08072b28b7e7fe7d2423b8efc2a0db..fadee90e7f6a6c60efc2378c24a900579645b755 100644 (file)
@@ -1,6 +1,10 @@
 #ifndef __STDINT_H
 #define __STDINT_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef unsigned int uintptr_t;
 
 typedef unsigned long long uint64_t;
@@ -22,4 +26,8 @@ typedef char int8_t;
 #define INT32_C(v) v
 #define UINT32_C(v) v##U
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __STDINT_H */
index 91f59d7adee5a5e13aa35c0cbcdf1467c5428637..5e872d64e4956c2bd751e12154404f3562bd0f74 100644 (file)
@@ -3,6 +3,10 @@
 
 #include <stddef.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 int putchar(int c);
 int puts(const char *s);
 
@@ -66,5 +70,8 @@ int fclose(FILE *fp);
 int fseek(FILE *stream, long offset, int whence);
 long ftell(FILE *stream);
 
+#ifdef __cplusplus
+}
+#endif
 
 #endif /* __STDIO_H */
index 94cde3030b44f502251bf036e2cafff46e1b5ff7..64ddabfd2fb7c6d47133f83c9cfb87b7e097d55d 100644 (file)
 
 #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 */
@@ -72,4 +76,8 @@ void *malloc(size_t size);
 void free(void *ptr);
 void *realloc(void *ptr, size_t size);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __STDLIB_H */
index f997a007a9a413868a0ac32b1a50aa3eeef2c1ec..9a4c22fede63f140c8791c907eaf3a2a635d15e7 100644 (file)
 
 #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);
@@ -43,4 +47,8 @@ void *memchr(const void *s, int c, size_t n);
 
 char *strerror(int errnum);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __STRING_H */
index fbdd78c2df82184294ec25492fd92a16c7519a17..7ec2cdedf72237d6ee8025c0b1e18d804cd6dbcb 100644 (file)
@@ -1,9 +1,15 @@
 #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 */
index 91546255fb29b2db510487b8ed7b83530b5cd6b1..e33e26f5f8f9345f061fbf501209c0385b3cc70c 100644 (file)
@@ -1,6 +1,10 @@
 #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);
@@ -8,4 +12,8 @@ void timer_set_counter(unsigned int value);
 void timer_set_reload(unsigned int value);
 void busy_wait(unsigned int ms);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __TIMER_H */
index 86c61a841ebe2b94076f2cc967c31420fbd17757..3d8a4fcf4d104ef1bbe16a406fea288cf69d76a1 100644 (file)
@@ -1,6 +1,10 @@
 #ifndef __UART_H
 #define __UART_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 void uart_init(void);
 void uart_isr(void);
 void uart_sync(void);
@@ -9,4 +13,8 @@ void uart_write(char c);
 char uart_read(void);
 int uart_read_nonblock(void);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif