Annotation of XNU/osfmk/kern/thread_swap.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
        !             3:  *
        !             4:  * @APPLE_LICENSE_HEADER_START@
        !             5:  * 
        !             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.
        !            11:  * 
        !            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
        !            18:  * under the License.
        !            19:  * 
        !            20:  * @APPLE_LICENSE_HEADER_END@
        !            21:  */
        !            22: /*
        !            23:  * @OSF_COPYRIGHT@
        !            24:  */
        !            25: /* 
        !            26:  * Mach Operating System
        !            27:  * Copyright (c) 1989 Carnegie-Mellon University
        !            28:  * Copyright (c) 1988 Carnegie-Mellon University
        !            29:  * Copyright (c) 1987 Carnegie-Mellon University
        !            30:  * All rights reserved.  The CMU software License Agreement specifies
        !            31:  * the terms and conditions for use and redistribution.
        !            32:  */
        !            33: /*
        !            34:  * HISTORY
        !            35:  * 
        !            36:  * Revision 1.1.1.1  1998/09/22 21:05:32  wsanchez
        !            37:  * Import of Mac OS X kernel (~semeria)
        !            38:  *
        !            39:  * Revision 1.1.1.1  1998/03/07 02:25:57  wsanchez
        !            40:  * Import of OSF Mach kernel (~mburg)
        !            41:  *
        !            42:  * Revision 1.1.11.7  1995/06/13  18:58:49  bolinger
        !            43:  *     Fix ri-osc CR1391:  New return type from thread_swapin_blocking().
        !            44:  *     [1995/06/13  18:56:52  bolinger]
        !            45:  *
        !            46:  * Revision 1.1.11.6  1995/06/05  21:46:36  dwm
        !            47:  *     ri-osc CR1357 - ensure activation being returned to is swapped in.
        !            48:  *     added thread_swapin_blocking [bolinger]
        !            49:  *     [1995/06/05  21:34:08  dwm]
        !            50:  * 
        !            51:  * Revision 1.1.11.5  1995/05/19  15:48:34  bernadat
        !            52:  *     Let thread swapping be configurable.
        !            53:  *     [95/05/19            bernadat]
        !            54:  * 
        !            55:  * Revision 1.1.11.4  1995/04/07  19:04:46  barbou
        !            56:  *     Merged into mainline.
        !            57:  *     [95/03/09            barbou]
        !            58:  * 
        !            59:  * Revision 1.1.12.2  1995/02/13  15:59:18  barbou
        !            60:  *     Merged/ported to MK6.
        !            61:  * 
        !            62:  * Revision 1.1.9.3  1994/08/12  14:22:30  barbou
        !            63:  *     Overwritten with copy from IK.
        !            64:  *     Old kern/thread_swap.h was renamed kern/thread_handoff.c.
        !            65:  *     Added prototype for thread_swapout and thread_swapout_enqueue.
        !            66:  *     [94/07/28            barbou]
        !            67:  * 
        !            68:  * Revision 3.0.3.2  1994/01/20  19:53:20  chasb
        !            69:  *     Remove excessively restrictive copyright notice
        !            70:  *     [1994/01/20  17:50:56  chasb]
        !            71:  * 
        !            72:  * Revision 3.0.3.1  1993/12/20  21:07:59  gupta
        !            73:  *     Expanded C O P Y R I G H T
        !            74:  *     [1993/12/17  22:19:43  gupta]
        !            75:  * 
        !            76:  * Revision 3.0  1992/12/31  22:08:45  ede
        !            77:  *     Initial revision for OSF/1 R1.3
        !            78:  * 
        !            79:  * Revision 1.6.2.2  1992/01/22  22:14:42  gmf
        !            80:  *     Added TH_SW_TASK_SWAPPING flag to swap_state.  This state
        !            81:  *     indicates that the thread is about to be swapped out by
        !            82:  *     the task swapping mechanism, and prevents the thread
        !            83:  *     swapper from doing it first.
        !            84:  *     [1992/01/20  22:06:36  gmf]
        !            85:  * 
        !            86:  * Revision 1.6  1991/08/15  19:16:39  devrcs
        !            87:  *     Prototype all functions, change name to thread_swapper_init.
        !            88:  *     [91/06/26  10:45:44  jeffc]
        !            89:  * 
        !            90:  * Revision 1.5  91/06/10  16:19:07  devrcs
        !            91:  *     Additions to allow thread to be made non-swappable on swap in,
        !            92:  *     change thread_swapin interface.
        !            93:  *     [91/05/30  15:56:38  jeffc]
        !            94:  * 
        !            95:  * Revision 1.4  91/03/04  17:07:14  devrcs
        !            96:  *     A small step toward ansiC: commented else/endif/elif trailers.
        !            97:  *     [91/01/12  16:39:43  dwm]
        !            98:  * 
        !            99:  * Revision 1.3  90/10/07  13:57:13  devrcs
        !           100:  *     Added EndLog Marker.
        !           101:  *     [90/09/28  09:59:56  gm]
        !           102:  * 
        !           103:  * Revision 1.2  90/01/02  20:06:28  gm
        !           104:  *     Fixes for first snapshot.
        !           105:  * 
        !           106:  * Revision 1.1  89/10/16  19:36:28  gm
        !           107:  *     Mach 2.5 and Encore 0.6 merge
        !           108:  * 
        !           109:  * Revision 2.4  89/03/09  20:17:07  rpd
        !           110:  *     More cleanup.
        !           111:  * 
        !           112:  * Revision 2.3  89/02/25  18:10:24  gm0w
        !           113:  *     Kernel code cleanup.
        !           114:  *     Put entire file under #indef KERNEL.
        !           115:  *     [89/02/15            mrt]
        !           116:  * 
        !           117:  * Revision 0.0  88/01/21            dbg
        !           118:  *     Created.
        !           119:  *     [88/01/21            dbg]
        !           120:  * 
        !           121:  * $EndLog$
        !           122:  */
        !           123: /*
        !           124:  *     File:   kern/thread_swap.h
        !           125:  *
        !           126:  *     Declarations of thread swap_states and swapping routines.
        !           127:  */
        !           128: 
        !           129: /*
        !           130:  *     Swap states for threads.
        !           131:  */
        !           132: 
        !           133: #ifndef        _KERN_THREAD_SWAP_H_
        !           134: #define _KERN_THREAD_SWAP_H_
        !           135: 
        !           136: #if 1 /* USED CODE */
        !           137: 
        !           138: /*
        !           139:  * exported routines
        !           140:  */
        !           141: 
        !           142: extern void swapper_init();
        !           143: extern void thread_swapin(thread_t thread);
        !           144: extern void thread_doswapin(thread_t thread);
        !           145: extern void swapin_thread();
        !           146: 
        !           147: #define thread_swappable(act, bool)
        !           148: 
        !           149: 
        !           150: #else  /* UNUSED SWAPPER CODE */
        !           151: #if    THREAD_SWAPPER
        !           152: #define        TH_SW_STATE             7       /* mask of swap state bits */
        !           153: #define TH_SW_UNSWAPPABLE      1       /* not swappable */
        !           154: #define TH_SW_IN               2       /* swapped in */
        !           155: #define TH_SW_GOING_OUT                3       /* being swapped out */
        !           156: #define TH_SW_WANT_IN          4       /* being swapped out, but should
        !           157:                                           immediately be swapped in */
        !           158: #define TH_SW_OUT              5       /* swapped out */
        !           159: #define TH_SW_COMING_IN                6       /* queued for swapin, or being
        !           160:                                           swapped in */
        !           161: 
        !           162: #define TH_SW_MAKE_UNSWAPPABLE 8       /*not state, command to swapin_thread */
        !           163: 
        !           164: /* 
        !           165:  * This flag is only used by the task swapper.  It implies that
        !           166:  * the thread is about to be swapped, but hasn't yet.
        !           167:  */
        !           168: #define TH_SW_TASK_SWAPPING    0x10
        !           169: 
        !           170: /*
        !           171:  *     exported routines
        !           172:  */
        !           173: extern void    thread_swapper_init(void);
        !           174: extern void    swapin_thread(void);
        !           175: extern void    swapout_thread(void);
        !           176: extern void    thread_doswapin(thread_act_t thr_act);
        !           177: extern void    thread_swapin(thread_act_t thr_act,
        !           178:                              boolean_t make_unswappable);
        !           179: extern boolean_t
        !           180:                thread_swapin_blocking(thread_act_t thr_act);
        !           181: extern void    thread_swapout(thread_act_t thr_act);
        !           182: extern void    swapout_threads(boolean_t now);
        !           183: extern void    thread_swapout_enqueue(thread_act_t thr_act);
        !           184: extern void    thread_swap_disable(thread_act_t thr_act);
        !           185: 
        !           186: extern void    thread_swappable(thread_act_t thr_act, boolean_t swappable);
        !           187: 
        !           188: #else  /* THREAD_SWAPPER */
        !           189: #define                thread_swappable(thr_act, swappable)
        !           190: #endif /* THREAD_SWAPPER */
        !           191: 
        !           192: #endif /* UNUSED SWAPPER CODE */
        !           193: 
        !           194: #endif /*_KERN_THREAD_SWAP_H_*/
        !           195: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.