Changeset 1428 in vbox for trunk/src/VBox/Frontends
- Timestamp:
- Mar 12, 2007 2:16:32 PM (18 years ago)
- svn:sync-xref-src-repo-rev:
- 19442
- Location:
- trunk/src/VBox/Frontends/VBoxManage
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VBoxManage/VBoxManage.cpp
r1414 r1428 427 427 { 428 428 RTPrintf("VBoxManage clonevdi <uuid>|<filename> <outputfile>\n" 429 "\n"); 430 } 431 432 if (enmCmd & USAGE_CONVERTDD) 433 { 434 RTPrintf("VBoxManage convertdd <filename> <outputfile>\n" 429 435 "\n"); 430 436 } … … 2309 2315 } 2310 2316 return SUCCEEDED(rc) ? 0 : 1; 2317 } 2318 2319 static int handleConvertDDImage(int argc, char *argv[], 2320 ComPtr<IVirtualBox> virtualBox, ComPtr<ISession> session) 2321 { 2322 if (argc != 2) 2323 { 2324 return errorSyntax(USAGE_CONVERTDD, "Incorrect number of parameters"); 2325 } 2326 2327 2328 RTPrintf("Converting VDI: from DD image file=\"%s\" to file=\"%s\"...\n", 2329 argv[0], argv[1]); 2330 2331 /* open raw image file. */ 2332 RTFILE File; 2333 int rc = RTFileOpen(&File, argv[0], RTFILE_O_OPEN | RTFILE_O_READ | RTFILE_O_DENY_WRITE); 2334 if (VBOX_FAILURE(rc)) 2335 { 2336 RTPrintf("File=\"%s\" open error: %Rrf\n", argv[0], rc); 2337 return rc; 2338 } 2339 2340 /* get image size. */ 2341 uint64_t cbFile; 2342 rc = RTFileGetSize(File, &cbFile); 2343 if (VBOX_SUCCESS(rc)) 2344 { 2345 RTPrintf("Creating fixed image with size %u Bytes...\n", (unsigned)cbFile); 2346 rc = VDICreateBaseImage(argv[1], 2347 VDI_IMAGE_TYPE_FIXED, 2348 cbFile, 2349 "Converted from DD test image", NULL, NULL); 2350 if (VBOX_SUCCESS(rc)) 2351 { 2352 PVDIDISK pVdi = VDIDiskCreate(); 2353 rc = VDIDiskOpenImage(pVdi, argv[1], VDI_OPEN_FLAGS_NORMAL); 2354 if (VBOX_SUCCESS(rc)) 2355 { 2356 /* alloc work buffer. */ 2357 void *pvBuf = RTMemAlloc(VDIDiskGetBufferSize(pVdi)); 2358 if (pvBuf) 2359 { 2360 uint64_t off = 0; 2361 while (off < cbFile) 2362 { 2363 unsigned cbRead = 0; 2364 rc = RTFileRead(File, pvBuf, VDIDiskGetBufferSize(pVdi), &cbRead); 2365 if (VBOX_FAILURE(rc) || !cbRead) 2366 break; 2367 rc = VDIDiskWrite(pVdi, off, pvBuf, cbRead); 2368 if (VBOX_FAILURE(rc)) 2369 break; 2370 off += cbRead; 2371 } 2372 2373 RTMemFree(pvBuf); 2374 } 2375 else 2376 rc = VERR_NO_MEMORY; 2377 2378 VDIDiskCloseImage(pVdi); 2379 } 2380 2381 if (VBOX_FAILURE(rc)) 2382 { 2383 /* delete image on error */ 2384 RTPrintf("Failed (%Vrc)!\n", rc); 2385 VDIDeleteImage(argv[1]); 2386 } 2387 } 2388 } 2389 RTFileClose(File); 2390 2391 return rc; 2311 2392 } 2312 2393 … … 6048 6129 { "modifyvm", handleModifyVM }, 6049 6130 { "clonevdi", handleCloneVDI }, 6131 { "convertdd", handleConvertDDImage }, 6050 6132 { "startvm", handleStartVM }, 6051 6133 { "controlvm", handleControlVM }, -
trunk/src/VBox/Frontends/VBoxManage/VBoxManage.h
r1 r1428 27 27 typedef enum { 28 28 USAGE_DUMPOPTS = 0, 29 USAGE_LIST = BIT(0), 30 USAGE_SHOWVMINFO = BIT(1), 31 USAGE_REGISTERVM = BIT(2), 32 USAGE_UNREGISTERVM = BIT(3), 33 USAGE_CREATEVM = BIT(4), 34 USAGE_MODIFYVM = BIT(5), 35 USAGE_STARTVM = BIT(6), 36 USAGE_CONTROLVM = BIT(7), 37 USAGE_DISCARDSTATE = BIT(8), 38 USAGE_SNAPSHOT = BIT(9), 39 USAGE_REGISTERIMAGE = BIT(10), 40 USAGE_UNREGISTERIMAGE = BIT(11), 41 USAGE_SHOWVDIINFO = BIT(12), 42 USAGE_CREATEVDI = BIT(13), 43 USAGE_MODIFYVDI = BIT(14), 44 USAGE_CLONEVDI = BIT(15), 45 USAGE_ADDISCSIDISK = BIT(16), 46 USAGE_CREATEHOSTIF = BIT(17), 47 USAGE_REMOVEHOSTIF = BIT(18), 48 USAGE_GETEXTRADATA = BIT(19), 49 USAGE_SETEXTRADATA = BIT(20), 50 USAGE_SETPROPERTY = BIT(21), 51 USAGE_USBFILTER = BIT(22) | BIT(23) | BIT(24), 52 USAGE_USBFILTER_ADD = BIT(22), 53 USAGE_USBFILTER_MODIFY = BIT(23), 54 USAGE_USBFILTER_REMOVE = BIT(24), 55 USAGE_SHAREDFOLDER = BIT(25) | BIT(26), 56 USAGE_SHAREDFOLDER_ADD = BIT(25), 57 USAGE_SHAREDFOLDER_REMOVE = BIT(26), 58 USAGE_UPDATESETTINGS = BIT(27), 59 USAGE_LOADSYMS = BIT(29), 60 USAGE_UNLOADSYMS = BIT(30), 61 USAGE_SETVDIUUID = BIT(31), 62 USAGE_ALL = ~0, 29 USAGE_LIST = BIT64(0), 30 USAGE_SHOWVMINFO = BIT64(1), 31 USAGE_REGISTERVM = BIT64(2), 32 USAGE_UNREGISTERVM = BIT64(3), 33 USAGE_CREATEVM = BIT64(4), 34 USAGE_MODIFYVM = BIT64(5), 35 USAGE_STARTVM = BIT64(6), 36 USAGE_CONTROLVM = BIT64(7), 37 USAGE_DISCARDSTATE = BIT64(8), 38 USAGE_SNAPSHOT = BIT64(9), 39 USAGE_REGISTERIMAGE = BIT64(10), 40 USAGE_UNREGISTERIMAGE = BIT64(11), 41 USAGE_SHOWVDIINFO = BIT64(12), 42 USAGE_CREATEVDI = BIT64(13), 43 USAGE_MODIFYVDI = BIT64(14), 44 USAGE_CLONEVDI = BIT64(15), 45 USAGE_ADDISCSIDISK = BIT64(16), 46 USAGE_CREATEHOSTIF = BIT64(17), 47 USAGE_REMOVEHOSTIF = BIT64(18), 48 USAGE_GETEXTRADATA = BIT64(19), 49 USAGE_SETEXTRADATA = BIT64(20), 50 USAGE_SETPROPERTY = BIT64(21), 51 USAGE_USBFILTER = BIT64(22) | BIT64(23) | BIT64(24), 52 USAGE_USBFILTER_ADD = BIT64(22), 53 USAGE_USBFILTER_MODIFY = BIT64(23), 54 USAGE_USBFILTER_REMOVE = BIT64(24), 55 USAGE_SHAREDFOLDER = BIT64(25) | BIT64(26), 56 USAGE_SHAREDFOLDER_ADD = BIT64(25), 57 USAGE_SHAREDFOLDER_REMOVE = BIT64(26), 58 USAGE_UPDATESETTINGS = BIT64(27), 59 USAGE_LOADSYMS = BIT64(29), 60 USAGE_UNLOADSYMS = BIT64(30), 61 USAGE_SETVDIUUID = BIT64(31), 62 USAGE_CONVERTDD = BIT64(32), 63 USAGE_ALL = (uint64_t)~0, 63 64 } USAGECATEGORY; 64 65
Note:
See TracChangeset
for help on using the changeset viewer.