0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning * CDDL HEADER START
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning * The contents of this file are subject to the terms of the
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning * Common Development and Distribution License (the "License").
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning * You may not use this file except in compliance with the License.
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning * See the License for the specific language governing permissions
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning * and limitations under the License.
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning * When distributing Covered Code, include this CDDL HEADER in each
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning * If applicable, add the following below this CDDL HEADER, with the
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning * fields enclosed by brackets "[]" replaced with your own identifying
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning * information: Portions Copyright [yyyy] [name of copyright owner]
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning * CDDL HEADER END
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning * Use is subject to license terms.
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning#define IS_KERNEL_SOCKET(so) ((so)->so_mode & SM_KERNEL)
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning#define KSOCKET_MOD_VERSION "kernel socket module"
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning#define __KSOCKET_EV_connected KSOCKET_EV_CONNECTED
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning#define __KSOCKET_EV_connectfailed KSOCKET_EV_CONNECTFAILED
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning#define __KSOCKET_EV_disconnected KSOCKET_EV_DISCONNECTED
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning#define __KSOCKET_EV_cantsendmore KSOCKET_EV_CANTSENDMORE
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning#define __KSOCKET_EV_cantrecvmore KSOCKET_EV_CANTRECVMORE
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning if ((so)->so_ksock_callbacks.ksock_cb_##cbfn != NULL) { \
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning (*(so)->so_ksock_callbacks.ksock_cb_##cbfn)(SOTOKS(so), \
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning __KSOCKET_EV_##cbfn, (so)->so_ksock_cb_arg, (arg)); \
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning ((KSTOSO(so)->so_state & (SS_NDELAY|SS_NONBLOCK)) ? FNDELAY : 0)
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning ((ks) != NULL && (KSTOSO(ks))->so_mode & SM_KERNEL && \
0f1702c5201310f0529cd5abb77652e5e9b241b6Yu Xiangning#endif /* _INET_KSOCKET_KSOCKET_IMPL_H */