Primero eche un vistazo a la definición de macro __user:
#ifdef __CHECKER__ # define __user __attribute __ ((noderef, address_space (1))) Desde la definición de macro puede ver que la macro __CHECKER__ está configurada Bajo la condición, la definición de la macro __user es válida, y se puede ver claramente que la macro __CHECKER__ aparece como un mecanismo de inspección, por lo que podemos inferir que la macro __user debe utilizarse para verificar el uso de errores.
Y, de hecho, lo es, es usar la opción make C = 1 para compilar el núcleo /módulo, abrir la herramienta de comprobación de sintaxis estática para detectar posibles errores. Al mismo tiempo, se puede ver que no tiene efecto en la generación del archivo, solo para verificar la corrección gramatical.
Investigaciones adicionales encontraron que sparse es una herramienta de comprobación de sintaxis estática de C. Al compilar un kernel o compilar un módulo en Linux, puede llamar al código de comprobación disperso al agregar C = 1.
Además, la definición dispersa Unos pocos espacios de memoria, dispersos, definen varios espacios de direcciones para el kernel de Linux, el espacio del kernel es el predeterminado, el espacio de usuario es 1 y el intervalo de io es 2. Esto puede verificar si hay un problema con el código de la dirección de acceso. Incluyendo address_space (1) se refiere al espacio del usuario.
Por ejemplo, en la escritura del controlador, size_t hello_read (archivo struct * file, char __user * buff, size_t count, loff_t * offp) {return 0;}
Minicom es muy fácil de usar, pero a veces no es lo suficientemente intuitivo. Se recomienda
El registro es muy importante para la seguridad. Registra las diversas cosas que ocurren todos los d
El comando grep se llama expresión regular de búsqueda global (RE) e imprime la línea, que
fg, bg, jobs, &, nohup, ctrl + z, ctrl + c comando Uno, & Al final de un comando, puede
¿Cómo Linux extiende el sistema de archivos XFS?
Configuración de PATH de la variable de entorno de Ubuntu Linux
Linux pipeline y redireccionamiento detallado
Linux vea el tamaño del directorio y el tamaño del disco duro
Método de asignación de memoria de gama alta de Linux
La acumulación de pequeños puntos de conocimiento utilizados en el sistema Linux
Linux ApachePHPMysql ruta de instalación predeterminada
Linux /centos resuelve el desbordamiento de memoria de Tomcat
Herramientas de codificación y conversión de caracteres para archivos bajo GnuLinux
Encuentra el proceso conectado a mysql bajo Linux
Cómo usar el comando para eliminar y crear la carpeta de Linux
Win7 install Office prompt 1603/1902 solución de error
Win8.1 no modifica la cuenta de Microsoft y le pregunta a 0xd00000bb ¿qué hacer?
La operación de Wget bajo CentOS no puede resolver (resolución) la solución del problema
La diferencia entre Win10 Enterprise Edition, Professional Edition y Home Edition
Microsoft China dijo que lanzará la promoción de invierno de Win8 con los fabricantes
Win10 cómo cancelar el plan de desfragmentación predeterminado una vez a la semana
Ventajas y desventajas del sistema de archivos de disco comunes de Windows explican
Actualice Windows 8 de Beta a la versión RC. Build 8306
Microsoft Edge está expuesto a los datos de navegación en modo privado.