fstman: add HAL version 1.0
Add version 1.0 of the fstman HAL. This HAL is served by the fst-manager daemon, and allows the WIFI framework to control the FST session and support features such as: - Dynamic enslave of both master interface (wlan0) and rate upgrade interface (wigig0). This allows auto-detection and switching to FST connection without special UI and disable/enable WIFI. - Support renaming of group interfaces, this is needed because the WIFI framework can assign different names to the client interface (such as wlan0/wlan1). - Infrastructure for supporting fst-manager for SoftAP in parallel with STA fst-manager. - Support FST and WIFI SON modes. Change-Id: I51b5c5eda9bdc401e25e915b295efa4abf2d50f1
This commit is contained in:
@@ -39,3 +39,8 @@ hidl_package_root {
|
||||
name: "vendor.qti.hardware.bluetooth_dun",
|
||||
path: "vendor/qcom/opensource/interfaces/bluetooth_dun",
|
||||
}
|
||||
|
||||
hidl_package_root {
|
||||
name: "vendor.qti.hardware.fstman",
|
||||
path: "vendor/qcom/opensource/interfaces/fstman",
|
||||
}
|
||||
|
||||
213
fstman/1.0/IFstGroup.hal
Normal file
213
fstman/1.0/IFstGroup.hal
Normal file
@@ -0,0 +1,213 @@
|
||||
/* Copyright (c) 2019, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
* * Neither the name of The Linux Foundation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
package vendor.qti.hardware.fstman@1.0;
|
||||
|
||||
import IFstGroupCallback;
|
||||
|
||||
/**
|
||||
* Interface exposed by the supplicant for each FST group (e.g bond0)
|
||||
* it controls.
|
||||
*/
|
||||
interface IFstGroup {
|
||||
|
||||
/**
|
||||
* Retrieves the name of the FST group.
|
||||
*
|
||||
* @return status Status of the operation.
|
||||
* Possible status codes:
|
||||
* |FstManagerStatusCode.SUCCESS|,
|
||||
* |FstManagerStatusCode.FAILURE_UNKNOWN|
|
||||
* @return name Name of the FST group, e.g., bond0
|
||||
*/
|
||||
getName() generates (FstManagerStatus status, string name);
|
||||
|
||||
/**
|
||||
* Register for callbacks from this group.
|
||||
*
|
||||
* These callbacks are invoked for events that are specific to this group.
|
||||
* Registration of multiple callback objects is supported. These objects must
|
||||
* be automatically deleted when the corresponding client process is dead or
|
||||
* if this group is removed.
|
||||
*
|
||||
* @param callback An instance of the |IFstGroupCallback| HIDL
|
||||
* interface object.
|
||||
* @return status Status of the operation.
|
||||
* Possible status codes:
|
||||
* |FstManagerStatusCode.SUCCESS|,
|
||||
* |FstManagerStatusCode.FAILURE_UNKNOWN|,
|
||||
*/
|
||||
registerCallback(IFstGroupCallback callback)
|
||||
generates (FstManagerStatus status);
|
||||
|
||||
/**
|
||||
* Retrieve a list of all interfaces belonging to this group.
|
||||
*
|
||||
* @return status Status of the operation.
|
||||
* Possible status codes:
|
||||
* |FstManagerStatusCode.SUCCESS|,
|
||||
* |FstManagerStatusCode.FAILURE_UNKNOWN|
|
||||
* @return ifaceNames List of names for interfaces belonging to this group.
|
||||
*/
|
||||
listInterfaces() generates (FstManagerStatus status, vec<string> ifaceNames);
|
||||
|
||||
/**
|
||||
* check if FST mode is supported for this group.
|
||||
* When FST mode is supported, framework should detect FST-capable AP by
|
||||
* checking for presence of MB IE in probe response.
|
||||
*
|
||||
* @return status Status of the operation.
|
||||
* Possible status codes:
|
||||
* |FstManagerStatusCode.SUCCESS|,
|
||||
* |FstManagerStatusCode.FAILURE_UNKNOWN|,
|
||||
* @return supported true if FST mode is supported, false if not.
|
||||
*/
|
||||
isFstModeSupported() generates (FstManagerStatus status, bool supported);
|
||||
|
||||
/**
|
||||
* check if WIFI SON mode is supported for this group.
|
||||
* When SON mode is supported, framework should detect SON-capable AP by
|
||||
* checking for presence of SON IE in probe response.
|
||||
*
|
||||
* @return status Status of the operation.
|
||||
* Possible status codes:
|
||||
* |FstManagerStatusCode.SUCCESS|,
|
||||
* |FstManagerStatusCode.FAILURE_UNKNOWN|,
|
||||
* @return supported true if WIFI SON mode supported, false if not.
|
||||
*/
|
||||
isWifiSonModeSupported() generates (FstManagerStatus status, bool supported);
|
||||
|
||||
/**
|
||||
* get the name of the MUX interface used by this group.
|
||||
*
|
||||
* @return status Status of the operation.
|
||||
* Possible status codes:
|
||||
* |FstManagerStatusCode.SUCCESS|,
|
||||
* |FstManagerStatusCode.FAILURE_UNKNOWN|,
|
||||
* @return name name of the MUX interface (such as bond0)
|
||||
*/
|
||||
getMuxInterfaceName() generates (FstManagerStatus status, string name);
|
||||
|
||||
/**
|
||||
* set the name of the MUX interface used by this group.
|
||||
* The group must not have any enslaved interfaces or active connection.
|
||||
*
|
||||
* @param name new name for the MUX interface.
|
||||
* @return status Status of the operation.
|
||||
* Possible status codes:
|
||||
* |FstManagerStatusCode.SUCCESS|,
|
||||
* |FstManagerStatusCode.FAILURE_UNKNOWN|,
|
||||
*/
|
||||
setMuxInterfaceName(string name) generates (FstManagerStatus status);
|
||||
|
||||
/**
|
||||
* Enslave or release a group interface.
|
||||
* When enslaving, interface will be added to master
|
||||
* interface as a slave.
|
||||
* When releasing, interface will be detached from
|
||||
* master interface and no longer be a slave.
|
||||
* When releasing, fst-manager will also disconnect
|
||||
* any active connection on the interface (via supplicant)
|
||||
*
|
||||
* @param ifname interface name, must be one of the group interfaces.
|
||||
* @param enslave true to enslave, false to release
|
||||
*
|
||||
* @return status Status of the operation.
|
||||
* Possible status codes:
|
||||
* |FstManagerStatusCode.SUCCESS|,
|
||||
* |FstManagerStatusCode.FAILURE_ARGS_INVALID|,
|
||||
* |FstManagerStatusCode.FAILURE_UNKNOWN|,
|
||||
*/
|
||||
enslave(string ifname, bool enslave)
|
||||
generates (FstManagerStatus status);
|
||||
|
||||
/**
|
||||
* check if the interface is currently enslaved under the
|
||||
* MUX interface.
|
||||
*
|
||||
* @param ifname interface name, must be one of the group interfaces.
|
||||
*
|
||||
* @return status Status of the operation.
|
||||
* Possible status codes:
|
||||
* |FstManagerStatusCode.SUCCESS|,
|
||||
* |FstManagerStatusCode.FAILURE_ARGS_INVALID|,
|
||||
* |FstManagerStatusCode.FAILURE_UNKNOWN|,
|
||||
* @return enslaved true if interface is enslaved, false if not.
|
||||
*/
|
||||
isEnslaved(string ifname)
|
||||
generates (FstManagerStatus status, bool enslaved);
|
||||
|
||||
/**
|
||||
* Changes the MAC address of the group master interface
|
||||
* and its underlying interfaces.
|
||||
*
|
||||
* @param mac MAC address to change into.
|
||||
* @return status WifiStatus of the operation.
|
||||
* Possible status codes:
|
||||
* |FstManagerStatusCode.SUCCESS|,
|
||||
* |FstManagerStatusCode.FAILURE_UNKNOWN|,
|
||||
*/
|
||||
setMacAddress(MacAddress mac) generates (FstManagerStatus status);
|
||||
|
||||
/**
|
||||
* check if the specified interface is the rate upgrade master for
|
||||
* this group. The rate upgrade master is typically the "always on"
|
||||
* connection which is used as a fallback when the faster (but less
|
||||
* reliable) interface is not available.
|
||||
*
|
||||
* @param ifname interface name, must be one of the group interfaces.
|
||||
*
|
||||
* @return status Status of the operation.
|
||||
* Possible status codes:
|
||||
* |FstManagerStatusCode.SUCCESS|,
|
||||
* |FstManagerStatusCode.FAILURE_ARGS_INVALID|,
|
||||
* |FstManagerStatusCode.FAILURE_UNKNOWN|,
|
||||
* @return isMaster true if interface is rate upgrade master, false if not.
|
||||
*/
|
||||
isRateUpgradeMaster(string ifname)
|
||||
generates (FstManagerStatus status, bool isMaster);
|
||||
|
||||
/**
|
||||
* rename one of the group interfaces.
|
||||
* The interface must not be enslaved, and the group must
|
||||
* not have an active connection.
|
||||
*
|
||||
* @param ifname interface name, must be one of the group interfaces.
|
||||
* @param newifname new interface name for this interface.
|
||||
*
|
||||
* @return status Status of the operation.
|
||||
* Possible status codes:
|
||||
* |FstManagerStatusCode.SUCCESS|,
|
||||
* |FstManagerStatusCode.FAILURE_ARGS_INVALID|,
|
||||
* |FstManagerStatusCode.FAILURE_UNKNOWN|,
|
||||
*/
|
||||
renameInterface(string ifname, string newifname)
|
||||
generates (FstManagerStatus status);
|
||||
};
|
||||
42
fstman/1.0/IFstGroupCallback.hal
Normal file
42
fstman/1.0/IFstGroupCallback.hal
Normal file
@@ -0,0 +1,42 @@
|
||||
/* Copyright (c) 2019, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
* * Neither the name of The Linux Foundation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
package vendor.qti.hardware.fstman@1.0;
|
||||
|
||||
/**
|
||||
* Callback Interface exposed by the fst-manager service
|
||||
* for each FST group (IFstGroup).
|
||||
*
|
||||
* Clients need to host an instance of this HIDL interface object and
|
||||
* pass a reference of the object to the supplicant via the
|
||||
* corresponding |IFstGroup.registerCallback| method.
|
||||
*/
|
||||
interface IFstGroupCallback {
|
||||
|
||||
};
|
||||
118
fstman/1.0/IFstManager.hal
Normal file
118
fstman/1.0/IFstManager.hal
Normal file
@@ -0,0 +1,118 @@
|
||||
/* Copyright (c) 2019, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
* * Neither the name of The Linux Foundation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
package vendor.qti.hardware.fstman@1.0;
|
||||
|
||||
import IFstGroup;
|
||||
|
||||
/**
|
||||
* interface for communicating with fst-manager
|
||||
*/
|
||||
interface IFstManager {
|
||||
|
||||
/**
|
||||
* Debug levels for the fst-manager.
|
||||
* Only log messages with a level greater than the set level
|
||||
* (via |setDebugParams|) will be logged.
|
||||
*/
|
||||
enum DebugLevel : uint32_t {
|
||||
EXCESSIVE = 0,
|
||||
MSGDUMP = 1,
|
||||
DEBUG = 2,
|
||||
INFO = 3,
|
||||
WARNING = 4,
|
||||
ERROR = 5
|
||||
};
|
||||
|
||||
/**
|
||||
* Gets a HIDL interface object for the group corresponding to group
|
||||
* name which the fst-manager already controls.
|
||||
*
|
||||
* @param groupName The group name.
|
||||
* @return status Status of the operation.
|
||||
* Possible status codes:
|
||||
* |FstManagerStatusCode.SUCCESS|,
|
||||
* |FstManagerStatusCode.FAILURE_UNKNOWN|,
|
||||
* |FstManagerStatusCode.FAILURE_GROUP_UNKOWN|
|
||||
* @return group HIDL interface object representing the group if
|
||||
* successful, null otherwise.
|
||||
*/
|
||||
getGroup(string groupName)
|
||||
generates (FstManagerStatus status, IFstGroup group);
|
||||
|
||||
/**
|
||||
* Retrieve a list of all the groups controlled by the fst-manager.
|
||||
*
|
||||
* The corresponding |IFstGroup| object for any group can be
|
||||
* retrieved using |getGroup| method.
|
||||
*
|
||||
* @return status Status of the operation.
|
||||
* Possible status codes:
|
||||
* |FstManagerStatusCode.SUCCESS|,
|
||||
* |FstManagerStatusCode.FAILURE_UNKNOWN|
|
||||
* @return groupNames List of all group names controlled by the fst-manager.
|
||||
*/
|
||||
listGroups() generates (FstManagerStatus status, vec<string> groupNames);
|
||||
|
||||
/**
|
||||
* Set debug parameters for the fst-manager.
|
||||
*
|
||||
* @param level Debug logging level for the fst-manager.
|
||||
* (one of |DebugLevel| values).
|
||||
* @param timestamp Determines whether to show timestamps in logs or
|
||||
* not.
|
||||
* @return status Status of the operation.
|
||||
* Possible status codes:
|
||||
* |FstManagerStatusCode.SUCCESS|,
|
||||
* |FstManagerStatusCode.FAILURE_UNKNOWN|
|
||||
*/
|
||||
setDebugParams(DebugLevel level, bool showTimestamp)
|
||||
generates (FstManagerStatus status);
|
||||
|
||||
/**
|
||||
* Get the debug level set.
|
||||
*
|
||||
* @return level one of |DebugLevel| values.
|
||||
*/
|
||||
getDebugLevel() generates (DebugLevel level);
|
||||
|
||||
/**
|
||||
* Get whether the timestamps are shown in the debug logs or not.
|
||||
*
|
||||
* @return enabled true if set, false otherwise.
|
||||
*/
|
||||
isDebugShowTimestampEnabled() generates (bool enabled);
|
||||
|
||||
/**
|
||||
* Terminate the service.
|
||||
* This must de-register the service and clear all state. If this HAL
|
||||
* supports the lazy HAL protocol, then this may trigger daemon to exit and
|
||||
* wait to be restarted.
|
||||
*/
|
||||
oneway terminate();
|
||||
};
|
||||
61
fstman/1.0/types.hal
Normal file
61
fstman/1.0/types.hal
Normal file
@@ -0,0 +1,61 @@
|
||||
/* Copyright (c) 2019, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
* * Neither the name of The Linux Foundation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
package vendor.qti.hardware.fstman@1.0;
|
||||
/**
|
||||
* Enum values indicating the status of any FST manager operation.
|
||||
*/
|
||||
enum FstManagerStatusCode : uint32_t {
|
||||
/** No errors. */
|
||||
SUCCESS,
|
||||
/** Unknown failure occured. */
|
||||
FAILURE_UNKNOWN,
|
||||
/** One of the incoming args is invalid. */
|
||||
FAILURE_ARGS_INVALID,
|
||||
/** Unknown FST group */
|
||||
FAILURE_GROUP_UNKNOWN,
|
||||
};
|
||||
|
||||
/**
|
||||
* Generic structure to return the status of any FST manager operation.
|
||||
*/
|
||||
struct FstManagerStatus {
|
||||
FstManagerStatusCode code;
|
||||
/**
|
||||
* A vendor specific error message to provide more information beyond the
|
||||
* status code.
|
||||
* This will be used for debbuging purposes only.
|
||||
*/
|
||||
string debugMessage;
|
||||
};
|
||||
|
||||
/**
|
||||
* Mac Address type. 6 octets representing physical address of a device.
|
||||
*/
|
||||
typedef uint8_t[6] MacAddress;
|
||||
36
fstman/current.txt
Normal file
36
fstman/current.txt
Normal file
@@ -0,0 +1,36 @@
|
||||
# Copyright (c) 2019, The Linux Foundation. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above
|
||||
# copyright notice, this list of conditions and the following
|
||||
# disclaimer in the documentation and/or other materials provided
|
||||
# with the distribution.
|
||||
# * Neither the name of The Linux Foundation nor the names of its
|
||||
# contributors may be used to endorse or promote products derived
|
||||
# from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
#
|
||||
|
||||
|
||||
######HAL released in Android Q######
|
||||
a916925177373b896bf211eb00faaeae7063ef40351286a64f4bec8e0079e6db vendor.qti.hardware.fstman@1.0::types
|
||||
951b29cb64137afe92a225d85af245d96c89405dae56c6af5339f13f4c4e2904 vendor.qti.hardware.fstman@1.0::IFstGroup
|
||||
24bd58f69a5d3be9294f9a671b81da1f36120ff17954d0ec94fbbff14f968a62 vendor.qti.hardware.fstman@1.0::IFstGroupCallback
|
||||
d9f95a2ba931ce60b39b564d52ae4644e875b10e7ec27ce42da83a95dcff4e81 vendor.qti.hardware.fstman@1.0::IFstManager
|
||||
|
||||
Reference in New Issue
Block a user