Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 1 Apr 2001 19:49:02 +0200 (CEST)
From:      Maxime Henrion <mux@qualys.com>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   i386/26272: [PATCH] Adds a sysctl to get the cpu frequency
Message-ID:  <200104011749.f31Hn2200759@nebula.cybercable.fr>

next in thread | raw e-mail | index | archive | help

>Number:         26272
>Category:       i386
>Synopsis:       Adds a sysctl to get the cpu frequency
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Apr 01 10:50:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Maxime Henrion
>Release:        FreeBSD 4.3-RC i386
>Organization:
>Environment:
System: FreeBSD nebula.cybercable.fr 4.3-RC FreeBSD 4.3-RC #14: Sun Apr 1 19:14:00 CEST 2001 mux@nebula.cybercable.fr:/usr/src/sys/compile/NEBULA i386


>Description:
	There are severl sysctl's that provide cpu information but
	none of them gives its frequency.
>How-To-Repeat:
>Fix:
	Patch for RELENG_4 :

diff -cr /usr/src/sys/i386/i386/identcpu.c ./i386/i386/identcpu.c
*** /usr/src/sys/i386/i386/identcpu.c	Sat Sep 30 05:32:21 2000
--- ./i386/i386/identcpu.c	Sun Apr  1 19:18:00 2001
***************
*** 86,91 ****
--- 86,95 ----
  SYSCTL_STRING(_hw, HW_MODEL, model, CTLFLAG_RD, 
      cpu_model, 0, "Machine model");
  
+ static char cpu_freq[32] = "unknown";
+ SYSCTL_STRING(_hw, HW_FREQUENCY, frequency, CTLFLAG_RD, 
+     cpu_freq, 0, "Machine frequency");
+ 
  static struct cpu_nameclass i386_cpus[] = {
  	{ "Intel 80286",	CPUCLASS_286 },		/* CPU_286   */
  	{ "i386SX",		CPUCLASS_386 },		/* CPU_386SX */
***************
*** 509,526 ****
  #endif
  #if defined(I586_CPU)
  	case CPUCLASS_586:
! 		printf("%d.%02d-MHz ",
  		       (tsc_freq + 4999) / 1000000,
  		       ((tsc_freq + 4999) / 10000) % 100);
! 		printf("586");
  		break;
  #endif
  #if defined(I686_CPU)
  	case CPUCLASS_686:
! 		printf("%d.%02d-MHz ",
  		       (tsc_freq + 4999) / 1000000,
  		       ((tsc_freq + 4999) / 10000) % 100);
! 		printf("686");
  		break;
  #endif
  	default:
--- 513,530 ----
  #endif
  #if defined(I586_CPU)
  	case CPUCLASS_586:
! 		sprintf(cpu_freq, "%d.%02d-MHz ",
  		       (tsc_freq + 4999) / 1000000,
  		       ((tsc_freq + 4999) / 10000) % 100);
! 		printf("%s586", cpu_freq);
  		break;
  #endif
  #if defined(I686_CPU)
  	case CPUCLASS_686:
! 		sprintf(cpu_freq, "%d.%02d-MHz ",
  		       (tsc_freq + 4999) / 1000000,
  		       ((tsc_freq + 4999) / 10000) % 100);
! 		printf("%s686", cpu_freq);
  		break;
  #endif
  	default:
diff -cr /usr/src/sys/sys/sysctl.h ./sys/sysctl.h
*** /usr/src/sys/sys/sysctl.h	Thu Feb 22 10:29:42 2001
--- ./sys/sysctl.h	Sun Apr  1 19:18:21 2001
***************
*** 416,421 ****
--- 416,422 ----
  #define HW_FLOATINGPT	10		/* int: has HW floating point? */
  #define HW_MACHINE_ARCH	11		/* string: machine architecture */
  #define	HW_MAXID	12		/* number of valid hw ids */
+ #define	HW_FREQUENCY	13		/* cpu frequency */
  
  #define CTL_HW_NAMES { \
  	{ 0, 0 }, \
>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




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