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_SYNCH_VERSION 10
00066
00070 #define ROM400_SOCK_VERSION 10
00071
00072
00075 #define SOCKET_TYPE_DATAGRAM 0
00076
00078 #define SOCKET_TYPE_STREAM 1
00079
00081 #define SOCK_DGRAM 0
00082
00084 #define SOCK_STREAM 1
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 bogus_ptr[3];
00131 unsigned char sin_addr[16];
00132 unsigned int 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
00155
00156
00163 struct sockaddr_in
00164 {
00165 unsigned char bogus_ptr[3];
00166 unsigned char sin_zero[12];
00167 struct in_addr sin_addr;
00168 unsigned int sin_port;
00169 unsigned char sin_family;
00170 };
00171
00172
00173
00174
00195
00196 char* inet_ntop(int family, void* addr, char* strptr, size_t len);
00197
00215
00216 unsigned int inet_pton(int family, char* str, void* addr);
00217
00230
00231 #define htons(x) (x)
00232
00245
00246 #define ntohs(x) (x)
00247
00260
00261 unsigned long inet_addr(char* inet_string);
00262
00263
00281
00282 int syn_socket(unsigned int type);
00283
00296
00297 int syn_closesocket(int socket_num);
00298
00323
00324 int syn_setDatagramAddress(int socket_num, unsigned char sending, struct sockaddr* addr);
00325
00347
00348 int syn_sendto(int socket_num, unsigned int length, void* buffer);
00349
00375
00376 int syn_recvfrom(int socket_num, unsigned int length, void* buffer);
00377
00392
00393 int syn_connect(int socket_num, struct sockaddr* address);
00394
00419
00420 int syn_bind(int socket_num, struct sockaddr* address);
00421
00440
00441 int syn_listen(int socket_num, unsigned int backlog);
00442
00464
00465 int syn_accept(int socket_num, struct sockaddr* address);
00466
00487
00488 int syn_recv(int socket_num, unsigned int length, void* buffer);
00489
00506
00507 int syn_send(int socket_num, unsigned int length, void* buffer);
00508
00534
00535 int syn_getsockopt(int socket_num, unsigned int name, void* buffer);
00536
00559
00560 int syn_setsockopt(int socket_num, unsigned int name, void* buffer);
00561
00577
00578 int syn_getsockname(int socket_num, struct sockaddr* address);
00579
00594
00595 int syn_getpeername(int socket_num, struct sockaddr* address);
00596
00612
00613 int syn_cleanup(unsigned int process_id);
00614
00629
00630 int syn_avail(int socket_num);
00631
00651
00652 int syn_join(int socket_num, struct sockaddr* address);
00653
00666
00667 int syn_leave(int socket_num, struct sockaddr* address);
00668
00695
00696 int syn_getnetworkparams(void* param_buffer);
00697
00729
00730 int syn_setnetworkparams(void* param_buffer);
00731
00750
00751 int syn_getipv6params(void* param_buffer);
00752
00767
00768 unsigned int syn_getethernetstatus(void);
00769
00783
00784 int syn_gettftpserver(struct sockaddr* address);
00785
00801
00802 int syn_settftpserver(struct sockaddr* address);
00803
00814
00815 unsigned char* syn_getmacid(void);
00816
00829
00830 void syn_setmacid(void);
00831
00841
00842 void clear_param_buffers(void);
00843
00849
00850 unsigned int syn_version(void);
00851
00852
00863
00864 int syn_arp_generaterequest(struct sockaddr* address);
00865
00866
00877
00878 int syn_arp_cacherequest(struct sockaddr* address);
00879
00880
00898
00899 int acceptqueue(int socket_handle, struct sockaddr* address);
00900
00918
00919 int udpavailable(int socket_handle, struct sockaddr* address);
00920
00921
00922
00923
00924
00925
00926
00927
00928
00929
00930
00931
00932
00933
00934
00935
00936
00937
00938
00939
00940
00941
00942
00943
00944
00945
00946
00947
00948
00949
00950
00951
00952
00953
00954
00955
00956
00957
00958
00959
00960
00961
00962
00963
00964
00965
00966
00967
00968
00969
00970
00971
00972
00973
00974
00975
00976
00977
00978
00979
00980
00981
00982
00983
00984
00985
00986
00987
00988
00989
00990
00991
00992
01012
01013 #define socket(domain,type,protocol) syn_socket((type))
01014
01027
01028 #define closesocket(socket_num) syn_closesocket((socket_num))
01029
01051
01052 #define sendto(socket_num,buffer,length,flags,address,address_length) syn_sendto(syn_setDatagramAddress((socket_num),1,(address)),(length),(buffer))
01053
01081
01082 #define recvfrom(socket_num,buffer,length,flags,address,address_length) syn_recvfrom(syn_setDatagramAddress((socket_num),0,(address)),(length),(buffer))
01083
01099
01100 #define connect(socket_num,address,address_length) syn_connect((socket_num),(address))
01101
01127
01128 #define bind(socket_num,address,address_length) syn_bind((socket_num),(address))
01129
01148
01149 #define listen(socket_num,backlog) syn_listen((socket_num),(backlog))
01150
01173
01174 #define accept(socket_num,address,address_length) syn_accept((socket_num),(address))
01175
01197
01198 #define recv(socket_num,buffer,length,flags) syn_recv((socket_num),(length),(buffer))
01199
01217
01218 #define send(socket_num,buffer,length,flags) syn_send((socket_num),(length),(buffer))
01219
01244
01245 #define getsockopt(socket_num,level,name,buffer,length) syn_getsockopt((socket_num),(name),(buffer))
01246
01271
01272 #define setsockopt(socket_num,level,name,buffer,length) syn_setsockopt((socket_num),(name),(buffer))
01273
01290
01291 #define getsockname(socket_num,address,address_length) syn_getsockname((socket_num),(address))
01292
01308
01309 #define getpeername(socket_num,address,address_length) syn_getpeername((socket_num),(address))
01310
01326
01327 #define cleanup(process_id) syn_cleanup((process_id))
01328
01343
01344 #define avail(socket_num) syn_avail((socket_num))
01345
01366
01367 #define join(socket_num,address,address_length) syn_join((socket_num),(address))
01368
01382
01383 #define leave(socket_num,address,address_length) syn_leave((socket_num),(address))
01384
01411
01412 #define getnetworkparams(param_buffer) syn_getnetworkparams((param_buffer))
01413
01445
01446 #define setnetworkparams(param_buffer) syn_setnetworkparams((param_buffer))
01447
01466
01467 #define getipv6params(param_buffer) syn_getipv6params((param_buffer))
01468
01483
01484 #define getethernetstatus() syn_getethernetstatus()
01485
01500
01501 #define gettftpserver(address,address_length) syn_gettftpserver((address))
01502
01519
01520 #define settftpserver(address,address_length) syn_settftpserver((address))
01521
01532
01533 #define getmacid() syn_getmacid()
01534
01547
01548 #define setmacid() syn_setmacid()
01549
01550
01556 #define sock_version() syn_version()
01557
01558 struct pingdata {
01559 unsigned char reserved[3];
01560 unsigned char ip_header[20];
01561 unsigned char icmp_header[8];
01562 unsigned char icmp_data[32];
01563 };
01564
01584
01585 long ping(struct sockaddr* address, unsigned int address_length, unsigned int time_to_live, struct pingdata* response);
01586
01587
01588
01600
01601 #define arp_generaterequest(address,address_length) syn_arp_generaterequest((address))
01602
01603
01615
01616 #define arp_cacherequest(address,address_length) syn_arp_cacherequest((address))
01617
01618
01631
01632 unsigned int eth_readmii(unsigned int phy, unsigned int reg);
01633
01634
01646
01647 void eth_writemii(unsigned int phy, unsigned int reg, unsigned int val);
01648
01649
01659
01660 void eth_disablemulticastreceiver(void);
01661
01662 #endif
01663