dbus_new.h revision 214501
1/* 2 * WPA Supplicant / dbus-based control interface 3 * Copyright (c) 2006, Dan Williams <dcbw@redhat.com> and Red Hat, Inc. 4 * Copyright (c) 2009-2010, Witold Sowa <witold.sowa@gmail.com> 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. 9 * 10 * Alternatively, this software may be distributed under the terms of BSD 11 * license. 12 * 13 * See README and COPYING for more details. 14 */ 15 16#ifndef CTRL_IFACE_DBUS_NEW_H 17#define CTRL_IFACE_DBUS_NEW_H 18 19struct wpa_global; 20struct wpa_supplicant; 21struct wpa_ssid; 22struct wps_event_m2d; 23struct wps_event_fail; 24struct wps_credential; 25enum wpa_states; 26 27enum wpas_dbus_prop { 28 WPAS_DBUS_PROP_AP_SCAN, 29 WPAS_DBUS_PROP_SCANNING, 30 WPAS_DBUS_PROP_STATE, 31 WPAS_DBUS_PROP_CURRENT_BSS, 32 WPAS_DBUS_PROP_CURRENT_NETWORK, 33}; 34 35enum wpas_dbus_bss_prop { 36 WPAS_DBUS_BSS_PROP_SIGNAL, 37 WPAS_DBUS_BSS_PROP_FREQ, 38 WPAS_DBUS_BSS_PROP_MODE, 39 WPAS_DBUS_BSS_PROP_PRIVACY, 40 WPAS_DBUS_BSS_PROP_RATES, 41 WPAS_DBUS_BSS_PROP_WPA, 42 WPAS_DBUS_BSS_PROP_RSN, 43 WPAS_DBUS_BSS_PROP_IES, 44}; 45 46#define WPAS_DBUS_OBJECT_PATH_MAX 150 47 48#define WPAS_DBUS_NEW_SERVICE "fi.w1.wpa_supplicant1" 49#define WPAS_DBUS_NEW_PATH "/fi/w1/wpa_supplicant1" 50#define WPAS_DBUS_NEW_INTERFACE "fi.w1.wpa_supplicant1" 51 52#define WPAS_DBUS_NEW_PATH_INTERFACES WPAS_DBUS_NEW_PATH "/Interfaces" 53#define WPAS_DBUS_NEW_IFACE_INTERFACE WPAS_DBUS_NEW_INTERFACE ".Interface" 54#define WPAS_DBUS_NEW_IFACE_WPS WPAS_DBUS_NEW_IFACE_INTERFACE ".WPS" 55 56#define WPAS_DBUS_NEW_NETWORKS_PART "Networks" 57#define WPAS_DBUS_NEW_IFACE_NETWORK WPAS_DBUS_NEW_INTERFACE ".Network" 58 59#define WPAS_DBUS_NEW_BSSIDS_PART "BSSs" 60#define WPAS_DBUS_NEW_IFACE_BSS WPAS_DBUS_NEW_INTERFACE ".BSS" 61 62 63/* Errors */ 64#define WPAS_DBUS_ERROR_UNKNOWN_ERROR \ 65 WPAS_DBUS_NEW_INTERFACE ".UnknownError" 66#define WPAS_DBUS_ERROR_INVALID_ARGS \ 67 WPAS_DBUS_NEW_INTERFACE ".InvalidArgs" 68 69#define WPAS_DBUS_ERROR_IFACE_EXISTS \ 70 WPAS_DBUS_NEW_INTERFACE ".InterfaceExists" 71#define WPAS_DBUS_ERROR_IFACE_UNKNOWN \ 72 WPAS_DBUS_NEW_INTERFACE ".InterfaceUnknown" 73 74#define WPAS_DBUS_ERROR_NOT_CONNECTED \ 75 WPAS_DBUS_NEW_INTERFACE ".NotConnected" 76#define WPAS_DBUS_ERROR_NETWORK_UNKNOWN \ 77 WPAS_DBUS_NEW_INTERFACE ".NetworkUnknown" 78 79#define WPAS_DBUS_ERROR_BLOB_EXISTS \ 80 WPAS_DBUS_NEW_INTERFACE ".BlobExists" 81#define WPAS_DBUS_ERROR_BLOB_UNKNOWN \ 82 WPAS_DBUS_NEW_INTERFACE ".BlobUnknown" 83 84 85#ifdef CONFIG_CTRL_IFACE_DBUS_NEW 86 87int wpas_dbus_ctrl_iface_init(struct wpas_dbus_priv *priv); 88void wpas_dbus_ctrl_iface_deinit(struct wpas_dbus_priv *iface); 89 90int wpas_dbus_register_interface(struct wpa_supplicant *wpa_s); 91int wpas_dbus_unregister_interface(struct wpa_supplicant *wpa_s); 92void wpas_dbus_signal_prop_changed(struct wpa_supplicant *wpa_s, 93 enum wpas_dbus_prop property); 94void wpas_dbus_bss_signal_prop_changed(struct wpa_supplicant *wpa_s, 95 enum wpas_dbus_bss_prop property, 96 unsigned int id); 97void wpas_dbus_signal_network_enabled_changed(struct wpa_supplicant *wpa_s, 98 struct wpa_ssid *ssid); 99void wpas_dbus_signal_network_selected(struct wpa_supplicant *wpa_s, int id); 100void wpas_dbus_signal_scan_done(struct wpa_supplicant *wpa_s, int success); 101void wpas_dbus_signal_wps_cred(struct wpa_supplicant *wpa_s, 102 const struct wps_credential *cred); 103void wpas_dbus_signal_wps_event_m2d(struct wpa_supplicant *wpa_s, 104 struct wps_event_m2d *m2d); 105void wpas_dbus_signal_wps_event_fail(struct wpa_supplicant *wpa_s, 106 struct wps_event_fail *fail); 107void wpas_dbus_signal_wps_event_success(struct wpa_supplicant *wpa_s); 108int wpas_dbus_register_network(struct wpa_supplicant *wpa_s, 109 struct wpa_ssid *ssid); 110int wpas_dbus_unregister_network(struct wpa_supplicant *wpa_s, int nid); 111int wpas_dbus_unregister_bss(struct wpa_supplicant *wpa_s, 112 u8 bssid[ETH_ALEN], unsigned int id); 113int wpas_dbus_register_bss(struct wpa_supplicant *wpa_s, 114 u8 bssid[ETH_ALEN], unsigned int id); 115void wpas_dbus_signal_blob_added(struct wpa_supplicant *wpa_s, 116 const char *name); 117void wpas_dbus_signal_blob_removed(struct wpa_supplicant *wpa_s, 118 const char *name); 119void wpas_dbus_signal_debug_level_changed(struct wpa_global *global); 120void wpas_dbus_signal_debug_timestamp_changed(struct wpa_global *global); 121void wpas_dbus_signal_debug_show_keys_changed(struct wpa_global *global); 122 123#else /* CONFIG_CTRL_IFACE_DBUS_NEW */ 124 125static inline int wpas_dbus_register_interface(struct wpa_supplicant *wpa_s) 126{ 127 return 0; 128} 129 130static inline int wpas_dbus_unregister_interface(struct wpa_supplicant *wpa_s) 131{ 132 return 0; 133} 134 135#define wpas_dbus_signal_state_changed(w, n, o) do { } while (0) 136 137static inline void wpas_dbus_signal_prop_changed(struct wpa_supplicant *wpa_s, 138 enum wpas_dbus_prop property) 139{ 140} 141 142static inline void wpas_dbus_bss_signal_prop_changed( 143 struct wpa_supplicant *wpa_s, enum wpas_dbus_bss_prop property, 144 unsigned int id) 145{ 146} 147 148static inline void wpas_dbus_signal_network_enabled_changed( 149 struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid) 150{ 151} 152 153static inline void wpas_dbus_signal_network_selected( 154 struct wpa_supplicant *wpa_s, int id) 155{ 156} 157 158static inline void wpas_dbus_signal_scan_done(struct wpa_supplicant *wpa_s, 159 int success) 160{ 161} 162 163static inline void wpas_dbus_signal_wps_cred(struct wpa_supplicant *wpa_s, 164 const struct wps_credential *cred) 165{ 166} 167 168static inline void wpas_dbus_signal_wps_event_m2d(struct wpa_supplicant *wpa_s, 169 struct wps_event_m2d *m2d) 170{ 171} 172 173static inline void wpas_dbus_signal_wps_event_fail( 174 struct wpa_supplicant *wpa_s, struct wps_event_fail *fail) 175{ 176} 177 178static inline void wpas_dbus_signal_wps_event_success( 179 struct wpa_supplicant *wpa_s) 180{ 181} 182 183static inline int wpas_dbus_register_network(struct wpa_supplicant *wpa_s, 184 struct wpa_ssid *ssid) 185{ 186 return 0; 187} 188 189static inline int wpas_dbus_unregister_network(struct wpa_supplicant *wpa_s, 190 int nid) 191{ 192 return 0; 193} 194 195static inline int wpas_dbus_unregister_bss(struct wpa_supplicant *wpa_s, 196 u8 bssid[ETH_ALEN], unsigned int id) 197{ 198 return 0; 199} 200 201static inline int wpas_dbus_register_bss(struct wpa_supplicant *wpa_s, 202 u8 bssid[ETH_ALEN], unsigned int id) 203{ 204 return 0; 205} 206 207static inline void wpas_dbus_signal_blob_added(struct wpa_supplicant *wpa_s, 208 const char *name) 209{ 210} 211 212static inline void wpas_dbus_signal_blob_removed(struct wpa_supplicant *wpa_s, 213 const char *name) 214{ 215} 216 217static inline void wpas_dbus_signal_debug_level_changed( 218 struct wpa_global *global) 219{ 220} 221 222static inline void wpas_dbus_signal_debug_timestamp_changed( 223 struct wpa_global *global) 224{ 225} 226 227static inline void wpas_dbus_signal_debug_show_keys_changed( 228 struct wpa_global *global) 229{ 230} 231 232#endif /* CONFIG_CTRL_IFACE_DBUS_NEW */ 233 234#endif /* CTRL_IFACE_DBUS_H_NEW */ 235