Dallas Semiconductor DS80C400 C Libraries Home Page

Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals

rom400_sock.h

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------------
00002  *  Copyright (C) 2003-2006 Dallas Semiconductor Corporation, All Rights Reserved.
00003  * 
00004  *  Permission is hereby granted, free of charge, to any person obtaining a
00005  *  copy of this software and associated documentation files (the "Software"),
00006  *  to deal in the Software without restriction, including without limitation
00007  *  the rights to use, copy, modify, merge, publish, distribute, sublicense,
00008  *  and/or sell copies of the Software, and to permit persons to whom the
00009  *  Software is furnished to do so, subject to the following conditions:
00010  * 
00011  *  The above copyright notice and this permission notice shall be included
00012  *  in all copies or substantial portions of the Software.
00013  * 
00014  *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
00015  *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
00016  *  MERCHANTABILITY,  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
00017  *  IN NO EVENT SHALL DALLAS SEMICONDUCTOR BE LIABLE FOR ANY CLAIM, DAMAGES
00018  *  OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
00019  *  ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
00020  *  OTHER DEALINGS IN THE SOFTWARE.
00021  * 
00022  *  Except as contained in this notice, the name of Dallas Semiconductor
00023  *  shall not be used except as stated in the Dallas Semiconductor
00024  *  Branding Policy.
00025  * ---------------------------------------------------------------------------
00026  *
00027  * This file contains function definitions for the built-in ROM functions 
00028  * of the Dallas Semiconductor 400 processor.  This file is intended for use 
00029  * with the Keil MicroVision (uVision) C compiler.
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 

Copyright 2005 Dallas Semiconductor, Inc.. Documentation generated by Doxygen.