Commit Graph

387 Commits

Author SHA1 Message Date
Nicholas Nethercote
e4cbc57ed9 Make the sys_newlstat wrapper more like those of similar *stat() syscalls.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10339
2009-06-15 07:43:50 +00:00
Nicholas Nethercote
d48af010b9 Add wrappers for shmat() and shmdt() on Darwin. Fixes bug 191271.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10297
2009-06-10 23:26:13 +00:00
Nicholas Nethercote
7a095f31f3 Added a wrapper and test for exchangedata() on Darwin. Fixes bug 195860.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10295
2009-06-10 22:58:27 +00:00
Nicholas Nethercote
a048647a9a Implement and test wrappers for lstat_extended, stat64_extended,
lstat64_extended, and improve the existing wrapper for stat_extended.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10291
2009-06-10 06:13:34 +00:00
Nicholas Nethercote
aa21ae3de1 Darwin syscall wrapper cleanups:
- Put Darwin syscall DECL_TEMPLATEs in syscall order.
- Removed the "sys_" prefix from Darwin-specific wrappers, it's not
  necessary.  Renamed a couple of other wrappers similarly.
- Removed the sys_fcntl64 Darwin wrapper, it was unused.
- Improved some code layout.
Overall this removes 6 "DDD"/"GrP" fixme comments.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10290
2009-06-10 04:11:56 +00:00
Nicholas Nethercote
ae530719e6 Add wrappers for sem_wait and sem_trywait on Darwin. Also change the layout
of some Darwin syscall stuff.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10288
2009-06-10 01:23:26 +00:00
Nicholas Nethercote
2a9e26c733 Handle shmctl on Darwin. From bug 191271.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10287
2009-06-09 23:44:42 +00:00
Nicholas Nethercote
4ddfee7723 Fix URB ioctl handling. Patch from Hector Martin (bug 191095).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10286
2009-06-09 23:03:02 +00:00
Nicholas Nethercote
a01f086879 Handle another Linux ioctl. Patch from Jay Foad.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10284
2009-06-09 22:31:00 +00:00
Julian Seward
4ece7c2449 x86-linux: sys_set_thread_area: don't allocate GDT entry number zero,
and reject attempts to use it.  This is because the hardware does not
allow entry zero to be used, and apparently doing so confuses some
code (perhaps Windows apps running on Wine).  Derived from a patch by
John Reiser.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10251
2009-06-05 13:17:31 +00:00
Nicholas Nethercote
3829cffbcf Increase a hard limit that was reached in the wild.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10250
2009-06-05 05:28:17 +00:00
Nicholas Nethercote
2314fe1acc For no apparent reason, the machine-dependent syscall
thread_fast_set_cthread_self was being called pthread_set_self.  This commit
fixes this.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10249
2009-06-05 01:33:16 +00:00
Nicholas Nethercote
5f8f34f8c0 Don't print stack traces by default for unhandled syscalls -- it's not that
useful but screws up the 'scalar' tests.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10219
2009-06-03 07:17:07 +00:00
Nicholas Nethercote
2a7d944c27 A number of changes relating to syscall numbering:
- Introduced VG_SYSNUM_STRING and VG_SYSNUM_STRING_EXTRA which factor out
  differences in the way syscall numbers are printed on different platforms.
  This gets rid of seven "DDD" fixme-style comments.

- This also meant that Darwin syscall numbers are now printed in a
  non-ambiguous way -- previously Unix, machine-dependent and diagnostic
  syscalls were all printed the same way, even though their numbers overlap.
  Now each number is prefixed with "unix", "mdep", etc.  And Mach trap
  numbers aren't printed as negative numbers now that they have a "mach"
  prefix.

- Split each of pub_core_vkiscnums.h and pub_tool_vkiscnums.h into two
  parts, one suitable for inclusion in asm files, one suitable for inclusion
  in C files;  in both cases the latter includes the former.  This makes
  this module more like other modules that have asm-only components (eg.
  m_transtab);  it also allows the hacky VG_IN_ASSEMBLY_SOURCE macros and
  tests to be removed.

- Removed some of the VG_DARWIN_SYSNO_* macros that were no longer needed,
  and renamed some of the existing ones to make their meanings clearer.

