Skip to content

Commit

Permalink
64 bit fixes (initial patch by Gwenole Beauchesne)
Browse files Browse the repository at this point in the history
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1458 c046a42c-6fe2-441c-8c8c-71466251a162
  • Loading branch information
bellard committed Jun 5, 2005
1 parent b685369 commit 101c593
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 14 deletions.
2 changes: 1 addition & 1 deletion slirp/bootp.c
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ static void bootp_reply(struct bootp_t *bp)

void bootp_input(struct mbuf *m)
{
struct bootp_t *bp = (struct bootp_t *)m->m_data;
struct bootp_t *bp = mtod(m, struct bootp_t *);

if (bp->bp_op == BOOTP_REQUEST) {
bootp_reply(bp);
Expand Down
6 changes: 3 additions & 3 deletions slirp/bootp.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,9 @@ struct bootp_t {
uint8_t bp_htype;
uint8_t bp_hlen;
uint8_t bp_hops;
unsigned long bp_xid;
unsigned short bp_secs;
unsigned short unused;
uint32_t bp_xid;
uint16_t bp_secs;
uint16_t unused;
struct in_addr bp_ciaddr;
struct in_addr bp_yiaddr;
struct in_addr bp_siaddr;
Expand Down
4 changes: 2 additions & 2 deletions slirp/ip_icmp.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@ struct icmp {
struct ip idi_ip;
/* options and then 64 bits of data */
} id_ip;
u_long id_mask;
char id_data[1];
uint32_t id_mask;
char id_data[1];
} icmp_dun;
#define icmp_otime icmp_dun.id_ts.its_otime
#define icmp_rtime icmp_dun.id_ts.its_rtime
Expand Down
8 changes: 8 additions & 0 deletions slirp/libslirp.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ int inet_aton(const char *cp, struct in_addr *ia);
#include <arpa/inet.h>
#endif

#ifdef __cplusplus
extern "C" {
#endif

void slirp_init(void);

void slirp_select_fill(int *pnfds,
Expand All @@ -29,4 +33,8 @@ int slirp_add_exec(int do_pty, const char *args, int addr_low_byte,

extern const char *tftp_prefix;

#ifdef __cplusplus
}
#endif

#endif
3 changes: 1 addition & 2 deletions slirp/slirp_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -149,8 +149,7 @@
#define SIZEOF_INT 4

/* Define to sizeof(char *) */
/* XXX: patch it */
#define SIZEOF_CHAR_P 4
#define SIZEOF_CHAR_P (HOST_LONG_BITS / 8)

/* Define if you have random() */
#undef HAVE_RANDOM
Expand Down
18 changes: 12 additions & 6 deletions slirp/udp.c
Original file line number Diff line number Diff line change
Expand Up @@ -420,10 +420,16 @@ struct talk_request {
#endif

struct cu_header {
char dest[8];
short family;
u_short port;
u_long addr;
uint16_t d_family; // destination family
uint16_t d_port; // destination port
uint32_t d_addr; // destination address
uint16_t s_family; // source family
uint16_t s_port; // source port
uint32_t s_addr; // source address
uint32_t seqn; // sequence number
uint16_t message; // message
uint16_t data_type; // data type
uint16_t pkt_len; // packet length
} *cu_head;

switch(so->so_emu) {
Expand Down Expand Up @@ -610,8 +616,8 @@ struct cu_header {
if (getsockname(so->s, (struct sockaddr *)&addr, &addrlen) < 0)
return;
cu_head = mtod(m, struct cu_header *);
cu_head->port = addr.sin_port;
cu_head->addr = (u_long) our_addr.s_addr;
cu_head->s_port = addr.sin_port;
cu_head->s_addr = our_addr.s_addr;
}

return;
Expand Down
1 change: 1 addition & 0 deletions slirp/udp.h
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ struct udpstat {

extern struct udpstat udpstat;
extern struct socket udb;
struct mbuf;

void udp_init _P((void));
void udp_input _P((register struct mbuf *, int));
Expand Down

0 comments on commit 101c593

Please sign in to comment.