Cleans up userspace headers
authorBarret Rhoden <brho@cs.berkeley.edu>
Wed, 13 May 2015 19:51:40 +0000 (15:51 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 15 May 2015 01:35:44 +0000 (21:35 -0400)
They all have a consistent naming for their #defines:
LIBNAME_FILENAME_H.

They all protect their declarations with __{BEGIN,END}_DECLS, which does
the c++ extern C wrapping needed for C++ functions to link against these
libraries.

44 files changed:
user/benchutil/include/alarm.h
user/benchutil/include/measure.h
user/benchutil/include/pvcalarm.h
user/bsd/priv.h
user/iplib/include/icmp.h
user/iplib/include/iplib.h
user/ndblib/include/fcallfmt.h
user/ndblib/include/ndb.h
user/ndblib/ndbhf.h
user/parlib/include/arc.h
user/parlib/include/bitmask.h
user/parlib/include/dtls.h
user/parlib/include/event.h
user/parlib/include/mcs.h
user/parlib/include/net.h
user/parlib/include/parlib.h
user/parlib/include/pool.h
user/parlib/include/printf-ext.h
user/parlib/include/pthread.h
user/parlib/include/rassert.h
user/parlib/include/riscv/arch.h
user/parlib/include/riscv/atomic.h
user/parlib/include/riscv/bitmask.h
user/parlib/include/riscv/vcore.h
user/parlib/include/ros_debug.h
user/parlib/include/slab.h
user/parlib/include/spinlock.h
user/parlib/include/timing.h
user/parlib/include/tsc-compat.h
user/parlib/include/ucq.h
user/parlib/include/uthread.h
user/parlib/include/vcore.h
user/parlib/include/waitfreelist.h
user/parlib/include/x86/arch.h
user/parlib/include/x86/atomic.h
user/parlib/include/x86/bitmask.h
user/parlib/include/x86/vcore.h
user/parlib/include/x86/vcore32.h
user/parlib/include/x86/vcore64.h
user/pthread/futex.h
user/pthread/profalarm.h
user/pthread/pthread.h
user/pthread/semaphore.h
user/utest/include/utest.h

index f664630..dce0770 100644 (file)
  * Don't forget to manage your memory at some (safe) point:
  *     free(waiter); */
 
-#ifndef _ALARM_H
-#define _ALARM_H
+#ifndef BENCHUTIL_ALARM_H
+#define BENCHUTIL_ALARM_H
 
 #include <ros/common.h>
 #include <sys/queue.h>
 #include <spinlock.h>
 #include <event.h>
 
+__BEGIN_DECLS
+
 /* Specifc waiter, per alarm */
 struct alarm_waiter {
        uint64_t                                        wake_up_time;   /* tsc time */
@@ -81,4 +83,6 @@ void alarm_abort_sysc(struct alarm_waiter *awaiter);
 #define ALARM_POISON_TIME 12345
 void print_chain(struct timer_chain *tchain);
 
-#endif /* _ALARM_H */
+__END_DECLS
+
+#endif /* BENCHUTIL_ALARM_H */
index 0393a93..b1a757d 100644 (file)
  * chronological order.  Ultimately, the sample needs to produce a uint64_t
  * (e.g. TSC tick). */
 
+#ifndef BENCHUTIL_MEASURE_H
+#define BENCHUTIL_MEASURE_H
+
+__BEGIN_DECLS
+
 struct sample_stats {
        int (*get_sample)(void **data, int i, int j, uint64_t *sample);
        uint64_t                                        avg_time;
@@ -38,3 +43,7 @@ void print_throughput(void **data, unsigned int nr_steps, uint64_t interval,
                       int nr_i, int nr_j,
                       int (*get_sample)(void **data, int i, int j,
                                         uint64_t *sample));
+
+__END_DECLS
+
+#endif /* BENCHUTIL_MEASURE_H */
index cfd7669..c3dcbc7 100644 (file)
@@ -2,10 +2,12 @@
  * Kevin Klues <klueska@cs.berkeley.edu>
  * See LICENSE for details. */
 
-#ifndef _PVCALARM_H
-#define _PVCALARM_H
+#ifndef BENCHUTIL_PVCALARM_H
+#define BENCHUTIL_PVCALARM_H
 
 #include <stdint.h>
+__BEGIN_DECLS
 
 /* Types of per-vcore alarms that can be set */
 enum {
@@ -27,4 +29,6 @@ int enable_pvcalarms(int policy, uint64_t interval, void (*callback) (void));
 /* Disable the currently active per-vcore alarm service */
 int disable_pvcalarms();
 
-#endif // _PVCALARM_H
+__END_DECLS
+
+#endif /* BENCHUTIL_PVCALARM_H */
index c885c40..82472ac 100644 (file)
@@ -6,6 +6,9 @@
  * modified, propagated, or distributed except according to the terms contained
  * in the LICENSE file.
  */
+#ifndef BSD_PRIV_H
+#define BSD_PRIV_H
+
 #include <parlib.h>
 
 #include <sys/types.h>
@@ -15,6 +18,7 @@
 
 #include <netinet/in.h>
 
+__BEGIN_DECLS
 
 typedef struct Rock Rock;
 
@@ -62,3 +66,7 @@ extern int    _sock_ipattr(const char*);
 extern void    _sock_ingetaddr(Rock*, struct sockaddr_in*, int*, char*);
 
 extern void    _syserrno(void);
+
+__END_DECLS
+
+#endif /* BSD_PRIV_H */
index 22cd370..fc92642 100755 (executable)
@@ -8,6 +8,11 @@
  */
 /* ICMP for IP v4 and v6 */
 
+#ifndef IPLIB_ICMP_H
+#define IPLIB_ICMP_H
+
+__BEGIN_DECLS
+
 enum
 {
        /* Packet Types, icmp v4 (rfc 792) */
@@ -80,3 +85,7 @@ struct icmphdr {
 };
 
 // #define ICMPHDRSZ offsetof(Icmphdr, data[0])
+
+__END_DECLS
+
+#endif /* IPLIB_ICMP_H */
index 27017db..f53fd3c 100755 (executable)
@@ -6,12 +6,13 @@
  * modified, propagated, or distributed except according to the terms contained
  * in the LICENSE file.
  */
-#ifndef ROS_INC_IPLIB_H
-
-#define ROS_INC_IPLIB_H
+#ifndef IPLIB_IPLIB_H
+#define IPLIB_IPLIB_H
 
 #include <ros/common.h>
 
+__BEGIN_DECLS
+
 enum 
 {
        IPaddrlen=      16,
@@ -230,5 +231,6 @@ int listen(char *dir, char *newdir);
 int accept(int ctl, char *dir);
 int reject(int ctl, char *dir, char *cause);
 
+__END_DECLS
 
-#endif /* ROS_INC_IPLIB_H */
+#endif /* IPLIB_IPLIB_H */
index 7a7e59a..ed2e9b6 100755 (executable)
@@ -1,9 +1,11 @@
-#ifndef _NDB_FCALLFMT_H
-#define _NDB_FCALLFMT_H
+#ifndef NDBLIB_FCALLFMT_H
+#define NDBLIB_FCALLFMT_H
 
 #include <printf-ext.h>
 #include <fcall.h>
 
+__BEGIN_DECLS
+
 int printf_fcall(FILE *stream, const struct printf_info *info,
                  const void *const *args);
 int printf_fcall_info(const struct printf_info* info, size_t n, int *argtypes,
@@ -15,4 +17,6 @@ int printf_dir_info(const struct printf_info* info, size_t n, int *argtypes,
 
 int read9pmsg(int, void *, unsigned int);
 
-#endif /* _NDB_FCALLFMT_H */
+__END_DECLS
+
+#endif /* NDBLIB_FCALLFMT_H */
index 1e847ad..15f8897 100755 (executable)
@@ -6,12 +6,13 @@
  * modified, propagated, or distributed except according to the terms contained
  * in the LICENSE file.
  */
-#ifndef ROS_INC_NDB_H
-
-#define ROS_INC_NDB_H
+#ifndef NDBLIB_NDB_H
+#define NDBLIB_NDB_H
 
 #include <fcall.h>
 
+__BEGIN_DECLS
+
 enum
 {
        Ndbalen=        32,     /* max attribute length */
@@ -177,4 +178,6 @@ void _ndbcacheflush(struct ndb *db);
 /* No implementation for this, dumped into a garbage file */
 void setnetmtpt(char *net, int n, char *x);
 
-#endif /* ROS_INC_NDB_H */
+__END_DECLS
+
+#endif /* NDBLIB_NDB_H */
index 53efd74..289af2b 100755 (executable)
@@ -8,6 +8,11 @@
  */
 /* a hash file */
 
+#ifndef NDBLIB_NDBHF_H
+#define NDBLIB_NDBHF_H
+
+__BEGIN_DECLS
+
 struct ndbhf
 {
        struct ndbhf    *next;
@@ -36,3 +41,7 @@ int   _ndbcachesearch(struct ndb *db, struct ndbs *s, char *attr, char *val,
                           struct ndbtuple **t);
 struct ndbtuple* _ndbcacheadd(struct ndb *db, struct ndbs *s, char *attr, char *val,
                              struct ndbtuple *t);
+
+__END_DECLS
+
+#endif /* NDBLIB_NDBHF_H */
index 6edf27a..f3250ce 100644 (file)
@@ -1,10 +1,6 @@
 // Header for Asynch Remote Call, currently only support remote syscalls.
-#ifndef _ARC_H
-#define _ARC_H
-
-#ifdef __cplusplus
-  extern "C" {
-#endif
+#ifndef PARLIB_ARC_H
+#define PARLIB_ARC_H
 
 #include <parlib.h>
 #include <error.h>
@@ -15,6 +11,8 @@
 #include <ros/ring_syscall.h>
 #include <mcs.h>
 
+__BEGIN_DECLS
+
 struct arsc_channel {
        mcs_lock_t aclock;
        syscall_sring_t* ring_page;
@@ -95,8 +93,6 @@ int get_all_desc(async_desc_t** a_desc, syscall_desc_t** s_desc);
 
 syscall_desc_t* arc_call(long int num, ...);
 
-#ifdef __cplusplus
-  }
-#endif
+__END_DECLS
 
-#endif
+#endif /* PARLIB_ARC_H */
index e3aee31..5439b3c 100644 (file)
@@ -3,6 +3,8 @@
 
 #include <arch/bitmask.h>
 
+__BEGIN_DECLS
+
 static inline bool BITMASK_IS_SET_IN_RANGE(uint8_t* m, size_t beg, size_t end)
 {
        for(size_t i=beg; i<end; i++) {
@@ -54,4 +56,6 @@ static inline void CLR_BITMASK_RANGE(uint8_t* m, size_t beg, size_t end)
        }                                                                          \
 }                                                                              
                                                                                
+__END_DECLS
+
 #endif /* PARLIB_BITMASK_H */
index b4e9168..ac91406 100644 (file)
 #include <stdint.h>
 #include <stdlib.h>
 
+__BEGIN_DECLS
+
 #ifndef __GNUC__
   #error "You need to be using gcc to compile this library..."
 #endif 
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 /* Declaration of types needed for dynamically allocatable tls */
 typedef struct dtls_key *dtls_key_t;
 typedef void (*dtls_dtor_t)(void*);
@@ -52,9 +50,6 @@ void *get_dtls(dtls_key_t key);
 /* Destroy all dtls storage associated with the current uthread or vcore. */
 void destroy_dtls();
 
-#ifdef __cplusplus
-}
-#endif
+__END_DECLS
 
 #endif /* PARLIB_DTLS_H */
-
index 934f15a..8702c43 100644 (file)
@@ -5,12 +5,14 @@
  * Userspace utility functions for receiving events and notifications (IPIs).
  * Some are higher level than others; just use what you need. */ 
 
-#ifndef _EVENT_H
-#define _EVENT_H
+#ifndef PARLIB_EVENT_H
+#define PARLIB_EVENT_H
 
 #include <ros/event.h>
 #include <ros/common.h>
 
+__BEGIN_DECLS
+
 /********* Event_q Setup / Registration  ***********/
 struct event_queue *get_big_event_q_raw(void);
 struct event_queue *get_big_event_q(void);
@@ -58,4 +60,6 @@ void ev_we_returned(bool were_handling_remotes);
 /* Debugging */
 void print_ev_msg(struct event_msg *msg);
 
-#endif /* _EVENT_H */
+__END_DECLS
+
+#endif /* PARLIB_EVENT_H */
index 93170e8..bb23d72 100644 (file)
@@ -1,13 +1,11 @@
-#ifndef _MCS_H
-#define _MCS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
+#ifndef PARLIB_MCS_H
+#define PARLIB_MCS_H
 
 #include <vcore.h>
 #include <arch/arch.h>
 
+__BEGIN_DECLS
+
 #define MCS_LOCK_INIT {0}
 #define MCS_QNODE_INIT {0, 0}
 
@@ -113,8 +111,6 @@ void mcs_pdr_fini(struct mcs_pdr_lock *lock);
 void mcs_pdr_lock(struct mcs_pdr_lock *lock);
 void mcs_pdr_unlock(struct mcs_pdr_lock *lock);
 
-#ifdef __cplusplus
-}
-#endif
+__END_DECLS
 
-#endif
+#endif /* PARLIB_MCS_H */
index 34dc71b..0fa928e 100644 (file)
@@ -4,8 +4,10 @@
  *
  * Networking helpers for dealing with the plan 9 interface. */
 
-#ifndef _NET_H
-#define _NET_H
+#ifndef PARLIB_NET_H
+#define PARLIB_NET_H
+
+__BEGIN_DECLS
 
 static inline int snprintf_overflow(int ret, char *buf, size_t buf_len)
 {
@@ -14,4 +16,6 @@ static inline int snprintf_overflow(int ret, char *buf, size_t buf_len)
 
 int cheap_dial(char *addr, char *local, char *dir, int *cfdp);
 
-#endif /* _NET_H */
+__END_DECLS
+
+#endif /* PARLIB_NET_H */
index 6cd8c50..03599c0 100644 (file)
@@ -4,8 +4,8 @@
 // and is intended to be linked into all user-mode applications
 // (NOT the kernel or boot loader).
 
-#ifndef ROS_INC_PARLIB_H
-#define ROS_INC_PARLIB_H 1
+#ifndef PARLIB_PARLIB_H
+#define PARLIB_PARLIB_H
 
 #ifndef __ASSEMBLER__
 
 #include <errno.h>
 #include <ros_debug.h>
 
+__BEGIN_DECLS
+
 enum {
        PG_RDONLY = 4,
        PG_RDWR   = 6,
 };
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 ssize_t     sys_cputs(const uint8_t *s, size_t len);
 uint16_t    sys_cgetc(void);
 int         sys_null(void);
@@ -72,10 +70,8 @@ struct sigdata *alloc_sigdata();
 void free_sigdata(struct sigdata *sigdata);
 void trigger_posix_signal(int sig_nr, struct siginfo *info, void *aux);
 
-#ifdef __cplusplus
-}
-#endif
+__END_DECLS
 
 #endif // !ASSEMBLER
 
-#endif // !ROS_INC_PARLIB_H
+#endif /* PARLIB_PARLIB_H */
index 2508974..fb57753 100644 (file)
@@ -1,11 +1,13 @@
 /* See COPYRIGHT for copyright information. */
 /* Kevin Klues <klueska@cs.berkeley.edu>       */
 
-#ifndef ROS_INC_POOL_H
-#define ROS_INC_POOL_H
+#ifndef PARLIB_POOL_H
+#define PARLIB_POOL_H
 
 #include <string.h>
 
+__BEGIN_DECLS
+
 #define POOL_TYPE_DEFINE(_type, p, sz)                                                \
 typedef struct struct_##p {                                                             \
        uint32_t size;                                                         \
@@ -72,4 +74,6 @@ typedef struct struct_##p {
 #define POOL_SIZE(p) ((p)->free)
 #define POOL_MAX_SIZE(p) ((p)->size)
 
-#endif //ROS_INC_POOL_H
+__END_DECLS
+
+#endif /* PARLIB_POOL_H */
index d4c96f0..70d6ff1 100644 (file)
@@ -9,12 +9,14 @@
  *             register_printf_specifier('i', printf_ipaddr, printf_ipaddr_info);
  */
 
-#ifndef _PRINTF_EXT_H
-#define _PRINTF_EXT_H
+#ifndef PARLIB_PRINTF_EXT_H
+#define PARLIB_PRINTF_EXT_H
 
 #include <ros/common.h>
 #include <printf.h>
 
+__BEGIN_DECLS
+
 /* Commonly used as %i, will print out a 16-byte plan9 IP address */
 int printf_ipaddr(FILE *stream, const struct printf_info *info,
                   const void *const *args);
@@ -39,4 +41,6 @@ int printf_errstr(FILE *stream, const struct printf_info *info,
 int printf_errstr_info(const struct printf_info* info, size_t n, int *argtypes,
                        int *size);
 
-#endif /* _PRINTF_EXT_H */
+__END_DECLS
+
+#endif /* PARLIB_PRINTF_EXT_H */
index 0fb4fc9..e86533d 100644 (file)
@@ -1,6 +1,5 @@
-
-#ifndef _PTHREAD_H
-#define _PTHREAD_H    1
+#ifndef PARLIB_PTHREAD_H
+#define PARLIB_PTHREAD_H    1
 
 // Pthreads are not directly supported by parlib alone
 // this header file is necessary, however, to override 
@@ -9,4 +8,4 @@
 // If you build and install the ROS compatible pthread
 // library, this header file will be overwritten
 
-#endif  /* pthread.h */
+#endif /* PARLIB_PTHREAD_H */
index 72e231c..70cb6f0 100644 (file)
@@ -1,11 +1,14 @@
 /* See COPYRIGHT for copyright information. */
 
-#ifndef ROS_INC_ASSERT_H
-#define ROS_INC_ASSERT_H
+#ifndef PARLIB_RASSERT_H
+#define PARLIB_RASSERT_H
 
 #include <assert.h>
 #include <vcore.h>
 #include <ros_debug.h>
+
+__BEGIN_DECLS
+
 #undef assert
 
 void _warn(const char*, int, const char*, ...);
@@ -27,4 +30,6 @@ void _panic(const char*, int, const char*, ...) __attribute__((noreturn));
 // static_assert(x) will generate a compile-time error if 'x' is false.
 #define static_assert(x)       switch (x) case 0: case (x):
 
-#endif /* !ROS_INC_ASSERT_H */
+__END_DECLS
+
+#endif /* PARLIB_RASSERT_H */
index 7dd0c51..44a1b8a 100644 (file)
@@ -5,6 +5,8 @@
 #include <ros/trapframe.h>
 #include <ros/arch/arch.h>
 
+__BEGIN_DECLS
+
 #define internal_function
 
 #define ARCH_CL_SIZE 64
@@ -90,4 +92,6 @@ static inline void restore_fp_state(struct ancillary_state* silly)
        write_fsr(fsr);
 }
 
+__END_DECLS
+
 #endif /* PARLIB_ARCH_H */
index 8ef54db..36f7ba3 100644 (file)
@@ -5,6 +5,8 @@
 #include <ros/atomic.h>
 #include <ros/arch/membar.h>
 
+__BEGIN_DECLS
+
 #define SPINLOCK_INITIALIZER {0}
 
 static inline void atomic_init(atomic_t *number, long val);
@@ -114,4 +116,6 @@ static inline void atomic_or_int(volatile int *number, int mask)
        __sync_fetch_and_or(number, mask);
 }
 
-#endif /* !PARLIB_ARCH_ATOMIC_H */
+__END_DECLS
+
+#endif /* PARLIB_ARCH_ATOMIC_H */
index f5aae39..9fcbc9f 100644 (file)
@@ -7,6 +7,8 @@
 #include <arch/atomic.h>
 #include <stdio.h>
 
+__BEGIN_DECLS
+
 #define DECL_BITMASK(name, size) \
        uint8_t (name)[BYTES_FOR_BITMASK((size))]
 
@@ -89,4 +91,6 @@ static inline bool BITMASK_IS_FULL(uint8_t* map, size_t size)
        return TRUE;
 }
 
+__END_DECLS
+
 #endif /* PARLIB_ARCH_BITMASK_H */
index a6605d6..e797d93 100644 (file)
@@ -9,6 +9,8 @@
 #include <assert.h>
 #include <sys/vcore-tls.h>
 
+__BEGIN_DECLS
+
 #ifdef __riscv64
 # define REG_L "ld"
 # define REG_S "sd"
@@ -136,4 +138,6 @@ static unsigned long __arch_refl_get_aux(struct user_context *ctx)
        return 0;
 }
 
+__END_DECLS
+
 #endif /* PARLIB_ARCH_VCORE_H */
index 6ab66c4..2f6dcab 100644 (file)
@@ -1,13 +1,11 @@
-#ifndef PARLIB_INC_DEBUG_H
-#define PARLIB_INC_DEBUG_H
+#ifndef PARLIB_ROS_DEBUG_H
+#define PARLIB_ROS_DEBUG_H
 
 #include <ros/common.h>
 #include <stdio.h>
 #include <stdarg.h>
 
-#ifdef __cplusplus
-extern "C" {
-#endif
+__BEGIN_DECLS
 
 void ros_debugfmt(void (*putch)(int, void**), void **putdat, const char *fmt, ...);
 void ros_vdebugfmt(void (*putch)(int, void**), void **putdat, const char *fmt, va_list);
@@ -28,8 +26,6 @@ void __print_func_exit(const char *func, const char *file);
 #define print_func_entry() __print_func_entry(__FUNCTION__, __FILE__)
 #define print_func_exit() __print_func_exit(__FUNCTION__, __FILE__)
 
-#ifdef __cplusplus
-}
-#endif
+__END_DECLS
 
-#endif /* !PARLIB_INC_DEBUG_H */
+#endif /* PARLIB_ROS_DEBUG_H */
index 5f428a1..9aa9080 100644 (file)
@@ -36,6 +36,8 @@
 #include <arch/atomic.h>
 #include <spinlock.h>
 
+__BEGIN_DECLS
+
 /* Back in the day, their cutoff for "large objects" was 512B, based on
  * measurements and on not wanting more than 1/8 of internal fragmentation. */
 #define NUM_BUF_PER_SLAB 8
@@ -104,4 +106,6 @@ void kmem_cache_reap(struct kmem_cache *cp);
 void print_kmem_cache(struct kmem_cache *kc);
 void print_kmem_slab(struct kmem_slab *slab);
 
+__END_DECLS
+
 #endif /* PARLIB_SLAB_H */
index 38e9a6b..90a1cb0 100644 (file)
  * See COPYING.LESSER for details on the GNU Lesser General Public License.
  * See COPYING for details on the GNU General Public License. */
 
-#ifndef SPINLOCK_H
-#define SPINLOCK_H
+#ifndef PARLIB_SPINLOCK_H
+#define PARLIB_SPINLOCK_H
 
 #include <arch/arch.h>
 #include <arch/atomic.h>
 
-#ifdef __cplusplus
-extern "C" {
-#endif
+__BEGIN_DECLS
 
 #define SPINLOCK_INITIALIZER {0}
 
@@ -77,9 +75,6 @@ void spin_pdr_init(struct spin_pdr_lock *pdr_lock);
 void spin_pdr_lock(struct spin_pdr_lock *pdr_lock);
 void spin_pdr_unlock(struct spin_pdr_lock *pdr_lock);
 
-#ifdef __cplusplus
-}
-#endif
-
+__END_DECLS
 
-#endif // SPINLOCK_H
+#endif /* PARLIB_SPINLOCK_H */
index 69b224f..a4cea11 100644 (file)
@@ -1,8 +1,11 @@
-#ifndef __PARLIB_TIMING_H__
-#define __PARLIB_TIMING_H__
+#ifndef PARLIB_TIMING_H
+#define PARLIB_TIMING_H
+
 #include <stdint.h>
 #include <tsc-compat.h>
 
+__BEGIN_DECLS
+
 void udelay(uint64_t usec);
 void ndelay(uint64_t nsec);
 uint64_t udiff(uint64_t begin, uint64_t end);
@@ -18,4 +21,6 @@ uint64_t msec2tsc(uint64_t msec);
 uint64_t usec2tsc(uint64_t usec);
 uint64_t nsec2tsc(uint64_t nsec);
 
-#endif /* __PARLIB_TIMING_H__ */
+__END_DECLS
+
+#endif /* PARLIB_TIMING_H */
index 36fee32..78bd9d4 100644 (file)
@@ -8,17 +8,15 @@
  * changes, this will need to change as well.  You'll know when this doesn't
  * compile (say, if timing_overhead moves).  */
 
-#ifndef _TSC_COMPAT_H
-#define _TSC_COMPAT_H
+#ifndef PARLIB_TSC_COMPAT_H
+#define PARLIB_TSC_COMPAT_H
 
 #if defined(__i386__) || defined(__x86_64__)
 #else
 #error "Platform not supported for read_tsc()"
 #endif
 
-#ifdef __cplusplus
-       extern "C" {
-#endif
+__BEGIN_DECLS
 
 #ifdef __ros__
 
@@ -173,8 +171,6 @@ static inline uint64_t nsec2tsc(uint64_t nsec)
 
 #endif /* ! _ros_ */
 
-#ifdef __cplusplus
-       }
-#endif
+__END_DECLS
 
-#endif /* _TSC_COMPAT_H */
+#endif /* PARLIB_TSC_COMPAT_H */
index 066c49a..1387cec 100644 (file)
@@ -5,15 +5,19 @@
  * Unbounded concurrent queues, user side.  Check k/i/r/ucq.h or the
  * Documentation for more info. */
 
-#ifndef _UCQ_H
-#define _UCQ_H
+#ifndef PARLIB_UCQ_H
+#define PARLIB_UCQ_H
 
 #include <ros/ucq.h>
 
+__BEGIN_DECLS
+
 void ucq_init_raw(struct ucq *ucq, uintptr_t pg1, uintptr_t pg2);
 void ucq_init(struct ucq *ucq);
 void ucq_free_pgs(struct ucq *ucq);
 int get_ucq_msg(struct ucq *ucq, struct event_msg *msg);
 bool ucq_is_empty(struct ucq *ucq);
 
-#endif /* _UCQ_H */
+__END_DECLS
+
+#endif /* PARLIB_UCQ_H */
index 9d6b94c..33c2a6b 100644 (file)
@@ -1,9 +1,11 @@
-#ifndef _UTHREAD_H
-#define _UTHREAD_H
+#ifndef PARLIB_UTHREAD_H
+#define PARLIB_UTHREAD_H
 
 #include <vcore.h>
 #include <ros/syscall.h>
 
+__BEGIN_DECLS
+
 #define UTHREAD_DONT_MIGRATE           0x001 /* don't move to another vcore */
 #define UTHREAD_SAVED                          0x002 /* uthread's state is in utf */
 #define UTHREAD_FPSAVED                                0x004 /* uthread's FP state is in uth->as */
@@ -126,4 +128,6 @@ static inline struct uthread **get_cur_uth_addr(uint32_t vcoreid)
        return (struct uthread**)(vc_tls_desc + cur_uth_off);
 }
 
-#endif /* _UTHREAD_H */
+__END_DECLS
+
+#endif /* PARLIB_UTHREAD_H */
index 0efaa7f..9c6250f 100644 (file)
@@ -1,9 +1,5 @@
-#ifndef _VCORE_H
-#define _VCORE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
+#ifndef PARLIB_VCORE_H
+#define PARLIB_VCORE_H
 
 #include <arch/vcore.h>
 #include <arch/atomic.h>
@@ -11,6 +7,8 @@ extern "C" {
 #include <string.h>
 #include <timing.h>
 
+__BEGIN_DECLS
+
 /*****************************************************************************/
 /* TODO: This is a complete hack, but necessary for vcore stuff to work for now
  * The issue is that exit sometimes calls sys_yield(), and we can't recover from
@@ -311,8 +309,6 @@ static inline uint64_t vcore_account_uptime_nsec(uint32_t vcoreid)
        val;                                                                       \
 })
 
-#ifdef __cplusplus
-}
-#endif
+__END_DECLS
 
-#endif
+#endif /* PARLIB_VCORE_H */
index 926e551..163cb7d 100644 (file)
@@ -7,11 +7,13 @@
  * 
  */
 
-#ifndef _PARLIB_WAITFREELIST_H
-#define _PARLIB_WAITFREELIST_H
+#ifndef PARLIB_WAITFREELIST_H
+#define PARLIB_WAITFREELIST_H
 
 #include <string.h>
 
+__BEGIN_DECLS
+
 struct wfl_entry {
   struct wfl_entry *next;
   void *data;
@@ -24,10 +26,6 @@ struct wfl {
 
 #define WFL_INITIALIZER(list) {&(list).first, {0, 0}}
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 void wfl_init(struct wfl *list);
 void wfl_destroy(struct wfl *list);
 size_t wfl_capacity(struct wfl *list);
@@ -43,8 +41,6 @@ size_t wfl_remove_all(struct wfl *list, void *data);
        _p = _p->next) \
     if (elm)
 
-#ifdef __cplusplus
-}
-#endif
+__END_DECLS
 
-#endif
+#endif /* PARLIB_WAITFREELIST_H */
index 0a2ac82..ac957ab 100644 (file)
@@ -6,6 +6,8 @@
 #include <ros/common.h>
 #include <string.h>
 
+__BEGIN_DECLS
+
 #define ARCH_CL_SIZE 64
 #ifdef __x86_64__
 
@@ -74,4 +76,6 @@ static inline void restore_fp_state(struct ancillary_state *silly)
        asm volatile("fxrstor %0" : : "m"(*silly));
 }
 
+__END_DECLS
+
 #endif /* PARLIB_ARCH_H */
index f2db505..e7925d4 100644 (file)
@@ -4,6 +4,8 @@
 #include <ros/common.h>
 #include <ros/atomic.h>
 
+__BEGIN_DECLS
+
 static inline void atomic_init(atomic_t *number, long val);
 static inline long atomic_read(atomic_t *number);
 static inline void atomic_set(atomic_t *number, long val);
@@ -95,4 +97,6 @@ static inline void atomic_orb(volatile uint8_t *number, uint8_t mask)
        __sync_fetch_and_or(number, mask);
 }
 
-#endif /* !PARLIB_ARCH_ATOMIC_H */
+__END_DECLS
+
+#endif /* PARLIB_ARCH_ATOMIC_H */
index 1384bd9..9ed0a4c 100644 (file)
@@ -7,6 +7,8 @@
 #include <arch/atomic.h>
 #include <stdio.h>
 
+__BEGIN_DECLS
+
 #define DECL_BITMASK(name, size) \
        uint8_t (name)[BYTES_FOR_BITMASK((size))]
 
@@ -101,4 +103,6 @@ static inline bool BITMASK_IS_FULL(uint8_t* map, size_t size)
        printf("\n"); \
 }
 
+__END_DECLS
+
 #endif /* PARLIB_ARCH_BITMASK_H */
index 0e715f0..c4ea36d 100644 (file)
@@ -7,4 +7,8 @@
 #include <arch/vcore32.h>
 #endif
 
+__BEGIN_DECLS
+
+__END_DECLS
+
 #endif /* PARLIB_ARCH_VCORE_H */
index d133273..112a2a2 100644 (file)
@@ -12,6 +12,8 @@
 #include <ros/arch/mmu.h>
 #include <sys/vcore-tls.h>
 
+__BEGIN_DECLS
+
 /* Here's how the HW popping works:  It sets up the future stack pointer to
  * have extra stuff after it, and then it pops the registers, then pops the new
  * context's stack pointer.  Then it uses the extra stuff (the new PC is on the
@@ -394,4 +396,6 @@ static unsigned long __arch_refl_get_aux(struct user_context *ctx)
        return ctx->tf.hw_tf.tf_regs.reg_oesp;
 }
 
+__END_DECLS
+
 #endif /* PARLIB_ARCH_VCORE32_H */
index 6155d8d..e9356b9 100644 (file)
@@ -12,6 +12,8 @@
 #include <ros/arch/mmu.h>
 #include <sys/vcore-tls.h>
 
+__BEGIN_DECLS
+
 /* Here's how the HW popping works:  It sets up the future stack pointer to
  * have extra stuff after it, and then it pops the registers, then pops the new
  * context's stack pointer.  Then it uses the extra stuff (the new PC is on the
@@ -443,4 +445,6 @@ static unsigned long __arch_refl_get_aux(struct user_context *ctx)
               ctx->tf.hw_tf.tf_padding4;
 }
 
+__END_DECLS
+
 #endif /* PARLIB_ARCH_VCORE64_H */
index 1badd14..b8588b6 100644 (file)
@@ -1,8 +1,10 @@
-#ifndef _FUTEX_H
-#define _FUTEX_H
+#ifndef PTHREAD_FUTEX_H
+#define PTHREAD_FUTEX_H
 
 #include <sys/time.h>
 
+__BEGIN_DECLS
+
 enum {
        FUTEX_WAIT,
        FUTEX_WAKE
@@ -11,4 +13,6 @@ enum {
 int futex(int *uaddr, int op, int val, const struct timespec *timeout,
           int *uaddr2, int val3);
 
-#endif /* _FUTEX_H */
+__END_DECLS
+
+#endif /* PTHREAD_FUTEX_H */
index d095fd5..27cbe62 100644 (file)
@@ -2,11 +2,14 @@
  * Kevin Klues <klueska@cs.berkeley.edu>
  * See LICENSE for details. */
 
-#ifndef _PROFALARM_H
-#define _PROFALARM_H
+#ifndef PTHREAD_PROFALARM_H
+#define PTHREAD_PROFALARM_H
+
+__BEGIN_DECLS
 
 void enable_profalarm(int hz);
 void disable_profalarm();
 
-#endif /* _PROFALARM_H */
+__END_DECLS
 
+#endif /* PTHREAD_PROFALARM_H */
index 8d336bb..aaada32 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef _PTHREAD_H
-#define _PTHREAD_H
+#ifndef PTHREAD_PTHREAD_H
+#define PTHREAD_PTHREAD_H
 
 #include <sys/queue.h>
 #include <signal.h>
@@ -11,9 +11,7 @@
 /* GNU / POSIX scheduling crap */
 #include <sched.h>
 
-#ifdef __cplusplus
-  extern "C" {
-#endif
+__BEGIN_DECLS
 
 /* Pthread states.  These are mostly examples for other 2LSs */
 #define PTH_CREATED                    1
@@ -273,8 +271,6 @@ extern int pthread_cancel (pthread_t __th);
 void pthread_cleanup_push(void (*routine)(void *), void *arg);
 void pthread_cleanup_pop(int execute);
 
-#ifdef __cplusplus
-  }
-#endif
+__END_DECLS
 
-#endif
+#endif /* PTHREAD_PTHREAD_H */
index 684b458..9dea5e2 100644 (file)
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#ifndef _SEMAPHORE_H
-#define _SEMAPHORE_H
+#ifndef PTHREAD_SEMAPHORE_H
+#define PTHREAD_SEMAPHORE_H
 
 #include <sys/queue.h>
 #include <pthread.h>
 #include <mcs.h>
 
+__BEGIN_DECLS
+
 /* Value returned if `sem_open' failed.  */
 #define SEM_FAILED      ((sem_t *) 0)
 
@@ -44,4 +46,6 @@ extern int sem_trywait (sem_t *__sem);
 extern int sem_post (sem_t *__sem);
 extern int sem_getvalue (sem_t *__restrict __sem, int *__restrict __sval);
 
-#endif /* semaphore.h */
+__END_DECLS
+
+#endif /* PTHREAD_SEMAPHORE_H */
index 10aa164..475b784 100644 (file)
@@ -15,6 +15,8 @@
 #include <timing.h>
 #include <execinfo.h>
 
+__BEGIN_DECLS
+
 /* 
  * Macros for assertions. 
  */
@@ -101,4 +103,6 @@ static int run_utests(char *suite_name, struct utest tests[], int num_tests) {
        printf("<-- END_USERSPACE_%s_TESTS -->\n", suite_name);
 }
 
-#endif // UTEST_UTEST_H
+__END_DECLS
+
+#endif /* UTEST_UTEST_H */