Multihal 2.0 - Small tweaks to sensorHandle handling

Add the sensor handle to subhal index bitmask as a constant. Change the
name of zeroOutFirstByte method to clearSubHalIndex and use the constant
there. Also use the constant in initSensorsList method.

Bug: 136511617
Test: Tested compilation success.
Change-Id: I3983850827697ff77c484e7b8d33e7722a7fb52a
diff --git a/sensors/2.0/multihal/HalProxy.cpp b/sensors/2.0/multihal/HalProxy.cpp
index 28dae93..b4d2466 100644
--- a/sensors/2.0/multihal/HalProxy.cpp
+++ b/sensors/2.0/multihal/HalProxy.cpp
@@ -113,7 +113,7 @@
 
 Return<Result> HalProxy::activate(int32_t sensorHandle, bool enabled) {
     return getSubHalForSensorHandle(sensorHandle)
-            ->activate(zeroOutFirstByte(sensorHandle), enabled);
+            ->activate(clearSubHalIndex(sensorHandle), enabled);
 }
 
 Return<Result> HalProxy::initialize(
@@ -154,11 +154,11 @@
 Return<Result> HalProxy::batch(int32_t sensorHandle, int64_t samplingPeriodNs,
                                int64_t maxReportLatencyNs) {
     return getSubHalForSensorHandle(sensorHandle)
-            ->batch(zeroOutFirstByte(sensorHandle), samplingPeriodNs, maxReportLatencyNs);
+            ->batch(clearSubHalIndex(sensorHandle), samplingPeriodNs, maxReportLatencyNs);
 }
 
 Return<Result> HalProxy::flush(int32_t sensorHandle) {
-    return getSubHalForSensorHandle(sensorHandle)->flush(zeroOutFirstByte(sensorHandle));
+    return getSubHalForSensorHandle(sensorHandle)->flush(clearSubHalIndex(sensorHandle));
 }
 
 Return<Result> HalProxy::injectSensorData(const Event& /* event */) {
@@ -244,7 +244,7 @@
         ISensorsSubHal* subHal = mSubHalList[subHalIndex];
         auto result = subHal->getSensorsList([&](const auto& list) {
             for (SensorInfo sensor : list) {
-                if ((sensor.sensorHandle & 0xFF000000) != 0) {
+                if ((sensor.sensorHandle & kSensorHandleSubHalIndexMask) != 0) {
                     ALOGE("SubHal sensorHandle's first byte was not 0");
                 } else {
                     ALOGV("Loaded sensor: %s", sensor.name.c_str());
@@ -278,8 +278,8 @@
     return mSubHalList[static_cast<size_t>(sensorHandle >> 24)];
 }
 
-uint32_t HalProxy::zeroOutFirstByte(uint32_t num) {
-    return num & 0x00FFFFFF;
+uint32_t HalProxy::clearSubHalIndex(uint32_t sensorHandle) {
+    return sensorHandle & (~kSensorHandleSubHalIndexMask);
 }
 
 }  // namespace implementation
diff --git a/sensors/2.0/multihal/include/HalProxy.h b/sensors/2.0/multihal/include/HalProxy.h
index 24b5081..4ecb58b 100644
--- a/sensors/2.0/multihal/include/HalProxy.h
+++ b/sensors/2.0/multihal/include/HalProxy.h
@@ -135,6 +135,9 @@
     //! The single subHal that supports directChannel reporting.
     ISensorsSubHal* mDirectChannelSubHal = nullptr;
 
+    //! The bit mask used to get the subhal index from a sensor handle.
+    static constexpr uint32_t kSensorHandleSubHalIndexMask = 0xFF000000;
+
     /**
      * Initialize the list of SubHal objects in mSubHalList by reading from dynamic libraries
      * listed in a config file.
@@ -167,14 +170,13 @@
     ISensorsSubHal* getSubHalForSensorHandle(uint32_t sensorHandle);
 
     /*
-     * Zero out the first (most significant) byte in a number. Used in modifying the sensor handles
-     * before passing them to subhals.
+     * Clear out the subhal index bytes from a sensorHandle.
      *
-     * @param num The uint32_t number to work with.
+     * @param sensorHandle The sensor handle to modify.
      *
-     * @return The modified version of num param.
+     * @return The modified version of the sensor handle.
      */
-    static uint32_t zeroOutFirstByte(uint32_t num);
+    static uint32_t clearSubHalIndex(uint32_t sensorHandle);
 };
 
 }  // namespace implementation