Lines Matching refs:global

157 static void nl80211_check_global(struct nl80211_global *global);
471 handle = (void *) (((intptr_t) drv->global->nl_event) ^ in send_event_marker()
490 int send_and_recv(struct nl80211_global *global, in send_and_recv() argument
636 static int nl_get_multicast_id(struct nl80211_global *global, in nl_get_multicast_id() argument
646 if (!genlmsg_put(msg, 0, 0, global->nlctrl_id, in nl_get_multicast_id()
653 ret = send_and_recv(global, global->nl, msg, family_handler, &res, in nl_get_multicast_id()
666 return genlmsg_put(msg, 0, 0, drv->global->nl80211_id, in nl80211_cmd()
849 ret = send_and_recv(drv->global, w->nl_beacons, msg, NULL, NULL, in nl80211_register_beacons()
947 w->nl_beacons = nl_create_handle(bss->drv->global->nl_cb, in nl80211_get_wiphy_data_ap()
1118 struct nl80211_global *global, struct wpa_driver_nl80211_data *drv, in wpa_driver_nl80211_event_newlink() argument
1144 wpa_supplicant_event_global(global->ctx, EVENT_INTERFACE_STATUS, in wpa_driver_nl80211_event_newlink()
1150 struct nl80211_global *global, struct wpa_driver_nl80211_data *drv, in wpa_driver_nl80211_event_dellink() argument
1177 wpa_supplicant_event_global(global->ctx, EVENT_INTERFACE_STATUS, in wpa_driver_nl80211_event_dellink()
1214 nl80211_check_global(drv->global); in wpa_driver_nl80211_own_ifindex()
1227 nl80211_find_drv(struct nl80211_global *global, int idx, u8 *buf, size_t len, in nl80211_find_drv() argument
1235 dl_list_for_each(drv, &global->interfaces, in nl80211_find_drv()
1260 linux_get_ifhwaddr(drv->global->ioctl_sock, in nl80211_refresh_mac()
1284 struct nl80211_global *global = ctx; in wpa_driver_nl80211_event_rtm_newlink() local
1337 drv = nl80211_find_drv(global, ifi->ifi_index, buf, len, &init_failed); in wpa_driver_nl80211_event_rtm_newlink()
1346 linux_iface_up(drv->global->ioctl_sock, namebuf) > 0) { in wpa_driver_nl80211_event_rtm_newlink()
1374 drv = nl80211_find_drv(global, ifi->ifi_index, in wpa_driver_nl80211_event_rtm_newlink()
1384 linux_iface_up(drv->global->ioctl_sock, namebuf) == 0) { in wpa_driver_nl80211_event_rtm_newlink()
1424 netlink_send_oper_ifla(drv->global->netlink, drv->ifindex, in wpa_driver_nl80211_event_rtm_newlink()
1430 wpa_driver_nl80211_event_newlink(global, drv, ifi->ifi_index, in wpa_driver_nl80211_event_rtm_newlink()
1461 struct nl80211_global *global = ctx; in wpa_driver_nl80211_event_rtm_dellink() local
1509 drv = nl80211_find_drv(global, ifi->ifi_index, buf, len, NULL); in wpa_driver_nl80211_event_rtm_dellink()
1528 wpa_driver_nl80211_event_dellink(global, drv, ifi->ifi_index, in wpa_driver_nl80211_event_rtm_dellink()
1940 static int wpa_driver_nl80211_init_nl_global(struct nl80211_global *global) in wpa_driver_nl80211_init_nl_global() argument
1946 global->nl_cb = nl_cb_alloc(NL_CB_DEFAULT); in wpa_driver_nl80211_init_nl_global()
1947 if (global->nl_cb == NULL) { in wpa_driver_nl80211_init_nl_global()
1953 global->nl = nl_create_handle(global->nl_cb, "nl"); in wpa_driver_nl80211_init_nl_global()
1954 if (global->nl == NULL) in wpa_driver_nl80211_init_nl_global()
1957 global->nl80211_id = genl_ctrl_resolve(global->nl, "nl80211"); in wpa_driver_nl80211_init_nl_global()
1958 if (global->nl80211_id < 0) { in wpa_driver_nl80211_init_nl_global()
1964 global->nlctrl_id = genl_ctrl_resolve(global->nl, "nlctrl"); in wpa_driver_nl80211_init_nl_global()
1965 if (global->nlctrl_id < 0) { in wpa_driver_nl80211_init_nl_global()
1971 global->nl_event = nl_create_handle(global->nl_cb, "event"); in wpa_driver_nl80211_init_nl_global()
1972 if (global->nl_event == NULL) in wpa_driver_nl80211_init_nl_global()
1975 ret = nl_get_multicast_id(global, "nl80211", "scan"); in wpa_driver_nl80211_init_nl_global()
1977 ret = nl_socket_add_membership(global->nl_event, ret); in wpa_driver_nl80211_init_nl_global()
1985 ret = nl_get_multicast_id(global, "nl80211", "mlme"); in wpa_driver_nl80211_init_nl_global()
1987 ret = nl_socket_add_membership(global->nl_event, ret); in wpa_driver_nl80211_init_nl_global()
1995 ret = nl_get_multicast_id(global, "nl80211", "regulatory"); in wpa_driver_nl80211_init_nl_global()
1997 ret = nl_socket_add_membership(global->nl_event, ret); in wpa_driver_nl80211_init_nl_global()
2005 ret = nl_get_multicast_id(global, "nl80211", "vendor"); in wpa_driver_nl80211_init_nl_global()
2007 ret = nl_socket_add_membership(global->nl_event, ret); in wpa_driver_nl80211_init_nl_global()
2016 ret = genl_ctrl_alloc_cache(global->nl, &cache); in wpa_driver_nl80211_init_nl_global()
2024 family = genl_ctrl_search(cache, global->nl80211_id); in wpa_driver_nl80211_init_nl_global()
2032 global->nl80211_maxattr = genl_family_get_maxattr(family); in wpa_driver_nl80211_init_nl_global()
2034 global->nl80211_maxattr); in wpa_driver_nl80211_init_nl_global()
2038 nl_cb_set(global->nl_cb, NL_CB_SEQ_CHECK, NL_CB_CUSTOM, in wpa_driver_nl80211_init_nl_global()
2040 nl_cb_set(global->nl_cb, NL_CB_VALID, NL_CB_CUSTOM, in wpa_driver_nl80211_init_nl_global()
2041 process_global_event, global); in wpa_driver_nl80211_init_nl_global()
2043 nl80211_register_eloop_read(&global->nl_event, in wpa_driver_nl80211_init_nl_global()
2045 global->nl_cb, 0); in wpa_driver_nl80211_init_nl_global()
2052 nl_destroy_handles(&global->nl_event); in wpa_driver_nl80211_init_nl_global()
2053 nl_destroy_handles(&global->nl); in wpa_driver_nl80211_init_nl_global()
2054 nl_cb_put(global->nl_cb); in wpa_driver_nl80211_init_nl_global()
2055 global->nl_cb = NULL; in wpa_driver_nl80211_init_nl_global()
2060 static void nl80211_check_global(struct nl80211_global *global) in nl80211_check_global() argument
2071 handle = (void *) (((intptr_t) global->nl_event) ^ in nl80211_check_global()
2075 ret = nl_get_multicast_id(global, "nl80211", groups[i]); in nl80211_check_global()
2251 struct nl80211_global *global = drv->global; in wpa_driver_nl80211_drv_init_rfkill() local
2254 dl_list_for_each(tmp1, &global->interfaces, in wpa_driver_nl80211_drv_init_rfkill()
2315 drv->global = global_priv; in wpa_driver_nl80211_drv_init()
2381 if (drv->global) { in wpa_driver_nl80211_drv_init()
2382 nl80211_check_global(drv->global); in wpa_driver_nl80211_drv_init()
2383 dl_list_add(&drv->global->interfaces, &drv->list); in wpa_driver_nl80211_drv_init()
2442 ret = send_and_recv(drv->global, nl_handle, msg, NULL, NULL, in nl80211_register_frame()
2722 ret = send_and_recv(bss->drv->global, bss->nl_mgmt, msg, NULL, NULL, in nl80211_register_spurious_class3()
2908 return linux_set_iface_flags(bss->drv->global->ioctl_sock, in i802_set_iface_flags()
2982 bss->wdev_id = drv->global->if_add_wdevid; in wpa_driver_nl80211_finish_drv_init()
2983 bss->wdev_id_set = drv->global->if_add_wdevid_set; in wpa_driver_nl80211_finish_drv_init()
2985 bss->if_dynamic = drv->ifindex == drv->global->if_add_ifindex; in wpa_driver_nl80211_finish_drv_init()
2986 bss->if_dynamic = bss->if_dynamic || drv->global->if_add_wdevid_set; in wpa_driver_nl80211_finish_drv_init()
2987 drv->global->if_add_wdevid_set = 0; in wpa_driver_nl80211_finish_drv_init()
2994 linux_iface_up(drv->global->ioctl_sock, bss->ifname) > 0) in wpa_driver_nl80211_finish_drv_init()
3007 (linux_set_iface_flags(drv->global->ioctl_sock, bss->ifname, 0) || in wpa_driver_nl80211_finish_drv_init()
3008 linux_set_ifhwaddr(drv->global->ioctl_sock, bss->ifname, in wpa_driver_nl80211_finish_drv_init()
3057 netlink_send_oper_ifla(drv->global->netlink, drv->ifindex, in wpa_driver_nl80211_finish_drv_init()
3061 if (linux_get_ifhwaddr(drv->global->ioctl_sock, bss->ifname, in wpa_driver_nl80211_finish_drv_init()
3147 if (linux_br_del_if(drv->global->ioctl_sock, bss->brname, in wpa_driver_nl80211_deinit()
3158 if (linux_set_iface_flags(drv->global->ioctl_sock, bss->brname, in wpa_driver_nl80211_deinit()
3163 if (linux_br_del(drv->global->ioctl_sock, bss->brname) < 0) in wpa_driver_nl80211_deinit()
3187 netlink_send_oper_ifla(drv->global->netlink, drv->ifindex, 0, in wpa_driver_nl80211_deinit()
3198 if (linux_set_iface_flags(drv->global->ioctl_sock, bss->ifname, in wpa_driver_nl80211_deinit()
3203 if (linux_set_ifhwaddr(drv->global->ioctl_sock, bss->ifname, in wpa_driver_nl80211_deinit()
3796 ret = send_and_recv(drv->global, bss->nl_connect, msg, in wpa_driver_nl80211_mlme()
5426 ret = send_and_recv(drv->global, bss->nl_connect, msg, NULL, NULL, NULL, in wpa_driver_nl80211_set_ap()
5946 dl_list_for_each(drv2, &drv->global->interfaces, in nl80211_remove_iface()
6072 linux_set_ifhwaddr(drv->global->ioctl_sock, ifname, addr)) { in nl80211_create_iface_once()
6098 linux_set_ifhwaddr(drv->global->ioctl_sock, ifname, in nl80211_create_iface()
6100 (linux_set_iface_flags(drv->global->ioctl_sock, in nl80211_create_iface()
6102 linux_set_ifhwaddr(drv->global->ioctl_sock, ifname, in nl80211_create_iface()
6104 linux_set_iface_flags(drv->global->ioctl_sock, in nl80211_create_iface()
6221 ret = send_and_recv(bss->drv->global, bss->drv->global->nl, msg, in nl80211_tx_control_port()
6462 ret = send_and_recv(drv->global, drv->first_bss->nl_connect, msg, NULL, in nl80211_leave_ibss()
6612 ret = send_and_recv(drv->global, drv->first_bss->nl_connect, msg, NULL, in wpa_driver_nl80211_ibss()
7223 ret = send_and_recv(drv->global, bss->nl_connect, msg, NULL, NULL, NULL, in wpa_driver_nl80211_try_connect()
7339 ret = send_and_recv(drv->global, drv->first_bss->nl_connect, in wpa_driver_nl80211_associate()
7478 if (linux_br_del_if(drv->global->ioctl_sock, in wpa_driver_nl80211_set_mode_impl()
7506 res = linux_set_iface_flags(drv->global->ioctl_sock, bss->ifname, 1); in wpa_driver_nl80211_set_mode_impl()
7570 if (linux_br_add_if(drv->global->ioctl_sock, bss->brname, in nl80211_restore_ap_mode()
7624 return netlink_send_oper_ifla(drv->global->netlink, drv->ifindex, -1, in wpa_driver_nl80211_set_operstate()
8500 linux_br_add_if(drv->global->ioctl_sock, in i802_set_wds_sta()
8512 if (linux_set_iface_flags(drv->global->ioctl_sock, name, 1)) { in i802_set_wds_sta()
8520 linux_br_del_if(drv->global->ioctl_sock, bridge_ifname, in i802_set_wds_sta()
8575 if (linux_br_add(drv->global->ioctl_sock, brname) < 0) { in i802_check_bridge()
8595 if (linux_br_del_if(drv->global->ioctl_sock, in_br, ifname) < in i802_check_bridge()
8607 if (linux_br_add_if(drv->global->ioctl_sock, brname, ifname) < 0) { in i802_check_bridge()
8728 if (linux_get_ifhwaddr(drv->global->ioctl_sock, bss->ifname, in i802_init()
8775 static int nl80211_addr_in_use(struct nl80211_global *global, const u8 *addr) in nl80211_addr_in_use() argument
8778 dl_list_for_each(drv, &global->interfaces, in nl80211_addr_in_use()
8791 if (!drv->global) in nl80211_vif_addr()
8798 if (!nl80211_addr_in_use(drv->global, new_addr)) in nl80211_vif_addr()
8867 drv->global->if_add_wdevid = p2pdev_info.wdev_id; in wpa_driver_nl80211_if_add()
8868 drv->global->if_add_wdevid_set = p2pdev_info.wdev_id_set; in wpa_driver_nl80211_if_add()
8888 else if (linux_get_ifhwaddr(drv->global->ioctl_sock, in wpa_driver_nl80211_if_add()
8903 if (linux_get_ifhwaddr(drv->global->ioctl_sock, ifname, in wpa_driver_nl80211_if_add()
8909 if (nl80211_addr_in_use(drv->global, new_addr)) { in wpa_driver_nl80211_if_add()
8917 if (linux_set_ifhwaddr(drv->global->ioctl_sock, ifname, in wpa_driver_nl80211_if_add()
8947 if (linux_set_iface_flags(drv->global->ioctl_sock, ifname, 1)) in wpa_driver_nl80211_if_add()
8976 if (drv->global) in wpa_driver_nl80211_if_add()
8977 drv->global->if_add_ifindex = ifidx; in wpa_driver_nl80211_if_add()
9007 dl_list_for_each(drv2, &drv->global->interfaces, in wpa_driver_nl80211_if_remove()
9018 if (linux_br_del_if(drv->global->ioctl_sock, bss->brname, in wpa_driver_nl80211_if_remove()
9025 if (linux_br_del(drv->global->ioctl_sock, bss->brname) < 0) in wpa_driver_nl80211_if_remove()
9426 bss->nl_preq = nl_create_handle(drv->global->nl_cb, "preq"); in wpa_driver_nl80211_probe_req_report()
9966 struct nl80211_global *global; in nl80211_global_init() local
9976 global = os_zalloc(sizeof(*global)); in nl80211_global_init()
9977 if (global == NULL) in nl80211_global_init()
9979 global->ctx = ctx; in nl80211_global_init()
9980 global->ioctl_sock = -1; in nl80211_global_init()
9981 dl_list_init(&global->interfaces); in nl80211_global_init()
9982 global->if_add_ifindex = -1; in nl80211_global_init()
9988 cfg->ctx = global; in nl80211_global_init()
9991 global->netlink = netlink_init(cfg); in nl80211_global_init()
9992 if (global->netlink == NULL) { in nl80211_global_init()
9997 if (wpa_driver_nl80211_init_nl_global(global) < 0) in nl80211_global_init()
10000 global->ioctl_sock = socket(PF_INET, SOCK_DGRAM, 0); in nl80211_global_init()
10001 if (global->ioctl_sock < 0) { in nl80211_global_init()
10007 return global; in nl80211_global_init()
10010 nl80211_global_deinit(global); in nl80211_global_init()
10017 struct nl80211_global *global = priv; in nl80211_global_deinit() local
10018 if (global == NULL) in nl80211_global_deinit()
10020 if (!dl_list_empty(&global->interfaces)) { in nl80211_global_deinit()
10023 dl_list_len(&global->interfaces)); in nl80211_global_deinit()
10026 if (global->netlink) in nl80211_global_deinit()
10027 netlink_deinit(global->netlink); in nl80211_global_deinit()
10029 nl_destroy_handles(&global->nl); in nl80211_global_deinit()
10031 if (global->nl_event) in nl80211_global_deinit()
10032 nl80211_destroy_eloop_handle(&global->nl_event, 0); in nl80211_global_deinit()
10034 nl_cb_put(global->nl_cb); in nl80211_global_deinit()
10036 if (global->ioctl_sock >= 0) in nl80211_global_deinit()
10037 close(global->ioctl_sock); in nl80211_global_deinit()
10039 os_free(global); in nl80211_global_deinit()
11667 ret = send_and_recv(drv->global, bss->nl_connect, msg, in nl80211_vendor_cmd()
11983 if (linux_set_iface_flags(drv->global->ioctl_sock, bss->ifname, 0) < 0) in nl80211_set_mac_addr()
11986 if (linux_set_ifhwaddr(drv->global->ioctl_sock, bss->ifname, addr) < 0) in nl80211_set_mac_addr()
11991 if (linux_set_iface_flags(drv->global->ioctl_sock, bss->ifname, in nl80211_set_mac_addr()
12005 if (linux_set_iface_flags(drv->global->ioctl_sock, bss->ifname, 1) < 0) in nl80211_set_mac_addr()
12142 ret = send_and_recv(drv->global, bss->nl_connect, msg, NULL, NULL, NULL, in nl80211_join_mesh()
12200 ret = send_and_recv(drv->global, bss->nl_connect, msg, NULL, NULL, NULL, in wpa_driver_nl80211_leave_mesh()
13861 if (linux_br_del_if(drv->global->ioctl_sock, in nl80211_set_4addr_mode()