#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;
/*
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 */
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);
#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
/*
* 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);
* 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);
/*
* 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);