10Sstevel@tonic-gate /* 20Sstevel@tonic-gate * CDDL HEADER START 30Sstevel@tonic-gate * 40Sstevel@tonic-gate * The contents of this file are subject to the terms of the 51974Sbrutus * Common Development and Distribution License (the "License"). 61974Sbrutus * You may not use this file except in compliance with the License. 70Sstevel@tonic-gate * 80Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 90Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing. 100Sstevel@tonic-gate * See the License for the specific language governing permissions 110Sstevel@tonic-gate * and limitations under the License. 120Sstevel@tonic-gate * 130Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each 140Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 150Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the 160Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying 170Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner] 180Sstevel@tonic-gate * 190Sstevel@tonic-gate * CDDL HEADER END 200Sstevel@tonic-gate */ 210Sstevel@tonic-gate /* 22*8348SEric.Yu@Sun.COM * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 230Sstevel@tonic-gate * Use is subject to license terms. 240Sstevel@tonic-gate */ 250Sstevel@tonic-gate 260Sstevel@tonic-gate #ifndef _SYS_SOCKFS_NL7C_H 270Sstevel@tonic-gate #define _SYS_SOCKFS_NL7C_H 280Sstevel@tonic-gate 290Sstevel@tonic-gate #ifdef __cplusplus 300Sstevel@tonic-gate extern "C" { 310Sstevel@tonic-gate #endif 320Sstevel@tonic-gate 330Sstevel@tonic-gate #include <sys/types.h> 340Sstevel@tonic-gate #include <sys/atomic.h> 350Sstevel@tonic-gate #include <sys/cmn_err.h> 360Sstevel@tonic-gate #include <sys/stropts.h> 370Sstevel@tonic-gate #include <sys/socket.h> 380Sstevel@tonic-gate #include <sys/socketvar.h> 390Sstevel@tonic-gate 40*8348SEric.Yu@Sun.COM 410Sstevel@tonic-gate /* 42*8348SEric.Yu@Sun.COM * NCA_DEV NCA device 43*8348SEric.Yu@Sun.COM * 44*8348SEric.Yu@Sun.COM * NCA_INET_DEV TPI device for the INET based transport that NCA will use. 45*8348SEric.Yu@Sun.COM */ 46*8348SEric.Yu@Sun.COM #define NCA_DEV "/dev/nca" 47*8348SEric.Yu@Sun.COM #define NCA_INET_DEV "/dev/tcp" 48*8348SEric.Yu@Sun.COM 49*8348SEric.Yu@Sun.COM /* 50*8348SEric.Yu@Sun.COM * NL7C (uint64_t)(sotpi_info_t).sti_nl7c_flags: 510Sstevel@tonic-gate */ 520Sstevel@tonic-gate 530Sstevel@tonic-gate #define NL7C_ENABLED 0x00000001 /* NL7C enabled socket */ 540Sstevel@tonic-gate #define NL7C_SOPERSIST 0x00000002 /* NL7C socket is persistent */ 550Sstevel@tonic-gate #define NL7C_WAITWRITE 0x00000004 /* NL7C waiting first write */ 560Sstevel@tonic-gate #define NL7C_AF_NCA 0x00000008 /* NL7C enabled socket via AF_NCA */ 571974Sbrutus #define NL7C_POLLIN 0x00000010 /* poll() POLLIN prior to read */ 581974Sbrutus #define NL7C_CLOSE 0x00000020 /* NL7C close needed */ 590Sstevel@tonic-gate 600Sstevel@tonic-gate #define NL7C_SCHEMEPRIV 0xFFFF0000 /* NL7C scheme private state */ 610Sstevel@tonic-gate 620Sstevel@tonic-gate #define NL7C_UNUSED 0xFFFFFFFF00000000 /* Unused bits */ 630Sstevel@tonic-gate 640Sstevel@tonic-gate /* 650Sstevel@tonic-gate * Globals ... 660Sstevel@tonic-gate */ 670Sstevel@tonic-gate 680Sstevel@tonic-gate extern boolean_t nl7c_enabled; 690Sstevel@tonic-gate extern clock_t nl7c_uri_ttl; 700Sstevel@tonic-gate 710Sstevel@tonic-gate /* 720Sstevel@tonic-gate * Function prototypes ... 730Sstevel@tonic-gate */ 740Sstevel@tonic-gate 751974Sbrutus boolean_t nl7c_process(struct sonode *, boolean_t); 761974Sbrutus int nl7c_data(struct sonode *, uio_t *); 771974Sbrutus void nl7c_urifree(struct sonode *); 781974Sbrutus void nl7c_close(struct sonode *); 791974Sbrutus boolean_t nl7c_parse(struct sonode *, boolean_t, boolean_t *); 800Sstevel@tonic-gate 81*8348SEric.Yu@Sun.COM extern void *nl7c_lookup_addr(void *, t_uscalar_t); 82*8348SEric.Yu@Sun.COM extern void *nl7c_add_addr(void *, t_uscalar_t); 83*8348SEric.Yu@Sun.COM extern void nl7c_listener_addr(void *, struct sonode *); 84*8348SEric.Yu@Sun.COM 850Sstevel@tonic-gate #ifdef __cplusplus 860Sstevel@tonic-gate } 870Sstevel@tonic-gate #endif 880Sstevel@tonic-gate 890Sstevel@tonic-gate #endif /* _SYS_SOCKFS_NL7C_H */ 90