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/mach_types.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-1988 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  * HISTORY
   28  * $Log:        mach_types.defs,v $
   29  * Revision 2.14  93/11/17  17:40:51  dbg
   30  *      Finished the 64-bit cleanup: made host_sched_info_data_t,
   31  *      processor_set_basic_info_data_t, processor_set_sched_info_data_t
   32  *      be structs of integer_t, since they are passed as
   33  *      variable-length arrays of integer_t.
   34  *      [93/11/09            dbg]
   35  * 
   36  *      Added policy_param_t.
   37  *      [93/05/11            dbg]
   38  * 
   39  *      Added types for new clocks and timers.
   40  *      [93/03/24            dbg]
   41  * 
   42  * Revision 2.13  93/01/14  17:44:32  danner
   43  *      64bit cleanup.  All types now based on integer_t/natural_t.
   44  *      [92/12/01            af]
   45  * 
   46  * Revision 2.12  92/03/10  16:26:58  jsb
   47  *      NORMA_VM: use xmm_kobj_lookup to convert memory_object_control ports.
   48  *      From durriya@ri.osf.org: defined kernel_boot_info_t.
   49  *      [92/03/07  08:30:08  jsb]
   50  * 
   51  * Revision 2.11  92/01/14  16:45:29  rpd
   52  *      Added translations for memory_object_name_t.
   53  *      [92/01/06  21:49:29  rpd]
   54  * 
   55  * Revision 2.10  92/01/03  20:46:29  dbg
   56  *      Changed emulation_vector_t to pass data out-of-line.  Renamed
   57  *      old type to xxx_emulation_vector_t for compatibility.
   58  *      Removed vm_page_data_t.
   59  *      [92/01/03            dbg]
   60  * 
   61  * Revision 2.9  91/08/28  11:15:16  jsb
   62  *      Increased the size of mach_port_status_t, for mps_seqno.
   63  *      Added old_mach_port_status_t, for compatibility purposes.
   64  *      [91/08/09            rpd]
   65  *      Add memory_object_return_t for precious page support.
   66  *      [91/07/03  14:04:25  dlb]
   67  * 
   68  * Revision 2.8  91/06/25  10:30:10  rpd
   69  *      Changed the port-based type declarations
   70  *      to use mach_port_t as the C type name.
   71  *      [91/05/23            rpd]
   72  * 
   73  * Revision 2.7  91/06/06  17:08:02  jsb
   74  *      Added emulation_vector_t for new get/set emulation vector calls.
   75  *      [91/05/24  17:45:33  jsb]
   76  * 
   77  * Revision 2.6  91/05/14  16:55:06  mrt
   78  *      Correcting copyright
   79  * 
   80  * Revision 2.5  91/02/05  17:33:39  mrt
   81  *      Changed to new Mach copyright
   82  *      [91/02/01  17:18:30  mrt]
   83  * 
   84  * Revision 2.4  90/08/07  18:00:26  rpd
   85  *      Added processor_set_name_array_t.
   86  *      [90/08/06            rpd]
   87  * 
   88  * Revision 2.3  90/06/02  14:58:35  rpd
   89  *      Added mach_port_status_t.
   90  *      [90/05/13            rpd]
   91  *      Converted to new IPC.
   92  *      [90/03/26  22:33:34  rpd]
   93  * 
   94  * Revision 2.2  90/01/22  23:05:44  af
   95  *      Added vm_attribute()'s types.
   96  *      [89/12/09  10:45:16  af]
   97  * 
   98  * Revision 2.1  89/08/03  17:17:40  rwd
   99  * Created.
  100  * 
  101  * Revision 2.3  89/02/25  18:37:59  gm0w
  102  *      Changes for cleanup.
  103  * 
  104  * Revision 2.2  89/01/15  16:30:33  rpd
  105  *      Moved from kern/ to mach/.
  106  *      [89/01/15  14:36:47  rpd]
  107  * 
  108  * Revision 2.6  89/01/12  07:57:37  rpd
  109  *      Moved standard stuff to std_types.defs.  Moved debugging definitions
  110  *      like ipc_statistics_t out to other files.
  111  *      [89/01/12  04:50:24  rpd]
  112  * 
  113  * Revision 2.5  89/01/04  13:37:11  rpd
  114  *      Increased size of fpa_counters_t.
  115  *      [89/01/03  16:46:38  rpd]
  116  *      
  117  *      Added fpa_counters_t type.
  118  *      [89/01/01  15:03:09  rpd]
  119  * 
  120  * Revision 2.4  88/09/25  22:15:16  rpd
  121  *      Bumped size of callout_statistics_t to account for the
  122  *      new field, cos_num_untimeout_hit.
  123  *      [88/09/09  23:14:38  rpd]
  124  *      
  125  *      Fixed log.  Changed includes to the new style.
  126  *      Added definitions of callout_info_t,
  127  *      callout_info_array_t, callout_statistics_t.
  128  *      [88/09/09  04:46:31  rpd]
  129  * 
  130  */
  131 /*
  132  *      Mach kernel interface type declarations
  133  */
  134 
  135 #ifndef _MACH_MACH_TYPES_DEFS_
  136 #define _MACH_MACH_TYPES_DEFS_
  137 
  138 /*
  139  *      For KernelServer and KernelUser interfaces, Mig will
  140  *      automagically use ipc_port_t instead of mach_port_t
  141  *      on the kernel side of the interface.  For example,
  142  *      convert_task_to_port really returns ipc_port_t.
  143  *      Doing this in Mig saves many explicit conditional
  144  *      cusertype/cservertype declarations.
  145  *
  146  *      Mig doesn't translate the components of an array.
  147  *      For example, Mig won't use the thread_t translations
  148  *      to translate a thread_array_t argument.
  149  */
  150 
  151 #include <mach/std_types.defs>
  152 #if     KERNEL_SERVER
  153 #include <norma_vm.h>
  154 #endif  /* KERNEL_SERVER */
  155 
  156 type mach_port_status_t = struct[9] of integer_t;
  157 
  158 type old_mach_port_status_t = struct[8] of integer_t;   /* compatibility */
  159 
  160 type task_t = mach_port_t
  161                 ctype: mach_port_t
  162 #if     KERNEL_SERVER
  163                 intran: task_t convert_port_to_task(mach_port_t)
  164                 outtran: mach_port_t convert_task_to_port(task_t)
  165                 destructor: task_deallocate(task_t)
  166 #endif  /* KERNEL_SERVER */
  167                 ;
  168 
  169 type thread_t = mach_port_t
  170                 ctype: mach_port_t
  171 #if     KERNEL_SERVER
  172                 intran: thread_t convert_port_to_thread(mach_port_t)
  173                 outtran: mach_port_t convert_thread_to_port(thread_t)
  174                 destructor: thread_deallocate(thread_t)
  175 #endif  /* KERNEL_SERVER */
  176                 ;
  177 
  178 type thread_state_t             = array[*:1024] of natural_t;
  179 
  180 type task_array_t = ^array[] of task_t;
  181 type thread_array_t = ^array[] of thread_t;
  182 
  183 type vm_task_t = mach_port_t
  184                 ctype: mach_port_t
  185 #if     KERNEL_SERVER
  186                 intran: vm_map_t convert_port_to_map(mach_port_t)
  187                 destructor: vm_map_deallocate(vm_map_t)
  188 #endif  /* KERNEL_SERVER */
  189                 ;
  190 
  191 type ipc_space_t = mach_port_t
  192                 ctype: mach_port_t
  193 #if     KERNEL_SERVER
  194                 intran: ipc_space_t convert_port_to_space(mach_port_t)
  195                 destructor: space_deallocate(ipc_space_t)
  196 #endif  /* KERNEL_SERVER */
  197                 ;
  198 
  199 type vm_address_t = natural_t;
  200 type vm_offset_t = natural_t;
  201 type vm_size_t = natural_t;
  202 type vm_prot_t = int;
  203 type vm_inherit_t = int;
  204 type vm_statistics_data_t = struct[13] of integer_t;
  205 type vm_machine_attribute_t = int;
  206 type vm_machine_attribute_val_t = int;
  207 
  208 type thread_info_t              = array[*:1024] of natural_t;
  209 type thread_basic_info_data_t   = struct[11] of integer_t;
  210 type thread_sched_info_data_t   = struct[7] of integer_t;
  211 
  212 type task_info_t                = array[*:1024] of natural_t;
  213 type task_basic_info_data_t     = struct[8] of integer_t;
  214 type task_events_info           = struct[7] of natural_t;
  215 type task_thread_times_info_data_t = struct[4] of integer_t;
  216 
  217 
  218 type memory_object_t = mach_port_t
  219                 ctype: mach_port_t
  220 #if     KERNEL_SERVER
  221                 intran: ipc_port_t null_conversion(mach_port_t)
  222 #endif  /* KERNEL_SERVER */
  223                 ;
  224 
  225 type memory_object_control_t = mach_port_t
  226                 ctype: mach_port_t
  227 #if     KERNEL_SERVER
  228 #if     NORMA_VM
  229                 intran: mach_xmm_obj_t xmm_kobj_lookup(mach_port_t)
  230 #else   /* NORMA_VM */
  231                 intran: vm_object_t vm_object_lookup(mach_port_t)
  232 #endif  /* NORMA_VM */
  233 #endif  /* KERNEL_SERVER */
  234                 ;
  235 
  236 type memory_object_name_t = mach_port_t
  237                 ctype: mach_port_t
  238 #if     KERNEL_SERVER
  239                 intran: vm_object_t vm_object_lookup_name(mach_port_t)
  240                 destructor: vm_object_deallocate(vm_object_t)
  241 #endif  /* KERNEL_SERVER */
  242                 ;
  243 
  244 type memory_object_copy_strategy_t = int;
  245 type memory_object_return_t = int;
  246 
  247 type machine_info_data_t = struct[5] of integer_t;
  248 type machine_slot_data_t = struct[8] of integer_t;
  249 
  250 type host_t = mach_port_t
  251                 ctype: mach_port_t
  252 #if     KERNEL_SERVER
  253                 intran: host_t convert_port_to_host(mach_port_t)
  254                 outtran: mach_port_t convert_host_to_port(host_t)
  255 #endif  /* KERNEL_SERVER */
  256                 ;
  257 
  258 type host_priv_t = mach_port_t
  259                 ctype: mach_port_t
  260 #if     KERNEL_SERVER
  261                 intran: host_t convert_port_to_host_priv(mach_port_t)
  262 #endif  /* KERNEL_SERVER */
  263                 ;
  264 
  265 type host_info_t                        = array[*:1024] of natural_t;
  266 type host_basic_info_data_t             = struct[5] of integer_t;
  267 type host_sched_info_data_t             = struct[2] of integer_t;
  268 type host_load_info_data_t              = struct[6] of integer_t;
  269 
  270 
  271 type processor_t = mach_port_t
  272                 ctype: mach_port_t
  273 #if     KERNEL_SERVER
  274                 intran: processor_t convert_port_to_processor(mach_port_t)
  275                 outtran: mach_port_t convert_processor_to_port(processor_t)
  276 #endif  /* KERNEL_SERVER */
  277                 ;
  278 
  279 type processor_array_t          = ^array[] of processor_t;
  280 type processor_info_t           = array[*:1024] of natural_t;
  281 type processor_basic_info_data_t = struct[5] of integer_t;
  282 
  283 
  284 type processor_set_t = mach_port_t
  285                 ctype: mach_port_t
  286 #if     KERNEL_SERVER
  287                 intran: processor_set_t convert_port_to_pset(mach_port_t)
  288                 outtran: mach_port_t convert_pset_to_port(processor_set_t)
  289                 destructor: pset_deallocate(processor_set_t)
  290 #endif  /* KERNEL_SERVER */
  291                 ;
  292 
  293 type processor_set_array_t = ^array[] of processor_set_t;
  294 
  295 type processor_set_name_t = mach_port_t
  296                 ctype: mach_port_t
  297 #if     KERNEL_SERVER
  298                 intran: processor_set_t convert_port_to_pset_name(mach_port_t)
  299                 outtran: mach_port_t convert_pset_name_to_port(processor_set_t)
  300                 destructor: pset_deallocate(processor_set_t)
  301 #endif  /* KERNEL_SERVER */
  302                 ;
  303 
  304 type processor_set_name_array_t = ^array[] of processor_set_name_t;
  305 
  306 type processor_set_info_t       = array[*:1024] of natural_t;   
  307 type processor_set_basic_info_data_t = struct[5] of integer_t;
  308 type processor_set_sched_info_data_t = struct[2] of integer_t;
  309 
  310 
  311 type kernel_version_t           = (MACH_MSG_TYPE_STRING, 512*8);
  312 
  313 type kernel_boot_info_t         = (MACH_MSG_TYPE_STRING, 4096*8);
  314 
  315 type time_value_t               = struct[2] of integer_t;
  316 
  317 type emulation_vector_t         = ^array[] of vm_offset_t;
  318 
  319 type xxx_emulation_vector_t     = array[*:1024] of vm_offset_t
  320                                         ctype: emulation_vector_t;
  321                                         /* XXX compatibility */
  322 
  323 type mach_timer_t = mach_port_t
  324                 ctype: mach_port_t
  325 #if     KERNEL_SERVER
  326                 intran: mach_timer_t convert_port_to_timer(mach_port_t)
  327                 outtran: mach_port_t convert_timer_to_port(mach_timer_t)
  328                 destructor: mach_timer_deallocate(mach_timer_t)
  329 #endif  /* KERNEL_SERVER */
  330                 ;
  331 
  332 type expire_port_t = MACH_MSG_TYPE_COPY_SEND
  333         ctype: mach_port_t;
  334 
  335 type mach_timer_info_t          = array[*:1024] of natural_t;
  336 
  337 type mach_clock_t = mach_port_t
  338                 ctype: mach_port_t
  339 #if     KERNEL_SERVER
  340                 intran: mach_clock_t convert_device_port_to_clock(mach_port_t)
  341                 outtran: mach_port_t convert_clock_to_device_port(mach_clock_t)
  342 #endif  /* KERNEL_SERVER */
  343                 ;
  344 
  345 type time_spec_t                = struct[2] of natural_t;
  346 type policy_param_t             = array[*:1024] of natural_t;
  347 
  348 
  349 #if     KERNEL_SERVER
  350 simport <kern/ipc_kobject.h>;   /* for null conversion */
  351 simport <kern/ipc_tt.h>;        /* for task/thread conversion */
  352 simport <kern/ipc_host.h>;      /* for host/processor/pset conversions */
  353 simport <kern/task.h>;          /* for task_t */
  354 simport <kern/thread.h>;        /* for thread_t */
  355 simport <kern/host.h>;          /* for host_t */
  356 simport <kern/processor.h>;     /* for processor_t, processor_set_t */
  357 simport <kern/clock.h>;         /* mach_clock_t */
  358 simport <kern/mach_timer.h>;    /* mach_timer_t */
  359 simport <vm/vm_object.h>;       /* for vm_object_t */
  360 simport <vm/vm_map.h>;          /* for vm_map_t */
  361 simport <ipc/ipc_space.h>;      /* for ipc_space_t */
  362 #endif  /* KERNEL_SERVER */
  363 
  364 import <mach/mach_types.h>;
  365 
  366 #endif  /* _MACH_MACH_TYPES_DEFS_ */

Cache object: 8cbe65f79c6a5e6485d2c75ff0e3117c


[ 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.