9
0
Fork 0

Rename namedapp as simply builtin

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5454 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2012-12-23 20:22:41 +00:00
parent 99b4705b55
commit 11e331a9ca
52 changed files with 179 additions and 179 deletions

View File

@ -439,4 +439,5 @@
* Makefiles: Removed dependency of distclean on clean in most top-level
files. It makes sense for 'leaf' Makefiles to have this dependency,
but it does not make sense for upper-level Makefiles.
* namedapp/: Renamed to builtins in preparation for another change.

View File

@ -3,8 +3,8 @@
# see misc/tools/kconfig-language.txt.
#
menu "Named Applications"
source "$APPSDIR/namedapp/Kconfig"
menu "Built-In Applications"
source "$APPSDIR/builtin/Kconfig"
endmenu
menu "Examples"

View File

@ -36,6 +36,6 @@
define REGISTER
@echo "Register: $1"
@echo "{ \"$1\", $2, $3, $4 }," >> "$(APPDIR)/namedapp/namedapp_list.h"
@echo "EXTERN int $4(int argc, char *argv[]);" >> "$(APPDIR)/namedapp/namedapp_proto.h"
@echo "{ \"$1\", $2, $3, $4 }," >> "$(APPDIR)/builtin/builtin_list.h"
@echo "EXTERN int $4(int argc, char *argv[]);" >> "$(APPDIR)/builtin/builtin_proto.h"
endef

View File

@ -44,11 +44,11 @@ APPDIR = ${shell pwd}
# action. It is created by the configured appconfig file (a copy of which
# appears in this directory as .config)
# SUBDIRS is the list of all directories containing Makefiles. It is used
# only for cleaning. namedapp must always be the first in the list. This
# only for cleaning. builtin must always be the first in the list. This
# list can be extended by the .config file as well.
CONFIGURED_APPS =
SUBDIRS = examples graphics interpreters modbus namedapp nshlib netutils system
SUBDIRS = examples graphics interpreters modbus builtin nshlib netutils system
# There are two different mechanisms for obtaining the list of configured
# directories:
@ -69,9 +69,9 @@ SUBDIRS = examples graphics interpreters modbus namedapp nshlib netutils system
ifeq ($(CONFIG_NUTTX_NEWCONFIG),y)
# namedapp/Make.defs must be included first
# builtin/Make.defs must be included first
include namedapp/Make.defs
include builtin/Make.defs
include examples/Make.defs
include graphics/Make.defs
include interpreters/Make.defs
@ -82,7 +82,7 @@ include system/Make.defs
# INSTALLED_APPS is the list of currently available application directories. It
# is the same as CONFIGURED_APPS, but filtered to exclude any non-existent
# application directory. namedapp is always in the list of applications to be
# application directory. builtin is always in the list of applications to be
# built.
INSTALLED_APPS =
@ -94,10 +94,10 @@ else
# INSTALLED_APPS is the list of currently available application directories. It
# is the same as CONFIGURED_APPS, but filtered to exclude any non-existent
# application directory. namedapp is always in the list of applications to be
# application directory. builtin is always in the list of applications to be
# built.
INSTALLED_APPS = namedapp
INSTALLED_APPS = builtin
endif
# Create the list of available applications (INSTALLED_APPS)

View File

@ -6,12 +6,12 @@ Contents
General
Directory Location
Named Applications
Named Startup main() function
Built-In Applications
Built-In Startup main() function
NuttShell (NSH) Built-In Commands
Synchronous Built-In Commands
Application Configuration File
Example Named Application
Example Built-In Application
Building NuttX with Board-Specific Pieces Outside the Source Tree
General
@ -47,14 +47,14 @@ ways to do that:
path to the application directory on the configuration command line
like: ./configure.sh -a <app-dir> <board-name>/<config-name>
Named Applications
------------------
Built-In Applications
---------------------
NuttX also supports applications that can be started using a name string.
In this case, application entry points with their requirements are gathered
together in two files:
- namedapp/namedapp_proto.h Entry points, prototype function
- namedapp/namedapp_list.h Application specific information and requirements
- builtin/builtin_proto.h Entry points, prototype function
- builtin/builtin_list.h Application specific information and requirements
The build occurs in several phases as different build targets are executed:
(1) context, (2) depend, and (3) default (all). Application information is
@ -62,18 +62,18 @@ collected during the make context build phase.
To execute an application function:
exec_namedapp() is defined in the nuttx/include/apps/apps.h
exec_builtin() is defined in the nuttx/include/apps/apps.h
NuttShell (NSH) Built-In Commands
---------------------------------
One use of named applications is to provide a way of invoking your custom
One use of builtin applications is to provide a way of invoking your custom
application through the NuttShell (NSH) command line. NSH will support
a seamless method invoking the applications, when the following option is
enabled in the NuttX configuration file:
CONFIG_NSH_BUILTIN_APPS=y
Applications registered in the apps/namedapp/namedapp_list.h file will then
Applications registered in the apps/builtin/builtin_list.h file will then
be accessible from the NSH command line. If you type 'help' at the NSH
prompt, you will see a list of the registered commands.
@ -109,9 +109,9 @@ CONFIGURED_APPS list like:
CONFIGURED_APPS += examples/hello system/poweroff
Named Start-Up main() function
Built-In Start-Up main() function
------------------------------
A named application can even be used as the main, start-up entry point
A builtin application can even be used as the main, start-up entry point
into your embedded software. When the user defines this option in
the NuttX configuration file:
@ -124,10 +124,10 @@ will call:
int hello_main(int argc, char *argv[])
Example Named Application
-------------------------
Example Built-In Application
----------------------------
An example application skeleton can be found under the examples/hello
sub-directory. This example shows how a named application can be added
sub-directory. This example shows how a builtin application can be added
to the project. One must define:
1. create sub-directory as: appname

