Lines Matching defs:object

62  *	Virtual memory object module definitions.
81 * vm_object_t Virtual memory object.
86 * (o) per-object lock
114 blockcount_t busy; /* (a) object is busy, disallow page busy. */
116 struct vm_object *backing_object; /* object that I'm a shadow of */
117 vm_ooffset_t backing_object_offset;/* Offset in backing object */
193 #define OBJ_PG_DTOR 0x00000080 /* do not reset object, leave that
196 #define OBJ_SWAP 0x00000200 /* object swaps, type will be OBJT_SWAP
198 #define OBJ_SPLIT 0x00000400 /* object is being split */
236 extern struct mtx vm_object_list_mtx; /* lock for object list and count */
244 #define VM_OBJECT_ASSERT_LOCKED(object) \
245 rw_assert(&(object)->lock, RA_LOCKED)
246 #define VM_OBJECT_ASSERT_RLOCKED(object) \
247 rw_assert(&(object)->lock, RA_RLOCKED)
248 #define VM_OBJECT_ASSERT_WLOCKED(object) \
249 rw_assert(&(object)->lock, RA_WLOCKED)
250 #define VM_OBJECT_ASSERT_UNLOCKED(object) \
251 rw_assert(&(object)->lock, RA_UNLOCKED)
252 #define VM_OBJECT_LOCK_DOWNGRADE(object) \
253 rw_downgrade(&(object)->lock)
254 #define VM_OBJECT_RLOCK(object) \
255 rw_rlock(&(object)->lock)
256 #define VM_OBJECT_RUNLOCK(object) \
257 rw_runlock(&(object)->lock)
258 #define VM_OBJECT_SLEEP(object, wchan, pri, wmesg, timo) \
259 rw_sleep((wchan), &(object)->lock, (pri), (wmesg), (timo))
260 #define VM_OBJECT_TRYRLOCK(object) \
261 rw_try_rlock(&(object)->lock)
262 #define VM_OBJECT_TRYWLOCK(object) \
263 rw_try_wlock(&(object)->lock)
264 #define VM_OBJECT_TRYUPGRADE(object) \
265 rw_try_upgrade(&(object)->lock)
266 #define VM_OBJECT_WLOCK(object) \
267 rw_wlock(&(object)->lock)
268 #define VM_OBJECT_WOWNED(object) \
269 rw_wowned(&(object)->lock)
270 #define VM_OBJECT_WUNLOCK(object) \
271 rw_wunlock(&(object)->lock)
272 #define VM_OBJECT_UNLOCK(object) \
273 rw_unlock(&(object)->lock)
274 #define VM_OBJECT_DROP(object) \
275 lock_class_rw.lc_unlock(&(object)->lock.lock_object)
276 #define VM_OBJECT_PICKUP(object, state) \
277 lock_class_rw.lc_lock(&(object)->lock.lock_object, (state))
279 #define VM_OBJECT_ASSERT_PAGING(object) \
280 KASSERT(blockcount_read(&(object)->paging_in_progress) != 0, \
281 ("vm_object %p is not paging", object))
282 #define VM_OBJECT_ASSERT_REFERENCE(object) \
283 KASSERT((object)->reference_count != 0, \
284 ("vm_object %p is not referenced", object))
289 * The object must be locked or thread private.
292 vm_object_set_flag(vm_object_t object, u_int bits)
295 object->flags |= bits;
299 * Conditionally set the object's color, which (1) enables the allocation
302 * within the object at which a reservation may be allocated. In other
303 * words, the color determines the alignment of the object with respect
310 * The object must be locked.
313 vm_object_color(vm_object_t object, u_short color)
316 if ((object->flags & OBJ_COLORED) == 0) {
317 object->pg_color = color;
318 vm_object_set_flag(object, OBJ_COLORED);
323 vm_object_reserv(vm_object_t object)
326 if (object != NULL &&
327 (object->flags & (OBJ_COLORED | OBJ_FICTITIOUS)) == OBJ_COLORED) {
333 void vm_object_clear_flag(vm_object_t object, u_short bits);
334 void vm_object_pip_add(vm_object_t object, short i);
335 void vm_object_pip_wakeup(vm_object_t object);
336 void vm_object_pip_wakeupn(vm_object_t object, short i);
337 void vm_object_pip_wait(vm_object_t object, const char *waitid);
338 void vm_object_pip_wait_unlocked(vm_object_t object, const char *waitid);
340 void vm_object_busy(vm_object_t object);
341 void vm_object_unbusy(vm_object_t object);
342 void vm_object_busy_wait(vm_object_t object, const char *wmesg);
345 vm_object_busied(vm_object_t object)
348 return (blockcount_read(&object->busy) != 0);
350 #define VM_OBJECT_ASSERT_BUSY(object) MPASS(vm_object_busied((object)))
352 void umtx_shm_object_init(vm_object_t object);
353 void umtx_shm_object_terminated(vm_object_t object);
367 void vm_object_set_writeable_dirty_(vm_object_t object);
368 bool vm_object_mightbedirty(vm_object_t object);
369 bool vm_object_mightbedirty_(vm_object_t object);
371 int vm_object_kvme_type(vm_object_t object, struct vnode **vpp);
373 boolean_t vm_object_page_clean(vm_object_t object, vm_ooffset_t start,
375 void vm_object_page_noreuse(vm_object_t object, vm_pindex_t start,
377 void vm_object_page_remove(vm_object_t object, vm_pindex_t start,
383 int vm_object_set_memattr(vm_object_t object, vm_memattr_t memattr);
389 void vm_object_unwire(vm_object_t object, vm_ooffset_t offset,
391 struct vnode *vm_object_vnode(vm_object_t object);