Работает ли do_div () в Linux в 32- и 64-битных архитектурах? - PullRequest
3 голосов
/ 08 сентября 2011

Мне нужно сделать целочисленное деление в модуле ядра, и я использую do_div () для этого. Кажется, он работает на моей машине (у меня процессор i686), однако я не уверен, что он работает везде. Может ли кто-нибудь подтвердить, должен ли do_div() работать правильно в 32-битной и 64-битной архитектурах, или есть какие-либо известные ограничения?

Я использую Ubuntu 10.04 с ядром 2.6.38, поэтому меня интересует поддержка ядер> = 2.6.38.

Мне также было бы интересно, если кто-нибудь знает лучший способ сделать целочисленное деление в ядре, чем do_div().

С наилучшими пожеланиями

Daniel

1 Ответ

0 голосов
/ 08 сентября 2011

do_div() работает на 64-битной арке, но если вам действительно не нужен остаток и вы полностью не знаете о последствиях использования do_div(), вам, вероятно, следует вместо этого делать битовые смещения.

...