| 1382 | | * @param u64Val 16, 32 or 64 bits value |
|---|
| 1383 | | */ |
|---|
| 1384 | | #if HC_ARCH_BITS == 64 |
|---|
| 1385 | | DECLASM(int) VMXWriteVMCS64(uint32_t idxField, uint64_t u64Val); |
|---|
| 1386 | | #else |
|---|
| 1387 | | DECLINLINE(int) VMXWriteVMCS64(uint32_t idxField, uint64_t u64Val) |
|---|
| 1388 | | { |
|---|
| 1389 | | int rc; |
|---|
| 1390 | | |
|---|
| 1391 | | rc = VMXWriteVMCS32(idxField, u64Val); |
|---|
| 1392 | | rc |= VMXWriteVMCS32(idxField+1, u64Val >> 32ULL); |
|---|
| 1393 | | return rc; |
|---|
| 1394 | | } |
|---|
| 1395 | | #endif |
|---|
| 1396 | | |
|---|
| 1397 | | /** |
|---|
| 1398 | | * Executes VMWRITE |
|---|
| 1399 | | * |
|---|
| 1400 | | * @returns VBox status code |
|---|
| 1401 | | * @param idxField VMCS index |
|---|
| | 1430 | return rc; |
|---|
| | 1431 | } |
|---|
| | 1432 | #endif |
|---|
| | 1433 | |
|---|
| | 1434 | /** |
|---|
| | 1435 | * Executes VMWRITE |
|---|
| | 1436 | * |
|---|
| | 1437 | * @returns VBox status code |
|---|
| | 1438 | * @param idxField VMCS index |
|---|
| | 1439 | * @param u64Val 16, 32 or 64 bits value |
|---|
| | 1440 | */ |
|---|
| | 1441 | #if HC_ARCH_BITS == 64 |
|---|
| | 1442 | DECLASM(int) VMXWriteVMCS64(uint32_t idxField, uint64_t u64Val); |
|---|
| | 1443 | #else |
|---|
| | 1444 | DECLINLINE(int) VMXWriteVMCS64(uint32_t idxField, uint64_t u64Val) |
|---|
| | 1445 | { |
|---|
| | 1446 | int rc; |
|---|
| | 1447 | |
|---|
| | 1448 | rc = VMXWriteVMCS32(idxField, u64Val); |
|---|
| | 1449 | rc |= VMXWriteVMCS32(idxField+1, u64Val >> 32ULL); |
|---|