Hila Gonen | e35e4d2 | 2012-06-27 17:19:42 +0300 | [diff] [blame^] | 1 | #ifndef __CFG80211_RDEV_OPS |
| 2 | #define __CFG80211_RDEV_OPS |
| 3 | |
| 4 | #include <linux/rtnetlink.h> |
| 5 | #include <net/cfg80211.h> |
| 6 | #include "core.h" |
| 7 | |
| 8 | static inline int rdev_suspend(struct cfg80211_registered_device *rdev) |
| 9 | { |
| 10 | return rdev->ops->suspend(&rdev->wiphy, rdev->wowlan); |
| 11 | } |
| 12 | |
| 13 | static inline int rdev_resume(struct cfg80211_registered_device *rdev) |
| 14 | { |
| 15 | return rdev->ops->resume(&rdev->wiphy); |
| 16 | } |
| 17 | |
| 18 | static inline void rdev_set_wakeup(struct cfg80211_registered_device *rdev, |
| 19 | bool enabled) |
| 20 | { |
| 21 | rdev->ops->set_wakeup(&rdev->wiphy, enabled); |
| 22 | } |
| 23 | |
| 24 | static inline struct wireless_dev |
| 25 | *rdev_add_virtual_intf(struct cfg80211_registered_device *rdev, char *name, |
| 26 | enum nl80211_iftype type, u32 *flags, |
| 27 | struct vif_params *params) |
| 28 | { |
| 29 | return rdev->ops->add_virtual_intf(&rdev->wiphy, name, type, flags, |
| 30 | params); |
| 31 | } |
| 32 | |
| 33 | static inline int |
| 34 | rdev_del_virtual_intf(struct cfg80211_registered_device *rdev, |
| 35 | struct wireless_dev *wdev) |
| 36 | { |
| 37 | return rdev->ops->del_virtual_intf(&rdev->wiphy, wdev); |
| 38 | } |
| 39 | |
| 40 | static inline int |
| 41 | rdev_change_virtual_intf(struct cfg80211_registered_device *rdev, |
| 42 | struct net_device *dev, enum nl80211_iftype type, |
| 43 | u32 *flags, struct vif_params *params) |
| 44 | { |
| 45 | return rdev->ops->change_virtual_intf(&rdev->wiphy, dev, type, flags, |
| 46 | params); |
| 47 | } |
| 48 | |
| 49 | static inline int rdev_add_key(struct cfg80211_registered_device *rdev, |
| 50 | struct net_device *netdev, u8 key_index, |
| 51 | bool pairwise, const u8 *mac_addr, |
| 52 | struct key_params *params) |
| 53 | { |
| 54 | return rdev->ops->add_key(&rdev->wiphy, netdev, key_index, pairwise, |
| 55 | mac_addr, params); |
| 56 | } |
| 57 | |
| 58 | static inline int |
| 59 | rdev_get_key(struct cfg80211_registered_device *rdev, struct net_device *netdev, |
| 60 | u8 key_index, bool pairwise, const u8 *mac_addr, void *cookie, |
| 61 | void (*callback)(void *cookie, struct key_params*)) |
| 62 | { |
| 63 | return rdev->ops->get_key(&rdev->wiphy, netdev, key_index, pairwise, |
| 64 | mac_addr, cookie, callback); |
| 65 | } |
| 66 | |
| 67 | static inline int rdev_del_key(struct cfg80211_registered_device *rdev, |
| 68 | struct net_device *netdev, u8 key_index, |
| 69 | bool pairwise, const u8 *mac_addr) |
| 70 | { |
| 71 | return rdev->ops->del_key(&rdev->wiphy, netdev, key_index, pairwise, |
| 72 | mac_addr); |
| 73 | } |
| 74 | |
| 75 | static inline int |
| 76 | rdev_set_default_key(struct cfg80211_registered_device *rdev, |
| 77 | struct net_device *netdev, u8 key_index, bool unicast, |
| 78 | bool multicast) |
| 79 | { |
| 80 | return rdev->ops->set_default_key(&rdev->wiphy, netdev, key_index, |
| 81 | unicast, multicast); |
| 82 | } |
| 83 | |
| 84 | static inline int |
| 85 | rdev_set_default_mgmt_key(struct cfg80211_registered_device *rdev, |
| 86 | struct net_device *netdev, u8 key_index) |
| 87 | { |
| 88 | return rdev->ops->set_default_mgmt_key(&rdev->wiphy, netdev, |
| 89 | key_index); |
| 90 | } |
| 91 | |
| 92 | static inline int rdev_start_ap(struct cfg80211_registered_device *rdev, |
| 93 | struct net_device *dev, |
| 94 | struct cfg80211_ap_settings *settings) |
| 95 | { |
| 96 | return rdev->ops->start_ap(&rdev->wiphy, dev, settings); |
| 97 | } |
| 98 | |
| 99 | static inline int rdev_change_beacon(struct cfg80211_registered_device *rdev, |
| 100 | struct net_device *dev, |
| 101 | struct cfg80211_beacon_data *info) |
| 102 | { |
| 103 | return rdev->ops->change_beacon(&rdev->wiphy, dev, info); |
| 104 | } |
| 105 | |
| 106 | static inline int rdev_stop_ap(struct cfg80211_registered_device *rdev, |
| 107 | struct net_device *dev) |
| 108 | { |
| 109 | return rdev->ops->stop_ap(&rdev->wiphy, dev); |
| 110 | } |
| 111 | |
| 112 | static inline int rdev_add_station(struct cfg80211_registered_device *rdev, |
| 113 | struct net_device *dev, u8 *mac, |
| 114 | struct station_parameters *params) |
| 115 | { |
| 116 | return rdev->ops->add_station(&rdev->wiphy, dev, mac, params); |
| 117 | } |
| 118 | |
| 119 | static inline int rdev_del_station(struct cfg80211_registered_device *rdev, |
| 120 | struct net_device *dev, u8 *mac) |
| 121 | { |
| 122 | return rdev->ops->del_station(&rdev->wiphy, dev, mac); |
| 123 | } |
| 124 | |
| 125 | static inline int rdev_change_station(struct cfg80211_registered_device *rdev, |
| 126 | struct net_device *dev, u8 *mac, |
| 127 | struct station_parameters *params) |
| 128 | { |
| 129 | return rdev->ops->change_station(&rdev->wiphy, dev, mac, params); |
| 130 | } |
| 131 | |
| 132 | static inline int rdev_get_station(struct cfg80211_registered_device *rdev, |
| 133 | struct net_device *dev, u8 *mac, |
| 134 | struct station_info *sinfo) |
| 135 | { |
| 136 | return rdev->ops->get_station(&rdev->wiphy, dev, mac, sinfo); |
| 137 | } |
| 138 | |
| 139 | static inline int rdev_dump_station(struct cfg80211_registered_device *rdev, |
| 140 | struct net_device *dev, int idx, u8 *mac, |
| 141 | struct station_info *sinfo) |
| 142 | { |
| 143 | return rdev->ops->dump_station(&rdev->wiphy, dev, idx, mac, sinfo); |
| 144 | } |
| 145 | |
| 146 | static inline int rdev_add_mpath(struct cfg80211_registered_device *rdev, |
| 147 | struct net_device *dev, u8 *dst, u8 *next_hop) |
| 148 | { |
| 149 | return rdev->ops->add_mpath(&rdev->wiphy, dev, dst, next_hop); |
| 150 | } |
| 151 | |
| 152 | static inline int rdev_del_mpath(struct cfg80211_registered_device *rdev, |
| 153 | struct net_device *dev, u8 *dst) |
| 154 | { |
| 155 | return rdev->ops->del_mpath(&rdev->wiphy, dev, dst); |
| 156 | } |
| 157 | |
| 158 | static inline int rdev_change_mpath(struct cfg80211_registered_device *rdev, |
| 159 | struct net_device *dev, u8 *dst, |
| 160 | u8 *next_hop) |
| 161 | { |
| 162 | return rdev->ops->change_mpath(&rdev->wiphy, dev, dst, next_hop); |
| 163 | } |
| 164 | |
| 165 | static inline int rdev_get_mpath(struct cfg80211_registered_device *rdev, |
| 166 | struct net_device *dev, u8 *dst, u8 *next_hop, |
| 167 | struct mpath_info *pinfo) |
| 168 | { |
| 169 | return rdev->ops->get_mpath(&rdev->wiphy, dev, dst, next_hop, pinfo); |
| 170 | } |
| 171 | |
| 172 | static inline int rdev_dump_mpath(struct cfg80211_registered_device *rdev, |
| 173 | struct net_device *dev, int idx, u8 *dst, |
| 174 | u8 *next_hop, struct mpath_info *pinfo) |
| 175 | |
| 176 | { |
| 177 | return rdev->ops->dump_mpath(&rdev->wiphy, dev, idx, dst, next_hop, |
| 178 | pinfo); |
| 179 | } |
| 180 | |
| 181 | static inline int |
| 182 | rdev_get_mesh_config(struct cfg80211_registered_device *rdev, |
| 183 | struct net_device *dev, struct mesh_config *conf) |
| 184 | { |
| 185 | return rdev->ops->get_mesh_config(&rdev->wiphy, dev, conf); |
| 186 | } |
| 187 | |
| 188 | static inline int |
| 189 | rdev_update_mesh_config(struct cfg80211_registered_device *rdev, |
| 190 | struct net_device *dev, u32 mask, |
| 191 | const struct mesh_config *nconf) |
| 192 | { |
| 193 | return rdev->ops->update_mesh_config(&rdev->wiphy, dev, mask, nconf); |
| 194 | } |
| 195 | |
| 196 | static inline int rdev_join_mesh(struct cfg80211_registered_device *rdev, |
| 197 | struct net_device *dev, |
| 198 | const struct mesh_config *conf, |
| 199 | const struct mesh_setup *setup) |
| 200 | { |
| 201 | return rdev->ops->join_mesh(&rdev->wiphy, dev, conf, setup); |
| 202 | } |
| 203 | |
| 204 | |
| 205 | static inline int rdev_leave_mesh(struct cfg80211_registered_device *rdev, |
| 206 | struct net_device *dev) |
| 207 | { |
| 208 | return rdev->ops->leave_mesh(&rdev->wiphy, dev); |
| 209 | } |
| 210 | |
| 211 | static inline int rdev_change_bss(struct cfg80211_registered_device *rdev, |
| 212 | struct net_device *dev, |
| 213 | struct bss_parameters *params) |
| 214 | |
| 215 | { |
| 216 | return rdev->ops->change_bss(&rdev->wiphy, dev, params); |
| 217 | } |
| 218 | |
| 219 | static inline int rdev_set_txq_params(struct cfg80211_registered_device *rdev, |
| 220 | struct net_device *dev, |
| 221 | struct ieee80211_txq_params *params) |
| 222 | |
| 223 | { |
| 224 | return rdev->ops->set_txq_params(&rdev->wiphy, dev, params); |
| 225 | } |
| 226 | |
| 227 | static inline int |
| 228 | rdev_libertas_set_mesh_channel(struct cfg80211_registered_device *rdev, |
| 229 | struct net_device *dev, |
| 230 | struct ieee80211_channel *chan) |
| 231 | { |
| 232 | return rdev->ops->libertas_set_mesh_channel(&rdev->wiphy, dev, chan); |
| 233 | } |
| 234 | |
| 235 | static inline int |
| 236 | rdev_set_monitor_channel(struct cfg80211_registered_device *rdev, |
| 237 | struct ieee80211_channel *chan, |
| 238 | enum nl80211_channel_type channel_type) |
| 239 | { |
| 240 | return rdev->ops->set_monitor_channel(&rdev->wiphy, chan, |
| 241 | channel_type); |
| 242 | } |
| 243 | |
| 244 | static inline int rdev_scan(struct cfg80211_registered_device *rdev, |
| 245 | struct cfg80211_scan_request *request) |
| 246 | { |
| 247 | return rdev->ops->scan(&rdev->wiphy, request); |
| 248 | } |
| 249 | |
| 250 | static inline int rdev_auth(struct cfg80211_registered_device *rdev, |
| 251 | struct net_device *dev, |
| 252 | struct cfg80211_auth_request *req) |
| 253 | { |
| 254 | return rdev->ops->auth(&rdev->wiphy, dev, req); |
| 255 | } |
| 256 | |
| 257 | static inline int rdev_assoc(struct cfg80211_registered_device *rdev, |
| 258 | struct net_device *dev, |
| 259 | struct cfg80211_assoc_request *req) |
| 260 | { |
| 261 | return rdev->ops->assoc(&rdev->wiphy, dev, req); |
| 262 | } |
| 263 | |
| 264 | static inline int rdev_deauth(struct cfg80211_registered_device *rdev, |
| 265 | struct net_device *dev, |
| 266 | struct cfg80211_deauth_request *req) |
| 267 | { |
| 268 | return rdev->ops->deauth(&rdev->wiphy, dev, req); |
| 269 | } |
| 270 | |
| 271 | static inline int rdev_disassoc(struct cfg80211_registered_device *rdev, |
| 272 | struct net_device *dev, |
| 273 | struct cfg80211_disassoc_request *req) |
| 274 | { |
| 275 | return rdev->ops->disassoc(&rdev->wiphy, dev, req); |
| 276 | } |
| 277 | |
| 278 | static inline int rdev_connect(struct cfg80211_registered_device *rdev, |
| 279 | struct net_device *dev, |
| 280 | struct cfg80211_connect_params *sme) |
| 281 | { |
| 282 | return rdev->ops->connect(&rdev->wiphy, dev, sme); |
| 283 | } |
| 284 | |
| 285 | static inline int rdev_disconnect(struct cfg80211_registered_device *rdev, |
| 286 | struct net_device *dev, u16 reason_code) |
| 287 | { |
| 288 | return rdev->ops->disconnect(&rdev->wiphy, dev, reason_code); |
| 289 | } |
| 290 | |
| 291 | static inline int rdev_join_ibss(struct cfg80211_registered_device *rdev, |
| 292 | struct net_device *dev, |
| 293 | struct cfg80211_ibss_params *params) |
| 294 | { |
| 295 | return rdev->ops->join_ibss(&rdev->wiphy, dev, params); |
| 296 | } |
| 297 | |
| 298 | static inline int rdev_leave_ibss(struct cfg80211_registered_device *rdev, |
| 299 | struct net_device *dev) |
| 300 | { |
| 301 | return rdev->ops->leave_ibss(&rdev->wiphy, dev); |
| 302 | } |
| 303 | |
| 304 | static inline int |
| 305 | rdev_set_wiphy_params(struct cfg80211_registered_device *rdev, u32 changed) |
| 306 | { |
| 307 | return rdev->ops->set_wiphy_params(&rdev->wiphy, changed); |
| 308 | } |
| 309 | |
| 310 | static inline int rdev_set_tx_power(struct cfg80211_registered_device *rdev, |
| 311 | enum nl80211_tx_power_setting type, int mbm) |
| 312 | { |
| 313 | return rdev->ops->set_tx_power(&rdev->wiphy, type, mbm); |
| 314 | } |
| 315 | |
| 316 | static inline int rdev_get_tx_power(struct cfg80211_registered_device *rdev, |
| 317 | int *dbm) |
| 318 | { |
| 319 | return rdev->ops->get_tx_power(&rdev->wiphy, dbm); |
| 320 | } |
| 321 | |
| 322 | static inline int rdev_set_wds_peer(struct cfg80211_registered_device *rdev, |
| 323 | struct net_device *dev, const u8 *addr) |
| 324 | { |
| 325 | return rdev->ops->set_wds_peer(&rdev->wiphy, dev, addr); |
| 326 | } |
| 327 | |
| 328 | static inline void rdev_rfkill_poll(struct cfg80211_registered_device *rdev) |
| 329 | { |
| 330 | rdev->ops->rfkill_poll(&rdev->wiphy); |
| 331 | } |
| 332 | |
| 333 | |
| 334 | #ifdef CONFIG_NL80211_TESTMODE |
| 335 | static inline int rdev_testmode_cmd(struct cfg80211_registered_device *rdev, |
| 336 | void *data, int len) |
| 337 | { |
| 338 | return rdev->ops->testmode_cmd(&rdev->wiphy, data, len); |
| 339 | } |
| 340 | |
| 341 | static inline int rdev_testmode_dump(struct cfg80211_registered_device *rdev, |
| 342 | struct sk_buff *skb, |
| 343 | struct netlink_callback *cb, void *data, |
| 344 | int len) |
| 345 | { |
| 346 | return rdev->ops->testmode_dump(&rdev->wiphy, skb, cb, data, |
| 347 | len); |
| 348 | } |
| 349 | #endif |
| 350 | |
| 351 | static inline int |
| 352 | rdev_set_bitrate_mask(struct cfg80211_registered_device *rdev, |
| 353 | struct net_device *dev, const u8 *peer, |
| 354 | const struct cfg80211_bitrate_mask *mask) |
| 355 | { |
| 356 | return rdev->ops->set_bitrate_mask(&rdev->wiphy, dev, peer, mask); |
| 357 | } |
| 358 | |
| 359 | static inline int rdev_dump_survey(struct cfg80211_registered_device *rdev, |
| 360 | struct net_device *netdev, int idx, |
| 361 | struct survey_info *info) |
| 362 | { |
| 363 | return rdev->ops->dump_survey(&rdev->wiphy, netdev, idx, info); |
| 364 | } |
| 365 | |
| 366 | static inline int rdev_set_pmksa(struct cfg80211_registered_device *rdev, |
| 367 | struct net_device *netdev, |
| 368 | struct cfg80211_pmksa *pmksa) |
| 369 | { |
| 370 | return rdev->ops->set_pmksa(&rdev->wiphy, netdev, pmksa); |
| 371 | } |
| 372 | |
| 373 | static inline int rdev_del_pmksa(struct cfg80211_registered_device *rdev, |
| 374 | struct net_device *netdev, |
| 375 | struct cfg80211_pmksa *pmksa) |
| 376 | { |
| 377 | return rdev->ops->del_pmksa(&rdev->wiphy, netdev, pmksa); |
| 378 | } |
| 379 | |
| 380 | static inline int rdev_flush_pmksa(struct cfg80211_registered_device *rdev, |
| 381 | struct net_device *netdev) |
| 382 | { |
| 383 | return rdev->ops->flush_pmksa(&rdev->wiphy, netdev); |
| 384 | } |
| 385 | |
| 386 | static inline int |
| 387 | rdev_remain_on_channel(struct cfg80211_registered_device *rdev, |
| 388 | struct wireless_dev *wdev, |
| 389 | struct ieee80211_channel *chan, |
| 390 | enum nl80211_channel_type channel_type, |
| 391 | unsigned int duration, u64 *cookie) |
| 392 | { |
| 393 | return rdev->ops->remain_on_channel(&rdev->wiphy, wdev, chan, |
| 394 | channel_type, duration, cookie); |
| 395 | } |
| 396 | |
| 397 | static inline int |
| 398 | rdev_cancel_remain_on_channel(struct cfg80211_registered_device *rdev, |
| 399 | struct wireless_dev *wdev, u64 cookie) |
| 400 | { |
| 401 | return rdev->ops->cancel_remain_on_channel(&rdev->wiphy, wdev, cookie); |
| 402 | } |
| 403 | |
| 404 | static inline int rdev_mgmt_tx(struct cfg80211_registered_device *rdev, |
| 405 | struct wireless_dev *wdev, |
| 406 | struct ieee80211_channel *chan, bool offchan, |
| 407 | enum nl80211_channel_type channel_type, |
| 408 | bool channel_type_valid, unsigned int wait, |
| 409 | const u8 *buf, size_t len, bool no_cck, |
| 410 | bool dont_wait_for_ack, u64 *cookie) |
| 411 | { |
| 412 | return rdev->ops->mgmt_tx(&rdev->wiphy, wdev, chan, offchan, |
| 413 | channel_type, channel_type_valid, wait, buf, |
| 414 | len, no_cck, dont_wait_for_ack, cookie); |
| 415 | } |
| 416 | |
| 417 | static inline int |
| 418 | rdev_mgmt_tx_cancel_wait(struct cfg80211_registered_device *rdev, |
| 419 | struct wireless_dev *wdev, u64 cookie) |
| 420 | { |
| 421 | return rdev->ops->mgmt_tx_cancel_wait(&rdev->wiphy, wdev, cookie); |
| 422 | } |
| 423 | |
| 424 | static inline int rdev_set_power_mgmt(struct cfg80211_registered_device *rdev, |
| 425 | struct net_device *dev, bool enabled, |
| 426 | int timeout) |
| 427 | { |
| 428 | return rdev->ops->set_power_mgmt(&rdev->wiphy, dev, enabled, timeout); |
| 429 | } |
| 430 | |
| 431 | static inline int |
| 432 | rdev_set_cqm_rssi_config(struct cfg80211_registered_device *rdev, |
| 433 | struct net_device *dev, s32 rssi_thold, u32 rssi_hyst) |
| 434 | { |
| 435 | return rdev->ops->set_cqm_rssi_config(&rdev->wiphy, dev, rssi_thold, |
| 436 | rssi_hyst); |
| 437 | } |
| 438 | |
| 439 | static inline int |
| 440 | rdev_set_cqm_txe_config(struct cfg80211_registered_device *rdev, |
| 441 | struct net_device *dev, u32 rate, u32 pkts, u32 intvl) |
| 442 | { |
| 443 | return rdev->ops->set_cqm_txe_config(&rdev->wiphy, dev, rate, pkts, |
| 444 | intvl); |
| 445 | } |
| 446 | |
| 447 | static inline void |
| 448 | rdev_mgmt_frame_register(struct cfg80211_registered_device *rdev, |
| 449 | struct wireless_dev *wdev, u16 frame_type, bool reg) |
| 450 | { |
| 451 | rdev->ops->mgmt_frame_register(&rdev->wiphy, wdev , frame_type, |
| 452 | reg); |
| 453 | } |
| 454 | |
| 455 | static inline int rdev_set_antenna(struct cfg80211_registered_device *rdev, |
| 456 | u32 tx_ant, u32 rx_ant) |
| 457 | { |
| 458 | return rdev->ops->set_antenna(&rdev->wiphy, tx_ant, rx_ant); |
| 459 | } |
| 460 | |
| 461 | static inline int rdev_get_antenna(struct cfg80211_registered_device *rdev, |
| 462 | u32 *tx_ant, u32 *rx_ant) |
| 463 | { |
| 464 | return rdev->ops->get_antenna(&rdev->wiphy, tx_ant, rx_ant); |
| 465 | } |
| 466 | |
| 467 | static inline int rdev_set_ringparam(struct cfg80211_registered_device *rdev, |
| 468 | u32 tx, u32 rx) |
| 469 | { |
| 470 | return rdev->ops->set_ringparam(&rdev->wiphy, tx, rx); |
| 471 | } |
| 472 | |
| 473 | static inline void rdev_get_ringparam(struct cfg80211_registered_device *rdev, |
| 474 | u32 *tx, u32 *tx_max, u32 *rx, |
| 475 | u32 *rx_max) |
| 476 | { |
| 477 | rdev->ops->get_ringparam(&rdev->wiphy, tx, tx_max, rx, rx_max); |
| 478 | } |
| 479 | |
| 480 | static inline int |
| 481 | rdev_sched_scan_start(struct cfg80211_registered_device *rdev, |
| 482 | struct net_device *dev, |
| 483 | struct cfg80211_sched_scan_request *request) |
| 484 | { |
| 485 | return rdev->ops->sched_scan_start(&rdev->wiphy, dev, request); |
| 486 | } |
| 487 | |
| 488 | static inline int rdev_sched_scan_stop(struct cfg80211_registered_device *rdev, |
| 489 | struct net_device *dev) |
| 490 | { |
| 491 | return rdev->ops->sched_scan_stop(&rdev->wiphy, dev); |
| 492 | } |
| 493 | |
| 494 | static inline int rdev_set_rekey_data(struct cfg80211_registered_device *rdev, |
| 495 | struct net_device *dev, |
| 496 | struct cfg80211_gtk_rekey_data *data) |
| 497 | { |
| 498 | return rdev->ops->set_rekey_data(&rdev->wiphy, dev, data); |
| 499 | } |
| 500 | |
| 501 | static inline int rdev_tdls_mgmt(struct cfg80211_registered_device *rdev, |
| 502 | struct net_device *dev, u8 *peer, |
| 503 | u8 action_code, u8 dialog_token, |
| 504 | u16 status_code, const u8 *buf, size_t len) |
| 505 | { |
| 506 | return rdev->ops->tdls_mgmt(&rdev->wiphy, dev, peer, action_code, |
| 507 | dialog_token, status_code, buf, len); |
| 508 | } |
| 509 | |
| 510 | static inline int rdev_tdls_oper(struct cfg80211_registered_device *rdev, |
| 511 | struct net_device *dev, u8 *peer, |
| 512 | enum nl80211_tdls_operation oper) |
| 513 | { |
| 514 | return rdev->ops->tdls_oper(&rdev->wiphy, dev, peer, oper); |
| 515 | } |
| 516 | |
| 517 | static inline int rdev_probe_client(struct cfg80211_registered_device *rdev, |
| 518 | struct net_device *dev, const u8 *peer, |
| 519 | u64 *cookie) |
| 520 | { |
| 521 | return rdev->ops->probe_client(&rdev->wiphy, dev, peer, cookie); |
| 522 | } |
| 523 | |
| 524 | static inline int rdev_set_noack_map(struct cfg80211_registered_device *rdev, |
| 525 | struct net_device *dev, u16 noack_map) |
| 526 | { |
| 527 | return rdev->ops->set_noack_map(&rdev->wiphy, dev, noack_map); |
| 528 | } |
| 529 | |
| 530 | static inline int |
| 531 | rdev_get_et_sset_count(struct cfg80211_registered_device *rdev, |
| 532 | struct net_device *dev, int sset) |
| 533 | { |
| 534 | return rdev->ops->get_et_sset_count(&rdev->wiphy, dev, sset); |
| 535 | } |
| 536 | |
| 537 | static inline void rdev_get_et_stats(struct cfg80211_registered_device *rdev, |
| 538 | struct net_device *dev, |
| 539 | struct ethtool_stats *stats, u64 *data) |
| 540 | { |
| 541 | rdev->ops->get_et_stats(&rdev->wiphy, dev, stats, data); |
| 542 | } |
| 543 | |
| 544 | static inline void rdev_get_et_strings(struct cfg80211_registered_device *rdev, |
| 545 | struct net_device *dev, u32 sset, |
| 546 | u8 *data) |
| 547 | { |
| 548 | rdev->ops->get_et_strings(&rdev->wiphy, dev, sset, data); |
| 549 | } |
| 550 | |
| 551 | static inline struct ieee80211_channel |
| 552 | *rdev_get_channel(struct cfg80211_registered_device *rdev, |
| 553 | struct wireless_dev *wdev, enum nl80211_channel_type *type) |
| 554 | { |
| 555 | return rdev->ops->get_channel(&rdev->wiphy, wdev, type); |
| 556 | } |
| 557 | |
| 558 | #endif /* __CFG80211_RDEV_OPS */ |