#pragma once #include #include "typecheck.h" #define CONTAINER_OF(PTR, TYPE, MEMBER) ({ \ CHECK_TYPE(__typeof__(((TYPE *)NULL)->MEMBER), *(PTR)); \ (TYPE *)((char *)(PTR) - offsetof(TYPE, MEMBER)); \ })