1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Chapter 1. Device registration</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="The 802.11 subsystems – for kernel developers"><link rel="up" href="cfg80211-developers-guide.html" title="The cfg80211 subsystem"><link rel="prev" href="cfg80211-developers-guide.html" title="The cfg80211 subsystem"><link rel="next" href="API-enum-ieee80211-band.html" title="enum ieee80211_band"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Device registration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="cfg80211-developers-guide.html">Prev</a> </td><th width="60%" align="center">The cfg80211 subsystem</th><td width="20%" align="right"> <a accesskey="n" href="API-enum-ieee80211-band.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="idp1109532380"></a>Chapter 1. Device registration</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="refentrytitle"><a href="API-enum-ieee80211-band.html"><span class="phrase">enum ieee80211_band</span></a></span><span class="refpurpose"> — 2 supported frequency bands 3 </span></dt><dt><span class="refentrytitle"><a href="API-enum-ieee80211-channel-flags.html"><span class="phrase">enum ieee80211_channel_flags</span></a></span><span class="refpurpose"> — 4 channel flags 5 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-channel.html"><span class="phrase">struct ieee80211_channel</span></a></span><span class="refpurpose"> — 6 channel definition 7 </span></dt><dt><span class="refentrytitle"><a href="API-enum-ieee80211-rate-flags.html"><span class="phrase">enum ieee80211_rate_flags</span></a></span><span class="refpurpose"> — 8 rate flags 9 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-rate.html"><span class="phrase">struct ieee80211_rate</span></a></span><span class="refpurpose"> — 10 bitrate definition 11 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-sta-ht-cap.html"><span class="phrase">struct ieee80211_sta_ht_cap</span></a></span><span class="refpurpose"> — 12 STA's HT capabilities 13 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-supported-band.html"><span class="phrase">struct ieee80211_supported_band</span></a></span><span class="refpurpose"> — 14 frequency band definition 15 </span></dt><dt><span class="refentrytitle"><a href="API-enum-cfg80211-signal-type.html"><span class="phrase">enum cfg80211_signal_type</span></a></span><span class="refpurpose"> — 16 signal type 17 </span></dt><dt><span class="refentrytitle"><a href="API-enum-wiphy-params-flags.html"><span class="phrase">enum wiphy_params_flags</span></a></span><span class="refpurpose"> — 18 set_wiphy_params bitfield values 19 </span></dt><dt><span class="refentrytitle"><a href="API-enum-wiphy-flags.html"><span class="phrase">enum wiphy_flags</span></a></span><span class="refpurpose"> — 20 wiphy capability flags 21 </span></dt><dt><span class="refentrytitle"><a href="API-struct-wiphy.html"><span class="phrase">struct wiphy</span></a></span><span class="refpurpose"> — 22 wireless hardware description 23 </span></dt><dt><span class="refentrytitle"><a href="API-struct-wireless-dev.html"><span class="phrase">struct wireless_dev</span></a></span><span class="refpurpose"> — 24 wireless device state 25 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-new.html"><span class="phrase">wiphy_new</span></a></span><span class="refpurpose"> — 26 create a new wiphy for use with cfg80211 27 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-register.html"><span class="phrase">wiphy_register</span></a></span><span class="refpurpose"> — 28 register a wiphy with cfg80211 29 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-unregister.html"><span class="phrase">wiphy_unregister</span></a></span><span class="refpurpose"> — 30 deregister a wiphy from cfg80211 31 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-free.html"><span class="phrase">wiphy_free</span></a></span><span class="refpurpose"> — 32 free wiphy 33 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-name.html"><span class="phrase">wiphy_name</span></a></span><span class="refpurpose"> — 34 get wiphy name 35 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-dev.html"><span class="phrase">wiphy_dev</span></a></span><span class="refpurpose"> — 36 get wiphy dev pointer 37 </span></dt><dt><span class="refentrytitle"><a href="API-wiphy-priv.html"><span class="phrase">wiphy_priv</span></a></span><span class="refpurpose"> — 38 return priv from wiphy 39 </span></dt><dt><span class="refentrytitle"><a href="API-priv-to-wiphy.html"><span class="phrase">priv_to_wiphy</span></a></span><span class="refpurpose"> — 40 return the wiphy containing the priv 41 </span></dt><dt><span class="refentrytitle"><a href="API-set-wiphy-dev.html"><span class="phrase">set_wiphy_dev</span></a></span><span class="refpurpose"> — 42 set device pointer for wiphy 43 </span></dt><dt><span class="refentrytitle"><a href="API-wdev-priv.html"><span class="phrase">wdev_priv</span></a></span><span class="refpurpose"> — 44 return wiphy priv from wireless_dev 45 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-iface-limit.html"><span class="phrase">struct ieee80211_iface_limit</span></a></span><span class="refpurpose"> — 46 limit on certain interface types 47 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-iface-combination.html"><span class="phrase">struct ieee80211_iface_combination</span></a></span><span class="refpurpose"> — 48 possible interface combination 49 </span></dt><dt><span class="refentrytitle"><a href="API-cfg80211-check-combinations.html"><span class="phrase">cfg80211_check_combinations</span></a></span><span class="refpurpose"> — 50 check interface combinations 51 </span></dt></dl></div><p> 52 </p><p> 53 In order for a driver to use cfg80211, it must register the hardware device 54 with cfg80211. This happens through a number of hardware capability structs 55 described below. 56 </p><p> 57 The fundamental structure for each device is the 'wiphy', of which each 58 instance describes a physical wireless device connected to the system. Each 59 such wiphy can have zero, one, or many virtual interfaces associated with 60 it, which need to be identified as such by pointing the network interface's 61 <em class="parameter"><code>ieee80211_ptr</code></em> pointer to a <span class="structname">struct wireless_dev</span> which further describes 62 the wireless part of the interface, normally this struct is embedded in the 63 network interface's private data area. Drivers can optionally allow creating 64 or destroying virtual interfaces on the fly, but without at least one or the 65 ability to create some the wireless device isn't useful. 66 </p><p> 67 Each wiphy structure contains device capability information, and also has 68 a pointer to the various operations the driver offers. The definitions and 69 structures here describe these capabilities in detail. 70</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="cfg80211-developers-guide.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="cfg80211-developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-enum-ieee80211-band.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The cfg80211 subsystem </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">enum ieee80211_band</span></td></tr></table></div></body></html> 71