diff options
author | Ian Moffett <ian@osmora.org> | 2023-12-25 21:25:16 -0500 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2023-12-25 21:25:16 -0500 |
commit | 1e1dce5d7cca0e52c845bbb3e6a9a37ee3018095 (patch) | |
tree | 67ed4f1649c9b51c186da7bc73d3f18c7edd2983 /share/misc/style | |
parent | 5847edb20f4ceb7d378ecccf4e763a30cbbd3b8a (diff) | |
parent | 7383e73f4b43b914b766d3d1688e1ba96b9712a0 (diff) |
Merge branch 'main' into stablestable
Diffstat (limited to 'share/misc/style')
-rw-r--r-- | share/misc/style | 209 |
1 files changed, 0 insertions, 209 deletions
diff --git a/share/misc/style b/share/misc/style deleted file mode 100644 index 0a994e8..0000000 --- a/share/misc/style +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Copyright (c) 2023 Ian Marco Moffett and the Osmora Team. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Hyra nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include <sys/cdefs.h> - -/* - * Vim config in share/misc/vimrc - */ - -/* - * Metadata goes in *.c files - */ -__KERNEL_META("$Hyra$: style.c, Ian Marco Moffett, " - "Hyra style guide"); -/* - * VERY important single-line comments look like this. - */ - -/* Most single-line comments look like this. */ - -/* - * Multi-line comments look like this. Make them real sentences. Fill - * them so they look like real paragraphs. - */ - -/* - * Attempt to wrap lines longer than 80 characters appropriately. - * Refer to the examples below for more information. - */ - -/* - * EXAMPLE HEADER FILE. - * A header file should protect itself against - * multiple inclusion. - */ - -/* - * If your header as a manpage tied to it use - * write a comment similar to the below comment - */ - -/* - * For documentation: See foo(9) - */ - - #ifndef _SYS_FOO_H_ - #define _SYS_FOO_H_ - - -/* - * extern declarations must only appear in header files, not in .c - * files, so the same declaration is used by the .c file defining it - * and the .c file using it, giving the compiler the opportunity to - * detect type errors. - * - * extern function declarations should not use the extern keyword, - * which is unnecessary. - * - * Exception: A subroutine written in assembly in an adjacent .S file, - * which is used only in one .c file, may be declared in the .c file. - */ -extern int g_foo; - -int funnify(const char *s); - -#endif /* !_SYS_FOO_H_ */ - -/* - * END OF EXAMPLE HEADER FILE - */ - -/* - * If a header file requires structures, defines, typedefs, etc. from - * another header file it should include that header file and not depend - * on the including file for that header including both. If there are - * exceptions to this for specific headers it should be clearly documented - * in the headers and, if appropriate, the documentation. Nothing in this - * rule should suggest relaxation of the multiple inclusion rule and the - * application programmer should be free to include both regardless. - */ - -/* - * Kernel include files come first. - */ -#include <sys/param.h> /* <sys/param.h> first, */ -#include <sys/types.h> /* <sys/types.h> next, */ -#include <sys/ioctl.h> /* and then the rest, */ -#include <sys/socket.h> /* sorted lexicographically. */ -#include <sys/stat.h> -#include <sys/wait.h> - - -/* - * Macros are capitalized, parenthesized, and should avoid side-effects. - * If they are an inline expansion of a function, the function is defined - * all in lowercase, the macro has the same name all in uppercase. - * If the macro is an expression, wrap the expression in parentheses. - * If the macro is more than a single statement, use ``do { ... } while (0)'' - * or ``do { ... } while (false)'', so that a trailing semicolon works. - * Right-justify the backslashes; it makes it easier to read. - */ -#define MACRO(v, w, x, y) \ - do { \ - v = (x) + (y); \ - w = (y) + 2; \ - } while (0) - -}; - -/* - * Sometimes we want a macro to be conditionally defined for debugging - * and expand to nothing (but still as statement) when we are not debugging: - */ -#if defined(FOO_DEBUG) -#define DPRINTF(...) KDEBUG(__VA_ARGS__) -#else -#define DPRINTF(...) __nothing -#endif /* defined(FOO_DEBUG) */ - -/* - * The function type must be declared on a line by itself - * preceding the function. - */ -static char * -function(int fooy) -{ - /* - * When declaring variables in functions, multiple variables per line - * are okay. If a line overflows reuse the type keyword. - * - * Function prototypes and external data declarations should go in a - * suitable include file. - * - * Avoid initializing variables in the declarations; move - * declarations next to their first use, and initialize - * opportunistically. This avoids over-initialization and - * accidental bugs caused by declaration reordering. - */ - int foo, bar; - - foo = 0; - bar = 0; - /* - * Casts and sizeof's are not followed by a space. - * - * We parenthesize sizeof expressions to clarify their precedence: - * - * sizeof(e) + 4 - * not: - * sizeof e + 4 - * - * We don't put a space before the parenthesis so that it looks like - * a function call. We always parenthesize the sizeof expression for - * consistency. - * - * On the other hand, we don't parenthesize the return statement - * because there is never a precedence ambiguity situation (it is - * a single statement). - * - * NULL is any pointer type, and doesn't need to be cast, so use - * NULL instead of (struct foo *)0 or (struct foo *)NULL. Also, - * test pointers against NULL because it indicates the type of the - * expression to the user. I.e. use: - * - * (p = f()) == NULL - * not: - * !(p = f()) - * - * Don't use `!' for tests unless it's a boolean. - * E.g. use "if (*p == '\0')", not "if (!*p)". - * - * Routines returning ``void *'' should not have their return - * values cast to more specific pointer types. - * - * Prefer sizeof(*var) over sizeof(type) because if type changes, - * the change needs to be done in one place. - * - * Prefer EXIT_FAILURE instead of random error codes. - */ - - /* No parentheses are needed around the return value. */ - return 0; -} |