| Index: device/sensors/public/interfaces/sensor_provider.mojom
 | 
| diff --git a/device/sensors/public/interfaces/sensor_provider.mojom b/device/sensors/public/interfaces/sensor_provider.mojom
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..5f12c7f9fbad1ea1ac8319c732e7ab6c35321e2a
 | 
| --- /dev/null
 | 
| +++ b/device/sensors/public/interfaces/sensor_provider.mojom
 | 
| @@ -0,0 +1,39 @@
 | 
| +// Copyright 2016 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.
 | 
| +
 | 
| +module device.mojom;
 | 
| +
 | 
| +import "sensor.mojom";
 | 
| +
 | 
| +struct SensorReadBuffer {
 | 
| +  // The shared memory handle used to fetch the sensor reading.
 | 
| +  handle<shared_buffer> memory;
 | 
| +
 | 
| +  // The offset at which shared buffer must be mapped.
 | 
| +  uint64 offset;
 | 
| +
 | 
| +  // The ReportingMode supported by the sensor.
 | 
| +  ReportingMode mode;
 | 
| +
 | 
| +  // Note: Each sensor's read buffer contains 4 tightly packed 64-bit floating
 | 
| +  // point fields, its layout is: { double timestamp; double values[3] }.
 | 
| +  // So it has a fixed size 4*8 = 32 bytes.
 | 
| +  const uint64 kReadBufferSize = 32;
 | 
| +};
 | 
| +
 | 
| +interface SensorProvider {
 | 
| +  // Gets the sensor interface by the given type.
 | 
| +  //
 | 
| +  // |type| type of the sensor.
 | 
| +  //
 | 
| +  // |request| the Sensor interface instance to be initialized.
 | 
| +  // |read_buffer| on success will contain the SensorReadBuffer describing the
 | 
| +  //               sensor reading buffer details,
 | 
| +  //               contains null on failure.
 | 
| +  // |client_request| on success contains a request to be bound by the client,
 | 
| +  //                  contains null on failure.
 | 
| +  GetSensor(SensorType type, Sensor& sensor_request) => (
 | 
| +      SensorReadBuffer? read_buffer,
 | 
| +      SensorClient&? client_request);
 | 
| +};
 | 
| 
 |