1 /* MIPS16 syscall wrappers. 2 Copyright (C) 2013-2021 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 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 16 License along with the GNU C Library; if not, see 17 <https://www.gnu.org/licenses/>. */ 18 19 #ifndef MIPS16_SYSCALL_H 20 #define MIPS16_SYSCALL_H 1 21 22 long long int __nomips16 __mips16_syscall0 (long int number); 23 #define __mips16_syscall0(dummy, number) \ 24 __mips16_syscall0 ((long int) (number)) 25 26 long long int __nomips16 __mips16_syscall1 (long int a0, 27 long int number); 28 #define __mips16_syscall1(a0, number) \ 29 __mips16_syscall1 ((long int) (a0), \ 30 (long int) (number)) 31 32 long long int __nomips16 __mips16_syscall2 (long int a0, long int a1, 33 long int number); 34 #define __mips16_syscall2(a0, a1, number) \ 35 __mips16_syscall2 ((long int) (a0), (long int) (a1), \ 36 (long int) (number)) 37 38 long long int __nomips16 __mips16_syscall3 (long int a0, long int a1, 39 long int a2, 40 long int number); 41 #define __mips16_syscall3(a0, a1, a2, number) \ 42 __mips16_syscall3 ((long int) (a0), (long int) (a1), \ 43 (long int) (a2), \ 44 (long int) (number)) 45 46 long long int __nomips16 __mips16_syscall4 (long int a0, long int a1, 47 long int a2, long int a3, 48 long int number); 49 #define __mips16_syscall4(a0, a1, a2, a3, number) \ 50 __mips16_syscall4 ((long int) (a0), (long int) (a1), \ 51 (long int) (a2), (long int) (a3), \ 52 (long int) (number)) 53 54 /* The remaining ones use regular MIPS wrappers. */ 55 56 #define __mips16_syscall5(a0, a1, a2, a3, a4, number) \ 57 __mips_syscall5 ((long int) (a0), (long int) (a1), \ 58 (long int) (a2), (long int) (a3), \ 59 (long int) (a4), \ 60 (long int) (number)) 61 62 #define __mips16_syscall6(a0, a1, a2, a3, a4, a5, number) \ 63 __mips_syscall6 ((long int) (a0), (long int) (a1), \ 64 (long int) (a2), (long int) (a3), \ 65 (long int) (a4), (long int) (a5), \ 66 (long int) (number)) 67 68 #define __mips16_syscall7(a0, a1, a2, a3, a4, a5, a6, number) \ 69 __mips_syscall7 ((long int) (a0), (long int) (a1), \ 70 (long int) (a2), (long int) (a3), \ 71 (long int) (a4), (long int) (a5), \ 72 (long int) (a6), \ 73 (long int) (number)) 74 75 #endif 76