如上图,整个 mac 层分成两个部分——UMAC 和 LMAC。LMAC 分成 MAC 下半部分和硬件抽象层。
硬件抽象层和ath9k层的连接
在hw.h中的函数struct ath_hw_ops()
ath9k层和mac层的连接
在mac80211.h中函数struct ieee80211_ops()可以看到这个函数非常重要,当然如果我们想ath9k和mac层通信,可以在这个函数上直接添加对应的模块。
Mac层和cfg80211通信
在cfg80211.h 中的函数struct ieee80211_ops()
这里就基本上完成了下层到上层的通信,但是这样比较麻烦。用户态与内核态的交互可以通过三种方式netlink、/proc、ioctl。第一种是全双工,后面俩种方式是半双工,
读源码发现/proc存在debug.c中
原文地址:https://www.cnblogs.com/yl1995/p/11082706.html
时间: 2024-11-05 15:45:26