2014-10-22 15:35:56 +03:00
# ifndef _LINUX_VIRTIO_BYTEORDER_H
# define _LINUX_VIRTIO_BYTEORDER_H
# include <linux/types.h>
# include <uapi/linux/virtio_types.h>
2015-04-24 14:26:24 +02:00
static inline bool virtio_legacy_is_little_endian ( void )
{
# ifdef __LITTLE_ENDIAN
return true ;
# else
return false ;
# endif
}
2014-10-22 15:35:56 +03:00
static inline u16 __virtio16_to_cpu ( bool little_endian , __virtio16 val )
{
if ( little_endian )
return le16_to_cpu ( ( __force __le16 ) val ) ;
else
2015-04-24 14:26:24 +02:00
return be16_to_cpu ( ( __force __be16 ) val ) ;
2014-10-22 15:35:56 +03:00
}
static inline __virtio16 __cpu_to_virtio16 ( bool little_endian , u16 val )
{
if ( little_endian )
return ( __force __virtio16 ) cpu_to_le16 ( val ) ;
else
2015-04-24 14:26:24 +02:00
return ( __force __virtio16 ) cpu_to_be16 ( val ) ;
2014-10-22 15:35:56 +03:00
}
static inline u32 __virtio32_to_cpu ( bool little_endian , __virtio32 val )
{
if ( little_endian )
return le32_to_cpu ( ( __force __le32 ) val ) ;
else
2015-04-24 14:26:24 +02:00
return be32_to_cpu ( ( __force __be32 ) val ) ;
2014-10-22 15:35:56 +03:00
}
static inline __virtio32 __cpu_to_virtio32 ( bool little_endian , u32 val )
{
if ( little_endian )
return ( __force __virtio32 ) cpu_to_le32 ( val ) ;
else
2015-04-24 14:26:24 +02:00
return ( __force __virtio32 ) cpu_to_be32 ( val ) ;
2014-10-22 15:35:56 +03:00
}
static inline u64 __virtio64_to_cpu ( bool little_endian , __virtio64 val )
{
if ( little_endian )
return le64_to_cpu ( ( __force __le64 ) val ) ;
else
2015-04-24 14:26:24 +02:00
return be64_to_cpu ( ( __force __be64 ) val ) ;
2014-10-22 15:35:56 +03:00
}
static inline __virtio64 __cpu_to_virtio64 ( bool little_endian , u64 val )
{
if ( little_endian )
return ( __force __virtio64 ) cpu_to_le64 ( val ) ;
else
2015-04-24 14:26:24 +02:00
return ( __force __virtio64 ) cpu_to_be64 ( val ) ;
2014-10-22 15:35:56 +03:00
}
# endif /* _LINUX_VIRTIO_BYTEORDER */