mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-30 16:07:39 +00:00
efc7d01a9e
the files under /80211 calls kernel-doc script 207 times, one for each single function and doc chapter. Due to that, it takes a lot of time handling it: $ touch Documentation/driver-api/80211/*rst && time make SPHINXDIRS=driver-api/80211 htmldocs ... real 0m22,928s user 0m21,644s sys 0m1,334s Reduce the build time by doing only one kernel-doc call per functions that belong to the same group. With that, there's now 50 calls to kernel-doc, which makes the build time for those docs 62% faster: $ touch Documentation/driver-api/80211/*rst && time make SPHINXDIRS=driver-api/80211 htmldocs ... real 0m8,666s user 0m8,084s sys 0m0,642s As a side effect, it should now be easier to add newer functions, as there's no need to repeat the kernel-doc pattern. Measurements made on a NUC8i7HNK machine with lots of ram and a fast SSD disk with Sphinx 3.2.1. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Link: https://lore.kernel.org/r/f0085721d85ebc3a77164b457ed948eee48b55df.1601890703.git.mchehab+huawei@kernel.org Signed-off-by: Johannes Berg <johannes.berg@intel.com>
155 lines
3.7 KiB
ReStructuredText
155 lines
3.7 KiB
ReStructuredText
===========================
|
|
mac80211 subsystem (basics)
|
|
===========================
|
|
|
|
You should read and understand the information contained within this
|
|
part of the book while implementing a mac80211 driver. In some chapters,
|
|
advanced usage is noted, those may be skipped if this isn't needed.
|
|
|
|
This part of the book only covers station and monitor mode
|
|
functionality, additional information required to implement the other
|
|
modes is covered in the second part of the book.
|
|
|
|
Basic hardware handling
|
|
=======================
|
|
|
|
TBD
|
|
|
|
This chapter shall contain information on getting a hw struct allocated
|
|
and registered with mac80211.
|
|
|
|
Since it is required to allocate rates/modes before registering a hw
|
|
struct, this chapter shall also contain information on setting up the
|
|
rate/mode structs.
|
|
|
|
Additionally, some discussion about the callbacks and the general
|
|
programming model should be in here, including the definition of
|
|
ieee80211_ops which will be referred to a lot.
|
|
|
|
Finally, a discussion of hardware capabilities should be done with
|
|
references to other parts of the book.
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:functions:
|
|
ieee80211_hw
|
|
ieee80211_hw_flags
|
|
SET_IEEE80211_DEV
|
|
SET_IEEE80211_PERM_ADDR
|
|
ieee80211_ops
|
|
ieee80211_alloc_hw
|
|
ieee80211_register_hw
|
|
ieee80211_unregister_hw
|
|
ieee80211_free_hw
|
|
|
|
PHY configuration
|
|
=================
|
|
|
|
TBD
|
|
|
|
This chapter should describe PHY handling including start/stop callbacks
|
|
and the various structures used.
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:functions:
|
|
ieee80211_conf
|
|
ieee80211_conf_flags
|
|
|
|
Virtual interfaces
|
|
==================
|
|
|
|
TBD
|
|
|
|
This chapter should describe virtual interface basics that are relevant
|
|
to the driver (VLANs, MGMT etc are not.) It should explain the use of
|
|
the add_iface/remove_iface callbacks as well as the interface
|
|
configuration callbacks.
|
|
|
|
Things related to AP mode should be discussed there.
|
|
|
|
Things related to supporting multiple interfaces should be in the
|
|
appropriate chapter, a BIG FAT note should be here about this though and
|
|
the recommendation to allow only a single interface in STA mode at
|
|
first!
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:functions: ieee80211_vif
|
|
|
|
Receive and transmit processing
|
|
===============================
|
|
|
|
what should be here
|
|
-------------------
|
|
|
|
TBD
|
|
|
|
This should describe the receive and transmit paths in mac80211/the
|
|
drivers as well as transmit status handling.
|
|
|
|
Frame format
|
|
------------
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:doc: Frame format
|
|
|
|
Packet alignment
|
|
----------------
|
|
|
|
.. kernel-doc:: net/mac80211/rx.c
|
|
:doc: Packet alignment
|
|
|
|
Calling into mac80211 from interrupts
|
|
-------------------------------------
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:doc: Calling mac80211 from interrupts
|
|
|
|
functions/definitions
|
|
---------------------
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:functions:
|
|
ieee80211_rx_status
|
|
mac80211_rx_encoding_flags
|
|
mac80211_rx_flags
|
|
mac80211_tx_info_flags
|
|
mac80211_tx_control_flags
|
|
mac80211_rate_control_flags
|
|
ieee80211_tx_rate
|
|
ieee80211_tx_info
|
|
ieee80211_tx_info_clear_status
|
|
ieee80211_rx
|
|
ieee80211_rx_ni
|
|
ieee80211_rx_irqsafe
|
|
ieee80211_tx_status
|
|
ieee80211_tx_status_ni
|
|
ieee80211_tx_status_irqsafe
|
|
ieee80211_rts_get
|
|
ieee80211_rts_duration
|
|
ieee80211_ctstoself_get
|
|
ieee80211_ctstoself_duration
|
|
ieee80211_generic_frame_duration
|
|
ieee80211_wake_queue
|
|
ieee80211_stop_queue
|
|
ieee80211_wake_queues
|
|
ieee80211_stop_queues
|
|
ieee80211_queue_stopped
|
|
|
|
Frame filtering
|
|
===============
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:doc: Frame filtering
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:functions: ieee80211_filter_flags
|
|
|
|
The mac80211 workqueue
|
|
======================
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:doc: mac80211 workqueue
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:functions:
|
|
ieee80211_queue_work
|
|
ieee80211_queue_delayed_work
|