head 1.5; access; symbols pkgsrc-2026Q1:1.5.0.152 pkgsrc-2026Q1-base:1.5 pkgsrc-2025Q4:1.5.0.150 pkgsrc-2025Q4-base:1.5 pkgsrc-2025Q3:1.5.0.148 pkgsrc-2025Q3-base:1.5 pkgsrc-2025Q2:1.5.0.146 pkgsrc-2025Q2-base:1.5 pkgsrc-2025Q1:1.5.0.144 pkgsrc-2025Q1-base:1.5 pkgsrc-2024Q4:1.5.0.142 pkgsrc-2024Q4-base:1.5 pkgsrc-2024Q3:1.5.0.140 pkgsrc-2024Q3-base:1.5 pkgsrc-2024Q2:1.5.0.138 pkgsrc-2024Q2-base:1.5 pkgsrc-2024Q1:1.5.0.136 pkgsrc-2024Q1-base:1.5 pkgsrc-2023Q4:1.5.0.134 pkgsrc-2023Q4-base:1.5 pkgsrc-2023Q3:1.5.0.132 pkgsrc-2023Q3-base:1.5 pkgsrc-2023Q2:1.5.0.130 pkgsrc-2023Q2-base:1.5 pkgsrc-2023Q1:1.5.0.128 pkgsrc-2023Q1-base:1.5 pkgsrc-2022Q4:1.5.0.126 pkgsrc-2022Q4-base:1.5 pkgsrc-2022Q3:1.5.0.124 pkgsrc-2022Q3-base:1.5 pkgsrc-2022Q2:1.5.0.122 pkgsrc-2022Q2-base:1.5 pkgsrc-2022Q1:1.5.0.120 pkgsrc-2022Q1-base:1.5 pkgsrc-2021Q4:1.5.0.118 pkgsrc-2021Q4-base:1.5 pkgsrc-2021Q3:1.5.0.116 pkgsrc-2021Q3-base:1.5 pkgsrc-2021Q2:1.5.0.114 pkgsrc-2021Q2-base:1.5 pkgsrc-2021Q1:1.5.0.112 pkgsrc-2021Q1-base:1.5 pkgsrc-2020Q4:1.5.0.110 pkgsrc-2020Q4-base:1.5 pkgsrc-2020Q3:1.5.0.108 pkgsrc-2020Q3-base:1.5 pkgsrc-2020Q2:1.5.0.104 pkgsrc-2020Q2-base:1.5 pkgsrc-2020Q1:1.5.0.84 pkgsrc-2020Q1-base:1.5 pkgsrc-2019Q4:1.5.0.106 pkgsrc-2019Q4-base:1.5 pkgsrc-2019Q3:1.5.0.102 pkgsrc-2019Q3-base:1.5 pkgsrc-2019Q2:1.5.0.100 pkgsrc-2019Q2-base:1.5 pkgsrc-2019Q1:1.5.0.98 pkgsrc-2019Q1-base:1.5 pkgsrc-2018Q4:1.5.0.96 pkgsrc-2018Q4-base:1.5 pkgsrc-2018Q3:1.5.0.94 pkgsrc-2018Q3-base:1.5 pkgsrc-2018Q2:1.5.0.92 pkgsrc-2018Q2-base:1.5 pkgsrc-2018Q1:1.5.0.90 pkgsrc-2018Q1-base:1.5 pkgsrc-2017Q4:1.5.0.88 pkgsrc-2017Q4-base:1.5 pkgsrc-2017Q3:1.5.0.86 pkgsrc-2017Q3-base:1.5 pkgsrc-2017Q2:1.5.0.82 pkgsrc-2017Q2-base:1.5 pkgsrc-2017Q1:1.5.0.80 pkgsrc-2017Q1-base:1.5 pkgsrc-2016Q4:1.5.0.78 pkgsrc-2016Q4-base:1.5 pkgsrc-2016Q3:1.5.0.76 pkgsrc-2016Q3-base:1.5 pkgsrc-2016Q2:1.5.0.74 pkgsrc-2016Q2-base:1.5 pkgsrc-2016Q1:1.5.0.72 pkgsrc-2016Q1-base:1.5 pkgsrc-2015Q4:1.5.0.70 pkgsrc-2015Q4-base:1.5 pkgsrc-2015Q3:1.5.0.68 pkgsrc-2015Q3-base:1.5 pkgsrc-2015Q2:1.5.0.66 pkgsrc-2015Q2-base:1.5 pkgsrc-2015Q1:1.5.0.64 pkgsrc-2015Q1-base:1.5 pkgsrc-2014Q4:1.5.0.62 pkgsrc-2014Q4-base:1.5 pkgsrc-2014Q3:1.5.0.60 pkgsrc-2014Q3-base:1.5 pkgsrc-2014Q2:1.5.0.58 pkgsrc-2014Q2-base:1.5 pkgsrc-2014Q1:1.5.0.56 pkgsrc-2014Q1-base:1.5 pkgsrc-2013Q4:1.5.0.54 pkgsrc-2013Q4-base:1.5 pkgsrc-2013Q3:1.5.0.52 pkgsrc-2013Q3-base:1.5 pkgsrc-2013Q2:1.5.0.50 pkgsrc-2013Q2-base:1.5 pkgsrc-2013Q1:1.5.0.48 pkgsrc-2013Q1-base:1.5 pkgsrc-2012Q4:1.5.0.46 pkgsrc-2012Q4-base:1.5 pkgsrc-2012Q3:1.5.0.44 pkgsrc-2012Q3-base:1.5 pkgsrc-2012Q2:1.5.0.42 pkgsrc-2012Q2-base:1.5 pkgsrc-2012Q1:1.5.0.40 pkgsrc-2012Q1-base:1.5 pkgsrc-2011Q4:1.5.0.38 pkgsrc-2011Q4-base:1.5 pkgsrc-2011Q3:1.5.0.36 pkgsrc-2011Q3-base:1.5 pkgsrc-2011Q2:1.5.0.34 pkgsrc-2011Q2-base:1.5 pkgsrc-2011Q1:1.5.0.32 pkgsrc-2011Q1-base:1.5 pkgsrc-2010Q4:1.5.0.30 pkgsrc-2010Q4-base:1.5 pkgsrc-2010Q3:1.5.0.28 pkgsrc-2010Q3-base:1.5 pkgsrc-2010Q2:1.5.0.26 pkgsrc-2010Q2-base:1.5 pkgsrc-2010Q1:1.5.0.24 pkgsrc-2010Q1-base:1.5 pkgsrc-2009Q4:1.5.0.22 pkgsrc-2009Q4-base:1.5 pkgsrc-2009Q3:1.5.0.20 pkgsrc-2009Q3-base:1.5 pkgsrc-2009Q2:1.5.0.18 pkgsrc-2009Q2-base:1.5 pkgsrc-2009Q1:1.5.0.16 pkgsrc-2009Q1-base:1.5 pkgsrc-2008Q4:1.5.0.14 pkgsrc-2008Q4-base:1.5 pkgsrc-2008Q3:1.5.0.12 pkgsrc-2008Q3-base:1.5 cube-native-xorg:1.5.0.10 cube-native-xorg-base:1.5 pkgsrc-2008Q2:1.5.0.8 pkgsrc-2008Q2-base:1.5 cwrapper:1.5.0.6 pkgsrc-2008Q1:1.5.0.4 pkgsrc-2008Q1-base:1.5 pkgsrc-2007Q4:1.5.0.2 pkgsrc-2007Q4-base:1.5 pkgsrc-2007Q3:1.3.0.4 pkgsrc-2007Q3-base:1.3 pkgsrc-2007Q2:1.3.0.2 pkgsrc-2007Q2-base:1.3 pkgsrc-2007Q1:1.2.0.10 pkgsrc-2007Q1-base:1.2 pkgsrc-2006Q4:1.2.0.8 pkgsrc-2006Q4-base:1.2 pkgsrc-2006Q3:1.2.0.6 pkgsrc-2006Q3-base:1.2 pkgsrc-2006Q2:1.2.0.4 pkgsrc-2006Q2-base:1.2 pkgsrc-2006Q1:1.2.0.2 pkgsrc-2006Q1-base:1.2; locks; strict; comment @# @; 1.5 date 2007.12.06.16.59.38; author christos; state Exp; branches; next 1.4; 1.4 date 2007.12.05.16.31.00; author christos; state Exp; branches; next 1.3; 1.3 date 2007.04.27.19.45.02; author christos; state Exp; branches; next 1.2; 1.2 date 2006.03.05.08.28.29; author christos; state Exp; branches; next 1.1; 1.1 date 2006.03.05.08.17.49; author christos; state Exp; branches; next ; desc @@ 1.5 log @PR/36778: Yakovetsky Vladimir: Fix linux build; many thanks. @ text @$NetBSD$ --- net.c.orig 2006-12-13 14:57:23.000000000 -0500 +++ net.c 2007-12-06 11:54:11.000000000 -0500 @@@@ -35,7 +35,6 @@@@ #include #include #include - #if defined(HAVE_SIN6_SCOPE_ID_LINUX) #define in6_addr in6_addr_libc #define ipv6_mreq ipv6_mreq_libc @@@@ -43,12 +42,19 @@@@ #endif #include -#ifdef HAVE_NETINET_TCP_H +#if defined(HAVE_NETINET_TCP_H) || defined(NETBSD) #include #endif -#ifdef HAVE_NETINET_UDP_H +#if defined(HAVE_NETINET_UDP_H) || defined(NETBSD) #include #endif +#ifdef NETBSD +#include +#include +#ifdef NETBSD +#define ucred uucred +#endif +#endif #include #include #if defined(LINUX) @@@@ -800,8 +806,12 @@@@ #ifdef SOL_PACKET static const struct xlat sockpacketoptions[] = { +#if defined(PACKET_ADD_MEMBERSHIP) { PACKET_ADD_MEMBERSHIP, "PACKET_ADD_MEMBERSHIP" }, +#endif +#if defined(PACKET_DROP_MEMBERSHIP) { PACKET_DROP_MEMBERSHIP, "PACKET_DROP_MEMBERSHIP"}, +#endif #if defined(PACKET_RECV_OUTPUT) { PACKET_RECV_OUTPUT, "PACKET_RECV_OUTPUT" }, #endif @@@@ -1099,7 +1109,7 @@@@ return; } - tprintf(", {cmsg_len=%zu, cmsg_level=", cmsg->cmsg_len); + tprintf(", {cmsg_len=%zu, cmsg_level=", (size_t)cmsg->cmsg_len); printxval(socketlayers, cmsg->cmsg_level, "SOL_???"); tprintf(", cmsg_type="); @@@@ -1125,12 +1135,21 @@@@ free(cmsg); return; } +#if !defined(SCM_CREDENTIALS) && defined(SCM_CREDS) +#define SCM_CREDENTIALS SCM_CREDS +#endif + if (cmsg->cmsg_type == SCM_CREDENTIALS && CMSG_LEN(sizeof(struct ucred)) <= cmsg_len) { struct ucred *uc = (struct ucred *) CMSG_DATA (cmsg); +#ifdef NETBSD + tprintf("{uid=%ld, gid=%ld}}", + (long)uc->cr_uid, (long)uc->cr_gid); +#else tprintf("{pid=%ld, uid=%ld, gid=%ld}}", (long)uc->pid, (long)uc->uid, (long)uc->gid); +#endif free(cmsg); return; } @@@@ -1472,7 +1491,7 @@@@ else tprintf("[%u, %u]", fds[0], fds[1]); } -#elif defined(SPARC) || defined(SPARC64) || defined(SH) || defined(SVR4) || defined(FREEBSD) || defined(IA64) +#elif defined(SPARC) || defined(SPARC64) || defined(SH) || defined(SVR4) || defined(ALLBSD) || defined(IA64) if (exiting(tcp)) tprintf("[%lu, %lu]", tcp->u_rval, getrval2(tcp)); #endif @@@@ -1519,9 +1538,9 @@@@ else tprintf(", [%u, %u]", fds[0], fds[1]); #endif /* LINUX */ -#if defined(SUNOS4) || defined(SVR4) || defined(FREEBSD) +#if defined(SUNOS4) || defined(SVR4) || defined(ALLBSD) tprintf(", [%lu, %lu]", tcp->u_rval, getrval2(tcp)); -#endif /* SUNOS4 || SVR4 || FREEBSD */ +#endif /* SUNOS4 || SVR4 || ALLBSD */ } return 0; } @ 1.4 log @Use newer strace 4.5.15; various improvements in syscall parsing and split functions into more files. @ text @d4 1 a4 1 +++ net.c 2007-12-05 11:19:06.000000000 -0500 d35 14 a48 1 @@@@ -1099,7 +1105,7 @@@@ d57 1 a57 1 @@@@ -1125,12 +1131,21 @@@@ d79 1 a79 1 @@@@ -1472,7 +1487,7 @@@@ d88 1 a88 1 @@@@ -1519,9 +1534,9 @@@@ @ 1.3 log @- make this work again on NetBSD/i386 - make this compile on NetBSD/x86_64 [does not work yet] - completely automate the NetBSD header generation. This should make porting to other platforms easier. @ text @d3 3 a5 3 --- net.c.orig 2005-07-04 19:33:38.000000000 -0400 +++ net.c 2007-04-27 14:58:48.000000000 -0400 @@@@ -35,6 +35,9 @@@@ d9 1 a9 4 +#ifdef NETBSD +#define ucred uucred +#endif d12 2 a13 1 @@@@ -43,12 +46,16 @@@@ d28 3 d35 1 a35 1 @@@@ -1099,7 +1106,7 @@@@ d44 1 a44 1 @@@@ -1125,12 +1132,21 @@@@ d66 1 a66 1 @@@@ -1470,7 +1486,7 @@@@ d75 1 a75 1 @@@@ -1517,9 +1533,9 @@@@ @ 1.2 log @delete a stray printf @ text @d1 1 a1 1 $NetBSD: patch-an,v 1.1 2006/03/05 08:17:49 christos Exp $ d3 6 a8 17 --- syscall.c 2006-01-12 05:18:53.000000000 -0500 +++ syscall.c 2006-03-05 03:27:00.000000000 -0500 @@@@ -38,9 +38,9 @@@@ #include #include #include +#include #include #include -#include #if HAVE_ASM_REG_H #if defined (SPARC) || defined (SPARC64) @@@@ -56,6 +56,10 @@@@ #endif #endif d10 1 a10 2 +#include +#include a11 6 #ifdef HAVE_SYS_REG_H #include #ifndef PTRACE_PEEKUSR @@@@ -634,6 +638,7 @@@@ } #endif d13 3 a15 9 +#ifndef NETBSD static void decode_subcall(tcp, subcall, nsubcalls, style) struct tcb *tcp; @@@@ -719,6 +724,7 @@@@ #endif /* FREEBSD */ } } +#endif /* !NETBSD */ d18 8 a25 3 struct tcb *tcp_last = NULL; @@@@ -855,9 +861,9 @@@@ static long rax; a26 30 #endif /* LINUX */ -#ifdef FREEBSD - struct reg regs; -#endif /* FREEBSD */ +#ifdef ALLBSD + static struct reg regs; +#endif /* ALLBSD */ int get_scno(tcp) @@@@ -1318,9 +1324,9 @@@@ #ifdef HAVE_PR_SYSCALL scno = tcp->status.PR_SYSCALL; #else /* !HAVE_PR_SYSCALL */ -#ifndef FREEBSD +#ifndef ALLBSD scno = tcp->status.PR_WHAT; -#else /* FREEBSD */ +#else /* ALLBSD */ if (pread(tcp->pfd_reg, ®s, sizeof(regs), 0) < 0) { perror("pread"); return -1; @@@@ -1334,8 +1340,28 @@@@ scno = regs.r_eax; break; } -#endif /* FREEBSD */ +#endif /* ALLBSD */ #endif /* !HAVE_PR_SYSCALL */ +#else /* !USE_PROCFS */ d28 2 a29 27 + if (ptrace(PTRACE_GETREGS,pid,(char *)®s, 0) < 0) { + perror("GETREGS"); + return -1; + } + switch (regs.r_eax) { + case SYS_syscall: + case SYS___syscall: + if ((scno = ptrace(PTRACE_PEEKUSER, pid, + (char *)regs.r_esp + sizeof(int), sizeof(int))) == -1) { + perror("PEEKUSER __syscall"); + return -1; + } + break; + default: + scno = regs.r_eax; + break; + } +#endif /* NETBSD */ #endif /* USE_PROCFS */ if (!(tcp->flags & TCB_INSYSCALL)) tcp->scno = scno; @@@@ -1360,7 +1386,9 @@@@ struct tcb *tcp; { #ifndef USE_PROCFS +#ifndef NETBSD int pid = tcp->pid; d31 6 a36 2 #else /* USE_PROCFS */ int scno = known_scno(tcp); d38 8 a45 12 @@@@ -1733,7 +1761,7 @@@@ } #endif /* MIPS */ #endif /* SVR4 */ -#ifdef FREEBSD +#ifdef ALLBSD if (regs.r_eflags & PSL_C) { tcp->u_rval = -1; u_error = regs.r_eax; @@@@ -1743,7 +1771,7 @@@@ ((unsigned long long) regs.r_edx << 32) + regs.r_eax; u_error = 0; d47 2 a48 22 -#endif /* FREEBSD */ +#endif /* ALLBSD */ tcp->u_error = u_error; return 1; } @@@@ -1926,6 +1954,20 @@@@ return -1; } #endif /* FREEBSD */ +#ifdef NETBSD + if (ptrace(PTRACE_GETREGS, tcp->pid, (char *)®s, 0) < 0) + return -1; + if (error) { + regs.r_eflags |= PSL_C; + regs.r_eax = error; + } + else { + regs.r_eflags &= ~PSL_C; + regs.r_eax = rval; + } + if (ptrace(PTRACE_SETREGS, tcp->pid, (char *)®s, 0) < 0) + return -1; d50 4 a54 46 /* All branches reach here on success (only). */ tcp->u_error = error; @@@@ -1938,7 +1980,9 @@@@ struct tcb *tcp; { #ifndef USE_PROCFS +#ifndef NETBSD int pid = tcp->pid; +#endif #endif /* !USE_PROCFS */ #ifdef LINUX #if defined(S390) || defined(S390X) @@@@ -2236,6 +2280,29 @@@@ I DONT KNOW WHAT TO DO #endif /* !HAVE_PR_SYSCALL */ #endif /* SVR4 */ +#ifdef NETBSD + if (tcp->scno >= 0 && tcp->scno < nsyscalls && sysent[tcp->scno].nargs != -1) + tcp->u_nargs = sysent[tcp->scno].nargs; + else + tcp->u_nargs = 5; + switch(regs.r_eax) { + case SYS___syscall: + umoven(tcp, regs.r_esp + sizeof(int) + sizeof(quad_t), + tcp->u_nargs * sizeof(unsigned long), + (char *) tcp->u_arg); + break; + case SYS_syscall: + umoven(tcp, regs.r_esp + 2 * sizeof(int), + tcp->u_nargs * sizeof(unsigned long), + (char *) tcp->u_arg); + break; + default: + umoven(tcp, regs.r_esp + sizeof(int), + tcp->u_nargs * sizeof(unsigned long), + (char *) tcp->u_arg); + break; + } +#endif /* NETBSD */ #ifdef FREEBSD if (tcp->scno >= 0 && tcp->scno < nsyscalls && sysent[tcp->scno].nargs > tcp->status.val) @@@@ -2648,6 +2715,14 @@@@ pread(tcp->pfd_reg, ®s, sizeof(regs), 0); val = regs.r_edx; #endif d56 5 a60 6 + struct reg regs; + if (ptrace(PTRACE_GETREGS, tcp->pid, (char *)®s, sizeof(regs)) < 0) { + perror("PTRACE_GETREGS get edx"); + return -1; + } + val = regs.r_edx; d62 23 a84 1 return val; a85 1 @ 1.1 log @add strace. This only works for NetBSD/i386 thus far. @ text @d1 1 a1 1 $NetBSD$ d4 1 a4 1 +++ syscall.c 2006-03-05 01:59:19.000000000 -0500 d27 1 a27 9 @@@@ -200,6 +204,7 @@@@ set_personality(personality) int personality; { +printf("setpersonality %d\n", personality); switch (personality) { case 0: errnoent = errnoent0; @@@@ -634,6 +639,7 @@@@ d35 1 a35 1 @@@@ -719,6 +725,7 @@@@ d43 1 a43 1 @@@@ -855,9 +862,9 @@@@ d56 1 a56 1 @@@@ -1318,9 +1325,9 @@@@ d68 1 a68 1 @@@@ -1334,8 +1341,28 @@@@ d98 1 a98 1 @@@@ -1360,7 +1387,9 @@@@ d108 1 a108 1 @@@@ -1733,7 +1762,7 @@@@ d117 1 a117 1 @@@@ -1743,7 +1772,7 @@@@ d126 1 a126 1 @@@@ -1926,6 +1955,20 @@@@ d147 1 a147 1 @@@@ -1938,7 +1981,9 @@@@ d157 1 a157 1 @@@@ -2236,6 +2281,29 @@@@ d187 1 a187 1 @@@@ -2648,6 +2716,14 @@@@ @