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/ipc/ipc_right.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,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_right.h,v $
   29  * Revision 2.5  93/11/17  17:01:29  dbg
   30  *      Added ANSI function prototypes.
   31  *      [93/09/23            dbg]
   32  * 
   33  * Revision 2.4  91/05/14  16:36:32  mrt
   34  *      Correcting copyright
   35  * 
   36  * Revision 2.3  91/02/05  17:23:39  mrt
   37  *      Changed to new Mach copyright
   38  *      [91/02/01  15:51:08  mrt]
   39  * 
   40  * Revision 2.2  90/06/02  14:51:35  rpd
   41  *      Created for new IPC.
   42  *      [90/03/26  21:02:56  rpd]
   43  * 
   44  */
   45 /*
   46  *      File:   ipc/ipc_right.h
   47  *      Author: Rich Draves
   48  *      Date:   1989
   49  *
   50  *      Declarations of functions to manipulate IPC capabilities.
   51  */
   52 
   53 #ifndef _IPC_IPC_RIGHT_H_
   54 #define _IPC_IPC_RIGHT_H_
   55 
   56 #include <mach_ipc_compat.h>
   57 
   58 #include <mach/boolean.h>
   59 #include <mach/kern_return.h>
   60 #include <ipc/ipc_types.h>
   61 #include <ipc/ipc_entry.h>
   62 #include <ipc/ipc_port.h>
   63 
   64 #define ipc_right_lookup_read   ipc_right_lookup_write
   65 
   66 extern kern_return_t
   67 ipc_right_lookup_write(
   68         ipc_space_t     space,
   69         mach_port_t     name,
   70         ipc_entry_t     *entryp);
   71 
   72 extern boolean_t
   73 ipc_right_reverse(
   74         ipc_space_t     space,
   75         ipc_object_t    object,
   76         mach_port_t     *namep,
   77         ipc_entry_t     *entryp);
   78 
   79 extern kern_return_t
   80 ipc_right_dnrequest(
   81         ipc_space_t     space,
   82         mach_port_t     name,
   83         boolean_t       immediate,
   84         ipc_port_t      notify,
   85         ipc_port_t      *previousp);
   86 
   87 extern ipc_port_t
   88 ipc_right_dncancel(
   89         ipc_space_t     space,
   90         ipc_port_t      port,
   91         mach_port_t     name,
   92         ipc_entry_t     entry);
   93 
   94 #define ipc_right_dncancel_macro(space, port, name, entry)              \
   95                 (((entry)->ie_request == 0) ? IP_NULL :                 \
   96                  ipc_right_dncancel((space), (port), (name), (entry)))
   97 
   98 extern boolean_t
   99 ipc_right_inuse(
  100         ipc_space_t     space,
  101         mach_port_t     name,
  102         ipc_entry_t     entry);
  103 
  104 extern boolean_t
  105 ipc_right_check(
  106         ipc_space_t     space,
  107         ipc_port_t      port,
  108         mach_port_t     name,
  109         ipc_entry_t     entry);
  110 
  111 extern void
  112 ipc_right_clean(
  113         ipc_space_t     space,
  114         mach_port_t     name,
  115         ipc_entry_t     entry);
  116 
  117 extern kern_return_t
  118 ipc_right_destroy(
  119         ipc_space_t     space,
  120         mach_port_t     name,
  121         ipc_entry_t     entry);
  122 
  123 extern kern_return_t
  124 ipc_right_dealloc(
  125         ipc_space_t     space,
  126         mach_port_t     name,
  127         ipc_entry_t     entry);
  128 
  129 extern kern_return_t
  130 ipc_right_delta(
  131         ipc_space_t     space,
  132         mach_port_t     name,
  133         ipc_entry_t     entry,
  134         mach_port_right_t right,
  135         mach_port_delta_t delta);
  136 
  137 extern kern_return_t
  138 ipc_right_info(
  139         ipc_space_t     space,
  140         mach_port_t     name,
  141         ipc_entry_t     entry,
  142         mach_port_type_t *typep,
  143         mach_port_urefs_t *urefsp);
  144 
  145 extern boolean_t
  146 ipc_right_copyin_check(
  147         ipc_space_t     space,
  148         mach_port_t     name,
  149         ipc_entry_t     entry,
  150         mach_msg_type_name_t msgt_name);
  151 
  152 extern kern_return_t
  153 ipc_right_copyin(
  154         ipc_space_t     space,
  155         mach_port_t     name,
  156         ipc_entry_t     entry,
  157         mach_msg_type_name_t msgt_name,
  158         boolean_t       deadok,
  159         ipc_object_t    *objectp,
  160         ipc_port_t      *sorightp);
  161 
  162 extern void
  163 ipc_right_copyin_undo(
  164         ipc_space_t     space,
  165         mach_port_t     name,
  166         ipc_entry_t     entry,
  167         mach_msg_type_name_t msgt_name,
  168         ipc_object_t    object,
  169         ipc_port_t      soright);
  170 
  171 extern kern_return_t
  172 ipc_right_copyin_two(
  173         ipc_space_t     space,
  174         mach_port_t     name,
  175         ipc_entry_t     entry,
  176         ipc_object_t    *objectp,
  177         ipc_port_t      *sorightp);
  178 
  179 extern kern_return_t
  180 ipc_right_copyout(
  181         ipc_space_t     space,
  182         mach_port_t     name,
  183         ipc_entry_t     entry,
  184         mach_msg_type_name_t msgt_name,
  185         boolean_t       overflow,
  186         ipc_object_t    object);
  187 
  188 extern kern_return_t
  189 ipc_right_rename(
  190         ipc_space_t     space,
  191         mach_port_t     oname,
  192         ipc_entry_t     oentry,
  193         mach_port_t     nname,
  194         ipc_entry_t     nentry);
  195 
  196 #if     MACH_IPC_COMPAT
  197 
  198 extern kern_return_t
  199 ipc_right_copyin_compat(ipc_space_t, mach_port_t, ipc_entry_t,
  200                         mach_msg_type_name_t, boolean_t, ipc_object_t *);
  201 
  202 extern kern_return_t
  203 ipc_right_copyin_header(ipc_space_t, mach_port_t, ipc_entry_t,
  204                         ipc_object_t *, mach_msg_type_name_t *);
  205 
  206 #endif  /* MACH_IPC_COMPAT */
  207 #endif  /* _IPC_IPC_RIGHT_H_ */

Cache object: 8145c2b36fa9d34b0cac9daa0204bc73


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