一、注释
Linux内核驱动程序中的部分,属于Mellanox网卡驱动mlx4的初始化过程。
// Mellanox 以太网驱动主程序代码
static int __mlx4_init_one(struct pci_dev *pdev, int pci_dev_data,
struct mlx4_priv *priv)
{
int err; // 错误码变量
int nvfs[MLX4_MAX_PORTS + 1] = {0, 0, 0}; // 存储每个端口的VF数量
int prb_vf[MLX4_MAX_PORTS + 1] = {0, 0, 0}; // 存储每个端口要检查(probe)的VF数量
const int param_map[MLX4_MAX_PORTS + 1][MLX4_MAX_PORTS + 1] = {
// 参数映射表,用来导航nvfs和prb_vf数组
{2, 0, 0}, {0, 1, 2}, {0, 1, 2} };
unsigned total_vfs = 0; // 总的VF数量
unsigned int i;
// 从命令行或模块参数中获取每个端口的VF数量和检查数量的参数个数(argc)
int num_vfs_argc = mlx4_get_argc(num_vfs.dbdf2v