add missing .so files to noux_tool_chain.inc

required by grep

Issue #1040
This commit is contained in:
Alexander Boettcher 2015-10-20 14:47:24 +02:00 committed by Christian Helmuth
parent e9525f49fd
commit 18d24eec7b
2 changed files with 45 additions and 18 deletions

View File

@ -44,17 +44,36 @@ namespace Platform {
class Platform::Rmrr : public Genode::List<Platform::Rmrr>::Element
{
public:
class Bdf : public Genode::List<Bdf>::Element {
private:
Genode::uint8_t _bus, _dev, _func;
public:
Bdf(Genode::uint8_t bus, Genode::uint8_t dev,
Genode::uint8_t func)
: _bus(bus), _dev(dev), _func(func) { }
bool match(Genode::uint8_t bus, Genode::uint8_t dev,
Genode::uint8_t func) {
return bus == _bus && dev == _dev && func == _func; }
};
private:
Genode::uint64_t _start, _end;
Genode::Io_mem_dataspace_capability _cap;
Genode::uint8_t _bus, _dev, _func;
Genode::List<Bdf> _bdf_list;
public:
Rmrr(Genode::uint64_t start, Genode::uint64_t end,
Genode::uint8_t bus, Genode::uint8_t dev, Genode::uint8_t func)
: _start(start), _end(end), _bus(bus), _dev(dev), _func(func)
Rmrr(Genode::uint64_t start, Genode::uint64_t end)
: _start(start), _end(end)
{ }
Genode::Io_mem_dataspace_capability match(Device_config config) {
@ -62,19 +81,24 @@ class Platform::Rmrr : public Genode::List<Platform::Rmrr>::Element
Genode::uint8_t device = config.device_number();
Genode::uint8_t function = config.function_number();
if (!(_bus == bus && _dev == device && _func == function))
return Genode::Io_mem_dataspace_capability();
for (Bdf *bdf = _bdf_list.first(); bdf; bdf = bdf->next()) {
if (!bdf->match(bus, device, function))
continue;
if (_cap.valid())
return _cap;
Genode::Io_mem_connection io_mem(_start, _end - _start + 1);
io_mem.on_destruction(Genode::Io_mem_connection::KEEP_OPEN);
_cap = io_mem.dataspace();
if (_cap.valid())
return _cap;
Genode::Io_mem_connection io_mem(_start, _end - _start + 1);
io_mem.on_destruction(Genode::Io_mem_connection::KEEP_OPEN);
_cap = io_mem.dataspace();
return _cap;
}
return Genode::Io_mem_dataspace_capability();
}
void add(Bdf * bdf) { _bdf_list.insert(bdf); }
static Genode::List<Rmrr> *list()
{
static Genode::List<Rmrr> _list;
@ -780,6 +804,9 @@ class Platform::Root : public Genode::Root_component<Session_component>
if (node.num_sub_nodes() == 0)
throw 2;
Rmrr * rmrr = new (env()->heap()) Rmrr(mem_start, mem_end);
Rmrr::list()->insert(rmrr);
for (unsigned s = 0; s < node.num_sub_nodes(); s++) {
Xml_node scope = node.sub_node(s);
if (!scope.num_sub_nodes() || !scope.has_type("scope"))
@ -804,10 +831,8 @@ class Platform::Root : public Genode::Root_component<Session_component>
Device::ACCESS_8BIT);
}
Rmrr * rmrr = new (env()->heap()) Rmrr(mem_start,
mem_end, bus,
dev, func);
Rmrr::list()->insert(rmrr);
rmrr->add(new (env()->heap()) Rmrr::Bdf(bus, dev,
func));
}
}

View File

@ -255,7 +255,9 @@ install_config $config
# generic modules
set boot_modules {
core init timer ld.lib.so noux terminal ram_fs
libc.lib.so libm.lib.so libc_noux.lib.so ncurses.lib.so stdcxx.lib.so }
libc.lib.so libm.lib.so libc_noux.lib.so ncurses.lib.so stdcxx.lib.so
pcre.lib.so zlib.lib.so readline.lib.so
}
append boot_modules { gmp.lib.so mpfr.lib.so mpc.lib.so }