/[rtmk]/rtmk/ipc-object.h
ViewVC logotype

Diff of /rtmk/ipc-object.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by jrydberg, Wed Feb 20 20:04:42 2002 UTC revision 1.4 by jrydberg, Wed Mar 27 00:13:45 2002 UTC
# Line 85  extern kern_return_t ipc_object_copyout Line 85  extern kern_return_t ipc_object_copyout
85                                           struct ipc_port *port,                                           struct ipc_port *port,
86                                           int msgt, rtmk_port_t *namep);                                           int msgt, rtmk_port_t *namep);
87    
88    /* Copyout right PORT.  PORT is destination for a
89       message.  Name of right is returned in *NAMEP.  */
90    
91    extern kern_return_t ipc_object_copyout_dest (struct ipc_object *object,
92                                                  struct ipc_port *port,
93                                                  int msgt_name,
94                                                  rtmk_port_t *namep);
95    
96    
97    /* Inserts rights for PORT into OBJECT.  MSGT determines
98       what type of right we should insert.   NAME is the right
99       name in OBJECT.  If there's already a right for PORT
100       in OBJECT, NAME must match that rights name.  */
101    
102    extern kern_return_t ipc_object_copyout_name (struct ipc_object *object,
103                                                  struct ipc_port *port, int msgt,
104                                                  rtmk_port_t name);
105    
106  /* Copy right named NAME from OBJECT into kernel object space.  /* Copy right named NAME from OBJECT into kernel object space.
107     MSGT describes what type of right it is.  DEALLOCP is true     MSGT describes what type of right it is.  *PORTP holds
108     if *ENTRYP should be deallocated after it is used.  */     port that right NAME held.  */
109    
110  extern kern_return_t ipc_object_copyin (struct ipc_object *object,  extern kern_return_t ipc_object_copyin (struct ipc_object *object,
111                                          rtmk_port_t name,                                          rtmk_port_t name,
112                                          int msgt, struct ipc_entry **entryp,                                          int msgt, struct ipc_port **portp);
                                         bool *deallocp);  
113    
114  /* Try to locate entry named NAME in OBJECT.  Return pointer to  /* Try to locate entry named NAME in OBJECT.  Return pointer to
115     entry structure in ENTRYP if found.  Normal kernel return code.  */     entry structure in ENTRYP if found.  Normal kernel return code.  */
# Line 101  extern kern_return_t ipc_object_lookup ( Line 118  extern kern_return_t ipc_object_lookup (
118                                          rtmk_port_t name,                                          rtmk_port_t name,
119                                          struct ipc_entry **entryp);                                          struct ipc_entry **entryp);
120    
 /* Insert rights for port PORT specified by MSGT into OBJECT.    
    NAMEP is the name that we should use.  */  
   
 extern kern_return_t ipc_object_insert (struct ipc_object *object,  
                                         struct ipc_port *port,  
                                         int msgt, rtmk_port_t name);  
   
121  /* Remove NAME for OBJECT.  Return IPC entry in *ENTRYP.  */  /* Remove NAME for OBJECT.  Return IPC entry in *ENTRYP.  */
122    
123  extern kern_return_t ipc_object_remove (struct ipc_object *object,  extern kern_return_t ipc_object_remove (struct ipc_object *object,
124                                          struct ipc_entry **entryp,                                          struct ipc_entry **entryp,
125                                          rtmk_port_t name);                                          rtmk_port_t name);
126    
127    /* Allocate entry in IPC object OBJECT.  Pointer to entry structure
128       is returned in *ENTRYP.  Allocated name is returned in *NAMEP.  
129      
130       *ENTRYP is always totaly clean.  It is up to the caller to fill
131       it with valid data.  */
132    extern kern_return_t ipc_entry_alloc (struct ipc_object *object,
133                                          struct ipc_entry **entryp,
134                                          rtmk_port_name_t *namep);
135    
136    /* Allocate entry in IPC object OBJECT.  Pointer to entry structure
137       is returned in *ENTRYP.  Name of entry is specified by NAME.
138      
139       *ENTRYP is always totaly clean.  It is up to the caller to fill
140       it with valid data.  */
141    extern kern_return_t ipc_entry_alloc_name (struct ipc_object *object,  
142                                               struct ipc_entry **entryp,
143                                               rtmk_port_t name);
144    
145    /* Deallocate ENTRY (port right name is ENTRY->ie_key) from
146       OBJECT.  We also remove from reverse-lookup table.  After
147       this, ENTRY is non-existat (memory freed).  */
148    extern kern_return_t ipc_entry_dealloc (struct ipc_object *object,
149                                            struct ipc_entry *entry);
150    
151    /* Copyin a naked capability, PORT, from the kernel.  
152       PORT is the capability.  MSGT_NAME is transit type.  */
153    extern kern_return_t ipc_object_copyin_from_kernel (struct ipc_port *port,
154                                                        int msgt_name);
155    
156  #endif /* ipc-object.h */  #endif /* ipc-object.h */

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26