6811333 Remove prom_printf() message in emlxs driver
[opensolaris.git] / usr / src / uts / common / sys / idm / idm_so.h
blob42c39c6461bf39da927ef9dbab577c90daf26c28
1 /*
2 * CDDL HEADER START
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
19 * CDDL HEADER END
22 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
26 #ifndef _IDM_SO_H
27 #define _IDM_SO_H
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
33 #include <sys/idm/idm_transport.h>
34 #include <sys/ksocket.h>
36 * Define TCP window size (send and receive buffer sizes)
39 #define IDM_RCVBUF_SIZE (256 * 1024)
40 #define IDM_SNDBUF_SIZE (256 * 1024)
42 /* sockets-specific portion of idm_svc_t */
43 typedef struct idm_so_svc_s {
44 ksocket_t is_so;
45 kthread_t *is_thread;
46 kt_did_t is_thread_did;
47 boolean_t is_thread_running;
48 } idm_so_svc_t;
50 /* sockets-specific portion of idm_conn_t */
51 typedef struct idm_so_conn_s {
52 ksocket_t ic_so;
54 kthread_t *ic_tx_thread;
55 kt_did_t ic_tx_thread_did;
56 boolean_t ic_tx_thread_running;
57 kmutex_t ic_tx_mutex;
58 kcondvar_t ic_tx_cv;
59 list_t ic_tx_list; /* List of PDUs for transmit */
61 kthread_t *ic_rx_thread;
62 kt_did_t ic_rx_thread_did;
63 boolean_t ic_rx_thread_running;
64 } idm_so_conn_t;
66 void idm_so_init(idm_transport_t *it);
67 void idm_so_fini();
69 /* Socket functions */
71 ksocket_t
72 idm_socreate(int domain, int type, int protocol);
74 void idm_soshutdown(ksocket_t so);
76 void idm_sodestroy(ksocket_t so);
78 int idm_get_ipaddr(idm_addr_list_t **);
80 int idm_sorecv(ksocket_t so, void *msg, size_t len);
82 int idm_sosendto(ksocket_t so, void *buff, size_t len,
83 struct sockaddr *name, socklen_t namelen);
85 int idm_iov_sosend(ksocket_t so, iovec_t *iop, int iovlen,
86 size_t total_len);
88 int idm_iov_sorecv(ksocket_t so, iovec_t *iop, int iovlen,
89 size_t total_len);
91 void idm_sotx_thread(void *arg);
92 void idm_sorx_thread(void *arg);
95 int idm_sotx_pdu_constructor(void *hdl, void *arg, int flags);
97 void idm_sotx_pdu_destructor(void *pdu_void, void *arg);
99 int idm_sorx_pdu_constructor(void *hdl, void *arg, int flags);
101 void idm_sorx_pdu_destructor(void *pdu_void, void *arg);
103 void idm_so_svc_port_watcher(void *arg);
106 #ifdef __cplusplus
108 #endif
110 #endif /* _IDM_SO_H */