| 526 | } |
| 527 | |
| 528 | int |
| 529 | vmcs_snapshot_any(struct vmcs *vmcs, int running, int ident, |
| 530 | struct vm_snapshot_meta *meta) |
| 531 | { |
| 532 | int ret; |
| 533 | uint64_t val; |
| 534 | |
| 535 | if (meta->op == VM_SNAPSHOT_SAVE) { |
| 536 | ret = vmcs_getany(vmcs, running, ident, &val); |
| 537 | if (ret != 0) |
| 538 | goto done; |
| 539 | |
| 540 | SNAPSHOT_VAR_OR_LEAVE(val, meta, ret, done); |
| 541 | } else if (meta->op == VM_SNAPSHOT_RESTORE) { |
| 542 | SNAPSHOT_VAR_OR_LEAVE(val, meta, ret, done); |
| 543 | |
| 544 | ret = vmcs_setany(vmcs, running, ident, val); |
| 545 | if (ret != 0) |
| 546 | goto done; |
| 547 | } else { |
| 548 | ret = EINVAL; |
| 549 | goto done; |
| 550 | } |
| 551 | |
| 552 | done: |
| 553 | return (ret); |
| 554 | } |
| 555 | #endif |
| 556 | |
| 557 | #ifdef DDB |
no test coverage detected