⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fpublic.h

📁 用于嵌入式系统的TCP/IP协议栈及若干服务
💻 H
字号:
/**            Copyright (c) 1998-2001 by NETsilicon Inc.**  This software is copyrighted by and is the sole property of*  NETsilicon.  All rights, title, ownership, or other interests*  in the software remain the property of NETsilicon.  This*  software may only be used in accordance with the corresponding*  license agreement.  Any unauthorized use, duplication, transmission,*  distribution, or disclosure of this software is expressly forbidden.**  This Copyright notice may not be removed or modified without prior*  written consent of NETsilicon.**  NETsilicon, reserves the right to modify this software*  without notice.**  NETsilicon*  411 Waverley Oaks Road                  USA 781.647.1234*  Suite 227                               http://www.netsilicon.com*  Waltham, MA 02452                       AmericaSales@netsilicon.com***************************************************************************  $Name: Fusion 6.52 Fusion 6.51 $*  $Date: 2002/01/28 13:12:53 $*  $Source: M:/psisrc/stack/incl/rcs/fpublic.h $*  $Revision: 1.13 $****************************************************************************  File Description: Public Socket Functions                        ***************************************************************************//* Application API functions */#ifndef _FPUBLIC_#define _FPUBLIC_/* Configuration functions */extern  int  ll_config(char *devname, u32 ipaddr, u32 netmask,                        unsigned mtu,	u32 ospfarea);extern  int  ll_unconfig( char *devname );/* Routing functions */extern  int  ip_add_static_route(char *devname, u32 daddress, u32 subnet,			                     u32 gateway, int cost);extern  int  ip_del_static_route(u32 ip_address, u32 ip_mask);/* route leaking (redistribution) functions */extern  int  ip_add_route_leak( int dest_proto, int src_proto, void *parm );extern  int  ip_del_route_leak( int dest_proto, int src_proto );/* API to get the routing table. */typedef struct _ip_route_entry {    u32     dest;               /* Destination IP addr for this route */    u32     mask;               /* Mask for destination */    long    if_index;           /* Index of local IF for this route */    char    if_name[MAX_DEV_NAME]; /* Name of interface from Fusion device table */    long    metric1;            /* Primary routing metric */    long    metric2;            /* Alternate routing metric */    long    metric3;            /* Alternate routing metric */    long    metric4;            /* Alternate routing metric */    long    metric5;    u32     next_hop;           /* IP addr of next hop */    long    type;               /* Type of this route */    long    owner;              /* How this route was learned */    long    age;                /* No. of seconds since updating this route */}ip_route_entry, *ip_route_entry_ptr;typedef struct _ip_route_tbl {    int  count;    ip_route_entry_ptr  tbl;}ip_route_tbl, *ip_route_tbl_ptr;/* Route types */#define ROUTE_TYPE_DIRECT       1#define ROUTE_TYPE_INDIRECT     2#define ROUTE_TYPE_OTHER        3/* Route owners */#define ROUTE_OWNER_RIP         2#define ROUTE_OWNER_OSPF        3#define ROUTE_OWNER_STATIC      4#define ROUTE_OWNER_LOCAL       5#define ROUTE_OWNER_OTHER       255extern int ip_get_routing_table(ip_route_tbl_ptr route_table);/* Socket functions */extern  int  fns_accept(int fd, saddr * addrp, int * addrlen, int * errp);extern  int  fns_bind(int fd, saddr * name, int namelen, int *errp);extern  int  fns_blocking(int fd, int *errp);extern  int  fns_caccept(int fd, saddr * addrp, int * addrlen, int *errp);extern  int  fns_close( int sd, int *errp );extern  int  fns_connect(int fd, saddr * name, int namelen, int *errp);extern  int  fns_getpeername(int sd, saddr * name, int * namelen, int *errp);extern  int  fns_getserr (int sd);extern  int  fns_getsockname(int fd, saddr * saddrp, int * addrsize, int *errp);/*** Fast UDP Sockets API ***/extern int fsock_errno;int fns_fsock_init(int numfd, int *errp);int fns_fsocket (int domain, int type, int protocol, int *erp);int fns_fbind(int fd, struct sockaddr_in *addr, int addrlen, int *errp);char *fns_fgetbuff(int fd, int szData, int *errp);int fns_fsendto(int fd, char *buf, int len, int flags,struct sockaddr_in *sa,				int salen, int *errp);int fns_fsocket_close(int fd, int *errp);/* Warning:  these macros are intended for use with NetSilicon's NetOS   environment.  User's programming directly to Fusion should use the   native Fast UDP Sockets API above.*/#define fSockInit(a) fns_fsock_init(a, &fsock_errno) #define fSocket(a, b, c)  fns_fsocket(a, b, c, &fsock_errno)#define fBind(a, b, c) fns_fbind(a, b, c, &fsock_errno) #define fGetBuff(a, b)  fns_fgetbuff(a, b, &fsock_errno)#define fSendTo(a,b,c,d,e,f) fns_fsendto(a,b,c,d,e,f,&fsock_errno)#define fSocketClose(a) (void)fns_fsocket_close(a, &fsock_errno)/** end Fast UDP Sockets API **/extern  int  fns_ip_bind(int s, int pref_sock, int * errp);extern  int  fns_listen(int fd, int backlog, int *errp);extern  int  fns_nonblocking(int fd, int *errp);extern  int  fns_nselect(struct sel * selp, int cnt, u32 * waitp,                         int (*pfi)(struct sel *, int, u32, void *),                         void * arg, int * errp);extern  int  fns_pioctl(int fd, int cmnd, char * addr, int len, u16 flags, int *errp);extern  int  fns_recv(int fd, char * buf, int buf_len, int flags, int * errp);extern  int  fns_recvfrom(int fd, char * buf, int buflen, int flags,                      saddr * saddrp, int * addrlenp, int * errp);extern  int  fns_recvh(int fd, char * buf, int buf_len, int flags,                      char * hdr, int * hdrlenp, int * errp);extern  int  fns_recvht(int fd, char * buf, int buf_len, int flags,			        char * hdr, int * hdrlenp, u32 * timep, int * errp);extern  int  fns_reject(int fd, int *errp);extern  int  fns_send(int fd, char * buf, int buf_len, int flags, int * errp);extern  int  fns_sendh(int fd, char * buf, int buf_len, int flags,                       char * hdr, int hdrlen, int * errp);extern  int  fns_sendto(int fd, char * buf, int buflen, int flags,                        saddr * saddrp, int saddrlen, int * errp);extern fns_sockatmark(int fd, int *errp);#ifdef SOCKET_USE_OLD_SOCKOPT_FUNCTIONSextern  int  fns_getsopt(int sd, int level, int optname, char * optval,                          int * optlen, int *errp);extern  int  fns_setsopt(int sd, int level, int optname, char *optval,                          int optlen, int *errp);#elseextern  int	 fns_setsockopt (int sd, int level, int optname, char *optval,                           int optlen, int *errp);extern  int fns_getsockopt (int sd, int level, int optname, char *optval,                          int *optlen, int *errp);#endifextern	int  fns_shutdown(int fd, int direction, int *errp);extern  int  fns_socket(int af, int type, int protocol, int * errp);extern  int  fns_socketpair(int af, int type, int protocol, int sv[2]);/* Convenience functions */extern  char *adr2str(saddr * addrp, char * buf);/* High level convenience functions */extern  int  fns_tcp_open (int pref_sock, u16 dport,char *daddr, int * errp);extern  int  fns_udp_open(int pref_sock, int * errp);/* Function to allow run-time over-ride of default Path MTU discovery    parameters of operation */extern int fusion_ip_pmtu_set_cache_params(int cache_size,int cache_lifetime,										   int timer_short, int timer_long,										   int val_table_len,										   u16 *val_table);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -