diff options
author | David S. Miller <davem@davemloft.net> | 2011-04-12 19:16:02 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-04-12 19:16:02 -0400 |
commit | a7e70158884629898d79709622a66b8ef99e4018 (patch) | |
tree | bd0cd03816f85f5bcef84000e01b0f9701f063ed /include | |
parent | 24743537d3f784a8b3014e934fad0a9c45e4e789 (diff) | |
parent | 252f4bf400df1712408fe83ba199a66a1b57ab1d (diff) |
Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/ath9k_platform.h | 5 | ||||
-rw-r--r-- | include/linux/ieee80211.h | 9 | ||||
-rw-r--r-- | include/linux/nl80211.h | 35 | ||||
-rw-r--r-- | include/linux/ssb/ssb.h | 2 | ||||
-rw-r--r-- | include/net/bluetooth/hci.h | 40 | ||||
-rw-r--r-- | include/net/bluetooth/hci_core.h | 25 | ||||
-rw-r--r-- | include/net/bluetooth/l2cap.h | 2 | ||||
-rw-r--r-- | include/net/bluetooth/mgmt.h | 47 | ||||
-rw-r--r-- | include/net/cfg80211.h | 43 |
9 files changed, 200 insertions, 8 deletions
diff --git a/include/linux/ath9k_platform.h b/include/linux/ath9k_platform.h index b847fc7b93f9..020387a114e3 100644 --- a/include/linux/ath9k_platform.h +++ b/include/linux/ath9k_platform.h | |||
@@ -23,6 +23,11 @@ | |||
23 | 23 | ||
24 | struct ath9k_platform_data { | 24 | struct ath9k_platform_data { |
25 | u16 eeprom_data[ATH9K_PLAT_EEP_MAX_WORDS]; | 25 | u16 eeprom_data[ATH9K_PLAT_EEP_MAX_WORDS]; |
26 | u8 *macaddr; | ||
27 | |||
28 | int led_pin; | ||
29 | u32 gpio_mask; | ||
30 | u32 gpio_val; | ||
26 | }; | 31 | }; |
27 | 32 | ||
28 | #endif /* _LINUX_ATH9K_PLATFORM_H */ | 33 | #endif /* _LINUX_ATH9K_PLATFORM_H */ |
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index 2d1c6117d92c..79690b710665 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h | |||
@@ -884,6 +884,15 @@ struct ieee80211_ht_cap { | |||
884 | #define IEEE80211_HT_CAP_40MHZ_INTOLERANT 0x4000 | 884 | #define IEEE80211_HT_CAP_40MHZ_INTOLERANT 0x4000 |
885 | #define IEEE80211_HT_CAP_LSIG_TXOP_PROT 0x8000 | 885 | #define IEEE80211_HT_CAP_LSIG_TXOP_PROT 0x8000 |
886 | 886 | ||
887 | /* 802.11n HT extended capabilities masks (for extended_ht_cap_info) */ | ||
888 | #define IEEE80211_HT_EXT_CAP_PCO 0x0001 | ||
889 | #define IEEE80211_HT_EXT_CAP_PCO_TIME 0x0006 | ||
890 | #define IEEE80211_HT_EXT_CAP_PCO_TIME_SHIFT 1 | ||
891 | #define IEEE80211_HT_EXT_CAP_MCS_FB 0x0300 | ||
892 | #define IEEE80211_HT_EXT_CAP_MCS_FB_SHIFT 8 | ||
893 | #define IEEE80211_HT_EXT_CAP_HTC_SUP 0x0400 | ||
894 | #define IEEE80211_HT_EXT_CAP_RD_RESPONDER 0x0800 | ||
895 | |||
887 | /* 802.11n HT capability AMPDU settings (for ampdu_params_info) */ | 896 | /* 802.11n HT capability AMPDU settings (for ampdu_params_info) */ |
888 | #define IEEE80211_HT_AMPDU_PARM_FACTOR 0x03 | 897 | #define IEEE80211_HT_AMPDU_PARM_FACTOR 0x03 |
889 | #define IEEE80211_HT_AMPDU_PARM_DENSITY 0x1C | 898 | #define IEEE80211_HT_AMPDU_PARM_DENSITY 0x1C |
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h index bbfa1093f606..1832c27c520c 100644 --- a/include/linux/nl80211.h +++ b/include/linux/nl80211.h | |||
@@ -1222,6 +1222,36 @@ enum nl80211_rate_info { | |||
1222 | }; | 1222 | }; |
1223 | 1223 | ||
1224 | /** | 1224 | /** |
1225 | * enum nl80211_sta_bss_param - BSS information collected by STA | ||
1226 | * | ||
1227 | * These attribute types are used with %NL80211_STA_INFO_BSS_PARAM | ||
1228 | * when getting information about the bitrate of a station. | ||
1229 | * | ||
1230 | * @__NL80211_STA_BSS_PARAM_INVALID: attribute number 0 is reserved | ||
1231 | * @NL80211_STA_BSS_PARAM_CTS_PROT: whether CTS protection is enabled (flag) | ||
1232 | * @NL80211_STA_BSS_PARAM_SHORT_PREAMBLE: whether short preamble is enabled | ||
1233 | * (flag) | ||
1234 | * @NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME: whether short slot time is enabled | ||
1235 | * (flag) | ||
1236 | * @NL80211_STA_BSS_PARAM_DTIM_PERIOD: DTIM period for beaconing (u8) | ||
1237 | * @NL80211_STA_BSS_PARAM_BEACON_INTERVAL: Beacon interval (u16) | ||
1238 | * @NL80211_STA_BSS_PARAM_MAX: highest sta_bss_param number currently defined | ||
1239 | * @__NL80211_STA_BSS_PARAM_AFTER_LAST: internal use | ||
1240 | */ | ||
1241 | enum nl80211_sta_bss_param { | ||
1242 | __NL80211_STA_BSS_PARAM_INVALID, | ||
1243 | NL80211_STA_BSS_PARAM_CTS_PROT, | ||
1244 | NL80211_STA_BSS_PARAM_SHORT_PREAMBLE, | ||
1245 | NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME, | ||
1246 | NL80211_STA_BSS_PARAM_DTIM_PERIOD, | ||
1247 | NL80211_STA_BSS_PARAM_BEACON_INTERVAL, | ||
1248 | |||
1249 | /* keep last */ | ||
1250 | __NL80211_STA_BSS_PARAM_AFTER_LAST, | ||
1251 | NL80211_STA_BSS_PARAM_MAX = __NL80211_STA_BSS_PARAM_AFTER_LAST - 1 | ||
1252 | }; | ||
1253 | |||
1254 | /** | ||
1225 | * enum nl80211_sta_info - station information | 1255 | * enum nl80211_sta_info - station information |
1226 | * | 1256 | * |
1227 | * These attribute types are used with %NL80211_ATTR_STA_INFO | 1257 | * These attribute types are used with %NL80211_ATTR_STA_INFO |
@@ -1233,7 +1263,7 @@ enum nl80211_rate_info { | |||
1233 | * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station) | 1263 | * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station) |
1234 | * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm) | 1264 | * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm) |
1235 | * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute | 1265 | * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute |
1236 | * containing info as possible, see &enum nl80211_sta_info_txrate. | 1266 | * containing info as possible, see &enum nl80211_rate_info |
1237 | * @NL80211_STA_INFO_RX_PACKETS: total received packet (u32, from this station) | 1267 | * @NL80211_STA_INFO_RX_PACKETS: total received packet (u32, from this station) |
1238 | * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (u32, to this | 1268 | * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (u32, to this |
1239 | * station) | 1269 | * station) |
@@ -1245,6 +1275,8 @@ enum nl80211_rate_info { | |||
1245 | * @NL80211_STA_INFO_PLINK_STATE: peer link state for the station | 1275 | * @NL80211_STA_INFO_PLINK_STATE: peer link state for the station |
1246 | * @NL80211_STA_INFO_RX_BITRATE: last unicast data frame rx rate, nested | 1276 | * @NL80211_STA_INFO_RX_BITRATE: last unicast data frame rx rate, nested |
1247 | * attribute, like NL80211_STA_INFO_TX_BITRATE. | 1277 | * attribute, like NL80211_STA_INFO_TX_BITRATE. |
1278 | * @NL80211_STA_INFO_BSS_PARAM: current station's view of BSS, nested attribute | ||
1279 | * containing info as possible, see &enum nl80211_sta_bss_param | ||
1248 | * @__NL80211_STA_INFO_AFTER_LAST: internal | 1280 | * @__NL80211_STA_INFO_AFTER_LAST: internal |
1249 | * @NL80211_STA_INFO_MAX: highest possible station info attribute | 1281 | * @NL80211_STA_INFO_MAX: highest possible station info attribute |
1250 | */ | 1282 | */ |
@@ -1264,6 +1296,7 @@ enum nl80211_sta_info { | |||
1264 | NL80211_STA_INFO_TX_FAILED, | 1296 | NL80211_STA_INFO_TX_FAILED, |
1265 | NL80211_STA_INFO_SIGNAL_AVG, | 1297 | NL80211_STA_INFO_SIGNAL_AVG, |
1266 | NL80211_STA_INFO_RX_BITRATE, | 1298 | NL80211_STA_INFO_RX_BITRATE, |
1299 | NL80211_STA_INFO_BSS_PARAM, | ||
1267 | 1300 | ||
1268 | /* keep last */ | 1301 | /* keep last */ |
1269 | __NL80211_STA_INFO_AFTER_LAST, | 1302 | __NL80211_STA_INFO_AFTER_LAST, |
diff --git a/include/linux/ssb/ssb.h b/include/linux/ssb/ssb.h index 9659eff52ca2..7e99b348834c 100644 --- a/include/linux/ssb/ssb.h +++ b/include/linux/ssb/ssb.h | |||
@@ -308,7 +308,7 @@ struct ssb_bus { | |||
308 | 308 | ||
309 | /* ID information about the Chip. */ | 309 | /* ID information about the Chip. */ |
310 | u16 chip_id; | 310 | u16 chip_id; |
311 | u16 chip_rev; | 311 | u8 chip_rev; |
312 | u16 sprom_offset; | 312 | u16 sprom_offset; |
313 | u16 sprom_size; /* number of words in sprom */ | 313 | u16 sprom_size; /* number of words in sprom */ |
314 | u8 chip_package; | 314 | u8 chip_package; |
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h index 2c0d309c7381..6138e313d175 100644 --- a/include/net/bluetooth/hci.h +++ b/include/net/bluetooth/hci.h | |||
@@ -428,6 +428,18 @@ struct hci_rp_user_confirm_reply { | |||
428 | 428 | ||
429 | #define HCI_OP_USER_CONFIRM_NEG_REPLY 0x042d | 429 | #define HCI_OP_USER_CONFIRM_NEG_REPLY 0x042d |
430 | 430 | ||
431 | #define HCI_OP_REMOTE_OOB_DATA_REPLY 0x0430 | ||
432 | struct hci_cp_remote_oob_data_reply { | ||
433 | bdaddr_t bdaddr; | ||
434 | __u8 hash[16]; | ||
435 | __u8 randomizer[16]; | ||
436 | } __packed; | ||
437 | |||
438 | #define HCI_OP_REMOTE_OOB_DATA_NEG_REPLY 0x0433 | ||
439 | struct hci_cp_remote_oob_data_neg_reply { | ||
440 | bdaddr_t bdaddr; | ||
441 | } __packed; | ||
442 | |||
431 | #define HCI_OP_IO_CAPABILITY_NEG_REPLY 0x0434 | 443 | #define HCI_OP_IO_CAPABILITY_NEG_REPLY 0x0434 |
432 | struct hci_cp_io_capability_neg_reply { | 444 | struct hci_cp_io_capability_neg_reply { |
433 | bdaddr_t bdaddr; | 445 | bdaddr_t bdaddr; |
@@ -537,15 +549,17 @@ struct hci_cp_delete_stored_link_key { | |||
537 | __u8 delete_all; | 549 | __u8 delete_all; |
538 | } __packed; | 550 | } __packed; |
539 | 551 | ||
552 | #define HCI_MAX_NAME_LENGTH 248 | ||
553 | |||
540 | #define HCI_OP_WRITE_LOCAL_NAME 0x0c13 | 554 | #define HCI_OP_WRITE_LOCAL_NAME 0x0c13 |
541 | struct hci_cp_write_local_name { | 555 | struct hci_cp_write_local_name { |
542 | __u8 name[248]; | 556 | __u8 name[HCI_MAX_NAME_LENGTH]; |
543 | } __packed; | 557 | } __packed; |
544 | 558 | ||
545 | #define HCI_OP_READ_LOCAL_NAME 0x0c14 | 559 | #define HCI_OP_READ_LOCAL_NAME 0x0c14 |
546 | struct hci_rp_read_local_name { | 560 | struct hci_rp_read_local_name { |
547 | __u8 status; | 561 | __u8 status; |
548 | __u8 name[248]; | 562 | __u8 name[HCI_MAX_NAME_LENGTH]; |
549 | } __packed; | 563 | } __packed; |
550 | 564 | ||
551 | #define HCI_OP_WRITE_CA_TIMEOUT 0x0c16 | 565 | #define HCI_OP_WRITE_CA_TIMEOUT 0x0c16 |
@@ -602,6 +616,14 @@ struct hci_cp_host_buffer_size { | |||
602 | 616 | ||
603 | #define HCI_OP_WRITE_INQUIRY_MODE 0x0c45 | 617 | #define HCI_OP_WRITE_INQUIRY_MODE 0x0c45 |
604 | 618 | ||
619 | #define HCI_MAX_EIR_LENGTH 240 | ||
620 | |||
621 | #define HCI_OP_WRITE_EIR 0x0c52 | ||
622 | struct hci_cp_write_eir { | ||
623 | uint8_t fec; | ||
624 | uint8_t data[HCI_MAX_EIR_LENGTH]; | ||
625 | } __packed; | ||
626 | |||
605 | #define HCI_OP_READ_SSP_MODE 0x0c55 | 627 | #define HCI_OP_READ_SSP_MODE 0x0c55 |
606 | struct hci_rp_read_ssp_mode { | 628 | struct hci_rp_read_ssp_mode { |
607 | __u8 status; | 629 | __u8 status; |
@@ -613,6 +635,13 @@ struct hci_cp_write_ssp_mode { | |||
613 | __u8 mode; | 635 | __u8 mode; |
614 | } __packed; | 636 | } __packed; |
615 | 637 | ||
638 | #define HCI_OP_READ_LOCAL_OOB_DATA 0x0c57 | ||
639 | struct hci_rp_read_local_oob_data { | ||
640 | __u8 status; | ||
641 | __u8 hash[16]; | ||
642 | __u8 randomizer[16]; | ||
643 | } __packed; | ||
644 | |||
616 | #define HCI_OP_READ_INQ_RSP_TX_POWER 0x0c58 | 645 | #define HCI_OP_READ_INQ_RSP_TX_POWER 0x0c58 |
617 | 646 | ||
618 | #define HCI_OP_READ_LOCAL_VERSION 0x1001 | 647 | #define HCI_OP_READ_LOCAL_VERSION 0x1001 |
@@ -747,7 +776,7 @@ struct hci_ev_auth_complete { | |||
747 | struct hci_ev_remote_name { | 776 | struct hci_ev_remote_name { |
748 | __u8 status; | 777 | __u8 status; |
749 | bdaddr_t bdaddr; | 778 | bdaddr_t bdaddr; |
750 | __u8 name[248]; | 779 | __u8 name[HCI_MAX_NAME_LENGTH]; |
751 | } __packed; | 780 | } __packed; |
752 | 781 | ||
753 | #define HCI_EV_ENCRYPT_CHANGE 0x08 | 782 | #define HCI_EV_ENCRYPT_CHANGE 0x08 |
@@ -955,6 +984,11 @@ struct hci_ev_user_confirm_req { | |||
955 | __le32 passkey; | 984 | __le32 passkey; |
956 | } __packed; | 985 | } __packed; |
957 | 986 | ||
987 | #define HCI_EV_REMOTE_OOB_DATA_REQUEST 0x35 | ||
988 | struct hci_ev_remote_oob_data_request { | ||
989 | bdaddr_t bdaddr; | ||
990 | } __packed; | ||
991 | |||
958 | #define HCI_EV_SIMPLE_PAIR_COMPLETE 0x36 | 992 | #define HCI_EV_SIMPLE_PAIR_COMPLETE 0x36 |
959 | struct hci_ev_simple_pair_complete { | 993 | struct hci_ev_simple_pair_complete { |
960 | __u8 status; | 994 | __u8 status; |
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h index 441dadbf6a89..4093133c1283 100644 --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h | |||
@@ -82,6 +82,13 @@ struct link_key { | |||
82 | u8 pin_len; | 82 | u8 pin_len; |
83 | }; | 83 | }; |
84 | 84 | ||
85 | struct oob_data { | ||
86 | struct list_head list; | ||
87 | bdaddr_t bdaddr; | ||
88 | u8 hash[16]; | ||
89 | u8 randomizer[16]; | ||
90 | }; | ||
91 | |||
85 | #define NUM_REASSEMBLY 4 | 92 | #define NUM_REASSEMBLY 4 |
86 | struct hci_dev { | 93 | struct hci_dev { |
87 | struct list_head list; | 94 | struct list_head list; |
@@ -94,7 +101,8 @@ struct hci_dev { | |||
94 | __u8 bus; | 101 | __u8 bus; |
95 | __u8 dev_type; | 102 | __u8 dev_type; |
96 | bdaddr_t bdaddr; | 103 | bdaddr_t bdaddr; |
97 | __u8 dev_name[248]; | 104 | __u8 dev_name[HCI_MAX_NAME_LENGTH]; |
105 | __u8 eir[HCI_MAX_EIR_LENGTH]; | ||
98 | __u8 dev_class[3]; | 106 | __u8 dev_class[3]; |
99 | __u8 major_class; | 107 | __u8 major_class; |
100 | __u8 minor_class; | 108 | __u8 minor_class; |
@@ -169,6 +177,8 @@ struct hci_dev { | |||
169 | 177 | ||
170 | struct list_head link_keys; | 178 | struct list_head link_keys; |
171 | 179 | ||
180 | struct list_head remote_oob_data; | ||
181 | |||
172 | struct hci_dev_stats stat; | 182 | struct hci_dev_stats stat; |
173 | 183 | ||
174 | struct sk_buff_head driver_init; | 184 | struct sk_buff_head driver_init; |
@@ -505,6 +515,13 @@ int hci_add_link_key(struct hci_dev *hdev, int new_key, bdaddr_t *bdaddr, | |||
505 | u8 *key, u8 type, u8 pin_len); | 515 | u8 *key, u8 type, u8 pin_len); |
506 | int hci_remove_link_key(struct hci_dev *hdev, bdaddr_t *bdaddr); | 516 | int hci_remove_link_key(struct hci_dev *hdev, bdaddr_t *bdaddr); |
507 | 517 | ||
518 | int hci_remote_oob_data_clear(struct hci_dev *hdev); | ||
519 | struct oob_data *hci_find_remote_oob_data(struct hci_dev *hdev, | ||
520 | bdaddr_t *bdaddr); | ||
521 | int hci_add_remote_oob_data(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 *hash, | ||
522 | u8 *randomizer); | ||
523 | int hci_remove_remote_oob_data(struct hci_dev *hdev, bdaddr_t *bdaddr); | ||
524 | |||
508 | void hci_del_off_timer(struct hci_dev *hdev); | 525 | void hci_del_off_timer(struct hci_dev *hdev); |
509 | 526 | ||
510 | void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb); | 527 | void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb); |
@@ -767,6 +784,12 @@ int mgmt_user_confirm_reply_complete(u16 index, bdaddr_t *bdaddr, u8 status); | |||
767 | int mgmt_user_confirm_neg_reply_complete(u16 index, bdaddr_t *bdaddr, | 784 | int mgmt_user_confirm_neg_reply_complete(u16 index, bdaddr_t *bdaddr, |
768 | u8 status); | 785 | u8 status); |
769 | int mgmt_auth_failed(u16 index, bdaddr_t *bdaddr, u8 status); | 786 | int mgmt_auth_failed(u16 index, bdaddr_t *bdaddr, u8 status); |
787 | int mgmt_set_local_name_complete(u16 index, u8 *name, u8 status); | ||
788 | int mgmt_read_local_oob_data_reply_complete(u16 index, u8 *hash, u8 *randomizer, | ||
789 | u8 status); | ||
790 | int mgmt_device_found(u16 index, bdaddr_t *bdaddr, u8 *dev_class, s8 rssi, | ||
791 | u8 *eir); | ||
792 | int mgmt_remote_name(u16 index, bdaddr_t *bdaddr, u8 *name); | ||
770 | 793 | ||
771 | /* HCI info for socket */ | 794 | /* HCI info for socket */ |
772 | #define hci_pi(sk) ((struct hci_pinfo *) sk) | 795 | #define hci_pi(sk) ((struct hci_pinfo *) sk) |
diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h index 4f4bff1eaed6..2b9ca0d5c4a0 100644 --- a/include/net/bluetooth/l2cap.h +++ b/include/net/bluetooth/l2cap.h | |||
@@ -280,7 +280,6 @@ struct l2cap_conn_param_update_rsp { | |||
280 | struct l2cap_chan_list { | 280 | struct l2cap_chan_list { |
281 | struct sock *head; | 281 | struct sock *head; |
282 | rwlock_t lock; | 282 | rwlock_t lock; |
283 | long num; | ||
284 | }; | 283 | }; |
285 | 284 | ||
286 | struct l2cap_conn { | 285 | struct l2cap_conn { |
@@ -302,7 +301,6 @@ struct l2cap_conn { | |||
302 | 301 | ||
303 | struct sk_buff *rx_skb; | 302 | struct sk_buff *rx_skb; |
304 | __u32 rx_len; | 303 | __u32 rx_len; |
305 | __u8 rx_ident; | ||
306 | __u8 tx_ident; | 304 | __u8 tx_ident; |
307 | 305 | ||
308 | __u8 disc_reason; | 306 | __u8 disc_reason; |
diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h index 5fabfa886b3e..6b6ff92ab499 100644 --- a/include/net/bluetooth/mgmt.h +++ b/include/net/bluetooth/mgmt.h | |||
@@ -41,6 +41,10 @@ struct mgmt_rp_read_index_list { | |||
41 | __le16 index[0]; | 41 | __le16 index[0]; |
42 | } __packed; | 42 | } __packed; |
43 | 43 | ||
44 | /* Reserve one extra byte for names in management messages so that they | ||
45 | * are always guaranteed to be nul-terminated */ | ||
46 | #define MGMT_MAX_NAME_LENGTH (HCI_MAX_NAME_LENGTH + 1) | ||
47 | |||
44 | #define MGMT_OP_READ_INFO 0x0004 | 48 | #define MGMT_OP_READ_INFO 0x0004 |
45 | struct mgmt_rp_read_info { | 49 | struct mgmt_rp_read_info { |
46 | __u8 type; | 50 | __u8 type; |
@@ -55,6 +59,7 @@ struct mgmt_rp_read_info { | |||
55 | __u16 manufacturer; | 59 | __u16 manufacturer; |
56 | __u8 hci_ver; | 60 | __u8 hci_ver; |
57 | __u16 hci_rev; | 61 | __u16 hci_rev; |
62 | __u8 name[MGMT_MAX_NAME_LENGTH]; | ||
58 | } __packed; | 63 | } __packed; |
59 | 64 | ||
60 | struct mgmt_mode { | 65 | struct mgmt_mode { |
@@ -167,6 +172,29 @@ struct mgmt_rp_user_confirm_reply { | |||
167 | 172 | ||
168 | #define MGMT_OP_USER_CONFIRM_NEG_REPLY 0x0016 | 173 | #define MGMT_OP_USER_CONFIRM_NEG_REPLY 0x0016 |
169 | 174 | ||
175 | #define MGMT_OP_SET_LOCAL_NAME 0x0017 | ||
176 | struct mgmt_cp_set_local_name { | ||
177 | __u8 name[MGMT_MAX_NAME_LENGTH]; | ||
178 | } __packed; | ||
179 | |||
180 | #define MGMT_OP_READ_LOCAL_OOB_DATA 0x0018 | ||
181 | struct mgmt_rp_read_local_oob_data { | ||
182 | __u8 hash[16]; | ||
183 | __u8 randomizer[16]; | ||
184 | } __packed; | ||
185 | |||
186 | #define MGMT_OP_ADD_REMOTE_OOB_DATA 0x0019 | ||
187 | struct mgmt_cp_add_remote_oob_data { | ||
188 | bdaddr_t bdaddr; | ||
189 | __u8 hash[16]; | ||
190 | __u8 randomizer[16]; | ||
191 | } __packed; | ||
192 | |||
193 | #define MGMT_OP_REMOVE_REMOTE_OOB_DATA 0x001A | ||
194 | struct mgmt_cp_remove_remote_oob_data { | ||
195 | bdaddr_t bdaddr; | ||
196 | } __packed; | ||
197 | |||
170 | #define MGMT_EV_CMD_COMPLETE 0x0001 | 198 | #define MGMT_EV_CMD_COMPLETE 0x0001 |
171 | struct mgmt_ev_cmd_complete { | 199 | struct mgmt_ev_cmd_complete { |
172 | __le16 opcode; | 200 | __le16 opcode; |
@@ -234,3 +262,22 @@ struct mgmt_ev_auth_failed { | |||
234 | bdaddr_t bdaddr; | 262 | bdaddr_t bdaddr; |
235 | __u8 status; | 263 | __u8 status; |
236 | } __packed; | 264 | } __packed; |
265 | |||
266 | #define MGMT_EV_LOCAL_NAME_CHANGED 0x0011 | ||
267 | struct mgmt_ev_local_name_changed { | ||
268 | __u8 name[MGMT_MAX_NAME_LENGTH]; | ||
269 | } __packed; | ||
270 | |||
271 | #define MGMT_EV_DEVICE_FOUND 0x0012 | ||
272 | struct mgmt_ev_device_found { | ||
273 | bdaddr_t bdaddr; | ||
274 | __u8 dev_class[3]; | ||
275 | __s8 rssi; | ||
276 | __u8 eir[HCI_MAX_EIR_LENGTH]; | ||
277 | } __packed; | ||
278 | |||
279 | #define MGMT_EV_REMOTE_NAME 0x0013 | ||
280 | struct mgmt_ev_remote_name { | ||
281 | bdaddr_t bdaddr; | ||
282 | __u8 name[MGMT_MAX_NAME_LENGTH]; | ||
283 | } __packed; | ||
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index b2b9d28cb4ab..ba7384acf4e0 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -422,6 +422,7 @@ struct station_parameters { | |||
422 | * @STATION_INFO_RX_DROP_MISC: @rx_dropped_misc filled | 422 | * @STATION_INFO_RX_DROP_MISC: @rx_dropped_misc filled |
423 | * @STATION_INFO_SIGNAL_AVG: @signal_avg filled | 423 | * @STATION_INFO_SIGNAL_AVG: @signal_avg filled |
424 | * @STATION_INFO_RX_BITRATE: @rxrate fields are filled | 424 | * @STATION_INFO_RX_BITRATE: @rxrate fields are filled |
425 | * @STATION_INFO_BSS_PARAM: @bss_param filled | ||
425 | */ | 426 | */ |
426 | enum station_info_flags { | 427 | enum station_info_flags { |
427 | STATION_INFO_INACTIVE_TIME = 1<<0, | 428 | STATION_INFO_INACTIVE_TIME = 1<<0, |
@@ -439,6 +440,7 @@ enum station_info_flags { | |||
439 | STATION_INFO_RX_DROP_MISC = 1<<12, | 440 | STATION_INFO_RX_DROP_MISC = 1<<12, |
440 | STATION_INFO_SIGNAL_AVG = 1<<13, | 441 | STATION_INFO_SIGNAL_AVG = 1<<13, |
441 | STATION_INFO_RX_BITRATE = 1<<14, | 442 | STATION_INFO_RX_BITRATE = 1<<14, |
443 | STATION_INFO_BSS_PARAM = 1<<15, | ||
442 | }; | 444 | }; |
443 | 445 | ||
444 | /** | 446 | /** |
@@ -473,6 +475,37 @@ struct rate_info { | |||
473 | }; | 475 | }; |
474 | 476 | ||
475 | /** | 477 | /** |
478 | * enum station_info_rate_flags - bitrate info flags | ||
479 | * | ||
480 | * Used by the driver to indicate the specific rate transmission | ||
481 | * type for 802.11n transmissions. | ||
482 | * | ||
483 | * @BSS_PARAM_FLAGS_CTS_PROT: whether CTS protection is enabled | ||
484 | * @BSS_PARAM_FLAGS_SHORT_PREAMBLE: whether short preamble is enabled | ||
485 | * @BSS_PARAM_FLAGS_SHORT_SLOT_TIME: whether short slot time is enabled | ||
486 | */ | ||
487 | enum bss_param_flags { | ||
488 | BSS_PARAM_FLAGS_CTS_PROT = 1<<0, | ||
489 | BSS_PARAM_FLAGS_SHORT_PREAMBLE = 1<<1, | ||
490 | BSS_PARAM_FLAGS_SHORT_SLOT_TIME = 1<<2, | ||
491 | }; | ||
492 | |||
493 | /** | ||
494 | * struct sta_bss_parameters - BSS parameters for the attached station | ||
495 | * | ||
496 | * Information about the currently associated BSS | ||
497 | * | ||
498 | * @flags: bitflag of flags from &enum bss_param_flags | ||
499 | * @dtim_period: DTIM period for the BSS | ||
500 | * @beacon_interval: beacon interval | ||
501 | */ | ||
502 | struct sta_bss_parameters { | ||
503 | u8 flags; | ||
504 | u8 dtim_period; | ||
505 | u16 beacon_interval; | ||
506 | }; | ||
507 | |||
508 | /** | ||
476 | * struct station_info - station information | 509 | * struct station_info - station information |
477 | * | 510 | * |
478 | * Station information filled by driver for get_station() and dump_station. | 511 | * Station information filled by driver for get_station() and dump_station. |
@@ -515,6 +548,7 @@ struct station_info { | |||
515 | u32 tx_retries; | 548 | u32 tx_retries; |
516 | u32 tx_failed; | 549 | u32 tx_failed; |
517 | u32 rx_dropped_misc; | 550 | u32 rx_dropped_misc; |
551 | struct sta_bss_parameters bss_param; | ||
518 | 552 | ||
519 | int generation; | 553 | int generation; |
520 | }; | 554 | }; |
@@ -2667,6 +2701,15 @@ void cfg80211_new_sta(struct net_device *dev, const u8 *mac_addr, | |||
2667 | struct station_info *sinfo, gfp_t gfp); | 2701 | struct station_info *sinfo, gfp_t gfp); |
2668 | 2702 | ||
2669 | /** | 2703 | /** |
2704 | * cfg80211_del_sta - notify userspace about deletion of a station | ||
2705 | * | ||
2706 | * @dev: the netdev | ||
2707 | * @mac_addr: the station's address | ||
2708 | * @gfp: allocation flags | ||
2709 | */ | ||
2710 | void cfg80211_del_sta(struct net_device *dev, const u8 *mac_addr, gfp_t gfp); | ||
2711 | |||
2712 | /** | ||
2670 | * cfg80211_rx_mgmt - notification of received, unprocessed management frame | 2713 | * cfg80211_rx_mgmt - notification of received, unprocessed management frame |
2671 | * @dev: network device | 2714 | * @dev: network device |
2672 | * @freq: Frequency on which the frame was received in MHz | 2715 | * @freq: Frequency on which the frame was received in MHz |