Я надеялся, что кто-то сможет объяснить нюансы макроса __user, используемого в источнике ядра linux.
Прежде всего, макрос:
# define __user __attribute__((noderef, address_space(1)))
Теперь, после некоторого поиска в Google, я прочитал, что этот макрос позволяет назначить указатель как принадлежащий к адресному пространству пользователя и что он не должен быть разыменован.
Возможно, мне не хватает некоторых очевидных фактов, но кто-то может объяснить последствия такого макроса? Например, что является хорошим примером того, где этот макрос будет полезен? Опять же, простите меня, если я упустил что-то очевидное.
Чтобы добавить это в какой-то контекст, я пришел через макрос, изучая некоторый код USB (linux/usbdevice_fs.h). Я ищу только общее понимание этих макросов (или других подобных им) в ядре.
Спасибо, что посмотрели!