X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=container_of%2Fcontainer_of.h;fp=container_of%2Fcontainer_of.h;h=0000000000000000000000000000000000000000;hb=650c775ff00cccd03fc84e7789a03c51d9839004;hp=1f4b18e4426a1c3c0bfc5c47e2a4e807ae7e2a52;hpb=c8acddea39d222312102952e91c32cfe4dd2cea0;p=ccan diff --git a/container_of/container_of.h b/container_of/container_of.h deleted file mode 100644 index 1f4b18e4..00000000 --- a/container_of/container_of.h +++ /dev/null @@ -1,65 +0,0 @@ -#ifndef CCAN_CONTAINER_OF_H -#define CCAN_CONTAINER_OF_H -#include - -#include "config.h" -#include "check_type/check_type.h" - -/** - * container_of - get pointer to enclosing structure - * @member_ptr: pointer to the structure member - * @containing_type: the type this member is within - * @member: the name of this member within the structure. - * - * Given a pointer to a member of a structure, this macro does pointer - * subtraction to return the pointer to the enclosing type. - * - * Example: - * struct info - * { - * int some_other_field; - * struct foo my_foo; - * }; - * - * struct info *foo_to_info(struct foo *foop) - * { - * return container_of(foo, struct info, my_foo); - * } - */ -#define container_of(member_ptr, containing_type, member) \ - ((containing_type *) \ - ((char *)(member_ptr) - offsetof(containing_type, member)) \ - - check_types_match(*(member_ptr), ((containing_type *)0)->member)) - - -/** - * container_of_var - get pointer to enclosing structure using a variable - * @member_ptr: pointer to the structure member - * @var: a pointer to a structure of same type as this member is within - * @member: the name of this member within the structure. - * - * Given a pointer to a member of a structure, this macro does pointer - * subtraction to return the pointer to the enclosing type. - * - * Example: - * struct info - * { - * int some_other_field; - * struct foo my_foo; - * }; - * - * struct info *foo_to_info(struct foo *foop) - * { - * struct info *i = container_of_var(foo, i, my_foo); - * return i; - * } - */ -#ifdef HAVE_TYPEOF -#define container_of_var(member_ptr, var, member) \ - container_of(member_ptr, typeof(*var), member) -#else -#define container_of_var(member_ptr, var, member) \ - ((void *)((char *)(member_ptr) - offsetof(containing_type, member))) -#endif - -#endif /* CCAN_CONTAINER_OF_H */