vm_page.h (254649) | vm_page.h (255608) |
---|---|
1/*- 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * The Mach Operating System project at Carnegie-Mellon University. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 43 unchanged lines hidden (view full) --- 52 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 53 * School of Computer Science 54 * Carnegie Mellon University 55 * Pittsburgh PA 15213-3890 56 * 57 * any improvements or extensions that they make and grant Carnegie the 58 * rights to redistribute these changes. 59 * | 1/*- 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * The Mach Operating System project at Carnegie-Mellon University. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 43 unchanged lines hidden (view full) --- 52 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 53 * School of Computer Science 54 * Carnegie Mellon University 55 * Pittsburgh PA 15213-3890 56 * 57 * any improvements or extensions that they make and grant Carnegie the 58 * rights to redistribute these changes. 59 * |
60 * $FreeBSD: head/sys/vm/vm_page.h 254649 2013-08-22 07:39:53Z kib $ | 60 * $FreeBSD: head/sys/vm/vm_page.h 255608 2013-09-16 06:25:54Z kib $ |
61 */ 62 63/* 64 * Resident memory system definitions. 65 */ 66 67#ifndef _VM_PAGE_ 68#define _VM_PAGE_ --- 68 unchanged lines hidden (view full) --- 137 u_long v; 138 } memguard; 139 } plinks; 140 TAILQ_ENTRY(vm_page) listq; /* pages in same object (O) */ 141 vm_object_t object; /* which object am I in (O,P) */ 142 vm_pindex_t pindex; /* offset into object (O,P) */ 143 vm_paddr_t phys_addr; /* physical address of page */ 144 struct md_page md; /* machine dependant stuff */ | 61 */ 62 63/* 64 * Resident memory system definitions. 65 */ 66 67#ifndef _VM_PAGE_ 68#define _VM_PAGE_ --- 68 unchanged lines hidden (view full) --- 137 u_long v; 138 } memguard; 139 } plinks; 140 TAILQ_ENTRY(vm_page) listq; /* pages in same object (O) */ 141 vm_object_t object; /* which object am I in (O,P) */ 142 vm_pindex_t pindex; /* offset into object (O,P) */ 143 vm_paddr_t phys_addr; /* physical address of page */ 144 struct md_page md; /* machine dependant stuff */ |
145 u_int wire_count; /* wired down maps refs (P) */ 146 volatile u_int busy_lock; /* busy owners lock */ 147 uint16_t hold_count; /* page hold count (P) */ 148 uint16_t flags; /* page PG_* flags (P) */ 149 uint8_t aflags; /* access is atomic */ 150 uint8_t oflags; /* page VPO_* flags (O) */ |
|
145 uint8_t queue; /* page queue index (P,Q) */ 146 int8_t segind; | 151 uint8_t queue; /* page queue index (P,Q) */ 152 int8_t segind; |
147 short hold_count; /* page hold count (P) */ | |
148 uint8_t order; /* index of the buddy queue */ 149 uint8_t pool; | 153 uint8_t order; /* index of the buddy queue */ 154 uint8_t pool; |
150 u_short cow; /* page cow mapping count (P) */ 151 u_int wire_count; /* wired down maps refs (P) */ 152 uint8_t aflags; /* access is atomic */ 153 uint8_t oflags; /* page VPO_* flags (O) */ 154 uint16_t flags; /* page PG_* flags (P) */ | |
155 u_char act_count; /* page usage count (P) */ | 155 u_char act_count; /* page usage count (P) */ |
156 u_char __pad0; /* unused padding */ | |
157 /* NOTE that these must support one bit per DEV_BSIZE in a page */ 158 /* so, on normal X86 kernels, they must be at least 8 bits wide */ 159 vm_page_bits_t valid; /* map of valid DEV_BSIZE chunks (O) */ 160 vm_page_bits_t dirty; /* map of dirty DEV_BSIZE chunks (M) */ | 156 /* NOTE that these must support one bit per DEV_BSIZE in a page */ 157 /* so, on normal X86 kernels, they must be at least 8 bits wide */ 158 vm_page_bits_t valid; /* map of valid DEV_BSIZE chunks (O) */ 159 vm_page_bits_t dirty; /* map of dirty DEV_BSIZE chunks (M) */ |
161 volatile u_int busy_lock; /* busy owners lock */ | |
162}; 163 164/* 165 * Page flags stored in oflags: 166 * 167 * Access to these page flags is synchronized by the lock on the object 168 * containing the page (O). 169 * --- 307 unchanged lines hidden (view full) --- 477void vm_page_clear_dirty (vm_page_t, int, int); 478void vm_page_set_invalid (vm_page_t, int, int); 479int vm_page_is_valid (vm_page_t, int, int); 480void vm_page_test_dirty (vm_page_t); 481vm_page_bits_t vm_page_bits(int base, int size); 482void vm_page_zero_invalid(vm_page_t m, boolean_t setvalid); 483void vm_page_free_toq(vm_page_t m); 484void vm_page_zero_idle_wakeup(void); | 160}; 161 162/* 163 * Page flags stored in oflags: 164 * 165 * Access to these page flags is synchronized by the lock on the object 166 * containing the page (O). 167 * --- 307 unchanged lines hidden (view full) --- 475void vm_page_clear_dirty (vm_page_t, int, int); 476void vm_page_set_invalid (vm_page_t, int, int); 477int vm_page_is_valid (vm_page_t, int, int); 478void vm_page_test_dirty (vm_page_t); 479vm_page_bits_t vm_page_bits(int base, int size); 480void vm_page_zero_invalid(vm_page_t m, boolean_t setvalid); 481void vm_page_free_toq(vm_page_t m); 482void vm_page_zero_idle_wakeup(void); |
485void vm_page_cowfault (vm_page_t); 486int vm_page_cowsetup(vm_page_t); 487void vm_page_cowclear (vm_page_t); | |
488 489void vm_page_dirty_KBI(vm_page_t m); 490void vm_page_lock_KBI(vm_page_t m, const char *file, int line); 491void vm_page_unlock_KBI(vm_page_t m, const char *file, int line); 492int vm_page_trylock_KBI(vm_page_t m, const char *file, int line); 493#if defined(INVARIANTS) || defined(INVARIANT_SUPPORT) 494void vm_page_assert_locked_KBI(vm_page_t m, const char *file, int line); 495void vm_page_lock_assert_KBI(vm_page_t m, int a, const char *file, int line); --- 172 unchanged lines hidden --- | 483 484void vm_page_dirty_KBI(vm_page_t m); 485void vm_page_lock_KBI(vm_page_t m, const char *file, int line); 486void vm_page_unlock_KBI(vm_page_t m, const char *file, int line); 487int vm_page_trylock_KBI(vm_page_t m, const char *file, int line); 488#if defined(INVARIANTS) || defined(INVARIANT_SUPPORT) 489void vm_page_assert_locked_KBI(vm_page_t m, const char *file, int line); 490void vm_page_lock_assert_KBI(vm_page_t m, int a, const char *file, int line); --- 172 unchanged lines hidden --- |