| 299 | } |
| 300 | |
| 301 | void Intel8254x::SendPacket(void* data, size_t len){ |
| 302 | t_desc_t* txd = &(txDescriptors[txTail]); |
| 303 | |
| 304 | Log::Info("Sending Packet, Tx tail %d", txTail); |
| 305 | |
| 306 | memcpy(txDescriptorsVirt[txTail], data, len); |
| 307 | txd->length = len; |
| 308 | txd->cmd = TCMD_EOP | TCMD_IFCS | TCMD_RS; |
| 309 | |
| 310 | txTail = (txTail + 1) % TX_DESC_COUNT; |
| 311 | |
| 312 | WriteMem32(I8254_REGISTER_TDESC_TAIL, txTail); |
| 313 | |
| 314 | while(!txd->status); |
| 315 | } |
| 316 | } |