Gregory Nutt
20a86dfc1b
binfmt/ and sched/group: Re-architect the way that loadable ELF or NXFLAT modules are unloaded. Memory resources must be recovered when the task loaded into memory exits. The originmal implementatino used the death-of-child SIGCHLD signal to perform the unload. There are several problems with this: It is overly complex, it requires that the parent task stay resident while the loaded task runs, and it has fatal logic flaws in the protected and kernel model builds because the user signal handler attempts to run in the kernel address space. This commit corrects with using a mindlessly simply BINFMT callback when the task exits.
2018-08-05 08:09:54 -06:00
Masayuki Ishikawa
8ec22e916e
Merged in masayuki2009/nuttx.nuttx/refactor_binfmt_exec (pull request #697 )
...
binfmt: Refactor binfmt_exec.c
This change also fixes an argv issue for CONFIG_SCHED_ONEXIT=n
or CONFIG_SCHED_HAVE_PARENT=n
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Approved-by: GregoryN <gnutt@nuttx.org>
2018-07-26 13:40:28 +00:00
Gregory Nutt
5c4d45a331
Documentation and comments updated to further enshrine exec() as an official NuttX interface.
2017-10-03 07:52:05 -06:00
Gregory Nutt
bc2cded397
Squashed commit of the following:
...
binfmt: Fix some compilation issues introduced in previous changes. Verfied with the STM32F4-Discovery ELF configuration.
binfmt: schedule_unload() is an internal OS function and must not alter the errno variable.
binfmt: unload_module() is an internal OS function and must not alter the errno variable.
binfmt: load_module() is an internal OS function and must not alter the errno variable.
binfmt: exec_module() is an internal OS function and must not alter the errno variable.
2017-10-02 15:30:55 -06:00
Gregory Nutt
a1469a3e95
Add CONFIG_DEBUG_ERROR. Change names of *dbg() * *err()
2016-06-11 15:50:49 -06:00
Gregory Nutt
86b79b33cf
Reserver the name 'err' for other purposes
2016-06-11 14:40:07 -06:00
Gregory Nutt
4a7fb2cbc1
binfmt: Cosmetic -- rename binfmt_internal.h to binfmt.h. Move related argument copy logic into new file, binfmt_copyargv.c
2015-11-14 07:29:47 -06:00
Gregory Nutt
771bbc1be8
Cosmetic change to debug output
2014-12-08 09:43:01 -06:00
Gregory Nutt
d9344793a9
Remove unused setting of a variable
2014-12-07 07:16:20 -06:00
Gregory Nutt
bd1b5094b4
Trivial binfmt logic clean-up
2014-11-14 10:38:58 -06:00
Gregory Nutt
9e290c10b5
Fix some compile issues introduces with removal of CONFIG_MAX_TASK_ARGS
2014-11-14 09:53:11 -06:00
Gregory Nutt
7c119ba787
Binfmt no longer depends on a fixed sized argv[] list
2014-11-12 18:31:32 -06:00
Gregory Nutt
62880f60c4
In kernel mode, we have to duplicate the callers argv[] buffer when exec'ing new tasks. When the argv[] buffer is needed, the caller's address environment will not longer be in place
2014-09-14 14:10:23 -06:00
Gregory Nutt
b63eea45b6
Improved binfmt debug output
2014-09-07 13:47:01 -06:00
Gregory Nutt
205260d5e2
Reanem kzalloc to kmm_zalloc for consistency
2014-08-31 17:34:44 -06:00
Gregory Nutt
54fa3b0b59
Rename kfree to kmm_free for consistency with other naming conventions
2014-08-31 17:04:02 -06:00
Gregory Nutt
2dd9ce50c8
Clean-up up some warning
2014-07-11 11:58:46 -06:00
Gregory Nutt
5df891ff28
Fix an error in exec(). argv[] has not being passed
2014-06-15 13:22:44 -06:00
patacongo
329328e5df
New interface task_spawn(); exec_builtin() now uses task_spawn(); All argv types should be char * const * not const char **
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5598 42af7a65-404d-4744-a932-0658087f49c3
2013-02-02 19:31:30 +00:00
patacongo
3888a00d2d
Add internal API task_reparent(), used in posix_spawn(). Move libc/spawn/lib_ps.c to sched/task_posixspawn.c; Move libc/spawn/spawn.h to include/nuttx/spawn.h
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5531 42af7a65-404d-4744-a932-0658087f49c3
2013-01-18 01:52:42 +00:00
patacongo
4a801e4904
NSH will now run files from the file system; Add logic to unload and clean-up after running a task from a file system; Extensions to builtin apps from Mike Smith
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5529 42af7a65-404d-4744-a932-0658087f49c3
2013-01-17 18:32:13 +00:00
patacongo
956bded9c1
Add logic to automatically unload module on exit; Several patches from Mike Smith
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5528 42af7a65-404d-4744-a932-0658087f49c3
2013-01-17 14:43:55 +00:00
patacongo
828c1c65c7
Change the way thread priority is handled in binfmt/ to better match the way that priority is set up for the builtin tasks
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5527 42af7a65-404d-4744-a932-0658087f49c3
2013-01-17 00:30:12 +00:00
patacongo
c76795d32b
Add execv() and execl(); Move lm3s header files for compatibility
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5492 42af7a65-404d-4744-a932-0658087f49c3
2013-01-08 16:25:30 +00:00
patacongo
b8f437ef4b
Move binfmt.h, nxflat.h, elf.h, and symtab.h to include/nuttx/binfmt/
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5252 42af7a65-404d-4744-a932-0658087f49c3
2012-10-24 20:19:44 +00:00
patacongo
7a9457bb07
Email address change in nuttx/
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5145 42af7a65-404d-4744-a932-0658087f49c3
2012-09-13 18:32:24 +00:00
patacongo
99b0163fba
Changing NuttX fixed size type names to C99 standard names -- things will be broken for awhile
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2349 42af7a65-404d-4744-a932-0658087f49c3
2009-12-15 17:06:59 +00:00
patacongo
485c3066e1
Add fileno()
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1985 42af7a65-404d-4744-a932-0658087f49c3
2009-07-13 01:35:15 +00:00
patacongo
29899e1069
Added exec()
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1979 42af7a65-404d-4744-a932-0658087f49c3
2009-07-12 18:43:59 +00:00