All pastes #246188 Raw Edit

Mine

public text v1 · immutable
#246188 ·published 2006-11-11 23:24 UTC
rendered paste body
void AppleSMBIOS::
processSMBIOSStructure( const SMBProcessorInformation * cpu,
                        SMBPackedStrings * strings )
{
    if (cpu->header.length < 26)
        return;

    if (fVerbose)
    {
        IOLog("--- SMBIOS Processor Information --\n");
        IOLog("socketDesignation = %s\n",  
              strings->stringAtIndex(cpu->socketDesignation));
        IOLog("processorType     = 0x%x\n", cpu->processorType);
        IOLog("processorFamily   = 0x%x\n", cpu->processorFamily);
        IOLog("manufacturer      = %s\n", 
              strings->stringAtIndex(cpu->manufacturer));
        IOLog("processorID       = 0x%lx%08lx\n",
              (UInt32)(cpu->processorID >> 32),
              (UInt32)cpu->processorID);
        IOLog("processorVersion  = %s\n",
              strings->stringAtIndex(cpu->processorVersion));
        IOLog("voltage           = 0x%x\n", cpu->voltage);
        IOLog("externalClock     = 0x%x\n", cpu->externalClock);
        IOLog("maximumClock      = 0x%x\n", cpu->maximumClock);
        IOLog("currentClock      = 0x%x\n", cpu->currentClock);
        IOLog("status            = 0x%x\n", cpu->status);
        IOLog("processorUpgrade  = 0x%x\n", cpu->processorUpgrade);
    }

    UInt32 busClockRateMHz = cpu->externalClock;
    UInt32 maxClockRateMHz = cpu->maximumClock;

    if (busClockRateMHz > 0) {

        i386_cpu_info_t * cpuinfo = cpuid_info();
        IOService *       platform = getPlatform();

        if (!strncmp(cpuinfo->cpuid_vendor, CPUID_VID_INTEL, 
            sizeof(CPUID_VID_INTEL)) &&
            (cpuinfo->cpuid_features & CPUID_FEATURE_SSE2))
        {
            // convert from FSB to quad-pumped bus speed
            busClockRateMHz *= 4;
        } else {
        	
        	busClockRateMHz *= 2;
        	
        }	

        platform->callPlatformFunction(
								"SetBusClockRateMHz",     /* function */
								false,                    /* waitForFunction */
								(void *) busClockRateMHz, /* speed in MHz */
								(void *) maxClockRateMHz,
								0,
								0);
    } else {
    	

    						busClockRateMHz = 200ULL; // default fake speed to correct reported bus speeds 0--
    	
    		        platform->callPlatformFunction(
								"SetBusClockRateMHz",     /* function */
								false,                    /* waitForFunction */
								(void *) busClockRateMHz, /* speed in MHz */
								(void *) maxClockRateMHz,
								0,
								0);
    	
    }	
}