Commit Graph

459 Commits

Author SHA1 Message Date
Tom Hughes
17b262ab87 Add support for CDROMREADRAW and fix CDROMREADTOCENTRY to mark the right
number of bytes as defined in the post handler. Fixes bug #126696.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5885
2006-05-08 11:37:04 +00:00
Julian Seward
e65eacec30 Increase # supported threads to 300 (see #126217).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5877
2006-05-03 13:52:47 +00:00
Julian Seward
7366e48895 Almost all the stuff in pub_tool_libcsignal.h was not used by any tool;
so has been moved back into pub_core_libcsignal.h.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5859
2006-04-19 19:31:46 +00:00
Nicholas Nethercote
1a7237d77b Remove tool-specific code (which says which tools allow XML) from the core
by introducing a new "need":  VG_(needs_xml_output)().


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5854
2006-04-16 10:25:43 +00:00
Julian Seward
7be0363d53 Un-break core dumping on ppc32-linux.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5852
2006-04-14 11:13:59 +00:00
Julian Seward
13ef1e1c45 Recent GCCs (3.4+ at least) optimize static unused functions out, so
making VALGRIND_PRINTF and VALGRIND_PRINTF_BACKTRACE static and
attribute unused proved to be much better than always compiling it as
exported weak function.  (Jakub Jelinek)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5845
2006-04-12 17:15:35 +00:00
Nicholas Nethercote
64fee8c4ce Add the O_LARGEFILE constant so people can use it when writing tools that
generate large trace files (> 2GB).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5842
2006-04-12 11:10:46 +00:00
Julian Seward
27b95f28a5 Cleanup/restructure m_debuginfo, as described in
coregrind/m_debuginfo/README.txt.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5823
2006-04-04 15:12:44 +00:00
Nicholas Nethercote
7852ab7f22 Make the BSD-style license notices slightly more accurate.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5803
2006-03-31 12:05:04 +00:00
Nicholas Nethercote
3d12e0e9db Terminology change: previously in Memcheck we had the four states:
noaccess, writable, readable, other

Now they are:

   noaccess, undefined, defined, partdefined

As a result, the following names:

   make_writable, make_readable,
   check_writable, check_readable, check_defined

have become:

   make_mem_undefined, make_mem_defined,
   check_mem_is_addressable, check_mem_is_defined, check_value_is_defined

(and likewise for the upper-case versions for client request macros).
The old MAKE_* and CHECK_* macros still work for backwards compatibility.

This is much better, because the old names were subtly misleading.  For
example:

  - "readable" really meant "readable and writable".
  - "writable" really meant "writable and maybe readable, depending on how
    the read value is used".
  - "check_writable" really meant "check writable or readable"

The new names avoid these problems.

The recently-added macro which was called MAKE_DEFINED is now
MAKE_MEM_DEFINED_IF_ADDRESSABLE.

I also corrected the spelling of "addressable" in numerous places in
memcheck.h.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5802
2006-03-31 11:57:59 +00:00
Julian Seward
bddfd8d600 Delete VG_(sigaltstack) and VG_(sigpending) as they are unused.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5799
2006-03-29 03:15:25 +00:00
Nicholas Nethercote
991367c922 Merge in the COMPVBITS branch to the trunk. This is a big change to
Memcheck, replacing the 9-bits-per-byte shadow memory representation to a
2-bits-per-byte representation (with possibly a little more on the side) by
taking advantage of the fact that extremely few memory bytes are partially
defined.

For the SPEC2k benchmarks with "test" inputs, this speeds up Memcheck by a
(geometric mean) factor of 1.20, and reduces the size of shadow memory by a
(geometric mean) factor of 4.26.

At the same time, Addrcheck is removed.  It hadn't worked for quite some
time, and with these improvements in Memcheck its raisons-d'etre have
shrivelled so much that it's not worth the effort to keep around.  Hooray!

