The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/mach/mach4.defs

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* 
    2  * Mach Operating System
    3  * Copyright (c) 1993,1992 Carnegie Mellon University
    4  * All Rights Reserved.
    5  * 
    6  * Permission to use, copy, modify and distribute this software and its
    7  * documentation is hereby granted, provided that both the copyright
    8  * notice and this permission notice appear in all copies of the
    9  * software, derivative works or modified versions, and any portions
   10  * thereof, and that both notices appear in supporting documentation.
   11  * 
   12  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
   13  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
   14  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
   15  * 
   16  * Carnegie Mellon requests users of this software to return to
   17  * 
   18  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
   19  *  School of Computer Science
   20  *  Carnegie Mellon University
   21  *  Pittsburgh PA 15213-3890
   22  * 
   23  * any improvements or extensions that they make and grant Carnegie Mellon 
   24  * the rights to redistribute these changes.
   25  */
   26 
   27 /*
   28  *      Matchmaker definitions file for Mach4 kernel interface.
   29  */
   30 
   31 /*
   32  * HISTORY
   33  * $Log:        mach4.defs,v $
   34  * Revision 2.4  93/11/17  17:39:01  dbg
   35  *      Made PC sampling calls 64-bit clean.
   36  *      [93/09/27            dbg]
   37  * 
   38  *      Return actual wakeup time for timer_sleep.
   39  *      [93/07/13            dbg]
   40  * 
   41  *      Added calls for new timers and for real-time threads.
   42  *      [93/03/24            dbg]
   43  * 
   44  * Revision 2.3  93/08/03  12:31:33  mrt
   45  *      Addded flavor argument to sampling interface.
   46  *      [93/07/30  10:25:45  bershad]
   47  * 
   48  * Revision 2.2  93/01/24  13:20:41  danner
   49  *      Recast Maeda's pc sampling code into new interface file.  Also
   50  *      redefined how it works.
   51  *      [93/01/11            rvb]
   52  * 
   53  */
   54 
   55 subsystem
   56 #if     KERNEL_SERVER
   57           KernelServer
   58 #endif  /* KERNEL_SERVER */
   59 #if     KERNEL_USER
   60           KernelUser
   61 #endif  /* KERNEL_USER */
   62                        mach4 4000;
   63 
   64 #include <mach/std_types.defs>
   65 #include <mach/mach_types.defs>
   66 
   67 
   68 type sampled_pc_t       = struct[3]    of natural_t;
   69 type sampled_pc_array_t = array[*:512] of sampled_pc_t;
   70 type sampled_pc_seqno_t = unsigned;
   71 type sampled_pc_flavor_t = natural_t;
   72 
   73 type policy_param_realtime_t    = struct[7] of natural_t;
   74 
   75 routine task_enable_pc_sampling(
   76                 host          : task_t;
   77                 out tick      : int;     /* sample frequency in usecs   */
   78                 flavor        : sampled_pc_flavor_t );
   79 
   80 routine task_disable_pc_sampling(
   81                 host          : task_t;
   82                 out samplecnt : int);
   83                                  
   84 routine task_get_sampled_pcs(
   85                 host            : task_t;
   86                 inout seqno     : sampled_pc_seqno_t;
   87                 out sampled_pcs : sampled_pc_array_t);
   88 
   89 routine thread_enable_pc_sampling(
   90                 host          : thread_t;
   91                 out tick      : int;     /* sample frequency in usecs*/
   92                 flavor        : sampled_pc_flavor_t );          
   93 
   94 routine thread_disable_pc_sampling(
   95                 host          : thread_t;
   96                 out samplecnt : int);
   97                                  
   98 routine thread_get_sampled_pcs(
   99                 host            : thread_t;
  100                 inout seqno     : sampled_pc_seqno_t;
  101                 out sampled_pcs : sampled_pc_array_t);
  102 
  103 
  104 skip    /* pc_sampling reserved 1*/;
  105 skip    /* pc_sampling reserved 2*/;
  106 skip    /* pc_sampling reserved 3*/;
  107 skip    /* pc_sampling reserved 4*/;
  108 
  109 routine timer_create(
  110                 clock           : mach_clock_t;
  111         out     timer           : mach_timer_t);
  112 
  113 routine timer_terminate(
  114                 timer           : mach_timer_t);
  115 
  116 routine timer_get_evc(
  117                 timer           : mach_timer_t;
  118         out     event           : natural_t);
  119 
  120 routine timer_arm(
  121                 timer           : mach_timer_t;
  122                 expire_time     : time_spec_t;
  123                 interval_time   : time_spec_t;
  124                 expire_port     : expire_port_t;
  125                 thread          : thread_t;
  126                 flags           : int);
  127 
  128 routine timer_sleep(
  129                 timer           : mach_timer_t;
  130                 expire_time     : time_spec_t;
  131                 flags           : int;
  132         out     wakeup_time     : time_spec_t);
  133 
  134 routine timer_cancel(
  135                 timer           : mach_timer_t;
  136                 flags           : int);
  137 
  138 routine timer_info(
  139                 target_timer    : mach_timer_t;
  140                 flavor          : int;
  141         out     clock           : mach_clock_t;
  142         out     expire_port     : expire_port_t;
  143         out     thread          : thread_t;
  144         out     timer_info_out  : mach_timer_info_t, CountInOut);
  145 
  146 skip;   /* timer_expire */
  147 skip;   /* timer reserved */
  148 skip;   /* timer reserved */
  149 
  150 routine thread_get_periodic_timers(
  151                 thread          : thread_t;
  152         out     wakeup_timer    : mach_timer_t;
  153         out     deadline_timer  : mach_timer_t);
  154 
  155 routine thread_set_periodic_timers(
  156                 thread          : thread_t;
  157                 wakeup_timer    : mach_timer_t;
  158                 deadline_timer  : mach_timer_t);
  159 
  160 routine periodic_thread_create(
  161                 parent_task     : task_t;
  162                 clock           : mach_clock_t;
  163                 param           : policy_param_realtime_t;
  164                 deadline_port   : expire_port_t;
  165                 initial_flavor  : int;
  166                 initial_state   : thread_state_t;
  167         out     thread          : thread_t);
  168 
  169 routine periodic_thread_restart(
  170                 thread          : thread_t);
  171 
  172 

Cache object: 500832cfdac835c4e50720db7dd085c8


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.