[sensors] Minor tuning of hal definition

  * Swap GEOMAGNETIC_FIELD with MAGNETIC_FIELD for more accurate
    definition.
  * Remove redundunt prefixes in various enum definitions.
  * Clarify that string type will be removed for well defined sensor
    types. This avoid dependency on strings defined in sensors.h.
  * Added SensorFlagShift enum.
  * Remove unused flag parameter in batch.
  * Remove legacy setDelay function.
  * Change the type of sensor flag to bitfield<SensorFlagBits>, and
    use uint32_t since only low 32 bits are used.

Test: all sensor works(in marlin), tested with sensorlogger.

Change-Id: I93a4d13c5d2e054857d1e400d15002aeb9a47368
diff --git a/sensors/1.0/vts/Sensors.vts b/sensors/1.0/vts/Sensors.vts
index f80fff5..9e90755 100644
--- a/sensors/1.0/vts/Sensors.vts
+++ b/sensors/1.0/vts/Sensors.vts
@@ -47,22 +47,6 @@
     }
 
     api: {
-        name: "setDelay"
-        return_type_hidl: {
-            type: TYPE_ENUM
-            predefined_type: "::android::hardware::sensors::V1_0::Result"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "int32_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
-            scalar_type: "int64_t"
-        }
-    }
-
-    api: {
         name: "poll"
         return_type_hidl: {
             type: TYPE_ENUM
@@ -100,10 +84,6 @@
         }
         arg: {
             type: TYPE_SCALAR
-            scalar_type: "int32_t"
-        }
-        arg: {
-            type: TYPE_SCALAR
             scalar_type: "int64_t"
         }
         arg: {
@@ -136,4 +116,56 @@
         }
     }
 
+    api: {
+        name: "registerDirectChannel"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::sensors::V1_0::Result"
+        }
+        return_type_hidl: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_STRUCT
+            predefined_type: "::android::hardware::sensors::V1_0::SharedMemInfo"
+        }
+    }
+
+    api: {
+        name: "unregisterDirectChannel"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::sensors::V1_0::Result"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+    }
+
+    api: {
+        name: "configDirectReport"
+        return_type_hidl: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::sensors::V1_0::Result"
+        }
+        return_type_hidl: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_SCALAR
+            scalar_type: "int32_t"
+        }
+        arg: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::sensors::V1_0::RateLevel"
+        }
+    }
+
 }
