Module Name: src Committed By: joerg Date: Sat Dec 25 22:30:52 UTC 2010
Modified Files: src/sys/sys: cdefs.h Log Message: Rename __BEGIN_PUBLIC / __BEGIN_HIDDEN to __BEGIN_PUBLIC_DECLS / __BEGIN_HIDDEN_DECLS and corresponding __END_* macros. Push the extern "C" logic into __BEGIN_PUBLIC_DECLS / __BEGIN_HIDDEN_DECLS to make them easier to use in header files used by C++. To generate a diff of this commit: cvs rdiff -u -r1.80 -r1.81 src/sys/sys/cdefs.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/sys/cdefs.h diff -u src/sys/sys/cdefs.h:1.80 src/sys/sys/cdefs.h:1.81 --- src/sys/sys/cdefs.h:1.80 Sat Aug 7 21:03:18 2010 +++ src/sys/sys/cdefs.h Sat Dec 25 22:30:52 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: cdefs.h,v 1.80 2010/08/07 21:03:18 joerg Exp $ */ +/* $NetBSD: cdefs.h,v 1.81 2010/12/25 22:30:52 joerg Exp $ */ /* * Copyright (c) 1991, 1993 @@ -218,32 +218,36 @@ #define __used __unused #endif +#if defined(__cplusplus) +#define __BEGIN_EXTERN_C extern "C" { +#define __END_EXTERN_C } +#define __static_cast(x,y) static_cast<x>(y) +#else +#define __BEGIN_EXTERN_C +#define __END_EXTERN_C +#define __static_cast(x,y) (x)y +#endif + #if __GNUC_PREREQ__(4, 0) # define __dso_public __attribute__((__visibility__("default"))) # define __dso_hidden __attribute__((__visibility__("hidden"))) -# define __BEGIN_PUBLIC _Pragma("GCC visibility push(default)") -# define __END_PUBLIC _Pragma("GCC visibility pop") -# define __BEGIN_HIDDEN _Pragma("GCC visibility push(hidden)") -# define __END_HIDDEN _Pragma("GCC visibility pop") +# define __BEGIN_PUBLIC_DECLS \ + _Pragma("GCC visibility push(default)") __BEGIN_EXTERN_C +# define __END_PUBLIC_DECLS __END_EXTERN_C _Pragma("GCC visibility pop") +# define __BEGIN_HIDDEN_DECLS \ + _Pragma("GCC visibility push(hidden)") __BEGIN_EXTERN_C +# define __END_HIDDEN_DECLS __END_EXTERN_C _Pragma("GCC visibility pop") #else # define __dso_public # define __dso_hidden -# define __BEGIN_PUBLIC -# define __END_PUBLIC -# define __BEGIN_HIDDEN -# define __END_HIDDEN +# define __BEGIN_PUBLIC_DECLS __BEGIN_EXTERN_C +# define __END_PUBLIC_DECLS __END_EXTERN_C +# define __BEGIN_HIDDEN_DECLS __BEGIN_EXTERN_C +# define __END_HIDDEN_DECLS __END_EXTERN_C #endif - -#if defined(__cplusplus) -#define __BEGIN_DECLS __BEGIN_PUBLIC extern "C" { -#define __END_DECLS } __END_PUBLIC -#define __static_cast(x,y) static_cast<x>(y) -#else -#define __BEGIN_DECLS __BEGIN_PUBLIC -#define __END_DECLS __END_PUBLIC -#define __static_cast(x,y) (x)y -#endif +#define __BEGIN_DECLS __BEGIN_PUBLIC_DECLS +#define __END_DECLS __END_PUBLIC_DECLS /* * Non-static C99 inline functions are optional bodies. They don't