Files
hardware_interfaces/wifi/1.0/IWifi.hal
Roshan Pius adcfba4b09 wifi(interface): Add Iface objects
Create a child object under IWifiChip to represent each interface
within the chip. Each iface object has a |type| & |ifname| which should
help us uniquely identify them. This should help us expose methods that
are applicable only to a specific interface type.

While there,
Assign a unique id to every chip on the device.
Add IWifi.listChipIds() to retrieve the list of chip Id's avaiable on the
device. IWifi.getChip() will now use the provided Id to retrieve the
corresponding IWifiChip object(because HIDL language doesn't support
vec<HIDL objects>).

Bug: 31943042
Bug: 32003988
Test: Interface compiles (not implementation)
Change-Id: I723007566ca4220362c02d0f452753fee4e31fce
2016-10-11 07:46:24 -07:00

92 lines
3.1 KiB
Plaintext

/*
* 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;
import IWifiChip;
import IWifiEventCallback;
/**
* This is the root of the HAL module and is the interface returned when
* loading an implementation of the Wi-Fi HAL. There must be at most one
* module loaded in the system.
*/
interface IWifi {
/**
* Requests notifications of significant events for the HAL. Multiple calls to
* this must register multiple callbacks each of which must receive all
* events. |IWifiEventCallback| object registration must be independent of the
* state of the rest of the HAL and must persist though stops/starts. These
* objects must be deleted when the corresponding client process is dead.
*
* @param callback An instance of the |IWifiEventCallback| HIDL interface
* object.
*/
@entry
@callflow(next={"*"})
oneway registerEventCallback(IWifiEventCallback callback);
/**
* Get the current state of the HAL.
*
* @return started true if started, false otherwise.
*/
isStarted() generates (bool started);
/**
* Perform any setup that is required to make use of the module. If the module
* is already started then this must be a noop. The onStart callback must be
* called when the setup completes or if the HAL is already started. If the
* setup fails then onStartFailure must be called.
*/
@entry
@callflow(next={"registerEventCallback", "start", "stop", "getChip"})
oneway start();
/**
* Tear down any state, ongoing commands, etc. If the module is already
* stopped then this must be a noop. If the HAL is already stopped or it
* succeeds then onStop must be called. If the teardown fails onFailure must
* be called. After calling this all IWifiChip objects will be considered
* invalid.
*
* Calling stop then start is a valid way of resetting state in the HAL,
* driver, firmware.
*/
@exit
@callflow(next={"registerEventCallback", "start", "stop"})
oneway stop();
/**
* Retrieve the list of all chip Id's on the device.
* The corresponding |IWifiChip| object for any chip can be
* retrieved using |getChip| method.
*
* @return chipIds List of all chip Id's on the device.
*/
@callflow(next={"*"})
getChipIds() generates (vec<ChipId> chipIds);
/**
* Gets a HIDL interface object for the chip corresponding to the
* provided chipId.
*
* @return chip HIDL interface object representing the chip.
*/
@callflow(next={"*"})
getChip(ChipId chipId) generates (IWifiChip chip);
};