diff options
Diffstat (limited to 'os/drivers/include/macro_util.h')
| -rw-r--r-- | os/drivers/include/macro_util.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/os/drivers/include/macro_util.h b/os/drivers/include/macro_util.h new file mode 100644 index 00000000..0c447476 --- /dev/null +++ b/os/drivers/include/macro_util.h @@ -0,0 +1,20 @@ +#ifndef __DD_COMMON_H__ +#define __DD_COMMON_H__ + +#include <stddef.h> + +#define Z_STRINGIFY(x) #x +#define STRINGIFY(s) Z_STRINGIFY(s) + +/* concatenate the values of the arguments into one */ +#define _DO_CONCAT(x, y) x ## y +#define _CONCAT(x, y) _DO_CONCAT(x, y) + +#define OFFSETOF(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) + +#define CONTAINER_OF(ptr, type, member) ({ \ + const typeof( ((type *)0)->member ) *__mptr = (ptr); \ + (type *)((char *)__mptr - OFFSETOF(type,member));}) + +#endif/*__DD_COMMON_H__*/ + |
