summaryrefslogtreecommitdiffstats
path: root/wifi/1.0/IWifiChipEventCallback.hal
blob: 15010290926852723c4bc0c268ba221c35e903d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/*
 * Copyright 2016 The Android Open Source Project
 *
 * 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.
 */

package android.hardware.wifi@1.0;

interface IWifiChipEventCallback {
  /**
   * Callback indicating that the chip has been reconfigured successfully. At
   * this point the interfaces available in the mode must be able to be
   * configured. When this is called any previous interface indexes will be
   * considered invalid.
   *
   * @param modeId The mode that the chip switched to, corresponding to the id
   *        property of the target ChipMode.
   */
  oneway onChipReconfigured(ChipModeId modeId);

  /**
   * Callbacks for reporting debug ring buffer data.
   *
   * The ring buffer data collection is event based:
   * - Driver calls this callback when new records are available, the
   *   |WifiDebugRingBufferStatus| passed up to framework in the callback
   *   indicates to framework if more data is available in the ring buffer.
   *   It is not expected that driver will necessarily always empty the ring
   *   immediately as data is available, instead driver will report data
   *   every X seconds or if N bytes are available based on the parameters
   *   set via |startLoggingToDebugRingBuffer|.
   * - In the case where a bug report has to be captured, framework will
   *   require driver to upload all data immediately. This is indicated to
   *   driver when framework calls |forceDumpToDebugRingBuffer|.  The driver
   *   will start sending all available data in the indicated ring by repeatedly
   *   invoking this callback.
   *
   * @return status Status of the corresponding ring buffer. This should
   *         contain the name of the ring buffer on which the data is
   *         available.
   * @return entries Vector of debug ring buffer data entries. These
   *         should be parsed based on the type of entry.
   */
  /** Connectivity event data callback */
  oneway onDebugRingBufferConnectivityEventEntriesAvailable(
      WifiDebugRingBufferStatus status,
      vec<WifiDebugRingEntryConnectivityEvent> entries);

  /** Power event data callback */
  oneway onDebugRingBufferPowerEventEntriesAvailable(
      WifiDebugRingBufferStatus status,
      vec<WifiDebugRingEntryPowerEvent> entries);

  /** Wakelock event data callback */
  oneway onDebugRingBufferWakelockEventEntriesAvailable(
      WifiDebugRingBufferStatus status,
      vec<WifiDebugRingEntryWakelockEvent> entries);

  /** Vendor data event data callback */
  oneway onDebugRingBufferVendorDataEntriesAvailable(
      WifiDebugRingBufferStatus status,
      vec<WifiDebugRingEntryVendorData> entries);

  /**
   * Callback indicating that the chip has encountered a fatal error.
   * Client must not attempt to parse either the errorCode or debugData.
   * Must only be captured in a bugreport.
   *
   * @param errorCode Vendor defined error code.
   * @param debugData Vendor defined data used for debugging.
   */
  oneway onDebugErrorAlert(int32_t errorCode, vec<uint8_t> debugData);
};