Lines Matching defs:vmo

31     zx_handle_t vmo[16];
34 for (size_t i = 0; i < fbl::count_of(vmo); i++) {
35 status = zx_vmo_create(i * PAGE_SIZE, 0, &vmo[i]);
39 for (size_t i = 0; i < fbl::count_of(vmo); i++) {
40 status = zx_handle_close(vmo[i]);
51 zx_handle_t vmo;
55 status = zx_vmo_create(len, 0, &vmo);
59 status = zx_vmo_read(vmo, buf, 0, sizeof(buf));
73 status = zx_vmo_write(vmo, buf, 0, sizeof(buf));
79 ZX_VM_PERM_READ | ZX_VM_PERM_WRITE, 0, vmo, 0,
91 status = zx_handle_close(vmo);
101 zx_handle_t vmo;
105 status = zx_vmo_create(len, 0, &vmo);
110 status = zx_vmo_read(vmo, buf, 0, sizeof(buf));
114 status = zx_vmo_read(vmo, buf, len, 0);
118 status = zx_vmo_read(vmo, buf, len + 1, 0);
122 status = zx_vmo_write(vmo, buf, 0, sizeof(buf));
126 status = zx_vmo_write(vmo, buf, len, 0);
130 status = zx_vmo_write(vmo, buf, len + 1, 0);
134 status = zx_vmo_read(vmo, buf, UINT64_MAX - (len / 2), len);
136 status = zx_vmo_write(vmo, buf, UINT64_MAX - (len / 2), len);
140 status = zx_handle_close(vmo);
150 zx_handle_t vmo;
153 // allocate a vmo
154 status = zx_vmo_create(4 * PAGE_SIZE, 0, &vmo);
159 status = zx_vmar_map(zx_vmar_root_self(), ZX_VM_PERM_READ, 0, vmo, 0,
167 status = zx_vmar_map(zx_vmar_root_self(), ZX_VM_PERM_READ, 0, vmo, 0,
175 UINTPTR_MAX, vmo, 0, PAGE_SIZE, &map_addr);
179 status = zx_handle_close(vmo);
196 zx_handle_t vmo;
200 status = zx_vmo_create(len, 0, &vmo);
205 status = zx_vmar_map(zx_vmar_root_self(), ZX_VM_PERM_READ, 0, vmo, 0,
216 status = zx_handle_close(vmo);
226 zx_handle_t vmo;
230 status = zx_vmo_create(len, 0, &vmo);
235 status = zx_vmar_map(zx_vmar_root_self(), ZX_VM_PERM_READ, 0, vmo, 0, len, &ptr);
251 EXPECT_EQ(ZX_OK, zx_handle_close(vmo), "handle_close");
259 zx_handle_t vmo;
263 status = zx_vmo_create(len, 0, &vmo);
268 status = zx_vmar_map(zx_vmar_root_self(), 0, 0, vmo, 0, len, &ptr);
291 EXPECT_EQ(ZX_OK, zx_handle_close(vmo), "handle_close");
299 zx_handle_t vmo;
303 status = zx_vmo_create(len, 0, &vmo);
308 status = zx_vmo_get_size(vmo, &size);
314 status = zx_vmo_set_size(vmo, len);
319 status = zx_vmo_get_size(vmo, &size);
324 status = zx_vmo_set_size(vmo, UINT64_MAX);
328 status = zx_vmo_set_size(vmo, len + 1);
333 status = zx_vmo_get_size(vmo, &size);
340 status = zx_vmar_map(zx_vmar_root_self(), ZX_VM_PERM_READ, 0, vmo, 0,
345 // attempt to map expecting an non resizable vmo.
349 vmo, 0, len, &ptr2);
353 status = zx_vmo_set_size(vmo, size);
361 status = zx_handle_close(vmo);
368 static bool vmo_no_resize_helper(zx_handle_t vmo, const size_t len) {
371 EXPECT_NE(vmo, ZX_HANDLE_INVALID);
374 status = zx_vmo_set_size(vmo, len + PAGE_SIZE);
377 status = zx_vmo_set_size(vmo, len - PAGE_SIZE);
381 status = zx_vmo_get_size(vmo, &size);
388 0, vmo, 0, len,
396 status = zx_handle_close(vmo);
404 zx_handle_t vmo = ZX_HANDLE_INVALID;
406 zx_vmo_create(len, ZX_VMO_NON_RESIZABLE, &vmo);
407 return vmo_no_resize_helper(vmo, len);
412 zx_handle_t vmo = ZX_HANDLE_INVALID;
418 status = zx_vmo_create(len, ZX_VMO_NON_RESIZABLE, &vmo);
421 status = zx_object_get_info(vmo, ZX_INFO_VMO, &info,
425 status = zx_handle_close(vmo);
436 zx_vmo_create(len, 0, &vmo);
439 status = zx_object_get_info(vmo, ZX_INFO_VMO, &info,
443 status = zx_handle_close(vmo);
457 zx_handle_t vmo = ZX_HANDLE_INVALID;
460 zx_vmo_create(len, 0, &vmo);
461 zx_vmo_clone(vmo,
471 zx_handle_t vmo;
474 zx_status_t status = zx_vmo_create(s, 0, &vmo);
479 status = zx_vmo_get_size(vmo, &size);
484 EXPECT_EQ(ZX_OK, zx_handle_close(vmo), "handle_close");
493 // resize a vmo with a particular size and test that the resulting size is aligned on a page
495 zx_handle_t vmo;
496 zx_status_t status = zx_vmo_create(0, 0, &vmo);
501 zx_status_t status = zx_vmo_set_size(vmo, s);
506 status = zx_vmo_get_size(vmo, &size);
512 EXPECT_EQ(ZX_OK, zx_handle_close(vmo), "handle_close");
520 zx_handle_t vmo;
521 zx_status_t status = zx_vmo_create(0, 0, &vmo);
527 EXPECT_EQ(ZX_OK, zx_vmo_clone(vmo, ZX_VMO_CLONE_COPY_ON_WRITE, 0, s, &clone_vmo), "vm_clone");
540 EXPECT_EQ(ZX_OK, zx_handle_close(vmo), "handle_close");
546 zx_handle_t vmo, size_t len, uint32_t flags,
550 zx_status_t r = zx_vmar_map(zx_vmar_root_self(), flags, 0, vmo, 0, len,
582 zx_handle_t vmo, vmo2;
585 status = zx_vmo_create(len, 0, &vmo);
600 EXPECT_EQ(kExpectedRights, kExpectedRights & get_handle_rights(vmo));
603 status = zx_vmo_read(vmo, buf, 0, 0);
605 status = zx_vmo_write(vmo, buf, 0, 0);
609 zx_handle_duplicate(vmo, ZX_RIGHT_READ, &vmo2);
617 zx_handle_duplicate(vmo, ZX_RIGHT_WRITE, &vmo2);
625 zx_handle_duplicate(vmo, 0, &vmo2);
633 if (!rights_test_map_helper(vmo, len, 0, true, 0, "map_noperms")) return false;
634 if (!rights_test_map_helper(vmo, len, ZX_VM_PERM_READ, true, 0, "map_read")) return false;
635 if (!rights_test_map_helper(vmo, len, ZX_VM_PERM_WRITE, false, ZX_ERR_INVALID_ARGS, "map_write")) return false;
636 if (!rights_test_map_helper(vmo, len, ZX_VM_PERM_READ | ZX_VM_PERM_WRITE, true, 0, "map_readwrite")) return false;
637 if (!rights_test_map_helper(vmo, len, ZX_VM_PERM_READ | ZX_VM_PERM_WRITE | ZX_VM_PERM_EXECUTE, true, 0, "map_readwriteexec")) return false;
638 if (!rights_test_map_helper(vmo, len, ZX_VM_PERM_READ | ZX_VM_PERM_EXECUTE, true, 0, "map_readexec")) return false;
640 // try most of the permuations of mapping a vmo with various rights dropped
642 zx_handle_duplicate(vmo, ZX_RIGHT_READ | ZX_RIGHT_WRITE | ZX_RIGHT_EXECUTE, &vmo2);
652 zx_handle_duplicate(vmo, ZX_RIGHT_READ | ZX_RIGHT_MAP, &vmo2);
662 zx_handle_duplicate(vmo, ZX_RIGHT_WRITE | ZX_RIGHT_MAP, &vmo2);
672 zx_handle_duplicate(vmo, ZX_RIGHT_READ | ZX_RIGHT_WRITE | ZX_RIGHT_MAP, &vmo2);
682 zx_handle_duplicate(vmo, ZX_RIGHT_READ | ZX_RIGHT_EXECUTE | ZX_RIGHT_MAP, &vmo2);
688 if (!rights_test_map_helper(vmo, len, ZX_VM_PERM_READ | ZX_VM_PERM_EXECUTE, true, 0, "map_readexec")) return false;
692 zx_handle_duplicate(vmo, ZX_RIGHT_READ | ZX_RIGHT_WRITE | ZX_RIGHT_EXECUTE | ZX_RIGHT_MAP, &vmo2);
698 if (!rights_test_map_helper(vmo, len, ZX_VM_PERM_READ | ZX_VM_PERM_EXECUTE, true, 0, "map_readexec")) return false;
702 const char *set_name = "test vmo";
703 status = zx_object_set_property(vmo, ZX_PROP_NAME, set_name, sizeof(set_name));
706 status = zx_object_get_property(vmo, ZX_PROP_NAME, get_name, sizeof(get_name));
708 EXPECT_STR_EQ(set_name, get_name, "vmo name");
711 status = zx_handle_close(vmo);
720 zx_handle_t vmo;
724 // create a vmo
727 status = zx_vmo_create(size, 0, &vmo);
731 status = zx_vmo_op_range(vmo, ZX_VMO_OP_COMMIT, 0, size, nullptr, 0);
735 status = zx_vmo_op_range(vmo, ZX_VMO_OP_DECOMMIT, 0, size, nullptr, 0);
739 status = zx_vmo_op_range(vmo, ZX_VMO_OP_COMMIT, 0, size, nullptr, 0);
746 0, vmo, 0, size, &ptr);
754 0, vmo, PAGE_SIZE, size, &ptr2);
762 0, vmo, size * 2, size, &ptr3);
776 status = zx_vmo_op_range(vmo, ZX_VMO_OP_DECOMMIT, 0, PAGE_SIZE, nullptr, 0);
785 status = zx_vmo_op_range(vmo, ZX_VMO_OP_DECOMMIT, PAGE_SIZE, PAGE_SIZE, nullptr, 0);
802 status = zx_handle_close(vmo);
811 zx_handle_t vmo;
815 // create a vmo
818 EXPECT_EQ(ZX_OK, zx_vmo_create(size, 0, &vmo), "vm_object_create");
820 // make a few mappings of the vmo
823 zx_vmar_map(zx_vmar_root_self(), ZX_VM_PERM_READ|ZX_VM_PERM_WRITE, 0, vmo, 0, size, &p),
852 status = zx_vmo_write(vmo, &v, PAGE_SIZE, sizeof(v));
853 EXPECT_EQ(ZX_OK, status, "writing to vmo");
862 // commit this range of the vmo via a commit call
863 status = zx_vmo_op_range(vmo, ZX_VMO_OP_COMMIT, PAGE_SIZE * 2, PAGE_SIZE, nullptr, 0);
867 status = zx_vmo_write(vmo, &v, PAGE_SIZE * 2, sizeof(v));
868 EXPECT_EQ(ZX_OK, status, "writing to vmo");
878 EXPECT_EQ(ZX_OK, zx_handle_close(vmo), "handle_close");
887 zx_handle_t vmo;
890 // create a vmo
892 EXPECT_EQ(ZX_OK, zx_vmo_create(size, 0, &vmo), "vm_object_create");
893 EXPECT_EQ(ZX_OK, zx_object_set_property(vmo, ZX_PROP_NAME, "test1", 5), "zx_object_set_property");
897 EXPECT_EQ(ZX_OK, zx_vmo_clone(vmo, ZX_VMO_CLONE_COPY_ON_WRITE, 0, size, &clone_vmo[0]), "vm_clone");
905 EXPECT_EQ(ZX_OK, zx_vmo_clone(vmo, ZX_VMO_CLONE_COPY_ON_WRITE, 0, size, &clone_vmo[1]), "vm_clone");
914 EXPECT_EQ(ZX_OK, zx_handle_close(vmo), "handle_close");
927 zx_handle_t vmo;
930 // create a vmo
932 EXPECT_EQ(ZX_OK, zx_vmo_create(size, 0, &vmo), "vm_object_create");
936 zx_vmo_write(vmo, &off, off, sizeof(off));
941 EXPECT_EQ(ZX_OK, zx_vmo_clone(vmo, ZX_VMO_CLONE_COPY_ON_WRITE, 0, size, &clone_vmo[0]), "vm_clone");
978 zx_vmo_read(vmo, &val, off, sizeof(val));
989 EXPECT_EQ(ZX_OK, zx_vmo_write(vmo, &val, offset, sizeof(val)), "writing to original");
998 EXPECT_EQ(ZX_OK, zx_handle_close(vmo), "handle_close");
1007 zx_handle_t vmo;
1014 // create a vmo
1016 EXPECT_EQ(ZX_OK, zx_vmo_create(size, 0, &vmo), "vm_object_create");
1020 zx_vmar_map(zx_vmar_root_self(), ZX_VM_PERM_READ|ZX_VM_PERM_WRITE, 0, vmo, 0, size, &ptr),
1027 EXPECT_EQ(ZX_OK, zx_vmo_clone(vmo, ZX_VMO_CLONE_COPY_ON_WRITE, 0, size, &clone_vmo[0]),"vm_clone");
1070 EXPECT_EQ(ZX_OK, zx_handle_close(vmo), "handle_close");
1086 zx_handle_t vmo;
1093 // create a vmo
1095 EXPECT_EQ(ZX_OK, zx_vmo_create(size, 0, &vmo), "vm_object_create");
1099 zx_vmar_map(zx_vmar_root_self(), ZX_VM_PERM_READ|ZX_VM_PERM_WRITE, 0, vmo, 0, size, &ptr),
1106 EXPECT_EQ(ZX_OK, zx_vmo_clone(vmo, ZX_VMO_CLONE_COPY_ON_WRITE, 0, size, &clone_vmo), "vm_clone");
1137 EXPECT_EQ(ZX_OK, zx_handle_close(vmo), "handle_close");
1153 zx_handle_t vmo;
1160 // create a vmo
1162 EXPECT_EQ(ZX_OK, zx_vmo_create(size, 0, &vmo), "vm_object_create");
1166 zx_vmar_map(zx_vmar_root_self(), ZX_VM_PERM_READ|ZX_VM_PERM_WRITE, 0, vmo, 0, size, &ptr),
1173 EXPECT_EQ(ZX_OK, zx_vmo_clone(vmo, ZX_VMO_CLONE_COPY_ON_WRITE, 0, size, &clone_vmo), "vm_clone");
1205 EXPECT_EQ(ZX_OK, zx_handle_close(vmo), "handle_close");
1220 zx_handle_t vmo;
1223 EXPECT_EQ(ZX_OK, zx_vmo_create(size, 0, &vmo), "creation for cache_policy");
1225 // clean vmo can have all valid cache policies set
1226 EXPECT_EQ(ZX_OK, zx_vmo_set_cache_policy(vmo, ZX_CACHE_POLICY_CACHED));
1227 EXPECT_EQ(ZX_OK, zx_vmo_set_cache_policy(vmo, ZX_CACHE_POLICY_UNCACHED));
1228 EXPECT_EQ(ZX_OK, zx_vmo_set_cache_policy(vmo, ZX_CACHE_POLICY_UNCACHED_DEVICE));
1229 EXPECT_EQ(ZX_OK, zx_vmo_set_cache_policy(vmo, ZX_CACHE_POLICY_WRITE_COMBINING));
1232 EXPECT_EQ(ZX_ERR_INVALID_ARGS, zx_vmo_set_cache_policy(vmo, ZX_CACHE_POLICY_MASK + 1));
1235 EXPECT_EQ(ZX_OK, zx_vmo_op_range(vmo, ZX_VMO_OP_COMMIT, 0, size, nullptr, 0));
1236 EXPECT_EQ(ZX_ERR_BAD_STATE, zx_vmo_set_cache_policy(vmo, ZX_CACHE_POLICY_CACHED));
1237 EXPECT_EQ(ZX_OK, zx_vmo_op_range(vmo, ZX_VMO_OP_DECOMMIT, 0, size, nullptr, 0));
1238 EXPECT_EQ(ZX_OK, zx_vmo_set_cache_policy(vmo, ZX_CACHE_POLICY_CACHED));
1240 // map the vmo, make sure policy doesn't set
1242 EXPECT_EQ(ZX_OK, zx_vmar_map(zx_vmar_root_self(), ZX_VM_PERM_READ, 0, vmo, 0, size, &ptr));
1243 EXPECT_EQ(ZX_ERR_BAD_STATE, zx_vmo_set_cache_policy(vmo, ZX_CACHE_POLICY_CACHED));
1245 EXPECT_EQ(ZX_OK, zx_vmo_set_cache_policy(vmo, ZX_CACHE_POLICY_CACHED));
1247 // clone the vmo, make sure policy doesn't set
1249 EXPECT_EQ(ZX_OK, zx_vmo_clone(vmo, ZX_VMO_CLONE_COPY_ON_WRITE, 0, size, &clone));
1250 EXPECT_EQ(ZX_ERR_BAD_STATE, zx_vmo_set_cache_policy(vmo, ZX_CACHE_POLICY_CACHED));
1252 EXPECT_EQ(ZX_OK, zx_vmo_set_cache_policy(vmo, ZX_CACHE_POLICY_CACHED));
1254 // clone the vmo, try to set policy on the clone
1255 EXPECT_EQ(ZX_OK, zx_vmo_clone(vmo, ZX_VMO_CLONE_COPY_ON_WRITE, 0, size, &clone));
1260 EXPECT_EQ(ZX_OK, zx_vmo_set_cache_policy(vmo, ZX_CACHE_POLICY_UNCACHED));
1261 EXPECT_EQ(ZX_ERR_BAD_STATE, zx_vmo_clone(vmo, ZX_VMO_CLONE_COPY_ON_WRITE, 0, size, &clone));
1262 EXPECT_EQ(ZX_OK, zx_vmo_set_cache_policy(vmo, ZX_CACHE_POLICY_CACHED));
1263 EXPECT_EQ(ZX_OK, zx_vmo_clone(vmo, ZX_VMO_CLONE_COPY_ON_WRITE, 0, size, &clone));
1266 // set the policy, make sure vmo read/write do not work
1268 EXPECT_EQ(ZX_OK, zx_vmo_set_cache_policy(vmo, ZX_CACHE_POLICY_UNCACHED));
1269 EXPECT_EQ(ZX_ERR_BAD_STATE, zx_vmo_read(vmo, &c, 0, sizeof(c)));
1270 EXPECT_EQ(ZX_ERR_BAD_STATE, zx_vmo_write(vmo, &c, 0, sizeof(c)));
1271 EXPECT_EQ(ZX_OK, zx_vmo_set_cache_policy(vmo, ZX_CACHE_POLICY_CACHED));
1272 EXPECT_EQ(ZX_OK, zx_vmo_read(vmo, &c, 0, sizeof(c)));
1273 EXPECT_EQ(ZX_OK, zx_vmo_write(vmo, &c, 0, sizeof(c)));
1275 EXPECT_EQ(ZX_OK, zx_handle_close(vmo), "close handle");
1283 zx_handle_t vmo;
1286 EXPECT_EQ(ZX_OK, zx_vmo_create(size, 0, &vmo));
1289 EXPECT_EQ(ZX_OK, zx_vmo_set_cache_policy(vmo, policy));
1292 EXPECT_EQ(ZX_OK, zx_vmo_op_range(vmo, ZX_VMO_OP_COMMIT, 0, size, nullptr, 0));
1298 0, vmo, 0, size, &ptr));
1322 EXPECT_EQ(ZX_OK, zx_handle_close(vmo));
1337 zx_handle_t vmo;
1340 EXPECT_EQ(ZX_OK, zx_vmo_create(size, 0, &vmo), "creation for cache op");
1342 auto t = [vmo](uint32_t op) {
1343 EXPECT_EQ(ZX_OK, zx_vmo_op_range(vmo, op, 0, 1, nullptr, 0), "0 1");
1344 EXPECT_EQ(ZX_OK, zx_vmo_op_range(vmo, op, 0, 1, nullptr, 0), "0 1");
1345 EXPECT_EQ(ZX_OK, zx_vmo_op_range(vmo, op, 1, 1, nullptr, 0), "1 1");
1346 EXPECT_EQ(ZX_OK, zx_vmo_op_range(vmo, op, 0, size, nullptr, 0), "0 size");
1347 EXPECT_EQ(ZX_OK, zx_vmo_op_range(vmo, op, 1, size - 1, nullptr, 0), "0 size");
1348 EXPECT_EQ(ZX_OK, zx_vmo_op_range(vmo, op, 0x5200, 1, nullptr, 0), "0x5200 1");
1349 EXPECT_EQ(ZX_OK, zx_vmo_op_range(vmo, op, 0x5200, 0x800, nullptr, 0), "0x5200 0x800");
1350 EXPECT_EQ(ZX_OK, zx_vmo_op_range(vmo, op, 0x5200, 0x1000, nullptr, 0), "0x5200 0x1000");
1351 EXPECT_EQ(ZX_OK, zx_vmo_op_range(vmo, op, 0x5200, 0x1200, nullptr, 0), "0x5200 0x1200");
1353 EXPECT_EQ(ZX_ERR_INVALID_ARGS, zx_vmo_op_range(vmo, op, 0, 0, nullptr, 0), "0 0");
1354 EXPECT_EQ(ZX_ERR_OUT_OF_RANGE, zx_vmo_op_range(vmo, op, 1, size, nullptr, 0), "0 size");
1355 EXPECT_EQ(ZX_ERR_OUT_OF_RANGE, zx_vmo_op_range(vmo, op, size, 1, nullptr, 0), "size 1");
1356 EXPECT_EQ(ZX_ERR_OUT_OF_RANGE, zx_vmo_op_range(vmo, op, size+1, 1, nullptr, 0), "size+1 1");
1357 EXPECT_EQ(ZX_ERR_OUT_OF_RANGE, zx_vmo_op_range(vmo, op, UINT64_MAX-1, 1, nullptr, 0), "UINT64_MAX-1 1");
1358 EXPECT_EQ(ZX_ERR_OUT_OF_RANGE, zx_vmo_op_range(vmo, op, UINT64_MAX, 1, nullptr, 0), "UINT64_MAX 1");
1359 EXPECT_EQ(ZX_ERR_OUT_OF_RANGE, zx_vmo_op_range(vmo, op, UINT64_MAX, UINT64_MAX, nullptr, 0), "UINT64_MAX UINT64_MAX");
1367 EXPECT_EQ(ZX_OK, zx_handle_close(vmo), "close handle");
1374 zx_handle_t vmo;
1377 EXPECT_EQ(ZX_OK, zx_vmo_create(size, 0, &vmo), "creation for cache op");
1381 zx_vmar_map(zx_vmar_root_self(), ZX_VM_PERM_READ, 0, vmo, 0, size, &ptr_ro),
1388 zx_vmar_map(zx_vmar_root_self(), ZX_VM_PERM_READ | ZX_VM_PERM_WRITE, 0, vmo, 0, size, &ptr_rw),
1393 zx_vmo_op_range(vmo, ZX_VMO_OP_COMMIT, 0, size, NULL, 0);
1405 EXPECT_EQ(ZX_OK, zx_handle_close(vmo), "close handle");
1412 zx_handle_t vmo;
1413 EXPECT_EQ(ZX_OK, zx_vmo_create(PAGE_SIZE * 2, 0, &vmo), "creation for decommit test");
1415 zx_status_t status = zx_vmo_op_range(vmo, ZX_VMO_OP_DECOMMIT, 0x10, 0x100, NULL, 0);
1418 status = zx_vmo_op_range(vmo, ZX_VMO_OP_COMMIT, 0x10, 0x100, NULL, 0);
1421 status = zx_vmo_op_range(vmo, ZX_VMO_OP_DECOMMIT, 0x10, 0x100, NULL, 0);
1424 EXPECT_EQ(ZX_OK, zx_handle_close(vmo), "close handle");
1432 zx_handle_t vmo;
1439 // create a vmo
1441 EXPECT_EQ(ZX_OK, zx_vmo_create(size, 0, &vmo), "vm_object_create");
1445 zx_vmar_map(zx_vmar_root_self(), ZX_VM_PERM_READ|ZX_VM_PERM_WRITE, 0, vmo, 0, size, &ptr),
1456 EXPECT_EQ(ZX_ERR_INVALID_ARGS, zx_vmo_clone(vmo, ZX_VMO_CLONE_COPY_ON_WRITE, 1, size, &clone_vmo[0]), "vm_clone");
1460 EXPECT_EQ(ZX_OK, zx_vmo_clone(vmo, ZX_VMO_CLONE_COPY_ON_WRITE, PAGE_SIZE, size, &clone_vmo[0]), "vm_clone");
1486 EXPECT_EQ(ZX_OK, zx_vmo_set_size(vmo, size + PAGE_SIZE), "extend the vmo");
1498 EXPECT_EQ(ZX_OK, zx_vmo_write(vmo, &val, size, sizeof(val)), "writing to original after extending");
1504 EXPECT_EQ(ZX_OK, zx_vmo_set_size(vmo, size + PAGE_SIZE * 2), "extend the vmo");
1507 EXPECT_EQ(ZX_OK, zx_vmo_set_size(vmo, 0), "truncate the vmo");
1518 EXPECT_EQ(ZX_OK, zx_handle_close(vmo), "handle_close");
1538 zx_handle_t vmo;
1539 ASSERT_EQ(zx_vmo_create(PAGE_SIZE, 0, &vmo),
1541 ASSERT_EQ(zx_object_set_property(vmo, ZX_PROP_NAME,
1544 ASSERT_EQ(get_handle_rights(vmo) & kOldVmoRights, kOldVmoRights);
1547 ASSERT_EQ(zx_handle_duplicate(vmo, kOldVmoRights, &reduced_rights_vmo),
1563 EXPECT_EQ(zx_object_get_property(vmo, ZX_PROP_NAME,
1574 EXPECT_EQ(zx_handle_close(vmo), ZX_OK);
1586 zx_handle_t vmo;
1587 ASSERT_EQ(zx_vmo_create(size, 0, &vmo), ZX_OK);
1592 0, vmo, 0, size, &ptr_rw), "map");
1597 EXPECT_EQ(ZX_OK, zx_vmo_set_size(vmo, 0u));
1602 EXPECT_EQ(ZX_OK, zx_handle_close(vmo));
1613 zx_handle_t vmo;
1614 ASSERT_EQ(zx_vmo_create(size, 0, &vmo), ZX_OK);
1618 vmo, ZX_VMO_CLONE_COPY_ON_WRITE, 0, size, &clone_vmo), "vm_clone");
1633 EXPECT_EQ(ZX_OK, zx_handle_close(vmo));
1644 zx_handle_t vmo;
1645 ASSERT_EQ(zx_vmo_create(size, 0, &vmo), ZX_OK);
1649 vmo, ZX_VMO_CLONE_COPY_ON_WRITE, 0, size, &clone_vmo), "vm_clone");
1659 EXPECT_EQ(ZX_OK, zx_vmo_set_size(vmo, 0u));
1664 EXPECT_EQ(ZX_OK, zx_handle_close(vmo));
1679 // In the main thread continually decommit the vmo with a little bit of
1684 // allocate a vmo
1686 zx_handle_t vmo;
1687 zx_status_t status = zx_vmo_create(len, 0, &vmo);
1694 0, vmo, 0, len, &ptr);
1748 // decommit the vmo
1749 status = zx_vmo_op_range(vmo, ZX_VMO_OP_DECOMMIT, 0, len, nullptr, 0);