View File

@ -3,13 +3,13 @@
# see misc/tools/kconfig-language.txt.
#
config NAMEDAPP
bool "Support named applications"
config BUILTIN
bool "Support Builtin Applications"
default n
---help---
Enable support for named applications. This features assigns a string
Enable support for builtin applications. This features assigns a string
name to an application. This feature is also the underlying requirement
to support built-in applications in the NuttShell (NSH).
if NAMEDAPP
if BUILTIN
endif

View File

@ -1,5 +1,5 @@
############################################################################
# apps/namedapps/Make.defs
# apps/builtin/Make.defs
# Adds selected applications to apps/ build
#
# Copyright (C) 2012 Gregory Nutt. All rights reserved.
@ -34,7 +34,7 @@
#
############################################################################
ifeq ($(CONFIG_NAMEDAPP),y)
CONFIGURED_APPS += namedapp
ifeq ($(CONFIG_BUILTIN),y)
CONFIGURED_APPS += builtin
endif

View File

@ -1,5 +1,5 @@
############################################################################
# apps/nshlib/Makefile
# apps/builtin/Makefile
#
# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org>
@ -42,7 +42,7 @@ include $(APPDIR)/Make.defs
# Source and object files
ASRCS =
CSRCS = namedapp.c exec_namedapp.c
CSRCS = builtin.c exec_builtin.c
ifeq ($(CONFIG_APPS_BINDIR),y)
CSRCS += binfs.c
@ -83,8 +83,8 @@ $(COBJS): %$(OBJEXT): %.c
$(Q) touch .built
.context:
@echo "/* List of application requirements, generated during make context. */" > namedapp_list.h
@echo "/* List of application entry points, generated during make context. */" > namedapp_proto.h
@echo "/* List of application requirements, generated during make context. */" > builtin_list.h
@echo "/* List of application entry points, generated during make context. */" > builtin_proto.h
$(Q) touch $@
context: .context
@ -103,8 +103,8 @@ distclean: clean
$(call DELFILE, .context)
$(call DELFILE, Make.dep)
$(call DELFILE, .depend)
$(call DELFILE, namedapp_list.h)
$(call DELFILE, namedapp_proto.h)
$(call DELFILE, builtin_list.h)
$(call DELFILE, builtin_proto.h)
-include Make.dep

View File

