Index: src/platform/metrics/hardware_class |
diff --git a/src/platform/metrics/hardware_class b/src/platform/metrics/hardware_class |
new file mode 100755 |
index 0000000000000000000000000000000000000000..c99db9b9e57edaa729f6fd0f962590a3bbd9b1c7 |
--- /dev/null |
+++ b/src/platform/metrics/hardware_class |
@@ -0,0 +1,56 @@ |
+#!/bin/sh |
+ |
+# Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+# This script prints the hardware class (e.g., the hardware |
+# qualification ID) of this device, or "unknown" if it can't determine |
+# the hardware class. |
+ |
+# TODO(petkov): The hardware qualification ID is not available on |
+# systems yet, so the script uses alternative ways to identify |
+# different system classes (e.g., the WiFi adapter PCI vendor and |
+# device IDs). Switch the script to use real hardware qualification ID |
+# when that becomes available. |
+ |
+# Appends a new component ID to the hardware class. Separates IDs with |
+# dashes. |
+append_class() { |
+ [ -n "$HARDWARE_CLASS" ] && HARDWARE_CLASS="${HARDWARE_CLASS}-" |
+ HARDWARE_CLASS="${HARDWARE_CLASS}$1" |
+} |
+ |
+# Adds the CPU family, model and stepping info, if available, to the |
+# class. |
+cpu() { |
+ [ -r /proc/cpuinfo ] || return |
+ FAMILY=`grep -m1 '^cpu family' /proc/cpuinfo \ |
+ | sed 's/cpu family\s\+:\s\+\([0-9]\+\)$/\1/'` |
+ MODEL=`grep -m1 '^model' /proc/cpuinfo \ |
+ | sed 's/model\s\+:\s\+\([0-9]\+\)$/\1/'` |
+ STEPPING=`grep -m1 '^stepping' /proc/cpuinfo \ |
+ | sed 's/stepping\s\+:\s\+\([0-9]\+\)$/\1/'` |
+ if [ -n "$FAMILY" ] && [ -n "$MODEL" ] && [ -n "$STEPPING" ]; then |
+ append_class "cpu/$FAMILY:$MODEL:$STEPPING" |
+ fi |
+} |
+ |
+# Adds the wlan0 PCI vendor and device ID, if available, to the class. |
+wlan() { |
+ WLAN_DEV=/sys/class/net/wlan0/device |
+ if [ -r $WLAN_DEV/vendor ] && [ -r $WLAN_DEV/device ]; then |
+ WLAN_ID=`paste -d ':' $WLAN_DEV/vendor $WLAN_DEV/device | sed s/0x//g` |
+ append_class "wlan0/$WLAN_ID" |
+ fi |
+} |
+ |
+ |
+HARDWARE_CLASS= |
+ |
+cpu |
+wlan |
+ |
+[ -z "$HARDWARE_CLASS" ] && HARDWARE_CLASS=unknown |
+ |
+echo $HARDWARE_CLASS |