/[gxemul]/trunk/src/include/net.h
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/src/include/net.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 31 by dpavlin, Mon Oct 8 16:19:23 2007 UTC revision 32 by dpavlin, Mon Oct 8 16:20:58 2007 UTC
# Line 2  Line 2 
2  #define NET_H  #define NET_H
3    
4  /*  /*
5   *  Copyright (C) 2004-2005  Anders Gavare.  All rights reserved.   *  Copyright (C) 2004-2006  Anders Gavare.  All rights reserved.
6   *   *
7   *  Redistribution and use in source and binary forms, with or without   *  Redistribution and use in source and binary forms, with or without
8   *  modification, are permitted provided that the following conditions are met:   *  modification, are permitted provided that the following conditions are met:
# Line 28  Line 28 
28   *  SUCH DAMAGE.   *  SUCH DAMAGE.
29   *   *
30   *   *
31   *  $Id: net.h,v 1.13 2005/11/24 12:32:11 debug Exp $   *  $Id: net.h,v 1.16 2006/09/05 06:13:27 debug Exp $
32   *   *
33   *  Emulated network support.  (See net.c for more info.)   *  Emulated network support.  (See net.c for more info.)
34   */   */
# Line 42  struct ethernet_packet_link; Line 42  struct ethernet_packet_link;
42  struct remote_net;  struct remote_net;
43    
44    
45    /*  Default emulated "simple" IPv4 network, if nothing else is specified:  */
46    #define NET_DEFAULT_IPV4_MASK           "10.0.0.0"
47    #define NET_DEFAULT_IPV4_LEN            8
48    
49    
50    /*****************************************************************************/
51    
52    /*
53     *  NOTE: These are already defined in <net/ethernet.h> on e.g. FreeBSD,
54     *        but they are missing in some systems (at least in Linux).
55     */
56    #define ETHERTYPE_SPRITE                0x0500
57    #define ETHERTYPE_IP                    0x0800
58    #define ETHERTYPE_ARP                   0x0806
59    #define ETHERTYPE_REVARP                0x8035
60    #define ETHERTYPE_IPV6                  0x86DD
61    
62  /*****************************************************************************/  /*****************************************************************************/
63    
64  /*  NOTE: udp_connection and tcp_connection are actually for  /*  NOTE: udp_connection and tcp_connection are actually for
# Line 136  struct net { Line 153  struct net {
153          struct remote_net *remote_nets;          struct remote_net *remote_nets;
154  };  };
155    
156  /*  net.c:  */  /*  net_misc.c:  */
157    void net_debugaddr(void *addr, int type);
158  void net_generate_unique_mac(struct machine *, unsigned char *macbuf);  void net_generate_unique_mac(struct machine *, unsigned char *macbuf);
159    void send_udp(struct in_addr *addrp, int portnr, unsigned char *packet,
160            size_t len);
161    
162    /*  net_ip.c:  */
163    void net_ip_checksum(unsigned char *ip_header, int chksumoffset, int len);
164    void net_ip_tcp_checksum(unsigned char *tcp_header, int chksumoffset,
165            int tcp_len, unsigned char *srcaddr, unsigned char *dstaddr,
166            int udpflag);
167    void net_ip_tcp_connectionreply(struct net *net, void *extra,
168            int con_id, int connecting, unsigned char *data, int datalen, int rst);
169    void net_ip_broadcast(struct net *net, void *extra,
170            unsigned char *packet, int len);
171    void net_ip(struct net *net, void *extra, unsigned char *packet, int len);
172    void net_udp_rx_avail(struct net *net, void *extra);
173    void net_tcp_rx_avail(struct net *net, void *extra);
174    
175    /*  net.c:  */
176    struct ethernet_packet_link *net_allocate_ethernet_packet_link(
177            struct net *net, void *extra, size_t len);
178  int net_ethernet_rx_avail(struct net *net, void *extra);  int net_ethernet_rx_avail(struct net *net, void *extra);
179  int net_ethernet_rx(struct net *net, void *extra,  int net_ethernet_rx(struct net *net, void *extra,
180          unsigned char **packetp, int *lenp);          unsigned char **packetp, int *lenp);
# Line 146  void net_ethernet_tx(struct net *net, vo Line 183  void net_ethernet_tx(struct net *net, vo
183  void net_dumpinfo(struct net *net);  void net_dumpinfo(struct net *net);
184  void net_add_nic(struct net *net, void *extra, unsigned char *macaddr);  void net_add_nic(struct net *net, void *extra, unsigned char *macaddr);
185  struct net *net_init(struct emul *emul, int init_flags,  struct net *net_init(struct emul *emul, int init_flags,
186          char *ipv4addr, int netipv4len, char **remote, int n_remote,          const char *ipv4addr, int netipv4len, char **remote, int n_remote,
187          int local_port);          int local_port, const char *settings_prefix);
188    
189  /*  Flag used to signify that this net should have a gateway:  */  /*  Flag used to signify that this net should have a gateway:  */
190  #define NET_INIT_FLAG_GATEWAY           1  #define NET_INIT_FLAG_GATEWAY           1
# Line 180  struct remote_net { Line 217  struct remote_net {
217    
218  #define TCP_INCOMING_BUF_LEN    2000  #define TCP_INCOMING_BUF_LEN    2000
219    
220    #define NET_ADDR_IPV4           1
221    #define NET_ADDR_IPV6           2
222    #define NET_ADDR_ETHERNET       3
223    
224  #endif  /*  NET_H  */  #endif  /*  NET_H  */

Legend:
Removed from v.31  
changed lines
  Added in v.32

  ViewVC Help
Powered by ViewVC 1.1.26