Revision c16f9ed3 linux-user/strace.c

b/linux-user/strace.c
16 16
    char *name;
17 17
    char *format;
18 18
    void (*call)(struct syscallname *,
19
                 target_long, target_long, target_long,
20
                 target_long, target_long, target_long);
21
    void (*result)(struct syscallname *, target_long);
19
                 abi_long, abi_long, abi_long,
20
                 abi_long, abi_long, abi_long);
21
    void (*result)(struct syscallname *, abi_long);
22 22
};
23 23

  
24 24
/*
......
74 74
    gemu_log("%d",cmd);
75 75
}
76 76

  
77
#ifdef TARGET_NR__newselect
77 78
static void
78
print_fdset(int n, target_ulong target_fds_addr)
79
print_fdset(int n, abi_ulong target_fds_addr)
79 80
{
80 81
    int i;
81 82

  
......
101 102
}
102 103

  
103 104
static void
104
print_timeval(target_ulong tv_addr)
105
print_timeval(abi_ulong tv_addr)
105 106
{
106 107
    if( tv_addr ) {
107 108
        struct target_timeval *tv;
......
115 116
    } else
116 117
        gemu_log("NULL");
117 118
}
119
#endif
118 120

  
119 121
/*
120 122
 * Sysycall specific output functions
121 123
 */
122 124

  
123 125
/* select */
126
#ifdef TARGET_NR__newselect
124 127
static long newselect_arg1 = 0;
125 128
static long newselect_arg2 = 0;
126 129
static long newselect_arg3 = 0;
......
129 132

  
130 133
static void
131 134
print_newselect(struct syscallname *name,
132
                target_long arg1, target_long arg2, target_long arg3,
133
                target_long arg4, target_long arg5, target_long arg6)
135
                abi_long arg1, abi_long arg2, abi_long arg3,
136
                abi_long arg4, abi_long arg5, abi_long arg6)
134 137
{
135
    gemu_log("%s(" TARGET_FMT_ld ",", name->name, arg1);
138
    gemu_log("%s(" TARGET_ABI_FMT_ld ",", name->name, arg1);
136 139
    print_fdset(arg1, arg2);
137 140
    gemu_log(",");
138 141
    print_fdset(arg1, arg3);
......
149 152
    newselect_arg4=arg4;
150 153
    newselect_arg5=arg5;
151 154
}
155
#endif
152 156

  
153 157
static void
154 158
print_semctl(struct syscallname *name,
155
             target_long arg1, target_long arg2, target_long arg3,
156
             target_long arg4, target_long arg5, target_long arg6)
159
             abi_long arg1, abi_long arg2, abi_long arg3,
160
             abi_long arg4, abi_long arg5, abi_long arg6)
157 161
{
158
    gemu_log("%s(" TARGET_FMT_ld "," TARGET_FMT_ld ",", name->name, arg1, arg2);
162
    gemu_log("%s(" TARGET_ABI_FMT_ld "," TARGET_ABI_FMT_ld ",", name->name, arg1, arg2);
159 163
    print_ipc_cmd(arg3);
160
    gemu_log(",0x" TARGET_FMT_lx ")", arg4);
164
    gemu_log(",0x" TARGET_ABI_FMT_lx ")", arg4);
161 165
}
162 166

  
163 167
static void
164 168
print_execve(struct syscallname *name,
165
             target_long arg1, target_long arg2, target_long arg3,
166
             target_long arg4, target_long arg5, target_long arg6)
169
             abi_long arg1, abi_long arg2, abi_long arg3,
170
             abi_long arg4, abi_long arg5, abi_long arg6)
