byteswap.hh (6214:1ec0ec8933ae) byteswap.hh (8561:26593b179f01)
1/*
2 * Copyright (c) 2004 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 153 unchanged lines hidden (view full) ---

162template <typename T> inline T htobe(T value) {return swap_byte(value);}
163template <typename T> inline T betoh(T value) {return swap_byte(value);}
164#else
165 #error Invalid Endianess
166#endif
167
168namespace BigEndianGuest
169{
1/*
2 * Copyright (c) 2004 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 153 unchanged lines hidden (view full) ---

162template <typename T> inline T htobe(T value) {return swap_byte(value);}
163template <typename T> inline T betoh(T value) {return swap_byte(value);}
164#else
165 #error Invalid Endianess
166#endif
167
168namespace BigEndianGuest
169{
170 const bool ByteOrderDiffers = (HostByteOrder != BigEndianByteOrder);
170 const ByteOrder GuestByteOrder = BigEndianByteOrder;
171 template <typename T>
172 inline T gtole(T value) {return betole(value);}
173 template <typename T>
174 inline T letog(T value) {return letobe(value);}
175 template <typename T>
176 inline T gtobe(T value) {return value;}
177 template <typename T>
178 inline T betog(T value) {return value;}
179 template <typename T>
180 inline T htog(T value) {return htobe(value);}
181 template <typename T>
182 inline T gtoh(T value) {return betoh(value);}
183}
184
185namespace LittleEndianGuest
186{
171 template <typename T>
172 inline T gtole(T value) {return betole(value);}
173 template <typename T>
174 inline T letog(T value) {return letobe(value);}
175 template <typename T>
176 inline T gtobe(T value) {return value;}
177 template <typename T>
178 inline T betog(T value) {return value;}
179 template <typename T>
180 inline T htog(T value) {return htobe(value);}
181 template <typename T>
182 inline T gtoh(T value) {return betoh(value);}
183}
184
185namespace LittleEndianGuest
186{
187 const bool ByteOrderDiffers = (HostByteOrder != LittleEndianByteOrder);
187 const ByteOrder GuestByteOrder = LittleEndianByteOrder;
188 template <typename T>
189 inline T gtole(T value) {return value;}
190 template <typename T>
191 inline T letog(T value) {return value;}
192 template <typename T>
193 inline T gtobe(T value) {return letobe(value);}
194 template <typename T>
195 inline T betog(T value) {return betole(value);}
196 template <typename T>
197 inline T htog(T value) {return htole(value);}
198 template <typename T>
199 inline T gtoh(T value) {return letoh(value);}
200}
201#endif // __SIM_BYTE_SWAP_HH__
188 template <typename T>
189 inline T gtole(T value) {return value;}
190 template <typename T>
191 inline T letog(T value) {return value;}
192 template <typename T>
193 inline T gtobe(T value) {return letobe(value);}
194 template <typename T>
195 inline T betog(T value) {return betole(value);}
196 template <typename T>
197 inline T htog(T value) {return htole(value);}
198 template <typename T>
199 inline T gtoh(T value) {return letoh(value);}
200}
201#endif // __SIM_BYTE_SWAP_HH__