]>
Commit | Line | Data |
---|---|---|
bfff8b1b | 1 | /* Copyright (C) 2011-2017 Free Software Foundation, Inc. |
63d143a2 CM |
2 | This file is part of the GNU C Library. |
3 | Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011. | |
4 | ||
5 | The GNU C Library is free software; you can redistribute it and/or | |
6 | modify it under the terms of the GNU Lesser General Public | |
7 | License as published by the Free Software Foundation; either | |
8 | version 2.1 of the License, or (at your option) any later version. | |
9 | ||
10 | The GNU C Library is distributed in the hope that it will be useful, | |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 | Lesser General Public License for more details. | |
14 | ||
15 | You should have received a copy of the GNU Lesser General Public | |
ab84e3ff PE |
16 | License along with the GNU C Library. If not, see |
17 | <http://www.gnu.org/licenses/>. */ | |
63d143a2 CM |
18 | |
19 | ||
20 | /* TILE-Gx specifies that "unsigned int" is sign extended in the high | |
21 | 32 bits. But since the userspace API claims to be "unsigned long", | |
22 | calls into __ioctl() will not be sign extended, but rather pass all | |
23 | 64 bits of the argument. Therefore, when we pass the "request" | |
24 | value to the kernel, we must explicitly sign-extend it to match the | |
25 | kernel's internal use of "unsigned int" as the second argument, | |
26 | which we do by casting to "unsigned int". */ | |
27 | ||
28 | #include <sysdep.h> | |
29 | ||
30 | .text | |
31 | ENTRY (__ioctl) | |
32 | FEEDBACK_ENTER(__ioctl) | |
33 | { | |
34 | addxi r1, r1, 0 | |
35 | moveli TREG_SYSCALL_NR_NAME, __NR_ioctl | |
36 | } | |
37 | swint1 | |
38 | BNEZ r1, 0f | |
39 | jrp lr | |
40 | PSEUDO_END (__ioctl) | |
9e5ee8b8 | 41 | libc_hidden_def (__ioctl) |
63d143a2 | 42 | weak_alias (__ioctl, ioctl) |