]> granicus.if.org Git - strace/blob - alpha.c
bfin, csky, m68k, sh: fix build regression
[strace] / alpha.c
1 /*
2  * Copyright (c) 2016 Dmitry V. Levin <ldv@altlinux.org>
3  * Copyright (c) 2016-2018 The strace developers.
4  * All rights reserved.
5  *
6  * SPDX-License-Identifier: LGPL-2.1-or-later
7  */
8
9 #include "defs.h"
10
11 #ifdef ALPHA
12
13 # include "xstring.h"
14
15 static int
16 decode_getxxid(struct tcb *tcp, const char *what)
17 {
18         if (entering(tcp))
19                 return 0;
20
21         long rval = getrval2(tcp);
22         if (rval == -1)
23                 return 0;
24         static const char const fmt[] = "%s %ld";
25         static char outstr[sizeof(fmt) + 3 * sizeof(rval)];
26         xsprintf(outstr, fmt, what, rval);
27         tcp->auxstr = outstr;
28         return RVAL_STR;
29 }
30
31 SYS_FUNC(getxpid)
32 {
33         return decode_getxxid(tcp, "ppid");
34 }
35
36 SYS_FUNC(getxuid)
37 {
38         return decode_getxxid(tcp, "euid");
39 }
40
41 SYS_FUNC(getxgid)
42 {
43         return decode_getxxid(tcp, "egid");
44 }
45
46 SYS_FUNC(osf_statfs)
47 {
48         printpath(tcp, tcp->u_arg[0]);
49         tprints(", ");
50         printaddr(tcp->u_arg[1]);
51         tprints(", ");
52         tprintf("%lu", tcp->u_arg[2]);
53         return RVAL_DECODED;
54 }
55
56 SYS_FUNC(osf_fstatfs)
57 {
58         printfd(tcp, tcp->u_arg[0]);
59         tprints(", ");
60         printaddr(tcp->u_arg[1]);
61         tprints(", ");
62         tprintf("%lu", tcp->u_arg[2]);
63         return RVAL_DECODED;
64 }
65
66 #endif /* ALPHA */