• Home
  • Raw
  • Download

Lines Matching +full:broken +full:- +full:turn +full:- +full:around

6 While there is much to be said for a solid and community-oriented design
19 ---------
25 :ref:`Documentation/process/coding-style.rst <codingstyle>`. For much of
38 strangely-formatted code.
43 giving up a degree of control in a number of ways - including control over
49 as a way of getting their name into the kernel changelogs - or both. But
59 80-column limit, for example), just do it.
61 Note that you can also use the ``clang-format`` tool to help you with
62 these rules, to quickly re-format parts of your code automatically,
66 See the file :ref:`Documentation/process/clang-format.rst <clangformat>`
85 implements this extra argument has been broken in some subtle way which was
86 never noticed - because it has never been used. Or, when the need for
92 Abstraction layers which hide access to hardware - often to allow the bulk
93 of a driver to be used with multiple operating systems - are especially
118 Conditionally-compiled code can be confined to functions which, if the code
139 That, in turn, creates pressure on the processor's memory caches, which can
175 however, this document is being written on a dual-core laptop. Even on
176 single-processor systems, work being done to improve responsiveness will
216 user-space ABI. Once an interface has been exported to user space, it must
217 be supported indefinitely. This fact makes the creation of user-space
221 user-space interfaces is always required.
225 -------------------
227 For now, at least, the writing of error-free code remains an ideal that few
245 kernel with "make EXTRA_CFLAGS=-W" to get the full set.
247 The kernel provides several configuration options which turn on debugging
250 testing purposes. In particular, you should turn on:
252 - ENABLE_WARN_DEPRECATED, ENABLE_MUST_CHECK, and FRAME_WARN to get an
258 - DEBUG_OBJECTS will add code to track the lifetime of various objects
264 - DEBUG_SLAB can find a variety of memory allocation and use errors; it
267 - DEBUG_SPINLOCK, DEBUG_ATOMIC_SLEEP, and DEBUG_MUTEXES will find a
284 in an automated manner ahead of time. Code with any sort of non-trivial
291 are, probably, completely untested. Untested code tends to be broken code;
292 you could be much more confident of your code if all those error-handling
301 Documentation/fault-injection/fault-injection.txt for more information on
306 user-space and kernel-space addresses, mixture of big-endian and
307 small-endian quantities, the passing of integer values where a set of bit
318 Documentation/dev-tools/coccinelle.rst for more information.
332 -------------
348 Any code which adds a new user-space interface - including new sysfs or
349 /proc files - should include documentation of that interface which enables
350 user-space developers to know what they are working with. See
354 The file :ref:`Documentation/admin-guide/kernel-parameters.rst
355 <kernelparameters>` describes all of the kernel's boot-time parameters.
363 specially-formatted comments; these comments can be extracted and formatted
364 in a number of ways by the "kernel-doc" script. If you are working within
366 them, as appropriate, for externally-available functions. Even in areas
371 :ref:`Documentation/doc-guide/ <doc_guide>`.
377 for verbosely-commented code. The code should, itself, be readable, with
384 Non-obvious dependencies between separate bits of code should be pointed
390 --------------------
392 The binary interface provided by the kernel to user space cannot be broken
395 the need arises. If you find yourself having to work around a kernel API,
403 necessary. This kind of change should also be broken out into a separate
408 which is broken by the change. For a widely-used function, this duty can
409 lead to literally hundreds or thousands of changes - many of which are
413 wide-ranging API changes.
417 This will help you to be sure that you have found all in-tree uses of that
418 interface. It will also alert developers of out-of-tree code that there is
419 a change that they need to respond to. Supporting out-of-tree code is not
421 not have to make life harder for out-of-tree developers than it needs to