OSDN Git Service

Add missing include of stdlib.h
[android-x86/hardware-intel-libsensors.git] / common.h
index 42d4acd..fdd6c4d 100644 (file)
--- a/common.h
+++ b/common.h
@@ -1,10 +1,24 @@
 /*
- * Copyright (C) 2014-2015 Intel Corporation.
- */
+// Copyright (c) 2015 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+*/
 
 #ifndef __COMMON_H__
 #define __COMMON_H__
 
+#include <string.h>
+
 #define MAX_DEVICES    9       /* Check iio devices 0 to MAX_DEVICES-1 */
 #define MAX_SENSORS    12      /* We can handle as many sensors */
 #define MAX_CHANNELS   4       /* We can handle as many channels per sensor */
 #define DEV_FILE_PATH          "/dev/iio:device%d"
 #define BASE_PATH              "/sys/bus/iio/devices/iio:device%d/"
 #define TRIGGER_FILE_PATH      "/sys/bus/iio/devices/trigger%d/name"
+#define IIO_DEVICES            "/sys/bus/iio/devices/"
 
 #define CHANNEL_PATH           BASE_PATH "scan_elements/"
 #define ENABLE_PATH            BASE_PATH "buffer/enable"
+#define BUFFER_LENGTH_PATH     BASE_PATH "buffer/length"
 #define NAME_PATH              BASE_PATH "name"
 #define TRIGGER_PATH           BASE_PATH "trigger/current_trigger"
 #define EVENTS_PATH            BASE_PATH "events/"
@@ -28,6 +44,9 @@
 #define DEVICE_AVAIL_FREQ_PATH BASE_PATH "sampling_frequency_available"
 #define ILLUMINATION_CALIBPATH BASE_PATH "in_illuminance_calibscale"
 #define SENSOR_CALIB_BIAS_PATH BASE_PATH "in_%s_calibbias"
+#define MOUNTING_MATRIX_PATH   BASE_PATH "mounting_matrix"
+
+#define CONFIGFS_TRIGGER_PATH  "/sys/kernel/config/iio/triggers/"
 
 #define PROP_BASE              "ro.iio.%s.%s" /* Note: PROPERTY_KEY_MAX is small */
 
@@ -35,7 +54,7 @@
 #define MAX_SENSOR_REPORT_SIZE 32      /* Sensor report buffer size */
 #define MAX_DEVICE_REPORT_SIZE 32      /* iio device scan buffer size */
 
-#define MAX_NAME_SIZE          32
+#define MAX_NAME_SIZE          64
 
 #define MAX_SENSOR_BASES       3       /* Max number of base sensors a sensor can rely on */
 
@@ -152,6 +171,8 @@ typedef struct
        char vendor_name[MAX_NAME_SIZE];        /* ex: Intel                 */
        char init_trigger_name[MAX_NAME_SIZE];  /* ex: accel-name-dev1       */
        char motion_trigger_name[MAX_NAME_SIZE];/* ex: accel-any-motion-dev1 */
+       char hrtimer_trigger_name[MAX_NAME_SIZE]; /*ex: accel-hr-dev1 */
+       int trigger_nr; /* trigger number associated with this device */
        float max_range;
        float resolution;
        float power;
@@ -266,6 +287,18 @@ typedef struct
        unsigned char order[MAX_CHANNELS];
 
        /*
+        * If the QUIRK_MOUNTING_MATRIX bit is set in quirks, the contents of this matrix is used to correct the sample values so that it takes
+        * into account the way the sensor has been mounted on the PCB.
+        */
+       float mounting_matrix[9];
+
+       /** Count of available frequencies */
+       int avail_freqs_count;
+
+       /** Array of available frequencies */
+       float* avail_freqs;
+
+       /*
         * Event counter - will be used to check if we have a significant sample for noisy sensors. We want to make sure we do not send any wrong
         * events before filtering kicks in. We can also use it for statistics.
         */