我是内核驱动程序编程的新手,想了解几个方面。
来自http://lxr.free-electrons.com/source/drivers/i2c/busses/i2c-ocores.c?v=3.19
的以下代码static int ocores_i2c_probe(struct platform_device *pdev)
{
struct ocores_i2c *i2c;
i2c = devm_kzalloc(&pdev->dev, sizeof(*i2c), GFP_KERNEL);
}
答案 0 :(得分:2)
1)是的,内核会为您填写此结构,然后将其传递给您的probe
函数以执行初始化。
2)简而言之,所有devm_
函数套件都会将返回资源的生命周期与实际设备的生命周期联系起来。因此,当未探测指定的设备时,将自动清除任何返回的资源。
3)可能是的,虽然sizeof
运算符会遵循i2c
的定义,所以这实际上与sizeof(struct ocores_i2c)
基本相同。