Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>
}
reg->buffer_size = ROUND_UP(buffersize, NETWORKING_BUFFER_ALIGN);
+ reg->buffer_shift = 0;
+ while(!((reg->buffer_size >> reg->buffer_shift) & 0x1)) {
+ reg->buffer_shift++;
+ }
+
reg->framecap = frame;
reg->pool = bp;
assert((offset & (reg->buffer_size - 1)) == 0);
assert(offset / reg->buffer_size < reg->pool->buffer_count);
struct net_buf_p *nb = reg->netbufs + (offset / reg->buffer_size);
+
+ assert((offset / reg->buffer_size) == (offset >> reg->buffer_shift));
+
assert(nb->offset == offset);
return (struct pbuf *)nb;
#define BENCH_NUM_MEASUREMENTS_BITS 16
#define BENCH_NUM_MEASUREMENTS (1UL << BENCH_NUM_MEASUREMENTS_BITS)
-#define NETBUF_DEBGUG 1
+#define NETBUF_DEBGUG 0
/**
* @brief encapsulates the state of the networking library
struct capref framecap;
struct net_buf_region *next;
size_t buffer_size;
+ uint8_t buffer_shift;
regionid_t regionid;
struct net_buf_pool *pool;
struct net_buf_p *netbufs; /// array of netbufs