- Timestamp:
- Apr 13, 2016 2:23:37 PM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 106575
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/APICAll.cpp
r60471 r60475 232 232 233 233 /** 234 * Gets the descriptive APIC mode. 235 * 236 * @returns The name. 237 * @param enmMode The xAPIC mode. 238 */ 239 const char *apicGetModeName(APICMODE enmMode) 240 { 241 switch (enmMode) 242 { 243 case APICMODE_DISABLED: return "Disabled"; 244 case APICMODE_XAPIC: return "xAPIC"; 245 case APICMODE_X2APIC: return "x2APIC"; 246 default: break; 247 } 248 return "Invalid"; 249 } 250 251 252 /** 253 * Gets the descriptive destination format name. 254 * 255 * @returns The destination format name. 256 * @param enmDestFormat The destination format. 257 */ 258 const char *apicGetDestFormatName(XAPICDESTFORMAT enmDestFormat) 259 { 260 switch (enmDestFormat) 261 { 262 case XAPICDESTFORMAT_FLAT: return "Flat"; 263 case XAPICDESTFORMAT_CLUSTER: return "Cluster"; 264 default: break; 265 } 266 return "Invalid"; 267 } 268 269 270 /** 271 * Gets the descriptive delivery mode name. 272 * 273 * @returns The delivery mode name. 274 * @param enmDeliveryMode The delivery mode. 275 */ 276 const char *apicGetDeliveryModeName(XAPICDELIVERYMODE enmDeliveryMode) 277 { 278 switch (enmDeliveryMode) 279 { 280 case XAPICDELIVERYMODE_FIXED: return "Fixed"; 281 case XAPICDELIVERYMODE_LOWEST_PRIO: return "Lowest-priority"; 282 case XAPICDELIVERYMODE_SMI: return "SMI"; 283 case XAPICDELIVERYMODE_NMI: return "NMI"; 284 case XAPICDELIVERYMODE_INIT: return "INIT"; 285 case XAPICDELIVERYMODE_STARTUP: return "SIPI"; 286 case XAPICDELIVERYMODE_EXTINT: return "ExtINT"; 287 default: break; 288 } 289 return "Invalid"; 290 } 291 292 293 /** 294 * Gets the descriptive destination mode name. 295 * 296 * @returns The destination mode name. 297 * @param enmDestMode The destination mode. 298 */ 299 const char *apicGetDestModeName(XAPICDESTMODE enmDestMode) 300 { 301 switch (enmDestMode) 302 { 303 case XAPICDESTMODE_PHYSICAL: return "Physical"; 304 case XAPICDESTMODE_LOGICAL: return "Logical"; 305 default: break; 306 } 307 return "Invalid"; 308 } 309 310 311 /** 312 * Gets the descriptive trigger mode name. 313 * 314 * @returns The trigger mode name. 315 * @param enmTriggerMode The trigger mode. 316 */ 317 const char *apicGetTriggerModeName(XAPICTRIGGERMODE enmTriggerMode) 318 { 319 switch (enmTriggerMode) 320 { 321 case XAPICTRIGGERMODE_EDGE: return "Edge"; 322 case XAPICTRIGGERMODE_LEVEL: return "Level"; 323 default: break; 324 } 325 return "Invalid"; 326 } 327 328 329 /** 330 * Gets the destination shorthand name. 331 * 332 * @returns The destination shorthand name. 333 * @param enmDestShorthand The destination shorthand. 334 */ 335 const char *apicGetDestShorthandName(XAPICDESTSHORTHAND enmDestShorthand) 336 { 337 switch (enmDestShorthand) 338 { 339 case XAPICDESTSHORTHAND_NONE: return "None"; 340 case XAPICDESTSHORTHAND_SELF: return "Self"; 341 case XAPIDDESTSHORTHAND_ALL_INCL_SELF: return "All including self"; 342 case XAPICDESTSHORTHAND_ALL_EXCL_SELF: return "All excluding self"; 343 default: break; 344 } 345 return "Invalid"; 346 } 347 348 349 /** 350 * Gets the timer mode name. 351 * 352 * @returns The timer mode name. 353 * @param enmTimerMode The timer mode. 354 */ 355 const char *apicGetTimerModeName(XAPICTIMERMODE enmTimerMode) 356 { 357 switch (enmTimerMode) 358 { 359 case XAPICTIMERMODE_ONESHOT: return "One-shot"; 360 case XAPICTIMERMODE_PERIODIC: return "Periodic"; 361 case XAPICTIMERMODE_TSC_DEADLINE: return "TSC deadline"; 362 default: break; 363 } 364 return "Invalid"; 365 } 366 367 368 /** 234 369 * Gets the APIC mode given the base MSR value. 235 370 * … … 543 678 default: 544 679 { 545 AssertMsgFailed(("APIC: apicSendIntr: Unknown delivery mode %#x\n", enmDeliveryMode)); 680 AssertMsgFailed(("APIC: apicSendIntr: Unsupported delivery mode %#x (%s)\n", enmDeliveryMode, 681 apicGetDeliveryModeName(enmDeliveryMode))); 546 682 break; 547 683 } … … 1037 1173 apicClearVectorInReg(&pXApicPage->tmr, uVector); 1038 1174 } 1175 1176 Log4(("APIC%u: apicSetEoi: Acknowledged %s triggered interrupt. uVector=%#x\n", pVCpu->idCpu, 1177 fLevelTriggered ? "level" : "edge", uVector)); 1039 1178 1040 1179 apicSignalNextPendingIntr(pVCpu); … … 1992 2131 uint32_t fBroadcastMask = UINT32_C(0xff); 1993 2132 2133 Log4(("APIC: apicBusDeliver: fDestMask=%#x enmDestMode=%s enmTriggerMode=%s enmDeliveryMode=%s\n", fDestMask, 2134 apicGetDestModeName(enmDestMode), apicGetTriggerModeName(enmTriggerMode), apicGetDeliveryModeName(enmDeliveryMode))); 2135 1994 2136 VMCPUSET DestCpuSet; 1995 2137 apicGetDestCpuSet(pVM, fDestMask, fBroadcastMask, enmDestMode, enmDeliveryMode, &DestCpuSet); … … 2076 2218 { 2077 2219 rcStrict = VERR_INTERNAL_ERROR_3; 2078 AssertMsgFailed(("APIC%u: LocalInterrupt: Invalid delivery mode %#x on LINT%d\n", pVCpu->idCpu,2079 enmDeliveryMode, u8Pin));2220 AssertMsgFailed(("APIC%u: LocalInterrupt: Invalid delivery mode %#x (%s) on LINT%d\n", pVCpu->idCpu, 2221 enmDeliveryMode, apicGetDeliveryModeName(enmDeliveryMode), u8Pin)); 2080 2222 break; 2081 2223 } -
trunk/src/VBox/VMM/VMMR3/APIC.cpp
r60473 r60475 147 147 SSMFIELD_ENTRY_TERM() 148 148 }; 149 150 151 /**152 * Gets the descriptive APIC mode.153 *154 * @returns The name.155 * @param enmMode The xAPIC mode.156 */157 static const char *apicGetModeName(APICMODE enmMode)158 {159 switch (enmMode)160 {161 case APICMODE_DISABLED: return "Disabled";162 case APICMODE_XAPIC: return "xAPIC";163 case APICMODE_X2APIC: return "x2APIC";164 default: break;165 }166 return "Invalid";167 }168 169 170 /**171 * Gets the descriptive destination format name.172 *173 * @returns The destination format name.174 * @param enmDestFormat The destination format.175 */176 static const char *apicGetDestFormatName(XAPICDESTFORMAT enmDestFormat)177 {178 switch (enmDestFormat)179 {180 case XAPICDESTFORMAT_FLAT: return "Flat";181 case XAPICDESTFORMAT_CLUSTER: return "Cluster";182 default: break;183 }184 return "Invalid";185 }186 187 188 /**189 * Gets the descriptive delivery mode name.190 *191 * @returns The delivery mode name.192 * @param enmDeliveryMode The delivery mode.193 */194 static const char *apicGetDeliveryModeName(XAPICDELIVERYMODE enmDeliveryMode)195 {196 switch (enmDeliveryMode)197 {198 case XAPICDELIVERYMODE_FIXED: return "Fixed";199 case XAPICDELIVERYMODE_LOWEST_PRIO: return "Lowest priority";200 case XAPICDELIVERYMODE_SMI: return "SMI";201 case XAPICDELIVERYMODE_NMI: return "NMI";202 case XAPICDELIVERYMODE_INIT: return "INIT";203 case XAPICDELIVERYMODE_STARTUP: return "SIPI";204 case XAPICDELIVERYMODE_EXTINT: return "ExtINT";205 default: break;206 }207 return "Invalid";208 }209 210 211 /**212 * Gets the descriptive destination mode name.213 *214 * @returns The destination mode name.215 * @param enmDestMode The destination mode.216 */217 static const char *apicGetDestModeName(XAPICDESTMODE enmDestMode)218 {219 switch (enmDestMode)220 {221 case XAPICDESTMODE_PHYSICAL: return "Physical";222 case XAPICDESTMODE_LOGICAL: return "Logical";223 default: break;224 }225 return "Invalid";226 }227 228 229 /**230 * Gets the descriptive trigger mode name.231 *232 * @returns The trigger mode name.233 * @param enmTriggerMode The trigger mode.234 */235 static const char *apicGetTriggerModeName(XAPICTRIGGERMODE enmTriggerMode)236 {237 switch (enmTriggerMode)238 {239 case XAPICTRIGGERMODE_EDGE: return "Edge";240 case XAPICTRIGGERMODE_LEVEL: return "Level";241 default: break;242 }243 return "Invalid";244 }245 246 247 /**248 * Gets the destination shorthand name.249 *250 * @returns The destination shorthand name.251 * @param enmDestShorthand The destination shorthand.252 */253 static const char *apicGetDestShorthandName(XAPICDESTSHORTHAND enmDestShorthand)254 {255 switch (enmDestShorthand)256 {257 case XAPICDESTSHORTHAND_NONE: return "None";258 case XAPICDESTSHORTHAND_SELF: return "Self";259 case XAPIDDESTSHORTHAND_ALL_INCL_SELF: return "All including self";260 case XAPICDESTSHORTHAND_ALL_EXCL_SELF: return "All excluding self";261 default: break;262 }263 return "Invalid";264 }265 266 267 /**268 * Gets the timer mode name.269 *270 * @returns The timer mode name.271 * @param enmTimerMode The timer mode.272 */273 static const char *apicGetTimerModeName(XAPICTIMERMODE enmTimerMode)274 {275 switch (enmTimerMode)276 {277 case XAPICTIMERMODE_ONESHOT: return "One-shot";278 case XAPICTIMERMODE_PERIODIC: return "Periodic";279 case XAPICTIMERMODE_TSC_DEADLINE: return "TSC deadline";280 default: break;281 }282 return "Invalid";283 }284 149 285 150 -
trunk/src/VBox/VMM/include/APICInternal.h
r60472 r60475 611 611 RT_C_DECLS_BEGIN 612 612 613 const char *apicGetModeName(APICMODE enmMode); 614 const char *apicGetDestFormatName(XAPICDESTFORMAT enmDestFormat); 615 const char *apicGetDeliveryModeName(XAPICDELIVERYMODE enmDeliveryMode); 616 const char *apicGetDestModeName(XAPICDESTMODE enmDestMode); 617 const char *apicGetTriggerModeName(XAPICTRIGGERMODE enmTriggerMode); 618 const char *apicGetDestShorthandName(XAPICDESTSHORTHAND enmDestShorthand); 619 const char *apicGetTimerModeName(XAPICTIMERMODE enmTimerMode); 620 613 621 VMMDECL(uint64_t) APICGetBaseMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu); 614 622 VMMDECL(VBOXSTRICTRC) APICSetBaseMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint64_t uBase);
Note:
See TracChangeset
for help on using the changeset viewer.