From 0a2a9842d2f4f1d428f919741ec1aa561057d1df Mon Sep 17 00:00:00 2001 From: Stephen Sherratt Date: Tue, 16 Aug 2016 17:05:34 +1000 Subject: [PATCH] libsel4: Explicitly casting cap rights --- libsel4/include/sel4/cap_rights.h | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/libsel4/include/sel4/cap_rights.h b/libsel4/include/sel4/cap_rights.h index 948219049..f026e2a8f 100644 --- a/libsel4/include/sel4/cap_rights.h +++ b/libsel4/include/sel4/cap_rights.h @@ -24,7 +24,7 @@ typedef seL4_CapRights seL4_CapRights_t; static inline seL4_CapRights_t CONST seL4_CapRights_new(seL4_Uint32 grant, seL4_Uint32 read, seL4_Uint32 write) { - seL4_CapRights cap_rights = 0; + unsigned cap_rights = 0; /* Ensure arguments are either 0 or 1 */ seL4_DebugAssert(grant <= 1); @@ -32,34 +32,34 @@ seL4_CapRights_new(seL4_Uint32 grant, seL4_Uint32 read, seL4_Uint32 write) seL4_DebugAssert(write <= 1); if (grant) { - cap_rights |= seL4_CanGrant; + cap_rights |= (unsigned)seL4_CanGrant; } if (read) { - cap_rights |= seL4_CanRead; + cap_rights |= (unsigned)seL4_CanRead; } if (write) { - cap_rights |= seL4_CanWrite; + cap_rights |= (unsigned)seL4_CanWrite; } - return cap_rights; + return (seL4_CapRights_t)cap_rights; } static inline seL4_Uint32 CONST seL4_CapRights_get_capAllowGrant(seL4_CapRights_t cap_rights) { - return !!(cap_rights & seL4_CanGrant); + return !!((unsigned)cap_rights & (unsigned)seL4_CanGrant); } static inline seL4_Uint32 CONST seL4_CapRights_get_capAllowRead(seL4_CapRights_t cap_rights) { - return !!(cap_rights & seL4_CanRead); + return !!((unsigned)cap_rights & (unsigned)seL4_CanRead); } static inline seL4_Uint32 CONST seL4_CapRights_get_capAllowWrite(seL4_CapRights_t cap_rights) { - return !!(cap_rights & seL4_CanWrite); + return !!((unsigned)cap_rights & (unsigned)seL4_CanWrite); } static inline seL4_CapRights_t CONST @@ -69,9 +69,9 @@ seL4_CapRights_set_capAllowGrant(seL4_CapRights_t cap_rights, seL4_Uint32 value) seL4_DebugAssert(value <= 1); if (value) { - return cap_rights | seL4_CanGrant; + return (seL4_CapRights_t)((unsigned)cap_rights | (unsigned)seL4_CanGrant); } else { - return cap_rights & ~seL4_CanGrant; + return (seL4_CapRights_t)((unsigned)cap_rights & ~(unsigned)seL4_CanGrant); } } @@ -82,9 +82,9 @@ seL4_CapRights_set_capAllowRead(seL4_CapRights_t cap_rights, seL4_Uint32 value) seL4_DebugAssert(value <= 1); if (value) { - return cap_rights | seL4_CanRead; + return (seL4_CapRights_t)((unsigned)cap_rights | (unsigned)seL4_CanRead); } else { - return cap_rights & ~seL4_CanRead; + return (seL4_CapRights_t)((unsigned)cap_rights & ~(unsigned)seL4_CanRead); } } @@ -95,8 +95,8 @@ seL4_CapRights_set_capAllowWrite(seL4_CapRights_t cap_rights, seL4_Uint32 value) seL4_DebugAssert(value <= 1); if (value) { - return cap_rights | seL4_CanWrite; + return (seL4_CapRights_t)((unsigned)cap_rights | (unsigned)seL4_CanWrite); } else { - return cap_rights & ~seL4_CanWrite; + return (seL4_CapRights_t)((unsigned)cap_rights & ~(unsigned)seL4_CanWrite); } }