Clean up some compilation warnings for VxWorks
[yaffs2.git] / yaffs_endian.h
index d37bc50a7e5a8538d5ac1d2c8b24bad295a4a70a..e2fc602edf9c4da545e651f053d66963175a80ec 100644 (file)
@@ -29,19 +29,22 @@ static inline u32 swap_u32(u32 val)
 #define swap_s32(val) \
        (s32)(swap_u32((u32)(val)))
 
-static inline Y_LOFF_T swap_loff_t(Y_LOFF_T lval)
+static inline loff_t swap_loff_t(loff_t lval)
 {
-       u32 vall = swap_u32((u32) (lval & 0xffffffff));
+       u32 vall = swap_u32(FSIZE_LOW(lval));
        u32 valh;
 
-       if (sizeof(Y_LOFF_T) == sizeof(u32))
-               return (Y_LOFF_T) vall;
+       if (sizeof(loff_t) == sizeof(u32))
+               return (loff_t) vall;
 
-       valh = swap_u32((u32) ((lval >> 32) & 0xffffffff));
+       valh = swap_u32(FSIZE_HIGH(lval));
 
-       return (Y_LOFF_T)((((u64)vall) << 32) | valh);
+       return FSIZE_COMBINE(vall, valh); /*NB: h and l are swapped. */
 }
 
+
+
+struct yaffs_dev;
 void yaffs_do_endian_s32(struct yaffs_dev *dev, s32 *val);
 void yaffs_do_endian_u32(struct yaffs_dev *dev, u32 *val);
 void yaffs_do_endian_oh(struct yaffs_dev *dev, struct yaffs_obj_hdr *oh);