From owner-p4-projects@FreeBSD.ORG Thu Oct 23 06:25:37 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 76AE21065679; Thu, 23 Oct 2008 06:25:37 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3B2F11065674 for ; Thu, 23 Oct 2008 06:25:37 +0000 (UTC) (envelope-from peter-gmail@wemm.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 298EB8FC12 for ; Thu, 23 Oct 2008 06:25:37 +0000 (UTC) (envelope-from peter-gmail@wemm.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id m9N6PbED058278 for ; Thu, 23 Oct 2008 06:25:37 GMT (envelope-from peter-gmail@wemm.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id m9N6PbAI058276 for perforce@freebsd.org; Thu, 23 Oct 2008 06:25:37 GMT (envelope-from peter-gmail@wemm.org) Date: Thu, 23 Oct 2008 06:25:37 GMT Message-Id: <200810230625.m9N6PbAI058276@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter-gmail@wemm.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 151783 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Oct 2008 06:25:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=151783 Change 151783 by peter@peter_cheese on 2008/10/23 06:25:33 Checkpoint catchup to 3.3.2 Affected files ... .. //depot/projects/valgrind/coregrind/m_debugger.c#3 edit .. //depot/projects/valgrind/coregrind/m_libcfile.c#4 edit .. //depot/projects/valgrind/coregrind/m_libcproc.c#4 edit .. //depot/projects/valgrind/coregrind/m_libcsignal.c#4 edit .. //depot/projects/valgrind/coregrind/pub_core_machine.h#3 edit .. //depot/projects/valgrind/include/pub_tool_machine.h#3 edit .. //depot/projects/valgrind/include/vki/vki-freebsd.h#3 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_debugger.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ - + /*--------------------------------------------------------------------*/ /*--- Attaching a debugger. m_debugger.c ---*/ /*--------------------------------------------------------------------*/ @@ -211,6 +211,9 @@ #elif defined(VGP_ppc64_aix5) I_die_here; +#elif defined(VGP_x86_freebsd) || defined(VGP_amd64_freebsd) + I_die_here; + #else # error Unknown arch #endif ==== //depot/projects/valgrind/coregrind/m_libcfile.c#4 (text+ko) ==== @@ -227,6 +227,13 @@ TRANSLATE_TO_vg_stat(vgbuf, &buf); return res; } +# elif defined(VGO_freebsd) + { struct vki_stat buf; + res = VG_(do_syscall2)(__NR_stat, (UWord)file_name, (UWord)&buf); + if (!res.isError) + TRANSLATE_TO_vg_stat(vgbuf, &buf); + return res; + } # elif defined(VGO_aix5) { struct vki_stat buf; res = VG_(do_syscall4)(__NR_AIX5_statx, @@ -272,6 +279,13 @@ TRANSLATE_TO_vg_stat(vgbuf, &buf); return res.isError ? (-1) : 0; } +# elif defined(VGO_freebsd) + { struct vki_stat buf; + res = VG_(do_syscall2)(__NR_fstat, (UWord)fd, (UWord)&buf); + if (!res.isError) + TRANSLATE_TO_vg_stat(vgbuf, &buf); + return res.isError ? (-1) : 0; + } # elif defined(VGO_aix5) I_die_here; # else @@ -306,6 +320,8 @@ { # if defined(VGO_linux) return VG_(do_syscall2)(__NR_dup2, oldfd, newfd); +# elif defined(VGO_freebsd) + return VG_(do_syscall2)(__NR_dup2, oldfd, newfd); # elif defined(VGO_aix5) I_die_here; # else @@ -383,11 +399,20 @@ return True; } # elif defined(VGO_freebsd) - res = VG_(do_syscall2)(__NR___getcwd, (UWord)buf, size); + /* Simple: just ask the kernel */ + { SysRes res + = VG_(do_syscall2)(__NR___getcwd, (UWord)startup_wd, szB-1); + vg_assert(startup_wd[szB-1] == 0); + if (res.isError) { + return False; + } else { + startup_wd_acquired = True; + return True; + } + } # else # error Unknown OS # endif -#endif } /* Copy the previously acquired startup_wd into buf[0 .. size-1], ==== //depot/projects/valgrind/coregrind/m_libcproc.c#4 (text+ko) ==== @@ -228,7 +228,7 @@ Int VG_(waitpid)(Int pid, Int *status, Int options) { -# if defined(VGO_linux) +# if defined(VGO_linux) || defined(VGO_freebsd) SysRes res = VG_(do_syscall4)(__NR_wait4, pid, (UWord)status, options, 0); return res.isError ? -1 : res.res; # elif defined(VGO_aix5) @@ -372,7 +372,7 @@ Int VG_(gettid)(void) { // VG_(printf)("valgrind: gettid() faked\n"); - return VG_(do_syscall0)(__NR_getpid) . val; + return VG_(do_syscall0)(__NR_getpid).res; } #else Int VG_(gettid)(void) @@ -653,7 +653,7 @@ res = VG_(do_syscall6)(__NR___sysctl, (UWord)name, namelen, (UWord)oldp, (UWord)oldlenp, (UWord)newp, newlen); if (res.isError) return -1; - return res.val; + return res.res; } Int VG_(sysctlbyname)(const Char *name, void *oldp, vki_size_t *oldlenp, void *newp, vki_size_t newlen) @@ -681,7 +681,7 @@ res = VG_(do_syscall1)(__NR_modfind, (UWord)modname); if (res.isError) return -1; - return res.val; + return res.res; } #endif ==== //depot/projects/valgrind/coregrind/m_libcsignal.c#4 (text+ko) ==== @@ -234,7 +234,7 @@ static const struct vki_timespec zero = { 0, 0 }; /* only on freebsd6.x and higher */ SysRes res = VG_(do_syscall3)(__NR_sigtimedwait, (UWord)set, (UWord)info, - (UWord)timeout); + (UWord)&zero); return res.isError ? -1 : res.res; } #elif defined(VGO_aix5) || (defined(VGO_freebsd) && __FreeBSD__ < 6) ==== //depot/projects/valgrind/coregrind/pub_core_machine.h#3 (text+ko) ==== @@ -39,12 +39,12 @@ #include "pub_tool_machine.h" -#if defined(VGP_x86_linux) +#if defined(VGP_x86_linux) || defined(VGP_x86_freebsd) # define VG_ELF_DATA2XXX ELFDATA2LSB # define VG_ELF_MACHINE EM_386 # define VG_ELF_CLASS ELFCLASS32 # undef VG_PLAT_USES_PPCTOC -#elif defined(VGP_amd64_linux) +#elif defined(VGP_amd64_linux) || defined(VGP_amd64_freebsd) # define VG_ELF_DATA2XXX ELFDATA2LSB # define VG_ELF_MACHINE EM_X86_64 # define VG_ELF_CLASS ELFCLASS64 ==== //depot/projects/valgrind/include/pub_tool_machine.h#3 (text+ko) ==== @@ -31,13 +31,13 @@ #ifndef __PUB_TOOL_MACHINE_H #define __PUB_TOOL_MACHINE_H -#if defined(VGP_x86_linux) +#if defined(VGP_x86_linux) || defined(VGP_x86_freebsd) # define VG_MIN_INSTR_SZB 1 // min length of native instruction # define VG_MAX_INSTR_SZB 16 // max length of native instruction # define VG_CLREQ_SZB 14 // length of a client request, may // be larger than VG_MAX_INSTR_SZB # define VG_STACK_REDZONE_SZB 0 // number of addressable bytes below %RSP -#elif defined(VGP_amd64_linux) +#elif defined(VGP_amd64_linux) || defined(VGP_amd64_freebsd) # define VG_MIN_INSTR_SZB 1 # define VG_MAX_INSTR_SZB 16 # define VG_CLREQ_SZB 19 ==== //depot/projects/valgrind/include/vki/vki-freebsd.h#3 (text+ko) ==== @@ -255,6 +255,11 @@ // From sys/time.h //---------------------------------------------------------------------- +#define VKI_CLOCK_REALTIME 0 +#define VKI_CLOCK_MONOTONIC 1 +#define VKI_CLOCK_PROCESS_CPUTIME_ID 2 +#define VKI_CLOCK_THREAD_CPUTIME_ID 3 + struct vki_timezone { int tz_minuteswest; /* minutes west of Greenwich */ int tz_dsttime; /* type of dst correction */ @@ -336,9 +341,18 @@ vki_uid_t st_uid; vki_gid_t st_gid; vki_dev_t st_rdev; +#if 0 struct vki_timespec st_atimespec; struct vki_timespec st_mtimespec; struct vki_timespec st_ctimespec; +#else + vki_time_t st_atime; + long st_atime_nsec; + vki_time_t st_mtime; + long st_mtime_nsec; + vki_time_t st_ctime; + long st_ctime_nsec; +#endif vki_off_t st_size; vki_blkcnt_t st_blocks; vki_blksize_t st_blksize;