mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-21 10:01:57 +00:00
parent
24941ffaeb
commit
f7a7421091
@ -92,14 +92,14 @@ namespace Genode {
|
||||
|
||||
public:
|
||||
|
||||
Bit_array_base(unsigned bits, addr_t *addr)
|
||||
Bit_array_base(unsigned bits, addr_t *addr, bool clear)
|
||||
: _bit_cnt(bits),
|
||||
_word_cnt(_bit_cnt / _BITS_PER_WORD),
|
||||
_words(addr)
|
||||
{
|
||||
if (!bits || bits % _BITS_PER_WORD) throw Invalid_bit_count();
|
||||
|
||||
memset(_words, 0, sizeof(addr_t)*_word_cnt);
|
||||
if (clear) memset(_words, 0, sizeof(addr_t)*_word_cnt);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -144,7 +144,7 @@ namespace Genode {
|
||||
|
||||
public:
|
||||
|
||||
Bit_array() : Bit_array_base(BITS, _array) { }
|
||||
Bit_array() : Bit_array_base(BITS, _array, true) { }
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -76,7 +76,8 @@ class Genode::Packet_allocator : public Genode::Range_allocator
|
||||
_base = base;
|
||||
_bits = _md_alloc->alloc(_block_cnt(size)/8);
|
||||
_array = new (_md_alloc) Bit_array_base(_block_cnt(size),
|
||||
(addr_t*)_bits);
|
||||
(addr_t*)_bits,
|
||||
true);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user