From 10ccba66712301b8b3157089fa85722d2ab94b8b Mon Sep 17 00:00:00 2001 From: ligd Date: Mon, 20 Dec 2021 12:21:47 +0800 Subject: [PATCH] init: move USERMAIN_XX out of INIT_ENTRYPOINT Signed-off-by: ligd --- .../applications/nsh/installation.rst | 6 +-- Documentation/guides/pysimcoder.rst | 2 +- ReleaseNotes | 4 +- include/nuttx/init.h | 2 +- sched/Kconfig | 42 +++++++++--------- sched/init/init.h | 2 +- sched/init/nx_bringup.c | 44 +++++++++---------- tools/cfgdefine.c | 2 +- 8 files changed, 52 insertions(+), 52 deletions(-) diff --git a/Documentation/applications/nsh/installation.rst b/Documentation/applications/nsh/installation.rst index 2df85474047..a6bd2e163ab 100644 --- a/Documentation/applications/nsh/installation.rst +++ b/Documentation/applications/nsh/installation.rst @@ -14,11 +14,11 @@ increasing difficulty: #. You replace the sample code at ``apps/examples/nsh/nsh_main.c`` with whatever start-up logic that you want. NSH is a library at ``apps/nshlib``. ``apps.examples/nsh`` is just a tiny, example - start-up function (``CONFIG_USER_ENTRYPOINT``\ ()) that that runs + start-up function (``CONFIG_INIT_ENTRYPOINT``\ ()) that runs immediately and illustrates how to start NSH If you want something else to run immediately then you can write your write your own custom - ``CONFIG_USER_ENTRYPOINT``\ () function and then start other tasks - from your custom ``CONFIG_USER_ENTRYPOINT``\ (). + ``CONFIG_INIT_ENTRYPOINT``\ () function and then start other tasks + from your custom ``CONFIG_INIT_ENTRYPOINT``\ (). #. NSH also supports a start-up script that executed when NSH first runs. This mechanism has the advantage that the start-up script can diff --git a/Documentation/guides/pysimcoder.rst b/Documentation/guides/pysimcoder.rst index 876968961ce..c227fb3777f 100644 --- a/Documentation/guides/pysimcoder.rst +++ b/Documentation/guides/pysimcoder.rst @@ -60,7 +60,7 @@ with NuttX. The list is the following: ``CONFIG_LIBC_EXECFUNCS=y`` ``CONFIG_SYMTAB_ORDEREDBYNAME=y`` ``CONFIG_LIBC_STRERROR=y`` ``CONFIG_SYSTEM_NSH=y`` ``CONFIG_MAX_TASKS=16`` ``CONFIG_SYSTEM_NSH_STACKSIZE=4096`` -``CONFIG_NSH_BUILTIN_APPS=y`` ``CONFIG_USER_ENTRYPOINT="nsh_main"`` +``CONFIG_NSH_BUILTIN_APPS=y`` ``CONFIG_INIT_ENTRYPOINT="nsh_main"`` ``CONFIG_NSH_FILEIOSIZE=512`` ==================================== ===================================== diff --git a/ReleaseNotes b/ReleaseNotes index 555e692baeb..a2291157c9c 100644 --- a/ReleaseNotes +++ b/ReleaseNotes @@ -3109,7 +3109,7 @@ Or Additional new features and extended functionality: * RTOS: Application entry point is no longer user_start, but can be - configured using CONFIG_USER_ENTRYPOINT. NuttX now supports two work + configured using CONFIG_INIT_ENTRYPOINT. NuttX now supports two work queues: A lower priority work queue (for extended processing) and a higher priority work queue (for quick, high priority operations). @@ -23783,7 +23783,7 @@ Additional new features and extended functionality: Jerpelea. - Enable internal flash storage for SPresence boards. The SmartFS flash is mounted under /mnt/spif folder. From Alin Jerpelea. - - For compatibility with SDK we need to change the USER_ENTRYPOINT + - For compatibility with SDK we need to change the INIT_ENTRYPOINT in all configurations to spresense_main(). From Alin Jerpelea. * STMicro STM32: diff --git a/include/nuttx/init.h b/include/nuttx/init.h index b688ac5a54d..1d73ba7aee2 100644 --- a/include/nuttx/init.h +++ b/include/nuttx/init.h @@ -94,7 +94,7 @@ EXTERN uint8_t g_nx_initstate; /* See enum nx_initstate_e */ /* This entry point must be supplied by the application */ -int CONFIG_USER_ENTRYPOINT(int argc, char *argv[]); +int CONFIG_INIT_ENTRYPOINT(int argc, char *argv[]); /* Functions contained in nx_task.c *****************************************/ diff --git a/sched/Kconfig b/sched/Kconfig index 633a33ad06d..5843b34497e 100644 --- a/sched/Kconfig +++ b/sched/Kconfig @@ -301,18 +301,18 @@ endif # SMP choice prompt "Initialization Task" - default INIT_ENTRYPOINT if !BUILD_KERNEL - default INIT_FILEPATH if !BINFMT_DISABLE + default INIT_ENTRY if !BUILD_KERNEL + default INIT_FILE if !BINFMT_DISABLE default INIT_NONE if BINFMT_DISABLE config INIT_NONE bool "None" -config INIT_ENTRYPOINT - bool "Via application entry point" +config INIT_ENTRY + bool "Via application entry" depends on !BUILD_KERNEL -config INIT_FILEPATH +config INIT_FILE bool "Via executable file" depends on !BINFMT_DISABLE @@ -325,39 +325,39 @@ config INIT_ARGS The argument list for user applications. e.g.: "\"arg1\",\"arg2\",\"arg3\"" -if INIT_ENTRYPOINT -config USER_ENTRYPOINT - string "Application entry point" - default "main" - ---help--- - The name of the entry point for user applications. For the example - applications this is of the form 'app_main' where 'app' is the application - name. If not defined, USER_ENTRYPOINT defaults to "main". - -config USERMAIN_STACKSIZE +config INIT_STACKSIZE int "Main thread stack size" default DEFAULT_TASK_STACKSIZE ---help--- The size of the stack to allocate for the user initialization thread that is started as soon as the OS completes its initialization. -config USERMAIN_PRIORITY +config INIT_PRIORITY int "init thread priority" default 100 ---help--- The priority of the user initialization thread. -endif # INIT_ENTRYPOINT +if INIT_ENTRY +config INIT_ENTRYPOINT + string "Application entry point" + default "main" + ---help--- + The name of the entry point for user applications. For the example + applications this is of the form 'app_main' where 'app' is the application + name. If not defined, INIT_ENTRYPOINT defaults to "main". -if INIT_FILEPATH +endif # INIT_ENTRY -config USER_INITPATH +if INIT_FILE + +config INIT_FILEPATH string "Application initialization path" default "/bin/init" ---help--- The name of the entry point for user applications. For the example applications this is of the form 'app_main' where 'app' is the application - name. If not defined, USER_ENTRYPOINT defaults to "main". + name. If not defined, INIT_ENTRYPOINT defaults to "main". config INIT_SYMTAB string "Symbol table" @@ -423,7 +423,7 @@ config INIT_MOUNT_DATA default "" endif # INIT_MOUNT -endif # INIT_FILEPATH +endif # INIT_FILE config RR_INTERVAL int "Round robin timeslice (MSEC)" diff --git a/sched/init/init.h b/sched/init/init.h index fe7b75937fe..1e389b5cd07 100644 --- a/sched/init/init.h +++ b/sched/init/init.h @@ -107,7 +107,7 @@ void nx_idle_trampoline(void); * And the main application entry point: * symbols: * - * - USER_ENTRYPOINT: This is the default user application entry point. + * - INIT_ENTRYPOINT: This is the default user application entry point. * * Input Parameters: * None diff --git a/sched/init/nx_bringup.c b/sched/init/nx_bringup.c index 66e5b0869b3..99c94c23595 100644 --- a/sched/init/nx_bringup.c +++ b/sched/init/nx_bringup.c @@ -58,34 +58,34 @@ # error No initialization mechanism selected (CONFIG_INIT_NONE) #else -# if !defined(CONFIG_INIT_ENTRYPOINT) && !defined(CONFIG_INIT_FILEPATH) +# if !defined(CONFIG_INIT_ENTRY) && !defined(CONFIG_INIT_FILE) /* For backward compatibility with older defconfig files when this was * the way things were done. */ -# define CONFIG_INIT_ENTRYPOINT 1 +# define CONFIG_INIT_ENTRY 1 # endif -# if defined(CONFIG_INIT_ENTRYPOINT) +# if defined(CONFIG_INIT_ENTRY) /* Initialize by starting a task at an entry point */ -# ifndef CONFIG_USER_ENTRYPOINT +# ifndef CONFIG_INIT_ENTRYPOINT /* Entry point name must have been provided */ -# error CONFIG_USER_ENTRYPOINT must be defined +# error CONFIG_INIT_ENTRYPOINT must be defined # endif -# elif defined(CONFIG_INIT_FILEPATH) +# elif defined(CONFIG_INIT_FILE) /* Initialize by running an initialization program in the file system. * Presumably the user has configured a board initialization function * that will mount the file system containing the initialization * program. */ -# ifndef CONFIG_USER_INITPATH +# ifndef CONFIG_INIT_FILEPATH /* Path to the initialization program must have been provided */ -# error CONFIG_USER_INITPATH must be defined +# error CONFIG_INT_FILEPATH must be defined # endif # if !defined(CONFIG_INIT_SYMTAB) || !defined(CONFIG_INIT_NEXPORTS) @@ -108,8 +108,8 @@ extern const int CONFIG_INIT_NEXPORTS; # undef CONFIG_LIBC_USRWORK #endif -#if !defined(CONFIG_USERMAIN_PRIORITY) -# define CONFIG_USERMAIN_PRIORITY SCHED_PRIORITY_DEFAULT +#if !defined(CONFIG_INIT_PRIORITY) +# define CONFIG_INIT_PRIORITY SCHED_PRIORITY_DEFAULT #endif /**************************************************************************** @@ -243,10 +243,10 @@ static inline void nx_start_application(void) board_late_initialize(); #endif -#if defined(CONFIG_INIT_ENTRYPOINT) +#if defined(CONFIG_INIT_ENTRY) /* Start the application initialization task. In a flat build, this is - * entrypoint is given by the definitions, CONFIG_USER_ENTRYPOINT. In + * entrypoint is given by the definitions, CONFIG_INIT_ENTRYPOINT. In * the protected build, however, we must get the address of the * entrypoint from the header at the beginning of the user-space blob. */ @@ -255,17 +255,17 @@ static inline void nx_start_application(void) #ifdef CONFIG_BUILD_PROTECTED DEBUGASSERT(USERSPACE->us_entrypoint != NULL); - ret = nxtask_create("init", CONFIG_USERMAIN_PRIORITY, - CONFIG_USERMAIN_STACKSIZE, + ret = nxtask_create("init", CONFIG_INIT_PRIORITY, + CONFIG_INIT_STACKSIZE, USERSPACE->us_entrypoint, argv); #else - ret = nxtask_create("init", CONFIG_USERMAIN_PRIORITY, - CONFIG_USERMAIN_STACKSIZE, - (main_t)CONFIG_USER_ENTRYPOINT, argv); + ret = nxtask_create("init", CONFIG_INIT_PRIORITY, + CONFIG_INIT_STACKSIZE, + (main_t)CONFIG_INIT_ENTRYPOINT, argv); #endif DEBUGASSERT(ret > 0); -#elif defined(CONFIG_INIT_FILEPATH) +#elif defined(CONFIG_INIT_FILE) #ifdef CONFIG_INIT_MOUNT /* Mount the file system containing the init program. */ @@ -281,9 +281,9 @@ static inline void nx_start_application(void) * of the board_late_initialize() operation. */ - sinfo("Starting init task: %s\n", CONFIG_USER_INITPATH); + sinfo("Starting init task: %s\n", CONFIG_INIT_FILEPATH); - ret = exec(CONFIG_USER_INITPATH, argv, + ret = exec(CONFIG_INIT_FILEPATH, argv, CONFIG_INIT_SYMTAB, CONFIG_INIT_NEXPORTS); DEBUGASSERT(ret >= 0); #endif @@ -377,9 +377,9 @@ static inline void nx_create_initthread(void) * And the main application entry point: * symbols, either: * - * - CONFIG_USER_ENTRYPOINT: This is the default user application entry + * - CONFIG_INIT_ENTRYPOINT: This is the default user application entry * point, or - * - CONFIG_USER_INITPATH: The full path to the location in a mounted + * - CONFIG_INIT_FILEPATH: The full path to the location in a mounted * file system where we can expect to find the * initialization program. Presumably, this file system * was mounted by board-specific logic when diff --git a/tools/cfgdefine.c b/tools/cfgdefine.c index 39cccacaacc..87ecb87d9e4 100644 --- a/tools/cfgdefine.c +++ b/tools/cfgdefine.c @@ -54,12 +54,12 @@ static const char *dequote_list[] = "CONFIG_INIT_ARGS", /* Argument list of entry point */ "CONFIG_INIT_SYMTAB", /* Global symbol table */ "CONFIG_INIT_NEXPORTS", /* Global symbol table size */ + "CONFIG_INIT_ENTRYPOINT", /* Name of entry point function */ "CONFIG_MODLIB_SYMTAB_ARRAY", /* Symbol table array used by modlib functions */ "CONFIG_MODLIB_NSYMBOLS_VAR", /* Variable holding number of symbols in the table */ "CONFIG_PASS1_BUILDIR", /* Pass1 build directory */ "CONFIG_PASS1_TARGET", /* Pass1 build target */ "CONFIG_PASS1_OBJECT", /* Pass1 build object */ - "CONFIG_USER_ENTRYPOINT", /* Name of entry point function */ /* NxWidgets/NxWM */