Commit 29b9a3456fdb98a33f48360437d8826415f7c40b
1 parent
a8e5ac33
win32 compilation fixes
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2052 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
27 additions
and
25 deletions
hw/pcnet.c
| @@ -60,8 +60,10 @@ struct PCNetState_st { | @@ -60,8 +60,10 @@ struct PCNetState_st { | ||
| 60 | int tx_busy; | 60 | int tx_busy; |
| 61 | }; | 61 | }; |
| 62 | 62 | ||
| 63 | +/* XXX: using bitfields for target memory structures is almost surely | ||
| 64 | + not portable, so it should be suppressed ASAP */ | ||
| 63 | #ifdef __GNUC__ | 65 | #ifdef __GNUC__ |
| 64 | -#define PACKED(A) A __attribute__ ((packed)) | 66 | +#define PACKED_FIELD(A) A __attribute__ ((packed)) |
| 65 | #else | 67 | #else |
| 66 | #error FixMe | 68 | #error FixMe |
| 67 | #endif | 69 | #endif |
| @@ -152,20 +154,20 @@ struct pcnet_initblk16 { | @@ -152,20 +154,20 @@ struct pcnet_initblk16 { | ||
| 152 | uint16_t ladrf2; | 154 | uint16_t ladrf2; |
| 153 | uint16_t ladrf3; | 155 | uint16_t ladrf3; |
| 154 | uint16_t ladrf4; | 156 | uint16_t ladrf4; |
| 155 | - unsigned PACKED(rdra:24); | ||
| 156 | - unsigned PACKED(res1:5); | ||
| 157 | - unsigned PACKED(rlen:3); | ||
| 158 | - unsigned PACKED(tdra:24); | ||
| 159 | - unsigned PACKED(res2:5); | ||
| 160 | - unsigned PACKED(tlen:3); | 157 | + unsigned PACKED_FIELD(rdra:24); |
| 158 | + unsigned PACKED_FIELD(res1:5); | ||
| 159 | + unsigned PACKED_FIELD(rlen:3); | ||
| 160 | + unsigned PACKED_FIELD(tdra:24); | ||
| 161 | + unsigned PACKED_FIELD(res2:5); | ||
| 162 | + unsigned PACKED_FIELD(tlen:3); | ||
| 161 | }; | 163 | }; |
| 162 | 164 | ||
| 163 | struct pcnet_initblk32 { | 165 | struct pcnet_initblk32 { |
| 164 | uint16_t mode; | 166 | uint16_t mode; |
| 165 | - unsigned PACKED(res1:4); | ||
| 166 | - unsigned PACKED(rlen:4); | ||
| 167 | - unsigned PACKED(res2:4); | ||
| 168 | - unsigned PACKED(tlen:4); | 167 | + unsigned PACKED_FIELD(res1:4); |
| 168 | + unsigned PACKED_FIELD(rlen:4); | ||
| 169 | + unsigned PACKED_FIELD(res2:4); | ||
| 170 | + unsigned PACKED_FIELD(tlen:4); | ||
| 169 | uint16_t padr1; | 171 | uint16_t padr1; |
| 170 | uint16_t padr2; | 172 | uint16_t padr2; |
| 171 | uint16_t padr3; | 173 | uint16_t padr3; |
| @@ -183,14 +185,14 @@ struct pcnet_TMD { | @@ -183,14 +185,14 @@ struct pcnet_TMD { | ||
| 183 | unsigned tbadr:32; | 185 | unsigned tbadr:32; |
| 184 | } tmd0; | 186 | } tmd0; |
| 185 | struct { | 187 | struct { |
| 186 | - unsigned PACKED(bcnt:12), PACKED(ones:4), PACKED(res:7), PACKED(bpe:1); | ||
| 187 | - unsigned PACKED(enp:1), PACKED(stp:1), PACKED(def:1), PACKED(one:1); | ||
| 188 | - unsigned PACKED(ltint:1), PACKED(nofcs:1), PACKED(err:1), PACKED(own:1); | 188 | + unsigned PACKED_FIELD(bcnt:12), PACKED_FIELD(ones:4), PACKED_FIELD(res:7), PACKED_FIELD(bpe:1); |
| 189 | + unsigned PACKED_FIELD(enp:1), PACKED_FIELD(stp:1), PACKED_FIELD(def:1), PACKED_FIELD(one:1); | ||
| 190 | + unsigned PACKED_FIELD(ltint:1), PACKED_FIELD(nofcs:1), PACKED_FIELD(err:1), PACKED_FIELD(own:1); | ||
| 189 | } tmd1; | 191 | } tmd1; |
| 190 | struct { | 192 | struct { |
| 191 | - unsigned PACKED(trc:4), PACKED(res:12); | ||
| 192 | - unsigned PACKED(tdr:10), PACKED(rtry:1), PACKED(lcar:1); | ||
| 193 | - unsigned PACKED(lcol:1), PACKED(exdef:1), PACKED(uflo:1), PACKED(buff:1); | 193 | + unsigned PACKED_FIELD(trc:4), PACKED_FIELD(res:12); |
| 194 | + unsigned PACKED_FIELD(tdr:10), PACKED_FIELD(rtry:1), PACKED_FIELD(lcar:1); | ||
| 195 | + unsigned PACKED_FIELD(lcol:1), PACKED_FIELD(exdef:1), PACKED_FIELD(uflo:1), PACKED_FIELD(buff:1); | ||
| 194 | } tmd2; | 196 | } tmd2; |
| 195 | struct { | 197 | struct { |
| 196 | unsigned res:32; | 198 | unsigned res:32; |
| @@ -202,14 +204,14 @@ struct pcnet_RMD { | @@ -202,14 +204,14 @@ struct pcnet_RMD { | ||
| 202 | unsigned rbadr:32; | 204 | unsigned rbadr:32; |
| 203 | } rmd0; | 205 | } rmd0; |
| 204 | struct { | 206 | struct { |
| 205 | - unsigned PACKED(bcnt:12), PACKED(ones:4), PACKED(res:4); | ||
| 206 | - unsigned PACKED(bam:1), PACKED(lafm:1), PACKED(pam:1), PACKED(bpe:1); | ||
| 207 | - unsigned PACKED(enp:1), PACKED(stp:1), PACKED(buff:1), PACKED(crc:1); | ||
| 208 | - unsigned PACKED(oflo:1), PACKED(fram:1), PACKED(err:1), PACKED(own:1); | 207 | + unsigned PACKED_FIELD(bcnt:12), PACKED_FIELD(ones:4), PACKED_FIELD(res:4); |
| 208 | + unsigned PACKED_FIELD(bam:1), PACKED_FIELD(lafm:1), PACKED_FIELD(pam:1), PACKED_FIELD(bpe:1); | ||
| 209 | + unsigned PACKED_FIELD(enp:1), PACKED_FIELD(stp:1), PACKED_FIELD(buff:1), PACKED_FIELD(crc:1); | ||
| 210 | + unsigned PACKED_FIELD(oflo:1), PACKED_FIELD(fram:1), PACKED_FIELD(err:1), PACKED_FIELD(own:1); | ||
| 209 | } rmd1; | 211 | } rmd1; |
| 210 | struct { | 212 | struct { |
| 211 | - unsigned PACKED(mcnt:12), PACKED(zeros:4); | ||
| 212 | - unsigned PACKED(rpc:8), PACKED(rcc:8); | 213 | + unsigned PACKED_FIELD(mcnt:12), PACKED_FIELD(zeros:4); |
| 214 | + unsigned PACKED_FIELD(rpc:8), PACKED_FIELD(rcc:8); | ||
| 213 | } rmd2; | 215 | } rmd2; |
| 214 | struct { | 216 | struct { |
| 215 | unsigned res:32; | 217 | unsigned res:32; |
| @@ -555,7 +557,7 @@ static inline int padr_match(PCNetState *s, const uint8_t *buf, int size) | @@ -555,7 +557,7 @@ static inline int padr_match(PCNetState *s, const uint8_t *buf, int size) | ||
| 555 | s->csr[13] & 0xff, s->csr[13] >> 8, | 557 | s->csr[13] & 0xff, s->csr[13] >> 8, |
| 556 | s->csr[14] & 0xff, s->csr[14] >> 8 | 558 | s->csr[14] & 0xff, s->csr[14] >> 8 |
| 557 | }; | 559 | }; |
| 558 | - int result = (!CSR_DRCVPA(s)) && !bcmp(hdr->ether_dhost, padr, 6); | 560 | + int result = (!CSR_DRCVPA(s)) && !memcmp(hdr->ether_dhost, padr, 6); |
| 559 | #ifdef PCNET_DEBUG_MATCH | 561 | #ifdef PCNET_DEBUG_MATCH |
| 560 | printf("packet dhost=%02x:%02x:%02x:%02x:%02x:%02x, " | 562 | printf("packet dhost=%02x:%02x:%02x:%02x:%02x:%02x, " |
| 561 | "padr=%02x:%02x:%02x:%02x:%02x:%02x\n", | 563 | "padr=%02x:%02x:%02x:%02x:%02x:%02x\n", |
| @@ -571,7 +573,7 @@ static inline int padr_bcast(PCNetState *s, const uint8_t *buf, int size) | @@ -571,7 +573,7 @@ static inline int padr_bcast(PCNetState *s, const uint8_t *buf, int size) | ||
| 571 | { | 573 | { |
| 572 | static uint8_t BCAST[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; | 574 | static uint8_t BCAST[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; |
| 573 | struct qemu_ether_header *hdr = (void *)buf; | 575 | struct qemu_ether_header *hdr = (void *)buf; |
| 574 | - int result = !CSR_DRCVBC(s) && !bcmp(hdr->ether_dhost, BCAST, 6); | 576 | + int result = !CSR_DRCVBC(s) && !memcmp(hdr->ether_dhost, BCAST, 6); |
| 575 | #ifdef PCNET_DEBUG_MATCH | 577 | #ifdef PCNET_DEBUG_MATCH |
| 576 | printf("padr_bcast result=%d\n", result); | 578 | printf("padr_bcast result=%d\n", result); |
| 577 | #endif | 579 | #endif |