- Timestamp:
- Feb 23, 2007 9:02:46 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostDrivers/Support/SUPDRVShared.c
r1054 r1059 4075 4075 { 4076 4076 /* Check for family 15 and the RDTSCP feature - hope that's is sufficient. */ 4077 /* r=frank: The test for TscInvariant should be sufficient */ 4077 4078 ASMCpuId(0x80000001, &uEAX, &uEBX, &uECX, &uEDX); 4078 4079 if ( ((uEAX >> 8) & 0xf) == 0xf && ((uEAX >> 20) & 0x7f) == 0 /* family=15 */ 4079 4080 && (uEDX & BIT(27) /*RDTSCP*/)) 4080 4081 { 4081 /* Check the power specs for <check the docs what this actually is>.*/4082 /* Check the power specs for Advanced Power Management Information */ 4082 4083 ASMCpuId(0x80000000, &uEAX, &uEBX, &uECX, &uEDX); 4083 4084 if (uEAX < 0x80000007) 4084 4085 return SUPGIPMODE_ASYNC_TSC; 4085 4086 ASMCpuId(0x80000007, &uEAX, &uEBX, &uECX, &uEDX); 4087 /* TscInvariant 1=The TSC rate is ensured to be invariant across all P-States, 4088 * C-States, and stop-grant transitions (such as STPCLK Throttling); therefore 4089 * the TSC is suitable for use as a source of time. 0=No such guarantee is made 4090 * and software should avoid attempting to use the TSC as a source of time. */ 4086 4091 if (!(uEDX & BIT(8))) 4087 4092 return SUPGIPMODE_ASYNC_TSC;
Note:
See TracChangeset
for help on using the changeset viewer.