/************************* libvmcu - Coding Style and Conventions *************************/
*
* Last update on: Feb 14 2021
*
* This document describes the coding style of libvmcu. This short guide will be updated
* regulary.
*
*
* [1] Indentation
*
* libvmcu's indentation is always 4 spaces. Do not use tab.
*
*
* [2] Namespace
*
* Every extern function should use the vmcu_ namespace, even if it's not exposed in the
* library interface. For example:
*
*       extern void vmcu_function(int arg);
*
* Every static function must not use the vmcu_ namespace.
*
* Exception to this rule: Macros in arch/ and internal macros.
*
*
* [3] Braces
*
* Opening braces are placed in the same line of a statement/function/etc. For example:
*
*       static void func(void) {
*
*               // do something
*       }
*
* [4] Spaces in between operands
*
* Spaces are placed in between operands in order to maximize readability. Example:
*
*       if((x + 1) == NUMBER || (y + 1) == NUMBER)
*
*
* [5] Header Guards
*
* Internal header guards:
*
*       #ifndef VMCU_FILENAME_H
*       #define VMCU_FILENAME_H
*
*       #endif
*
*
* Library interface header guards:
*
*       #ifndef LIBVMCU_FILENAME_INTERFACE_H
*       #define LIBVMCU_FILENAME_INTERFACE_H
*
*       #endif
*
*
* [6] Filenames
*
* Internal filenames must not use the vmcu_ prefix. For example:
*
*       filename.h instead of vmcu_filename.h
*
* For external interfaces:
*
*       libvmcu_filename.h
*
* [7] Structures and their typedefs
*
* Structurenames (external, internal) are formed like this:
*
*       typedef vmcu_structname {
*
*           // declaration
*
*       } vmcu_structname_t;
*
* Exception: If structname is way too long, a meaningful abbreviation can
* be used instead.
*
*
*
*
/******************************************************************************************/



