forked from Imagelibrary/rtems
sys/endian.h: Fix 16-bit int problems
This commit is contained in:
@@ -91,7 +91,7 @@ be16dec(const void *pp)
|
|||||||
{
|
{
|
||||||
uint8_t const *p = (uint8_t const *)pp;
|
uint8_t const *p = (uint8_t const *)pp;
|
||||||
|
|
||||||
return ((p[0] << 8) | p[1]);
|
return (((unsigned)p[0] << 8) | p[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static __inline uint32_t
|
static __inline uint32_t
|
||||||
@@ -99,7 +99,8 @@ be32dec(const void *pp)
|
|||||||
{
|
{
|
||||||
uint8_t const *p = (uint8_t const *)pp;
|
uint8_t const *p = (uint8_t const *)pp;
|
||||||
|
|
||||||
return (((unsigned)p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]);
|
return (((uint32_t)p[0] << 24) | ((uint32_t)p[1] << 16) |
|
||||||
|
((uint32_t)p[2] << 8) | p[3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static __inline uint64_t
|
static __inline uint64_t
|
||||||
@@ -115,7 +116,7 @@ le16dec(const void *pp)
|
|||||||
{
|
{
|
||||||
uint8_t const *p = (uint8_t const *)pp;
|
uint8_t const *p = (uint8_t const *)pp;
|
||||||
|
|
||||||
return ((p[1] << 8) | p[0]);
|
return (((unsigned)p[1] << 8) | p[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static __inline uint32_t
|
static __inline uint32_t
|
||||||
@@ -123,7 +124,8 @@ le32dec(const void *pp)
|
|||||||
{
|
{
|
||||||
uint8_t const *p = (uint8_t const *)pp;
|
uint8_t const *p = (uint8_t const *)pp;
|
||||||
|
|
||||||
return (((unsigned)p[3] << 24) | (p[2] << 16) | (p[1] << 8) | p[0]);
|
return (((uint32_t)p[3] << 24) | ((uint32_t)p[2] << 16) |
|
||||||
|
((uint32_t)p[1] << 8) | p[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static __inline uint64_t
|
static __inline uint64_t
|
||||||
|
|||||||
Reference in New Issue
Block a user