home *** CD-ROM | disk | FTP | other *** search
/ H4CK3R 4 / hacker04 / 04_HACK04.ISO / darwin / darwinx86.iso / usr / include / mach / processor_set.defs < prev    next >
Encoding:
Text File  |  2001-09-30  |  4.2 KB  |  155 lines

  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  Software.Distribution@CS.CMU.EDU
  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_name_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. routine processor_set_info(
  150.                 set_name        : processor_set_name_t;
  151.                 flavor          : int;
  152.         out     host            : host_t;
  153.         out     info_out        : processor_set_info_t, CountInOut);
  154.  
  155.