知道其中op结构被填充(Knowing where op structs are filled)

2019-10-21 15:00发布

我目前正在写一个Linux驱动程序,并为这一点,我明白了一些API来使他们的最好的使用是必要的。 我经常遇到在那里我开始挖成一个功能可按并在一个点结束,其中函数读取模式:

returnType OperationX(args...) {
    ...
    struct operations_t operations = get_operations();
    if(operations->X)
        return operations->X(args...)

}

基本上get_operations()返回一个指针到全局结构,它保存一个指针运行的动作的实际功能。

我发现它使用非常乏味的linux交叉引用钻进去不同的地方,然后真正了解其assignement实际发生。 有没有更好的更快的方法?

一个例子是DMA映射 。

Answer 1:

git grep和cscope将是你最好的朋友。

顺便说一句,DMA操作或者通过平台的代码或IOMMU实现填写。 我敢打赌,则很可能在使用中为LIB / swiotlb.c。



文章来源: Knowing where op structs are filled