2011-09-08 147 views
3

我需要在內核模塊中進行整數除法,並且我正在使用do_div()。它似乎在我的機器上工作(我有一個i686處理器),但我不確定它在任何地方都可以工作。任何人都可以確認do_div()在32位和64位體系結構中是否應該正常運行,或者是否有任何已知的限制?Linux中的do_div()在32位和64位體系結構中工作嗎?

我使用Ubuntu 10.04與內核2.6.38,所以我有興趣支持內核> = 2.6.38。

我也會感興趣,如果有人知道一個更好的方法來做一個整數除內核比do_div()

問候

丹尼爾

回答

0

do_div()確實在64位拱工作,但除非你真的需要的其餘部分,是充分認識到使用do_div(),你應該做的位移位代替的作用。

+1

嗨,感謝您的評論。然後我明白do_div()應該始終工作,不管架構如何,對嗎?關於做位移,只有當我想用2的冪來除時纔是可能的,對嗎?這不是我的情況,因爲我需要除以任何整數。 –

相關問題