Каковы последствия использования макроса linux __user?

Я надеялся, что кто-нибудь сможет объяснить нюансы макроса __user, используемого в исходном коде ядра Linux.

Прежде всего, макрос:

# define __user         __attribute__((noderef, address_space(1)))

Теперь, после некоторого поиска в Google, я прочитал, что этот макрос позволяет определить указатель как принадлежащий пользовательскому адресному пространству, и что он не должен разыменовываться.

Я могу пропустить некоторые очевидные факты, но не мог бы кто-нибудь объяснить значение такого макроса? Например, каков хороший пример того, где можно было бы использовать этот макрос? Еще раз, простите меня, если я упускаю что-то очевидное.

Чтобы выразить это в некотором контексте, я наткнулся на макрос, исследуя некоторый код USB (linux / usbdevice_fs.h). Я только хочу получить общее представление об использовании этого макроса (или других подобных макросов) в ядре.

Спасибо за внимание!

60
задан Mr. Shickadance 23 December 2010 в 18:46
поделиться