1/* ********************************************************************* 2 * Broadcom Common Firmware Environment (CFE) 3 * 4 * TCP Protocol Definitions File: net_tcp.h 5 * 6 * This file contains TCP protocol-specific definitions 7 * 8 * Author: Mitch Lichtenberg 9 * 10 ********************************************************************* 11 * 12 * Copyright 2000,2001,2002,2003 13 * Broadcom Corporation. All rights reserved. 14 * 15 * This software is furnished under license and may be used and 16 * copied only in accordance with the following terms and 17 * conditions. Subject to these conditions, you may download, 18 * copy, install, use, modify and distribute modified or unmodified 19 * copies of this software in source and/or binary form. No title 20 * or ownership is transferred hereby. 21 * 22 * 1) Any source code used, modified or distributed must reproduce 23 * and retain this copyright notice and list of conditions 24 * as they appear in the source file. 25 * 26 * 2) No right is granted to use any trade name, trademark, or 27 * logo of Broadcom Corporation. The "Broadcom Corporation" 28 * name may not be used to endorse or promote products derived 29 * from this software without the prior written permission of 30 * Broadcom Corporation. 31 * 32 * 3) THIS SOFTWARE IS PROVIDED "AS-IS" AND ANY EXPRESS OR 33 * IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED 34 * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 35 * PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT 36 * SHALL BROADCOM BE LIABLE FOR ANY DAMAGES WHATSOEVER, AND IN 37 * PARTICULAR, BROADCOM SHALL NOT BE LIABLE FOR DIRECT, INDIRECT, 38 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 39 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 40 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 41 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 42 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 43 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE), EVEN IF ADVISED OF 44 * THE POSSIBILITY OF SUCH DAMAGE. 45 ********************************************************************* */ 46 47 48/* ********************************************************************* 49 * TCP Flags - keep in sync with net_api.h 50 ********************************************************************* */ 51 52#define TCPFLG_NODELAY 1 /* disable nagle */ 53#define TCPFLG_NBIO 2 /* Non-blocking I/O */ 54 55#define TCPSTATUS_NOTCONN 0 56#define TCPSTATUS_CONNECTING 1 57#define TCPSTATUS_CONNECTED 2 58 59/* ********************************************************************* 60 * TCP API 61 ********************************************************************* */ 62 63typedef struct tcp_info_s tcp_info_t; 64 65tcp_info_t *_tcp_init(ip_info_t *ipi,void *ref); 66void _tcp_uninit(tcp_info_t *info); 67 68int _tcp_socket(tcp_info_t *info); 69int _tcp_connect(tcp_info_t *ti,int s,uint8_t *dest,uint16_t port); 70int _tcp_close(tcp_info_t *ti,int s); 71int _tcp_send(tcp_info_t *ti,int s,hsaddr_t buf,int len); 72int _tcp_recv(tcp_info_t *ti,int s,hsaddr_t buf,int len); 73int _tcp_bind(tcp_info_t *ti,int s,uint16_t port); 74int _tcp_peeraddr(tcp_info_t *ti,int s,uint8_t *addr,uint16_t *port); 75int _tcp_listen(tcp_info_t *ti,int s,uint16_t port); 76int _tcp_status(tcp_info_t *ti,int s,int *connflag,int *rxready,int *rxeof); 77int _tcp_debug(tcp_info_t *ti,int s,int arg); 78int _tcp_setflags(tcp_info_t *ti,int s,unsigned int flags); 79int _tcp_getflags(tcp_info_t *ti,int s,unsigned int *flags); 80 81void _tcp_poll(void *arg); 82 83 84