blob: c1a6d2b45cbde0b7f0173c9f7b6492757f4f448d [file] [log] [blame]
/*
* Copyright (C) 2020 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.
*/
#ifndef CHPP_WIFI_COMMON_H_
#define CHPP_WIFI_COMMON_H_
#include <stdbool.h>
#include <stdint.h>
#include "chpp/app.h"
#include "chpp/macros.h"
#ifdef __cplusplus
extern "C" {
#endif
/************************************************
* Public Definitions
***********************************************/
#define CHPP_PAL_WIFI_API_VERSION CHRE_PAL_WIFI_API_V1_8
/**
* Data structures used by the Configure Scan Monitor request.
*/
CHPP_PACKED_START
struct ChppWifiConfigureScanMonitorAsyncRequestParameters {
bool enable;
const void *cookie;
} CHPP_PACKED_ATTR;
CHPP_PACKED_END
CHPP_PACKED_START
struct ChppWifiConfigureScanMonitorAsyncRequest {
struct ChppAppHeader header;
struct ChppWifiConfigureScanMonitorAsyncRequestParameters params;
} CHPP_PACKED_ATTR;
CHPP_PACKED_END
/**
* Data structures used by the Get Capabilities Response.
*/
CHPP_PACKED_START
struct ChppWifiGetCapabilitiesParameters {
uint32_t capabilities;
} CHPP_PACKED_ATTR;
CHPP_PACKED_END
CHPP_PACKED_START
struct ChppWifiGetCapabilitiesResponse {
struct ChppAppHeader header;
struct ChppWifiGetCapabilitiesParameters params;
} CHPP_PACKED_ATTR;
CHPP_PACKED_END
/**
* Data structures used by the Configure Scan Monitor Async Response.
*/
CHPP_PACKED_START
struct ChppWifiConfigureScanMonitorAsyncResponseParameters {
bool enabled;
uint8_t errorCode;
} CHPP_PACKED_ATTR;
CHPP_PACKED_END
CHPP_PACKED_START
struct ChppWifiConfigureScanMonitorAsyncResponse {
struct ChppAppHeader header;
struct ChppWifiConfigureScanMonitorAsyncResponseParameters params;
} CHPP_PACKED_ATTR;
CHPP_PACKED_END
/**
* Data structure used by the Request Scan Response.
*/
CHPP_PACKED_START
struct ChppWifiRequestScanResponseParameters {
bool pending;
uint8_t errorCode;
} CHPP_PACKED_ATTR;
CHPP_PACKED_END
CHPP_PACKED_START
struct ChppWifiRequestScanResponse {
struct ChppAppHeader header;
struct ChppWifiRequestScanResponseParameters params;
} CHPP_PACKED_ATTR;
CHPP_PACKED_END
/**
* Data structure used by the NAN subscribe cancel request.
*/
CHPP_PACKED_START
struct ChppWifiNanSubscribeCancelRequest {
struct ChppAppHeader header;
uint32_t subscriptionId;
} CHPP_PACKED_ATTR;
CHPP_PACKED_END
/**
* Data structure used by the NAN service identifier callback.
*/
CHPP_PACKED_START
struct ChppWifiNanServiceIdentifier {
struct ChppAppHeader header;
uint8_t errorCode;
uint32_t subscriptionId;
} CHPP_PACKED_ATTR;
CHPP_PACKED_END
/**
* Data structure used by the NAN service canceled callback.
*/
CHPP_PACKED_START
struct ChppWifiNanSubscriptionCanceledResponse {
struct ChppAppHeader header;
uint8_t errorCode;
uint32_t subscriptionId;
} CHPP_PACKED_ATTR;
CHPP_PACKED_END
/**
* Data structure used by the NAN identifier event
*/
/**
* Commands used by the WiFi (WLAN) Service.
*/
enum ChppWifiCommands {
//! Initializes the service.
CHPP_WIFI_OPEN = 0x0000,
//! Deinitializes the service.
CHPP_WIFI_CLOSE = 0x0001,
//! Retrieves a set of flags indicating supported features.
CHPP_WIFI_GET_CAPABILITIES = 0x0002,
//! Configures whether scanEventCallback receives unsolicited scan results.
CHPP_WIFI_CONFIGURE_SCAN_MONITOR_ASYNC = 0x0003,
//! Request that the WiFi chipset perform a scan, or deliver cached results.
CHPP_WIFI_REQUEST_SCAN_ASYNC = 0x0004,
//! Request that the WiFi chipset perform RTT ranging.
CHPP_WIFI_REQUEST_RANGING_ASYNC = 0x0005,
//! Request that the WiFi chipset perform a NAN subscription.
CHPP_WIFI_REQUEST_NAN_SUB = 0x0006,
//! Request that the WiFi chipset cancel a NAN subscription.
CHPP_WIFI_REQUEST_NAN_SUB_CANCEL = 0x0007,
//! Request that the WiFi chipset perform NAN ranging.
CHPP_WIFI_REQUEST_NAN_RANGING_ASYNC = 0x0008,
//! Indicates that a subscribing service be informed that a publisher
//! matching its desired configuration has been discovered.
CHPP_WIFI_NOTIFICATION_NAN_SERVICE_DISCOVERY = 0x0009,
//! Indication if the connection to a NAN service was lost.
CHPP_WIFI_NOTIFICATION_NAN_SERVICE_LOST = 0x000a,
//! Indication if a NAN service subscription was terminated.
CHPP_WIFI_NOTIFICATION_NAN_SERVICE_TERMINATED = 0x000b,
};
#define CHPP_WIFI_CLIENT_REQUEST_MAX CHPP_WIFI_REQUEST_NAN_RANGING_ASYNC
#ifdef __cplusplus
}
#endif
#endif // CHPP_WIFI_COMMON_H_