URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [rtos/] [freertos-6.1.1/] [Demo/] [WizNET_DEMO_TERN_186/] [include/] [SOCKET.H] - Rev 585
Compare with Previous | Blame | View Log
/********************************************************************************** TERN, Inc.* (c) Copyright 2005, http://www.tern.com** - Derived based on development version provided by Wiznet.** Filename : socket.h* Programmer(s):* Created : 2002/06/20* Modified :* 2002/09/27 : - Renaming* INT_STATUS --> INT_REG* STATUS(i) --> INT_STATUS(i)* C_STATUS(i) --> SOCK_STATUS(i)* 2003/11/06 : Ported for use with TERN controller. Note all byte access is at even addresses* 2005/10/8 : Modified constants for easier initialization.** Description : Header file of W3100A for TERN embedded controller*********************************************************************************/#ifndef __SOCKET_H__#define __SOCKET_H__#include "types.h"#include "i2chip_hw.h"#include <dos.h>/*******************************************************************/#define MAX_SOCK_NUM 4 // Concurrent maxmium number of socket#define I2CHIP_C0_CR 0x00#define I2CHIP_C1_CR 0x01#define I2CHIP_C2_CR 0x02#define I2CHIP_C3_CR 0x03#define I2CHIP_C0_ISR 0x04#define I2CHIP_C1_ISR 0x05#define I2CHIP_C2_ISR 0x06#define I2CHIP_C3_ISR 0x07#define I2CHIP_IR 0x08#define I2CHIP_IMR 0x09#define I2CHIP_IDM_OR 0x0C#define I2CHIP_IDM_AR0 0x0D#define I2CHIP_IDM_AR1 0x0E#define I2CHIP_IDM_DR 0x0F#define I2CHIP_C0_RW_PR 0x10#define I2CHIP_C0_RR_PR 0x14#define I2CHIP_C0_TA_PR 0x18#define I2CHIP_C1_RW_PR 0x1C#define I2CHIP_C1_RR_PR 0x20#define I2CHIP_C1_TA_PR 0x24#define I2CHIP_C2_RW_PR 0x28#define I2CHIP_C2_RR_PR 0x2C#define I2CHIP_C2_TA_PR 0x30#define I2CHIP_C3_RW_PR 0x34#define I2CHIP_C3_RR_PR 0x38#define I2CHIP_C3_TA_PR 0x3C#define I2CHIP_C0_TW_PR 0x40#define I2CHIP_C0_TR_PR 0x44#define I2CHIP_C1_TW_PR 0x4C#define I2CHIP_C1_TR_PR 0x50#define I2CHIP_C2_TW_PR 0x58#define I2CHIP_C2_TR_PR 0x5C#define I2CHIP_C3_TW_PR 0x64#define I2CHIP_C3_TR_PR 0x68#define I2CHIP_GAR 0x80#define I2CHIP_SMR 0x84#define I2CHIP_SHAR 0x88#define I2CHIP_SIPR 0x8E#define I2CHIP_IRTR 0x92#define I2CHIP_RCR 0x94#define I2CHIP_RMSR 0x95#define I2CHIP_TMSR 0x96#define I2CHIP_C0_SSR 0xA0#define I2CHIP_C0_SOPR 0xA1#define I2CHIP_C0_DIR 0xA8#define I2CHIP_CO_DPR 0xAC#define I2CHIP_C0_SPR 0xAE#define I2CHIP_C0_IPR 0xB0#define I2CHIP_C0_TOSR 0xB1#define I2CHIP_C0_MSSR 0xB2#define I2CHIP_C1_SSR 0xB8#define I2CHIP_C1_SOPR 0xB9#define I2CHIP_C1_DIR 0xC0#define I2CHIP_C1_DPR 0xC4#define I2CHIP_C1_SPR 0xC6#define I2CHIP_C1_IPR 0xC8#define I2CHIP_C1_TOSR 0xC9#define I2CHIP_C1_MSSR 0xCA#define I2CHIP_C2_SSR 0xD0#define I2CHIP_C2_SOPR 0xD1#define I2CHIP_C2_DIR 0xD8#define I2CHIP_C2_DPR 0xDC#define I2CHIP_C2_SPR 0xDE#define I2CHIP_C2_IPR 0xE0#define I2CHIP_C2_TOSR 0xE1#define I2CHIP_C2_MSSR 0xE2#define I2CHIP_C3_SSR 0xE8#define I2CHIP_C3_SOPR 0xE9#define I2CHIP_C3_DIR 0xF0#define I2CHIP_C3_DPR 0xF4#define I2CHIP_C3_SPR 0xF6#define I2CHIP_C3_IPR 0xF8#define I2CHIP_C3_TOSR 0xF9#define I2CHIP_C3_MSSR 0xFA#define MAX_SEGMENT_SIZE 1460 // Maximum TCP transmission packet size#define MAX_BUF_SIZE1 0/* SOCKET OPTION(Settting OPT_PROTOCOL REG.) */#define SOCKOPT_BROADCAST 0x80 // Transmission, Reception of broadcasting data#define SOCKOPT_NDTIMEOUT 0x40 // Setting timeout#define SOCKOPT_NDACK 0x20 // Setting No Delayed Ack(TCP)#define SOCKOPT_SWS 0x10 // Setting Silly Window Syndrome(TCP)/* OPTION(Setting OPT_PROTOCOL REG.) for MAC LAYER RAW MODE */#define MACLOPT_RXERR 0x80 // Setting reception of error packet#define MACLOPT_BROADCAST 0x40 // Setting reception of broadcast packet#define MACLOPT_PROMISC 0x20 // Setting reception of promiscuous packet/* Distinguish TCP / UDP / IP RAW / MAC RAW (Setting OPT_PROTOCOL REG.) */#define SOCK_CLOSEDM 0x00 // unused socket#define SOCK_STREAM 0x01 // TCP#define SOCK_DGRAM 0x02 // UDP#define SOCK_IPL_RAW 0x03 // IP LAYER RAW SOCK#define SOCK_MACL_RAW 0x04 // MAC LAYER RAW SOCK/* Setting IP PROTOCOL */#define IPPROTO_IP 0 // dummy for IP#define IPPROTO_ICMP 1 // control message protocol#define IPPROTO_IGMP 2 // internet group management protocol#define IPPROTO_GGP 3 // gateway^2 (deprecated)#define IPPROTO_TCP 6 // tcp#define IPPROTO_PUP 12 // pup#define IPPROTO_UDP 17 // user datagram protocol#define IPPROTO_IDP 22 // xns idp#define IPPROTO_ND 77 // UNOFFICIAL net disk proto#define IPPROTO_RAW 255 // raw IP packet/* Select parameter to use */#define SEL_CONTROL 0 //Confirm socket status#define SEL_SEND 1 // Confirm Tx free buffer size#define SEL_RECV 2 // Confirm Rx data size/* Command variables */#define CSYS_INIT 0x01 // To set up network information(mac address, gateway address,// subnet mask, source ip)#define CSOCK_INIT 0x02 // To initialize socket#define CCONNECT 0x04 // To establish connection as tcp client mode#define CLISTEN 0x08 // To wait for connection request as tcp server mode#define CCLOSE 0x10 // To terminate connection#define CSEND 0x20 // To send data#define CRECV 0x40 // To receive data#define CSW_RESET 0x80 // To do software reset#define CSET_MEMORY_TEST 0x80 // To set the memory test bit#define CRESET_MEMORY_TEST 0x00 // To clear the memory test bit/* Status Variables */#define SSYS_INIT_OK 0x01 // Completion of CSYS_INIT command#define SSOCK_INIT_OK 0x02 // Completion of CSOCK_INIT command#define SESTABLISHED 0x04 // Completion of connection setup#define SCLOSED 0x08 // Completion of CCLOSED command#define SSEND_OK 0x20 // Completion of sending data#define SRECV_OK 0x40 // Completion of receiving data/* Socket Status Vabiables */#define SOCK_CLOSED 0x00 // Status of connection closed#define SOCK_ARP 0x01 // Status of ARP#define SOCK_LISTEN 0x02 // Status of waiting for TCP connection setup#define SOCK_SYNSENT 0x03 // Status of setting up TCP connection#define SOCK_SYNSENT_ACK 0x04 // Status of setting up TCP connection#define SOCK_SYNRECV 0x05 // Status of setting up TCP connection#define SOCK_ESTABLISHED 0x06 // Status of TCP connection established#define SOCK_CLOSE_WAIT 0x07 // Status of closing TCP connection#define SOCK_LAST_ACK 0x08 // Status of closing TCP connection#define SOCK_FIN_WAIT1 0x09 // Status of closing TCP connection#define SOCK_FIN_WAIT2 0x0A // Status of closing TCP connection#define SOCK_CLOSING 0x0B // Status of closing TCP connection#define SOCK_TIME_WAIT 0x0C // Status of closing TCP connection#define SOCK_RESET 0x0D // Status of closing TCP connection#define SOCK_INIT 0x0E // Status of socket initialization#define SOCK_UDP 0x0F // Status of UDP#define SOCK_RAW 0x10 // Status of IP RAW/* TERN Behavior Parameters */#define TERN_TDMA_THRES 10000 // Use DMA for transmits if data > thres bytes.#define TERN_RDMA_THRES 10000 // Use DMA for receives if data > thres bytes.// High thres value effectively disables DMAvoid far interrupt in4_isr_i2chip(void);//void ISR_ESTABLISHED(SOCKET s);//void ISR_CLOSED(SOCKET s);//void ISR_RX(SOCKET s);void initW3100A(void);void sysinit(u_char sbufsize, u_char rbufsize);void setsubmask(u_char * addr);void setgateway(u_char * addr);void setMACAddr(u_char * addr);void setIP(u_char * addr);char socket(SOCKET s, u_char protocol, u_int port, u_char flag);void setIPprotocol(SOCKET s, u_char ipprotocol);void setINTMask(u_char mask);void settimeout(u_char * val);void setTOS(SOCKET s, u_char tos);void GetDestAddr(SOCKET s, u_char* addr);//void setbroadcast(SOCKET s);char connect(SOCKET s, u_char far * addr, u_int port);char NBconnect(SOCKET s, u_char far * addr, u_int port);//char listen(SOCKET s, u_char far * addr, u_int far * port);char NBlisten(SOCKET s);void initseqnum(SOCKET s);int send(SOCKET s, u_char far * buf, u_int len);int send_in(SOCKET s, u_char far * buf, u_int len);int recv(SOCKET s, u_char far * buf, u_int len);u_int sendto(SOCKET , u_char far * buf, u_int, u_char * addr, u_int);u_int sendto_in(SOCKET , u_char far *, u_int);u_int recvfrom(SOCKET , u_char far * buf, u_int, u_char * addr, u_int *);u_int read_data(SOCKET s, u_int src_offset, u_char far * dst, u_int len);u_int write_data(SOCKET s, u_char far * src, u_int dst_offset, u_int len);void close(SOCKET s);char reset_sock(SOCKET s);u_int select(SOCKET s, u_char func);void recv_clear(SOCKET s);u_char tx_empty(SOCKET s);#endif // __SOCKET_H__
