This jumbo-checkin is the Full Virtualization checkin.  This eliminates
Valgrind's dependency on the dynamic linker for getting started, and
instead takes things into its own hands.

This checkin doesn't add much in the way of new functionality, but it
is the basis for all future work on Valgrind.  It allows us much more
flexibility in implementation, and well as increasing the reliability
of Valgrind by protecting it more from its clients.

This patch requires some changes to tools to update them to the changes
in the tool API, but they are straightforward.  See the posting "Heads
up: Full Virtualization" on valgrind-developers for a more complete
description of this change and its effects on you.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2118 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/vg_constants.h b/coregrind/vg_constants.h
index 43f7044..7416f9d 100644
--- a/coregrind/vg_constants.h
+++ b/coregrind/vg_constants.h
@@ -65,6 +65,9 @@
 /* Offset of code in a TCEntry */
 #define VG_CODE_OFFSET		(8 + VG_MAX_JUMPS * 2)
 
+/* Client address space segment limit descriptor entry */
+#define VG_POINTERCHECK_SEGIDX	1
+
 /* Debugging hack for assembly code ... sigh. */
 #if 0
 #define OYNK(nnn) pushal;  pushl $nnn; call VG_(oynk) ; addl $4,%esp; popal
@@ -90,6 +93,29 @@
 /* Assembly code stubs make this request */
 #define VG_USERREQ__SIGNAL_RETURNS          0x4001
 
+/* Various environment variables we pay attention to */
+
+/* The directory we look for all our auxillary files in */
+#define VALGRINDLIB	"VALGRINDLIB"
+
+/* Additional command-line arguments; they are overridden by actual
+   command-line option.  Each argument is separated by spaces.  There
+   is no quoting mechanism.
+ */
+#define VALGRINDOPTS	"VALGRIND_OPTS"
+
+/* If this variable is present in the environment, then valgrind will
+   not parse the command line for options at all; all options come
+   from this variable.  Arguments are terminated by ^A (\001).  There
+   is no quoting mechanism.
+
+   This variable is not expected to be set by anything other than
+   Valgrind itself, as part of its handling of execve with
+   --trace-children=yes.  This variable should not be present in the
+   client environment.
+ */
+#define VALGRINDCLO	"_VALGRIND_CLO"
+
 #endif /* ndef __VG_CONSTANTS_H */
 
 /*--------------------------------------------------------------------*/