Changeset 23777 in vbox
- Timestamp:
- Oct 14, 2009 9:39:19 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/ssm.h
r23774 r23777 147 147 /** Array of SSMFIELDTRANS_HCPTR_NI. */ 148 148 SSMFIELDTRANS_HCPTR_NI_ARRAY, 149 /** Ignorable Host context (HC) virtual address. See SSMFIELD_ENTRY_HCPTR. */ 150 SSMFIELDTRANS_HCPTR, 149 151 150 /** Ignorable field. See SSMFIELD_ENTRY_IGNORE. */ 152 151 SSMFIELDTRANS_IGNORE, 152 /** Ignorable Host context (HC) virtual address. See SSMFIELD_ENTRY_HCPTR. */ 153 SSMFIELDTRANS_IGN_HCPTR, 154 153 155 /** Padding that differs between 32-bit and 64-bit hosts. 154 156 * The first byte of SSMFIELD::cb contains the size for 32-bit hosts. … … 242 244 /** Same as SSMFIELD_ENTRY_HCPTR_NI, except it's an array of the buggers. */ 243 245 #define SSMFIELD_ENTRY_HCPTR_NI_ARRAY(Type, Field) SSMFIELD_ENTRY_INT(Type, Field, SSMFIELDTRANS_HCPTR_NI_ARRAY) 244 /** Emit a SSMFIELD array entry for a ring-0 or ring-3 pointer type that is 245 * of no real interest to the saved state. It follows the same save and restore 246 * rules as SSMFIELD_ENTRY_IGNORE. */ 247 #define SSMFIELD_ENTRY_HCPTR(Type, Field) SSMFIELD_ENTRY_INT(Type, Field, SSMFIELDTRANS_HCPTR) 246 248 247 /** Emit a SSMFIELD array entry for a field that can be ignored. 249 248 * It is stored as zeros if SSMSTRUCT_FLAGS_DONT_IGNORE is specified to 250 249 * SSMR3PutStructEx. The member is never touched upon restore. */ 251 250 #define SSMFIELD_ENTRY_IGNORE(Type, Field) SSMFIELD_ENTRY_INT(Type, Field, SSMFIELDTRANS_IGNORE) 251 /** Emit a SSMFIELD array entry for a ring-0 or ring-3 pointer type that is 252 * of no real interest to the saved state. It follows the same save and restore 253 * rules as SSMFIELD_ENTRY_IGNORE. */ 254 #define SSMFIELD_ENTRY_IGN_HCPTR(Type, Field) SSMFIELD_ENTRY_INT(Type, Field, SSMFIELDTRANS_IGN_HCPTR) 255 252 256 /** Emit a SSMFIELD array entry for a padding that differs in size between 253 257 * 64-bit and 32-bit hosts. */ -
trunk/src/VBox/VMM/PATM/CSAM.cpp
r23772 r23777 109 109 SSMFIELD_ENTRY_IGNORE( CSAM, offVM), 110 110 SSMFIELD_ENTRY_PAD_HC64( CSAM, Alignment0, sizeof(uint32_t)), 111 SSMFIELD_ENTRY_ HCPTR(CSAM, pPageTree),111 SSMFIELD_ENTRY_IGN_HCPTR( CSAM, pPageTree), 112 112 SSMFIELD_ENTRY( CSAM, aDangerousInstr), 113 113 SSMFIELD_ENTRY( CSAM, cDangerousInstr), … … 115 115 SSMFIELD_ENTRY_RCPTR( CSAM, pPDBitmapGC), 116 116 SSMFIELD_ENTRY_RCPTR( CSAM, pPDHCBitmapGC), 117 SSMFIELD_ENTRY_ HCPTR(CSAM, pPDBitmapHC),118 SSMFIELD_ENTRY_ HCPTR(CSAM, pPDGCBitmapHC),119 SSMFIELD_ENTRY_ HCPTR(CSAM, savedstate.pSSM),117 SSMFIELD_ENTRY_IGN_HCPTR( CSAM, pPDBitmapHC), 118 SSMFIELD_ENTRY_IGN_HCPTR( CSAM, pPDGCBitmapHC), 119 SSMFIELD_ENTRY_IGN_HCPTR( CSAM, savedstate.pSSM), 120 120 SSMFIELD_ENTRY( CSAM, savedstate.cPageRecords), 121 121 SSMFIELD_ENTRY( CSAM, savedstate.cPatchPageRecords), … … 187 187 static const SSMFIELD g_aCsamPageRecFields[] = 188 188 { 189 SSMFIELD_ENTRY_ HCPTR(CSAMPAGEREC, Core.Key),190 SSMFIELD_ENTRY_ HCPTR(CSAMPAGEREC, Core.pLeft),191 SSMFIELD_ENTRY_ HCPTR(CSAMPAGEREC, Core.pRight),189 SSMFIELD_ENTRY_IGN_HCPTR( CSAMPAGEREC, Core.Key), 190 SSMFIELD_ENTRY_IGN_HCPTR( CSAMPAGEREC, Core.pLeft), 191 SSMFIELD_ENTRY_IGN_HCPTR( CSAMPAGEREC, Core.pRight), 192 192 SSMFIELD_ENTRY_IGNORE( CSAMPAGEREC, Core.uchHeight), 193 193 SSMFIELD_ENTRY_PAD_HC_AUTO( 3, 7), -
trunk/src/VBox/VMM/SSM.cpp
r23776 r23777 3404 3404 } 3405 3405 3406 case SSMFIELDTRANS_HCPTR:3407 AssertMsgReturn(cbField == sizeof(void *), ("%#x (%s)\n", cbField, pCur->pszName), VERR_SSM_FIELD_INVALID_SIZE);3408 if (fFlags & SSMSTRUCT_FLAGS_DONT_IGNORE)3409 rc = ssmR3DataWrite(pSSM, s_abZero, sizeof(void *));3410 break;3411 3412 3406 case SSMFIELDTRANS_IGNORE: 3413 3407 if (fFlags & SSMSTRUCT_FLAGS_DONT_IGNORE) … … 3421 3415 } 3422 3416 break; 3417 3418 case SSMFIELDTRANS_IGN_HCPTR: 3419 AssertMsgReturn(cbField == sizeof(void *), ("%#x (%s)\n", cbField, pCur->pszName), VERR_SSM_FIELD_INVALID_SIZE); 3420 if (fFlags & SSMSTRUCT_FLAGS_DONT_IGNORE) 3421 rc = ssmR3DataWrite(pSSM, s_abZero, sizeof(void *)); 3422 break; 3423 3423 3424 3424 3425 case SSMFIELDTRANS_PAD_HC: … … 6036 6037 } 6037 6038 6038 case SSMFIELDTRANS_HCPTR: 6039 case SSMFIELDTRANS_IGNORE: 6040 if (fFlags & SSMSTRUCT_FLAGS_DONT_IGNORE) 6041 rc = SSMR3Skip(pSSM, cbField); 6042 break; 6043 6044 case SSMFIELDTRANS_IGN_HCPTR: 6039 6045 AssertMsgReturn(cbField == sizeof(void *), ("%#x (%s)\n", cbField, pCur->pszName), VERR_SSM_FIELD_INVALID_SIZE); 6040 6046 if (fFlags & SSMSTRUCT_FLAGS_DONT_IGNORE) 6041 6047 rc = SSMR3Skip(pSSM, ssmR3GetHostBits(pSSM) / 8); 6042 break;6043 6044 case SSMFIELDTRANS_IGNORE:6045 if (fFlags & SSMSTRUCT_FLAGS_DONT_IGNORE)6046 rc = SSMR3Skip(pSSM, cbField);6047 6048 break; 6048 6049
Note:
See TracChangeset
for help on using the changeset viewer.