1 /* Public domain. */ 2 3 #ifndef _LINUX_OVERFLOW_H 4 #define _LINUX_OVERFLOW_H 5 6 #define array_size(x, y) ((x) * (y)) 7 8 #define struct_size(p, member, n) \ 9 (sizeof(*(p)) + ((n) * (sizeof(*(p)->member)))) 10 11 #if defined(__clang__) || (defined(__GNUC__) && __GNUC__ >= 5) 12 #define check_add_overflow(x, y, sum) __builtin_add_overflow(x, y, sum) 13 #endif 14 15 #endif 16