Login

Subversion Repositories NedoOS

Rev

Rev 1437 | Rev 1754 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed


struct sockaddr_in {
        unsigned char   family;                 /*net type*/
        unsigned char   porth;                  /*port*/
                unsigned char   portl;                  /*port*/
        unsigned char   b1;
                unsigned char   b2;
                unsigned char   b3;
                unsigned char   b4;
        unsigned char   zero[8];                /*reserved*/
};

struct readstructure
                        {
                        unsigned char   socket;
                        unsigned int    BufAdr;
                        unsigned int    bufsize;
                        unsigned char   protocol;
                       
//                      unsigned char   family;                 // ICMP/UDP sockaddr_in
//                      unsigned char   porth;
//                      unsigned char   portl;
//                      unsigned char   b1;
//                      unsigned char   b2;
///                     unsigned char   b3;
//                      unsigned char   b4;
//                      unsigned char   zero[8];
                        };

unsigned int OS_NETSOCKET(unsigned int);
//      D - ╤Б╨╡╨╝╨╡╨╣╤Б╤В╨▓╨╛ ╨░╨┤╤А╨╡╤Б╨╛╨▓, ╨▒╨╡╨╖╨╖╨╜╨░╨║╨╛╨▓╨╛╨╡ 8-╨▒╨╕╤В╨╜╨╛╨╡ ╤З╨╕╤Б╨╗╨╛, ╨┤╨╛╨┐╤Г╤Б╨║╨░╨╡╤В╤Б╤П ╤В╨╛╨╗╤М╨║╨╛ ╨╖╨╜╨░╤З╨╡╨╜╨╕╨╡ 2 (AF_INET).
//  E - ╨┐╤А╨╛╤В╨╛╨║╨╛╨╗ ╤Б╨╛╨╡╨┤╨╕╨╜╨╡╨╜╨╕╤П(0x01 tcp/ip, 0x02 icmp, 0x03 udp/ip)
//      ╨Т╨╛╨╖╨▓╤А╨░╤Й╨░╨╡╨╝╤Л╨╡ ╨╖╨╜╨░╤З╨╡╨╜╨╕╤П ╨▓ ╤А╨╡╨│╨╕╤Б╤В╤А╨░╤Е:
//  L - SOCKET ╨┐╤А╨╕ ╨┐╨╛╨╗╨╛╨╢╨╕╤В╨╡╨╗╤М╨╜╨╛╨╝ ╨╖╨╜╨░╤З╨╡╨╜╨╕╨╕, ╨┐╤А╨╕ ╨╛╤В╤А╨╕╤Ж╨░╤В╨╡╨╗╤М╨╜╨╛╨╝ ╨╖╨╜╨░╤З╨╡╨╜╨╕╨╕  - ╤Д╤Г╨╜╨║╤Ж╨╕╤П ╨╖╨░╨▓╨╡╤А╤И╨╕╨╗╨░╤Б╤М ╤Б ╨╛╤И╨╕╨▒╨║╨╛╨╣.
//  ╨Р - errno ╨┐╤А╨╕ ╨╛╤И╨╕╨▒╨║╨╡.
//      HL - ╨┐╨░╤А╨░╨╝╨╡╤В╤А ╨▓╨╡╤А╨╜╨╡╨╝

unsigned int OS_NETCONNECT (unsigned char socket,struct sockaddr_in *);
//      A - SOCKET
//      DE - ╤Г╨║╨░╨╖╨░╤В╨╡╨╗╤М ╨╜╨░ ╤Б╤В╤А╤Г╨║╤В╤Г╤А╤Г sockaddr_in ╤Б╨╛╨┤╨╡╤А╨╢╨░╤Й╤Г╤О IP ╨░╨┤╤А╨╡╤Б ╨╕ ╨┐╨╛╤А╤В ╤Е╨╛╤Б╤В╨░.
//      ╨Т╨╛╨╖╨▓╤А╨░╤Й╨░╨╡╨╝╤Л╨╡ ╨╖╨╜╨░╤З╨╡╨╜╨╕╤П ╨▓ ╤А╨╡╨│╨╕╤Б╤В╤А╨░╤Е:
//  L - ╨Я╤А╨╕ ╨╛╤В╤А╨╕╤Ж╨░╤В╨╡╨╗╤М╨╜╨╛╨╝ ╨╖╨╜╨░╤З╨╡╨╜╨╕╨╕  - ╤Д╤Г╨╜╨║╤Ж╨╕╤П ╨╖╨░╨▓╨╡╤А╤И╨╕╨╗╨░╤Б╤М ╤Б ╨╛╤И╨╕╨▒╨║╨╛╨╣.
//  ╨Р - errno ╨┐╤А╨╕ ╨╛╤И╨╕╨▒╨║╨╡.


