diff options
author | Bernd Schubert <bschubert@ddn.com> | 2025-04-15 22:03:09 +0200 |
---|---|---|
committer | Bernd Schubert <bernd@bsbernd.com> | 2025-05-21 13:44:17 +0200 |
commit | 9925b6e7548d65696f745732617d25481b76acbe (patch) | |
tree | 1cabf2dd82e927a7665931b345ef6f175101bdb4 | |
parent | c27bbcec3d4ef6cbb279d589d2bf73dc595eb51e (diff) | |
download | libfuse-9925b6e7548d65696f745732617d25481b76acbe.tar.gz |
Add container_of and ROUND_UP macros
Needed by follow up commits. container_of is actually
just moved/consolidated to util.h.
Signed-off-by: Bernd Schubert <bschubert@ddn.com>
(cherry picked from commit c5a032b3410d7225ac0355355faa63565a209943)
-rw-r--r-- | lib/fuse.c | 4 | ||||
-rw-r--r-- | lib/fuse_lowlevel.c | 4 | ||||
-rw-r--r-- | lib/util.h | 6 |
3 files changed, 6 insertions, 8 deletions
@@ -92,10 +92,6 @@ struct node_table { size_t split; }; -#define container_of(ptr, type, member) ({ \ - const typeof( ((type *)0)->member ) *__mptr = (ptr); \ - (type *)( (char *)__mptr - offsetof(type,member) );}) - #define list_entry(ptr, type, member) \ container_of(ptr, type, member) diff --git a/lib/fuse_lowlevel.c b/lib/fuse_lowlevel.c index 9ee88b1..cb046aa 100644 --- a/lib/fuse_lowlevel.c +++ b/lib/fuse_lowlevel.c @@ -44,10 +44,6 @@ #define PARAM(inarg) (((char *)(inarg)) + sizeof(*(inarg))) #define OFFSET_MAX 0x7fffffffffffffffLL -#define container_of(ptr, type, member) ({ \ - const typeof( ((type *)0)->member ) *__mptr = (ptr); \ - (type *)( (char *)__mptr - offsetof(type,member) );}) - struct fuse_pollhandle { uint64_t kh; struct fuse_session *se; @@ -30,4 +30,10 @@ static inline uint64_t fuse_higher_32_bits(uint64_t nr) #define FUSE_VAR_UNUSED(var) (__attribute__((unused)) var) #endif +#define container_of(ptr, type, member) \ + ({ \ + unsigned long __mptr = (unsigned long)(ptr); \ + ((type *)(__mptr - offsetof(type, member))); \ + }) + #endif |