Go to main content

man pages section 3: Basic Library Functions

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

door_info(3C)

Name

door_info - return information associated with a door descriptor

Synopsis

#include <door.h>

int door_info(int d, struct door_info *info);

Description

The door_info() function returns information associated with a door descriptor. It obtains information about the door descriptor d and places the information that is relevant to the door in the structure pointed to by the info argument.

The door_info structure pointed to by the info argument contains the following members:

pid_t           di_target;      /* door server pid */
door_ptr_t      di_proc;        /* server function */
door_ptr_t      di_data;        /* data cookie for invocation */
door_attr_t     di_attributes;  /* door attributes */
door_id_t       di_uniquifier;  /* unique id among all doors */

The di_target member is the process ID of the door server, or −1 if the door server process has exited.

The values for di_attributes may be composed of the following:

DOOR_LOCAL

The door descriptor refers to a service procedure in this process.

DOOR_UNREF

The door has requested notification when all but the last reference has gone away.

DOOR_UNREF_MULTI

Similar to DOOR_UNREF, except multiple unreferenced notifications may be delivered for this door.

DOOR_IS_UNREF

There is currently only one descriptor referring to the door.

DOOR_REFUSE_DESC

The door refuses any attempt to door_call(3C) it with argument descriptors.

DOOR_NO_CANCEL

Clients who abort a door_call(3C) call on this door will not cause the cancellation(7) of the server thread handling the request.

DOOR_REVOKED

The door descriptor refers to a door that has been revoked.

DOOR_PRIVATE

The door has a separate pool of server threads associated with it.

DOOR_ON_TPD

The door server is run in the TPD process. For more information, see the tpd(7) man page.

The di_proc and di_data members are returned as door_ptr_t objects rather than void * pointers to allow clients and servers to interoperate in environments where the pointer sizes may vary in size (for example, 32-bit clients and 64-bit servers). Each door has a system-wide unique number associated with it that is set when the door is created by door_create(). This number is returned in di_uniquifier.

Return Values

Upon successful completion, 0 is returned. Otherwise, −1 is returned and errno is set to indicate the error.

Errors

The door_info() function will fail if:

EFAULT

The address of argument info is an invalid address.

EBADF

d is not a door descriptor.

Attributes

See attributes(7) 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_bind(3C), door_call(3C), door_create(3C), door_server_create(3C), attributes(7), cancellation(7), tpd(7)