diff options
Diffstat (limited to 'include/linux/stddef.h')
-rw-r--r-- | include/linux/stddef.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/include/linux/stddef.h b/include/linux/stddef.h index 2181719fd907..998a4ba28eba 100644 --- a/include/linux/stddef.h +++ b/include/linux/stddef.h | |||
@@ -20,12 +20,20 @@ enum { | |||
20 | #endif | 20 | #endif |
21 | 21 | ||
22 | /** | 22 | /** |
23 | * sizeof_field(TYPE, MEMBER) | ||
24 | * | ||
25 | * @TYPE: The structure containing the field of interest | ||
26 | * @MEMBER: The field to return the size of | ||
27 | */ | ||
28 | #define sizeof_field(TYPE, MEMBER) sizeof((((TYPE *)0)->MEMBER)) | ||
29 | |||
30 | /** | ||
23 | * offsetofend(TYPE, MEMBER) | 31 | * offsetofend(TYPE, MEMBER) |
24 | * | 32 | * |
25 | * @TYPE: The type of the structure | 33 | * @TYPE: The type of the structure |
26 | * @MEMBER: The member within the structure to get the end offset of | 34 | * @MEMBER: The member within the structure to get the end offset of |
27 | */ | 35 | */ |
28 | #define offsetofend(TYPE, MEMBER) \ | 36 | #define offsetofend(TYPE, MEMBER) \ |
29 | (offsetof(TYPE, MEMBER) + sizeof(((TYPE *)0)->MEMBER)) | 37 | (offsetof(TYPE, MEMBER) + sizeof_field(TYPE, MEMBER)) |
30 | 38 | ||
31 | #endif | 39 | #endif |