- int retries = 0;
-
- while (retries < MAX_RETRY) {
- port->regs[HBA_RPxCI] = bitmask;
-
- wait_until(!(port->regs[HBA_RPxCI] & bitmask));
-
- if ((port->regs[HBA_RPxTFD] & HBA_PxTFD_ERR)) {
- // 有错误
- sata_read_error(port);
- retries++;
- } else {
- vfree_dma(table);
- return 1;
- }
- }