| return port().RDR; | return port().RDR; | ||||
| } | } | ||||
| void inline transfer(void *buf, size_t count) {transfer(buf, buf, count);} | |||||
| void inline transfer(void *buf, size_t count) { | |||||
| #if 0 | |||||
| // Ethernet library fails if this is used. Why? | |||||
| if (__builtin_constant_p(count)) { | |||||
| if (count < 1) return; | |||||
| if (((count & 3) == 0) && (((uint32_t)buf & 3) == 0)) { | |||||
| // size is multiple of 4 and buffer is 32 bit aligned | |||||
| transfer32(buf, buf, count); | |||||
| return; | |||||
| } | |||||
| if (((count & 1) == 0) && (((uint32_t)buf & 1) == 0)) { | |||||
| // size is multiple of 2 and buffer is 16 bit aligned | |||||
| transfer16(buf, buf, count); | |||||
| return; | |||||
| } | |||||
| } | |||||
| #endif | |||||
| transfer(buf, buf, count); | |||||
| } | |||||
| void setTransferWriteFill(uint8_t ch ) {_transferWriteFill = ch;} | void setTransferWriteFill(uint8_t ch ) {_transferWriteFill = ch;} | ||||
| void transfer(const void * buf, void * retbuf, size_t count); | void transfer(const void * buf, void * retbuf, size_t count); | ||||