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/man/mach_port_mod_refs.man

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,1990 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_port_mod_refs.man,v $
   29 .\" Revision 2.6  93/05/10  19:31:28  rvb
   30 .\"     updated
   31 .\"     [93/04/21  16:03:42  lli]
   32 .\" 
   33 .\" Revision 2.5  91/12/11  08:43:05  jsb
   34 .\"     Changed <mach/mach.h> to <mach.h>.
   35 .\"     [91/11/25  10:55:40  rpd]
   36 .\" 
   37 .\" Revision 2.4  91/05/14  17:06:54  mrt
   38 .\"     Correcting copyright
   39 .\" 
   40 .\" Revision 2.3  91/02/14  14:11:35  mrt
   41 .\"     Changed to new Mach copyright
   42 .\"     [91/02/12  18:11:47  mrt]
   43 .\" 
   44 .\" Revision 2.2  90/08/07  18:37:17  rpd
   45 .\"     Created.
   46 .\" 
   47 .TH mach_port_mod_refs 2 9/19/86
   48 .CM 4
   49 .SH NAME
   50 .nf
   51 mach_port_mod_refs \-  changes the number of user refs for a right
   52 .SH SYNOPSIS
   53 .nf
   54 .ft B
   55 #include <mach.h>
   56 
   57 kern_return_t
   58 mach_port_mod_refs(task, name, right, delta)
   59         mach_port_t task;
   60         mach_port_t name;
   61         mach_port_right_t right;
   62         mach_port_delta_t delta;
   63 .fi
   64 .ft P
   65 .SH ARGUMENTS
   66 .TP 12
   67 .B
   68 task
   69 The task holding the right.
   70 .TP 12
   71 .B
   72 name
   73 The task's name for the right.
   74 .TP 12
   75 .B
   76 right
   77 The type of right being modified.
   78 .TP 12
   79 .B
   80 delta
   81 Signed change to the number of user references.
   82 .SH DESCRIPTION
   83 \fBmach_port_mod_refs\fR requests that the number of user references
   84 a task has for a right be changed.  This results in the right
   85 being destroyed, if the number of user references is changed to zero.
   86 
   87 The \fBright\fR argument takes the following values:
   88 .nf
   89 .in +5n
   90 MACH_PORT_RIGHT_SEND
   91 MACH_PORT_RIGHT_RECEIVE
   92 MACH_PORT_RIGHT_SEND_ONCE
   93 MACH_PORT_RIGHT_PORT_SET
   94 MACH_PORT_RIGHT_DEAD_NAME
   95 .fi
   96 .in -5n
   97 The \fBname\fR should denote the specified right.
   98 
   99 The number of user
  100 references for the right is changed by the amount \fBdelta\fR,
  101 subject to the following restrictions: port sets, receive rights,
  102 and send-once rights may only have one user reference.  The resulting
  103 number of user references can't be negative.  If the resulting number
  104 of user references is zero, the effect is to deallocate the right.
  105 For dead names and send rights, there is an implementation-defined
  106 maximum number of user references.
  107 
  108 If the call destroys the right, then the effect is as described for
  109 \fBmach_port_destroy\fR, with the exception that \fBmach_port_destroy\fR
  110 simultaneously destroys all the rights denoted by a name, while
  111 \fBmach_port_mod_refs\fR can only destroy one right.  The name will
  112 be available for reuse if it only denoted the one right.
  113 .SH DIAGNOSTICS
  114 .TP 25
  115 KERN_SUCCESS
  116 The call succeeded.
  117 .TP 25
  118 KERN_INVALID_TASK
  119 \fBtask\fR was invalid.
  120 .TP 25
  121 KERN_INVALID_VALUE
  122 \fBright\fR was invalid.
  123 .TP 25
  124 KERN_INVALID_NAME
  125 \fBname\fR did not denote a right.
  126 .TP 25
  127 KERN_INVALID_RIGHT
  128 \fBname\fR denoted a right, but not the specified right.
  129 .TP 25
  130 KERN_INVALID_VALUE
  131 The user-reference count would become negative.
  132 .TP 25
  133 KERN_INVALID_VALUE
  134 For port sets, receive rights, and send-once rights,
  135 the user-reference count would exceed one.
  136 .TP 25
  137 KERN_UREFS_OVERFLOW
  138 The user-reference count would overflow.
  139 .PP
  140 The \fBmach_port_mod_refs\fR call is actually an RPC to \fBtask\fR,
  141 normally a send right for a task port, but potentially any send right.
  142 In addition to the normal diagnostic
  143 return codes from the call's server (normally the kernel),
  144 the call may return \fBmach_msg(2)\fR return codes.
  145 .SH SEE ALSO
  146 mach_port_destroy(2), mach_port_get_refs(2).

Cache object: 0c737a068387b4fde8cb15aa87513b54


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