Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Jan 2006 18:53:45 -0600
From:      Derek Ragona <derek@computinginnovations.com>
To:        Nicolas Blais <nb_root@videotron.ca>, freebsd-questions@freebsd.org
Cc:        John Levine <johnl@iecc.com>
Subject:   Re: C/C++ call to detect cpu?
Message-ID:  <6.0.0.22.2.20060122184912.0258fc50@mail.computinginnovations.com>
In-Reply-To: <200601221851.03015.nb_root@videotron.ca>
References:  <20060121203306.25121.qmail@simone.iecc.com> <200601221851.03015.nb_root@videotron.ca>

next in thread | previous in thread | raw e-mail | index | archive | help
Nicolas,

I have commented assembler code for the intel family of CPU's.  This code 
goes back to the i386 and also takes into account the CPU string, and will 
calculate the clock speed.  I do call this as a library function from c/c++ 
programs.

Unfortunately this is written for Microsoft's MASM, and I have never ported 
it to gas.

If you want a copy I can send you the assembler source code and/or the 
commented listing as well.

         -Derek


At 05:50 PM 1/22/2006, Nicolas Blais wrote:
>On Saturday 21 January 2006 15:33, John Levine wrote:
> > >Other than 'grep'ing dmesg, is there a way to know the current cpu such as
> > > a struct with the machine's cpu and cpu feature (kinda like a time_t
> > > struct)?
> >
> > $ sysctl hw.model
> > hw.model: AMD Athlon(tm) 64 Processor 3000+
> >
> > If you want more details write a tiny assembler routine that does a
> > CPUID instruction and decode the result.  Intel has a detailed application
> > note about it at
> > http://developer.intel.ru/design/xeon/applnots/241618.htm
> >
> > R's,
> > John
>
>Thanks, that was great help, I was able to get the Processor Name string 
>using
>info from that pdf.  Using asm instead of sysctl will ensure a bit more
>portability.
>Unfortunatly, getting the actual processor speed (in Mhz) is more complicated
>according to that pdf, would you have any suggestions?
>
>Thanks,
>Nicolas.
>--
>FreeBSD 7.0-CURRENT #0: Sat Jan 21 11:33:22 EST 2006
>root@clk01a:/usr/obj/usr/src/sys/CLK01A
>PGP? (updated 16 Nov 05) : http://www.clkroot.net/security/nb_root.asc



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6.0.0.22.2.20060122184912.0258fc50>