167 171
{
168
    target_ulong arg_ptr_addr;
172
    abi_ulong arg_ptr_addr;
169 173
    char *s;
170 174

  
171 175
    if (!(s = lock_user_string(arg1)))
......
173 177
    gemu_log("%s(\"%s\",{", name->name, s);
174 178
    unlock_user(s, arg1, 0);
175 179

  
176
    for (arg_ptr_addr = arg2; ; arg_ptr_addr += sizeof(target_ulong)) {
177
        target_ulong *arg_ptr, arg_addr, s_addr;
180
    for (arg_ptr_addr = arg2; ; arg_ptr_addr += sizeof(abi_ulong)) {
181
        abi_ulong *arg_ptr, arg_addr, s_addr;
178 182

  
179
	arg_ptr = lock_user(VERIFY_READ, arg_ptr_addr, sizeof(target_ulong), 1);
183
	arg_ptr = lock_user(VERIFY_READ, arg_ptr_addr, sizeof(abi_ulong), 1);
180 184
        if (!arg_ptr)
181 185
            return;
182 186
	arg_addr = tswapl(*arg_ptr);
......
192 196
    gemu_log("NULL})");
193 197
}
194 198

  
199
#ifdef TARGET_NR_ipc
195 200
static void
196 201
print_ipc(struct syscallname *name,
197
          target_long arg1, target_long arg2, target_long arg3,
198
          target_long arg4, target_long arg5, target_long arg6)
202
          abi_long arg1, abi_long arg2, abi_long arg3,
203
          abi_long arg4, abi_long arg5, abi_long arg6)
199 204
{
200 205
    switch(arg1) {
201 206
    case IPCOP_semctl:
......
203 208
        print_semctl(name,arg2,arg3,arg4,arg5,arg6,0);
204 209
        break;
205 210
    default:
206
        gemu_log("%s(" TARGET_FMT_ld "," TARGET_FMT_ld "," TARGET_FMT_ld "," TARGET_FMT_ld ")",
211
        gemu_log("%s(" TARGET_ABI_FMT_ld "," TARGET_ABI_FMT_ld "," TARGET_ABI_FMT_ld "," TARGET_ABI_FMT_ld ")",
207 212
                 name->name, arg1, arg2, arg3, arg4);
208 213
    }
209 214
}
215
#endif
210 216

  
211 217
/*
212 218
 * Variants for the return value output function
213 219
 */
214 220

  
215 221
static void
216
print_syscall_ret_addr(struct syscallname *name, target_long ret)
222
print_syscall_ret_addr(struct syscallname *name, abi_long ret)
217 223
{
218 224
if( ret == -1 ) {
219 225
        gemu_log(" = -1 errno=%d (%s)\n", errno, target_strerror(errno));
220 226
    } else {
221
        gemu_log(" = " TARGET_FMT_lx "\n", ret);
227
        gemu_log(" = " TARGET_ABI_FMT_lx "\n", ret);
222 228
    }
223 229
}
224 230

  
225 231
#if 0 /* currently unused */
226 232
static void
227
print_syscall_ret_raw(struct syscallname *name, target_long ret)
233
print_syscall_ret_raw(struct syscallname *name, abi_long ret)
228 234
{
229
        gemu_log(" = " TARGET_FMT_lx "\n", ret);
235
        gemu_log(" = " TARGET_ABI_FMT_lx "\n", ret);
230 236
}
231 237
#endif
232 238

  
233 239
#ifdef TARGET_NR__newselect
234 240
static void
235
print_syscall_ret_newselect(struct syscallname *name, target_long ret)
241
print_syscall_ret_newselect(struct syscallname *name, abi_long ret)
236 242
{
237
    gemu_log(" = " TARGET_FMT_lx " (", ret);
243
    gemu_log(" = " TARGET_ABI_FMT_lx " (", ret);
238 244
    print_fdset(newselect_arg1,newselect_arg2);
239 245
    gemu_log(",");
240 246
    print_fdset(newselect_arg1,newselect_arg3);
......
261 267
 */
262 268
void
263 269
print_syscall(int num,
264
              target_long arg1, target_long arg2, target_long arg3,
265
              target_long arg4, target_long arg5, target_long arg6)
270
              abi_long arg1, abi_long arg2, abi_long arg3,
271
              abi_long arg4, abi_long arg5, abi_long arg6)
266 272
{
267 273
    int i;
268 274
    char *format="%s(%ld,%ld,%ld,%ld,%ld,%ld)";
......
284 290

  
285 291

  
286 292
void
287
print_syscall_ret(int num, target_long ret)
293
print_syscall_ret(int num, abi_long ret)
288 294
{
289 295
    int i;
290 296

  
......
294 300
                scnames[i].result(&scnames[i],ret);
295 301
            } else {
296 302
                if( ret < 0 ) {
297
                    gemu_log(" = -1 errno=%d (%s)\n", -ret, target_strerror(-ret));
303
                    gemu_log(" = -1 errno=" TARGET_ABI_FMT_ld " (%s)\n", -ret, target_strerror(-ret));
298 304
                } else {
299
                    gemu_log(" = %d\n", ret);
305
                    gemu_log(" = " TARGET_ABI_FMT_ld "\n", ret);
300 306
                }
301 307
            }
302 308
            break;

Also available in: Unified diff