Lines Matching refs:rmd

365 static inline void pcnet_rmd_load(PCNetState *s, struct pcnet_RMD *rmd,  in pcnet_rmd_load()  argument
375 rmd->rbadr = le32_to_cpu(rda.rbadr) & 0xffffff; in pcnet_rmd_load()
376 rmd->buf_length = le16_to_cpu(rda.buf_length); in pcnet_rmd_load()
377 rmd->status = (le32_to_cpu(rda.rbadr) >> 16) & 0xff00; in pcnet_rmd_load()
378 rmd->msg_length = le16_to_cpu(rda.msg_length); in pcnet_rmd_load()
379 rmd->res = 0; in pcnet_rmd_load()
381 s->phys_mem_read(s->dma_opaque, addr, (void *)rmd, sizeof(*rmd), 0); in pcnet_rmd_load()
382 le32_to_cpus(&rmd->rbadr); in pcnet_rmd_load()
383 le16_to_cpus((uint16_t *)&rmd->buf_length); in pcnet_rmd_load()
384 le16_to_cpus((uint16_t *)&rmd->status); in pcnet_rmd_load()
385 le32_to_cpus(&rmd->msg_length); in pcnet_rmd_load()
386 le32_to_cpus(&rmd->res); in pcnet_rmd_load()
388 uint32_t tmp = rmd->rbadr; in pcnet_rmd_load()
389 rmd->rbadr = rmd->msg_length; in pcnet_rmd_load()
390 rmd->msg_length = tmp; in pcnet_rmd_load()
395 static inline void pcnet_rmd_store(PCNetState *s, struct pcnet_RMD *rmd, in pcnet_rmd_store() argument
404 rda.rbadr = cpu_to_le32((rmd->rbadr & 0xffffff) | in pcnet_rmd_store()
405 ((rmd->status & 0xff00) << 16)); in pcnet_rmd_store()
406 rda.buf_length = cpu_to_le16(rmd->buf_length); in pcnet_rmd_store()
407 rda.msg_length = cpu_to_le16(rmd->msg_length); in pcnet_rmd_store()
417 rda.rbadr = cpu_to_le32(rmd->rbadr); in pcnet_rmd_store()
418 rda.buf_length = cpu_to_le16(rmd->buf_length); in pcnet_rmd_store()
419 rda.status = cpu_to_le16(rmd->status); in pcnet_rmd_store()
420 rda.msg_length = cpu_to_le32(rmd->msg_length); in pcnet_rmd_store()
421 rda.res = cpu_to_le32(rmd->res); in pcnet_rmd_store()
443 struct pcnet_RMD rmd; \
444 RMDLOAD(&rmd,(ADDR)); \
445 (RES) |= (GET_FIELD(rmd.buf_length, RMDL, ONES) != 15) \
446 || (GET_FIELD(rmd.msg_length, RMDM, ZEROS) != 0); \
921 struct pcnet_RMD rmd; in pcnet_rdte_poll() local
922 RMDLOAD(&rmd, PHYSADDR(s,CSR_CRDA(s))); in pcnet_rdte_poll()
923 CSR_CRBC(s) = GET_FIELD(rmd.buf_length, RMDL, BCNT); in pcnet_rdte_poll()
924 CSR_CRST(s) = rmd.status; in pcnet_rdte_poll()
928 rmd.buf_length, rmd.status, rmd.msg_length); in pcnet_rdte_poll()
929 PRINT_RMD(&rmd); in pcnet_rdte_poll()
936 struct pcnet_RMD rmd; in pcnet_rdte_poll() local
937 RMDLOAD(&rmd, PHYSADDR(s,CSR_NRDA(s))); in pcnet_rdte_poll()
938 CSR_NRBC(s) = GET_FIELD(rmd.buf_length, RMDL, BCNT); in pcnet_rdte_poll()
939 CSR_NRST(s) = rmd.status; in pcnet_rdte_poll()
1010 struct pcnet_RMD rmd; in pcnet_receive() local
1019 RMDLOAD(&rmd, nrda); in pcnet_receive()
1020 if (GET_FIELD(rmd.status, RMDS, OWN)) { in pcnet_receive()
1041 struct pcnet_RMD rmd; in pcnet_receive() local
1080 RMDLOAD(&rmd, PHYSADDR(s,crda)); in pcnet_receive()
1082 SET_FIELD(&rmd.status, RMDS, STP, 1); in pcnet_receive()
1085 int count = MIN(4096 - GET_FIELD(rmd.buf_length, RMDL, BCNT),remaining); \ in pcnet_receive()
1086 hwaddr rbadr = PHYSADDR(s, rmd.rbadr); \ in pcnet_receive()
1089 SET_FIELD(&rmd.status, RMDS, OWN, 0); \ in pcnet_receive()
1090 RMDSTORE(&rmd, PHYSADDR(s,crda)); \ in pcnet_receive()
1099 PRINT_RMD(&rmd); in pcnet_receive()
1101 RMDLOAD(&rmd, PHYSADDR(s,nrda)); in pcnet_receive()
1102 if (GET_FIELD(rmd.status, RMDS, OWN)) { in pcnet_receive()
1106 PRINT_RMD(&rmd); in pcnet_receive()
1109 RMDLOAD(&rmd, PHYSADDR(s,nrda)); in pcnet_receive()
1110 if (GET_FIELD(rmd.status, RMDS, OWN)) { in pcnet_receive()
1120 RMDLOAD(&rmd, PHYSADDR(s,crda)); in pcnet_receive()
1122 SET_FIELD(&rmd.msg_length, RMDM, MCNT, size); in pcnet_receive()
1123 SET_FIELD(&rmd.status, RMDS, ENP, 1); in pcnet_receive()
1124 SET_FIELD(&rmd.status, RMDS, PAM, !CSR_PROM(s) && is_padr); in pcnet_receive()
1125 SET_FIELD(&rmd.status, RMDS, LFAM, !CSR_PROM(s) && is_ladr); in pcnet_receive()
1126 SET_FIELD(&rmd.status, RMDS, BAM, !CSR_PROM(s) && is_bcast); in pcnet_receive()
1128 SET_FIELD(&rmd.status, RMDS, CRC, 1); in pcnet_receive()
1129 SET_FIELD(&rmd.status, RMDS, ERR, 1); in pcnet_receive()
1132 SET_FIELD(&rmd.status, RMDS, OFLO, 1); in pcnet_receive()
1133 SET_FIELD(&rmd.status, RMDS, BUFF, 1); in pcnet_receive()
1134 SET_FIELD(&rmd.status, RMDS, ERR, 1); in pcnet_receive()
1136 RMDSTORE(&rmd, PHYSADDR(s,crda)); in pcnet_receive()
1144 PRINT_RMD(&rmd); in pcnet_receive()