1door_info(3C) Standard C Library Functions door_info(3C)
2
3
4
6 door_info - return information associated with a door descriptor
7
9 cc -mt [ flag... ] file... [ library... ]
10 #include <door.h>
11
12 int door_info(int d, struct door_info *info);
13
14
16 The door_info() function returns information associated with a door
17 descriptor. It obtains information about the door descriptor d and
18 places the information that is relevant to the door in the structure
19 pointed to by the info argument.
20
21
22 The door_info structure pointed to by the info argument contains the
23 following members:
24
25 pid_t di_target; /* door server pid */
26 door_ptr_t di_proc; /* server function */
27 door_ptr_t di_data; /* data cookie for invocation */
28 door_attr_t di_attributes; /* door attributes */
29 door_id_t di_uniquifier; /* unique id among all doors */
30
31
32
33 The di_target member is the process ID of the door server, or −1 if the
34 door server process has exited.
35
36
37 The values for di_attributes may be composed of the following:
38
39 DOOR_LOCAL The door descriptor refers to a service procedure
40 in this process.
41
42
43 DOOR_UNREF The door has requested notification when all but
44 the last reference has gone away.
45
46
47 DOOR_UNREF_MULTI Similar to DOOR_UNREF, except multiple unreferenced
48 notifications may be delivered for this door.
49
50
51 DOOR_IS_UNREF There is currently only one descriptor referring to
52 the door.
53
54
55 DOOR_REFUSE_DESC The door refuses any attempt to door_call(3C) it
56 with argument descriptors.
57
58
59 DOOR_NO_CANCEL Clients who abort a door_call(3C) call on this door
60 will not cause the cancellation(5) of the server
61 thread handling the request.
62
63
64 DOOR_REVOKED The door descriptor refers to a door that has been
65 revoked.
66
67
68 DOOR_PRIVATE The door has a separate pool of server threads
69 associated with it.
70
71
72
73 The di_proc and di_data members are returned as door_ptr_t objects
74 rather than void * pointers to allow clients and servers to interoper‐
75 ate in environments where the pointer sizes may vary in size (for exam‐
76 ple, 32-bit clients and 64-bit servers). Each door has a system-wide
77 unique number associated with it that is set when the door is created
78 by door_create(). This number is returned in di_uniquifier.
79
81 Upon successful completion, 0 is returned. Otherwise, −1 is returned
82 and errno is set to indicate the error.
83
85 The door_info() function will fail if:
86
87 EFAULT The address of argument info is an invalid address.
88
89
90 EBADF d is not a door descriptor.
91
92
94 See attributes(5) for descriptions of the following attributes:
95
96
97
98
99 ┌─────────────────────────────┬─────────────────────────────┐
100 │ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
101 ├─────────────────────────────┼─────────────────────────────┤
102 │Architecture │all │
103 ├─────────────────────────────┼─────────────────────────────┤
104 │Availability │SUNWcsu │
105 ├─────────────────────────────┼─────────────────────────────┤
106 │Interface Stability │Stable │
107 ├─────────────────────────────┼─────────────────────────────┤
108 │MT-Level │Safe │
109 └─────────────────────────────┴─────────────────────────────┘
110
112 door_bind(3C), door_call(3C), door_create(3C), door_server_create(3C),
113 attributes(5), cancellation(5)
114
115
116
117SunOS 5.11 22 Mar 2005 door_info(3C)