- Added comments on the encoding of Darwin syscall numbers so it's
  possible for mortals to understand without reading the kernel code..



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10218
2009-06-03 06:50:06 +00:00
Nicholas Nethercote
07045477ca Merge the DARWIN branch onto the trunk.
I tried using 'svn merge' to do the merge but it did a terrible job and
there were bazillions of conflicts.  So instead I just took the diff between
the branch and trunk  at r10155, applied the diff to the trunk, 'svn add'ed
the added files (no files needed to be 'svn remove'd) and committed.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10156
2009-05-28 01:53:07 +00:00
Nicholas Nethercote
ff9fe6eb81 DARWIN sync: timeval.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10150
2009-05-25 01:48:59 +00:00
Nicholas Nethercote
43c9f484e0 DARWIN sync: sys_truncate64 and sys_ftruncate64 wrappers.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10134
2009-05-24 23:02:55 +00:00
Nicholas Nethercote
93ab20a3de DARWIN sync: remove redundant check (it's done again in pre_mem_sock_addr()).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10133
2009-05-24 22:45:33 +00:00
Nicholas Nethercote
27ff9aaf29 DARWIN sync: sys_open wrapper.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10131
2009-05-24 22:32:33 +00:00
Nicholas Nethercote
63d3d86e21 DARWIN sync: sys_readlink layout.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10121
2009-05-23 01:51:54 +00:00
Nicholas Nethercote
e6f07f20d3 DARWIN sync: remove '.' from some field names for consistency, and factor
out some variables.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10119
2009-05-23 01:18:44 +00:00
Nicholas Nethercote
9633a4c11d DARWIN sync: all the timeval stuff
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10106
2009-05-22 08:12:46 +00:00
Nicholas Nethercote
3f5f690a32 DARWIN sync: comment and braces.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10102
2009-05-22 07:09:03 +00:00
Nicholas Nethercote
d3c159040a Abort on unknown fcntl, rather than doing no checking.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10094
2009-05-22 00:38:15 +00:00
Nicholas Nethercote
b4dbd225dd DARWIN sync: add ML_({PRE,POST}_unknown_ioctl).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10089
2009-05-22 00:15:06 +00:00
Nicholas Nethercote
8f020ede95 Merge r10085, r10086 (post-fork handling) from the DARWIN branch.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10087
2009-05-21 23:59:34 +00:00
Nicholas Nethercote
a739383a56 DARWIN sync: improve syscall retval tracking, and factor out position code.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10084
2009-05-21 23:53:40 +00:00
Nicholas Nethercote
7672429a62 DARWIN sync: whitespace change only.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10052
2009-05-20 08:14:23 +00:00
Nicholas Nethercote
cfda7a2e7c DARWIN sync: use Word instead of UWord for sysno in two places.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10030
2009-05-20 05:22:38 +00:00
Nicholas Nethercote
66972a860e DARWIN sync: change how newlines are printed for --trace-syscalls.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10029
2009-05-20 05:19:22 +00:00
Nicholas Nethercote
b3c1b6028b Be more consistent with the spacing of syscall nums.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10027
2009-05-20 05:05:56 +00:00
Nicholas Nethercote
7b2a259bea DARWIN sync: pread64 and pwrite64 wrappers.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9971
2009-05-19 06:50:37 +00:00
Nicholas Nethercote
131ab00744 Merged non-Darwin-specific parts of r9397,r9423,r9490, 9461, 9462 from the
DARWIN branch.  A big ugly DARWIN/trunk sync commit, mostly to do with
changing the representation of SysRes and vki_sigset_t.  Functionality of
the trunk shouldn't be changed by it.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9876
2009-05-18 02:12:08 +00:00
Nicholas Nethercote
3b87b28ca4 Merge r9828 (fix aspacem layering violation) from the DARWIN branch.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9831
2009-05-10 22:42:19 +00:00
Nicholas Nethercote
fcb90ff490 Merged r9657 (fdleak fixes) from the DARWIN branch.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9658
2009-04-28 05:35:53 +00:00
Tom Hughes
2d43007ce1 Add SIOCGSTAMPNS support. Fixes #188530.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9502
2009-03-31 10:36:58 +00:00
Nicholas Nethercote
2001629c3f Updated copyright years.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9344
2009-03-10 22:02:09 +00:00
Nicholas Nethercote
70150c5884 Use "status" as the argname for 'exit' and 'exit_group'.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9311
2009-03-03 05:39:23 +00:00
Nicholas Nethercote
da695aa41a atoll() is a terrible function -- you can't do any error checking with it.
Some of our option processing code uses it.  This means that eg.
'--log-fd=9xxx' logs to fd 9, and '--log-fd=blahblahblah' logs to 0 (because
atoll() returns 0 if the string doesn't contain a number!)

It turns out that most of our option processing uses VG_(strtoll*) instead
of VG_(atoll).  The reason that not all of it does is that the
option-processing macros are underpowered -- they currently work well if you
just want to assign the value to a variable, eg:

        VG_BOOL_CLO(arg, "--heap",   clo_heap)
   else VG_BOOL_CLO(arg, "--stacks", clo_stacks)

   else VG_NUM_CLO(arg, "--heap-admin", clo_heap_admin)
   else VG_NUM_CLO(arg, "--depth",      clo_depth)

(This works because they are actually an if-statement, but it looks odd.)

VG_NUM_CLO uses VG_(stroll10).  But if you want to do any checking or
processing, you can't use those macros, leading to code like this:

      else if (VG_CLO_STREQN(9,  arg, "--log-fd=")) {
         log_to            = VgLogTo_Fd;
         VG_(clo_log_name) = NULL;
         tmp_log_fd        = (Int)VG_(atoll)(&arg[9]);
      }

So this commit:
- Improves the *_CLO_* macros so that they can be used in all circumstances.
  They're now just expressions (albeit ones with side-effects, setting the
  named variable appropriately).  Thus they can be used as if-conditions,
  and any post-checking or processing can occur in the then-statement.  And
  malformed numeric arguments (eg. --log-fd=foo) aren't accepted.  This also
  means you don't have to specify the lengths of any option strings anywhere
  (eg.  the 9 in the --log-fd example above).  The use of a wrong number
  caused at least one bug, in Massif.
- Updates all places where the macros were used.
- Updates Helgrind to use the *_CLO_* macros (it didn't use them).
- Updates Callgrind to use the *_CLO_* macros (it didn't use them), except
  for the more esoteric option names (those with numbers in the option
  name).  This allowed getUInt() and getUWord() to be removed.
- Improves the cache option parsing in Cachegrind and Callgrind -- now uses
  VG_(strtoll10)(), detects overflow, and is shorter.
- Uses INT instead of NUM in the macro names, to distinguish better vs. the
  DBL macro.
- Removes VG_(atoll*) and the few remaining uses -- they're wretched
  functions and VG_(strtoll*) should be used instead.
- Adds the VG_STREQN macro.
- Changes VG_BINT_CLO and VG_BHEX_CLO to abort if the given value is outside
  the range -- the current silent truncation is likely to cause confusion as
  much as anything.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9255
2009-02-25 01:01:05 +00:00
Nicholas Nethercote
5aac956e64 Remove a number of unused parameters, found with -Wunused-parameter.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9248
2009-02-24 03:07:37 +00:00
Nicholas Nethercote
87b5e49494 Merge a large chunk of r8949 (the part that moved fcntl and ioctl wrappers
out of syswrap-generic into syswrap-linux) from the DARWIN branch.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9219
2009-02-22 23:00:30 +00:00
Nicholas Nethercote
68b5487a3a Make fcntl and fcntl64 wrappers more consistent.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9217
2009-02-22 22:23:09 +00:00
Nicholas Nethercote
3bfae3eec1 Merged r9185 (fix up getsockopt mess) from the DARWIN branch, minus the
Darwin-specific parts.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9186
2009-02-17 00:23:30 +00:00
Julian Seward
f3523a4a0e Some minor format string fixes for gcc-3.3.3 (SuSE 9.1). Not sure why
later gccs don't complain about these.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9019
2009-01-22 12:24:26 +00:00
Nicholas Nethercote
5ad1dd61f9 Introduce a new type, PtrdiffT. Replace lots of uses of OffT (all those
that are memory offsets) with PtrdiffT;  OffT should only be used for file
sizes and offsets.

Change Off64T from a ULong to a Long, as it should be.  Replace some uses
of ULong in the address space manager with Off64T to match.

Also add a comment explaining the meanings of the basic types like Addr,
OffT, SizeT, etc.

Also fix the prototype for VG_(pread) -- the last arg is an OffT, not an
Int.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8959
2009-01-15 21:29:24 +00:00
Tom Hughes
7e17bfc956 The SG_GET_TIMEOUT ioctl doesn't write to memory - it returns the
timeout via it's return value.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8958
2009-01-15 08:49:09 +00:00
Tom Hughes
9b5365f10d The SG_GET_VERSION_NUM ioctl writes to memory rather than reading it.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8957
2009-01-15 08:48:14 +00:00
Tom Hughes
f1ac1fd992 Add signalfd4 support.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8930
2009-01-09 16:42:51 +00:00
Tom Hughes
2ebda825b1 Add support ioprio_get and wire up ioprio_set on all platforms.
Fixes bug #177819.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8826
2008-12-15 08:58:29 +00:00
Julian Seward
05e92e79d9 Fix format string warning in PRE(sys_eventfd2).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8817
2008-12-12 08:08:58 +00:00