Nb: this code hasn't been tested on PPC.  If things go wrong, look first in
the fast stack-handling functions (eg. mc_new_mem_stack_160,
MC_(helperc_MAKE_STACK_UNINIT)).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5791
2006-03-27 11:37:07 +00:00
Julian Seward
6cc171e050 Add missing CALL_FN_* macros for ppc64-linux.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5758
2006-03-12 16:48:14 +00:00
Julian Seward
fb374bd1f5 Add CALL_FN_* missing cases for ppc32-linux.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5754
2006-03-12 13:39:15 +00:00
Julian Seward
c4a8d96725 Complete CALL_FN_W_* wrappers for amd64-linux.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5748
2006-03-11 16:19:14 +00:00
Julian Seward
b0c46d47bd Add missing x86-linux CALL_FN_W_11W macro.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5745
2006-03-11 12:57:41 +00:00
Julian Seward
a701e9d4c4 Add a couple of missing cases. Function wrapping is really ugly :-(
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5734
2006-03-09 19:06:23 +00:00
Julian Seward
7622aee188 Add a missing case.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5656
2006-02-18 21:13:29 +00:00
Julian Seward
aa35c50723 Extend stack-permissions-change fast-case machinery to handle +/- 112,
128, 144 and 160.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5640
2006-02-12 15:42:20 +00:00
Tom Hughes
75b62afc07 Fix typo.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5639
2006-02-12 08:50:45 +00:00
Tom Hughes
8ff91e6d23 Add missing VKI_ prefixes.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5636
2006-02-11 16:31:54 +00:00
Tom Hughes
3c2633355f Implement the vm86 and vm86old system calls based on a patch
from Alper Akcan. Fixes bug #118939.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5635
2006-02-11 16:26:46 +00:00
Tom Hughes
8441a53495 Implement a few extra ioctls based on patch from Eric Pouech in bug #120728.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5633
2006-02-11 13:29:09 +00:00
Julian Seward
dd1dbcc10f Synthesise and deliver SIGTRAP to clients when requested to do so by vex.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5617
2006-02-07 20:56:41 +00:00
Julian Seward
72dd07b7ef Change the number of client request args from 4 to 5 as that may
be useful in future.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5603
2006-02-01 14:59:42 +00:00
Julian Seward
332b20ecef Make fn wrapping work again on ppc32-linux.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5573
2006-01-20 16:46:34 +00:00
Julian Seward
e6ffa0ee09 x86 function wrapping fixes.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5571
2006-01-20 15:46:46 +00:00
Julian Seward
83c10ad5b7 Make amd64 function wrapping work again following recent changes.
Includes expected outputs for wrap8 for the non ppc64-linux case.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5570
2006-01-20 15:17:20 +00:00
Julian Seward
6af183ac21 Changes to make function wrapping work better on ppc64-linux:
- when recording the non-redirected address in guest_NRADDR, also
  snapshot the current R2 value, as that will be needed to run the
  original safely

- As a consequence, the original-function information extracted by
  VALGRIND_GET_ORIG_FN is different on ppc64-linux (2 words) from
  all other platforms (1 word).  So change the type of it from
  void* to a new type OrigFn which can be defined differently for
  each platform.

- Change the CALL_FN_* macros for ppc64-linux to save/restore
  R2 values appropriately.

- ppc64-linux: detect overflow/underflow of the redirect stack
  and bring Valgrind to a halt if this happens

- Update VG_CLREQ_SZB for ppc32/64 (was out of date).





git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5569
2006-01-20 14:31:57 +00:00
Julian Seward
f0d678baab These files all speak about instrumentation functions.
Instrumentation functions now take a callback closure structure
(VgCallbackClosure*), so this commit changes the signatures
accordingly.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5535
2006-01-17 02:06:39 +00:00
Julian Seward
61c4ef43b3 ppc64-linux function wrapping support (does not work properly)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5529
2006-01-17 01:49:37 +00:00
Julian Seward
5e77fedd75 Fix more ppc64-linux function wrapping and symbol-table bits and pieces.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5523
2006-01-12 21:15:35 +00:00
Julian Seward
f9a9e03c7a Merge in function wrapping support from the FNWRAP branch. That
branch hereby becomes inactive.  This currently breaks everything
except x86; fixes for amd64/ppc32 to follow.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5520
2006-01-12 12:32:32 +00:00
Julian Seward
5777709dc1 Comment-only change.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5519
2006-01-12 12:29:42 +00:00
Nicholas Nethercote
bf162724b9 Merge in r5435 from COMPVBITS. Also added a note to
docs/internals/performance.txt about it.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5438
2005-12-25 06:34:04 +00:00
Nicholas Nethercote
7683c8c703 Fix a nasty 64-bit-uncleanness bug in OSet spotted by Julian -- for fast
comparisons it was only considering the bottom 32-bits of the key.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5427
2005-12-24 03:10:56 +00:00
Julian Seward
d188c6df73 ppc64 ELF allows the 288 bytes below the stack pointer to be accessed.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5425
2005-12-23 23:34:51 +00:00
Julian Seward
803a8f2100 Deal with function pointer vs function entry crazyness on ppc64-linux.
Memcheck is done, but any tool which generates IR helper calls will
need to be similarly adulterated.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5418
2005-12-23 02:29:58 +00:00
Nicholas Nethercote
1eb0c46b9f Add comment about log2().
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5408
2005-12-22 19:50:45 +00:00
Nicholas Nethercote
1decf7621a Add a destructor function to OSet_Destroy() which can be called for each
node.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5402
2005-12-22 06:20:59 +00:00
Nicholas Nethercote
e1a645cce6 Renamed coregrind.h to pub_core_clreq.h and introduced pub_tool_clreq.h to
be consistent with the module naming scheme.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5398
2005-12-21 20:22:52 +00:00
Nicholas Nethercote
3866282110 Remove all remaining profiling gunk.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5388
2005-12-19 22:48:39 +00:00
Cerion Armour-Brown
b714685c63 Take ppc64 startup further along the road
- fixed launcher.c to recognise ppc32/64-linux platforms properly
 - lots of assembly fixes to handle func descriptors, toc references, 64bit regs.
 - fixed var types in vki-ppc64-linux

Now gets as far as VG_(translate), but dies from a case of invalid orig_addr.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5299
2005-12-06 19:07:08 +00:00
Nicholas Nethercote
fe3cc3bdf9 Change hp2ps to output .ps files in the same dir that the .hp input files
are in.  This fixes bug #117686.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5287
2005-12-05 20:45:59 +00:00
Julian Seward
8ba9a34088 Add framework for ppc64 support. Apologies in advance for the
inevitable breakage to other platforms.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5250
2005-11-29 13:05:56 +00:00
Nicholas Nethercote
7f18ebbc33 comment-only change
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5199
2005-11-18 21:32:18 +00:00
Tom Hughes
2f49a0d567 Removed vki_ntohs definition and the infrastructure that supported
it as it is no longer used.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5164
2005-11-17 12:14:42 +00:00
Tom Hughes
e9b07e443e Move VG_(am_get_filename) to the tool accessible aspacemgr header file.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5141
2005-11-16 00:11:14 +00:00
Tom Hughes
39e6ec034f Handle some ALSA ioctls that don't have size or direction hints.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5131
2005-11-14 17:03:54 +00:00
Tom Hughes
09d3b7060d Add named constants for si_code values to replace the magic numbers.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5092
2005-11-12 00:13:20 +00:00