1094332d3Sopenharmony_ci/*
2094332d3Sopenharmony_ci * Copyright (c) 2022-2023 Huawei Device Co., Ltd.
3094332d3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4094332d3Sopenharmony_ci * you may not use this file except in compliance with the License.
5094332d3Sopenharmony_ci * You may obtain a copy of the License at
6094332d3Sopenharmony_ci *
7094332d3Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8094332d3Sopenharmony_ci *
9094332d3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10094332d3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11094332d3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12094332d3Sopenharmony_ci * See the License for the specific language governing permissions and
13094332d3Sopenharmony_ci * limitations under the License.
14094332d3Sopenharmony_ci */
15094332d3Sopenharmony_ci#ifndef WLAN_COMMON_CMD_H
16094332d3Sopenharmony_ci#define WLAN_COMMON_CMD_H
17094332d3Sopenharmony_ci
18094332d3Sopenharmony_ci#include "../wlan_impl.h"
19094332d3Sopenharmony_ci
20094332d3Sopenharmony_ciint32_t WlanInterfaceStart(struct IWlanInterface *self);
21094332d3Sopenharmony_ciint32_t WlanInterfaceStop(struct IWlanInterface *self);
22094332d3Sopenharmony_ciint32_t WlanInterfaceCreateFeature(struct IWlanInterface *self, int32_t type, struct HdfFeatureInfo *ifeature);
23094332d3Sopenharmony_ciint32_t WlanInterfaceDestroyFeature(struct IWlanInterface *self, const struct HdfFeatureInfo *ifeature);
24094332d3Sopenharmony_ciint32_t WlanInterfaceGetAssociatedStas(struct IWlanInterface *self, const struct HdfFeatureInfo *ifeature,
25094332d3Sopenharmony_ci    struct HdfStaInfo *staInfo, uint32_t *staInfoLen, uint32_t *num);
26094332d3Sopenharmony_ciint32_t WlanInterfaceGetChipId(struct IWlanInterface *self, const struct HdfFeatureInfo *ifeature, uint8_t *chipId);
27094332d3Sopenharmony_ciint32_t WlanInterfaceGetDeviceMacAddress(struct IWlanInterface *self, const struct HdfFeatureInfo *ifeature,
28094332d3Sopenharmony_ci    uint8_t *mac, uint32_t *macLen, uint8_t len);
29094332d3Sopenharmony_ciint32_t WlanInterfaceGetFeatureByIfName(struct IWlanInterface *self, const char *ifName,
30094332d3Sopenharmony_ci    struct HdfFeatureInfo *ifeature);
31094332d3Sopenharmony_ciint32_t WlanInterfaceGetFeatureType(struct IWlanInterface *self, const struct HdfFeatureInfo *ifeature,
32094332d3Sopenharmony_ci    int32_t *featureType);
33094332d3Sopenharmony_ciint32_t WlanInterfaceGetFreqsWithBand(struct IWlanInterface *self, const struct HdfFeatureInfo *ifeature,
34094332d3Sopenharmony_ci    const struct HdfWifiInfo *wifiInfo, int32_t *freq, uint32_t *freqLen);
35094332d3Sopenharmony_ciint32_t WlanInterfaceGetIfNamesByChipId(struct IWlanInterface *self, uint8_t chipId, char *ifName,
36094332d3Sopenharmony_ci    uint32_t ifNameLen, uint32_t *num);
37094332d3Sopenharmony_ciint32_t WlanInterfaceGetNetworkIfaceName(struct IWlanInterface *self, const struct HdfFeatureInfo *ifeature,
38094332d3Sopenharmony_ci    char *ifName, uint32_t ifNameLen);
39094332d3Sopenharmony_ciint32_t WlanInterfaceGetSupportCombo(struct IWlanInterface *self, uint64_t *combo);
40094332d3Sopenharmony_ciint32_t WlanInterfaceGetSupportFeature(struct IWlanInterface *self, uint8_t *supType, uint32_t *supTypeLen);
41094332d3Sopenharmony_ciint32_t WlanInterfaceRegisterEventCallback(struct IWlanInterface *self, struct IWlanCallback *cbFunc,
42094332d3Sopenharmony_ci    const char *ifName);
43094332d3Sopenharmony_ciint32_t WlanInterfaceUnregisterEventCallback(struct IWlanInterface *self, struct IWlanCallback *cbFunc,
44094332d3Sopenharmony_ci    const char *ifName);
45094332d3Sopenharmony_ciint32_t WlanInterfaceResetDriver(struct IWlanInterface *self, uint8_t chipId, const char *ifName);
46094332d3Sopenharmony_ciint32_t WlanInterfaceSetCountryCode(struct IWlanInterface *self, const struct HdfFeatureInfo *ifeature,
47094332d3Sopenharmony_ci    const char *code, uint32_t len);
48094332d3Sopenharmony_ciint32_t WlanInterfaceSetMacAddress(struct IWlanInterface *self, const struct HdfFeatureInfo *ifeature,
49094332d3Sopenharmony_ci    const uint8_t *mac, uint32_t macLen);
50094332d3Sopenharmony_ciint32_t WlanInterfaceSetScanningMacAddress(struct IWlanInterface *self, const struct HdfFeatureInfo *ifeature,
51094332d3Sopenharmony_ci    const uint8_t *scanMac, uint32_t scanMacLen);
52094332d3Sopenharmony_ciint32_t WlanInterfaceSetTxPower(struct IWlanInterface *self, const struct HdfFeatureInfo *ifeature, int32_t power);
53094332d3Sopenharmony_ciint32_t WlanInterfaceGetNetDevInfo(struct IWlanInterface *self, struct HdfNetDeviceInfoResult *netDeviceInfoResult);
54094332d3Sopenharmony_ciint32_t WlanInterfaceStartScan(struct IWlanInterface *self, const struct HdfFeatureInfo *ifeature,
55094332d3Sopenharmony_ci    const struct HdfWifiScan *scan);
56094332d3Sopenharmony_ciint32_t WlanInterfaceGetPowerMode(struct IWlanInterface *self, const struct HdfFeatureInfo *ifeature, uint8_t *mode);
57094332d3Sopenharmony_ciint32_t WlanInterfaceSetPowerMode(struct IWlanInterface *self, const struct HdfFeatureInfo *ifeature, uint8_t mode);
58094332d3Sopenharmony_ciint32_t WlanInterfaceSetProjectionScreenParam(struct IWlanInterface *self, const char *ifName,
59094332d3Sopenharmony_ci    const struct ProjectionScreenCmdParam *param);
60094332d3Sopenharmony_ciint32_t WlanInterfaceGetStaInfo(struct IWlanInterface *self, const char *ifName, struct WifiStationInfo *info,
61094332d3Sopenharmony_ci    const uint8_t *mac, uint32_t macLen);
62094332d3Sopenharmony_ciint32_t WlanInterfaceStartPnoScan(struct IWlanInterface *self, const char *ifName,
63094332d3Sopenharmony_ci    const struct PnoSettings *pnoSettings);
64094332d3Sopenharmony_ciint32_t WlanInterfaceStopPnoScan(struct IWlanInterface *self, const char *ifName);
65094332d3Sopenharmony_ciint32_t WlanInterfaceGetSignalPollInfo(struct IWlanInterface *self, const char *ifName,
66094332d3Sopenharmony_ci    struct SignalPollResult *signalResult);
67094332d3Sopenharmony_ciint32_t WlanInterfaceGetApBandwidth(struct IWlanInterface *self, const char *ifName,
68094332d3Sopenharmony_ci    uint8_t *bandwidth);
69094332d3Sopenharmony_ciint32_t WlanInterfaceResetToFactoryMacAddress(struct IWlanInterface *self, const char *ifName);
70094332d3Sopenharmony_ciint32_t WlanInterfaceSendActionFrame(struct IWlanInterface *self, const char *ifName, uint32_t freq,
71094332d3Sopenharmony_ci    const uint8_t *frameData, uint32_t frameDataLen);
72094332d3Sopenharmony_ciint32_t WlanInterfaceRegisterActionFrameReceiver(struct IWlanInterface *self, const char *ifName,
73094332d3Sopenharmony_ci    const uint8_t *match, uint32_t matchLen);
74094332d3Sopenharmony_ciint32_t WlanInterfaceGetCoexChannelList(struct IWlanInterface *self, const char *ifName,
75094332d3Sopenharmony_ci    uint8_t *paramBuf, uint32_t *paramBufLen);
76094332d3Sopenharmony_ciint32_t WlanInterfaceSetPowerSaveMode(struct IWlanInterface *self, const char *ifName, int32_t frequency,
77094332d3Sopenharmony_ci    int32_t mode);
78094332d3Sopenharmony_ciint32_t WlanInterfaceSetDpiMarkRule(struct IWlanInterface *self, int32_t uid, int32_t protocol, int32_t enable);
79094332d3Sopenharmony_ciint32_t WlanInterfaceWifiConstruct(void);
80094332d3Sopenharmony_ciint32_t WlanInterfaceWifiDestruct(void);
81094332d3Sopenharmony_ci#endif
82