1 /*
2  * WPA Supplicant - binder interface for wpa_supplicant daemon
3  * Copyright (c) 2004-2016, Jouni Malinen <j@w1.fi>
4  * Copyright (c) 2004-2016, Roshan Pius <rpius@google.com>
5  *
6  * This software may be distributed under the terms of the BSD license.
7  * See README for more details.
8  */
9 
10 package fi.w1.wpa_supplicant;
11 
12 import android.os.PersistableBundle;
13 import fi.w1.wpa_supplicant.IIface;
14 
15 /**
16  * Interface exposed by the wpa_supplicant binder service registered
17  * with the service manager with name: fi.w1.wpa_supplicant.
18  */
19 interface ISupplicant {
20 	/* Error values returned by the service to RPC method calls. */
21 	const int ERROR_INVALID_ARGS = 1;
22 	const int ERROR_UNKNOWN = 2;
23 	const int ERROR_IFACE_EXISTS = 3;
24 	const int ERROR_IFACE_UNKNOWN = 4;
25 
26 	/**
27 	 * Registers a wireless interface in wpa_supplicant.
28 	 *
29 	 * @param args A dictionary with arguments used to add the interface to
30 	 *             wpa_supplicant.
31 	 * The dictionary may contain the following entries:
32 	 *   Ifname(String) Name of the network interface to control, e.g.,
33 	 *   wlan0.
34 	 *   BridgeIfname(String) Name of the bridge interface to control, e.g.,
35 	 *   br0.
36 	 *   Driver(String) Driver name which the interface uses, e.g., nl80211.
37 	 *   ConfigFile(String) Configuration file path.
38 	 *
39 	 * @return Binder object representing the interface.
40 	 */
41 	IIface CreateInterface(in PersistableBundle args);
42 
43 	/**
44 	 * Deregisters a wireless interface from wpa_supplicant.
45 	 *
46 	 * @param ifname Name of the network interface, e.g., wlan0
47 	 */
48 	void RemoveInterface(in @utf8InCpp String ifname);
49 
50 	/**
51 	 * Gets a binder object for the interface corresponding to ifname
52 	 * which wpa_supplicant already controls.
53 	 *
54 	 * @param ifname Name of the network interface, e.g., wlan0
55 	 *
56 	 * @return Binder object representing the interface.
57 	 */
58 	IIface GetInterface(in @utf8InCpp String ifname);
59 }
60