1*4d7e907cSAndroid Build Coastguard Worker/* 2*4d7e907cSAndroid Build Coastguard Worker * Copyright 2016 The Android Open Source Project 3*4d7e907cSAndroid Build Coastguard Worker * 4*4d7e907cSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*4d7e907cSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*4d7e907cSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*4d7e907cSAndroid Build Coastguard Worker * 8*4d7e907cSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*4d7e907cSAndroid Build Coastguard Worker * 10*4d7e907cSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*4d7e907cSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*4d7e907cSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*4d7e907cSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*4d7e907cSAndroid Build Coastguard Worker * limitations under the License. 15*4d7e907cSAndroid Build Coastguard Worker */ 16*4d7e907cSAndroid Build Coastguard Worker 17*4d7e907cSAndroid Build Coastguard Workerpackage [email protected]; 18*4d7e907cSAndroid Build Coastguard Worker 19*4d7e907cSAndroid Build Coastguard Workerinterface IWifiChipEventCallback { 20*4d7e907cSAndroid Build Coastguard Worker /** 21*4d7e907cSAndroid Build Coastguard Worker * Callback indicating that the chip has been reconfigured successfully. At 22*4d7e907cSAndroid Build Coastguard Worker * this point the interfaces available in the mode must be able to be 23*4d7e907cSAndroid Build Coastguard Worker * configured. When this is called any previous iface objects must be 24*4d7e907cSAndroid Build Coastguard Worker * considered invalid. 25*4d7e907cSAndroid Build Coastguard Worker * 26*4d7e907cSAndroid Build Coastguard Worker * @param modeId The mode that the chip switched to, corresponding to the id 27*4d7e907cSAndroid Build Coastguard Worker * property of the target ChipMode. 28*4d7e907cSAndroid Build Coastguard Worker */ 29*4d7e907cSAndroid Build Coastguard Worker oneway onChipReconfigured(ChipModeId modeId); 30*4d7e907cSAndroid Build Coastguard Worker 31*4d7e907cSAndroid Build Coastguard Worker /** 32*4d7e907cSAndroid Build Coastguard Worker * Callback indicating that a chip reconfiguration failed. This is a fatal 33*4d7e907cSAndroid Build Coastguard Worker * error and any iface objects available previously must be considered 34*4d7e907cSAndroid Build Coastguard Worker * invalid. The client can attempt to recover by trying to reconfigure the 35*4d7e907cSAndroid Build Coastguard Worker * chip again using |IWifiChip.configureChip|. 36*4d7e907cSAndroid Build Coastguard Worker * 37*4d7e907cSAndroid Build Coastguard Worker * @param status Failure reason code. 38*4d7e907cSAndroid Build Coastguard Worker */ 39*4d7e907cSAndroid Build Coastguard Worker oneway onChipReconfigureFailure(WifiStatus status); 40*4d7e907cSAndroid Build Coastguard Worker 41*4d7e907cSAndroid Build Coastguard Worker /** 42*4d7e907cSAndroid Build Coastguard Worker * Callback indicating that a new iface has been added to the chip. 43*4d7e907cSAndroid Build Coastguard Worker * 44*4d7e907cSAndroid Build Coastguard Worker * @param type Type of iface added. 45*4d7e907cSAndroid Build Coastguard Worker * @param name Name of iface added. 46*4d7e907cSAndroid Build Coastguard Worker */ 47*4d7e907cSAndroid Build Coastguard Worker oneway onIfaceAdded(IfaceType type, string name); 48*4d7e907cSAndroid Build Coastguard Worker 49*4d7e907cSAndroid Build Coastguard Worker /** 50*4d7e907cSAndroid Build Coastguard Worker * Callback indicating that an existing iface has been removed from the chip. 51*4d7e907cSAndroid Build Coastguard Worker * 52*4d7e907cSAndroid Build Coastguard Worker * @param type Type of iface removed. 53*4d7e907cSAndroid Build Coastguard Worker * @param name Name of iface removed. 54*4d7e907cSAndroid Build Coastguard Worker */ 55*4d7e907cSAndroid Build Coastguard Worker oneway onIfaceRemoved(IfaceType type, string name); 56*4d7e907cSAndroid Build Coastguard Worker 57*4d7e907cSAndroid Build Coastguard Worker /** 58*4d7e907cSAndroid Build Coastguard Worker * Callbacks for reporting debug ring buffer data. 59*4d7e907cSAndroid Build Coastguard Worker * 60*4d7e907cSAndroid Build Coastguard Worker * The ring buffer data collection is event based: 61*4d7e907cSAndroid Build Coastguard Worker * - Driver calls this callback when new records are available, the 62*4d7e907cSAndroid Build Coastguard Worker * |WifiDebugRingBufferStatus| passed up to framework in the callback 63*4d7e907cSAndroid Build Coastguard Worker * indicates to framework if more data is available in the ring buffer. 64*4d7e907cSAndroid Build Coastguard Worker * It is not expected that driver will necessarily always empty the ring 65*4d7e907cSAndroid Build Coastguard Worker * immediately as data is available, instead driver will report data 66*4d7e907cSAndroid Build Coastguard Worker * every X seconds or if N bytes are available based on the parameters 67*4d7e907cSAndroid Build Coastguard Worker * set via |startLoggingToDebugRingBuffer|. 68*4d7e907cSAndroid Build Coastguard Worker * - In the case where a bug report has to be captured, framework will 69*4d7e907cSAndroid Build Coastguard Worker * require driver to upload all data immediately. This is indicated to 70*4d7e907cSAndroid Build Coastguard Worker * driver when framework calls |forceDumpToDebugRingBuffer|. The driver 71*4d7e907cSAndroid Build Coastguard Worker * will start sending all available data in the indicated ring by repeatedly 72*4d7e907cSAndroid Build Coastguard Worker * invoking this callback. 73*4d7e907cSAndroid Build Coastguard Worker * 74*4d7e907cSAndroid Build Coastguard Worker * @return status Status of the corresponding ring buffer. This should 75*4d7e907cSAndroid Build Coastguard Worker * contain the name of the ring buffer on which the data is 76*4d7e907cSAndroid Build Coastguard Worker * available. 77*4d7e907cSAndroid Build Coastguard Worker * @return data Raw bytes of data sent by the driver. Must be dumped 78*4d7e907cSAndroid Build Coastguard Worker * out to a bugreport and post processed. 79*4d7e907cSAndroid Build Coastguard Worker */ 80*4d7e907cSAndroid Build Coastguard Worker oneway onDebugRingBufferDataAvailable( 81*4d7e907cSAndroid Build Coastguard Worker WifiDebugRingBufferStatus status, vec<uint8_t> data); 82*4d7e907cSAndroid Build Coastguard Worker 83*4d7e907cSAndroid Build Coastguard Worker /** 84*4d7e907cSAndroid Build Coastguard Worker * Callback indicating that the chip has encountered a fatal error. 85*4d7e907cSAndroid Build Coastguard Worker * Client must not attempt to parse either the errorCode or debugData. 86*4d7e907cSAndroid Build Coastguard Worker * Must only be captured in a bugreport. 87*4d7e907cSAndroid Build Coastguard Worker * 88*4d7e907cSAndroid Build Coastguard Worker * @param errorCode Vendor defined error code. 89*4d7e907cSAndroid Build Coastguard Worker * @param debugData Vendor defined data used for debugging. 90*4d7e907cSAndroid Build Coastguard Worker */ 91*4d7e907cSAndroid Build Coastguard Worker oneway onDebugErrorAlert(int32_t errorCode, vec<uint8_t> debugData); 92*4d7e907cSAndroid Build Coastguard Worker}; 93