Changeset 2562 in vbox for trunk/src/VBox/Devices/Storage
- Timestamp:
- May 9, 2007 3:40:16 PM (18 years ago)
- svn:sync-xref-src-repo-rev:
- 21022
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Storage/DrvVmdk.cpp
r2539 r2562 190 190 * Internal Functions * 191 191 *******************************************************************************/ 192 static DECLCALLBACK(int) vmdkConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle);193 static DECLCALLBACK(void) vmdkDestruct(PPDMDRVINS pDrvIns);194 static DECLCALLBACK(int) vmdkRead(PPDMIMEDIA pInterface,192 static DECLCALLBACK(int) drvVmdkConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle); 193 static DECLCALLBACK(void) drvVmdkDestruct(PPDMDRVINS pDrvIns); 194 static DECLCALLBACK(int) drvVmdkRead(PPDMIMEDIA pInterface, 195 195 uint64_t off, void *pvBuf, size_t cbRead); 196 static DECLCALLBACK(int) vmdkWrite(PPDMIMEDIA pInterface,196 static DECLCALLBACK(int) drvVmdkWrite(PPDMIMEDIA pInterface, 197 197 uint64_t off, const void *pvBuf, size_t cbWrite); 198 static DECLCALLBACK(int) vmdkFlush(PPDMIMEDIA pInterface);199 static DECLCALLBACK(uint64_t) vmdkGetSize(PPDMIMEDIA pInterface);200 static DECLCALLBACK(int) vmdkBiosGetGeometry(PPDMIMEDIA pInterface, uint32_t *pcCylinders,198 static DECLCALLBACK(int) drvVmdkFlush(PPDMIMEDIA pInterface); 199 static DECLCALLBACK(uint64_t) drvVmdkGetSize(PPDMIMEDIA pInterface); 200 static DECLCALLBACK(int) drvVmdkBiosGetGeometry(PPDMIMEDIA pInterface, uint32_t *pcCylinders, 201 201 uint32_t *pcHeads, uint32_t *pcSectors); 202 static DECLCALLBACK(int) vmdkBiosSetGeometry(PPDMIMEDIA pInterface, uint32_t cCylinders,202 static DECLCALLBACK(int) drvVmdkBiosSetGeometry(PPDMIMEDIA pInterface, uint32_t cCylinders, 203 203 uint32_t cHeads, uint32_t cSectors); 204 static DECLCALLBACK(int) vmdkGetUuid(PPDMIMEDIA pInterface, PRTUUID pUuid);205 static DECLCALLBACK(bool) vmdkIsReadOnly(PPDMIMEDIA pInterface);206 static DECLCALLBACK(int) vmdkBiosGetTranslation(PPDMIMEDIA pInterface,204 static DECLCALLBACK(int) drvVmdkGetUuid(PPDMIMEDIA pInterface, PRTUUID pUuid); 205 static DECLCALLBACK(bool) drvVmdkIsReadOnly(PPDMIMEDIA pInterface); 206 static DECLCALLBACK(int) drvVmdkBiosGetTranslation(PPDMIMEDIA pInterface, 207 207 PPDMBIOSTRANSLATION penmTranslation); 208 static DECLCALLBACK(int) vmdkBiosSetTranslation(PPDMIMEDIA pInterface,208 static DECLCALLBACK(int) drvVmdkBiosSetTranslation(PPDMIMEDIA pInterface, 209 209 PDMBIOSTRANSLATION enmTranslation); 210 static DECLCALLBACK(void *) vmdkQueryInterface(PPDMIBASE pInterface, PDMINTERFACE enmInterface);210 static DECLCALLBACK(void *) drvVmdkQueryInterface(PPDMIBASE pInterface, PDMINTERFACE enmInterface); 211 211 212 212 #if 0 … … 709 709 * iInstance it's expected to be used a bit in this function. 710 710 */ 711 static DECLCALLBACK(int) vmdkConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle)712 { 713 LogFlow((" vmdkConstruct:\n"));711 static DECLCALLBACK(int) drvVmdkConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle) 712 { 713 LogFlow(("drvVmdkConstruct:\n")); 714 714 PVMDKDISK pData = PDMINS2DATA(pDrvIns, PVMDKDISK); 715 715 … … 717 717 * Init the static parts. 718 718 */ 719 pDrvIns->IBase.pfnQueryInterface = vmdkQueryInterface;719 pDrvIns->IBase.pfnQueryInterface = drvVmdkQueryInterface; 720 720 pData->pDrvIns = pDrvIns; 721 721 … … 728 728 729 729 /* IMedia */ 730 pData->IMedia.pfnRead = vmdkRead;731 pData->IMedia.pfnWrite = vmdkWrite;732 pData->IMedia.pfnFlush = vmdkFlush;733 pData->IMedia.pfnGetSize = vmdkGetSize;734 pData->IMedia.pfnGetUuid = vmdkGetUuid;735 pData->IMedia.pfnIsReadOnly = vmdkIsReadOnly;736 pData->IMedia.pfnBiosGetGeometry = vmdkBiosGetGeometry;737 pData->IMedia.pfnBiosSetGeometry = vmdkBiosSetGeometry;738 pData->IMedia.pfnBiosGetTranslation = vmdkBiosGetTranslation;739 pData->IMedia.pfnBiosSetTranslation = vmdkBiosSetTranslation;730 pData->IMedia.pfnRead = drvVmdkRead; 731 pData->IMedia.pfnWrite = drvVmdkWrite; 732 pData->IMedia.pfnFlush = drvVmdkFlush; 733 pData->IMedia.pfnGetSize = drvVmdkGetSize; 734 pData->IMedia.pfnGetUuid = drvVmdkGetUuid; 735 pData->IMedia.pfnIsReadOnly = drvVmdkIsReadOnly; 736 pData->IMedia.pfnBiosGetGeometry = drvVmdkBiosGetGeometry; 737 pData->IMedia.pfnBiosSetGeometry = drvVmdkBiosSetGeometry; 738 pData->IMedia.pfnBiosGetTranslation = drvVmdkBiosGetTranslation; 739 pData->IMedia.pfnBiosSetTranslation = drvVmdkBiosSetTranslation; 740 740 741 741 /* … … 765 765 rc = vmdk_open(pData, pszName, fReadOnly); 766 766 if (VBOX_SUCCESS(rc)) 767 Log((" vmdkConstruct: Opened '%s' in %s mode\n", pszName, VMDKDiskIsReadOnly(pData) ? "read-only" : "read-write"));767 Log(("drvVmdkConstruct: Opened '%s' in %s mode\n", pszName, VMDKDiskIsReadOnly(pData) ? "read-only" : "read-write")); 768 768 else 769 769 AssertMsgFailed(("Failed to open image '%s' rc=%Vrc\n", pszName, rc)); … … 783 783 * @param pDrvIns The driver instance data. 784 784 */ 785 static DECLCALLBACK(void) vmdkDestruct(PPDMDRVINS pDrvIns)786 { 787 LogFlow((" vmdkDestruct:\n"));785 static DECLCALLBACK(void) drvVmdkDestruct(PPDMDRVINS pDrvIns) 786 { 787 LogFlow(("drvVmdkDestruct:\n")); 788 788 PVMDKDISK pData = PDMINS2DATA(pDrvIns, PVMDKDISK); 789 789 vmdk_close(&pData->VmdkState); … … 797 797 * @param pDrvIns The driver instance data. 798 798 */ 799 static DECLCALLBACK(void) vmdkSuspend(PPDMDRVINS pDrvIns)800 { 801 LogFlow((" vmdkSuspend:\n"));799 static DECLCALLBACK(void) drvVmdkSuspend(PPDMDRVINS pDrvIns) 800 { 801 LogFlow(("drvVmdkSuspend:\n")); 802 802 PVMDKDISK pData = PDMINS2DATA(pDrvIns, PVMDKDISK); 803 803 if (!VMDKDiskIsReadOnly(pData)) … … 811 811 /** 812 812 * Before the VM resumes we'll have to undo the read-only mode change 813 * done in vmdkSuspend.813 * done in drvVmdkSuspend. 814 814 * 815 815 * @param pDrvIns The driver instance data. 816 816 */ 817 static DECLCALLBACK(void) vmdkResume(PPDMDRVINS pDrvIns)818 { 819 LogFlow((" vmdkSuspend:\n"));817 static DECLCALLBACK(void) drvVmdkResume(PPDMDRVINS pDrvIns) 818 { 819 LogFlow(("drvVmdkSuspend:\n")); 820 820 PVMDKDISK pData = PDMINS2DATA(pDrvIns, PVMDKDISK); 821 821 if (!VMDKDiskIsReadOnly(pData)) … … 829 829 830 830 /** @copydoc PDMIMEDIA::pfnGetSize */ 831 static DECLCALLBACK(uint64_t) vmdkGetSize(PPDMIMEDIA pInterface)831 static DECLCALLBACK(uint64_t) drvVmdkGetSize(PPDMIMEDIA pInterface) 832 832 { 833 833 PVMDKDISK pData = PDMIMEDIA_2_VMDKDISK(pInterface); 834 834 uint64_t cb = VMDKDiskGetSize(pData); 835 LogFlow((" vmdkGetSize: returns %#llx (%llu)\n", cb, cb));835 LogFlow(("drvVmdkGetSize: returns %#llx (%llu)\n", cb, cb)); 836 836 return cb; 837 837 } … … 842 842 * @see PDMIMEDIA::pfnBiosGetGeometry for details. 843 843 */ 844 static DECLCALLBACK(int) vmdkBiosGetGeometry(PPDMIMEDIA pInterface, uint32_t *pcCylinders, uint32_t *pcHeads, uint32_t *pcSectors)844 static DECLCALLBACK(int) drvVmdkBiosGetGeometry(PPDMIMEDIA pInterface, uint32_t *pcCylinders, uint32_t *pcHeads, uint32_t *pcSectors) 845 845 { 846 846 PVMDKDISK pData = PDMIMEDIA_2_VMDKDISK(pInterface); … … 848 848 if (VBOX_SUCCESS(rc)) 849 849 { 850 LogFlow((" vmdkBiosGetGeometry: returns VINF_SUCCESS\n"));850 LogFlow(("drvVmdkBiosGetGeometry: returns VINF_SUCCESS\n")); 851 851 return VINF_SUCCESS; 852 852 } 853 Log((" vmdkBiosGetGeometry: The Bios geometry data was not available.\n"));853 Log(("drvVmdkBiosGetGeometry: The Bios geometry data was not available.\n")); 854 854 return VERR_PDM_GEOMETRY_NOT_SET; 855 855 } … … 860 860 * @see PDMIMEDIA::pfnBiosSetGeometry for details. 861 861 */ 862 static DECLCALLBACK(int) vmdkBiosSetGeometry(PPDMIMEDIA pInterface, uint32_t cCylinders, uint32_t cHeads, uint32_t cSectors)862 static DECLCALLBACK(int) drvVmdkBiosSetGeometry(PPDMIMEDIA pInterface, uint32_t cCylinders, uint32_t cHeads, uint32_t cSectors) 863 863 { 864 864 PVMDKDISK pData = PDMIMEDIA_2_VMDKDISK(pInterface); 865 865 int rc = VMDKDiskSetGeometry(pData, cCylinders, cHeads, cSectors); 866 LogFlow((" vmdkBiosSetGeometry: returns %Vrc (%d,%d,%d)\n", rc, cCylinders, cHeads, cSectors));866 LogFlow(("drvVmdkBiosSetGeometry: returns %Vrc (%d,%d,%d)\n", rc, cCylinders, cHeads, cSectors)); 867 867 return rc; 868 868 } … … 873 873 * @see PDMIMEDIA::pfnRead for details. 874 874 */ 875 static DECLCALLBACK(int) vmdkRead(PPDMIMEDIA pInterface, uint64_t off, void *pvBuf, size_t cbRead)876 { 877 LogFlow((" vmdkRead: off=%#llx pvBuf=%p cbRead=%d\n", off, pvBuf, cbRead));875 static DECLCALLBACK(int) drvVmdkRead(PPDMIMEDIA pInterface, uint64_t off, void *pvBuf, size_t cbRead) 876 { 877 LogFlow(("drvVmdkRead: off=%#llx pvBuf=%p cbRead=%d\n", off, pvBuf, cbRead)); 878 878 PVMDKDISK pData = PDMIMEDIA_2_VMDKDISK(pInterface); 879 879 int rc = vmdk_read(&pData->VmdkState, off >> VMDK_GEOMETRY_SECTOR_SHIFT, (uint8_t *)pvBuf, cbRead >> VMDK_GEOMETRY_SECTOR_SHIFT); 880 880 if (VBOX_SUCCESS(rc)) 881 Log2((" vmdkRead: off=%#llx pvBuf=%p cbRead=%d\n"881 Log2(("drvVmdkRead: off=%#llx pvBuf=%p cbRead=%d\n" 882 882 "%.*Vhxd\n", 883 883 off, pvBuf, cbRead, cbRead, pvBuf)); 884 LogFlow((" vmdkRead: returns %Vrc\n", rc));884 LogFlow(("drvVmdkRead: returns %Vrc\n", rc)); 885 885 return rc; 886 886 } … … 891 891 * @see PDMIMEDIA::pfnWrite for details. 892 892 */ 893 static DECLCALLBACK(int) vmdkWrite(PPDMIMEDIA pInterface, uint64_t off, const void *pvBuf, size_t cbWrite)894 { 895 LogFlow((" vmdkWrite: off=%#llx pvBuf=%p cbWrite=%d\n", off, pvBuf, cbWrite));893 static DECLCALLBACK(int) drvVmdkWrite(PPDMIMEDIA pInterface, uint64_t off, const void *pvBuf, size_t cbWrite) 894 { 895 LogFlow(("drvVmdkWrite: off=%#llx pvBuf=%p cbWrite=%d\n", off, pvBuf, cbWrite)); 896 896 PVMDKDISK pData = PDMIMEDIA_2_VMDKDISK(pInterface); 897 Log2((" vmdkWrite: off=%#llx pvBuf=%p cbWrite=%d\n"897 Log2(("drvVmdkWrite: off=%#llx pvBuf=%p cbWrite=%d\n" 898 898 "%.*Vhxd\n", 899 899 off, pvBuf, cbWrite, cbWrite, pvBuf)); 900 900 int rc = vmdk_write(&pData->VmdkState, off >> VMDK_GEOMETRY_SECTOR_SHIFT, (const uint8_t *)pvBuf, cbWrite >> VMDK_GEOMETRY_SECTOR_SHIFT); 901 LogFlow((" vmdkWrite: returns %Vrc\n", rc));901 LogFlow(("drvVmdkWrite: returns %Vrc\n", rc)); 902 902 return rc; 903 903 } … … 908 908 * @see PDMIMEDIA::pfnFlush for details. 909 909 */ 910 static DECLCALLBACK(int) vmdkFlush(PPDMIMEDIA pInterface)911 { 912 LogFlow((" vmdkFlush:\n"));910 static DECLCALLBACK(int) drvVmdkFlush(PPDMIMEDIA pInterface) 911 { 912 LogFlow(("drvVmdkFlush:\n")); 913 913 PVMDKDISK pData = PDMIMEDIA_2_VMDKDISK(pInterface); 914 914 vmdk_flush(&pData->VmdkState); 915 915 int rc = VINF_SUCCESS; 916 LogFlow((" vmdkFlush: returns %Vrc\n", rc));916 LogFlow(("drvVmdkFlush: returns %Vrc\n", rc)); 917 917 return rc; 918 918 } 919 919 920 920 /** @copydoc PDMIMEDIA::pfnGetUuid */ 921 static DECLCALLBACK(int) vmdkGetUuid(PPDMIMEDIA pInterface, PRTUUID pUuid)921 static DECLCALLBACK(int) drvVmdkGetUuid(PPDMIMEDIA pInterface, PRTUUID pUuid) 922 922 { 923 923 PVMDKDISK pData = PDMIMEDIA_2_VMDKDISK(pInterface); … … 925 925 int rc = VINF_SUCCESS; 926 926 NOREF(pData); 927 LogFlow((" vmdkGetUuid: returns %Vrc ({%Vuuid})\n", rc, pUuid));927 LogFlow(("drvVmdkGetUuid: returns %Vrc ({%Vuuid})\n", rc, pUuid)); 928 928 return rc; 929 929 } 930 930 931 931 /** @copydoc PDMIMEDIA::pfnIsReadOnly */ 932 static DECLCALLBACK(bool) vmdkIsReadOnly(PPDMIMEDIA pInterface)932 static DECLCALLBACK(bool) drvVmdkIsReadOnly(PPDMIMEDIA pInterface) 933 933 { 934 934 PVMDKDISK pData = PDMIMEDIA_2_VMDKDISK(pInterface); 935 LogFlow((" vmdkIsReadOnly: returns %d\n", VMDKDiskIsReadOnly(pData)));935 LogFlow(("drvVmdkIsReadOnly: returns %d\n", VMDKDiskIsReadOnly(pData))); 936 936 return VMDKDiskIsReadOnly(pData); 937 937 } 938 938 939 939 /** @copydoc PDMIMEDIA::pfnBiosGetTranslation */ 940 static DECLCALLBACK(int) vmdkBiosGetTranslation(PPDMIMEDIA pInterface,940 static DECLCALLBACK(int) drvVmdkBiosGetTranslation(PPDMIMEDIA pInterface, 941 941 PPDMBIOSTRANSLATION penmTranslation) 942 942 { … … 945 945 NOREF(pData); 946 946 *penmTranslation = PDMBIOSTRANSLATION_AUTO; /** @todo */ 947 LogFlow((" vmdkBiosGetTranslation: returns %Vrc (%d)\n", rc, *penmTranslation));947 LogFlow(("drvVmdkBiosGetTranslation: returns %Vrc (%d)\n", rc, *penmTranslation)); 948 948 return rc; 949 949 } 950 950 951 951 /** @copydoc PDMIMEDIA::pfnBiosSetTranslation */ 952 static DECLCALLBACK(int) vmdkBiosSetTranslation(PPDMIMEDIA pInterface,952 static DECLCALLBACK(int) drvVmdkBiosSetTranslation(PPDMIMEDIA pInterface, 953 953 PDMBIOSTRANSLATION enmTranslation) 954 954 { … … 957 957 int rc = VINF_SUCCESS; 958 958 NOREF(pData); 959 LogFlow((" vmdkBiosSetTranslation: returns %Vrc (%d)\n", rc, enmTranslation));959 LogFlow(("drvVmdkBiosSetTranslation: returns %Vrc (%d)\n", rc, enmTranslation)); 960 960 return rc; 961 961 } … … 971 971 * @thread Any thread. 972 972 */ 973 static DECLCALLBACK(void *) vmdkQueryInterface(PPDMIBASE pInterface, PDMINTERFACE enmInterface)973 static DECLCALLBACK(void *) drvVmdkQueryInterface(PPDMIBASE pInterface, PDMINTERFACE enmInterface) 974 974 { 975 975 PPDMDRVINS pDrvIns = PDMIBASE_2_DRVINS(pInterface); … … 1007 1007 sizeof(VMDKDISK), 1008 1008 /* pfnConstruct */ 1009 vmdkConstruct,1009 drvVmdkConstruct, 1010 1010 /* pfnDestruct */ 1011 vmdkDestruct,1011 drvVmdkDestruct, 1012 1012 /* pfnIOCtl */ 1013 1013 NULL, … … 1017 1017 NULL, 1018 1018 /* pfnSuspend */ 1019 vmdkSuspend,1019 drvVmdkSuspend, 1020 1020 /* pfnResume */ 1021 vmdkResume,1021 drvVmdkResume, 1022 1022 /* pfnDetach */ 1023 1023 NULL
Note:
See TracChangeset
for help on using the changeset viewer.