X-Git-Url: https://rtime.felk.cvut.cz/gitweb/l4.git/blobdiff_plain/f4122e6e085938b6d216a9ec724b974a603f6992..983fe7c4ac262f56d38a143b1efab1e4afb77a52:/l4/pkg/l4re/include/impl/rm_impl.h diff --git a/l4/pkg/l4re/include/impl/rm_impl.h b/l4/pkg/l4re/include/impl/rm_impl.h index 9e8ab9111..edc204732 100644 --- a/l4/pkg/l4re/include/impl/rm_impl.h +++ b/l4/pkg/l4re/include/impl/rm_impl.h @@ -156,5 +156,26 @@ Rm::find(l4_addr_t *addr, unsigned long *size, unsigned long *offset, return err; } +int +Rm::get_regions(l4_addr_t start, Region **regions) throw() +{ + L4::Ipc_iostream io(l4_utcb()); + io << Opcode(Rm_::Get_regions) << start; + long err = l4_error(io.call(cap(), L4Re::Protocol::Rm)); + if (err > 0) + *regions = reinterpret_cast(&l4_utcb_mr()->mr[0]); + return err; +} + +int +Rm::get_areas(l4_addr_t start, Area **areas) throw() +{ + L4::Ipc_iostream io(l4_utcb()); + io << Opcode(Rm_::Get_areas) << start; + long err = l4_error(io.call(cap(), L4Re::Protocol::Rm)); + if (err > 0) + *areas = reinterpret_cast(&l4_utcb_mr()->mr[0]); + return err; +} }