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/kern/ipc_kobject.h

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,1991,1990,1989 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:        ipc_kobject.h,v $
   29  * Revision 2.10  93/11/17  17:10:50  dbg
   30  *      Added IKOT_TIMER.  Added ANSI function prototypes.  Changed
   31  *      ipc_kobject_t to a generic pointer (void *).
   32  *      [93/02/03            dbg]
   33  * 
   34  * Revision 2.9  93/01/14  17:34:30  danner
   35  *      ipc_kobject_t is casted sometimes to a pointer.
   36  *      [92/07/24            af]
   37  * 
   38  * Revision 2.8  92/03/10  16:26:31  jsb
   39  *      Added IKOT_XMM_{OBJECT,KERNEL,REPLY} and IKOT_PAGER_TERMINATING.
   40  *      [92/03/07  08:25:33  jsb]
   41  * 
   42  * Revision 2.7  92/01/14  16:44:52  rpd
   43  *      Added IKOT_PAGING_NAME.
   44  *      [91/12/28            rpd]
   45  * 
   46  * Revision 2.6  91/08/28  11:14:31  jsb
   47  *      Add support for using page lists with devices.  Split the macro
   48  *      that says whether to use page lists into a macro that says whether
   49  *      to use them (vm_page_list) and a macro that says whether the pages
   50  *      should be stolen (vm_page_steal).
   51  *      [91/07/31  15:05:17  dlb]
   52  * 
   53  * Revision 2.5  91/07/01  08:24:58  jsb
   54  *      For NORMA_VM: added IKOT_XMM_PAGER, for memory_objects mapped only
   55  *      by other kernels.
   56  * 
   57  *      From David Black at OSF: added ipc_kobject_vm_special.
   58  *      [91/06/29  14:33:34  jsb]
   59  * 
   60  * Revision 2.4  91/05/14  16:42:08  mrt
   61  *      Correcting copyright
   62  * 
   63  * Revision 2.3  91/02/05  17:26:40  mrt
   64  *      Changed to new Mach copyright
   65  *      [91/02/01  16:12:58  mrt]
   66  * 
   67  * Revision 2.2  90/06/02  14:54:12  rpd
   68  *      Created for new IPC.
   69  *      [90/03/26  23:47:04  rpd]
   70  * 
   71  */
   72 /*
   73  *      File:   kern/ipc_kobject.h
   74  *      Author: Rich Draves
   75  *      Date:   1989
   76  *
   77  *      Declarations for letting a port represent a kernel object.
   78  */
   79 
   80 #ifndef _KERN_IPC_KOBJECT_H_
   81 #define _KERN_IPC_KOBJECT_H_
   82 
   83 #include <mach/machine/vm_types.h>
   84 
   85 typedef void *          ipc_kobject_t;  /* generic pointer */
   86 
   87 #define IKO_NULL        ((ipc_kobject_t) 0)
   88 
   89 typedef unsigned int ipc_kobject_type_t;
   90 
   91 #define IKOT_NONE               0
   92 #define IKOT_THREAD             1
   93 #define IKOT_TASK               2
   94 #define IKOT_HOST               3
   95 #define IKOT_HOST_PRIV          4
   96 #define IKOT_PROCESSOR          5
   97 #define IKOT_PSET               6
   98 #define IKOT_PSET_NAME          7
   99 #define IKOT_PAGER              8
  100 #define IKOT_PAGER_TERMINATING  9
  101 #define IKOT_PAGING_REQUEST     10
  102 #define IKOT_PAGING_NAME        11
  103 #define IKOT_DEVICE             12
  104 #define IKOT_XMM_PAGER          13
  105 #define IKOT_XMM_OBJECT         14
  106 #define IKOT_XMM_KERNEL         15
  107 #define IKOT_XMM_REPLY          16
  108 #define IKOT_TIMER              17
  109 
  110 /*
  111  *      Define types of kernel objects that use page lists instead
  112  *      of entry lists for copyin of out of line memory.
  113  */
  114 
  115 #define ipc_kobject_vm_page_list(ikot)                  \
  116         ((ikot == IKOT_PAGING_REQUEST) || (ikot == IKOT_DEVICE))
  117 
  118 #define ipc_kobject_vm_page_steal(ikot) (ikot == IKOT_PAGING_REQUEST)
  119 
  120 /*
  121  *      External routines.
  122  */
  123 struct ipc_kmsg;
  124 struct ipc_port;
  125 
  126 extern struct ipc_kmsg *
  127 ipc_kobject_server(struct ipc_kmsg *);
  128 
  129 extern void
  130 ipc_kobject_set(
  131         struct ipc_port *port,
  132         ipc_kobject_t   kobject,
  133         ipc_kobject_type_t type);
  134 
  135 extern void
  136 ipc_kobject_destroy(
  137         struct ipc_port *port);
  138 
  139 #define null_conversion(port)   (port)
  140 
  141 #endif  /* _KERN_IPC_KOBJECT_H_ */

Cache object: e609170cb12e989b44bbbd4969682c77


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