📄 fpublic.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 + -