* the output location, with the size indicated in the function name, in little
* endian format. A pointer to the input location directly following the bytes
* read is returned. */
-static inline const u8 *get_u8(const u8 *p, u8 *res)
+static inline const void *
+get_u8(const void *p, u8 *res)
{
- *res = *p;
+ *res = *(const u8*)p;
return p + 1;
}
-
-static inline const u8 *get_u16(const u8 *p, u16 *res)
+static inline const void *
+get_u16(const void *p, u16 *res)
{
- *res = le16_to_cpu(*(u16*)p);
+ *res = le16_to_cpu(*(const u16*)p);
return p + 2;
}
-static inline const u8 *get_u32(const u8 *p, u32 *res)
+static inline const void *
+get_u32(const void *p, u32 *res)
{
- *res = le32_to_cpu(*(u32*)p);
+ *res = le32_to_cpu(*(const u32*)p);
return p + 4;
}
-static inline const u8 *get_u56(const u8 *p, u64 *res)
+static inline const void *
+get_u56(const void *p, u64 *res)
{
- *res = le64_to_cpu(*(u64*)p) & 0x00ffffffffffffff;
+ *res = le64_to_cpu(*(const u64*)p) & 0x00ffffffffffffff;
return p + 7;
}
-static inline const u8 *get_u64(const u8 *p, u64 *res)
+static inline const void *
+get_u64(const void *p, u64 *res)
{
- *res = le64_to_cpu(*(u64*)p);
+ *res = le64_to_cpu(*(const u64*)p);
return p + 8;
}
* location in little-endian format as the data type indicated in the function
* name, and a pointer to the output location directory following the bytes
* written is returned. */
-static inline u8 *put_u8(u8 *res, u8 val)
+static inline void *
+put_u8(void *res, u8 val)
{
- *res = val;
+ *(u8*)res = val;
return res + 1;
}
-static inline u8 *put_u16(u8 *res, u16 val)
+static inline void *
+put_u16(void *res, u16 val)
{
*(uint16_t*)res = cpu_to_le16(val);
return res + 2;
}
-static inline u8 *put_u32(u8 *res, u32 val)
+static inline void *
+put_u32(void *res, u32 val)
{
*(uint32_t*)res = cpu_to_le32(val);
return res + 4;
}
-static inline u8 *put_u56(u8 *res, u64 val)
+static inline void *
+put_u56(void *res, u64 val)
{
const u8 *__p = (const u8*)&val;
#ifdef WORDS_BIGENDIAN
return res + 7;
}
-static inline u8 *put_u64(u8 *res, u64 val)
+static inline void *
+put_u64(void *res, u64 val)
{
*(u64*)res = cpu_to_le64(val);
return res + 8;
}
-static inline const u8 *get_bytes(const u8 *p, size_t num_bytes, void *res)
+static inline const void *
+get_bytes(const void *p, size_t num_bytes, void *res)
{
memcpy(res, p, num_bytes);
return p + num_bytes;
}
-static inline u8 *put_zeroes(u8 *p, size_t num_bytes)
+static inline void *
+put_zeroes(void *p, size_t num_bytes)
{
return (u8*)memset(p, 0, num_bytes) + num_bytes;
}
-static inline u8 *put_bytes(u8 *p, size_t num_bytes, const void *input)
+static inline void *
+put_bytes(void *p, size_t num_bytes, const void *input)
{
return (u8*)memcpy(p, input, num_bytes) + num_bytes;
}