4 #include <l4_msg_item.h>
23 explicit L4_buf_iter(Utcb const *utcb, unsigned start)
24 : _buf(&utcb->buffers[start]), _max(&utcb->buffers[Utcb::Max_buffers])
26 bool more() const { return _buf < _max; }
27 Item const *get() const { return &c; }
32 Mword const *const _max;
36 class L4_snd_item_iter
52 explicit L4_snd_item_iter(Utcb const *utcb, unsigned offset)
53 : _buf(&utcb->values[offset]),
54 _max(&utcb->values[Utcb::Max_words]) {}
55 bool more() const { return _buf < _max; }
56 Item const *get() const { return &c; }
61 Mword const *const _max;
65 //----------------------------------------------------------------------------
72 c.b = L4_msg_item(_buf[0]);
73 if (EXPECT_FALSE(c.b.is_void()))
76 if (c.b.type() == L4_msg_item::Map && c.b.is_small_obj())
77 c.d = c.b.get_small_buf().raw();
81 if (EXPECT_FALSE(_buf >= _max))
96 L4_snd_item_iter::next()
98 c.b = L4_msg_item(_buf[0]);
102 if (EXPECT_FALSE(c.b.is_void()))
105 if (EXPECT_FALSE(_buf >= _max))