pinfo/psrinfo from within C

From: Paul Tyler <pct_at_ansto.gov.au>
Date: Wed, 13 Jan 1999 14:30:27 +1100 (EST)

Sorry about this. I know it isn't directly about system admin but hopefully
someone can help.

I've been trying to write some C code to determine the CPU version.
(As pinfo -v does.) Using a getsysinfo system call I can get a number
which seems to be different for different CPU types but which doesn't
relate to the values in /usr/include/machine/hal/cpuconf.h. Does
anyone know what the return codes should be? I get a type of 56 for an
EV5.6 (21164A) and 37 for a EV4 (21064). The include file indicates
these should be 7 and 2 respectively. Any insight would be appreciated.

The C code follows:

#include <stdio.h>
#include <unistd.h>
#include <sys/sysinfo.h>
#include <machine/hal_sysinfo.h>
#include <machine/hal/cpuconf.h>

int main(int argc,char *argv[])
{
        
        int status=0;
        struct cpu_info buf;
        int st=0;

        status = getsysinfo(GSI_CPU_INFO, &buf, sizeof(buf), st, NULL,NULL);

        printf("status = 0, start = %d\n",st);
        printf("\tcpu type = %d\n",buf.cpu_type);
        printf("\tno cpus = %d\n",buf.ncpus);
}


Thanks

Paul Tyler

-- 
Paul Tyler       | Phone. +61 2 9717 3576  | DISCLAIMER: The views expressed in
ANSTO            | Fax.   +61 2 9717 3257  | this E-mail message do not
PMB 1 MENAI 2234 | Email. pct_at_ansto.gov.au | necessarily represent the official
AUSTRALIA        |                         | views of ANSTO
Received on Wed Jan 13 1999 - 03:31:54 NZDT

This archive was generated by hypermail 2.4.0 : Wed Nov 08 2023 - 11:53:38 NZDT