@ -1,5 +1,5 @@
/****************************************************************************
* apps/namedapps/binfs.c
* apps/builtin/binfs.c
*
* Copyright (C) 2011-2012 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
@ -55,7 +55,7 @@
#include <nuttx/fs/fs.h>
#include <nuttx/fs/dirent.h>
#include "namedapp.h"
#include "builtin.h"
#if !defined(CONFIG_DISABLE_MOUNTPOINT) && defined(CONFIG_APPS_BINDIR)
@ -362,7 +362,7 @@ static int binfs_readdir(struct inode *mountpt, struct fs_dirent_s *dir)
/* Have we reached the end of the directory */
index = dir->u.binfs.fb_index;
if (namedapps[index].name == NULL)
if (builtins[index].name == NULL)
{
/* We signal the end of the directory by returning the
* special error -ENOENT
@ -375,9 +375,9 @@ static int binfs_readdir(struct inode *mountpt, struct fs_dirent_s *dir)
{
/* Save the filename and file type */
fvdbg("Entry %d: \"%s\"\n", index, namedapps[index].name);
fvdbg("Entry %d: \"%s\"\n", index, builtins[index].name);
dir->fd_dir.d_type = DTYPE_FILE;
strncpy(dir->fd_dir.d_name, namedapps[index].name, NAME_MAX+1);
strncpy(dir->fd_dir.d_name, builtins[index].name, NAME_MAX+1);
/* The application list is terminated by an entry with a NULL name.
* Therefore, there is at least one more entry in the list.
@ -559,7 +559,7 @@ static int binfs_stat(struct inode *mountpt, const char *relpath, struct stat *b
{
/* Check if there is a file with this name. */
if (namedapp_isavail(relpath) < 0)
if (builtin_isavail(relpath) < 0)
{
ret = -ENOENT;
goto errout_with_semaphore;

View File

@ -1,5 +1,5 @@
/****************************************************************************
* apps/namedaps/namedapp.c
* apps/builtin/builtin.c
*
* Copyright (C) 2011 Uros Platise. All rights reserved.
* Copyright (C) 2011 Gregory Nutt. All rights reserved.
@ -62,11 +62,11 @@ extern "C" {
#define EXTERN extern
#endif
#include "namedapp_proto.h"
#include "builtin_proto.h"
const struct namedapp_s namedapps[] =
const struct builtin_s builtins[] =
{
# include "namedapp_list.h"
# include "builtin_list.h"
{ NULL, 0, 0, 0 }
};
@ -88,9 +88,9 @@ const struct namedapp_s namedapps[] =
* Public Functions
****************************************************************************/
int number_namedapps(void)
int number_builtins(void)
{
return sizeof(namedapps)/sizeof(struct namedapp_s) - 1;
return sizeof(builtins)/sizeof(struct builtin_s) - 1;
}

View File

@ -1,5 +1,5 @@
/****************************************************************************
* apps/namedaps/namedapp.h
* apps/builtin/builtin.h
*
* Copyright (C) 2011 Uros Platise. All rights reserved.
* Copyright (C) 2011-2012 Gregory Nutt. All rights reserved.
@ -35,8 +35,8 @@
*
****************************************************************************/
#ifndef __APPS_NAMEDAPP_NAMEDAPP_H
#define __APPS_NAMEDAPP_NAMEDAPP_H
#ifndef __APPS_BUILTIN_BUILTIN_H
#define __APPS_BUILTIN_BUILTIN_H
/****************************************************************************
* Included Files
@ -53,7 +53,6 @@
* Public Data
****************************************************************************/
#undef EXTERN
#if defined(__cplusplus)
#define EXTERN extern "C"
extern "C" {
@ -61,18 +60,18 @@ extern "C" {
#define EXTERN extern
#endif
EXTERN const struct namedapp_s namedapps[];
EXTERN const struct builtin_s builtins[];
/****************************************************************************
* Public Functions
****************************************************************************/
EXTERN int number_namedapps(void);
EXTERN int number_builtins(void);
#undef EXTERN
#if defined(__cplusplus)
}
#endif
#endif /* __APPS_NAMEDAPP_NAMEDAPP_H */
#endif /* __APPS_BUILTIN_BUILTIN_H */

View File

@ -1,5 +1,5 @@
/****************************************************************************
* apps/namedaps/exec_namedapp.c
* apps/builtin/exec_builtin.c
*
* Copyright (C) 2011 Uros Platise. All rights reserved.
* Author: Uros Platise <uros.platise@isotel.eu>
@ -49,7 +49,7 @@
#include <string.h>
#include <errno.h>
#include "namedapp.h"
#include "builtin.h"
/****************************************************************************
* Private Types
@ -72,26 +72,26 @@
****************************************************************************/
/****************************************************************************
* Name: namedapp_getname
* Name: builtin_getname
*
* Description:
* Return the name of the application at index in the table of named
* Return the name of the application at index in the table of builtin
* applications.
*
****************************************************************************/
const char *namedapp_getname(int index)
const char *builtin_getname(int index)
{
if (index < 0 || index >= number_namedapps())
if (index < 0 || index >= number_builtins())
{
return NULL;
}
return namedapps[index].name;
return builtins[index].name;
}
/****************************************************************************
* Name: namedapp_isavail
* Name: builtin_isavail
*
* Description:
* Return the index into the table of applications for the applicaiton with
@ -99,13 +99,13 @@ const char *namedapp_getname(int index)
*
****************************************************************************/
int namedapp_isavail(FAR const char *appname)
int builtin_isavail(FAR const char *appname)
{
int i;
for (i = 0; namedapps[i].name; i++)
for (i = 0; builtins[i].name; i++)
{
if (!strcmp(namedapps[i].name, appname))
if (!strcmp(builtins[i].name, appname))
{
return i;
}
@ -116,39 +116,39 @@ int namedapp_isavail(FAR const char *appname)
}
/****************************************************************************
* Name: namedapp_isavail
* Name: builtin_isavail
*
* Description:
* Execute the application with name 'appname', providing the arguments
* in the argv[] array.
*
* Returned Value:
* On success, the task ID of the named application is returned. On
* On success, the task ID of the builtin application is returned. On
* failure, -1 (ERROR) is returned an the errno value is set appropriately.
*
****************************************************************************/
int exec_namedapp(FAR const char *appname, FAR const char **argv)
int exec_builtin(FAR const char *appname, FAR const char **argv)
{
pid_t pid;
int index;
/* Verify that an application with this name exists */
index = namedapp_isavail(appname);
index = builtin_isavail(appname);
if (index >= 0)
{
/* Disable pre-emption. This means that although we start the named
/* Disable pre-emption. This means that although we start the builtin
* application here, it will not actually run until pre-emption is
* re-enabled below.
*/
sched_lock();
/* Start the named application task */
/* Start the builtin application task */
pid = TASK_CREATE(namedapps[index].name, namedapps[index].priority,
namedapps[index].stacksize, namedapps[index].main,
pid = TASK_CREATE(builtins[index].name, builtins[index].priority,
builtins[index].stacksize, builtins[index].main,
(argv) ? &argv[1] : (const char **)NULL);
/* If robin robin scheduling is enabled, then set the scheduling policy
@ -165,11 +165,11 @@ int exec_namedapp(FAR const char *appname, FAR const char **argv)
* new task cannot yet have changed from its initial value.
*/
param.sched_priority = namedapps[index].priority;
param.sched_priority = builtins[index].priority;
sched_setscheduler(pid, SCHED_RR, &param);
}
#endif
/* Now let the named application run */
/* Now let the builtin application run */
sched_unlock();

View File

@ -52,7 +52,7 @@
* Public Types
****************************************************************************/
struct namedapp_s
struct builtin_s
{
const char *name; /* Invocation name and as seen under /sbin/ */
int priority; /* Use: SCHED_PRIORITY_DEFAULT */
@ -64,7 +64,7 @@ struct namedapp_s
* Public Data
****************************************************************************/
/* The "bindir" is file system that supports access to the named applications.
/* The "bindir" is file system that supports access to the builtin applications.
* It is typically mounted under /bin.
*/
@ -86,7 +86,7 @@ extern "C" {
#endif
/****************************************************************************
* Name: namedapp_isavail
* Name: builtin_isavail
*
* Description:
* Checks for availabiliy of application registerred during compile time.
@ -101,10 +101,10 @@ extern "C" {
*
****************************************************************************/
EXTERN int namedapp_isavail(FAR const char *appname);
EXTERN int builtin_isavail(FAR const char *appname);
/****************************************************************************
* Name: namedapp_getname
* Name: builtin_getname
*
* Description:
* Returns pointer to a name of built-in application pointed by the
@ -119,13 +119,13 @@ EXTERN int namedapp_isavail(FAR const char *appname);
*
****************************************************************************/
EXTERN const char *namedapp_getname(int index);
EXTERN const char *builtin_getname(int index);
/****************************************************************************
* Name: exec_namedapp
* Name: exec_builtin
*
* Description:
* Executes builtin named application registered during compile time.
* Executes builtin applications registered during 'make context' time.
* New application is run in a separate task context (and thread).
*
* Input Parameter:
@ -139,7 +139,7 @@ EXTERN const char *namedapp_getname(int index);
*
****************************************************************************/
EXTERN int exec_namedapp(FAR const char *appname, FAR const char **argv);
EXTERN int exec_builtin(FAR const char *appname, FAR const char **argv);
#undef EXTERN
#if defined(__cplusplus)

View File

@ -15,12 +15,12 @@ if NSH_LIBRARY
config NSH_BUILTIN_APPS
bool "Enable built-in applications"
default y
depends on NAMEDAPP
depends on BUILTIN
---help---
Support external registered, "named" applications that can be
Support external registered, "built-in" applications that can be
executed from the NSH command line (see apps/README.txt for
more information). This options requires support for named applications
(NAMEDAPP).
more information). This options requires support for builtin
applications (BUILTIN).
menu "Disable Individual commands"

View File

@ -945,7 +945,7 @@ NSH-Specific Configuration Settings
the configs/<board-name>/defconfig file:
* CONFIG_NSH_BUILTIN_APPS
Support external registered, "named" applications that can be
Support external registered, "builtin" applications that can be
executed from the NSH command line (see apps/README.txt for
more information).

View File

@ -90,7 +90,7 @@
* Attempt to execute the application task whose name is 'cmd'
*
* Returned Value:
* <0 If exec_namedapp() fails, then the negated errno value
* <0 If exec_builtin() fails, then the negated errno value
* is returned.
* -1 (ERROR) if the application task corresponding to 'cmd' could not
* be started (possibly because it doesn not exist).
@ -119,7 +119,7 @@ int nsh_execapp(FAR struct nsh_vtbl_s *vtbl, FAR const char *cmd,
* applications.
*/
ret = exec_namedapp(cmd, (FAR const char **)argv);
ret = exec_builtin(cmd, (FAR const char **)argv);
if (ret >= 0)
{
/* The application was successfully started (but still blocked because
@ -205,7 +205,7 @@ int nsh_execapp(FAR struct nsh_vtbl_s *vtbl, FAR const char *cmd,
sched_unlock();
/* If exec_namedapp() or waitpid() failed, then return the negated errno
/* If exec_builtin() or waitpid() failed, then return the negated errno
* value.
*/

View File

@ -605,7 +605,7 @@ static inline void help_builtins(FAR struct nsh_vtbl_s *vtbl)
/* List the set of available built-in commands */
nsh_output(vtbl, "\nBuiltin Apps:\n");
for (i = 0; (name = namedapp_getname(i)) != NULL; i++)
for (i = 0; (name = builtin_getname(i)) != NULL; i++)
{
nsh_output(vtbl, " %s\n", name);
}
@ -726,7 +726,7 @@ static int cmd_exit(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
* Exectue the command in argv[0]
*
* Returned Value:
* <0 If exec_namedapp() fails, then the negated errno value
* <0 If exec_builtin() fails, then the negated errno value
* is returned.
* -1 (ERRROR) if the command was unsuccessful
* 0 (OK) if the command was successful
@ -1439,13 +1439,13 @@ int nsh_parse(FAR struct nsh_vtbl_s *vtbl, char *cmdline)
}
/* Handle the case where the command is executed in background.
* However is app is to be started as namedapp new process will
* However is app is to be started as builtin new process will
* be created anyway, so skip this step. */
#ifndef CONFIG_NSH_DISABLEBG
if (vtbl->np.np_bg
#ifdef CONFIG_NSH_BUILTIN_APPS
&& namedapp_isavail(argv[0]) < 0
&& builtin_isavail(argv[0]) < 0
#endif
)
{

View File

@ -2515,7 +2515,7 @@ nsh>
<tr>
<td valign="top"><b><code>CONFIG_NSH_BUILTIN_APPS</code></b></td>
<td>
Support external registered, &quot;named&quot; applications that can be
Support external registered, &quot;builtin&quot; applications that can be
executed from the NSH command line (see apps/README.txt for
more information).
</td>
@ -3239,48 +3239,48 @@ Builtin Apps:
Note that no detailed help information beyond the name of the built-in application is provided.
</p>
<h3>4.3.1 Named Applications</h3>
<h3>4.3.1 Built-In Applications</h3>
<p>
<b>Overview.</b>
The underlying logic that supports the NSH built-in applications is called &quot;Named Applications&quot;.
The named application logic can be found at <code>apps/namedapp</code>.
The underlying logic that supports the NSH built-in applications is called &quot;Built-In Applications&quot;.
The builtin application logic can be found at <code>apps/builtin</code>.
This logic simply does the following:
</p>
<ol>
<li>
<p>
It supports registration mechanism so that named applications can dynamically register themselves at build time, and
It supports registration mechanism so that builtin applications can dynamically register themselves at build time, and
</p>
<li>
<p>
Utility functions to look up, list, and execute the named applications.
Utility functions to look up, list, and execute the builtin applications.
</p>
</ol>
<p>
<b>Named Application Utility Functions</b>.
The utility functions exported by the named application logic are prototyped in <code>apps/include/apps.h</code>.
<b>Built-In Application Utility Functions</b>.
The utility functions exported by the builtin application logic are prototyped in <code>apps/include/apps.h</code>.
These utility functions include:
</p>
<ul>
<li>
<p>
<code>int namedapp_isavail(FAR const char *appname);</code>
<code>int builtin_isavail(FAR const char *appname);</code>
Checks for availability of application registered as <code>appname</code> during build time.
</p>
<li>
<p>
<code>const char *namedapp_getname(int index);</code>
<code>const char *builtin_getname(int index);</code>
Returns a pointer to a name of built-in application pointed by the <code>index</code>.
This is the utility function that is used by NSH in order to list the available built-in applications when &quot;<code>nsh&gt; help</code>&quot; is entered.
</p>
<li>
<p>
<code>int exec_namedapp(FAR const char *appname, FAR const char **argv);</code>
Executes built-in named application registered during compile time.
<code>int exec_builtin(FAR const char *appname, FAR const char **argv);</code>
Executes built-in builtin application registered during compile time.
This is the utility function used by NSH to execute the built-in application.
</p>
</ul>
@ -3292,23 +3292,23 @@ Builtin Apps:
<ol>
<li>
<p>
<code>apps/namedapp/namedapp_proto.h</code>:
<code>apps/builtin/builtin_proto.h</code>:
Prototypes of application task entry points.
</p>
<li>
<p>
<code>apps/namedapp/namedapp_list.h</code>:
<code>apps/builtin/builtin_list.h</code>:
Application specific information and start-up requirements
</p>
</ol>
<p>
<b>Registration of Named Applications</b>.
<b>Registration of Built-In Applications</b>.
The NuttX build occurs in several phases as different build targets are executed:
(1) <i>context</i> when the configuration is established,
(2) <i>depend </i>when target dependencies are generated, and
(3) <i>default</i> (<code>all</code>) when the normal compilation and link operations are performed.
Named application information is collected during the make <i>context</i> build phase.
Built-in application information is collected during the make <i>context</i> build phase.
</p>
<p>
@ -3376,7 +3376,7 @@ make apps_distclean
</pre></ul>
<p>
Logic for the <code>context</code> target in <code>apps/examples/hello/Makefile</code> registers the <code>hello_main()</code> application in the <code>namedapp</code>'s <code>namedapp_proto.h</code>and <code>namedapp_list.h</code> files.
Logic for the <code>context</code> target in <code>apps/examples/hello/Makefile</code> registers the <code>hello_main()</code> application in the <code>builtin</code>'s <code>builtin_proto.h</code>and <code>builtin_list.h</code> files.
That logic that does that in <code>apps/examples/hello/Makefile</code> is abstracted below:
</p>
<ol>
@ -3388,13 +3388,13 @@ make apps_distclean
include $(APPDIR)/Make.defs
</pre></ul>
<p>
This defines a macro called <code>REGISTER</code> that adds data to the <i>namedapp</i> header files:
This defines a macro called <code>REGISTER</code> that adds data to the <i>builtin</i> header files:
</p>
<ul><pre>
define REGISTER
@echo &quot;Register: $1&quot;
@echo &quot;{ \&quot;$1\&quot;, $2, $3, $4 },&quot; &gt;&gt; &quot;$(APPDIR)/namedapp/namedapp_list.h&quot;
@echo &quot;EXTERN int $4(int argc, char *argv[]);&quot; &gt;&gt; &quot;$(APPDIR)/namedapp/namedapp_proto.h&quot;
@echo &quot;{ \&quot;$1\&quot;, $2, $3, $4 },&quot; &gt;&gt; &quot;$(APPDIR)/builtin/builtin_list.h&quot;
@echo &quot;EXTERN int $4(int argc, char *argv[]);&quot; &gt;&gt; &quot;$(APPDIR)/builtin/builtin_proto.h&quot;
endef
</pre></ul>
<p>
@ -3412,7 +3412,7 @@ STACKSIZE = 2048
<li>
<p>
And finally, the <code>Makefile</code> invokes the <code>REGISTER</code> macro to added the <code>hello_main()</code> named application.
And finally, the <code>Makefile</code> invokes the <code>REGISTER</code> macro to added the <code>hello_main()</code> builtin application.
Then, when the system build completes, the <code>hello</code> command can be executed from the NSH command line.
When the <code>hello</code> command is executed, it will start the task with entry point <code>hello_main()</code> with the default priority and with a stack size of 2K.
</p>
@ -3424,16 +3424,16 @@ STACKSIZE = 2048
</ol>
<p>
<b>Other Uses of Named Application.</b>
The primary purpose of named applications is to support command line execution of applications from NSH.
However, there are two other uses of named applications that should be mentioned.
<b>Other Uses of Built-In Application.</b>
The primary purpose of builtin applications is to support command line execution of applications from NSH.
However, there are two other uses of builtin applications that should be mentioned.
</p>
<ol>
<li>
<p>
<b>Named Application Start-Up <code>main()</code> function</b>.
A named application can even be used as the main, start-up entry point into your embedded software.
<b>Built-In Application Start-Up <code>main()</code> function</b>.
A builtin application can even be used as the main, start-up entry point into your embedded software.
When the user defines this option in the NuttX configuration file:
</p>
<ul><pre>
@ -3451,11 +3451,11 @@ CONFIG_BUILTIN_APP_START=&lt;application name&gt;
<li>
<p><b><i>binfs</i></b>.
<i>binfs</i> is a tiny file system located at <code>apps/namedapp/binfs.c</code>.
This provides an alternative what of visualizing installed named applications.
Without <i>binfs</i>, you can see the installed named applications using the NSH help command.
<i>binfs</i> is a tiny file system located at <code>apps/builtin/binfs.c</code>.
This provides an alternative what of visualizing installed builtin applications.
Without <i>binfs</i>, you can see the installed builtin applications using the NSH help command.
<i>binfs</i> will create a tiny pseudo-file system mounted at <code>/bin</code>.
Using <i>binfs</i>, you can see the available named applications by listing the contents of <code>/bin</code> directory.
Using <i>binfs</i>, you can see the available builtin applications by listing the contents of <code>/bin</code> directory.
This gives some superficial Unix compatibility, but does not really add any new functionality.
</p>
</ol>
@ -3762,7 +3762,12 @@ mount -t vfat /dev/ram1 /tmp
<li><a href="#cmdoverview">Background command priority</a></li>
<li><a href="#custapps"><code>binfs</code></a></li>
<li><a href="#custapps">Built-In applications</a></li>
<li><a href="#custapps">Built-In application start-up <code>main()</code></a></li>
<li><a href="#builtinvars">Built-in variables</a></li>
<li><a href="#custapps"><code>builtin_getname()</code></a></li>
<li><a href="#custapps"><code>builtin_isavail()</code></a></li>
<li><a href="#custapps"><code>builtin_list.h</code></a></li>
<li><a href="#custapps"><code>builtin_proto.h</code></a></li>
<li><a href="#cmdbase64dec"><code>base64dec</code></a></li>
<li><a href="#cmdbase64enc"><code>base64enc</code></a></li>
<li><a href="#cmdcat"><code>cat</code></a></li>
@ -3827,12 +3832,12 @@ mount -t vfat /dev/ram1 /tmp
<li><a href="#cmdecho"><code>echo</code></a></li>
<li><a href="#environvars">Environment Variables</a></li>
<li><a href="#startupscript"><code>/etc/init.d/rcS</code></a>
<li><a href="#cmdexec"><code>exec</code></a></li>
<li><a href="#custapps"><code>exec_namedapp()</code></a></li>
<li><a href="#cmdexit"><code>exit</code></a></li>
<li><a href="#cmdfree"><code>free</code></a></li>
</ul></td>
<td></ul>
<li><a href="#cmdexec"><code>exec</code></a></li>
<li><a href="#custapps"><code>exec_builtin()</code></a></li>
<li><a href="#cmdexit"><code>exit</code></a></li>
<li><a href="#cmdfree"><code>free</code></a></li>
<li><a href="#custoncmds"><code>g_cmdmap</code></a></li>
<li><a href="#custinit"><code>genromfs</code></a></li>
<li><a href="#cmdget"><code>get</code></a></li>
@ -3858,12 +3863,6 @@ mount -t vfat /dev/ram1 /tmp
<li><a href="#custinit"><code>mkromfsimg.sh</code></a></li>
<li><a href="#cmdmount"><code>mount</code></a></li>
<li><a href="#cmdmv"><code>mv</code></a></li>
<li><a href="#custapps">Named application start-up <code>main()</code></a></li>
<li><a href="#custapps">Named applications</a></li>
<li><a href="#custapps"><code>namedapp_getname()</code></a></li>
<li><a href="#custapps"><code>namedapp_isavail()</code></a></li>
<li><a href="#custapps"><code>namedapp_list.h</code></a></li>
<li><a href="#custapps"><code>namedapp_proto.h</code></a></li>
<li><a href="#cmdnfsmount"><code>nfsmount</code></a></li>
<li><a href="#cmdoverview"><code>nice</code></a></li>
<li><a href="#custonshlib">NSH library (<code>nshlib</code>)</a></li>
@ -3887,7 +3886,7 @@ mount -t vfat /dev/ram1 /tmp
<li><a href="#environvars"><code>PWD</code></a></li>
<li><a href="#custinit"><code>rcS.template</code></a></li>
<li><a href="#cmdoverview">Re-directed commands</a></li>
<li><a href="#custapps">Registration of named applications</a></li>
<li><a href="#custapps">Registration of builtin applications</a></li>
<li><a href="#cmdrm"><code>rm</code></a></li>
<li><a href="#cmdrmdir"><code>rmdir</code></a></li>
<li><a href="#custinit">ROMFS, Modifying the ROMFS image</a></li>

View File

@ -505,7 +505,7 @@ CONFIG_HAVE_CXX=y
#
# Named Applications
#
CONFIG_NAMEDAPP=y
CONFIG_BUILTIN=y
#
# Examples

View File

@ -334,7 +334,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -342,7 +342,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -531,7 +531,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
CONFIG_NAMEDAPP=y
CONFIG_BUILTIN=y
#
# Examples

View File

@ -370,7 +370,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -505,7 +505,7 @@ CONFIG_HAVE_CXX=y
#
# Named Applications
#
CONFIG_NAMEDAPP=y
CONFIG_BUILTIN=y
#
# Examples

View File

@ -630,7 +630,7 @@ CONFIG_HAVE_CXXINITIALIZE=y
#
# Named Applications
#
CONFIG_NAMEDAPP=y
CONFIG_BUILTIN=y
#
# Examples

View File

@ -474,7 +474,7 @@ CONFIG_HAVE_CXX=y
#
# Named Applications
#
CONFIG_NAMEDAPP=y
CONFIG_BUILTIN=y
#
# Examples

View File

@ -148,9 +148,9 @@ If you are running X11 applications as NSH add-on programs, then the stack
size of the add-on program is controlled in another way. Here are the
steps for increasing the stack size in that case:
cd ../apps/namedapps # Go to the namedapps directory
vi namedapps_list.h # Edit this file and increase the stack size of the add-on
rm .built *.o # This will force the namedapps logic to rebuild
cd ../apps/builtin # Go to the builtin apps directory
vi builtin_list.h # Edit this file and increase the stack size of the add-on
rm .built *.o # This will force the builtin apps logic to rebuild
Buffered I/O Issues
-------------------

View File

@ -298,7 +298,7 @@ CONFIG_UCLIBCXX_HAVE_LIBSUPCXX=y
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -376,7 +376,7 @@ CONFIG_HAVE_CXX=y
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -297,7 +297,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -659,7 +659,7 @@ CONFIG_HAVE_CXXINITIALIZE=y
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -494,7 +494,7 @@ CONFIG_HAVE_CXXINITIALIZE=y
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -487,7 +487,7 @@ CONFIG_HAVE_CXXINITIALIZE=y
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -428,7 +428,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
CONFIG_NAMEDAPP=y
CONFIG_BUILTIN=y
#
# Examples

View File

@ -410,7 +410,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -426,7 +426,7 @@ CONFIG_UCLIBCXX_HAVE_LIBSUPCXX=y
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -460,7 +460,7 @@ CONFIG_HAVE_CXX=y
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -518,7 +518,7 @@ CONFIG_HAVE_CXXINITIALIZE=y
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -430,7 +430,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -430,7 +430,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -12,7 +12,7 @@ Execution starts in the following order:
is set. It must be set for the VSN board.
- boot, performs initial chip and board initialization
- sched/os_bringup.c then calls either user_start or exec_namedapp()
- sched/os_bringup.c then calls either user_start or exec_builtin()
with application as set in the .config
@ -55,4 +55,5 @@ Compile notes
To link-in the sif_main() utility do, in this folder:
- make context TOPDIR=<path to nuttx top dir>
This will result in registering the application into the namedapp.
This will result in registering the application into the builtin application
registry.

View File

@ -303,7 +303,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -302,7 +302,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -303,7 +303,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -342,7 +342,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -342,7 +342,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -303,7 +303,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -302,7 +302,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -302,7 +302,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -329,7 +329,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -329,7 +329,7 @@ CONFIG_LIB_SENDFILE_BUFSIZE=512
#
# Named Applications
#
# CONFIG_NAMEDAPP is not set
# CONFIG_BUILTIN is not set
#
# Examples

View File

@ -189,11 +189,11 @@ int os_bringup(void)
svdbg("Starting init thread\n");
#ifdef CONFIG_BUILTIN_APP_START
/* Start the built-in named application, passing an "init" argument, so that
/* Start the built-in application, passing an "init" argument, so that
* application can distinguish different run-levels
*/
init_taskid = exec_namedapp(CONFIG_BUILTIN_APP_START, argv);
init_taskid = exec_builtin(CONFIG_BUILTIN_APP_START, argv);
#else
/* Start the default application at CONFIG_USER_ENTRYPOINT() */