1 --- strace-4.5.18/ipc.c.orig 2007-01-15 21:25:52.000000000 +0100
2 +++ strace-4.5.18/ipc.c 2009-09-30 17:48:38.080610937 +0200
7 +static const struct xlat semop_flags[] = {
8 + { SEM_UNDO, "SEM_UNDO" },
9 + { IPC_NOWAIT, "IPC_NOWAIT" },
23 tprintf("%lu", tcp->u_arg[0]);
24 if (indirect_ipccall(tcp)) {
25 - tprintf(", %#lx", tcp->u_arg[3]);
26 - tprintf(", %lu", tcp->u_arg[1]);
27 + tprintf(", %#lx {", tcp->u_arg[3]);
28 + for(i = 0; i < tcp->u_arg[1]; i++) {
30 + umove(tcp, tcp->u_arg[3]+i*sizeof(struct sembuf), &sb);
33 + tprintf("{%u, %d, ", sb.sem_num, sb.sem_op);
34 + printflags(semop_flags, sb.sem_flg, "SEM_???");
37 + tprintf("}, %lu", tcp->u_arg[1]);
39 - tprintf(", %#lx", tcp->u_arg[1]);
40 - tprintf(", %lu", tcp->u_arg[2]);
41 + tprintf(", %#lx {", tcp->u_arg[1]);
42 + for(i = 0; i < tcp->u_arg[2]; i++) {
44 + umove(tcp, tcp->u_arg[1]+i*sizeof(struct sembuf), &sb);
47 + tprintf("{%u, %d, ", sb.sem_num, sb.sem_op);
48 + printflags(semop_flags, sb.sem_flg, "SEM_???");
51 + tprintf("}, %lu", tcp->u_arg[2]);
56 int sys_semtimedop(tcp)
62 tprintf("%lu", tcp->u_arg[0]);
63 if (indirect_ipccall(tcp)) {
64 - tprintf(", %#lx", tcp->u_arg[3]);
65 - tprintf(", %lu, ", tcp->u_arg[1]);
66 + tprintf(", %#lx {", tcp->u_arg[3]);
67 + for(i = 0; i < tcp->u_arg[1]; i++) {
69 + umove(tcp, tcp->u_arg[3]+i*sizeof(struct sembuf), &sb);
72 + tprintf("{%u, %d, ", sb.sem_num, sb.sem_op);
73 + printflags(semop_flags, sb.sem_flg, "SEM_???");
76 + tprintf("}, %lu, ", tcp->u_arg[1]);
77 printtv(tcp, tcp->u_arg[5]);
79 - tprintf(", %#lx", tcp->u_arg[1]);
80 - tprintf(", %lu, ", tcp->u_arg[2]);
81 + tprintf(", %#lx {", tcp->u_arg[1]);
82 + for(i = 0; i < tcp->u_arg[2]; i++) {
84 + umove(tcp, tcp->u_arg[1]+i*sizeof(struct sembuf), &sb);
87 + tprintf("{%u, %d, ", sb.sem_num, sb.sem_op);
88 + printflags(semop_flags, sb.sem_flg, "SEM_???");
91 + tprintf("}, %lu, ", tcp->u_arg[2]);
92 printtv(tcp, tcp->u_arg[3]);