• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/xnu-2782.1.97/osfmk/vm/

Lines Matching refs:pager

163  *	back data (the memory object, field "pager"), etc...
190 * memory objects. The pager memory objects associated
243 memory_object_t pager,
359 memory_object_t pager; /* pager we represent */
369 #define vm_object_hash(pager) \
370 ((int)((((uintptr_t)pager) >> VM_OBJECT_HASH_SHIFT) % VM_OBJECT_HASH_COUNT))
372 #define vm_object_lock_hash(pager) \
373 ((int)((((uintptr_t)pager) >> VM_OBJECT_HASH_SHIFT) % VM_OBJECT_HASH_LOCK_COUNT))
433 memory_object_t pager)
437 index = vm_object_lock_hash(pager);
452 * vm_object_hash_lookup looks up a pager in the hashtable
457 memory_object_t pager,
463 bucket = &vm_object_hashtable[vm_object_hash(pager)];
467 if (entry->pager == pager) {
481 * pager / cache object association in the hashtable.
493 bucket = &vm_object_hashtable[vm_object_hash(entry->pager)];
503 memory_object_t pager)
508 entry->pager = pager;
665 vm_object_template.pager = MEMORY_OBJECT_NULL;
1015 * that reference would remain, inform the pager
1019 memory_object_t pager = object->pager;
1024 if (pager != MEMORY_OBJECT_NULL) {
1029 memory_object_last_unmap(pager);
1742 (object->pager != NULL || object->shadow_severed)) {
1789 lck = vm_object_hash_lock_spin(object->pager);
1873 memory_object_t pager;
1884 * from its pager, to properly account for compressed pages.
1893 pager = object->pager;
1894 object->pager = MEMORY_OBJECT_NULL;
1896 if (pager != MEMORY_OBJECT_NULL)
1983 } else if (((object->temporary && !object->can_persist) || (pager == MEMORY_OBJECT_NULL))) {
1993 * If the pager has not already been released by
1997 if (pager != MEMORY_OBJECT_NULL) {
1999 vm_object_release_pager(pager, object->hashed);
2321 * ceased before we break the association with the pager
2361 * Purpose: Wake up anyone waiting for termination of a pager.
2366 memory_object_t pager)
2376 lck = vm_object_hash_lock_spin(pager);
2377 entry = vm_object_hash_lookup(pager, TRUE);
2384 thread_wakeup((event_t) pager);
2391 * Purpose: Terminate the pager and, upon completion,
2400 memory_object_t pager,
2405 * Terminate the pager.
2408 (void) memory_object_terminate(pager);
2415 vm_object_pager_wakeup(pager);
2418 * Release reference to pager.
2420 memory_object_deallocate(pager);
2441 * Remove the pager association immediately.
2457 * Rip out the pager from the vm_object now...
2459 lck = vm_object_hash_lock_spin(object->pager);
2463 old_pager = object->pager;
2464 object->pager = MEMORY_OBJECT_NULL;
2470 * through before we nulled out the pager) to subside.
2486 * vnode pager (it is holding a named reference when making
2643 memory_object_t pager;
2647 * ask the pager about this page.
2682 pager = object->pager;
2686 pager,
2688 0, /* just poke the pager */
2771 * then if not, check the existence map or with the pager.
4361 * pager: the memory_object itself, supplied by
4389 * use the "pager" field as the wait event.]
4408 * the pager field and release the memory object references.
4416 * Because the pager field may be cleared spontaneously, it
4423 * During various paging operations, the pager reference found in the
4428 * [Operations that alter the validity of the pager values include the
4437 * pager; if no such object exists, create one,
4438 * and initialize the pager.
4442 memory_object_t pager,
4455 if (pager == MEMORY_OBJECT_NULL)
4466 lck = vm_object_hash_lock_spin(pager);
4468 entry = vm_object_hash_lookup(pager, FALSE);
4478 new_entry = vm_object_hash_entry_alloc(pager);
4480 lck = vm_object_hash_lock_spin(pager);
4502 assert_wait((event_t) pager, THREAD_UNINT);
4506 lck = vm_object_hash_lock_spin(pager);
4566 "vm_o_enter: pager 0x%x obj 0x%x must_init %d\n",
4567 pager, object, must_init, 0, 0);
4597 memory_object_reference(pager);
4599 object->pager = pager;
4612 * Let the pager know we're using it.
4615 (void) memory_object_init(pager,
4651 object, object->pager, internal, 0,0);
4673 memory_object_t pager;
4737 * Create the [internal] pager, and associate it with this object.
4754 &pager);
4759 entry = vm_object_hash_entry_alloc(pager);
4762 lck = vm_object_hash_lock_spin(pager);
4773 if (vm_object_enter(pager, object->vo_size, TRUE, TRUE, FALSE) != object)
4779 memory_object_deallocate(pager);
4793 memory_object_t pager;
4839 * Create the [internal] pager, and associate it with this object.
4853 &pager);
4854 if (pager == NULL) {
4856 "no pager for object %p size 0x%llx\n",
4861 entry = vm_object_hash_entry_alloc(pager);
4864 lck = vm_object_hash_lock_spin(pager);
4875 pager_object = vm_object_enter(pager, object->vo_size, TRUE, TRUE, FALSE);
4878 panic("vm_object_compressor_pager_create: mismatch (pager: %p, pager_object: %p, orig_object: %p, orig_object size: 0x%llx)\n", pager, pager_object, object, (uint64_t) object->vo_size);
4884 memory_object_deallocate(pager);
4897 * Eliminate the pager/object association
4898 * for this pager.
4906 memory_object_t pager;
4908 if ((pager = object->pager) != MEMORY_OBJECT_NULL) {
4911 entry = vm_object_hash_lookup(pager, FALSE);
4968 backing_object->pager,
4985 (vm_compressor_pager_state_get(object->pager,
5006 object->pager,
5009 backing_object->pager,
5071 * The encryption key includes the "pager" and the
5136 object->pager != MEMORY_OBJECT_NULL &&
5137 backing_object->pager != MEMORY_OBJECT_NULL) {
5142 } else if (backing_object->pager != MEMORY_OBJECT_NULL) {
5147 (object->pager == MEMORY_OBJECT_NULL)) ||
5149 (backing_object->pager == MEMORY_OBJECT_NULL)));
5152 object->pager == MEMORY_OBJECT_NULL);
5156 * Move the pager from backing_object to object.
5166 assert(object->pager == NULL);
5167 object->pager = backing_object->pager;
5172 lck = vm_object_hash_lock_spin(backing_object->pager);
5173 entry = vm_object_hash_lookup(object->pager, FALSE);
5190 /* the backing_object has lost its pager: reset all fields */
5195 backing_object->pager = NULL;
5207 * the pager is invoked for zero fill pages. If analysis shows
5249 * pager left, and no object references within it,
5261 if (backing_object->pager != MEMORY_OBJECT_NULL) {
5262 /* ... unless it has a pager; need to terminate pager too */
5270 assert(backing_object->pager == NULL);
5591 * The parent must not have a pager created for it,
5593 * into the parent that its pager doesn't know about
5598 * to the pager, we can collapse them.
5634 "vm_object_collapse: %x to %x, pager %x, pager_control %x\n",
5636 backing_object->pager,
5680 * If the backing object has a pager but no pagemap,
5699 * If the object has a pager but no pagemap,
5884 * already live in the parent or its pager.
5915 * guaranteed by not having a pager.
6068 * has no pager, and we only create existence info
6238 * which are backed by the pager identified by the caller, (pager_ops).
6268 if (object->pager &&
6269 (pager_ops == object->pager->mo_pager_ops)) {
6278 * that it is initialized and has only a pager's
6321 memory_object_t pager,
6330 if (pager == MEMORY_OBJECT_NULL)
6333 lck = vm_object_hash_lock_spin(pager);
6334 entry = vm_object_hash_lookup(pager, FALSE);
6342 if ((object = vm_object_enter(pager, size, FALSE, FALSE, TRUE)) == VM_OBJECT_NULL) {
6647 if (object->pager != NULL &&
6662 pgcount = vm_compressor_pager_get_count(object->pager);
6664 pgcount = vm_compressor_pager_reap_pages(object->pager, flags);
6665 vm_compressor_pager_count(object->pager,
6673 assert(vm_compressor_pager_get_count(object->pager)
6691 * pager if there's any kind of operation in
6906 object->pager == NULL)
7399 * other kind of activities not linked to the pager). After we're
7401 * object locked, to guarantee that no one tries to access its pager.
7511 __TRANSPOSE_FIELD(pager);
7581 hash_lck = vm_object_hash_lock_spin(object2->pager);
7582 hash_entry = vm_object_hash_lookup(object2->pager, FALSE);
7588 hash_lck = vm_object_hash_lock_spin(object1->pager);
7589 hash_entry = vm_object_hash_lookup(object1->pager, FALSE);
7625 * deallocating a real pager.
7653 * *length == maximum cluster pager can handle
7718 if (object->pager == MEMORY_OBJECT_NULL)
7719 goto out; /* pager is gone for this object, nothing more to do */
7722 vnode_pager_get_isSSD(object->pager, &isSSD);
7748 vnode_pager_get_object_size(object->pager, &object_size);
7843 if (vnode_pager_get_throttle_io_limit(object->pager, &throttle_limit) == KERN_SUCCESS) {
7936 * we know for a fact that the pager can't provide the page
7972 * we know for a fact that the pager can't provide the page
8251 * Used to point a pager directly to a range of memory (when the pager may be associated
8532 * one and hand it to the default pager.
8621 memory_object_t pager;
8626 pager = object->pager;
8628 if (!object->pager_ready || pager == MEMORY_OBJECT_NULL) {
8639 kr = memory_object_data_reclaim(pager, TRUE);
8660 if(vnode_pager_get_object_devvp(o->pager, (uintptr_t *)&devvp) != KERN_SUCCESS)
8741 if(!object || !object->pager ||
8742 vnode_pager_get_object_devvp(object->pager, (uintptr_t *)&devvp) != KERN_SUCCESS) {