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_norma.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) 1991 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_norma.defs,v $
   29  * Revision 2.6  91/12/13  13:45:12  jsb
   30  *      Moved non-exported interfaces to norma/norma_internal.defs.
   31  *      Changed name of task_create_remote to norma_task_create.
   32  *      Added comments.
   33  * 
   34  * Revision 2.5  91/11/14  16:56:43  rpd
   35  *      Picked up mysterious norma changes.
   36  *      [91/11/14            rpd]
   37  * 
   38  * Revision 2.4  91/08/28  11:15:08  jsb
   39  *      Added KERNEL_USER definitions.
   40  *      Removed norma_set_task_server.
   41  *      Added task_create_remote, norma_copy_create.
   42  *      [91/08/15  13:28:27  jsb]
   43  * 
   44  * Revision 2.3  91/08/03  18:19:02  jsb
   45  *      Removed norma_get_{host,host_priv,device}_port;
   46  *      Use norma_{get,set}_special_port instead.
   47  *      [91/07/25  07:51:11  jsb]
   48  * 
   49  * Revision 2.2  91/06/06  17:07:57  jsb
   50  *      First checkin.
   51  *      [91/05/25  10:37:22  jsb]
   52  * 
   53  */
   54 
   55 subsystem
   56 #if     KERNEL_USER
   57           KernelUser
   58 #endif  KERNEL_USER
   59 #if     KERNEL_SERVER
   60           KernelServer
   61 #endif  KERNEL_SERVER
   62                        mach_norma 555000;
   63 #ifdef  KERNEL_USER
   64 userprefix r_;
   65 #endif  KERNEL_USER
   66 
   67 #include <mach/std_types.defs>
   68 #include <mach/mach_types.defs>
   69 
   70 skip;
   71 
   72 /*
   73  * Specify a node upon which children tasks will be created.
   74  * This call exists only to allow testing with unmodified servers.
   75  * Server developers should use norma_task_create instead.
   76  */
   77 routine task_set_child_node(
   78                 target_task     : task_t;
   79                 child_node      : int);
   80 
   81 /*
   82  * THIS CALL WILL BE ELIMINATED.
   83  * Use norma_port_location_hint(,mach_task_self(),) instead.
   84  */
   85 routine norma_node_self(
   86                 host            : host_t;
   87         out     node            : int);
   88 
   89 skip;
   90 
   91 skip;
   92 
   93 skip;
   94 
   95 /*
   96  * (Used to be called task_create_remote.)
   97  * Create a task on the given node, possibly inheriting memory.
   98  * Same inheritance semantics as task_create, including inheritance
   99  * of initial ports and emulation library.
  100  * Setting child_node to node_self forces local task creation.
  101  */
  102 routine norma_task_create(
  103                 target_task     : task_t;
  104                 inherit_memory  : boolean_t;
  105                 child_node      : int;
  106         out     child_task      : task_t);
  107 
  108 /*
  109  * Get a given special port for a given node.
  110  * Norma special ports are defined in norma_special_ports.h;
  111  * examples include the master device port.
  112  * There are a limited number of slots available for system servers.
  113  *
  114  * XXX MAX_SPECIAL_ID should be defined in norma_special_ports.h,
  115  * XXX not just in norma/ipc_special.c!
  116  * (MAX_SPECIAL_ID specifies total number of slots available)
  117  */
  118 routine norma_get_special_port(
  119                 host_priv       : host_priv_t;
  120                 node            : int;
  121                 which           : int;
  122         out     port            : mach_port_t);
  123 
  124 /*
  125  * Set a given special port for a given node.
  126  * See norma_get_special_port.
  127  */
  128 routine norma_set_special_port(
  129                 host_priv       : host_priv_t;
  130                 which           : int;
  131                 port            : mach_port_t);
  132 
  133 skip;
  134 
  135 skip;
  136 
  137 skip;
  138 
  139 /*
  140  * Return best guess of port's current location.
  141  * Guaranteed to be a node where the port once was.
  142  * Guaranteed to be accurate if port has never moved.
  143  * Can be used to determine residence node for hosts, tasks, threads, etc.
  144  */
  145 routine norma_port_location_hint(
  146                 task            : task_t;
  147                 port            : mach_port_t;
  148         out     node            : int);

Cache object: 812ce33bbd7a76dc4955627ffdf9eaf6


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