Lines Matching defs:pager

116  *	back data (the memory object, field "pager"), etc...
143 * memory objects. The pager memory objects associated
196 memory_object_t pager,
310 memory_object_t pager; /* pager we represent */
320 #define vm_object_hash(pager) \
321 ((int)((((uintptr_t)pager) >> VM_OBJECT_HASH_SHIFT) % VM_OBJECT_HASH_COUNT))
323 #define vm_object_lock_hash(pager) \
324 ((int)((((uintptr_t)pager) >> VM_OBJECT_HASH_SHIFT) % VM_OBJECT_HASH_LOCK_COUNT))
355 memory_object_t pager)
359 index = vm_object_lock_hash(pager);
374 * vm_object_hash_lookup looks up a pager in the hashtable
379 memory_object_t pager,
385 bucket = &vm_object_hashtable[vm_object_hash(pager)];
389 if (entry->pager == pager) {
403 * pager / cache object association in the hashtable.
413 bucket = &vm_object_hashtable[vm_object_hash(entry->pager)];
423 memory_object_t pager)
428 entry->pager = pager;
574 vm_object_template.pager = MEMORY_OBJECT_NULL;
849 * that reference would remain, inform the pager
853 memory_object_t pager = object->pager;
858 if (pager != MEMORY_OBJECT_NULL) {
863 memory_object_last_unmap(pager);
1573 (object->pager != NULL || object->shadow_severed)) {
1620 lck = vm_object_hash_lock_spin(object->pager);
1704 memory_object_t pager;
1712 pager = object->pager;
1713 object->pager = MEMORY_OBJECT_NULL;
1715 if (pager != MEMORY_OBJECT_NULL)
1750 } else if (((object->temporary && !object->can_persist) || (pager == MEMORY_OBJECT_NULL))) {
1760 * If the pager has not already been released by
1764 if (pager != MEMORY_OBJECT_NULL) {
1766 vm_object_release_pager(pager, object->hashed);
2078 * ceased before we break the association with the pager
2118 * Purpose: Wake up anyone waiting for termination of a pager.
2123 memory_object_t pager)
2133 lck = vm_object_hash_lock_spin(pager);
2134 entry = vm_object_hash_lookup(pager, TRUE);
2141 thread_wakeup((event_t) pager);
2148 * Purpose: Terminate the pager and, upon completion,
2157 memory_object_t pager,
2162 * Terminate the pager.
2165 (void) memory_object_terminate(pager);
2172 vm_object_pager_wakeup(pager);
2175 * Release reference to pager.
2177 memory_object_deallocate(pager);
2198 * Remove the pager association immediately.
2214 * Rip out the pager from the vm_object now...
2216 lck = vm_object_hash_lock_spin(object->pager);
2220 old_pager = object->pager;
2221 object->pager = MEMORY_OBJECT_NULL;
2227 * through before we nulled out the pager) to subside.
2243 * vnode pager (it is holding a named reference when making
2400 memory_object_t pager;
2404 * ask the pager about this page.
2430 pager = object->pager;
2434 pager,
2436 0, /* just poke the pager */
2508 * then if not, check the existence map or with the pager.
3969 * pager: the memory_object itself, supplied by
3997 * use the "pager" field as the wait event.]
4016 * the pager field and release the memory object references.
4024 * Because the pager field may be cleared spontaneously, it
4031 * During various paging operations, the pager reference found in the
4036 * [Operations that alter the validity of the pager values include the
4045 * pager; if no such object exists, create one,
4046 * and initialize the pager.
4050 memory_object_t pager,
4063 if (pager == MEMORY_OBJECT_NULL)
4074 lck = vm_object_hash_lock_spin(pager);
4076 entry = vm_object_hash_lookup(pager, FALSE);
4086 new_entry = vm_object_hash_entry_alloc(pager);
4088 lck = vm_object_hash_lock_spin(pager);
4108 assert_wait((event_t) pager, THREAD_UNINT);
4112 lck = vm_object_hash_lock_spin(pager);
4172 "vm_o_enter: pager 0x%x obj 0x%x must_init %d\n",
4173 pager, object, must_init, 0, 0);
4203 memory_object_reference(pager);
4205 object->pager = pager;
4218 * Let the pager know we're using it.
4221 (void) memory_object_init(pager,
4257 object, object->pager, internal, 0,0);
4279 memory_object_t pager;
4341 * Create the [internal] pager, and associate it with this object.
4358 &pager);
4363 entry = vm_object_hash_entry_alloc(pager);
4365 lck = vm_object_hash_lock_spin(pager);
4375 if (vm_object_enter(pager, object->vo_size, TRUE, TRUE, FALSE) != object)
4381 memory_object_deallocate(pager);
4394 * Eliminate the pager/object association
4395 * for this pager.
4403 memory_object_t pager;
4405 if ((pager = object->pager) != MEMORY_OBJECT_NULL) {
4408 entry = vm_object_hash_lookup(pager, FALSE);
4488 * The encryption key includes the "pager" and the
4539 assert((!object->pager_created && (object->pager == MEMORY_OBJECT_NULL))
4541 && (backing_object->pager == MEMORY_OBJECT_NULL)));
4543 assert(!object->pager_created && object->pager == MEMORY_OBJECT_NULL);
4546 if (backing_object->pager != MEMORY_OBJECT_NULL) {
4550 * Move the pager from backing_object to object.
4559 object->pager = backing_object->pager;
4564 lck = vm_object_hash_lock_spin(backing_object->pager);
4565 entry = vm_object_hash_lookup(object->pager, FALSE);
4593 * the pager is invoked for zero fill pages. If analysis shows
4632 * pager left, and no object references within it,
4931 * The parent must not have a pager created for it,
4933 * into the parent that its pager doesn't know about
4938 * to the pager, we can collapse them.
4973 "vm_object_collapse: %x to %x, pager %x, pager_control %x\n",
4975 backing_object->pager,
5019 * If the backing object has a pager but no pagemap,
5038 * If the object has a pager but no pagemap,
5219 * already live in the parent or its pager.
5247 * guaranteed by not having a pager.
5400 * has no pager, and we only create existence info
5570 * which are backed by the pager identified by the caller, (pager_ops).
5600 if (object->pager &&
5601 (pager_ops == object->pager->mo_pager_ops)) {
5610 * that it is initialized and has only a pager's
5653 memory_object_t pager,
5662 if (pager == MEMORY_OBJECT_NULL)
5665 lck = vm_object_hash_lock_spin(pager);
5666 entry = vm_object_hash_lookup(pager, FALSE);
5674 if ((object = vm_object_enter(pager, size, FALSE, FALSE, TRUE)) == VM_OBJECT_NULL) {
6482 * other kind of activities not linked to the pager). After we're
6484 * object locked, to guarantee that no one tries to access its pager.
6594 __TRANSPOSE_FIELD(pager);
6664 hash_lck = vm_object_hash_lock_spin(object2->pager);
6665 hash_entry = vm_object_hash_lookup(object2->pager, FALSE);
6671 hash_lck = vm_object_hash_lock_spin(object1->pager);
6672 hash_entry = vm_object_hash_lookup(object1->pager, FALSE);
6708 * deallocating a real pager.
6736 * *length == maximum cluster pager can handle
6810 if (object->pager == MEMORY_OBJECT_NULL)
6811 goto out; /* pager is gone for this object, nothing more to do */
6814 vnode_pager_get_isSSD(object->pager, &isSSD);
6842 vnode_pager_get_object_size(object->pager, &object_size);
6937 if (vnode_pager_check_hard_throttle(object->pager, &throttle_limit, *io_streaming) == KERN_SUCCESS) {
7032 * we know for a fact that the pager can't provide the page
7064 * we know for a fact that the pager can't provide the page
7591 memory_object_t pager;
7596 pager = object->pager;
7598 if (!object->pager_ready || pager == MEMORY_OBJECT_NULL) {
7609 kr = memory_object_data_reclaim(pager, TRUE);