mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-11-01 07:11:35 +08:00
Add basic hooks to support a PATH variable (more is needed)
git-svn-id: http://svn.code.sf.net/p/nuttx/code/trunk@5440 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
@@ -79,5 +79,3 @@ int clearenv(void)
|
||||
|
||||
#endif /* CONFIG_DISABLE_ENVIRON */
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -94,11 +94,11 @@ int env_release(FAR _TCB *ptcb)
|
||||
{
|
||||
/* Check the reference count on the environment structure */
|
||||
|
||||
if ( envp->ev_crefs <= 1)
|
||||
if (envp->ev_crefs <= 1)
|
||||
{
|
||||
/* Decrementing the reference count will destroy the environment */
|
||||
|
||||
sched_free( envp ); /* plain free() should be fine here */
|
||||
sched_free(envp);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <sched.h>
|
||||
#include <stdlib.h>
|
||||
#include <debug.h>
|
||||
|
||||
#include <nuttx/init.h>
|
||||
@@ -129,6 +130,17 @@ int os_bringup(void)
|
||||
#endif
|
||||
int init_taskid;
|
||||
|
||||
/* Setup up the initial environment for the idle task. At present, this
|
||||
* may consist of only the initial PATH variable. The PATH variable is
|
||||
* (probably) not used by the IDLE task. However, the environment
|
||||
* containing the PATH variable will be inherited by all of the threads
|
||||
* created by the IDLE task.
|
||||
*/
|
||||
|
||||
#if !defined(CONFIG_DISABLE_ENVIRON) && defined(CONFIG_PATH_INITIAL)
|
||||
(void)setenv("PATH", CONFIG_PATH_INITIAL, 1);
|
||||
#endif
|
||||
|
||||
/* Start the page fill worker kernel thread that will resolve page faults.
|
||||
* This should always be the first thread started because it may have to
|
||||
* resolve page faults in other threads
|
||||
@@ -190,5 +202,12 @@ int os_bringup(void)
|
||||
(main_t)CONFIG_USER_ENTRYPOINT, (const char **)NULL);
|
||||
#endif
|
||||
ASSERT(init_taskid != ERROR);
|
||||
|
||||
/* We an save a few bytes by discarding the IDLE thread's environment. */
|
||||
|
||||
#if !defined(CONFIG_DISABLE_ENVIRON) && defined(CONFIG_PATH_INITIAL)
|
||||
(void)clearenv();
|
||||
#endif
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
@@ -426,7 +426,9 @@ void os_start(void)
|
||||
lib_initialize();
|
||||
}
|
||||
|
||||
/* Create stdout, stderr, stdin */
|
||||
/* Create stdout, stderr, stdin on the IDLE task. These will be
|
||||
* inherited by all of the threads created by the IDLE task.
|
||||
*/
|
||||
|
||||
(void)sched_setupidlefiles(&g_idletcb);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user