the Elan3 user-space driver now works on unmodified Valgrind.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4238
" --run-libc-freeres=no|yes free up glibc memory at exit? [yes]\n"
" --weird-hacks=hack1,hack2,... recognised hacks: lax-ioctls,ioctl-mmap [none]\n"
" --pointercheck=no|yes enforce client address space limits [yes]\n"
-" --support-elan3=no|yes hacks for Quadrics Elan3 support [no]\n"
" --show-emwarns=no|yes show warnings about emulation limits? [no]\n"
" --smc-check=none|stack|all checks for self-modifying code: none,\n"
" only for code found in stacks, or all [stack]\n"
else VG_BOOL_CLO(arg, "--demangle", VG_(clo_demangle))
else VG_BOOL_CLO(arg, "--error-limit", VG_(clo_error_limit))
else VG_BOOL_CLO(arg, "--pointercheck", VG_(clo_pointercheck))
- else VG_BOOL_CLO(arg, "--support-elan3", VG_(clo_support_elan3))
else VG_BOOL_CLO(arg, "--show-emwarns", VG_(clo_show_emwarns))
else VG_NUM_CLO (arg, "--max-stackframe", VG_(clo_max_stackframe))
else VG_BOOL_CLO(arg, "--profile", VG_(clo_profile))
Bool VG_(clo_track_fds) = False;
Bool VG_(clo_show_below_main)= False;
Bool VG_(clo_pointercheck) = True;
-Bool VG_(clo_support_elan3) = False;
Bool VG_(clo_branchpred) = False;
Bool VG_(clo_model_pthreads) = False;
Bool VG_(clo_show_emwarns) = False;
If the clone call specifies a NULL esp for the new thread, then
it actually gets a copy of the parent's esp.
*/
- /* HACK: The clone call done by the Quadrics Elan3 driver specifies
+ /* Note: the clone call done by the Quadrics Elan3 driver specifies
clone flags of 0xF00, and it seems to rely on the assumption
- that the child inherits a copy of the parent's GDT. Hence that
- is passed as an arg to setup_child. */
- setup_child( &ctst->arch, &ptst->arch, True /*VG_(clo_support_elan3)*/ );
+ that the child inherits a copy of the parent's GDT.
+ setup_child takes care of setting that up. */
+ setup_child( &ctst->arch, &ptst->arch, True );
/* Make sys_clone appear to have returned Success(0) in the
child. */
VG_(message)(Vg_UserMsg, "");
VG_(message)(Vg_UserMsg, "Unsupported clone() flags: 0x%x", ARG1);
VG_(message)(Vg_UserMsg, "");
- VG_(message)(Vg_UserMsg, "NOTE: if this happened when attempting "
- "to run code using");
- VG_(message)(Vg_UserMsg, " Quadrics Elan3 user-space drivers,"
- " you should re-run ");
- VG_(message)(Vg_UserMsg, " with --support-elan3=yes.");
- VG_(message)(Vg_UserMsg, "");
VG_(message)(Vg_UserMsg, "The only supported clone() uses are:");
VG_(message)(Vg_UserMsg, " - via a threads library (LinuxThreads or NPTL)");
VG_(message)(Vg_UserMsg, " - via the implementation of fork or vfork");
/* Model the pthread library */
extern Bool VG_(clo_model_pthreads);
-/* HACK: Use hacked version of clone for Quadrics Elan3 drivers */
-extern Bool VG_(clo_support_elan3);
-
/* Should we show VEX emulation warnings? Default: NO */
extern Bool VG_(clo_show_emwarns);
--run-libc-freeres=no|yes free up glibc memory at exit? [yes]
--weird-hacks=hack1,hack2,... recognised hacks: lax-ioctls,ioctl-mmap [none]
--pointercheck=no|yes enforce client address space limits [yes]
- --support-elan3=no|yes hacks for Quadrics Elan3 support [no]
--show-emwarns=no|yes show warnings about emulation limits? [no]
--smc-check=none|stack|all checks for self-modifying code: none,
only for code found in stacks, or all [stack]
--run-libc-freeres=no|yes free up glibc memory at exit? [yes]
--weird-hacks=hack1,hack2,... recognised hacks: lax-ioctls,ioctl-mmap [none]
--pointercheck=no|yes enforce client address space limits [yes]
- --support-elan3=no|yes hacks for Quadrics Elan3 support [no]
--show-emwarns=no|yes show warnings about emulation limits? [no]
--smc-check=none|stack|all checks for self-modifying code: none,
only for code found in stacks, or all [stack]