2012-09-13 45 views
-1

假设我正在为设备编写驱动程序。有些寄存器列表(A)需要在某个例程(B)中专门处理。过了一段时间,有些人可能会发现某些寄存器(C)值需要根据不同情况进行更改(例如,对于无线网卡,情况可能是不同的频道)。但如果他们决定这样做,他们还需要将该寄存器(C)添加到列表(A)中,以便例程(B)也可以专门处理寄存器(C)。C中的列表维护问题

所以,问题是这种类型的寄存器也许很多或经常在开发的早期发现。我想知道是否有很好的方法来保持这一点。

我在想静态维护它,并提出一个编译错误,如果一些程序员忘记当他们这样做对寄存器的东西同步了名单。但它看起来像一个不好的选择(http://stackoverflow.com/questions/12412742/how-to-throw-a-compiling-error-in-c)

要动态地维护这样的列表(A),它可能对驾驶员来说太重了......任何提示?

让我用gcc编译器将讨论限制在linux驱动程序中。

回答

1

您可以让驱动程序维护列表并使用ioctl调用添加或删除项目。

这将是hacky。