| 273 | } |
| 274 | |
| 275 | void USB::DoEndpointState(USBEndpoint* ep, StateWrapper& sw) |
| 276 | { |
| 277 | // assumed the fields above are constant |
| 278 | sw.Do(&ep->pipeline); |
| 279 | sw.Do(&ep->halted); |
| 280 | |
| 281 | if (sw.IsReading()) |
| 282 | { |
| 283 | // clear out all packets, we'll fill it in later |
| 284 | while (!QTAILQ_EMPTY(&ep->queue)) |
| 285 | QTAILQ_REMOVE(&ep->queue, QTAILQ_FIRST(&ep->queue), queue); |
| 286 | } |
| 287 | } |
| 288 | |
| 289 | void USB::DoPacketState(USBPacket* p, StateWrapper& sw, const std::array<bool, 2>& valid_devices) |
| 290 | { |