| ... | @@ -421,62 +421,62 @@ pub const F_GETOWN_EX = 16; | ... | @@ -421,62 +421,62 @@ pub const F_GETOWN_EX = 16; |
| 421 | pub const F_GETOWNER_UIDS = 17; | 421 | pub const F_GETOWNER_UIDS = 17; |
| 422 | | 422 | |
| 423 | pub inline fn syscall0(number: usize) usize { | 423 | pub inline fn syscall0(number: usize) usize { |
| 424 | asm volatile ("int $0x80" | 424 | return asm volatile ("int $0x80" |
| 425 | : [ret] "={eax}" (-> usize) | 425 | : [ret] "={eax}" (-> usize) |
| 426 | : [number] "{eax}" (number)) | 426 | : [number] "{eax}" (number)); |
| 427 | } | 427 | } |
| 428 | | 428 | |
| 429 | pub inline fn syscall1(number: usize, arg1: usize) usize { | 429 | pub inline fn syscall1(number: usize, arg1: usize) usize { |
| 430 | asm volatile ("int $0x80" | 430 | return asm volatile ("int $0x80" |
| 431 | : [ret] "={eax}" (-> usize) | 431 | : [ret] "={eax}" (-> usize) |
| 432 | : [number] "{eax}" (number), | 432 | : [number] "{eax}" (number), |
| 433 | [arg1] "{ebx}" (arg1)) | 433 | [arg1] "{ebx}" (arg1)); |
| 434 | } | 434 | } |
| 435 | | 435 | |
| 436 | pub inline fn syscall2(number: usize, arg1: usize, arg2: usize) usize { | 436 | pub inline fn syscall2(number: usize, arg1: usize, arg2: usize) usize { |
| 437 | asm volatile ("int $0x80" | 437 | return asm volatile ("int $0x80" |
| 438 | : [ret] "={eax}" (-> usize) | 438 | : [ret] "={eax}" (-> usize) |
| 439 | : [number] "{eax}" (number), | 439 | : [number] "{eax}" (number), |
| 440 | [arg1] "{ebx}" (arg1), | 440 | [arg1] "{ebx}" (arg1), |
| 441 | [arg2] "{ecx}" (arg2)) | 441 | [arg2] "{ecx}" (arg2)); |
| 442 | } | 442 | } |
| 443 | | 443 | |
| 444 | pub inline fn syscall3(number: usize, arg1: usize, arg2: usize, arg3: usize) usize { | 444 | pub inline fn syscall3(number: usize, arg1: usize, arg2: usize, arg3: usize) usize { |
| 445 | asm volatile ("int $0x80" | 445 | return asm volatile ("int $0x80" |
| 446 | : [ret] "={eax}" (-> usize) | 446 | : [ret] "={eax}" (-> usize) |
| 447 | : [number] "{eax}" (number), | 447 | : [number] "{eax}" (number), |
| 448 | [arg1] "{ebx}" (arg1), | 448 | [arg1] "{ebx}" (arg1), |
| 449 | [arg2] "{ecx}" (arg2), | 449 | [arg2] "{ecx}" (arg2), |
| 450 | [arg3] "{edx}" (arg3)) | 450 | [arg3] "{edx}" (arg3)); |
| 451 | } | 451 | } |
| 452 | | 452 | |
| 453 | pub inline fn syscall4(number: usize, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { | 453 | pub inline fn syscall4(number: usize, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { |
| 454 | asm volatile ("int $0x80" | 454 | return asm volatile ("int $0x80" |
| 455 | : [ret] "={eax}" (-> usize) | 455 | : [ret] "={eax}" (-> usize) |
| 456 | : [number] "{eax}" (number), | 456 | : [number] "{eax}" (number), |
| 457 | [arg1] "{ebx}" (arg1), | 457 | [arg1] "{ebx}" (arg1), |
| 458 | [arg2] "{ecx}" (arg2), | 458 | [arg2] "{ecx}" (arg2), |
| 459 | [arg3] "{edx}" (arg3), | 459 | [arg3] "{edx}" (arg3), |
| 460 | [arg4] "{esi}" (arg4)) | 460 | [arg4] "{esi}" (arg4)); |
| 461 | } | 461 | } |
| 462 | | 462 | |
| 463 | pub inline fn syscall5(number: usize, arg1: usize, arg2: usize, arg3: usize, | 463 | pub inline fn syscall5(number: usize, arg1: usize, arg2: usize, arg3: usize, |
| 464 | arg4: usize, arg5: usize) -> usize | 464 | arg4: usize, arg5: usize) usize |
| 465 | { | 465 | { |
| 466 | asm volatile ("int $0x80" | 466 | return asm volatile ("int $0x80" |
| 467 | : [ret] "={eax}" (-> usize) | 467 | : [ret] "={eax}" (-> usize) |
| 468 | : [number] "{eax}" (number), | 468 | : [number] "{eax}" (number), |
| 469 | [arg1] "{ebx}" (arg1), | 469 | [arg1] "{ebx}" (arg1), |
| 470 | [arg2] "{ecx}" (arg2), | 470 | [arg2] "{ecx}" (arg2), |
| 471 | [arg3] "{edx}" (arg3), | 471 | [arg3] "{edx}" (arg3), |
| 472 | [arg4] "{esi}" (arg4), | 472 | [arg4] "{esi}" (arg4), |
| 473 | [arg5] "{edi}" (arg5)) | 473 | [arg5] "{edi}" (arg5)); |
| 474 | } | 474 | } |
| 475 | | 475 | |
| 476 | pub inline fn syscall6(number: usize, arg1: usize, arg2: usize, arg3: usize, | 476 | pub inline fn syscall6(number: usize, arg1: usize, arg2: usize, arg3: usize, |
| 477 | arg4: usize, arg5: usize, arg6: usize) -> usize | 477 | arg4: usize, arg5: usize, arg6: usize) usize |
| 478 | { | 478 | { |
| 479 | asm volatile ("int $0x80" | 479 | return asm volatile ("int $0x80" |
| 480 | : [ret] "={eax}" (-> usize) | 480 | : [ret] "={eax}" (-> usize) |
| 481 | : [number] "{eax}" (number), | 481 | : [number] "{eax}" (number), |
| 482 | [arg1] "{ebx}" (arg1), | 482 | [arg1] "{ebx}" (arg1), |
| ... | @@ -484,7 +484,7 @@ pub inline fn syscall6(number: usize, arg1: usize, arg2: usize, arg3: usize, | ... | @@ -484,7 +484,7 @@ pub inline fn syscall6(number: usize, arg1: usize, arg2: usize, arg3: usize, |
| 484 | [arg3] "{edx}" (arg3), | 484 | [arg3] "{edx}" (arg3), |
| 485 | [arg4] "{esi}" (arg4), | 485 | [arg4] "{esi}" (arg4), |
| 486 | [arg5] "{edi}" (arg5), | 486 | [arg5] "{edi}" (arg5), |
| 487 | [arg6] "{ebp}" (arg6)) | 487 | [arg6] "{ebp}" (arg6)); |
| 488 | } | 488 | } |
| 489 | | 489 | |
| 490 | pub nakedcc fn restore() void { | 490 | pub nakedcc fn restore() void { |
| ... | @@ -494,12 +494,12 @@ pub nakedcc fn restore() void { | ... | @@ -494,12 +494,12 @@ pub nakedcc fn restore() void { |
| 494 | \\int $0x80 | 494 | \\int $0x80 |
| 495 | : | 495 | : |
| 496 | : | 496 | : |
| 497 | : "rcx", "r11") | 497 | : "rcx", "r11"); |
| 498 | } | 498 | } |
| 499 | | 499 | |
| 500 | pub nakedcc fn restore_rt() void { | 500 | pub nakedcc fn restore_rt() void { |
| 501 | asm volatile ("int $0x80" | 501 | asm volatile ("int $0x80" |
| 502 | : | 502 | : |
| 503 | : [number] "{eax}" (usize(SYS_rt_sigreturn)) | 503 | : [number] "{eax}" (usize(SYS_rt_sigreturn)) |
| 504 | : "rcx", "r11") | 504 | : "rcx", "r11"); |
| 505 | } | 505 | } |