]>
git.saurik.com Git - apple/xnu.git/blob - osfmk/kern/task_swap.h
2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
4 * @APPLE_LICENSE_HEADER_START@
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License"). You may not use this file except in compliance with the
9 * License. Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17 * License for the specific language governing rights and limitations
20 * @APPLE_LICENSE_HEADER_END@
28 * Revision 1.1.1.1 1998/09/22 21:05:32 wsanchez
29 * Import of Mac OS X kernel (~semeria)
31 * Revision 1.1.1.1 1998/03/07 02:25:56 wsanchez
32 * Import of OSF Mach kernel (~mburg)
34 * Revision 1.1.4.1 1995/04/07 19:02:38 barbou
35 * Merged into mainline.
38 * Revision 1.1.2.2 1995/02/13 15:35:45 barbou
39 * Merged/ported to MK6.
41 * Revision 1.1.1.3 94/08/12 15:44:39 barbou
42 * VM Merge - Task Swapper.
44 * Changed host_priv_t into host_t.
47 * Revision 1.1.1.2 1994/07/28 15:33:46 barbou
50 * Revision 3.0.3.2 1994/01/20 19:53:01 chasb
51 * Remove excessively restrictive copyright notice
52 * [1994/01/20 17:50:40 chasb]
54 * Revision 3.0.3.1 1993/12/20 21:06:49 gupta
55 * Expanded C O P Y R I G H T
56 * [1993/12/17 22:19:22 gupta]
58 * Revision 3.0 1992/12/31 22:08:24 ede
59 * Initial revision for OSF/1 R1.3
61 * Revision 1.1.4.5 1992/03/16 18:02:52 gmf
62 * Add TASK_SW_ELIGIBLE flag to swap_flags; prototype
63 * task_swapout_eligible, task_swapout_ineligible.
64 * [1992/02/12 22:01:48 gmf]
66 * Revision 1.1.4.4 1992/01/22 22:14:13 gmf
67 * Change prototype for task_swappable() to use host_priv_t
69 * [1992/01/17 17:48:13 gmf]
71 * Revision 1.1.4.3 1991/12/10 17:20:55 gmf
72 * Add extern declaration for new thread.
73 * Changed TASK_SW_WAIT flag to TASK_SW_WANT_IN.
74 * [1991/12/10 16:19:10 gmf]
76 * Revision 1.1.4.2 1991/11/21 21:48:35 mmp
77 * initial task swapping code
78 * [1991/11/21 21:01:37 mmp]
84 * File: kern/task_swap.h
86 * Task residency management primitives declarations.
89 #ifndef _KERN_TASK_SWAP_H_
90 #define _KERN_TASK_SWAP_H_
92 #include <kern/host.h>
97 #define TASK_SW_UNSWAPPABLE 1 /* not swappable */
98 #define TASK_SW_IN 2 /* swapped in (resident) */
99 #define TASK_SW_OUT 3 /* swapped out (non-resident) */
100 #define TASK_SW_COMING_IN 4 /* about to be swapped in */
101 #define TASK_SW_GOING_OUT 5 /* being swapped out */
106 #define TASK_SW_MAKE_UNSWAPPABLE 0x01 /* make it unswappable */
107 #define TASK_SW_WANT_IN 0x02 /* sleeping on state */
108 #define TASK_SW_ELIGIBLE 0x04 /* eligible for swapping */
113 extern void task_swapper_init(void);
114 extern kern_return_t
task_swapin(
116 boolean_t
); /* make_unswappable */
117 extern kern_return_t
task_swapout(task_t
/* task */);
118 extern void task_swapper(void);
119 extern void task_swap_swapout_thread(void);
120 extern void compute_vm_averages(void);
121 extern kern_return_t
task_swappable(
122 host_priv_t
, /* host */
124 boolean_t
); /* swappable */
125 extern void task_swapout_eligible(task_t
/* task */);
126 extern void task_swapout_ineligible(task_t
/* task */);
127 extern void swapout_ast(void);
129 #endif /* _KERN_TASK_SWAP_H_ */