Changeset 7112 in vbox for trunk/include/VBox
- Timestamp:
- Feb 25, 2008 2:56:30 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/ssm.h
r7072 r7112 403 403 404 404 405 406 /**407 * Register a PDM Devices data unit.408 *409 * @returns VBox status.410 * @param pVM The VM handle.411 * @param pDevIns Device instance.412 * @param pszName Data unit name.413 * @param u32Instance The instance identifier of the data unit.414 * This must together with the name be unique.415 * @param u32Version Data layout version number.416 * @param cbGuess The approximate amount of data in the unit.417 * Only for progress indicators.418 * @param pfnSavePrep Prepare save callback, optional.419 * @param pfnSaveExec Execute save callback, optional.420 * @param pfnSaveDone Done save callback, optional.421 * @param pfnLoadPrep Prepare load callback, optional.422 * @param pfnLoadExec Execute load callback, optional.423 * @param pfnLoadDone Done load callback, optional.424 */425 405 SSMR3DECL(int) SSMR3Register(PVM pVM, PPDMDEVINS pDevIns, const char *pszName, uint32_t u32Instance, uint32_t u32Version, size_t cbGuess, 426 406 PFNSSMDEVSAVEPREP pfnSavePrep, PFNSSMDEVSAVEEXEC pfnSaveExec, PFNSSMDEVSAVEDONE pfnSaveDone, 427 407 PFNSSMDEVLOADPREP pfnLoadPrep, PFNSSMDEVLOADEXEC pfnLoadExec, PFNSSMDEVLOADDONE pfnLoadDone); 428 429 /**430 * Register a PDM driver data unit.431 *432 * @returns VBox status.433 * @param pVM The VM handle.434 * @param pDrvIns Driver instance.435 * @param pszName Data unit name.436 * @param u32Instance The instance identifier of the data unit.437 * This must together with the name be unique.438 * @param u32Version Data layout version number.439 * @param cbGuess The approximate amount of data in the unit.440 * Only for progress indicators.441 * @param pfnSavePrep Prepare save callback, optional.442 * @param pfnSaveExec Execute save callback, optional.443 * @param pfnSaveDone Done save callback, optional.444 * @param pfnLoadPrep Prepare load callback, optional.445 * @param pfnLoadExec Execute load callback, optional.446 * @param pfnLoadDone Done load callback, optional.447 */448 408 SSMR3DECL(int) SSMR3RegisterDriver(PVM pVM, PPDMDRVINS pDrvIns, const char *pszName, uint32_t u32Instance, uint32_t u32Version, size_t cbGuess, 449 409 PFNSSMDRVSAVEPREP pfnSavePrep, PFNSSMDRVSAVEEXEC pfnSaveExec, PFNSSMDRVSAVEDONE pfnSaveDone, 450 410 PFNSSMDRVLOADPREP pfnLoadPrep, PFNSSMDRVLOADEXEC pfnLoadExec, PFNSSMDRVLOADDONE pfnLoadDone); 451 452 /**453 * Register a internal data unit.454 *455 * @returns VBox status.456 * @param pVM The VM handle.457 * @param pszName Data unit name.458 * @param u32Instance The instance identifier of the data unit.459 * This must together with the name be unique.460 * @param u32Version Data layout version number.461 * @param cbGuess The approximate amount of data in the unit.462 * Only for progress indicators.463 * @param pfnSavePrep Prepare save callback, optional.464 * @param pfnSaveExec Execute save callback, optional.465 * @param pfnSaveDone Done save callback, optional.466 * @param pfnLoadPrep Prepare load callback, optional.467 * @param pfnLoadExec Execute load callback, optional.468 * @param pfnLoadDone Done load callback, optional.469 */470 411 SSMR3DECL(int) SSMR3RegisterInternal(PVM pVM, const char *pszName, uint32_t u32Instance, uint32_t u32Version, size_t cbGuess, 471 412 PFNSSMINTSAVEPREP pfnSavePrep, PFNSSMINTSAVEEXEC pfnSaveExec, PFNSSMINTSAVEDONE pfnSaveDone, 472 413 PFNSSMINTLOADPREP pfnLoadPrep, PFNSSMINTLOADEXEC pfnLoadExec, PFNSSMINTLOADDONE pfnLoadDone); 473 474 /**475 * Register a unit.476 *477 * @returns VBox status.478 * @param pVM The VM handle.479 * @param pszName Data unit name.480 * @param u32Instance The instance identifier of the data unit.481 * This must together with the name be unique.482 * @param u32Version Data layout version number.483 * @param cbGuess The approximate amount of data in the unit.484 * Only for progress indicators.485 * @param pfnSavePrep Prepare save callback, optional.486 * @param pfnSaveExec Execute save callback, optional.487 * @param pfnSaveDone Done save callback, optional.488 * @param pfnLoadPrep Prepare load callback, optional.489 * @param pfnLoadExec Execute load callback, optional.490 * @param pfnLoadDone Done load callback, optional.491 * @param pvUser User argument.492 */493 414 SSMR3DECL(int) SSMR3RegisterExternal(PVM pVM, const char *pszName, uint32_t u32Instance, uint32_t u32Version, size_t cbGuess, 494 415 PFNSSMEXTSAVEPREP pfnSavePrep, PFNSSMEXTSAVEEXEC pfnSaveExec, PFNSSMEXTSAVEDONE pfnSaveDone, 495 416 PFNSSMEXTLOADPREP pfnLoadPrep, PFNSSMEXTLOADEXEC pfnLoadExec, PFNSSMEXTLOADDONE pfnLoadDone, void *pvUser); 496 497 /**498 * Deregister one or more PDM Device data units.499 *500 * @returns VBox status.501 * @param pVM The VM handle.502 * @param pDevIns Device instance.503 * @param pszName Data unit name.504 * Use NULL to deregister all data units for that device instance.505 * @param u32Instance The instance identifier of the data unit.506 * This must together with the name be unique. Ignored if pszName is NULL.507 * @remark Only for dynmaic data units and dynamic unloaded modules.508 */509 417 SSMR3DECL(int) SSMR3Deregister(PVM pVM, PPDMDEVINS pDevIns, const char *pszName, uint32_t u32Instance); 510 511 /**512 * Deregister one or more PDM Driver data units.513 *514 * @returns VBox status.515 * @param pVM The VM handle.516 * @param pDrvIns Driver instance.517 * @param pszName Data unit name.518 * Use NULL to deregister all data units for that driver instance.519 * @param u32Instance The instance identifier of the data unit.520 * This must together with the name be unique. Ignored if pszName is NULL.521 * @remark Only for dynmaic data units and dynamic unloaded modules.522 */523 418 SSMR3DECL(int) SSMR3DeregisterDriver(PVM pVM, PPDMDRVINS pDrvIns, const char *pszName, uint32_t u32Instance); 524 525 /**526 * Deregister a internal data unit.527 *528 * @returns VBox status.529 * @param pVM The VM handle.530 * @param pszName Data unit name.531 * @remark Only for dynmaic data units.532 */533 419 SSMR3DECL(int) SSMR3DeregisterInternal(PVM pVM, const char *pszName); 534 535 /**536 * Deregister an external data unit.537 *538 * @returns VBox status.539 * @param pVM The VM handle.540 * @param pszName Data unit name.541 * @remark Only for dynmaic data units.542 */543 420 SSMR3DECL(int) SSMR3DeregisterExternal(PVM pVM, const char *pszName); 544 545 /**546 * Start VM save operation.547 *548 * The caller must be the emulation thread!549 *550 * @returns VBox status.551 * @param pVM The VM handle.552 * @param pszFilename Name of the file to save the state in.553 * @param enmAfter What is planned after a successful save operation.554 * @param pfnProgress Progress callback. Optional.555 * @param pvUser User argument for the progress callback.556 */557 421 SSMR3DECL(int) SSMR3Save(PVM pVM, const char *pszFilename, SSMAFTER enmAfter, PFNVMPROGRESS pfnProgress, void *pvUser); 558 559 /**560 * Load VM save operation.561 *562 * The caller must be the emulation thread!563 *564 * @returns VBox status.565 * @param pVM The VM handle.566 * @param pszFilename Name of the file to save the state in.567 * @param enmAfter What is planned after a successful load operation.568 * Only acceptable values are SSMAFTER_RESUME and SSMAFTER_DEBUG_IT.569 * @param pfnProgress Progress callback. Optional.570 * @param pvUser User argument for the progress callback.571 */572 422 SSMR3DECL(int) SSMR3Load(PVM pVM, const char *pszFilename, SSMAFTER enmAfter, PFNVMPROGRESS pfnProgress, void *pvUser); 573 574 /**575 * Validates a file as a validate SSM saved state.576 *577 * This will only verify the file format, the format and content of individual578 * data units are not inspected.579 *580 * @returns VINF_SUCCESS if valid.581 * @returns VBox status code on other failures.582 * @param pszFilename The path to the file to validate.583 */584 423 SSMR3DECL(int) SSMR3ValidateFile(const char *pszFilename); 585 586 /**587 * Opens a saved state file for reading.588 *589 * @returns VBox status code.590 * @param pszFilename The path to the saved state file.591 * @param fFlags Open flags. Reserved, must be 0.592 * @param ppSSM Where to store the SSM handle.593 */594 424 SSMR3DECL(int) SSMR3Open(const char *pszFilename, unsigned fFlags, PSSMHANDLE *ppSSM); 595 596 /**597 * Closes a saved state file opened by SSMR3Open().598 *599 * @returns VBox status code.600 * @param pSSM The SSM handle returned by SSMR3Open().601 */602 425 SSMR3DECL(int) SSMR3Close(PSSMHANDLE pSSM); 603 604 /**605 * Seeks to a specific data unit.606 *607 * After seeking it's possible to use the getters to on608 * that data unit.609 *610 * @returns VBox status code.611 * @returns VERR_SSM_UNIT_NOT_FOUND if the unit+instance wasn't found.612 * @param pSSM The SSM handle returned by SSMR3Open().613 * @param pszUnit The name of the data unit.614 * @param iInstance The instance number.615 * @param piVersion Where to store the version number. (Optional)616 */617 426 SSMR3DECL(int) SSMR3Seek(PSSMHANDLE pSSM, const char *pszUnit, uint32_t iInstance, uint32_t *piVersion); 427 SSMR3DECL(int) SSMR3HandleGetStatus(PSSMHANDLE pSSM); 428 SSMR3DECL(int) SSMR3HandleSetStatus(PSSMHANDLE pSSM, int iStatus); 429 SSMR3DECL(SSMAFTER) SSMR3HandleGetAfter(PSSMHANDLE pSSM); 618 430 619 431 … … 621 433 * @{ 622 434 */ 623 624 /**625 * Puts a structure.626 *627 * @returns VBox status code.628 * @param pSSM The saved state handle.629 * @param pvStruct The structure address.630 * @param paFields The array of structure fields descriptions.631 * The array must be terminated by a SSMFIELD_ENTRY_TERM().632 */633 435 SSMR3DECL(int) SSMR3PutStruct(PSSMHANDLE pSSM, const void *pvStruct, PCSSMFIELD paFields); 634 635 /**636 * Saves a boolean item to the current data unit.637 *638 * @returns VBox status.639 * @param pSSM SSM operation handle.640 * @param fBool Item to save.641 */642 436 SSMR3DECL(int) SSMR3PutBool(PSSMHANDLE pSSM, bool fBool); 643 644 /**645 * Saves a 8-bit unsigned integer item to the current data unit.646 *647 * @returns VBox status.648 * @param pSSM SSM operation handle.649 * @param u8 Item to save.650 */651 437 SSMR3DECL(int) SSMR3PutU8(PSSMHANDLE pSSM, uint8_t u8); 652 653 /**654 * Saves a 8-bit signed integer item to the current data unit.655 *656 * @returns VBox status.657 * @param pSSM SSM operation handle.658 * @param i8 Item to save.659 */660 438 SSMR3DECL(int) SSMR3PutS8(PSSMHANDLE pSSM, int8_t i8); 661 662 /**663 * Saves a 16-bit unsigned integer item to the current data unit.664 *665 * @returns VBox status.666 * @param pSSM SSM operation handle.667 * @param u16 Item to save.668 */669 439 SSMR3DECL(int) SSMR3PutU16(PSSMHANDLE pSSM, uint16_t u16); 670 671 /**672 * Saves a 16-bit signed integer item to the current data unit.673 *674 * @returns VBox status.675 * @param pSSM SSM operation handle.676 * @param i16 Item to save.677 */678 440 SSMR3DECL(int) SSMR3PutS16(PSSMHANDLE pSSM, int16_t i16); 679 680 /**681 * Saves a 32-bit unsigned integer item to the current data unit.682 *683 * @returns VBox status.684 * @param pSSM SSM operation handle.685 * @param u32 Item to save.686 */687 441 SSMR3DECL(int) SSMR3PutU32(PSSMHANDLE pSSM, uint32_t u32); 688 689 /**690 * Saves a 32-bit signed integer item to the current data unit.691 *692 * @returns VBox status.693 * @param pSSM SSM operation handle.694 * @param i32 Item to save.695 */696 442 SSMR3DECL(int) SSMR3PutS32(PSSMHANDLE pSSM, int32_t i32); 697 698 /**699 * Saves a 64-bit unsigned integer item to the current data unit.700 *701 * @returns VBox status.702 * @param pSSM SSM operation handle.703 * @param u64 Item to save.704 */705 443 SSMR3DECL(int) SSMR3PutU64(PSSMHANDLE pSSM, uint64_t u64); 706 707 /**708 * Saves a 64-bit signed integer item to the current data unit.709 *710 * @returns VBox status.711 * @param pSSM SSM operation handle.712 * @param i64 Item to save.713 */714 444 SSMR3DECL(int) SSMR3PutS64(PSSMHANDLE pSSM, int64_t i64); 715 716 /**717 * Saves a 128-bit unsigned integer item to the current data unit.718 *719 * @returns VBox status.720 * @param pSSM SSM operation handle.721 * @param u128 Item to save.722 */723 445 SSMR3DECL(int) SSMR3PutU128(PSSMHANDLE pSSM, uint128_t u128); 724 725 /**726 * Saves a 128-bit signed integer item to the current data unit.727 *728 * @returns VBox status.729 * @param pSSM SSM operation handle.730 * @param i128 Item to save.731 */732 446 SSMR3DECL(int) SSMR3PutS128(PSSMHANDLE pSSM, int128_t i128); 733 734 /**735 * Saves a VBox unsigned integer item to the current data unit.736 *737 * @returns VBox status.738 * @param pSSM SSM operation handle.739 * @param u Item to save.740 */741 447 SSMR3DECL(int) SSMR3PutUInt(PSSMHANDLE pSSM, RTUINT u); 742 743 /**744 * Saves a VBox signed integer item to the current data unit.745 *746 * @returns VBox status.747 * @param pSSM SSM operation handle.748 * @param i Item to save.749 */750 448 SSMR3DECL(int) SSMR3PutSInt(PSSMHANDLE pSSM, RTINT i); 751 752 /**753 * Saves a GC natural unsigned integer item to the current data unit.754 *755 * @returns VBox status.756 * @param pSSM SSM operation handle.757 * @param u Item to save.758 */759 449 SSMR3DECL(int) SSMR3PutGCUInt(PSSMHANDLE pSSM, RTGCUINT u); 760 761 /**762 * Saves a GC natural signed integer item to the current data unit.763 *764 * @returns VBox status.765 * @param pSSM SSM operation handle.766 * @param i Item to save.767 */768 450 SSMR3DECL(int) SSMR3PutGCSInt(PSSMHANDLE pSSM, RTGCINT i); 769 770 /**771 * Saves a 32 bits GC physical address item to the current data unit.772 *773 * @returns VBox status.774 * @param pSSM SSM operation handle.775 * @param GCPhys The item to save776 */777 451 SSMR3DECL(int) SSMR3PutGCPhys32(PSSMHANDLE pSSM, RTGCPHYS32 GCPhys); 778 779 /**780 * Saves a GC physical address item to the current data unit.781 *782 * @returns VBox status.783 * @param pSSM SSM operation handle.784 * @param GCPhys The item to save785 */786 452 SSMR3DECL(int) SSMR3PutGCPhys(PSSMHANDLE pSSM, RTGCPHYS GCPhys); 787 788 /**789 * Saves a GC virtual address item to the current data unit.790 *791 * @returns VBox status.792 * @param pSSM SSM operation handle.793 * @param GCPtr The item to save.794 */795 453 SSMR3DECL(int) SSMR3PutGCPtr(PSSMHANDLE pSSM, RTGCPTR GCPtr); 796 797 /**798 * Saves a GC virtual address (represented as an unsigned integer) item to the current data unit.799 *800 * @returns VBox status.801 * @param pSSM SSM operation handle.802 * @param GCPtr The item to save.803 */804 454 SSMR3DECL(int) SSMR3PutGCUIntPtr(PSSMHANDLE pSSM, RTGCUINTPTR GCPtr); 805 806 /**807 * Saves a HC natural unsigned integer item to the current data unit.808 *809 * @returns VBox status.810 * @param pSSM SSM operation handle.811 * @param u Item to save.812 */813 455 SSMR3DECL(int) SSMR3PutHCUInt(PSSMHANDLE pSSM, RTHCUINT u); 814 815 /**816 * Saves a HC natural signed integer item to the current data unit.817 *818 * @returns VBox status.819 * @param pSSM SSM operation handle.820 * @param i Item to save.821 */822 456 SSMR3DECL(int) SSMR3PutHCSInt(PSSMHANDLE pSSM, RTHCINT i); 823 824 /**825 * Saves a I/O port address item to the current data unit.826 *827 * @returns VBox status.828 * @param pSSM SSM operation handle.829 * @param IOPort The item to save.830 */831 457 SSMR3DECL(int) SSMR3PutIOPort(PSSMHANDLE pSSM, RTIOPORT IOPort); 832 833 /**834 * Saves a selector item to the current data unit.835 *836 * @returns VBox status.837 * @param pSSM SSM operation handle.838 * @param Sel The item to save.839 */840 458 SSMR3DECL(int) SSMR3PutSel(PSSMHANDLE pSSM, RTSEL Sel); 841 842 /**843 * Saves a memory item to the current data unit.844 *845 * @returns VBox status.846 * @param pSSM SSM operation handle.847 * @param pv Item to save.848 * @param cb Size of the item.849 */850 459 SSMR3DECL(int) SSMR3PutMem(PSSMHANDLE pSSM, const void *pv, size_t cb); 851 852 /**853 * Saves a zero terminated string item to the current data unit.854 *855 * @returns VBox status.856 * @param pSSM SSM operation handle.857 * @param psz Item to save.858 */859 460 SSMR3DECL(int) SSMR3PutStrZ(PSSMHANDLE pSSM, const char *psz); 860 861 461 /** @} */ 862 462 … … 866 466 * @{ 867 467 */ 868 869 /**870 * Gets a structure.871 *872 * @returns VBox status code.873 * @param pSSM The saved state handle.874 * @param pvStruct The structure address.875 * @param paFields The array of structure fields descriptions.876 * The array must be terminated by a SSMFIELD_ENTRY_TERM().877 */878 468 SSMR3DECL(int) SSMR3GetStruct(PSSMHANDLE pSSM, void *pvStruct, PCSSMFIELD paFields); 879 880 /**881 * Loads a boolean item from the current data unit.882 *883 * @returns VBox status.884 * @param pSSM SSM operation handle.885 * @param pfBool Where to store the item.886 */887 469 SSMR3DECL(int) SSMR3GetBool(PSSMHANDLE pSSM, bool *pfBool); 888 889 /**890 * Loads a 8-bit unsigned integer item from the current data unit.891 *892 * @returns VBox status.893 * @param pSSM SSM operation handle.894 * @param pu8 Where to store the item.895 */896 470 SSMR3DECL(int) SSMR3GetU8(PSSMHANDLE pSSM, uint8_t *pu8); 897 898 /**899 * Loads a 8-bit signed integer item from the current data unit.900 *901 * @returns VBox status.902 * @param pSSM SSM operation handle.903 * @param pi8 Where to store the item.904 */905 471 SSMR3DECL(int) SSMR3GetS8(PSSMHANDLE pSSM, int8_t *pi8); 906 907 /**908 * Loads a 16-bit unsigned integer item from the current data unit.909 *910 * @returns VBox status.911 * @param pSSM SSM operation handle.912 * @param pu16 Where to store the item.913 */914 472 SSMR3DECL(int) SSMR3GetU16(PSSMHANDLE pSSM, uint16_t *pu16); 915 916 /**917 * Loads a 16-bit signed integer item from the current data unit.918 *919 * @returns VBox status.920 * @param pSSM SSM operation handle.921 * @param pi16 Where to store the item.922 */923 473 SSMR3DECL(int) SSMR3GetS16(PSSMHANDLE pSSM, int16_t *pi16); 924 925 /**926 * Loads a 32-bit unsigned integer item from the current data unit.927 *928 * @returns VBox status.929 * @param pSSM SSM operation handle.930 * @param pu32 Where to store the item.931 */932 474 SSMR3DECL(int) SSMR3GetU32(PSSMHANDLE pSSM, uint32_t *pu32); 933 934 /**935 * Loads a 32-bit signed integer item from the current data unit.936 *937 * @returns VBox status.938 * @param pSSM SSM operation handle.939 * @param pi32 Where to store the item.940 */941 475 SSMR3DECL(int) SSMR3GetS32(PSSMHANDLE pSSM, int32_t *pi32); 942 943 /**944 * Loads a 64-bit unsigned integer item from the current data unit.945 *946 * @returns VBox status.947 * @param pSSM SSM operation handle.948 * @param pu64 Where to store the item.949 */950 476 SSMR3DECL(int) SSMR3GetU64(PSSMHANDLE pSSM, uint64_t *pu64); 951 952 /**953 * Loads a 64-bit signed integer item from the current data unit.954 *955 * @returns VBox status.956 * @param pSSM SSM operation handle.957 * @param pi64 Where to store the item.958 */959 477 SSMR3DECL(int) SSMR3GetS64(PSSMHANDLE pSSM, int64_t *pi64); 960 961 /**962 * Loads a 128-bit unsigned integer item from the current data unit.963 *964 * @returns VBox status.965 * @param pSSM SSM operation handle.966 * @param pu128 Where to store the item.967 */968 478 SSMR3DECL(int) SSMR3GetU128(PSSMHANDLE pSSM, uint128_t *pu128); 969 970 /**971 * Loads a 128-bit signed integer item from the current data unit.972 *973 * @returns VBox status.974 * @param pSSM SSM operation handle.975 * @param pi128 Where to store the item.976 */977 479 SSMR3DECL(int) SSMR3GetS128(PSSMHANDLE pSSM, int128_t *pi128); 978 979 /**980 * Loads a VBox unsigned integer item from the current data unit.981 *982 * @returns VBox status.983 * @param pSSM SSM operation handle.984 * @param pu Where to store the integer.985 */986 480 SSMR3DECL(int) SSMR3GetUInt(PSSMHANDLE pSSM, PRTUINT pu); 987 988 /**989 * Loads a VBox signed integer item from the current data unit.990 *991 * @returns VBox status.992 * @param pSSM SSM operation handle.993 * @param pi Where to store the integer.994 */995 481 SSMR3DECL(int) SSMR3GetSInt(PSSMHANDLE pSSM, PRTINT pi); 996 997 /**998 * Loads a GC natural unsigned integer item from the current data unit.999 *1000 * @returns VBox status.1001 * @param pSSM SSM operation handle.1002 * @param pu Where to store the integer.1003 */1004 482 SSMR3DECL(int) SSMR3GetGCUInt(PSSMHANDLE pSSM, PRTGCUINT pu); 1005 1006 /**1007 * Loads a GC natural signed integer item from the current data unit.1008 *1009 * @returns VBox status.1010 * @param pSSM SSM operation handle.1011 * @param pi Where to store the integer.1012 */1013 483 SSMR3DECL(int) SSMR3GetGCSInt(PSSMHANDLE pSSM, PRTGCINT pi); 1014 1015 /**1016 * Loads a GC physical address item from the current data unit.1017 *1018 * @returns VBox status.1019 * @param pSSM SSM operation handle.1020 * @param pGCPhys Where to store the GC physical address.1021 */1022 484 SSMR3DECL(int) SSMR3GetGCPhys32(PSSMHANDLE pSSM, PRTGCPHYS32 pGCPhys); 1023 1024 /**1025 * Loads a GC physical address item from the current data unit.1026 *1027 * @returns VBox status.1028 * @param pSSM SSM operation handle.1029 * @param pGCPhys Where to store the GC physical address.1030 */1031 485 SSMR3DECL(int) SSMR3GetGCPhys(PSSMHANDLE pSSM, PRTGCPHYS pGCPhys); 1032 1033 /**1034 * Loads a GC virtual address item from the current data unit.1035 *1036 * @returns VBox status.1037 * @param pSSM SSM operation handle.1038 * @param pGCPtr Where to store the GC virtual address.1039 */1040 486 SSMR3DECL(int) SSMR3GetGCPtr(PSSMHANDLE pSSM, PRTGCPTR pGCPtr); 1041 1042 /**1043 * Loads a GC virtual address (represented as unsigned integer) item from the current data unit.1044 *1045 * @returns VBox status.1046 * @param pSSM SSM operation handle.1047 * @param pGCPtr Where to store the GC virtual address.1048 */1049 487 SSMR3DECL(int) SSMR3GetGCUIntPtr(PSSMHANDLE pSSM, PRTGCUINTPTR pGCPtr); 1050 1051 /**1052 * Loads a I/O port address item from the current data unit.1053 *1054 * @returns VBox status.1055 * @param pSSM SSM operation handle.1056 * @param pIOPort Where to store the I/O port address.1057 */1058 488 SSMR3DECL(int) SSMR3GetIOPort(PSSMHANDLE pSSM, PRTIOPORT pIOPort); 1059 1060 /**1061 * Loads a HC natural unsigned integer item from the current data unit.1062 *1063 * @returns VBox status.1064 * @param pSSM SSM operation handle.1065 * @param pu Where to store the integer.1066 */1067 489 SSMR3DECL(int) SSMR3GetHCUInt(PSSMHANDLE pSSM, PRTHCUINT pu); 1068 1069 /**1070 * Loads a HC natural signed integer item from the current data unit.1071 *1072 * @returns VBox status.1073 * @param pSSM SSM operation handle.1074 * @param pi Where to store the integer.1075 */1076 490 SSMR3DECL(int) SSMR3GetHCSInt(PSSMHANDLE pSSM, PRTHCINT pi); 1077 1078 /**1079 * Loads a selector item from the current data unit.1080 *1081 * @returns VBox status.1082 * @param pSSM SSM operation handle.1083 * @param pSel Where to store the selector.1084 */1085 491 SSMR3DECL(int) SSMR3GetSel(PSSMHANDLE pSSM, PRTSEL pSel); 1086 1087 /**1088 * Loads a memory item from the current data unit.1089 *1090 * @returns VBox status.1091 * @param pSSM SSM operation handle.1092 * @param pv Where to store the item.1093 * @param cb Size of the item.1094 */1095 492 SSMR3DECL(int) SSMR3GetMem(PSSMHANDLE pSSM, void *pv, size_t cb); 1096 1097 /**1098 * Loads a string item from the current data unit.1099 *1100 * @returns VBox status.1101 * @param pSSM SSM operation handle.1102 * @param psz Where to store the item.1103 * @param cbMax Max size of the item (including '\\0').1104 */1105 493 SSMR3DECL(int) SSMR3GetStrZ(PSSMHANDLE pSSM, char *psz, size_t cbMax); 1106 1107 /**1108 * Loads a string item from the current data unit.1109 *1110 * @returns VBox status.1111 * @param pSSM SSM operation handle.1112 * @param psz Where to store the item.1113 * @param cbMax Max size of the item (including '\\0').1114 * @param pcbStr The length of the loaded string excluding the '\\0'. (optional)1115 */1116 494 SSMR3DECL(int) SSMR3GetStrZEx(PSSMHANDLE pSSM, char *psz, size_t cbMax, size_t *pcbStr); 1117 1118 /**1119 * Loads a timer item from the current data unit.1120 *1121 * @returns VBox status.1122 * @param pSSM SSM operation handle.1123 * @param PTMTIMER Where to store the item.1124 */1125 495 SSMR3DECL(int) SSMR3GetTimer(PSSMHANDLE pSSM, PTMTIMER pTimer); 1126 496 1127 497 /** @} */ 1128 498 1129 1130 1131 /**1132 * Query what the VBox status code of the operation is.1133 *1134 * This can be used for putting and getting a batch of values1135 * without bother checking the result till all the calls have1136 * been made.1137 *1138 * @returns VBox status code.1139 * @param pSSM SSM operation handle.1140 */1141 SSMR3DECL(int) SSMR3HandleGetStatus(PSSMHANDLE pSSM);1142 1143 /**1144 * Fail the load operation.1145 *1146 * This is mainly intended for sub item loaders (like timers) which1147 * return code isn't necessarily heeded by the caller but is important1148 * to SSM.1149 *1150 * @returns SSMAFTER enum value.1151 * @param pSSM SSM operation handle.1152 * @param iStatus Failure status code. This MUST be a VERR_*.1153 */1154 SSMR3DECL(int) SSMR3HandleSetStatus(PSSMHANDLE pSSM, int iStatus);1155 1156 /**1157 * Query what to do after this operation.1158 *1159 * @returns SSMAFTER enum value.1160 * @param pSSM SSM operation handle.1161 */1162 SSMR3DECL(SSMAFTER) SSMR3HandleGetAfter(PSSMHANDLE pSSM);1163 1164 499 /** @} */ 1165 500 #endif /* IN_RING3 */
Note:
See TracChangeset
for help on using the changeset viewer.