1214501Srpaulo/* 2214501Srpaulo * WPA Supplicant / dbus-based control interface 3214501Srpaulo * Copyright (c) 2006, Dan Williams <dcbw@redhat.com> and Red Hat, Inc. 4214501Srpaulo * Copyright (c) 2009-2010, Witold Sowa <witold.sowa@gmail.com> 5214501Srpaulo * 6214501Srpaulo * This program is free software; you can redistribute it and/or modify 7214501Srpaulo * it under the terms of the GNU General Public License version 2 as 8214501Srpaulo * published by the Free Software Foundation. 9214501Srpaulo * 10214501Srpaulo * Alternatively, this software may be distributed under the terms of BSD 11214501Srpaulo * license. 12214501Srpaulo * 13214501Srpaulo * See README and COPYING for more details. 14214501Srpaulo */ 15214501Srpaulo 16214501Srpaulo#ifndef CTRL_IFACE_DBUS_NEW_H 17214501Srpaulo#define CTRL_IFACE_DBUS_NEW_H 18214501Srpaulo 19214501Srpaulostruct wpa_global; 20214501Srpaulostruct wpa_supplicant; 21214501Srpaulostruct wpa_ssid; 22214501Srpaulostruct wps_event_m2d; 23214501Srpaulostruct wps_event_fail; 24214501Srpaulostruct wps_credential; 25214501Srpauloenum wpa_states; 26214501Srpaulo 27214501Srpauloenum wpas_dbus_prop { 28214501Srpaulo WPAS_DBUS_PROP_AP_SCAN, 29214501Srpaulo WPAS_DBUS_PROP_SCANNING, 30214501Srpaulo WPAS_DBUS_PROP_STATE, 31214501Srpaulo WPAS_DBUS_PROP_CURRENT_BSS, 32214501Srpaulo WPAS_DBUS_PROP_CURRENT_NETWORK, 33214501Srpaulo}; 34214501Srpaulo 35214501Srpauloenum wpas_dbus_bss_prop { 36214501Srpaulo WPAS_DBUS_BSS_PROP_SIGNAL, 37214501Srpaulo WPAS_DBUS_BSS_PROP_FREQ, 38214501Srpaulo WPAS_DBUS_BSS_PROP_MODE, 39214501Srpaulo WPAS_DBUS_BSS_PROP_PRIVACY, 40214501Srpaulo WPAS_DBUS_BSS_PROP_RATES, 41214501Srpaulo WPAS_DBUS_BSS_PROP_WPA, 42214501Srpaulo WPAS_DBUS_BSS_PROP_RSN, 43214501Srpaulo WPAS_DBUS_BSS_PROP_IES, 44214501Srpaulo}; 45214501Srpaulo 46214501Srpaulo#define WPAS_DBUS_OBJECT_PATH_MAX 150 47214501Srpaulo 48214501Srpaulo#define WPAS_DBUS_NEW_SERVICE "fi.w1.wpa_supplicant1" 49214501Srpaulo#define WPAS_DBUS_NEW_PATH "/fi/w1/wpa_supplicant1" 50214501Srpaulo#define WPAS_DBUS_NEW_INTERFACE "fi.w1.wpa_supplicant1" 51214501Srpaulo 52214501Srpaulo#define WPAS_DBUS_NEW_PATH_INTERFACES WPAS_DBUS_NEW_PATH "/Interfaces" 53214501Srpaulo#define WPAS_DBUS_NEW_IFACE_INTERFACE WPAS_DBUS_NEW_INTERFACE ".Interface" 54214501Srpaulo#define WPAS_DBUS_NEW_IFACE_WPS WPAS_DBUS_NEW_IFACE_INTERFACE ".WPS" 55214501Srpaulo 56214501Srpaulo#define WPAS_DBUS_NEW_NETWORKS_PART "Networks" 57214501Srpaulo#define WPAS_DBUS_NEW_IFACE_NETWORK WPAS_DBUS_NEW_INTERFACE ".Network" 58214501Srpaulo 59214501Srpaulo#define WPAS_DBUS_NEW_BSSIDS_PART "BSSs" 60214501Srpaulo#define WPAS_DBUS_NEW_IFACE_BSS WPAS_DBUS_NEW_INTERFACE ".BSS" 61214501Srpaulo 62214501Srpaulo 63214501Srpaulo/* Errors */ 64214501Srpaulo#define WPAS_DBUS_ERROR_UNKNOWN_ERROR \ 65214501Srpaulo WPAS_DBUS_NEW_INTERFACE ".UnknownError" 66214501Srpaulo#define WPAS_DBUS_ERROR_INVALID_ARGS \ 67214501Srpaulo WPAS_DBUS_NEW_INTERFACE ".InvalidArgs" 68214501Srpaulo 69214501Srpaulo#define WPAS_DBUS_ERROR_IFACE_EXISTS \ 70214501Srpaulo WPAS_DBUS_NEW_INTERFACE ".InterfaceExists" 71214501Srpaulo#define WPAS_DBUS_ERROR_IFACE_UNKNOWN \ 72214501Srpaulo WPAS_DBUS_NEW_INTERFACE ".InterfaceUnknown" 73214501Srpaulo 74214501Srpaulo#define WPAS_DBUS_ERROR_NOT_CONNECTED \ 75214501Srpaulo WPAS_DBUS_NEW_INTERFACE ".NotConnected" 76214501Srpaulo#define WPAS_DBUS_ERROR_NETWORK_UNKNOWN \ 77214501Srpaulo WPAS_DBUS_NEW_INTERFACE ".NetworkUnknown" 78214501Srpaulo 79214501Srpaulo#define WPAS_DBUS_ERROR_BLOB_EXISTS \ 80214501Srpaulo WPAS_DBUS_NEW_INTERFACE ".BlobExists" 81214501Srpaulo#define WPAS_DBUS_ERROR_BLOB_UNKNOWN \ 82214501Srpaulo WPAS_DBUS_NEW_INTERFACE ".BlobUnknown" 83214501Srpaulo 84214501Srpaulo 85214501Srpaulo#ifdef CONFIG_CTRL_IFACE_DBUS_NEW 86214501Srpaulo 87214501Srpauloint wpas_dbus_ctrl_iface_init(struct wpas_dbus_priv *priv); 88214501Srpaulovoid wpas_dbus_ctrl_iface_deinit(struct wpas_dbus_priv *iface); 89214501Srpaulo 90214501Srpauloint wpas_dbus_register_interface(struct wpa_supplicant *wpa_s); 91214501Srpauloint wpas_dbus_unregister_interface(struct wpa_supplicant *wpa_s); 92214501Srpaulovoid wpas_dbus_signal_prop_changed(struct wpa_supplicant *wpa_s, 93214501Srpaulo enum wpas_dbus_prop property); 94214501Srpaulovoid wpas_dbus_bss_signal_prop_changed(struct wpa_supplicant *wpa_s, 95214501Srpaulo enum wpas_dbus_bss_prop property, 96214501Srpaulo unsigned int id); 97214501Srpaulovoid wpas_dbus_signal_network_enabled_changed(struct wpa_supplicant *wpa_s, 98214501Srpaulo struct wpa_ssid *ssid); 99214501Srpaulovoid wpas_dbus_signal_network_selected(struct wpa_supplicant *wpa_s, int id); 100214501Srpaulovoid wpas_dbus_signal_scan_done(struct wpa_supplicant *wpa_s, int success); 101214501Srpaulovoid wpas_dbus_signal_wps_cred(struct wpa_supplicant *wpa_s, 102214501Srpaulo const struct wps_credential *cred); 103214501Srpaulovoid wpas_dbus_signal_wps_event_m2d(struct wpa_supplicant *wpa_s, 104214501Srpaulo struct wps_event_m2d *m2d); 105214501Srpaulovoid wpas_dbus_signal_wps_event_fail(struct wpa_supplicant *wpa_s, 106214501Srpaulo struct wps_event_fail *fail); 107214501Srpaulovoid wpas_dbus_signal_wps_event_success(struct wpa_supplicant *wpa_s); 108214501Srpauloint wpas_dbus_register_network(struct wpa_supplicant *wpa_s, 109214501Srpaulo struct wpa_ssid *ssid); 110214501Srpauloint wpas_dbus_unregister_network(struct wpa_supplicant *wpa_s, int nid); 111214501Srpauloint wpas_dbus_unregister_bss(struct wpa_supplicant *wpa_s, 112214501Srpaulo u8 bssid[ETH_ALEN], unsigned int id); 113214501Srpauloint wpas_dbus_register_bss(struct wpa_supplicant *wpa_s, 114214501Srpaulo u8 bssid[ETH_ALEN], unsigned int id); 115214501Srpaulovoid wpas_dbus_signal_blob_added(struct wpa_supplicant *wpa_s, 116214501Srpaulo const char *name); 117214501Srpaulovoid wpas_dbus_signal_blob_removed(struct wpa_supplicant *wpa_s, 118214501Srpaulo const char *name); 119214501Srpaulovoid wpas_dbus_signal_debug_level_changed(struct wpa_global *global); 120214501Srpaulovoid wpas_dbus_signal_debug_timestamp_changed(struct wpa_global *global); 121214501Srpaulovoid wpas_dbus_signal_debug_show_keys_changed(struct wpa_global *global); 122214501Srpaulo 123214501Srpaulo#else /* CONFIG_CTRL_IFACE_DBUS_NEW */ 124214501Srpaulo 125214501Srpaulostatic inline int wpas_dbus_register_interface(struct wpa_supplicant *wpa_s) 126214501Srpaulo{ 127214501Srpaulo return 0; 128214501Srpaulo} 129214501Srpaulo 130214501Srpaulostatic inline int wpas_dbus_unregister_interface(struct wpa_supplicant *wpa_s) 131214501Srpaulo{ 132214501Srpaulo return 0; 133214501Srpaulo} 134214501Srpaulo 135214501Srpaulo#define wpas_dbus_signal_state_changed(w, n, o) do { } while (0) 136214501Srpaulo 137214501Srpaulostatic inline void wpas_dbus_signal_prop_changed(struct wpa_supplicant *wpa_s, 138214501Srpaulo enum wpas_dbus_prop property) 139214501Srpaulo{ 140214501Srpaulo} 141214501Srpaulo 142214501Srpaulostatic inline void wpas_dbus_bss_signal_prop_changed( 143214501Srpaulo struct wpa_supplicant *wpa_s, enum wpas_dbus_bss_prop property, 144214501Srpaulo unsigned int id) 145214501Srpaulo{ 146214501Srpaulo} 147214501Srpaulo 148214501Srpaulostatic inline void wpas_dbus_signal_network_enabled_changed( 149214501Srpaulo struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid) 150214501Srpaulo{ 151214501Srpaulo} 152214501Srpaulo 153214501Srpaulostatic inline void wpas_dbus_signal_network_selected( 154214501Srpaulo struct wpa_supplicant *wpa_s, int id) 155214501Srpaulo{ 156214501Srpaulo} 157214501Srpaulo 158214501Srpaulostatic inline void wpas_dbus_signal_scan_done(struct wpa_supplicant *wpa_s, 159214501Srpaulo int success) 160214501Srpaulo{ 161214501Srpaulo} 162214501Srpaulo 163214501Srpaulostatic inline void wpas_dbus_signal_wps_cred(struct wpa_supplicant *wpa_s, 164214501Srpaulo const struct wps_credential *cred) 165214501Srpaulo{ 166214501Srpaulo} 167214501Srpaulo 168214501Srpaulostatic inline void wpas_dbus_signal_wps_event_m2d(struct wpa_supplicant *wpa_s, 169214501Srpaulo struct wps_event_m2d *m2d) 170214501Srpaulo{ 171214501Srpaulo} 172214501Srpaulo 173214501Srpaulostatic inline void wpas_dbus_signal_wps_event_fail( 174214501Srpaulo struct wpa_supplicant *wpa_s, struct wps_event_fail *fail) 175214501Srpaulo{ 176214501Srpaulo} 177214501Srpaulo 178214501Srpaulostatic inline void wpas_dbus_signal_wps_event_success( 179214501Srpaulo struct wpa_supplicant *wpa_s) 180214501Srpaulo{ 181214501Srpaulo} 182214501Srpaulo 183214501Srpaulostatic inline int wpas_dbus_register_network(struct wpa_supplicant *wpa_s, 184214501Srpaulo struct wpa_ssid *ssid) 185214501Srpaulo{ 186214501Srpaulo return 0; 187214501Srpaulo} 188214501Srpaulo 189214501Srpaulostatic inline int wpas_dbus_unregister_network(struct wpa_supplicant *wpa_s, 190214501Srpaulo int nid) 191214501Srpaulo{ 192214501Srpaulo return 0; 193214501Srpaulo} 194214501Srpaulo 195214501Srpaulostatic inline int wpas_dbus_unregister_bss(struct wpa_supplicant *wpa_s, 196214501Srpaulo u8 bssid[ETH_ALEN], unsigned int id) 197214501Srpaulo{ 198214501Srpaulo return 0; 199214501Srpaulo} 200214501Srpaulo 201214501Srpaulostatic inline int wpas_dbus_register_bss(struct wpa_supplicant *wpa_s, 202214501Srpaulo u8 bssid[ETH_ALEN], unsigned int id) 203214501Srpaulo{ 204214501Srpaulo return 0; 205214501Srpaulo} 206214501Srpaulo 207214501Srpaulostatic inline void wpas_dbus_signal_blob_added(struct wpa_supplicant *wpa_s, 208214501Srpaulo const char *name) 209214501Srpaulo{ 210214501Srpaulo} 211214501Srpaulo 212214501Srpaulostatic inline void wpas_dbus_signal_blob_removed(struct wpa_supplicant *wpa_s, 213214501Srpaulo const char *name) 214214501Srpaulo{ 215214501Srpaulo} 216214501Srpaulo 217214501Srpaulostatic inline void wpas_dbus_signal_debug_level_changed( 218214501Srpaulo struct wpa_global *global) 219214501Srpaulo{ 220214501Srpaulo} 221214501Srpaulo 222214501Srpaulostatic inline void wpas_dbus_signal_debug_timestamp_changed( 223214501Srpaulo struct wpa_global *global) 224214501Srpaulo{ 225214501Srpaulo} 226214501Srpaulo 227214501Srpaulostatic inline void wpas_dbus_signal_debug_show_keys_changed( 228214501Srpaulo struct wpa_global *global) 229214501Srpaulo{ 230214501Srpaulo} 231214501Srpaulo 232214501Srpaulo#endif /* CONFIG_CTRL_IFACE_DBUS_NEW */ 233214501Srpaulo 234214501Srpaulo#endif /* CTRL_IFACE_DBUS_H_NEW */ 235