2 * (c) 2010 Alexander Warg <warg@os.inf.tu-dresden.de>
3 * economic rights: Technische Universität Dresden (Germany)
5 * This file is part of TUD:OS and distributed under the terms of the
6 * GNU General Public License 2.
7 * Please see the COPYING-GPL-2 file for details.
9 #include "remote_mem.h"
13 #include <l4/re/error_helper>
16 Stack::add(l4_addr_t start, l4_umword_t size, L4::Cap<L4Re::Rm> rm,
17 L4::Cap<L4Re::Dataspace> m, unsigned long offs, unsigned flags,
18 unsigned char align, char const *what)
20 unsigned rh_flags = flags;
21 // printf("attaching %s %lx... @%lx\n", what, m.cap(), rm.cap());
23 rh_flags |= L4Re::Rm::Reserved;
25 l4_addr_t addr = start;
27 L4Re::chksys(rm->attach(&addr, size, rh_flags, m, offs, align), what);
37 Stack::set_stack(L4Re::Util::Ref_cap<L4Re::Dataspace>::Cap const &ds, unsigned size)
39 L4Re::chksys(L4Re::Env::env()->rm()->attach(&_vma, size,
40 L4Re::Rm::Search_addr, ds.get(), 0),
41 "attaching stack vma");
43 set_local_top((char*)(_vma.get() + size));