man pages section 3: Basic Library Functions

Exit Print View

Updated: July 2014
 
 

door_return(3C)

Name

door_return - return from a door invocation

Synopsis

cc –mt [ flag... ] file... [ library... ]
#include <door.h>

int door_return(char *data_ptr, size_t data_size, door_desc_t *desc_ptr,
     uint_t num_desc);

Description

The door_return() function returns from a door invocation. It returns control to the thread that issued the associated door_call() and blocks waiting for the next door invocation. See door_call(3C). Results, if any, from the door invocation are passed back to the client in the buffers pointed to by data_ptr and desc_ptr. If there is not a client associated with the door_return(), the calling thread discards the results, releases any passed descriptors with the DOOR_RELEASE attribute, and blocks waiting for the next door invocation.

Return Values

Upon successful completion, door_return() does not return to the calling process. Otherwise, door_return() returns −1 to the calling process and sets errno to indicate the error.

Errors

The door_return() function fails and returns to the calling process if:

E2BIG

Arguments were too big for client.

EFAULT

The address of data_ptr or desc_ptr is invalid.

EINVAL

Invalid door_return() arguments were passed or a thread is bound to a door that no longer exists.

EMFILE

The client has too many open descriptors.

Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Architecture
all
Availability
system/core-os
Interface Stability
Committed
MT-Level
Safe

See Also

door_call(3C),attributes(5)