Browse Source

Disable the vfork() OS test... it fails

git-svn-id: http://svn.code.sf.net/p/nuttx/code/trunk@5489 42af7a65-404d-4744-a932-0658087f49c3
sbg
patacongo 12 years ago
parent
commit
5a9162f017
  1. 10
      apps/examples/ostest/vfork.c
  2. 10
      nuttx/arch/arm/src/common/up_vfork.c

10
apps/examples/ostest/vfork.c

@ -47,6 +47,16 @@ @@ -47,6 +47,16 @@
#include "ostest.h"
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Disabled this test for now. There are some issues with the vfork
* implementation.
*/
#undef CONFIG_ARCH_HAVE_VFORK
/****************************************************************************
* Private Data
****************************************************************************/

10
nuttx/arch/arm/src/common/up_vfork.c

@ -169,7 +169,11 @@ pid_t up_vfork(struct vfork_s *context) @@ -169,7 +169,11 @@ pid_t up_vfork(struct vfork_s *context)
return (pid_t)ERROR;
}
/* How much of the parent's stack was utilized? */
/* How much of the parent's stack was utilized? The ARM uses
* a push-down stack so that the current stack pointer should
* be lower than the initial, adjusted stack pointer. The
* stack usage should be the difference between those two.
*/
DEBUGASSERT((uint32_t)parent->adj_stack_ptr > context->sp);
stackutil = (uint32_t)parent->adj_stack_ptr - context->sp;
@ -177,7 +181,7 @@ pid_t up_vfork(struct vfork_s *context) @@ -177,7 +181,7 @@ pid_t up_vfork(struct vfork_s *context)
svdbg("stacksize:%d stackutil:%d\n", stacksize, stackutil);
/* Make some feeble effort to perserve the stack contents. This is
* feeble because the stack surely contains invalid pointer and other
* feeble because the stack surely contains invalid pointers and other
* content that will not work in the child context. However, if the
* user follows all of the caveats of vfor() usage, even this feeble
* effort is overkill.
@ -204,7 +208,7 @@ pid_t up_vfork(struct vfork_s *context) @@ -204,7 +208,7 @@ pid_t up_vfork(struct vfork_s *context)
svdbg("New stack base:%08x SP:%08x FP:%08x\n",
child->adj_stack_ptr, newsp, newfp);
/* Update the stack pointer, frame pointer, and voltile registers. When
/* Update the stack pointer, frame pointer, and voltile registers. When
* the child TCB was initialized, all of the values were set to zero.
* up_initial_state() altered a few values, but the return value in R0
* should be cleared to zero, providing the indication to the newly started

Loading…
Cancel
Save