Commit Graph

29 Commits

Author SHA1 Message Date
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