// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Use the <code>system.cpu</code> API to query CPU metadata.
namespace system.cpu {

  // Counters for assessing CPU utilization.  Each field is monotonically
  // increasing while the processor is powered on.  Values are in milliseconds.
  dictionary CpuTime {
    // The cumulative time used by userspace programs on this processor.
    double user;

    // The cumulative time used by kernel programs on this processor.
    double kernel;

    // The cumulative time spent idle by this processor.
    double idle;

    // The total cumulative time for this processor.  This value is equal to
    // user + kernel + idle.
    double total;
  };

  dictionary ProcessorInfo {
    // Cumulative usage info for this logical processor.
    CpuTime usage;
  };

  dictionary CpuInfo {
    // The number of logical processors.
    long numOfProcessors;

    // The architecture name of the processors.
    DOMString archName;

    // The model name of the processors.
    DOMString modelName;

    // A set of feature codes indicating some of the processor's capabilities.
    // The currently supported codes are "mmx", "sse", "sse2", "sse3", "ssse3",
    // "sse4_1", "sse4_2", and "avx".
    DOMString[] features;

    // Information about each logical processor.
    ProcessorInfo[] processors;

    // List of CPU temperature readings from each thermal zone of the CPU.
    // Temperatures are in degrees Celsius.
    //
    // <b>Currently supported on Chrome OS only.</b>
    double[] temperatures;
  };

  callback CpuInfoCallback = void (CpuInfo info);

  interface Functions {
    // Queries basic CPU information of the system.
    static void getInfo(CpuInfoCallback callback);
  };
};
