Annotation of XNU/osfmk/mach/processor_set.defs, revision 1.1.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_FREE_COPYRIGHT@
                     24:  */
                     25: /* 
                     26:  * Mach Operating System
                     27:  * Copyright (c) 1991,1990,1989 Carnegie Mellon University
                     28:  * All Rights Reserved.
                     29:  * 
                     30:  * Permission to use, copy, modify and distribute this software and its
                     31:  * documentation is hereby granted, provided that both the copyright
                     32:  * notice and this permission notice appear in all copies of the
                     33:  * software, derivative works or modified versions, and any portions
                     34:  * thereof, and that both notices appear in supporting documentation.
                     35:  * 
                     36:  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
                     37:  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
                     38:  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
                     39:  * 
                     40:  * Carnegie Mellon requests users of this software to return to
                     41:  * 
                     42:  *  Software Distribution Coordinator  or  [email protected]
                     43:  *  School of Computer Science
                     44:  *  Carnegie Mellon University
                     45:  *  Pittsburgh PA 15213-3890
                     46:  * 
                     47:  * any improvements or extensions that they make and grant Carnegie Mellon
                     48:  * the rights to redistribute these changes.
                     49:  */
                     50: /*
                     51:  */
                     52: /*
                     53:  *     File:   mach/mach_port.defs
                     54:  *     Author: Rich Draves
                     55:  *
                     56:  *     Exported kernel calls.
                     57:  */
                     58: 
                     59: subsystem
                     60: #if    KERNEL_SERVER
                     61:          KernelServer
                     62: #endif KERNEL_SERVER
                     63:          processor_set 4000;
                     64: 
                     65: #include <mach/std_types.defs>
                     66: #include <mach/mach_types.defs>
                     67: 
                     68: /*
                     69:  *      Return scheduling statistics for a processor set.
                     70:  */
                     71: routine processor_set_statistics(
                     72:                pset                    : processor_set_t;
                     73:                flavor                  : processor_set_flavor_t;
                     74:        out     info_out                : processor_set_info_t, CountInOut);
                     75: 
                     76: 
                     77: /*
                     78:  *     Destroy processor set.
                     79:  */
                     80: routine processor_set_destroy(
                     81:                set             : processor_set_t);
                     82: 
                     83: 
                     84: /*
                     85:  *     Set max priority for processor_set.
                     86:  */
                     87: routine processor_set_max_priority(
                     88:                processor_set   : processor_set_t;
                     89:                max_priority    : int;
                     90:                change_threads  : boolean_t);
                     91: 
                     92: /*
                     93:  *     Enable policy for processor set
                     94:  */
                     95: routine processor_set_policy_enable(
                     96:                processor_set   : processor_set_t;
                     97:                policy          : int);
                     98: 
                     99: /*
                    100:  *     Disable policy for processor set
                    101:  */
                    102: routine processor_set_policy_disable(
                    103:                processor_set   : processor_set_t;
                    104:                policy          : int;
                    105:                change_threads  : boolean_t);
                    106: 
                    107: /*
                    108:  *     List all tasks in processor set.
                    109:  */
                    110: routine processor_set_tasks(
                    111:                processor_set   : processor_set_t;
                    112:        out     task_list       : task_array_t);
                    113: 
                    114: /*
                    115:  *     List all threads in processor set.
                    116:  */
                    117: routine processor_set_threads(
                    118:                processor_set   : processor_set_t;
                    119:        out     thread_list     : thread_act_array_t);
                    120: 
                    121: /*
                    122:  *      Controls the scheduling attributes governing the processor set.
                    123:  *      Allows control of enabled policies, and per-policy base and limit
                    124:  *      priorities.
                    125:  */
                    126: routine processor_set_policy_control(
                    127:        pset                    : processor_set_t;
                    128:        flavor                  : processor_set_flavor_t;
                    129:        policy_info             : processor_set_info_t;
                    130:        change                  : boolean_t);
                    131: 
                    132: 
                    133: /*
                    134:  *     Debug Info
                    135:  *      This call is only valid on MACH_DEBUG kernels.
                    136:  *      Otherwise, KERN_FAILURE is returned.
                    137:  */
                    138: routine processor_set_stack_usage(
                    139:                pset            : processor_set_t;
                    140:        out     total           : unsigned;
                    141:        out     space           : vm_size_t;
                    142:        out     resident        : vm_size_t;
                    143:        out     maxusage        : vm_size_t;
                    144:        out     maxstack        : vm_offset_t);
                    145: 
                    146: /*
                    147:  *      Get information about processor set.
                    148:  *
                    149:  *  JMM - This used to be on a separate port, but it was
                    150:  *  not cleanly separated for components.  I combined them
                    151:  *  rather than fix it, because processor_sets were going
                    152:  *  away anyway.
                    153:  */
                    154: routine processor_set_info(
                    155:                 set_name        : processor_set_t;
                    156:                 flavor          : int;
                    157:         out     host            : host_t;
                    158:         out     info_out        : processor_set_info_t, CountInOut);
                    159: 

unix.superglobalmegacorp.com

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