]> git.proxmox.com Git - mirror_qemu.git/blame - linux-user/mips/target_syscall.h
Merge remote-tracking branch 'remotes/cody/tags/block-pull-request' into staging
[mirror_qemu.git] / linux-user / mips / target_syscall.h
CommitLineData
3622634b
MA
1#ifndef MIPS_TARGET_SYSCALL_H
2#define MIPS_TARGET_SYSCALL_H
048f6b4d
FB
3
4/* this struct defines the way the registers are stored on the
5 stack during a system call. */
6
7struct target_pt_regs {
048f6b4d 8 /* Pad bytes for argument save space on the stack. */
992f48a0 9 abi_ulong pad0[6];
048f6b4d
FB
10
11 /* Saved main processor registers. */
992f48a0 12 abi_ulong regs[32];
048f6b4d
FB
13
14 /* Saved special registers. */
992f48a0
BS
15 abi_ulong cp0_status;
16 abi_ulong lo;
17 abi_ulong hi;
18 abi_ulong cp0_badvaddr;
19 abi_ulong cp0_cause;
20 abi_ulong cp0_epc;
048f6b4d
FB
21};
22
637947f1
TS
23/* Target errno definitions taken from asm-mips/errno.h */
24#undef TARGET_ENOMSG
25#define TARGET_ENOMSG 35 /* Identifier removed */
26#undef TARGET_EIDRM
27#define TARGET_EIDRM 36 /* Identifier removed */
28#undef TARGET_ECHRNG
29#define TARGET_ECHRNG 37 /* Channel number out of range */
30#undef TARGET_EL2NSYNC
31#define TARGET_EL2NSYNC 38 /* Level 2 not synchronized */
32#undef TARGET_EL3HLT
33#define TARGET_EL3HLT 39 /* Level 3 halted */
34#undef TARGET_EL3RST
35#define TARGET_EL3RST 40 /* Level 3 reset */
36#undef TARGET_ELNRNG
37#define TARGET_ELNRNG 41 /* Link number out of range */
38#undef TARGET_EUNATCH
39#define TARGET_EUNATCH 42 /* Protocol driver not attached */
40#undef TARGET_ENOCSI
41#define TARGET_ENOCSI 43 /* No CSI structure available */
42#undef TARGET_EL2HLT
43#define TARGET_EL2HLT 44 /* Level 2 halted */
44#undef TARGET_EDEADLK
45#define TARGET_EDEADLK 45 /* Resource deadlock would occur */
46#undef TARGET_ENOLCK
47#define TARGET_ENOLCK 46 /* No record locks available */
48#undef TARGET_EBADE
49#define TARGET_EBADE 50 /* Invalid exchange */
50#undef TARGET_EBADR
51#define TARGET_EBADR 51 /* Invalid request descriptor */
52#undef TARGET_EXFULL
53#define TARGET_EXFULL 52 /* TARGET_Exchange full */
54#undef TARGET_ENOANO
55#define TARGET_ENOANO 53 /* No anode */
56#undef TARGET_EBADRQC
57#define TARGET_EBADRQC 54 /* Invalid request code */
58#undef TARGET_EBADSLT
59#define TARGET_EBADSLT 55 /* Invalid slot */
60#undef TARGET_EDEADLOCK
61#define TARGET_EDEADLOCK 56 /* File locking deadlock error */
62#undef TARGET_EBFONT
63#define TARGET_EBFONT 59 /* Bad font file format */
64#undef TARGET_ENOSTR
65#define TARGET_ENOSTR 60 /* Device not a stream */
66#undef TARGET_ENODATA
67#define TARGET_ENODATA 61 /* No data available */
68#undef TARGET_ETIME
69#define TARGET_ETIME 62 /* Timer expired */
70#undef TARGET_ENOSR
71#define TARGET_ENOSR 63 /* Out of streams resources */
72#undef TARGET_ENONET
73#define TARGET_ENONET 64 /* Machine is not on the network */
74#undef TARGET_ENOPKG
75#define TARGET_ENOPKG 65 /* Package not installed */
76#undef TARGET_EREMOTE
77#define TARGET_EREMOTE 66 /* Object is remote */
78#undef TARGET_ENOLINK
79#define TARGET_ENOLINK 67 /* Link has been severed */
80#undef TARGET_EADV
81#define TARGET_EADV 68 /* Advertise error */
82#undef TARGET_ESRMNT
83#define TARGET_ESRMNT 69 /* Srmount error */
84#undef TARGET_ECOMM
85#define TARGET_ECOMM 70 /* Communication error on send */
86#undef TARGET_EPROTO
87#define TARGET_EPROTO 71 /* Protocol error */
88#undef TARGET_EDOTDOT
89#define TARGET_EDOTDOT 73 /* RFS specific error */
90#undef TARGET_EMULTIHOP
91#define TARGET_EMULTIHOP 74 /* Multihop attempted */
92#undef TARGET_EBADMSG
93#define TARGET_EBADMSG 77 /* Not a data message */
94#undef TARGET_ENAMETOOLONG
95#define TARGET_ENAMETOOLONG 78 /* File name too long */
96#undef TARGET_EOVERFLOW
97#define TARGET_EOVERFLOW 79 /* Value too large for defined data type */
98#undef TARGET_ENOTUNIQ
99#define TARGET_ENOTUNIQ 80 /* Name not unique on network */
100#undef TARGET_EBADFD
101#define TARGET_EBADFD 81 /* File descriptor in bad state */
102#undef TARGET_EREMCHG
103#define TARGET_EREMCHG 82 /* Remote address changed */
104#undef TARGET_ELIBACC
105#define TARGET_ELIBACC 83 /* Can not access a needed shared library */
106#undef TARGET_ELIBBAD
107#define TARGET_ELIBBAD 84 /* Accessing a corrupted shared library */
108#undef TARGET_ELIBSCN
109#define TARGET_ELIBSCN 85 /* .lib section in a.out corrupted */
110#undef TARGET_ELIBMAX
111#define TARGET_ELIBMAX 86 /* Attempting to link in too many shared libraries */
112#undef TARGET_ELIBEXEC
113#define TARGET_ELIBEXEC 87 /* Cannot exec a shared library directly */
114#undef TARGET_EILSEQ
115#define TARGET_EILSEQ 88 /* Illegal byte sequence */
116#undef TARGET_ENOSYS
117#define TARGET_ENOSYS 89 /* Function not implemented */
118#undef TARGET_ELOOP
119#define TARGET_ELOOP 90 /* Too many symbolic links encountered */
120#undef TARGET_ERESTART
121#define TARGET_ERESTART 91 /* Interrupted system call should be restarted */
122#undef TARGET_ESTRPIPE
123#define TARGET_ESTRPIPE 92 /* Streams pipe error */
124#undef TARGET_ENOTEMPTY
125#define TARGET_ENOTEMPTY 93 /* Directory not empty */
126#undef TARGET_EUSERS
127#define TARGET_EUSERS 94 /* Too many users */
128#undef TARGET_ENOTSOCK
129#define TARGET_ENOTSOCK 95 /* Socket operation on non-socket */
130#undef TARGET_EDESTADDRREQ
131#define TARGET_EDESTADDRREQ 96 /* Destination address required */
132#undef TARGET_EMSGSIZE
133#define TARGET_EMSGSIZE 97 /* Message too long */
134#undef TARGET_EPROTOTYPE
135#define TARGET_EPROTOTYPE 98 /* Protocol wrong type for socket */
136#undef TARGET_ENOPROTOOPT
137#define TARGET_ENOPROTOOPT 99 /* Protocol not available */
138#undef TARGET_EPROTONOSUPPORT
139#define TARGET_EPROTONOSUPPORT 120 /* Protocol not supported */
140#undef TARGET_ESOCKTNOSUPPORT
141#define TARGET_ESOCKTNOSUPPORT 121 /* Socket type not supported */
142#undef TARGET_EOPNOTSUPP
143#define TARGET_EOPNOTSUPP 122 /* Operation not supported on transport endpoint */
144#undef TARGET_EPFNOSUPPORT
145#define TARGET_EPFNOSUPPORT 123 /* Protocol family not supported */
146#undef TARGET_EAFNOSUPPORT
147#define TARGET_EAFNOSUPPORT 124 /* Address family not supported by protocol */
148#undef TARGET_EADDRINUSE
149#define TARGET_EADDRINUSE 125 /* Address already in use */
150#undef TARGET_EADDRNOTAVAIL
151#define TARGET_EADDRNOTAVAIL 126 /* Cannot assign requested address */
152#undef TARGET_ENETDOWN
153#define TARGET_ENETDOWN 127 /* Network is down */
154#undef TARGET_ENETUNREACH
155#define TARGET_ENETUNREACH 128 /* Network is unreachable */
156#undef TARGET_ENETRESET
157#define TARGET_ENETRESET 129 /* Network dropped connection because of reset */
158#undef TARGET_ECONNABORTED
159#define TARGET_ECONNABORTED 130 /* Software caused connection abort */
160#undef TARGET_ECONNRESET
161#define TARGET_ECONNRESET 131 /* Connection reset by peer */
162#undef TARGET_ENOBUFS
163#define TARGET_ENOBUFS 132 /* No buffer space available */
164#undef TARGET_EISCONN
165#define TARGET_EISCONN 133 /* Transport endpoint is already connected */
166#undef TARGET_ENOTCONN
167#define TARGET_ENOTCONN 134 /* Transport endpoint is not connected */
168#undef TARGET_EUCLEAN
169#define TARGET_EUCLEAN 135 /* Structure needs cleaning */
170#undef TARGET_ENOTNAM
171#define TARGET_ENOTNAM 137 /* Not a XENIX named type file */
172#undef TARGET_ENAVAIL
173#define TARGET_ENAVAIL 138 /* No XENIX semaphores available */
174#undef TARGET_EISNAM
175#define TARGET_EISNAM 139 /* Is a named type file */
176#undef TARGET_EREMOTEIO
177#define TARGET_EREMOTEIO 140 /* Remote I/O error */
178#undef TARGET_EINIT
179#define TARGET_EINIT 141 /* Reserved */
180#undef TARGET_EREMDEV
181#define TARGET_EREMDEV 142 /* TARGET_Error 142 */
182#undef TARGET_ESHUTDOWN
183#define TARGET_ESHUTDOWN 143 /* Cannot send after transport endpoint shutdown */
184#undef TARGET_ETOOMANYREFS
185#define TARGET_ETOOMANYREFS 144 /* Too many references: cannot splice */
186#undef TARGET_ETIMEDOUT
187#define TARGET_ETIMEDOUT 145 /* Connection timed out */
188#undef TARGET_ECONNREFUSED
189#define TARGET_ECONNREFUSED 146 /* Connection refused */
190#undef TARGET_EHOSTDOWN
191#define TARGET_EHOSTDOWN 147 /* Host is down */
192#undef TARGET_EHOSTUNREACH
193#define TARGET_EHOSTUNREACH 148 /* No route to host */
194#undef TARGET_EALREADY
195#define TARGET_EALREADY 149 /* Operation already in progress */
196#undef TARGET_EINPROGRESS
197#define TARGET_EINPROGRESS 150 /* Operation now in progress */
198#undef TARGET_ESTALE
199#define TARGET_ESTALE 151 /* Stale NFS file handle */
200#undef TARGET_ECANCELED
201#define TARGET_ECANCELED 158 /* AIO operation canceled */
202/*
203 * These error are Linux extensions.
204 */
205#undef TARGET_ENOMEDIUM
206#define TARGET_ENOMEDIUM 159 /* No medium found */
207#undef TARGET_EMEDIUMTYPE
208#define TARGET_EMEDIUMTYPE 160 /* Wrong medium type */
209#undef TARGET_ENOKEY
210#define TARGET_ENOKEY 161 /* Required key not available */
211#undef TARGET_EKEYEXPIRED
212#define TARGET_EKEYEXPIRED 162 /* Key has expired */
213#undef TARGET_EKEYREVOKED
214#define TARGET_EKEYREVOKED 163 /* Key has been revoked */
215#undef TARGET_EKEYREJECTED
216#define TARGET_EKEYREJECTED 164 /* Key was rejected by service */
217
218/* for robust mutexes */
219#undef TARGET_EOWNERDEAD
220#define TARGET_EOWNERDEAD 165 /* Owner died */
221#undef TARGET_ENOTRECOVERABLE
222#define TARGET_ENOTRECOVERABLE 166 /* State not recoverable */
223
fe8ed7d5
RH
224#undef TARGET_ERFKILL
225#define TARGET_ERFKILL 167
226#undef TARGET_EHWPOISON
227#define TARGET_EHWPOISON 168
228
0444a3b7
AM
229#undef TARGET_EDQUOT
230#define TARGET_EDQUOT 1133 /* Quota exceeded */
637947f1 231
048f6b4d 232#define UNAME_MACHINE "mips"
cbc14e6f 233#define UNAME_MINIMUM_RELEASE "2.6.32"
4ce6243d
PM
234
235#define TARGET_CLONE_BACKWARDS
0903c8be 236#define TARGET_MINSIGSTKSZ 2048
6f6a4032
TM
237#define TARGET_MLOCKALL_MCL_CURRENT 1
238#define TARGET_MLOCKALL_MCL_FUTURE 2
460c579f 239
ee8e7614
PM
240#define TARGET_FORCE_SHMLBA
241
242static inline abi_ulong target_shmlba(CPUMIPSState *env)
243{
244 return 0x40000;
245}
246
3622634b 247#endif /* MIPS_TARGET_SYSCALL_H */