]> git.kernelconcepts.de Git - karo-tx-redboot.git/blobdiff - packages/redboot/v2_0/include/net/net.h
unified MX27, MX25, MX37 trees
[karo-tx-redboot.git] / packages / redboot / v2_0 / include / net / net.h
index c7d83a515769f064cbde4d07b0f5ceb68f63d802..c7c4989baaea83c9b819641471d4a6cb2db45e20 100644 (file)
@@ -162,7 +162,7 @@ typedef struct {
 #define ETH_TYPE_IP   0x800
 #define ETH_TYPE_ARP  0x806
 #define ETH_TYPE_RARP 0x8053
-} eth_header_t;
+} __attribute__((aligned(4),packed)) eth_header_t;
 
 
 /*
@@ -298,7 +298,7 @@ typedef struct _pktbuf {
     word       pkt_bytes;              /* number of data bytes in buf */
     word        bufsize;                /* size of buf */
     word       *buf;
-} pktbuf_t;
+} __attribute__((aligned(4),packed)) pktbuf_t;
 
 
 /* protocol handler */
@@ -311,12 +311,12 @@ typedef struct _udp_socket {
     struct _udp_socket *next;
     word               our_port;
     word               pad;
-    void                (*handler)(struct _udp_socket *skt, char *buf, int len,
+    void                (*handler)(struct _udp_socket *skt, void *buf, int len,
                                   ip_route_t *src_route, word src_port);
 } udp_socket_t;
 
 
-typedef void (*udp_handler_t)(udp_socket_t *skt, char *buf, int len,
+typedef void (*udp_handler_t)(udp_socket_t *skt, void *buf, int len,
                              ip_route_t *src_route, word src_port);
 
 
@@ -360,6 +360,10 @@ extern ip_addr_t   __local_ip_mask;
 #endif
 
 #ifdef CYGPKG_REDBOOT_NETWORKING_DNS
+#ifdef CYGPKG_REDBOOT_NETWORKING_DNS_DHCP_DOMAIN
+extern char __bootp_dns_domain[CYGNUM_REDBOOT_NETWORK_DNS_DOMAIN_BUFSIZE];
+extern cyg_bool __bootp_dns_domain_set;
+#endif
 extern struct in_addr __bootp_dns_addr;
 extern cyg_bool __bootp_dns_set;
 #endif
@@ -509,15 +513,15 @@ extern void __udp_remove_listener(word port);
 /*
  * Send a UDP packet.
  */
-extern int __udp_send(char *buf, int len, ip_route_t *dest_ip,
+extern int __udp_send(void *buf, int len, ip_route_t *dest_ip,
                       word dest_port, word src_port);
 
 // Send a UDP packet
-extern int __udp_sendto(char *buf, int len, 
+extern int __udp_sendto(void *buf, int len, 
                         struct sockaddr_in *server, struct sockaddr_in *local);
 
 // Receive a UDP packet
-extern int __udp_recvfrom(char *buf, int len, 
+extern int __udp_recvfrom(void *buf, int len, 
                           struct sockaddr_in *from, struct sockaddr_in *local,
                           struct timeval *timeout);
 
@@ -564,21 +568,21 @@ extern void __tcp_close_wait(tcp_socket_t *s);
  * Returns number of bytes read.
  * If connection is closed, returns -1.
  */
-extern int __tcp_read(tcp_socket_t *s, char *buf, int len);
+extern int __tcp_read(tcp_socket_t *s, void *buf, int len);
 
 /*
  * Write up to 'len' bytes without blocking.
  * Returns number of bytes written.
  * If connection is closed, returns -1.
  */
-extern int __tcp_write(tcp_socket_t *s, char *buf, int len);
+extern int __tcp_write(tcp_socket_t *s, void *buf, int len);
 
 /*
  * Write up to 'len' bytes, blocking until sent (not ACK'd).
  * Returns number of bytes written.
  * If connection is closed, returns -1.
  */
-extern int __tcp_write_block(tcp_socket_t *s, char *buf, int len);
+extern int __tcp_write_block(tcp_socket_t *s, void *buf, int len);
 
 
 /*
@@ -605,14 +609,14 @@ extern void __skt_wait_for_connect(tcp_socket_t *s);
  * Returns number of bytes read.
  * Doesn't block.
  */
-extern int __skt_read(tcp_socket_t *s, char *buf, int len);
+extern int __skt_read(tcp_socket_t *s, void *buf, int len);
 
 /*
  * Write 'len' bytes to the given socket.
  * Returns number of bytes written.
  * May not write all data if connection closes.
  */
-extern int __skt_write(tcp_socket_t *s, char *buf, int len);
+extern int __skt_write(tcp_socket_t *s, void *buf, int len);
 
 // Initialize the network stack - logical driver layer, etc.
 extern void net_init(void);