1 // Copyright 2016 The Fuchsia Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include <lib/zx/vmar.h>
6
7 #include <zircon/syscalls.h>
8
9 namespace zx {
10
allocate(size_t offset,size_t size,zx_vm_option_t options,vmar * child,uintptr_t * child_addr) const11 zx_status_t vmar::allocate(size_t offset, size_t size, zx_vm_option_t options,
12 vmar* child, uintptr_t* child_addr) const {
13 // Allow for aliasing of |child| to the same container as |this|.
14 vmar h;
15 zx_status_t status = zx_vmar_allocate(
16 get(), options, offset, size, h.reset_and_get_address(), child_addr);
17 child->reset(h.release());
18 return status;
19 }
20
21 } // namespace zx
22