lib*.h: wrap C headers in `extern "C"'
authorBrian Norris <banorris@uci.edu>
Tue, 24 Apr 2012 19:06:21 +0000 (12:06 -0700)
committerBrian Norris <banorris@uci.edu>
Tue, 24 Apr 2012 19:06:21 +0000 (12:06 -0700)
libatomic.h
libthreads.h

index f861445cb0789b547a708150eb598547d59e78d3..33cfa624daed766cf78e2402c1e6d2c28403f0a7 100644 (file)
@@ -1,22 +1,30 @@
 #ifndef __LIBATOMIC_H__
 #define __LIBATOMIC_H__
 
-typedef enum memory_order {
-       memory_order_relaxed,
-       memory_order_consume,
-       memory_order_acquire,
-       memory_order_release,
-       memory_order_acq_rel,
-       memory_order_seq_cst
-} memory_order;
+#ifdef __cplusplus
+extern "C" {
+#endif
 
-typedef struct atomic_object {
-} atomic_int;
+       typedef enum memory_order {
+               memory_order_relaxed,
+               memory_order_consume,
+               memory_order_acquire,
+               memory_order_release,
+               memory_order_acq_rel,
+               memory_order_seq_cst
+       } memory_order;
 
-void atomic_store_explicit(struct atomic_object *obj, int value, memory_order order);
+       typedef struct atomic_object {
+       } atomic_int;
+
+       void atomic_store_explicit(struct atomic_object *obj, int value, memory_order order);
 #define atomic_store(A, B) atomic_store_explicit((A), (B), memory_order_seq_cst)
 
-int atomic_load_explicit(struct atomic_object *obj, memory_order order);
+       int atomic_load_explicit(struct atomic_object *obj, memory_order order);
 #define atomic_load(A) atomic_load_explicit((A), memory_order_seq_cst)
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __LIBATOMIC_H__ */
index b16c96be83dc4aab21b77f46b3579574a861c137..72cc00b8e1532606659d43814de88afe6d0697e0 100644 (file)
@@ -1,16 +1,24 @@
 #ifndef __LIBTHREADS_H__
 #define __LIBTHREADS_H__
 
-typedef int thread_id_t;
-typedef void (*thrd_start_t)();
+#ifdef __cplusplus
+extern "C" {
+#endif
 
-typedef thread_id_t thrd_t;
+       typedef int thread_id_t;
+       typedef void (*thrd_start_t)();
 
-int thrd_create(thrd_t *t, thrd_start_t start_routine, void *arg);
-int thrd_join(thrd_t);
-int thrd_yield(void);
-thrd_t thrd_current(void);
+       typedef thread_id_t thrd_t;
 
-extern void user_main(void);
+       int thrd_create(thrd_t *t, thrd_start_t start_routine, void *arg);
+       int thrd_join(thrd_t);
+       int thrd_yield(void);
+       thrd_t thrd_current(void);
+
+       extern void user_main(void);
+
+#ifdef __cplusplus
+}
+#endif
 
 #endif /* __LIBTHREADS_H__ */