以太网驱动开发全解析
1. 介质和状态选择
介质和状态选择在以太网驱动开发中至关重要。 createMedium() 方法会创建一个字典,用于向 BSD 栈和用户空间发布设备的媒体功能详细信息。大多数现代以太网设备能支持多种以太网标准和传输速度,例如 Macbook Pro 中的以太网设备可支持 1000BaseT、100BaseTX 和 10BaseT/UTP,且具备全双工或半双工模式,还可选择是否开启流量控制。若设备和驱动支持,可通过 UNIX 命令行工具 ifconfig 或系统偏好设置中的网络面板来控制媒体。多数设备能自动检测当前媒体,媒体功能由 IONetworkMedium 类表示。
以下是 createMedium() 类的实现代码:
static struct MediumTable
{
UInt32 type;
UInt32 speed;
}
mediumTable[] =
{
{kIOMediumEthernetNone, 0},
{kIOMediumEthernetAuto, 0},
{kIOMediumEthernet10BaseT | kIOMediumOptionFullDuplex, 10},
{kIOMediumEthernet100BaseTX | kIOMediumOptionFullDuplex, 100},
{kIOMediumEthernet1000BaseT | - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12