Commit e1f2a6f86906e2dd308a280ab832349eff4fe397

Guillem Jover 2011-05-25T21:27:58

Add new __packed, __aligned and __nonnull attributes

diff --git a/include/bsd/sys/cdefs.h b/include/bsd/sys/cdefs.h
index a1ea034..e91b660 100644
--- a/include/bsd/sys/cdefs.h
+++ b/include/bsd/sys/cdefs.h
@@ -65,6 +65,22 @@
 # endif
 #endif
 
+#ifndef __packed
+# if LIBBSD_GCC_VERSION >= 0x0207
+#  define __packed __attribute__((__packed__))
+# else
+#  define __packed
+# endif
+#endif
+
+#ifndef __aligned
+# if LIBBSD_GCC_VERSION >= 0x0207
+#  define __aligned(x) __attribute__((__aligned__(x)))
+# else
+#  define __aligned(x)
+# endif
+#endif
+
 /* Linux headers define a struct with a member names __unused.
  * Debian bugs: #522773 (linux), #522774 (libc).
  * Disable for now. */
@@ -86,6 +102,14 @@
 # endif
 #endif
 
+#ifndef __nonnull
+# if LIBBSD_GCC_VERSION >= 0x0302
+#  define __nonnull(x) __attribute__((__nonnull__(x)))
+# else
+#  define __nonnull(x)
+# endif
+#endif
+
 #ifndef __bounded__
 # define __bounded__(x, y, z)
 #endif