unsigned int OS_WIZNETREAD (struct readstructure *);
//      A=SOCKET, de=buffer_ptr, HL=sizeof(buffer) ;
//      out: HL=count if HL < 0 then A=error

unsigned int OS_WIZNETWRITE (struct readstructure *);
//CMD_WIZNETWRITE=0xde
//if TCP: A=SOCKET, de=buffer_ptr, HL=sizeof(buffer)
//else:  A=SOCKET, IX=buffer_ptr, HL=sizeof(buffer), de=sockaddr_in ptr
//out: HL=count if HL < 0 then A=error

unsigned int OS_BIND(unsigned char socket,struct sockaddr_in *);
//      A=SOCKET, DE=sockaddr ptr {unsigned char sin_family /*net type*/; unsigned short sin_port; struct in_addr sin_addr /*4 bytes IP*/; char sin_zero[8];}

unsigned int OS_LISTEN(unsigned char socket);
// A - SOCKET
// ╨Т╨╛╨╖╨▓╤А╨░╤Й╨░╨╡╨╝╤Л╨╡ ╨╖╨╜╨░╤З╨╡╨╜╨╕╤П ╨▓ ╤А╨╡╨│╨╕╤Б╤В╤А╨░╤Е:
// L - ╨Я╤А╨╕ ╨╛╤В╤А╨╕╤Ж╨░╤В╨╡╨╗╤М╨╜╨╛╨╝ ╨╖╨╜╨░╤З╨╡╨╜╨╕╨╕ - ╤Д╤Г╨╜╨║╤Ж╨╕╤П ╨╖╨░╨▓╨╡╤А╤И╨╕╨╗╨░╤Б╤М ╤Б ╨╛╤И╨╕╨▒╨║╨╛╨╣.
// ╨Р - errno ╨┐╤А╨╕ ╨╛╤И╨╕╨▒╨║╨╡.

unsigned int OS_ACCEPT(unsigned char socket);
// A - SOCKET
// ╨Т╨╛╨╖╨▓╤А╨░╤Й╨░╨╡╨╝╤Л╨╡ ╨╖╨╜╨░╤З╨╡╨╜╨╕╤П ╨▓ ╤А╨╡╨│╨╕╤Б╤В╤А╨░╤Е:
// L - SOCKET ╨┐╤А╨╕ ╨┐╨╛╨╗╨╛╨╢╨╕╤В╨╡╨╗╤М╨╜╨╛╨╝ ╨╖╨╜╨░╤З╨╡╨╜╨╕╨╕, ╨┐╤А╨╕ ╨╛╤В╤А╨╕╤Ж╨░╤В╨╡╨╗╤М╨╜╨╛╨╝ ╨╖╨╜╨░╤З╨╡╨╜╨╕╨╕  - ╤Д╤Г╨╜╨║╤Ж╨╕╤П ╨╖╨░╨▓╨╡╤А╤И╨╕╨╗╨░╤Б╤М ╤Б ╨╛╤И╨╕╨▒╨║╨╛╨╣.
// ╨Р - errno ╨┐╤А╨╕ ╨╛╤И╨╕╨▒╨║╨╡.

unsigned int OS_NETSHUTDOWN (unsigned char socket);
// A=SOCKET ;
// out: if HL < 0 then A=error





#define IPPROTO_TCP 6
#define IPPROTO_UDP 17

#define AF_UNSPEC 0
#define AF_INET 2
#define AF_INET6 23

#define SOCK_STREAM 0x01        //tcp/ip
#define SOCK_ICMP       0x02    //icmp
#define SOCK_DGRAM      0x03    //udp/ip
#define ERR_INTR                 4
#define ERR_NFILE                23
#define ERR_ALREADY      37
#define ERR_NOTSOCK      38
#define ERR_EAGAIN               35                     /* Try again */
#define ERR_EWOULDBLOCK  ERR_EAGAIN             /* Operation would block */
#define ERR_EMSGSIZE     40             /* Message too long */
#define ERR_PROTOTYPE    41
#define ERR_AFNOSUPPORT  47
#define ERR_HOSTUNREACH  65
#define ECONNABORTED    53      /* Software caused connection abort */
#define ERR_CONNRESET    54
#define ERR_NOTCONN      57