Ich hatte gehofft, jemand könnte die Nuancen des in der Linux-Kernel-Quelle verwendeten __user-Makros erklären.
Zunächst das Makro:
# define __user __attribute__((noderef, address_space(1)))
Nach einigem googeln habe ich nun gelesen, dass man mit diesem Makro einen Zeiger als zum Benutzeradressraum gehörend festlegen kann und dass er nicht dereferenziert werden sollte.
Ich vermisse vielleicht einige offensichtliche Fakten, aber könnte jemand bitte die Auswirkungen eines solchen Makros erklären? Was ist zum Beispiel ein gutes Beispiel dafür, wo dieses Makro von Nutzen sein würde? Nochmals, vergib mir, wenn mir etwas Offensichtliches fehlt.
Um dies in einen Zusammenhang zu bringen, bin ich beim Untersuchen eines USB-Codes (linux / usbdevice_fs.h) auf das Makro gestoßen. Ich suche nur nach einem allgemeinen Verständnis dieser Makros (oder ähnlicher), die im Kernel verwendet werden.
Danke fürs schauen!