146
147 extern int so_tpi_fallback(struct sonode *, struct cred *);
148
149 /* Common upcalls */
150 extern sock_upper_handle_t so_newconn(sock_upper_handle_t,
151 sock_lower_handle_t, sock_downcalls_t *, struct cred *, pid_t,
152 sock_upcalls_t **);
153 extern void so_set_prop(sock_upper_handle_t,
154 struct sock_proto_props *);
155 extern ssize_t so_queue_msg(sock_upper_handle_t, mblk_t *, size_t, int,
156 int *, boolean_t *);
157 extern ssize_t so_queue_msg_impl(struct sonode *, mblk_t *, size_t, int,
158 int *, boolean_t *, struct sof_instance *);
159 extern void so_signal_oob(sock_upper_handle_t, ssize_t);
160
161 extern void so_connected(sock_upper_handle_t, sock_connid_t, struct cred *,
162 pid_t);
163 extern int so_disconnected(sock_upper_handle_t, sock_connid_t, int);
164 extern void so_txq_full(sock_upper_handle_t, boolean_t);
165 extern void so_opctl(sock_upper_handle_t, sock_opctl_action_t, uintptr_t);
166 /* Common misc. functions */
167
168 /* accept queue */
169 extern int so_acceptq_enqueue(struct sonode *, struct sonode *);
170 extern int so_acceptq_enqueue_locked(struct sonode *, struct sonode *);
171 extern int so_acceptq_dequeue(struct sonode *, boolean_t,
172 struct sonode **);
173 extern void so_acceptq_flush(struct sonode *, boolean_t);
174
175 /* connect */
176 extern int so_wait_connected(struct sonode *, boolean_t, sock_connid_t);
177
178 /* send */
179 extern int so_snd_wait_qnotfull(struct sonode *, boolean_t);
180 extern void so_snd_qfull(struct sonode *so);
181 extern void so_snd_qnotfull(struct sonode *so);
182
183 extern int socket_chgpgrp(struct sonode *, pid_t);
184 extern void socket_sendsig(struct sonode *, int);
185 extern int so_dequeue_msg(struct sonode *, mblk_t **, struct uio *,
216
217 /* Notification functions */
218 extern void so_notify_connected(struct sonode *);
219 extern void so_notify_disconnecting(struct sonode *);
220 extern void so_notify_disconnected(struct sonode *, boolean_t, int);
221 extern void so_notify_writable(struct sonode *);
222 extern void so_notify_data(struct sonode *, size_t);
223 extern void so_notify_oobsig(struct sonode *);
224 extern void so_notify_oobdata(struct sonode *, boolean_t);
225 extern void so_notify_eof(struct sonode *);
226 extern void so_notify_newconn(struct sonode *);
227 extern void so_notify_shutdown(struct sonode *);
228 extern void so_notify_error(struct sonode *);
229
230 /* Common sonode functions */
231 extern int sonode_constructor(void *, void *, int);
232 extern void sonode_destructor(void *, void *);
233 extern void sonode_init(struct sonode *, struct sockparams *,
234 int, int, int, sonodeops_t *);
235 extern void sonode_fini(struct sonode *);
236
237 /*
238 * Event flags to socket_sendsig().
239 */
240 #define SOCKETSIG_WRITE 0x1
241 #define SOCKETSIG_READ 0x2
242 #define SOCKETSIG_URG 0x4
243
244 extern sonodeops_t so_sonodeops;
245 extern sock_upcalls_t so_upcalls;
246
247 #ifdef __cplusplus
248 }
249 #endif
250 #endif /* _SOCKCOMMON_H_ */
|
146
147 extern int so_tpi_fallback(struct sonode *, struct cred *);
148
149 /* Common upcalls */
150 extern sock_upper_handle_t so_newconn(sock_upper_handle_t,
151 sock_lower_handle_t, sock_downcalls_t *, struct cred *, pid_t,
152 sock_upcalls_t **);
153 extern void so_set_prop(sock_upper_handle_t,
154 struct sock_proto_props *);
155 extern ssize_t so_queue_msg(sock_upper_handle_t, mblk_t *, size_t, int,
156 int *, boolean_t *);
157 extern ssize_t so_queue_msg_impl(struct sonode *, mblk_t *, size_t, int,
158 int *, boolean_t *, struct sof_instance *);
159 extern void so_signal_oob(sock_upper_handle_t, ssize_t);
160
161 extern void so_connected(sock_upper_handle_t, sock_connid_t, struct cred *,
162 pid_t);
163 extern int so_disconnected(sock_upper_handle_t, sock_connid_t, int);
164 extern void so_txq_full(sock_upper_handle_t, boolean_t);
165 extern void so_opctl(sock_upper_handle_t, sock_opctl_action_t, uintptr_t);
166 extern mblk_t *so_get_sock_pid_mblk(sock_upper_handle_t);
167 /* Common misc. functions */
168
169 /* accept queue */
170 extern int so_acceptq_enqueue(struct sonode *, struct sonode *);
171 extern int so_acceptq_enqueue_locked(struct sonode *, struct sonode *);
172 extern int so_acceptq_dequeue(struct sonode *, boolean_t,
173 struct sonode **);
174 extern void so_acceptq_flush(struct sonode *, boolean_t);
175
176 /* connect */
177 extern int so_wait_connected(struct sonode *, boolean_t, sock_connid_t);
178
179 /* send */
180 extern int so_snd_wait_qnotfull(struct sonode *, boolean_t);
181 extern void so_snd_qfull(struct sonode *so);
182 extern void so_snd_qnotfull(struct sonode *so);
183
184 extern int socket_chgpgrp(struct sonode *, pid_t);
185 extern void socket_sendsig(struct sonode *, int);
186 extern int so_dequeue_msg(struct sonode *, mblk_t **, struct uio *,
217
218 /* Notification functions */
219 extern void so_notify_connected(struct sonode *);
220 extern void so_notify_disconnecting(struct sonode *);
221 extern void so_notify_disconnected(struct sonode *, boolean_t, int);
222 extern void so_notify_writable(struct sonode *);
223 extern void so_notify_data(struct sonode *, size_t);
224 extern void so_notify_oobsig(struct sonode *);
225 extern void so_notify_oobdata(struct sonode *, boolean_t);
226 extern void so_notify_eof(struct sonode *);
227 extern void so_notify_newconn(struct sonode *);
228 extern void so_notify_shutdown(struct sonode *);
229 extern void so_notify_error(struct sonode *);
230
231 /* Common sonode functions */
232 extern int sonode_constructor(void *, void *, int);
233 extern void sonode_destructor(void *, void *);
234 extern void sonode_init(struct sonode *, struct sockparams *,
235 int, int, int, sonodeops_t *);
236 extern void sonode_fini(struct sonode *);
237 extern void sonode_insert_pid(struct sonode *, pid_t);
238 extern void sonode_remove_pid(struct sonode *, pid_t);
239
240 /*
241 * Event flags to socket_sendsig().
242 */
243 #define SOCKETSIG_WRITE 0x1
244 #define SOCKETSIG_READ 0x2
245 #define SOCKETSIG_URG 0x4
246
247 extern sonodeops_t so_sonodeops;
248 extern sock_upcalls_t so_upcalls;
249
250 #ifdef __cplusplus
251 }
252 #endif
253 #endif /* _SOCKCOMMON_H_ */
|