HID: hiddev: Fix slab-out-of-bounds write in hiddev_ioctl_usage()
[linux/fpc-iii.git] / tools / testing / selftests / x86 / raw_syscall_helper_32.S
blob534e71e35c6a1ff0a8e003f8cdeee7550511df7c
1 .global sys32_helper
2 sys32_helper:
3         /* Args: syscall_args_32*, function pointer */
4         pushl   %ebp
5         pushl   %ebx
6         pushl   %esi
7         pushl   %edi
8         movl    5*4(%esp), %eax /* pointer to args struct */
10         movl    1*4(%eax), %ebx
11         movl    2*4(%eax), %ecx
12         movl    3*4(%eax), %edx
13         movl    4*4(%eax), %esi
14         movl    5*4(%eax), %edi
15         movl    6*4(%eax), %ebp
16         movl    0*4(%eax), %eax
18         call    *(6*4)(%esp)    /* Do the syscall */
20         /* Now we need to recover without losing any reg values */
21         pushl   %eax
22         movl    6*4(%esp), %eax
23         popl    0*4(%eax)
24         movl    %ebx, 1*4(%eax)
25         movl    %ecx, 2*4(%eax)
26         movl    %edx, 3*4(%eax)
27         movl    %esi, 4*4(%eax)
28         movl    %edi, 5*4(%eax)
29         movl    %ebp, 6*4(%eax)
31         popl    %edi
32         popl    %esi
33         popl    %ebx
34         popl    %ebp
35         ret
37         .type sys32_helper, @function
38         .size sys32_helper, .-sys32_helper
40 .global int80_and_ret
41 int80_and_ret:
42         int     $0x80
43         ret
45         .type int80_and_ret, @function
46         .size int80_and_ret, .-int80_and_ret