00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef __rom400_sock_
00034 #define __rom400_sock_
00035
00036 #include <stdlib.h>
00037
00038
00065 #define ROM400_SOCK_VERSION 12
00066
00070 #define ROM400_SOCK_SYNCH_VERSION ROM400_SOCK_VERSION
00071
00072
00075 #define SOCKET_TYPE_DATAGRAM 0
00076
00078 #define SOCKET_TYPE_STREAM 1
00079
00081 #define SOCK_DGRAM SOCKET_TYPE_DATAGRAM
00082
00084 #define SOCK_STREAM SOCKET_TYPE_STREAM
00085
00087 #define PF_INET 4
00088
00090 #define AF_INET 4
00091
00093 #define AF_INET6 6
00094
00096 #define IPPROTO_UDP 0
00097
00098
00102 #define TCP_NODELAY 0
00103
00106 #define SO_LINGER 1
00107
00110 #define SO_TIMEOUT 2
00111
00114 #define SO_BINDADDR 3
00115
00118 #define ETH_STATUS_LINK 1
00119
00120
00128 struct sockaddr
00129 {
00130 unsigned char reserved[3];
00131 unsigned char sin_addr[16];
00132 unsigned short sin_port;
00133 unsigned char sin_family;
00134 };
00135
00141 struct in_addr
00142 {
00143 unsigned long s_addr;
00144 };
00145
00150 struct in6_addr
00151 {
00152 unsigned char s6_addr[16];
00153 };
00154
00161 struct sockaddr_in
00162 {
00163 unsigned char reserved[3];
00164 unsigned char sin_zero[12];
00165 struct in_addr sin_addr;
00166 unsigned short sin_port;
00167 unsigned char sin_family;
00168 };
00169
00173 struct pingdata {
00174 unsigned char reserved[3];
00175 unsigned char ip_header[20];
00176 unsigned char icmp_header[8];
00177 unsigned char icmp_data[32];
00178 };
00179
00180
00201
00202 char* inet_ntop(int family, void* addr, char* strptr, size_t len);
00203
00221
00222 unsigned int inet_pton(int family, char* str, void* addr);
00223
00236
00237 #define htons(x) (x)
00238
00251
00252 #define ntohs(x) (x)
00253
00266
00267 unsigned long inet_addr(char* inet_string);
00268
00269
00287
00288 int syn_socket(unsigned int type);
00289
00309
00310 #define socket(domain,type,protocol) syn_socket((type))
00311
00312
00337
00338 int syn_setDatagramAddress(int socket_num, unsigned char sending, struct sockaddr* addr);
00339
00361
00362 int syn_sendto(int socket_num, unsigned int length, void* buffer);
00363
00385
00386 #define sendto(socket_num,buffer,length,flags,address,address_length) syn_sendto(syn_setDatagramAddress((socket_num),1,(address)),(length),(buffer))
00387
00413
00414 int syn_recvfrom(int socket_num, unsigned int length, void* buffer);
00415
00443
00444 #define recvfrom(socket_num,buffer,length,flags,address,address_length) syn_recvfrom(syn_setDatagramAddress((socket_num),0,(address)),(length),(buffer))
00445
00446
00461
00462 int syn_connect(int socket_num, struct sockaddr* address);
00463
00479
00480 #define connect(socket_num,address,address_length) syn_connect((socket_num),(address))
00481
00507
00508 int syn_bind(int socket_num, struct sockaddr* address);
00509
00535
00536 #define bind(socket_num,address,address_length) syn_bind((socket_num),(address))
00537
00556
00557 int listen(int socket_num, unsigned int backlog);
00558
00577
00578 #define syn_listen(socket_num,backlog) listen((socket_num),(backlog))
00579
00601
00602 int syn_accept(int socket_num, struct sockaddr* address);
00603
00626
00627 #define accept(socket_num,address,address_length) syn_accept((socket_num),(address))
00628
00649
00650 int syn_recv(int socket_num, unsigned int length, void* buffer);
00651
00673
00674 #define recv(socket_num,buffer,length,flags) syn_recv((socket_num),(length),(buffer))
00675
00692
00693 int syn_send(int socket_num, unsigned int length, void* buffer);
00694
00712
00713 #define send(socket_num,buffer,length,flags) syn_send((socket_num),(length),(buffer))
00714
00715
00741
00742 int syn_getsockopt(int socket_num, unsigned int name, void* buffer);
00743
00768
00769 #define getsockopt(socket_num,level,name,buffer,length) syn_getsockopt((socket_num),(name),(buffer))
00770
00793
00794 int syn_setsockopt(int socket_num, unsigned int name, void* buffer);
00795
00820
00821 #define setsockopt(socket_num,level,name,buffer,length) syn_setsockopt((socket_num),(name),(buffer))
00822
00838
00839 int syn_getsockname(int socket_num, struct sockaddr* address);
00840
00857
00858 #define getsockname(socket_num,address,address_length) syn_getsockname((socket_num),(address))
00859
00874
00875 int syn_getpeername(int socket_num, struct sockaddr* address);
00876
00892
00893 #define getpeername(socket_num,address,address_length) syn_getpeername((socket_num),(address))
00894
00895
00916
00917 int cleanup(unsigned int process_id);
00918
00937
00938 #define syn_cleanup(process_id) cleanup((process_id))
00939
00940
00955
00956 int avail(int socket_num);
00957
00972
00973 #define syn_avail(socket_num) avail((socket_num))
00974
00994
00995 int syn_join(int socket_num, struct sockaddr* address);
00996
01017
01018 #define join(socket_num,address,address_length) syn_join((socket_num),(address))
01019
01032
01033 int syn_leave(int socket_num, struct sockaddr* address);
01034
01048
01049 #define leave(socket_num,address,address_length) syn_leave((socket_num),(address))
01050
01051
01078
01079 int getnetworkparams(void* param_buffer);
01080
01107
01108 #define syn_getnetworkparams(param_buffer) getnetworkparams((param_buffer))
01109
01141
01142 int setnetworkparams(void* param_buffer);
01143
01175
01176 #define syn_setnetworkparams(param_buffer) setnetworkparams((param_buffer))
01177
01196
01197 int getipv6params(void* param_buffer);
01198
01217
01218 #define syn_getipv6params(param_buffer) getipv6params((param_buffer))
01219
01234
01235 unsigned int getethernetstatus(void);
01236
01251
01252 #define syn_getethernetstatus() getethernetstatus()
01253
01267
01268 int syn_gettftpserver(struct sockaddr* address);
01269
01284
01285 #define gettftpserver(address,address_length) syn_gettftpserver((address))
01286
01302
01303 int syn_settftpserver(struct sockaddr* address);
01304
01321
01322 #define settftpserver(address,address_length) syn_settftpserver((address))
01323
01324
01334
01335 void clear_param_buffers(void);
01336
01337
01343
01344 unsigned int sock_version(void);
01345
01351 #define syn_version() sock_version()
01352
01353
01364
01365 int syn_arp_generaterequest(struct sockaddr* address);
01366
01378
01379 #define arp_generaterequest(address,address_length) syn_arp_generaterequest((address))
01380
01391
01392 int syn_arp_cacherequest(struct sockaddr* address);
01393
01405
01406 #define arp_cacherequest(address,address_length) syn_arp_cacherequest((address))
01407
01408
01426
01427 int acceptqueue(int socket_handle, struct sockaddr* address);
01428
01446
01447 int udpavailable(int socket_handle, struct sockaddr* address);
01448
01449
01462
01463 int closesocket(int socket_num);
01464
01477
01478 #define syn_closesocket(socket_num) closesocket((socket_num))
01479
01480
01491
01492 unsigned char* getmacid(void);
01493
01504
01505 #define syn_getmacid() getmacid()
01506
01519
01520 void setmacid(void);
01521
01534
01535 #define syn_setmacid() setmacid()
01536
01537
01557
01558 long ping(struct sockaddr* address, unsigned int address_length, unsigned int time_to_live, struct pingdata* response);
01559
01560
01573
01574 unsigned int eth_readmii(unsigned int phy, unsigned int reg);
01575
01587
01588 void eth_writemii(unsigned int phy, unsigned int reg, unsigned int val);
01589
01590
01600
01601 void eth_disablemulticastreceiver(void);
01602
01615
01616 int unbind(int socket_num);
01617
01634
01635 int setsockowner(int socket_num, unsigned int process_id);
01636
01637
01650
01651 unsigned long eth_readcsr(unsigned int reg);
01652
01664
01665 void eth_writecsr(unsigned int reg, unsigned long val);
01666
01667 #endif
01668