diff options
Diffstat (limited to 'include/asm-i386/unistd.h')
-rw-r--r-- | include/asm-i386/unistd.h | 42 |
1 files changed, 26 insertions, 16 deletions
diff --git a/include/asm-i386/unistd.h b/include/asm-i386/unistd.h index dc81a55dd94d..2e7f3e257fdd 100644 --- a/include/asm-i386/unistd.h +++ b/include/asm-i386/unistd.h | |||
@@ -316,8 +316,12 @@ | |||
316 | #define __NR_pselect6 308 | 316 | #define __NR_pselect6 308 |
317 | #define __NR_ppoll 309 | 317 | #define __NR_ppoll 309 |
318 | #define __NR_unshare 310 | 318 | #define __NR_unshare 310 |
319 | #define __NR_set_robust_list 311 | ||
320 | #define __NR_get_robust_list 312 | ||
321 | #define __NR_sys_splice 313 | ||
322 | #define __NR_sys_sync_file_range 314 | ||
319 | 323 | ||
320 | #define NR_syscalls 311 | 324 | #define NR_syscalls 315 |
321 | 325 | ||
322 | /* | 326 | /* |
323 | * user-visible error numbers are in the range -1 - -128: see | 327 | * user-visible error numbers are in the range -1 - -128: see |
@@ -347,9 +351,9 @@ __syscall_return(type,__res); \ | |||
347 | type name(type1 arg1) \ | 351 | type name(type1 arg1) \ |
348 | { \ | 352 | { \ |
349 | long __res; \ | 353 | long __res; \ |
350 | __asm__ volatile ("int $0x80" \ | 354 | __asm__ volatile ("push %%ebx ; movl %2,%%ebx ; int $0x80 ; pop %%ebx" \ |
351 | : "=a" (__res) \ | 355 | : "=a" (__res) \ |
352 | : "0" (__NR_##name),"b" ((long)(arg1)) : "memory"); \ | 356 | : "0" (__NR_##name),"ri" ((long)(arg1)) : "memory"); \ |
353 | __syscall_return(type,__res); \ | 357 | __syscall_return(type,__res); \ |
354 | } | 358 | } |
355 | 359 | ||
@@ -357,9 +361,10 @@ __syscall_return(type,__res); \ | |||
357 | type name(type1 arg1,type2 arg2) \ | 361 | type name(type1 arg1,type2 arg2) \ |
358 | { \ | 362 | { \ |
359 | long __res; \ | 363 | long __res; \ |
360 | __asm__ volatile ("int $0x80" \ | 364 | __asm__ volatile ("push %%ebx ; movl %2,%%ebx ; int $0x80 ; pop %%ebx" \ |
361 | : "=a" (__res) \ | 365 | : "=a" (__res) \ |
362 | : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)) : "memory"); \ | 366 | : "0" (__NR_##name),"ri" ((long)(arg1)),"c" ((long)(arg2)) \ |
367 | : "memory"); \ | ||
363 | __syscall_return(type,__res); \ | 368 | __syscall_return(type,__res); \ |
364 | } | 369 | } |
365 | 370 | ||
@@ -367,9 +372,9 @@ __syscall_return(type,__res); \ | |||
367 | type name(type1 arg1,type2 arg2,type3 arg3) \ | 372 | type name(type1 arg1,type2 arg2,type3 arg3) \ |
368 | { \ | 373 | { \ |
369 | long __res; \ | 374 | long __res; \ |
370 | __asm__ volatile ("int $0x80" \ | 375 | __asm__ volatile ("push %%ebx ; movl %2,%%ebx ; int $0x80 ; pop %%ebx" \ |
371 | : "=a" (__res) \ | 376 | : "=a" (__res) \ |
372 | : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ | 377 | : "0" (__NR_##name),"ri" ((long)(arg1)),"c" ((long)(arg2)), \ |
373 | "d" ((long)(arg3)) : "memory"); \ | 378 | "d" ((long)(arg3)) : "memory"); \ |
374 | __syscall_return(type,__res); \ | 379 | __syscall_return(type,__res); \ |
375 | } | 380 | } |
@@ -378,9 +383,9 @@ __syscall_return(type,__res); \ | |||
378 | type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ | 383 | type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ |
379 | { \ | 384 | { \ |
380 | long __res; \ | 385 | long __res; \ |
381 | __asm__ volatile ("int $0x80" \ | 386 | __asm__ volatile ("push %%ebx ; movl %2,%%ebx ; int $0x80 ; pop %%ebx" \ |
382 | : "=a" (__res) \ | 387 | : "=a" (__res) \ |
383 | : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ | 388 | : "0" (__NR_##name),"ri" ((long)(arg1)),"c" ((long)(arg2)), \ |
384 | "d" ((long)(arg3)),"S" ((long)(arg4)) : "memory"); \ | 389 | "d" ((long)(arg3)),"S" ((long)(arg4)) : "memory"); \ |
385 | __syscall_return(type,__res); \ | 390 | __syscall_return(type,__res); \ |
386 | } | 391 | } |
@@ -390,10 +395,12 @@ __syscall_return(type,__res); \ | |||
390 | type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \ | 395 | type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \ |
391 | { \ | 396 | { \ |
392 | long __res; \ | 397 | long __res; \ |
393 | __asm__ volatile ("int $0x80" \ | 398 | __asm__ volatile ("push %%ebx ; movl %2,%%ebx ; movl %1,%%eax ; " \ |
399 | "int $0x80 ; pop %%ebx" \ | ||
394 | : "=a" (__res) \ | 400 | : "=a" (__res) \ |
395 | : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ | 401 | : "i" (__NR_##name),"ri" ((long)(arg1)),"c" ((long)(arg2)), \ |
396 | "d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5)) : "memory"); \ | 402 | "d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5)) \ |
403 | : "memory"); \ | ||
397 | __syscall_return(type,__res); \ | 404 | __syscall_return(type,__res); \ |
398 | } | 405 | } |
399 | 406 | ||
@@ -402,11 +409,14 @@ __syscall_return(type,__res); \ | |||
402 | type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5,type6 arg6) \ | 409 | type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5,type6 arg6) \ |
403 | { \ | 410 | { \ |
404 | long __res; \ | 411 | long __res; \ |
405 | __asm__ volatile ("push %%ebp ; movl %%eax,%%ebp ; movl %1,%%eax ; int $0x80 ; pop %%ebp" \ | 412 | struct { long __a1; long __a6; } __s = { (long)arg1, (long)arg6 }; \ |
413 | __asm__ volatile ("push %%ebp ; push %%ebx ; movl 4(%2),%%ebp ; " \ | ||
414 | "movl 0(%2),%%ebx ; movl %1,%%eax ; int $0x80 ; " \ | ||
415 | "pop %%ebx ; pop %%ebp" \ | ||
406 | : "=a" (__res) \ | 416 | : "=a" (__res) \ |
407 | : "i" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \ | 417 | : "i" (__NR_##name),"0" ((long)(&__s)),"c" ((long)(arg2)), \ |
408 | "d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5)), \ | 418 | "d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5)) \ |
409 | "0" ((long)(arg6)) : "memory"); \ | 419 | : "memory"); \ |
410 | __syscall_return(type,__res); \ | 420 | __syscall_return(type,__res); \ |
411 | } | 421 | } |
412 | 422 | ||