dingusppc/memreadwrite.h

23 lines
772 B
C
Raw Normal View History

#ifndef MEM_READ_WRITE_H
#define MEM_READ_WRITE_H
/** @file Set of macros for accessing integers of various sizes and endianness
in host memory.
*/
/* read a unaligned big-endian WORD (16bit) */
2020-01-06 02:46:23 +00:00
#define READ_WORD_BE(addr) (((addr)[0] << 8) | (addr)[1])
/* read a unaligned big-endian DWORD (32bit) */
#define READ_DWORD_BE(addr) (((addr)[0] << 24) | ((addr)[1] << 16) | \
2020-01-06 02:46:23 +00:00
((addr)[2] << 8) | (addr)[3])
/* read a unaligned little-endian WORD (16bit) */
#define READ_WORD_LE(addr) (((addr)[1] << 8) | (ptr)[0])
/* read a unaligned little-endian DWORD (32bit) */
#define READ_DWORD_LE(addr) (((addr)[3] << 24) | ((addr)[2] << 16) | \
2020-01-06 02:46:23 +00:00
((addr)[1] << 8) | (addr)[0])
#endif /* MEM_READ_WRITE_H */