Commit Graph

31 Commits

Author SHA1 Message Date
Julian Seward
ab00074929 Change some int uses to Int (the house types).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4229
2005-07-23 09:22:46 +00:00
Julian Seward
6789f6542e A commit which is almost all trivial change.
- m_main: if --log-file-qualifier applies, do not add ".pid"
  at the end of the name

- Fix the logic which detected whether the just-devised name
  already existed.  This was broken (by me) because it could not
  distinguish the reasons for failing to open the logfile.

  Doing this required changing the return type of VG_(open)
  from Int to SysRes (to make failure reasons visible) and 
  that's the cause of most of the changes.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4228
2005-07-23 09:18:34 +00:00
Tom Hughes
5c41eefec8 The timeout argument to rt_sigtimedwait is in the third argument not
the fourth, plus linux allows it to be null.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4214
2005-07-20 09:32:35 +00:00
Tom Hughes
5e7b1d48c7 More system call fixups.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4213
2005-07-20 09:24:04 +00:00
Tom Hughes
dc892caf68 Fix compiler warning.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4190
2005-07-19 15:28:31 +00:00
Tom Hughes
bd8021aa26 Fix the mmap2 pre-handler to avoid corrupting the arguments when
it fails with ENOMEM due to a lack of memory.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4184
2005-07-19 13:04:04 +00:00
Tom Hughes
9a1ea2d7cc Fix crash when no environment is given to execve.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4169
2005-07-18 23:23:03 +00:00
Tom Hughes
5914fa6a53 Check members of the stack_t structure passed to sigaltstack
individually to avoid problems with padding on 64 bit platforms.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4168
2005-07-18 23:18:10 +00:00
Tom Hughes
ada7c716a1 Check each member of the ifconf structure passed to SIOCGIFCONF
individually to avoid problems with padding bytes on 64 bit platforms.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4167
2005-07-18 22:45:55 +00:00
Tom Hughes
2b08b3a3b0 Check each field of the msghdr structure passed to sendmsg/recvmsg
individually to avoid complaints due to uninitialised padding bytes
on 64 bit platforms.

Also fixed sendmsg to check things which should be initialised (the
msghdr structure and the iov array) properly instead of doing a write
check for everything.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4166
2005-07-18 22:41:33 +00:00
Nicholas Nethercote
776cd36bb4 add comment
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4163
2005-07-18 14:10:12 +00:00
Tom Hughes
a85d532b0d Take a copy of the environment given to execve before trying to mangle
it as it might be in read only memory. Fixes bug #101881.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4162
2005-07-18 14:02:11 +00:00
Tom Hughes
0fef787853 Handle the BLKGETSIZE64 ioctl. Fixes bug #104797.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4161
2005-07-18 13:26:55 +00:00
Tom Hughes
83dfcfa3f9 Allow a NULL argument to the times system call. Fixes bug #103509.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4158
2005-07-18 11:03:35 +00:00
Tom Hughes
fcf186b9c8 Sort out the mess that is pread64/pwrite64 properly. All three platforms
that we currently support use the same handlers in the kernel without any
platform specific wrappers.

The final argument is a 64 bit argument however, which means that it
requires two registers on x86 and ppc32 and only one on amd64. The
reason it works in the kernel is that x86 and ppc32 calling conventions
inside the kernel work out correctly and the values get joined together.

For our purposes we make x86 and ppc32 use the generic veneer with
five arguments and amd64 use a platform specific one with four...


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4110
2005-07-05 23:25:17 +00:00
Nicholas Nethercote
4e8bcf9076 Move the last remaining tests out of corecheck.
Also introduced VG_(showing_core_errors)() to make core error display
more consistent.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4073
2005-07-01 04:15:36 +00:00
Nicholas Nethercote
4560b81e33 Avoid magic numbers.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4057
2005-06-30 00:16:02 +00:00
Nicholas Nethercote
b9bec5539d Remove all the completely unused SF_* flags. I suspect some of the
remaining ones have no interesting effect, but I left them in.

