]> granicus.if.org Git - strace/blobdiff - macros.h
tests: move F_OFD_SETLK* checks from fcntl64.c to fcntl-common.c
[strace] / macros.h
index 222a852d71a29a3a81c0ca5a7fb26802a53e9026..f5334efbe6ec8e3f7c0672451749d1a5e4417b5f 100644 (file)
--- a/macros.h
+++ b/macros.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001-2017 The strace developers.
+ * Copyright (c) 2001-2018 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
 #ifndef STRACE_MACROS_H
 #define STRACE_MACROS_H
 
+#include <stdbool.h>
+#include <sys/types.h>
+
 #include "gcc_compat.h"
 
 #define ARRAY_SIZE(a_) (sizeof(a_) / sizeof((a_)[0]) + MUST_BE_ARRAY(a_))
 
+#define ARRSZ_PAIR(a_) a_, ARRAY_SIZE(a_)
+
 #define STRINGIFY(...)         #__VA_ARGS__
 #define STRINGIFY_VAL(...)     STRINGIFY(__VA_ARGS__)
 
        (offsetof(type_, member_) + sizeof(((type_ *)0)->member_))
 #endif
 
+static inline bool
+is_filled(const char *ptr, char fill, size_t size)
+{
+       while (size--)
+               if (*ptr++ != fill)
+                       return false;
+
+       return true;
+}
+
+#define IS_ARRAY_ZERO(arr_)    \
+       is_filled((const char *) (arr_), 0, sizeof(arr_) + MUST_BE_ARRAY(arr_))
+
 #endif /* !STRACE_MACROS_H */