i was reading some code when i came over this function. This is my version:
static inline _L4_word_t
_L4_attribute_always_inline
_L4_msg_get_string_item (_L4_msg_t msg, _L4_word_t nr, void *string_item)
{
__L4_msg_tag_t tag = { .raw = _L4_msg_msg_tag (msg) };
/* We do not break any strict aliasing rules here, as we only use
the pointers for pointer arithmetic. */
_L4_word_t pos = 1 + tag.untyped + nr;
int count;