我需要在内核模块中进行整数除法,我使用do_div()。 它似乎在我的机器上工作(我有一个i686处理器),但我不知道它在任何地方工作。 任何人都可以确认do_div()
是否应该在32位和64位体系结构中正常工作,或者是否有任何已知的限制?
我使用内核2.6.38的Ubuntu 10.04,所以我有兴趣支持内核> = 2.6.38。
如果有人知道比do_div()
更好地在内核中执行整数除法,我也会感兴趣。
最好的祝福
丹尼尔
do_div()
可以在64位的arch上工作,但是除非你真的需要余数,并且完全知道使用do_div()
的效果, do_div()
你应该做一下位移。