Lines Matching full:en

8 Estilo en el código del kernel Linux
11 Este es un breve documento que describe el estilo preferido en el código
17 En primer lugar, sugeriría imprimir una copia de los estándares de código
33 buscando en su pantalla durante 20 horas seguidas, le resultará mucho más
37 el código se mueva demasiado a la derecha y dificulta la lectura en una
39 necesita más de 3 niveles de sangría, está en apuros de todos modos y
42 En resumen, las sangrías de 8 caracteres facilitan la lectura y tienen la
46 La forma preferida de facilitar múltiples niveles de sangría en una
48 ``case`` subordinadas en la misma columna, en lugar de hacer ``doble
49 sangría`` (``double-indenting``) en etiquetas ``case``. Por ejemplo:
70 No ponga varias declaraciones en una sola línea a menos que tenga algo que
94 Tampoco ponga varias asignaciones en una sola línea. El estilo de código
98 Aparte de los comentarios, la documentación y excepto en Kconfig, los
102 Consiga un editor decente y no deje espacios en blanco al final de las
111 El límite preferido en la longitud de una sola línea es de 80 columnas.
113 Las declaraciones de más de 80 columnas deben dividirse en partes, a menos
131 El otro problema que siempre surge en el estilo C es la colocación de
135 la llave de apertura en la línea, y colocar la llave de cierre primero,
173 especiales de todos modos (no puede anidarlas en C).
175 Tenga en cuenta que la llave de cierre está vacía en su línea propia,
176 **excepto** en los casos en que es seguida por una continuación de la misma
177 declaración, es decir, un ``while`` en una sentencia do o un ``else`` en
178 una sentencia if, como en:
200 Además, tenga en cuenta que esta colocación de llaves también minimiza el
202 como el suministro de nuevas líneas en su pantalla no es un recurso
203 renovable (piense en pantallas de terminal de 25 líneas), tienes más líneas
223 declaración; en este último caso utilice llaves en ambas ramas:
250 generalmente se usan con paréntesis en Linux, aunque no son requeridos en
251 el idioma, como en: ``sizeof info`` después de que ``struct fileinfo info;``
301 No deje espacios en blanco al final de las líneas. Algunos editores con
302 ``inteligente`` sangría insertarán espacios en blanco al comienzo de las
305 editores no eliminan los espacios en blanco si finalmente no termina
306 poniendo una línea de código allí, como si dejara una línea en blanco. Como
307 resultado, termina con líneas que contienen espacios en blanco al final.
309 Git le advertirá sobre los parches que introducen espacios en blanco al
310 final y puede, opcionalmente, eliminar los espacios en blanco finales por
335 Codificar el tipo de una función en el nombre (lo llamado notación húngara)
364 Las excepciones para la introducción de nuevos usos son mantener en espacio
381 en el código fuente, ¿qué significa?
382 En cambio, si dice
388 puede decir qué es ``a`` en realidad.
410 aunque encajan en la categoría (d) mejor que aquí.
426 (d) Nuevos tipos que son idénticos a los tipos estándar C99, en ciertas
435 permitidos, aunque no son obligatorios en el nuevo código de su
439 debe ajustarse a las opciones existentes en ese código.
441 (e) Tipos seguros para usar en el espacio de usuario.
443 En ciertas estructuras que son visibles para el espacio de usuario, no
445 tanto, usamos __u32 y tipos similares en todas las estructuras que se
452 En general, un puntero o una estructura que tiene elementos que pueden
459 caber en una o dos pantallas de texto (el tamaño de pantalla ISO/ANSI es
476 exceder de 5 a 10, o está haciendo algo mal. Piense de nuevo en la función
477 y divida en partes más pequeñas. Un cerebro humano puede generalmente
482 En los archivos fuente, separe las funciones con una línea en blanco. Si la
497 En los prototipos de funciones, incluya nombres de parámetros con sus tipos
498 de datos. Aunque esto no es requerido por el lenguaje C, se prefiere en
515 teniendo en cuenta que ``__always_inline`` es técnicamente un atributo
523 teniendo en cuenta que los nombres de los parámetros siempre deben
528 Tenga en cuenta que para una **definición** de función (es decir, el cuerpo
530 función después de parámetros de la función. En estos casos, deberán ir
531 tras los atributos de clase (por ejemplo, tenga en cuenta el cambio de
532 posición de ``__printf(4, 5)`` a continuación, en comparación con el
545 goto es utilizado con frecuencia por los compiladores, en forma de
591 Un tipo común de error a tener en cuenta es "un error de error" que es algo
601 El error en este código es que en algunas rutas de salida, ``foo`` es NULL.
602 Normalmente la solución para esto es dividirlo en dos etiquetas de error
620 demasiado. NUNCA trate de explicar CÓMO funciona su código en un
630 inteligente (o feo), pero trate de evitar el exceso. En su lugar, ponga los
635 kernel-doc. Consulte los archivos en :ref:`Documentation/doc-guide/ <doc_guide>`
644 * multilínea en el código fuente del kernel Linux.
647 * Descripción: Una columna de asteriscos en el lado izquierdo,
648 * con líneas iniciales y finales casi en blanco.
651 Para archivos en net/ y drivers/net/, el estilo preferido para comentarios
656 /* El estilo de comentario preferido para archivos en net/ y drivers/net
660 * pero no hay una línea inicial casi en blanco.
675 un número infinito de monos escribiendo en GNU emacs nunca harán un buen
679 sanos. Para hacer esto último, puede pegar lo siguiente en su archivo
732 C en archivos bajo ``~/src/linux-trees``.
741 de GNU no es mala, solo están gravemente equivocados en este asunto), por
751 Tenga en cuenta que también puede usar la herramienta ``clang-format`` para
763 Para todos los archivos de configuración de Kconfig* en todo el árbol
778 ciertos filesystems) deben anunciar esto de forma destacada en su cadena de
794 solo subproceso en el que son creadas y destruidas, siempre debe tener
795 contadores de referencia. En el kernel, la recolección de basura no existe
801 que múltiples usuarios tengan acceso a la estructura de datos en paralelo -
806 Tenga en cuenta que el bloqueo **no** reemplaza el recuento de referencia.
818 niveles múltiples`` en la gestión de memoria (``struct mm_struct``:
819 mm_users y mm_count), y en código del sistema de archivos
828 Los nombres de macros que definen constantes y etiquetas en enumeraciones
829 (enums) están en mayúsculas.
837 Se aprecian los nombres de macro en MAYÚSCULAS, pero las macros que se
838 asemejan a funciones puede ser nombradas en minúscula.
840 Generalmente, las funciones en línea son preferibles a las macros que se
843 Las macros con varias instrucciones deben contenerse en un bloque do-while:
879 a morder si alguien, por ejemplo, convierte FOO en una función en línea.
891 locales en macros que se asemejan a funciones:
907 en el kernel.
915 ``do not`` o ``don't`` en su lugar. Haga sus mensajes concisos, claros e
922 Hay varias modelos de macros de diagnóstico de driver en <linux/dev_printk.h>
940 -DDEBUG en el Makefile correspondiente; en otros casos, los archivos
967 garantizado por la programación en idioma C.
981 Ambos casos verifican el desbordamiento en el tamaño de asignación n *
985 (" stack dump") en caso de fallo cuando se usan sin __GFP_NOWARN, por lo
993 opción "hazme más rápido" de aceleración, llamada ``inline`` (en línea).
997 que a su vez ralentiza el sistema en su conjunto, debido a una mayor huella
999 para el pagecache. Solo piense en esto; un fallo en la memoria caché de la
1001 Hay MUCHOS ciclos de CPU que puede entrar en estos 5 milisegundos.
1004 3 líneas de código en ellas. Una excepción a esta regla son los casos en
1005 que se sabe que un parámetro es una constante en tiempo de compilación, y
1007 mayor parte de su función en tiempo de compilación. Para un buen ejemplo de
1008 este último caso, véase la función en línea kmalloc().
1010 A menudo, la gente argumenta que agregar funciones en línea que son
1038 agregar_trabajo() devuelve 0 en caso de éxito o -EBUSY en caso de fracaso.
1040 función pci_dev_present() devuelve 1 si tiene éxito en encontrar un
1047 Las funciones cuyo valor devuelto es el resultado real de un cálculo, en
1058 explícita a bool convierte automáticamente el valor en verdadero o falso.
1063 verdadera y falsa, en lugar de 1 y 0.
1076 consolidarlos en un bitfield con miembros de 1 bit, o usando un tipo de
1080 muchos valores verdaderos/falsos en un solo argumento bit a bit 'flags' y
1084 De lo contrario, el uso limitado de bool en estructuras y argumentos puede
1091 que debe usar, en lugar de programar explícitamente alguna variante de
1108 encabezado para ver qué más ya está definido y que no debe reproducir en su
1115 incrustada en los archivos fuente, indicado con marcadores especiales. Por
1138 No incluya ninguno de estos en los archivos fuente. La gente tiene sus
1148 En el código específico de arquitectura, es posible que deba usar
1149 ensamblador en línea para interactuar con funcionalidades de CPU o
1150 plataforma. No dude en hacerlo cuando sea necesario. Sin embargo, no use
1151 ensamblador en línea de forma gratuita cuando C puede hacer el trabajo.
1155 de ensamblador, en lugar de escribirlos repetidamente con ligeras
1156 variaciones. Recuerde que el ensamblador en línea puede usar parámetros C.
1158 Las funciones de ensamblador grandes y no triviales deben ir en archivos .S,
1159 con su correspondientes prototipos de C definidos en archivos de encabezado
1160 en C. Los prototipos de C para el ensamblador deben usar ``asmlinkage``.
1167 Al escribir una sola declaración de ensamblador en línea que contiene
1168 múltiples instrucciones, ponga cada instrucción en una línea separada en
1170 para indentar correctamente la siguiente instrucción en la salida en
1183 #ifdef) en archivos .c; de lo contrario, el código es más difícil de leer y
1184 la lógica más difícil de seguir. En cambio, use dichos condicionales en un
1185 archivo de encabezado que defina funciones para usar en esos archivos .c,
1186 proporcionando versiones de código auxiliar sin operación en el caso #else,
1191 Prefiera compilar funciones completas, en lugar de porciones de funciones o
1192 porciones de expresiones. En lugar de poner un ifdef en una expresión,
1196 Si tiene una función o variable que puede potencialmente quedar sin usar en
1197 una configuración en particular, y el compilador advertiría sobre su
1198 definición sin usar, marque la definición como __maybe_unused en lugar de
1199 envolverla en un preprocesador condicional. (Sin embargo, si una función o
1203 convertir un símbolo Kconfig en una expresión booleana de C, y utilícelo en
1214 agregará ningún tiempo de gastos generales en ejecución. Sin embargo, este
1221 líneas), incluya un comentario después de #endif en la misma línea,
1233 En general, la decisión de romper el kernel pertenece al usuario, más que
1243 Use WARN() en lugar de BUG()
1247 BUG(), BUG_ON() o VM_BUG_ON(). En su lugar, use una variante WARN*(),
1252 "Soy demasiado perezoso para tener en cuenta los errores" no es una excusa
1256 Use WARN_ON_ONCE() en lugar de WARN() o WARN_ON()
1262 el sistema lo suficiente como para que el registro excesivo se convierta en
1273 mediante acciones en el espacio del usuario. pr_warn_once() es una
1289 Use BUILD_BUG_ON() para aserciones en tiempo de compilación
1293 en tiempo de compilación, que no tiene efecto en tiempo de ejecución.
1308 manuales GCC - en cumplimiento con K&R y este texto - para cpp, gcc,
1309 detalles de gcc y sangría, todo disponible en https://www.gnu.org/manual/
1312 programación en lenguaje C, URL: http://www.open-std.org/JTC1/SC22/WG14/