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

mac层到ath9k层,ath9k层到硬件层相关推荐

  1. CC2530,zigbee,协议栈,代码集(应用层,硬件层)

    APP(应用层) OSAL_SampleApp.c #include "ZComDef.h" #include "hal_drivers.h" #include ...

  2. embedding层和全连接层的区别是什么 一般说embedding层,实现方式就是一个没有bias的fc层

    embedding层和全连接层的区别是什么 一般说embedding层,实现方式就是一个没有bias的fc层

  3. 【Android 事件分发】事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 )

    Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) 文章目录 ...

  4. ad09机械层说明_悉数PCB上的各种层

    PCB层的定义: 阻焊层solder mask,是指板子上要上绿油的部分;因为它是负片输出,所以实际上有solder mask的部分实际效果并不上绿油,而是镀锡,呈银白色!助焊层paste mask, ...

  5. arduino 串口读取字符串_乐创物联物联网架构之硬件层中间件Arduino模拟量

    0 前言 大家好!我叫乐创物联,我主要是做工业自动化方面和物联网方面的.了解熟悉工业自动化领域的,也开发过物联网相关的产品.我的初衷是做工业物联网的,但这个系统太过于庞大,后续也会自主去学习一下.所以 ...

  6. 用Gradle打包出jar文件 前面我们说过,在Android Studio里面使用Gradle来打包应用程序,一般都是build出来一个apk文件。但是有的同学是做实现层的开发,不直接做View层

    用Gradle打包出jar文件 前面我们说过,在Android Studio里面使用Gradle来打包应用程序,一般都是build出来一个apk文件.但是有的同学是做实现层的开发,不直接做View层的 ...

  7. Auto CAD:图纸材质图例(石材、瓷砖、细木工板、钢筋混凝土、 木材、夹板、黏土砖 镜面/玻璃、软质吸音层 、钢/金属、硬质吸音层、硬隔层、基层龙骨、陶质类、涂料粉刷层)的设置之详细攻略

    Auto CAD:图纸材质图例(石材.瓷砖.细木工板.钢筋混凝土. 木材.夹板.黏土砖  镜面/玻璃.软质吸音层 .钢/金属.硬质吸音层.硬隔层.基层龙骨.陶质类.涂料粉刷层)的设置之详细攻略 目录

  8. [pytorch]yolov3.cfg参数详解(每层输出及route、yolo、shortcut层详解)

    文章目录 Backbone(Darknet53) 第一次下采样(to 208) 第二次下采样(to 104) 第三次下采样(to 52) 第四次下采样(to 26) 第五次下采样(to 13) YOL ...

  9. 二部六层电梯程序西门子1200二部六层电梯程序,无需eet可直接仿真使用

    二部六层电梯程序西门子1200二部六层电梯程序,无需eet可直接仿真使用,含有联控功能,有简单方案说明. 另有三部六层电梯程序 YID:1348645720626558笑叹红尘丨

  10. 二部六层电梯程序西门子1200二部六层电梯程序

    二部六层电梯程序西门子1200二部六层电梯程序,无需eet可直接仿真使用,含有联控功能,有简单方案说明. 现有:7438645720626558笑叹红尘丨

最新文章

  1. 在Ubuntu 14.04 64bit上使用pycURL模块示例
  2. Apache Hadoop 2.4.1 单节点安装
  3. netfilter/iptables全攻略
  4. Codeforces 1149 题解
  5. ubuntu下git更改默认编辑器
  6. process.cwd __dirname __filename 区别
  7. BootStrap 用法
  8. php的在线问卷调查_基于php技术的问卷调查系统
  9. C#LeetCode刷题之#717-1比特与2比特字符( 1-bit and 2-bit Characters)
  10. svn在linux下的使用(svn命令)[转]
  11. Chrome , Firfox 对应IE fireEvent 的方法
  12. python字符串常用函数-Python字符串常用函数详解
  13. Atitit 文档全文索引的索引种类 用于文本数据挖掘 搜索 数据分析 目录 1.1. Txt摘要索引。。 1 1.2. File placeholder 索引 1 1.3. Lucence索引 1
  14. .NET 使用MD5加盐加密
  15. 2022年软考高级网络规划设计师备考指南
  16. tpac100控制器设置教程_tpac100控制器设置教程_TP-link AC控制器统一管理AP设置指导...
  17. 三级等保 服务器设置密码策略 centos
  18. 烽火fr2600怎么web登录_烽火R2600路由器配置步骤及脚本文件
  19. GAN介绍 - GAN是如何工作的?
  20. 物联网关键技术————传感器技术

热门文章

  1. uniapp如何使用微信小程序的订阅信息推送消息给用户?
  2. 做区块链联盟链开发前期准备
  3. python模型预测结果 取整_sklearn 文本分类器做预测时,如何拿到预测结果。。。...
  4. 不爱说话?社交无能?或许你可以试试这种说话术
  5. LeetCode(数据库)- 股票的资本损益
  6. linux下的opencv-4.5.5 及 opencv_contrib 扩展模块安装
  7. JavaWeb使用百度云文字识别上传图片内容
  8. 洛谷P3964松鼠聚会
  9. 关于机场与市中心的距离研究
  10. 海外直播带货如何选择平台?