Also simplify the signature for VG_(get_memory_from_mmap_for_client)().


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4045
2005-06-28 22:14:53 +00:00
Nicholas Nethercote
88b532de40 Simplify atfork to only provide the functionality we need.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4032
2005-06-26 15:11:37 +00:00
Cerion Armour-Brown
c259dd1e6d VG_() -> ML() for ppc32, amd64
(plus a few scattered ones in comments etc)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4003
2005-06-23 07:52:54 +00:00
Nicholas Nethercote
d463dd2292 Removed the VGA_/VGO_/VGP_ prefixes for arch/OS/platform-specific
things.  These made sense when the arch/OS/platform-specific code was in
one module, but as that code got mixed in with generic code the boundary
between generic and non-generic blurred, and the distinction made less
sense.  So let's get rid of them.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4002
2005-06-23 03:27:57 +00:00
Nicholas Nethercote
d35537f51f Removed some repetition in the way VG_(record_fd_open)() is called.
As part of this, VG_(resolve_filename)() no longer calls VG_(malloc)()
and so m_libcfile no longer depends on m_mallocfree.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4001
2005-06-23 02:26:47 +00:00
Julian Seward
9cb0696641 For symbols which have C-level global scope but which we regard as
module-local, use the new ML_ prefix instead of VG_.  This makes it
trivial to see which names are those exported from public module
interfaces: precisely those using VG_.

/* VG_ is for symbols exported from modules.  ML_ (module-local) is
   for symbols which are not intended to be visible outside modules,
   but which cannot be declared as C 'static's since they need to be
   visible across C files within a given module.  It is a mistake for
   a ML_ name to appear in a pub_core_*.h or pub_tool_*.h file.
   Likewise it is a mistake for a VG_ name to appear in a priv_*.h
   file. 
*/



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4000
2005-06-23 01:02:53 +00:00
Nicholas Nethercote
40a921359c Move VKI_SIGVGKILL and VKI_SIGVGRTUSERMAX out of vki-linux.h since they're
not really from the kernel and they're defined in terms of VG_(max_signal),
which is in m_signals.  Renamed them with the VG_ prefix too, since they're
now not part of the kernel interface.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3990
2005-06-21 22:23:59 +00:00
Nicholas Nethercote
ba17e79287 Slight reduce m_syswrap's dependence on m_signals by moving
VG_(client_signal_OK)().


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3982
2005-06-21 03:52:49 +00:00
Nicholas Nethercote
fc38860306 Don't #include pub_core_debuginfo.h in pub_core_aspacemgr.h. So have
to #include it explicitly in lots of other places, but at least the 
dependency is clear now.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3974
2005-06-21 00:28:11 +00:00
Cerion Armour-Brown
d5f7c8aed3 Finally, valgrind on ppc32.
Plenty still to do, but simple programs like ls seem to run ok

Thanks, Paul, for having your ppc port of valgrind 2.4 to work from!




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3969
2005-06-20 15:51:07 +00:00
Nicholas Nethercote
0100346c9d Remove some unnecessary #includes, comment some others.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3968
2005-06-20 14:18:12 +00:00
Nicholas Nethercote
ccbd29544d Moved VG_(resolve_filename{,_nodup}) from m_syswrap into m_libcfile,
so that m_aspacemgr doesn't depend on m_syswrap any more.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3960
2005-06-19 21:10:42 +00:00
Nicholas Nethercote
f174930b23 Final commit for the initial modularisation pass:
- Broke part of m_scheduler off into a new module m_threadstate.  It
  contains ThreadState, VG_(threads)[] and some basic operations on the
  thread table.  All simple stuff, the complex stuff stays in m_scheduler.
  This avoids lots of circular dependencies between m_scheduler and other
  modules.

- Managed to finally remove core.h and tool.h, double hurrah!

- Introduced pub_tool_basics.h and pub_core_basics.h, one of which is
  include by every single C file.

- Lots of little cleanups and changes related to the above.

- I even did a small amount of documentation updating.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3944
2005-06-19 01:24:32 +00:00
Nicholas Nethercote
b54b42c310 Rename m_syscalls/ as m_syswrap/ to complete the module renaming.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3924
2005-06-17 22:27:21 +00:00