diff --git a/src/sim/byteswap.hh b/src/sim/byteswap.hh index 2c3517f249..a46f8f5918 100644 --- a/src/sim/byteswap.hh +++ b/src/sim/byteswap.hh @@ -154,6 +154,20 @@ template inline T betoh(T value) {return swap_byte(value);} #error Invalid Endianess #endif +template +inline T htog(T value, ByteOrder guest_byte_order) +{ + return guest_byte_order == BigEndianByteOrder ? + htobe(value) : htole(value); +} + +template +inline T gtoh(T value, ByteOrder guest_byte_order) +{ + return guest_byte_order == BigEndianByteOrder ? + betoh(value) : letoh(value); +} + namespace BigEndianGuest { const ByteOrder GuestByteOrder = BigEndianByteOrder;