DOOR_INFO(3C) Standard C Library Functions DOOR_INFO(3C)
door_info - return information associated with a door descriptor
cc -mt [ flag... ] file... [ library... ]
#include <door.h>
int door_info(int d, struct door_info *info);
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.
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.
Upon successful completion, 0 is returned. Otherwise, -1 is returned
and errno is set to indicate the error.
The door_info() function will fail if:
EFAULT
The address of argument info is an invalid address.
EBADF
d is not a door descriptor.
See attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Architecture | all |
+--------------------+-----------------+
|Interface Stability | Stable |
+--------------------+-----------------+
|MT-Level | Safe |
+--------------------+-----------------+
door_bind(3C), door_call(3C), door_create(3C),
door_server_create(3C), attributes(7), cancellation(7)
March 22, 2005 DOOR_INFO(3C)
NAME
door_info - return information associated with a door descriptor
SYNOPSIS
cc -mt [ flag... ] file... [ library... ]
#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.
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 |
+--------------------+-----------------+
|Interface Stability | Stable |
+--------------------+-----------------+
|MT-Level | Safe |
+--------------------+-----------------+
SEE ALSO
door_bind(3C), door_call(3C), door_create(3C),
door_server_create(3C), attributes(7), cancellation(7)
March 22, 2005 DOOR_INFO(3C)