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