ExecStart=/usr/bin/wfd-manager
User=network_fw
Group=network_fw
-Capabilities=cap_net_bind_service,cap_net_broadcast,cap_net_admin,cap_net_raw,cap_kill=i
+Capabilities=cap_net_bind_service,cap_net_broadcast,cap_net_admin,cap_net_raw,cap_kill,cap_sys_module=i
SecureBits=keep-caps
#include <gio/gio.h>
#include <tzplatform_config.h>
+#include <hal-wifi.h>
#include "wifi-direct-oem.h"
#include "wfd-plugin-log.h"
static int __ws_p2p_firmware_start(const char *interface_name)
{
- gboolean rv = FALSE;
- const char *path = "/usr/bin/wlan.sh";
- char *const args[] = { "/usr/bin/wlan.sh", "p2p", (char *)interface_name, NULL };
- char *const envs[] = { NULL };
+ int rv = 0;
- rv = _ws_util_execute_file(path, args, envs);
- if (rv != TRUE)
+ rv = hal_wifi_get_backend();
+ if (rv < 0) {
+ WDP_LOGD("hal_wifi_get_backend() failed, ret: %d", rv);
return -1;
+ }
+
+ rv = hal_wifi_p2p_start(interface_name);
+ if (rv < 0) {
+ WDP_LOGD("hal_wifi_p2p_start() failed, ret: %d", rv);
+ return -1;
+ }
WDP_LOGI("Successfully loaded p2p device driver");
return 0;
static int __ws_p2p_firmware_stop(const char *interface_name)
{
- gboolean rv = FALSE;
- const char *path = "/usr/bin/wlan.sh";
- char *const args[] = { "/usr/bin/wlan.sh", "stop", (char *)interface_name, NULL };
- char *const envs[] = { NULL };
- rv = _ws_util_execute_file(path, args, envs);
- if (rv < 0)
+ int rv = 0;
+
+ rv = hal_wifi_get_backend();
+ if (rv < 0) {
+ WDP_LOGD("hal_wifi_get_backend() failed, ret: %d", rv);
return -1;
+ }
+
+ rv = hal_wifi_stop(interface_name);
+ if (rv < 0) {
+ WDP_LOGD("hal_wifi_stop() failed, ret: %d", rv);
+ return -1;
+ }
WDP_LOGI("Successfully removed p2p device driver");
return 0;