X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fbuffer_io.h;h=4a247ba5f4da9504ad89a74f8c5fd5e618a38623;hb=28fd72017ded230c4a0e4efdf24f2e2e55ba9f36;hp=9dd88a01a62a79bca07dacd41c80f1660ad763e5;hpb=fea0ee9f10fbcb85ff56ca06510e96186a7611ae;p=wimlib diff --git a/src/buffer_io.h b/src/buffer_io.h index 9dd88a01..4a247ba5 100644 --- a/src/buffer_io.h +++ b/src/buffer_io.h @@ -20,38 +20,42 @@ * 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; } @@ -61,25 +65,29 @@ static inline const u8 *get_u64(const u8 *p, u64 *res) * 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 @@ -96,25 +104,29 @@ static inline u8 *put_u56(u8 *res, u64 val) 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; + return memset(p, 0, num_bytes) + num_bytes; } -static inline u8 *put_bytes(u8 *p, size_t num_bytes, const u8 *input) +static inline void * +put_bytes(void *p, size_t num_bytes, const void *input) { - return (u8*)memcpy(p, input, num_bytes) + num_bytes; + return memcpy(p, input, num_bytes) + num_bytes; } #endif /* _WIMLIB_BUFFER_IO_H */