extern struct memoryDB db;
#define set_header_word(ut,field,value) \
- dbwrite ((ut), (offsetof(struct dbHeader, field)), \
- ((db.h.field = (value)), (char *)&(db.h.field)), \
- sizeof(afs_int32))
+ ( \
+ (db.h.field) = (value), \
+ dbwrite((ut), ((char *)&(db.h.field) - (char *)&db.h), \
+ ((char *)&(db.h.field)), sizeof(afs_int32)) \
+ )
#define set_word_offset(ut,a,b,offset,value) \
dbwrite ((ut), (a)+(offset), \
extern Date cheaderReadTime; /* time cheader last read in */
-#define set_header_word(tt,field,value) kawrite ((tt), (offsetof(struct kaheader, field)), ((cheader.field = (value)), (char *)&(cheader.field)), sizeof(afs_int32))
+#define set_header_word(tt,field,value) \
+ ( \
+ (cheader.field) = (value), \
+ kawrite((tt), ((char *)&(cheader.field) - (char *)&cheader), \
+ (char *)&(cheader.field), sizeof(afs_int32)) \
+ )
#define inc_header_word(tt,field) kawrite ((tt), (offsetof(struct kaheader, field)), ((cheader.field = (htonl(ntohl(cheader.field)+1))), (char *)&(cheader.field)), sizeof(afs_int32))