如上图,整个 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中

最新文章

  1. 通过JAXB完成Java对象与XML之间的转换
  2. Oracle数据库相关问题之ORA-12541:TNS:无监听程序
  3. netperf安装及使用
  4. Interleaving String leetcode
  5. 使用TransactionScopeOption 管理事务流
  6. 技术总监和CTO的区别 浅谈CTO的作用----软件公司如何开源节流(一)[转]
  7. Env:Winmanager插件使用
  8. java类中定义接口
  9. 学习之spring属性文件注入
  10. Bootstrap 与 ASP.NET MVC 4 不使用 NuGet Package 笔记
  11. HDU 1754 I Hate It 线段树 单点更新 区间最大值
  12. 基于JAVA WEB的医药管理系统
  13. 毕业后的第二份工作:进入国外 在新加坡工作 每月一次18K
  14. bat调用kettle的job文件
  15. Souvenir Shop 解题报告
  16. Java GC机制中Minor GC/Full GC
  17. JavaScript表单验证登录
  18. 归并排序(Merging Sort)
  19. 零基础用Docker部署微服务
  20. 类与接口(三)java中的接口与嵌套接口

热门文章

  1. vue+element-ui实现无限级动态菜单树
  2. mac for Idea配置Tomcat
  3. [WebShow系列] 倒计时展示相关问题
  4. JSONPath中的表达式
  5. 程序员/开发人员的真实生活 (Gif 多图)
  6. python进阶09 MySQL高级查询
  7. Codeforces Round #527-B. Teams Forming(贪心)
  8. <pre></pre>标签自动换行
  9. notepad++ 插件大全
  10. JAVA基础之File类