diff --git a/sensors/1.0/vts/functional/sensors_hidl_hal_test.cpp b/sensors/1.0/vts/functional/sensors_hidl_hal_test.cpp
index 17c439e..2edc5c3 100644
--- a/sensors/1.0/vts/functional/sensors_hidl_hal_test.cpp
+++ b/sensors/1.0/vts/functional/sensors_hidl_hal_test.cpp
@@ -203,16 +203,16 @@
 
   inline static SensorFlagBits extractReportMode(uint64_t flag) {
     return (SensorFlagBits) (flag
-        & ((uint64_t) SensorFlagBits::SENSOR_FLAG_CONTINUOUS_MODE
-          | (uint64_t) SensorFlagBits::SENSOR_FLAG_ON_CHANGE_MODE
-          | (uint64_t) SensorFlagBits::SENSOR_FLAG_ONE_SHOT_MODE
-          | (uint64_t) SensorFlagBits::SENSOR_FLAG_SPECIAL_REPORTING_MODE));
+        & ((uint64_t) SensorFlagBits::CONTINUOUS_MODE
+          | (uint64_t) SensorFlagBits::ON_CHANGE_MODE
+          | (uint64_t) SensorFlagBits::ONE_SHOT_MODE
+          | (uint64_t) SensorFlagBits::SPECIAL_REPORTING_MODE));
   }
 
   inline static bool isMetaSensorType(SensorType type) {
-    return (type == SensorType::SENSOR_TYPE_META_DATA
-            || type == SensorType::SENSOR_TYPE_DYNAMIC_SENSOR_META
-            || type == SensorType::SENSOR_TYPE_ADDITIONAL_INFO);
+    return (type == SensorType::META_DATA
+            || type == SensorType::DYNAMIC_SENSOR_META
+            || type == SensorType::ADDITIONAL_INFO);
   }
 
   inline static bool isValidType(SensorType type) {
@@ -225,14 +225,14 @@
 
 bool SensorsHidlTest::typeMatchStringType(SensorType type, const hidl_string& stringType) {
 
-  if (type >= SensorType::SENSOR_TYPE_DEVICE_PRIVATE_BASE) {
+  if (type >= SensorType::DEVICE_PRIVATE_BASE) {
     return true;
   }
 
   bool res = true;
   switch (type) {
 #define CHECK_TYPE_STRING_FOR_SENSOR_TYPE(type) \
-    case SensorType::SENSOR_TYPE_ ## type: res = stringType == SENSOR_STRING_TYPE_ ## type;\
+    case SensorType::type: res = stringType == SENSOR_STRING_TYPE_ ## type;\
       break;\
 
     CHECK_TYPE_STRING_FOR_SENSOR_TYPE(ACCELEROMETER);
@@ -277,7 +277,7 @@
 }
 
 bool SensorsHidlTest::typeMatchReportMode(SensorType type, SensorFlagBits reportMode) {
-  if (type >= SensorType::SENSOR_TYPE_DEVICE_PRIVATE_BASE) {
+  if (type >= SensorType::DEVICE_PRIVATE_BASE) {
     return true;
   }
 
@@ -290,19 +290,21 @@
     int32_t minDelay, int32_t maxDelay, SensorFlagBits reportMode) {
   bool res = true;
   switch(reportMode) {
-    case SensorFlagBits::SENSOR_FLAG_CONTINUOUS_MODE:
+    case SensorFlagBits::CONTINUOUS_MODE:
       res = (minDelay > 0) && (maxDelay >= 0);
       break;
-    case SensorFlagBits::SENSOR_FLAG_ON_CHANGE_MODE:
+    case SensorFlagBits::ON_CHANGE_MODE:
       //TODO: current implementation does not satisfy minDelay == 0 on Proximity
       res = (minDelay >= 0) && (maxDelay >= 0);
       //res = (minDelay == 0) && (maxDelay >= 0);
       break;
-    case SensorFlagBits::SENSOR_FLAG_ONE_SHOT_MODE:
+    case SensorFlagBits::ONE_SHOT_MODE:
       res = (minDelay == -1) && (maxDelay == 0);
       break;
-    case SensorFlagBits::SENSOR_FLAG_SPECIAL_REPORTING_MODE:
+    case SensorFlagBits::SPECIAL_REPORTING_MODE:
       res = (minDelay == 0) && (maxDelay == 0);
+    default:
+      res = false;
   }
 
   return res;
@@ -310,44 +312,44 @@
 
 SensorFlagBits SensorsHidlTest::expectedReportModeForType(SensorType type) {
   switch (type) {
-    case SensorType::SENSOR_TYPE_ACCELEROMETER:
-    case SensorType::SENSOR_TYPE_GYROSCOPE:
-    case SensorType::SENSOR_TYPE_GEOMAGNETIC_FIELD:
-    case SensorType::SENSOR_TYPE_ORIENTATION:
-    case SensorType::SENSOR_TYPE_PRESSURE:
-    case SensorType::SENSOR_TYPE_TEMPERATURE:
-    case SensorType::SENSOR_TYPE_GRAVITY:
-    case SensorType::SENSOR_TYPE_LINEAR_ACCELERATION:
-    case SensorType::SENSOR_TYPE_ROTATION_VECTOR:
-    case SensorType::SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED:
-    case SensorType::SENSOR_TYPE_GAME_ROTATION_VECTOR:
-    case SensorType::SENSOR_TYPE_GYROSCOPE_UNCALIBRATED:
-    case SensorType::SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR:
-    case SensorType::SENSOR_TYPE_POSE_6DOF:
-    case SensorType::SENSOR_TYPE_HEART_BEAT:
-      return SensorFlagBits::SENSOR_FLAG_CONTINUOUS_MODE;
+    case SensorType::ACCELEROMETER:
+    case SensorType::GYROSCOPE:
+    case SensorType::MAGNETIC_FIELD:
+    case SensorType::ORIENTATION:
+    case SensorType::PRESSURE:
+    case SensorType::TEMPERATURE:
+    case SensorType::GRAVITY:
+    case SensorType::LINEAR_ACCELERATION:
+    case SensorType::ROTATION_VECTOR:
+    case SensorType::MAGNETIC_FIELD_UNCALIBRATED:
+    case SensorType::GAME_ROTATION_VECTOR:
+    case SensorType::GYROSCOPE_UNCALIBRATED:
+    case SensorType::GEOMAGNETIC_ROTATION_VECTOR:
+    case SensorType::POSE_6DOF:
+    case SensorType::HEART_BEAT:
+      return SensorFlagBits::CONTINUOUS_MODE;
 
-    case SensorType::SENSOR_TYPE_LIGHT:
-    case SensorType::SENSOR_TYPE_PROXIMITY:
-    case SensorType::SENSOR_TYPE_RELATIVE_HUMIDITY:
-    case SensorType::SENSOR_TYPE_AMBIENT_TEMPERATURE:
-    case SensorType::SENSOR_TYPE_HEART_RATE:
-    case SensorType::SENSOR_TYPE_DEVICE_ORIENTATION:
-    case SensorType::SENSOR_TYPE_MOTION_DETECT:
-    case SensorType::SENSOR_TYPE_STEP_COUNTER:
-      return SensorFlagBits::SENSOR_FLAG_ON_CHANGE_MODE;
+    case SensorType::LIGHT:
+    case SensorType::PROXIMITY:
+    case SensorType::RELATIVE_HUMIDITY:
+    case SensorType::AMBIENT_TEMPERATURE:
+    case SensorType::HEART_RATE:
+    case SensorType::DEVICE_ORIENTATION:
+    case SensorType::MOTION_DETECT:
+    case SensorType::STEP_COUNTER:
+      return SensorFlagBits::ON_CHANGE_MODE;
 
-    case SensorType::SENSOR_TYPE_SIGNIFICANT_MOTION:
-    case SensorType::SENSOR_TYPE_WAKE_GESTURE:
-    case SensorType::SENSOR_TYPE_GLANCE_GESTURE:
-    case SensorType::SENSOR_TYPE_PICK_UP_GESTURE:
-      return SensorFlagBits::SENSOR_FLAG_ONE_SHOT_MODE;
+    case SensorType::SIGNIFICANT_MOTION:
+    case SensorType::WAKE_GESTURE:
+    case SensorType::GLANCE_GESTURE:
+    case SensorType::PICK_UP_GESTURE:
+      return SensorFlagBits::ONE_SHOT_MODE;
 
-    case SensorType::SENSOR_TYPE_STEP_DETECTOR:
-    case SensorType::SENSOR_TYPE_TILT_DETECTOR:
-    case SensorType::SENSOR_TYPE_WRIST_TILT_GESTURE:
-    case SensorType::SENSOR_TYPE_DYNAMIC_SENSOR_META:
-      return SensorFlagBits::SENSOR_FLAG_SPECIAL_REPORTING_MODE;
+    case SensorType::STEP_DETECTOR:
+    case SensorType::TILT_DETECTOR:
+    case SensorType::WRIST_TILT_GESTURE:
+    case SensorType::DYNAMIC_SENSOR_META:
+      return SensorFlagBits::SPECIAL_REPORTING_MODE;
 
     default:
       ALOGW("Type %d is not implemented in expectedReportModeForType", (int)type);
@@ -399,8 +401,8 @@
 
           // Info type, should have no sensor
           ASSERT_FALSE(
-              s.type == SensorType::SENSOR_TYPE_ADDITIONAL_INFO
-              || s.type == SensorType::SENSOR_TYPE_META_DATA);
+              s.type == SensorType::ADDITIONAL_INFO
+              || s.type == SensorType::META_DATA);
 
           // Test fifoMax >= fifoReserved
           ALOGV("max reserve = %d, %d", s.fifoMaxEventCount, s.fifoReservedEventCount);
@@ -426,7 +428,7 @@
   constexpr int64_t batchingPeriodInNs = 0; // no batching
   constexpr useconds_t minTimeUs = 5*1000*1000;  // 5 s
   constexpr size_t minNEvent = 100;  // at lease 100 events
-  constexpr SensorType type = SensorType::SENSOR_TYPE_ACCELEROMETER;
+  constexpr SensorType type = SensorType::ACCELEROMETER;
 
   SensorInfo sensor = defaultSensorByType(type);
 
@@ -437,7 +439,7 @@
 
   int32_t handle = sensor.sensorHandle;
 
-  S()->batch(handle, 0, samplingPeriodInNs, batchingPeriodInNs);
+  S()->batch(handle, samplingPeriodInNs, batchingPeriodInNs);
   S()->activate(handle, 1);
   events = collectEvents(minTimeUs, minNEvent, true /*clearBeforeStart*/);
   S()->activate(handle, 0);
@@ -480,7 +482,7 @@
   constexpr int64_t batchingPeriodInNs = 0; // no batching
   constexpr useconds_t minTimeUs = 5*1000*1000;  // 5 s
   constexpr size_t minNEvent = 200;
-  constexpr SensorType type = SensorType::SENSOR_TYPE_GYROSCOPE;
+  constexpr SensorType type = SensorType::GYROSCOPE;
 
   SensorInfo sensor = defaultSensorByType(type);
 
@@ -491,7 +493,7 @@
 
   int32_t handle = sensor.sensorHandle;
 
-  S()->batch(handle, 0, samplingPeriodInNs, batchingPeriodInNs);
+  S()->batch(handle, samplingPeriodInNs, batchingPeriodInNs);
   S()->activate(handle, 1);
   events = collectEvents(minTimeUs, minNEvent, true /*clearBeforeStart*/);
   S()->activate(handle, 0);
@@ -533,7 +535,7 @@
   constexpr int64_t batchingPeriodInNs = 0; // no batching
   constexpr useconds_t minTimeUs = 5*1000*1000;  // 5 s
   constexpr size_t minNEvent = 50;
-  constexpr SensorType type = SensorType::SENSOR_TYPE_ACCELEROMETER;
+  constexpr SensorType type = SensorType::ACCELEROMETER;
 
   SensorInfo sensor = defaultSensorByType(type);
 
@@ -551,13 +553,13 @@
     return;
   }
 
-  S()->batch(handle, 0, minSamplingPeriodInNs, batchingPeriodInNs);
+  S()->batch(handle, minSamplingPeriodInNs, batchingPeriodInNs);
   S()->activate(handle, 1);
 
   usleep(500000); // sleep 0.5 sec to wait for change rate to happen
   events1 = collectEvents(sensor.minDelay * minNEvent, minNEvent, true /*clearBeforeStart*/);
 
-  S()->batch(handle, 0, maxSamplingPeriodInNs, batchingPeriodInNs);
+  S()->batch(handle, maxSamplingPeriodInNs, batchingPeriodInNs);
 
   usleep(500000); // sleep 0.5 sec to wait for change rate to happen
   events2 = collectEvents(sensor.maxDelay * minNEvent, minNEvent, true /*clearBeforeStart*/);
@@ -620,7 +622,7 @@
   constexpr int64_t oneSecondInNs = 1ull * 1000 * 1000 * 1000;
   constexpr useconds_t minTimeUs = 5*1000*1000;  // 5 s
   constexpr size_t minNEvent = 50;
-  constexpr SensorType type = SensorType::SENSOR_TYPE_ACCELEROMETER;
+  constexpr SensorType type = SensorType::ACCELEROMETER;
   constexpr int64_t maxBatchingTestTimeNs = 30ull * 1000 * 1000 * 1000;
 
   SensorInfo sensor = defaultSensorByType(type);
@@ -647,7 +649,7 @@
   int64_t allowedBatchDeliverTimeNs =
       std::max(oneSecondInNs, batchingPeriodInNs / 10);
 
-  S()->batch(handle, 0, minSamplingPeriodInNs, INT64_MAX);
+  S()->batch(handle, minSamplingPeriodInNs, INT64_MAX);
   S()->activate(handle, 1);
 
   usleep(500000); // sleep 0.5 sec to wait for initialization
diff --git a/sensors/1.0/vts/types.vts b/sensors/1.0/vts/types.vts
index 37271fd..2980507 100644
--- a/sensors/1.0/vts/types.vts
+++ b/sensors/1.0/vts/types.vts
@@ -15,17 +15,21 @@
         scalar_value: {
             int32_t: 0
         }
-        enumerator: "BAD_VALUE"
-        scalar_value: {
-            int32_t: 1
-        }
         enumerator: "PERMISSION_DENIED"
         scalar_value: {
-            int32_t: 2
+            int32_t: -1
+        }
+        enumerator: "NO_MEMORY"
+        scalar_value: {
+            int32_t: -12
+        }
+        enumerator: "BAD_VALUE"
+        scalar_value: {
+            int32_t: -22
         }
         enumerator: "INVALID_OPERATION"
         scalar_value: {
-            int32_t: 3
+            int32_t: -38
         }
     }
 }
@@ -36,11 +40,11 @@
     enum_value: {
         scalar_type: "int32_t"
 
-        enumerator: "SENSOR_HAL_NORMAL_MODE"
+        enumerator: "NORMAL"
         scalar_value: {
             int32_t: 0
         }
-        enumerator: "SENSOR_HAL_DATA_INJECTION_MODE"
+        enumerator: "DATA_INJECTION"
         scalar_value: {
             int32_t: 1
         }
@@ -53,147 +57,151 @@
     enum_value: {
         scalar_type: "int32_t"
 
-        enumerator: "SENSOR_TYPE_META_DATA"
+        enumerator: "META_DATA"
         scalar_value: {
             int32_t: 0
         }
-        enumerator: "SENSOR_TYPE_ACCELEROMETER"
+        enumerator: "ACCELEROMETER"
         scalar_value: {
             int32_t: 1
         }
-        enumerator: "SENSOR_TYPE_GEOMAGNETIC_FIELD"
+        enumerator: "MAGNETIC_FIELD"
         scalar_value: {
             int32_t: 2
         }
-        enumerator: "SENSOR_TYPE_ORIENTATION"
+        enumerator: "ORIENTATION"
         scalar_value: {
             int32_t: 3
         }
-        enumerator: "SENSOR_TYPE_GYROSCOPE"
+        enumerator: "GYROSCOPE"
         scalar_value: {
             int32_t: 4
         }
-        enumerator: "SENSOR_TYPE_LIGHT"
+        enumerator: "LIGHT"
         scalar_value: {
             int32_t: 5
         }
-        enumerator: "SENSOR_TYPE_PRESSURE"
+        enumerator: "PRESSURE"
         scalar_value: {
             int32_t: 6
         }
-        enumerator: "SENSOR_TYPE_TEMPERATURE"
+        enumerator: "TEMPERATURE"
         scalar_value: {
             int32_t: 7
         }
-        enumerator: "SENSOR_TYPE_PROXIMITY"
+        enumerator: "PROXIMITY"
         scalar_value: {
             int32_t: 8
         }
-        enumerator: "SENSOR_TYPE_GRAVITY"
+        enumerator: "GRAVITY"
         scalar_value: {
             int32_t: 9
         }
-        enumerator: "SENSOR_TYPE_LINEAR_ACCELERATION"
+        enumerator: "LINEAR_ACCELERATION"
         scalar_value: {
             int32_t: 10
         }
-        enumerator: "SENSOR_TYPE_ROTATION_VECTOR"
+        enumerator: "ROTATION_VECTOR"
         scalar_value: {
             int32_t: 11
         }
-        enumerator: "SENSOR_TYPE_RELATIVE_HUMIDITY"
+        enumerator: "RELATIVE_HUMIDITY"
         scalar_value: {
             int32_t: 12
         }
-        enumerator: "SENSOR_TYPE_AMBIENT_TEMPERATURE"
+        enumerator: "AMBIENT_TEMPERATURE"
         scalar_value: {
             int32_t: 13
         }
-        enumerator: "SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED"
+        enumerator: "MAGNETIC_FIELD_UNCALIBRATED"
         scalar_value: {
             int32_t: 14
         }
-        enumerator: "SENSOR_TYPE_GAME_ROTATION_VECTOR"
+        enumerator: "GAME_ROTATION_VECTOR"
         scalar_value: {
             int32_t: 15
         }
-        enumerator: "SENSOR_TYPE_GYROSCOPE_UNCALIBRATED"
+        enumerator: "GYROSCOPE_UNCALIBRATED"
         scalar_value: {
             int32_t: 16
         }
-        enumerator: "SENSOR_TYPE_SIGNIFICANT_MOTION"
+        enumerator: "SIGNIFICANT_MOTION"
         scalar_value: {
             int32_t: 17
         }
-        enumerator: "SENSOR_TYPE_STEP_DETECTOR"
+        enumerator: "STEP_DETECTOR"
         scalar_value: {
             int32_t: 18
         }
-        enumerator: "SENSOR_TYPE_STEP_COUNTER"
+        enumerator: "STEP_COUNTER"
         scalar_value: {
             int32_t: 19
         }
-        enumerator: "SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR"
+        enumerator: "GEOMAGNETIC_ROTATION_VECTOR"
         scalar_value: {
             int32_t: 20
         }
-        enumerator: "SENSOR_TYPE_HEART_RATE"
+        enumerator: "HEART_RATE"
         scalar_value: {
             int32_t: 21
         }
-        enumerator: "SENSOR_TYPE_TILT_DETECTOR"
+        enumerator: "TILT_DETECTOR"
         scalar_value: {
             int32_t: 22
         }
-        enumerator: "SENSOR_TYPE_WAKE_GESTURE"
+        enumerator: "WAKE_GESTURE"
         scalar_value: {
             int32_t: 23
         }
-        enumerator: "SENSOR_TYPE_GLANCE_GESTURE"
+        enumerator: "GLANCE_GESTURE"
         scalar_value: {
             int32_t: 24
         }
-        enumerator: "SENSOR_TYPE_PICK_UP_GESTURE"
+        enumerator: "PICK_UP_GESTURE"
         scalar_value: {
             int32_t: 25
         }
-        enumerator: "SENSOR_TYPE_WRIST_TILT_GESTURE"
+        enumerator: "WRIST_TILT_GESTURE"
         scalar_value: {
             int32_t: 26
         }
-        enumerator: "SENSOR_TYPE_DEVICE_ORIENTATION"
+        enumerator: "DEVICE_ORIENTATION"
         scalar_value: {
             int32_t: 27
         }
-        enumerator: "SENSOR_TYPE_POSE_6DOF"
+        enumerator: "POSE_6DOF"
         scalar_value: {
             int32_t: 28
         }
-        enumerator: "SENSOR_TYPE_STATIONARY_DETECT"
+        enumerator: "STATIONARY_DETECT"
         scalar_value: {
             int32_t: 29
         }
-        enumerator: "SENSOR_TYPE_MOTION_DETECT"
+        enumerator: "MOTION_DETECT"
         scalar_value: {
             int32_t: 30
         }
-        enumerator: "SENSOR_TYPE_HEART_BEAT"
+        enumerator: "HEART_BEAT"
         scalar_value: {
             int32_t: 31
         }
-        enumerator: "SENSOR_TYPE_DYNAMIC_SENSOR_META"
+        enumerator: "DYNAMIC_SENSOR_META"
         scalar_value: {
             int32_t: 32
         }
-        enumerator: "SENSOR_TYPE_ADDITIONAL_INFO"
+        enumerator: "ADDITIONAL_INFO"
         scalar_value: {
             int32_t: 33
         }
-        enumerator: "SENSOR_TYPE_LOW_LATENCY_OFFBODY_DETECT"
+        enumerator: "LOW_LATENCY_OFFBODY_DETECT"
         scalar_value: {
             int32_t: 34
         }
-        enumerator: "SENSOR_TYPE_DEVICE_PRIVATE_BASE"
+        enumerator: "ACCELEROMETER_UNCALIBRATED"
+        scalar_value: {
+            int32_t: 35
+        }
+        enumerator: "DEVICE_PRIVATE_BASE"
         scalar_value: {
             int32_t: 65536
         }
@@ -204,39 +212,92 @@
     name: "::android::hardware::sensors::V1_0::SensorFlagBits"
     type: TYPE_ENUM
     enum_value: {
-        scalar_type: "uint64_t"
+        scalar_type: "uint32_t"
 
-        enumerator: "SENSOR_FLAG_WAKE_UP"
+        enumerator: "WAKE_UP"
         scalar_value: {
-            uint64_t: 1
+            uint32_t: 1
         }
-        enumerator: "SENSOR_FLAG_CONTINUOUS_MODE"
+        enumerator: "CONTINUOUS_MODE"
         scalar_value: {
-            uint64_t: 0
+            uint32_t: 0
         }
-        enumerator: "SENSOR_FLAG_ON_CHANGE_MODE"
+        enumerator: "ON_CHANGE_MODE"
         scalar_value: {
-            uint64_t: 2
+            uint32_t: 2
         }
-        enumerator: "SENSOR_FLAG_ONE_SHOT_MODE"
+        enumerator: "ONE_SHOT_MODE"
         scalar_value: {
-            uint64_t: 4
+            uint32_t: 4
         }
-        enumerator: "SENSOR_FLAG_SPECIAL_REPORTING_MODE"
+        enumerator: "SPECIAL_REPORTING_MODE"
         scalar_value: {
-            uint64_t: 6
+            uint32_t: 6
         }
-        enumerator: "SENSOR_FLAG_SUPPORTS_DATA_INJECTION"
+        enumerator: "DATA_INJECTION"
         scalar_value: {
-            uint64_t: 16
+            uint32_t: 16
         }
-        enumerator: "SENSOR_FLAG_DYNAMIC_SENSOR"
+        enumerator: "DYNAMIC_SENSOR"
         scalar_value: {
-            uint64_t: 32
+            uint32_t: 32
         }
-        enumerator: "SENSOR_FLAG_ADDITIONAL_INFO"
+        enumerator: "ADDITIONAL_INFO"
         scalar_value: {
-            uint64_t: 64
+            uint32_t: 64
+        }
+        enumerator: "DIRECT_CHANNEL_ASHMEM"
+        scalar_value: {
+            uint32_t: 1024
+        }
+        enumerator: "DIRECT_CHANNEL_GRALLOC"
+        scalar_value: {
+            uint32_t: 2048
+        }
+        enumerator: "MASK_REPORTING_MODE"
+        scalar_value: {
+            uint32_t: 14
+        }
+        enumerator: "MASK_DIRECT_REPORT"
+        scalar_value: {
+            uint32_t: 896
+        }
+        enumerator: "MASK_DIRECT_CHANNEL"
+        scalar_value: {
+            uint32_t: 3072
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::sensors::V1_0::SensorFlagShift"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "uint8_t"
+
+        enumerator: "REPORTING_MODE"
+        scalar_value: {
+            uint8_t: 1
+        }
+        enumerator: "DATA_INJECTION"
+        scalar_value: {
+            uint8_t: 4
+        }
+        enumerator: "DYNAMIC_SENSOR"
+        scalar_value: {
+            uint8_t: 5
+        }
+        enumerator: "ADDITIONAL_INFO"
+        scalar_value: {
+            uint8_t: 6
+        }
+        enumerator: "DIRECT_REPORT"
+        scalar_value: {
+            uint8_t: 7
+        }
+        enumerator: "DIRECT_CHANNEL"
+        scalar_value: {
+            uint8_t: 10
         }
     }
 }
@@ -312,8 +373,11 @@
     }
     struct_value: {
         name: "flags"
-        type: TYPE_SCALAR
-        scalar_type: "uint64_t"
+        type: TYPE_MASK
+        enum_value: {
+            type: TYPE_ENUM
+            predefined_type: "::android::hardware::sensors::V1_0::SensorFlagBits"
+        }
     }
 }
 
@@ -323,23 +387,23 @@
     enum_value: {
         scalar_type: "int8_t"
 
-        enumerator: "SENSOR_STATUS_NO_CONTACT"
+        enumerator: "NO_CONTACT"
         scalar_value: {
             int8_t: -1
         }
-        enumerator: "SENSOR_STATUS_UNRELIABLE"
+        enumerator: "UNRELIABLE"
         scalar_value: {
             int8_t: 0
         }
-        enumerator: "SENSOR_STATUS_ACCURACY_LOW"
+        enumerator: "ACCURACY_LOW"
         scalar_value: {
             int8_t: 1
         }
-        enumerator: "SENSOR_STATUS_ACCURACY_MEDIUM"
+        enumerator: "ACCURACY_MEDIUM"
         scalar_value: {
             int8_t: 2
         }
-        enumerator: "SENSOR_STATUS_ACCURACY_HIGH"
+        enumerator: "ACCURACY_HIGH"
         scalar_value: {
             int8_t: 3
         }
@@ -697,3 +761,82 @@
     }
 }
 
+attribute: {
+    name: "::android::hardware::sensors::V1_0::RateLevel"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "STOP"
+        scalar_value: {
+            int32_t: 0
+        }
+        enumerator: "NORMAL"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "FAST"
+        scalar_value: {
+            int32_t: 2
+        }
+        enumerator: "VERY_FAST"
+        scalar_value: {
+            int32_t: 3
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::sensors::V1_0::SharedMemType"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "ASHMEM"
+        scalar_value: {
+            int32_t: 1
+        }
+        enumerator: "GRALLOC"
+        scalar_value: {
+            int32_t: 2
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::sensors::V1_0::SharedMemFormat"
+    type: TYPE_ENUM
+    enum_value: {
+        scalar_type: "int32_t"
+
+        enumerator: "SENSORS_EVENT"
+        scalar_value: {
+            int32_t: 1
+        }
+    }
+}
+
+attribute: {
+    name: "::android::hardware::sensors::V1_0::SharedMemInfo"
+    type: TYPE_STRUCT
+    struct_value: {
+        name: "type"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::sensors::V1_0::SharedMemType"
+    }
+    struct_value: {
+        name: "format"
+        type: TYPE_ENUM
+        predefined_type: "::android::hardware::sensors::V1_0::SharedMemFormat"
+    }
+    struct_value: {
+        name: "size"
+        type: TYPE_SCALAR
+        scalar_type: "uint32_t"
+    }
+    struct_value: {
+        name: "memoryHandle"
+        type: TYPE_HANDLE
+    }
+}
+