Update Coding Standard and some Kconfig comments.

This commit is contained in:
Gregory Nutt 2017-02-09 12:57:44 -06:00
parent e6e72bda02
commit 085dcf92e3
2 changed files with 23 additions and 8 deletions

View File

@ -12,7 +12,7 @@
<h1><big><font color="#3c34ec"> <h1><big><font color="#3c34ec">
<i>NuttX C Coding Standard</i> <i>NuttX C Coding Standard</i>
</font></big></h1> </font></big></h1>
<p>Last Updated: August 24, 2016</p> <p>Last Updated: February 9, 2017</p>
</td> </td>
</tr> </tr>
</table> </table>
@ -1074,6 +1074,15 @@ int do_foobar(void)
<h2>2.2 <a name="globalvariable">Global Variables</a></h2> <h2>2.2 <a name="globalvariable">Global Variables</a></h2>
<b>Global vs. Local vs. Public vs. Private</b>
By a <i>global</i> variable it is meant any variable defined outside of a function.
The distinction is between this kind of <i>global</i> and function <i>local</i> definition and refers to the scope a symbol <i>within a file</i>.
A related concept for all <i>global</i> names defined within a file is the scope of the name across different files.
If the global symbol is pre-pended with the <code>static</code> storage class then the scope of the global symbol is within the file only.
This is a somewhat different concept and within NuttX you will find these distinguished as <i>private</i> vs. <i>public</i> global symbols.
However, within this standard, the term <i>global variable</i> will refer to any variable that has more than local scope.
</li>
<p><b>Coding Standard:</b></p> <p><b>Coding Standard:</b></p>
<ul> <ul>
<li> <li>
@ -1114,6 +1123,7 @@ int do_foobar(void)
<p><font color="red"><b>Incorrect</b></p> <p><font color="red"><b>Incorrect</b></p>
<ul><pre> <ul><pre>
extern int someint; extern int someint;
static int anotherint;
uint32_t dwA32BitInt; uint32_t dwA32BitInt;
uint32_t gAGlobalVariable; uint32_t gAGlobalVariable;
</ul></pre></font> </ul></pre></font>
@ -1122,6 +1132,7 @@ uint32_t gAGlobalVariable;
<p><font color="blue"><b>Acceptable</b></p> <p><font color="blue"><b>Acceptable</b></p>
<ul><pre> <ul><pre>
extern int g_someint; extern int g_someint;
static int g_anotherint;
uint32_t g_a32bitint; uint32_t g_a32bitint;
uint32_t g_aglobal; uint32_t g_aglobal;
</ul></pre></font> </ul></pre></font>
@ -1136,6 +1147,7 @@ struct my_variables_s
}; };
extern int g_someint; extern int g_someint;
static int g_anotherint;
struct my_variables_s g_myvariables; struct my_variables_s g_myvariables;
</ul></pre></font> </ul></pre></font>
</td></tr> </td></tr>

View File

@ -10,15 +10,18 @@ config STDIO_DISABLE_BUFFERING
default n default n
---help--- ---help---
Tiny systems may need to disable all support for I/O buffering in Tiny systems may need to disable all support for I/O buffering in
order to minimum footprint. order to minimize the memory footprint.
NOTE that even if STDIO buffering is enabled, you can still disable NOTE that even if STDIO buffering is enabled, you can still disable
buffer by setting CONFIG_STDIO_BUFFER_SIZE=0 or dynamically through buffering by setting CONFIG_STDIO_BUFFER_SIZE=0 or dynamically
the setvbuf() interface. In this case, however, memory used for through the setvbuf() interface. In this case, however, memory
buffering will be eliminated, of course, buth there will be no used forbuffering will be eliminated, of course, buth there will be
reduction in static code size. Only setting no reduction in static code size. Only setting
CONFIG_STDIO_DISABLE_BUFFERING will reduce static code size. CONFIG_STDIO_DISABLE_BUFFERING will reduce static code size.
The setvbuf() interface is not available if
CONFIG_STDIO_DISABLE_BUFFERING is selected.
if !STDIO_DISABLE_BUFFERING if !STDIO_DISABLE_BUFFERING
config STDIO_BUFFER_SIZE config STDIO_BUFFER_SIZE
@ -27,8 +30,8 @@ config STDIO_BUFFER_SIZE
---help--- ---help---
Size of buffers using within the C buffered I/O interfaces (printf, Size of buffers using within the C buffered I/O interfaces (printf,
putchar, fwrite, etc.). This function sets the initial I/O buffer putchar, fwrite, etc.). This function sets the initial I/O buffer
size. Zero disables I/O buffering. That size may be subsequently size. Zero disables I/O buffering initially. Any buffer size may
modified using setvbuf(). be subsequently modified using setvbuf().
config STDIO_LINEBUFFER config STDIO_LINEBUFFER
bool "STDIO line buffering" bool "STDIO line buffering"