2024-01-25 23:03:58 +05:30
|
|
|
/*
|
|
|
|
* fwrite_le.h
|
|
|
|
*
|
|
|
|
* Author: Intel A80486DX2-66
|
2024-04-26 01:46:39 +05:30
|
|
|
* License: Unlicense
|
2024-01-25 23:03:58 +05:30
|
|
|
*/
|
|
|
|
|
2024-06-25 13:40:59 +05:30
|
|
|
#ifndef _FWRITE_LE_H
|
|
|
|
#define _FWRITE_LE_H
|
|
|
|
|
2024-01-24 22:31:14 +05:30
|
|
|
#include <stdint.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
#define FWRITE_LE_NO_MODIFICATION 0
|
|
|
|
|
|
|
|
#define DETECTED_LITTLE_ENDIAN 0
|
|
|
|
#define DETECTED_BIG_ENDIAN 1
|
|
|
|
#define UNSUPPORTED_ENDIANNESS -1
|
|
|
|
|
2024-06-25 13:40:59 +05:30
|
|
|
#define ORDER_NATIVE_U32 0x01234567
|
|
|
|
#define ORDER_LITTLE_ENDIAN_S4 "\x67\x45\x23\x01"
|
|
|
|
#define ORDER_BIG_ENDIAN_S4 "\x01\x23\x45\x67"
|
|
|
|
#define ifeq_b32_ret(lhs, rhs, value) if (!memcmp(lhs, rhs, 4)) return value;
|
|
|
|
|
2024-01-24 22:31:14 +05:30
|
|
|
int detect_endianness(void);
|
2024-06-25 13:40:59 +05:30
|
|
|
size_t fwrite_le(
|
|
|
|
#if FWRITE_LE_NO_MODIFICATION
|
|
|
|
const
|
|
|
|
#endif
|
|
|
|
void* ptr, size_t size, size_t count, FILE* stream);
|
2024-01-24 22:31:14 +05:30
|
|
|
void reorder_le_be(
|
|
|
|
#if FWRITE_LE_NO_MODIFICATION
|
|
|
|
uint8_t* dest, uint8_t* src,
|
|
|
|
#else
|
|
|
|
uint8_t* bytes,
|
|
|
|
#endif
|
|
|
|
size_t count, size_t step);
|
|
|
|
|
|
|
|
#endif /* _FWRITE_LE_H */
|