Revision f85e9a68

b/configure
1048 1048
elif test "$target_cpu" = "ppc64" ; then
1049 1049
  echo "TARGET_ARCH=ppc64" >> $config_mak
1050 1050
  echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1051
  echo "TARGET_ABI_DIR=ppc" >> $config_mak
1051 1052
  echo "#define TARGET_PPC 1" >> $config_h
1052 1053
  echo "#define TARGET_PPC64 1" >> $config_h
1053 1054
elif test "$target_cpu" = "ppc64abi32" ; then
......
1060 1061
elif test "$target_cpu" = "ppc64h" ; then
1061 1062
  echo "TARGET_ARCH=ppc64h" >> $config_mak
1062 1063
  echo "#define TARGET_ARCH \"ppc64h\"" >> $config_h
1064
  echo "TARGET_ABI_DIR=ppc" >> $config_mak
1063 1065
  echo "#define TARGET_PPC 1" >> $config_h
1064 1066
  echo "#define TARGET_PPC64 1" >> $config_h
1065 1067
  echo "#define TARGET_PPC64H 1" >> $config_h
b/linux-user/ppc/syscall.h
51 51
 * flags masks
52 52
 */
53 53

  
54
#if defined(TARGET_PPC64) && !defined(TARGET_ABI32)
55
#define UNAME_MACHINE "ppc64"
56
#else
54 57
#define UNAME_MACHINE "ppc"
58
#endif
b/linux-user/ppc/syscall_nr.h
193 193
#define TARGET_NR_vfork                  189
194 194
#define TARGET_NR_ugetrlimit             190     /* SuS compliant getrlimit */
195 195
#define TARGET_NR_readahead              191
196
#if !defined(TARGET_PPC64) || defined(TARGET_ABI32)
196 197
#define TARGET_NR_mmap2                  192
197 198
#define TARGET_NR_truncate64             193
198 199
#define TARGET_NR_ftruncate64            194
199 200
#define TARGET_NR_stat64                 195
200 201
#define TARGET_NR_lstat64                196
201 202
#define TARGET_NR_fstat64                197
203
#endif
202 204
#define TARGET_NR_pciconfig_read         198
203 205
#define TARGET_NR_pciconfig_write        199
204 206
#define TARGET_NR_pciconfig_iobase       200
205 207
#define TARGET_NR_multiplexer            201
206 208
#define TARGET_NR_getdents64             202
207 209
#define TARGET_NR_pivot_root             203
210
#if !defined(TARGET_PPC64) || defined(TARGET_ABI32)
208 211
#define TARGET_NR_fcntl64                204
212
#endif
209 213
#define TARGET_NR_madvise                205
210 214
#define TARGET_NR_mincore                206
211 215
#define TARGET_NR_gettid                 207
......
227 231
#define TARGET_NR_sched_getaffinity      223
228 232
/* 224 currently unused */
229 233
#define TARGET_NR_tuxcall                225
234
#if !defined(TARGET_PPC64) || defined(TARGET_ABI32)
230 235
#define TARGET_NR_sendfile64             226
236
#endif
231 237
#define TARGET_NR_io_setup               227
232 238
#define TARGET_NR_io_destroy             228
233 239
#define TARGET_NR_io_getevents           229
......
255 261
#define TARGET_NR_utimes                 251
256 262
#define TARGET_NR_statfs64               252
257 263
#define TARGET_NR_fstatfs64              253
264
#if !defined(TARGET_PPC64) || defined(TARGET_ABI32)
258 265
#define TARGET_NR_fadvise64_64           254
266
#endif
259 267
#define TARGET_NR_rtas		255
260 268
#define TARGET_NR_sys_debug_setcontext 256
261 269
/* Number 257 is reserved for vserver */
......
292 300
#define TARGET_NR_mknodat		288
293 301
#define TARGET_NR_fchownat		289
294 302
#define TARGET_NR_futimesat		290
303
#if defined(TARGET_PPC64) && !defined(TARGET_ABI32)
304
#define TARGET_NR_newfstatat		291
305
#else
295 306
#define TARGET_NR_fstatat64		291
307
#endif
296 308
#define TARGET_NR_unlinkat		292
297 309
#define TARGET_NR_renameat		293
298 310
#define TARGET_NR_linkat		294
/dev/null
1
/*
2
 *  PPC emulation for qemu: syscall definitions.
3
 *
4
 *  Copyright (c) 2003 Jocelyn Mayer
5
 *
6
 * This library is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU Lesser General Public
8
 * License as published by the Free Software Foundation; either
9
 * version 2 of the License, or (at your option) any later version.
10
 *
11
 * This library is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
 * Lesser General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU Lesser General Public
17
 * License along with this library; if not, write to the Free Software
18
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19
 */
20

  
21
/* XXX: ABSOLUTELY BUGGY:
22
 * for now, this is quite just a cut-and-paste from i386 target...
23
 */
24

  
25
/* default linux values for the selectors */
26
#define __USER_DS	(1)
27

  
28
struct target_pt_regs {
29
	unsigned long gpr[32];
30
	unsigned long nip;
31
	unsigned long msr;
32
	unsigned long orig_gpr3;	/* Used for restarting system calls */
33
	unsigned long ctr;
34
	unsigned long link;
35
	unsigned long xer;
36
	unsigned long ccr;
37
	unsigned long mq;		/* 601 only (not used at present) */
38
					/* Used on APUS to hold IPL value. */
39
	unsigned long trap;		/* Reason for being here */
40
	unsigned long dar;		/* Fault registers */
41
	unsigned long dsisr;
42
	unsigned long result; 		/* Result of a system call */
43
};
44

  
45
/* ioctls */
46
struct target_revectored_struct {
47
	abi_ulong __map[8];			/* 256 bits */
48
};
49

  
50
/*
51
 * flags masks
52
 */
53

  
54
/* ipcs */
55

  
56
#define TARGET_SEMOP           1
57
#define TARGET_SEMGET          2
58
#define TARGET_SEMCTL          3
59
#define TARGET_MSGSND          11
60
#define TARGET_MSGRCV          12
61
#define TARGET_MSGGET          13
62
#define TARGET_MSGCTL          14
63
#define TARGET_SHMAT           21
64
#define TARGET_SHMDT           22
65
#define TARGET_SHMGET          23
66
#define TARGET_SHMCTL          24
67

  
68
#if 0 // To make it compile, even if the definition in syscall.c is bugged
69
struct target_msgbuf {
70
	int mtype;
71
	char mtext[1];
72
};
73
#endif
74

  
75
struct target_ipc_kludge {
76
	unsigned int	msgp;	/* Really (struct msgbuf *) */
77
	int msgtyp;
78
};
79

  
80
#if 0 // To make it compile, even if the definition in syscall.c is bugged
81
struct target_ipc_perm {
82
	int	__key;
83
	unsigned short	uid;
84
	unsigned short	gid;
85
	unsigned short	cuid;
86
	unsigned short	cgid;
87
	unsigned short	mode;
88
	unsigned short	seq;
89
};
90
#endif
91

  
92
#if 0 // To make it compile, even if the definition in syscall.c is bugged
93
struct target_msqid_ds {
94
	struct target_ipc_perm	msg_perm;
95
	unsigned int		msg_first;	/* really struct target_msg* */
96
	unsigned int		msg_last;	/* really struct target_msg* */
97
	unsigned int		msg_stime;	/* really target_time_t */
98
	unsigned int		msg_rtime;	/* really target_time_t */
99
	unsigned int		msg_ctime;	/* really target_time_t */
100
	unsigned int		wwait;		/* really struct wait_queue* */
101
	unsigned int		rwait;		/* really struct wait_queue* */
102
	unsigned short		msg_cbytes;
103
	unsigned short		msg_qnum;
104
	unsigned short		msg_qbytes;
105
	unsigned short		msg_lspid;
106
	unsigned short		msg_lrpid;
107
};
108
#endif
109

  
110
#if 0 // To make it compile, even if the definition in syscall.c is bugged
111
struct target_shmid_ds {
112
	struct target_ipc_perm	shm_perm;
113
	int			shm_segsz;
114
	unsigned int		shm_atime;	/* really target_time_t */
115
	unsigned int		shm_dtime;	/* really target_time_t */
116
	unsigned int		shm_ctime;	/* really target_time_t */
117
	unsigned short		shm_cpid;
118
	unsigned short		shm_lpid;
119
	short			shm_nattch;
120
	unsigned short		shm_npages;
121
	unsigned long		*shm_pages;
122
	void 			*attaches;	/* really struct shm_desc * */
123
};
124
#endif
125

  
126
#define TARGET_IPC_RMID	0
127
#define TARGET_IPC_SET	1
128
#define TARGET_IPC_STAT	2
129

  
130
#define UNAME_MACHINE "ppc64"
/dev/null
1
/*
2
 * This file contains the system call numbers.
3
 */
4
#define TARGET_NR_restart_syscall          0
5
#define TARGET_NR_exit                     1
6
#define TARGET_NR_fork                     2
7
#define TARGET_NR_read                     3
8
#define TARGET_NR_write                    4
9
#define TARGET_NR_open                     5
10
#define TARGET_NR_close                    6
11
#define TARGET_NR_waitpid                  7
12
#define TARGET_NR_creat                    8
13
#define TARGET_NR_link                     9
14
#define TARGET_NR_unlink                  10
15
#define TARGET_NR_execve                  11
16
#define TARGET_NR_chdir                   12
17
#define TARGET_NR_time                    13
18
#define TARGET_NR_mknod                   14
19
#define TARGET_NR_chmod                   15
20
#define TARGET_NR_lchown32                16
21
#define TARGET_NR_break                   17
22
#define TARGET_NR_oldstat                 18
23
#define TARGET_NR_lseek                   19
24
#define TARGET_NR_getpid                  20
25
#define TARGET_NR_mount                   21
26
#define TARGET_NR_umount                  22
27
#define TARGET_NR_setuid32                23
28
#define TARGET_NR_getuid32                24
29
#define TARGET_NR_stime                   25
30
#define TARGET_NR_ptrace                  26
31
#define TARGET_NR_alarm                   27
32
#define TARGET_NR_oldfstat                28
33
#define TARGET_NR_pause                   29
34
#define TARGET_NR_utime                   30
35
#define TARGET_NR_stty                    31
36
#define TARGET_NR_gtty                    32
37
#define TARGET_NR_access                  33
38
#define TARGET_NR_nice                    34
39
#define TARGET_NR_ftime                   35
40
#define TARGET_NR_sync                    36
41
#define TARGET_NR_kill                    37
42
#define TARGET_NR_rename                  38
43
#define TARGET_NR_mkdir                   39
44
#define TARGET_NR_rmdir                   40
45
#define TARGET_NR_dup                     41
46
#define TARGET_NR_pipe                    42
47
#define TARGET_NR_times                   43
48
#define TARGET_NR_prof                    44
49
#define TARGET_NR_brk                     45
50
#define TARGET_NR_setgid32                46
51
#define TARGET_NR_getgid32                47
52
#define TARGET_NR_signal                  48
53
#define TARGET_NR_geteuid32               49
54
#define TARGET_NR_getegid32               50
55
#define TARGET_NR_acct                    51
56
#define TARGET_NR_umount2                 52
57
#define TARGET_NR_lock                    53
58
#define TARGET_NR_ioctl                   54
59
#define TARGET_NR_fcntl                   55
60
#define TARGET_NR_mpx                     56
61
#define TARGET_NR_setpgid                 57
62
#define TARGET_NR_ulimit                  58
63
#define TARGET_NR_oldolduname             59
64
#define TARGET_NR_umask                   60
65
#define TARGET_NR_chroot                  61
66
#define TARGET_NR_ustat                   62
67
#define TARGET_NR_dup2                    63
68
#define TARGET_NR_getppid                 64
69
#define TARGET_NR_getpgrp                 65
70
#define TARGET_NR_setsid                  66
71
#define TARGET_NR_sigaction               67
72
#define TARGET_NR_sgetmask                68
73
#define TARGET_NR_ssetmask                69
74
#define TARGET_NR_setreuid32              70
75
#define TARGET_NR_setregid32              71
76
#define TARGET_NR_sigsuspend              72
77
#define TARGET_NR_sigpending              73
78
#define TARGET_NR_sethostname             74
79
#define TARGET_NR_setrlimit               75
80
#define TARGET_NR_getrlimit               76
81
#define TARGET_NR_getrusage               77
82
#define TARGET_NR_gettimeofday            78
83
#define TARGET_NR_settimeofday            79
84
#define TARGET_NR_getgroups32             80
85
#define TARGET_NR_setgroups32             81
86
#define TARGET_NR_select                  82
87
#define TARGET_NR_symlink                 83
88
#define TARGET_NR_oldlstat                84
89
#define TARGET_NR_readlink                85
90
#define TARGET_NR_uselib                  86
91
#define TARGET_NR_swapon                  87
92
#define TARGET_NR_reboot                  88
93
#define TARGET_NR_readdir                 89
94
#define TARGET_NR_mmap                    90
95
#define TARGET_NR_munmap                  91
96
#define TARGET_NR_truncate                92
97
#define TARGET_NR_ftruncate               93
98
#define TARGET_NR_fchmod                  94
99
#define TARGET_NR_fchown32                95
100
#define TARGET_NR_getpriority             96
101
#define TARGET_NR_setpriority             97
102
#define TARGET_NR_profil                  98
103
#define TARGET_NR_statfs                  99
104
#define TARGET_NR_fstatfs                100
105
#define TARGET_NR_ioperm                 101
106
#define TARGET_NR_socketcall             102
107
#define TARGET_NR_syslog                 103
108
#define TARGET_NR_setitimer              104
109
#define TARGET_NR_getitimer              105
110
#define TARGET_NR_stat                   106
111
#define TARGET_NR_lstat                  107
112
#define TARGET_NR_fstat                  108
113
#define TARGET_NR_olduname               109
114
#define TARGET_NR_iopl                   110
115
#define TARGET_NR_vhangup                111
116
#define TARGET_NR_idle                   112
117
#define TARGET_NR_vm86                   113
118
#define TARGET_NR_wait4                  114
119
#define TARGET_NR_swapoff                115
120
#define TARGET_NR_sysinfo                116
121
#define TARGET_NR_ipc                    117
122
#define TARGET_NR_fsync                  118
123
#define TARGET_NR_sigreturn              119
124
#define TARGET_NR_clone                  120
125
#define TARGET_NR_setdomainname          121
126
#define TARGET_NR_uname                  122
127
#define TARGET_NR_modify_ldt             123
128
#define TARGET_NR_adjtimex               124
129
#define TARGET_NR_mprotect               125
130
#define TARGET_NR_sigprocmask            126
131
#define TARGET_NR_create_module          127
132
#define TARGET_NR_init_module            128
133
#define TARGET_NR_delete_module          129
134
#define TARGET_NR_get_kernel_syms        130
135
#define TARGET_NR_quotactl               131
136
#define TARGET_NR_getpgid                132
137
#define TARGET_NR_fchdir                 133
138
#define TARGET_NR_bdflush                134
139
#define TARGET_NR_sysfs                  135
140
#define TARGET_NR_personality            136
141
#define TARGET_NR_afs_syscall            137 /* Syscall for Andrew File System */
142
#define TARGET_NR_setfsuid32             138
143
#define TARGET_NR_setfsgid32             139
144
#define TARGET_NR__llseek                140
145
#define TARGET_NR_getdents               141
146
#define TARGET_NR__newselect             142
147
#define TARGET_NR_flock                  143
148
#define TARGET_NR_msync                  144
149
#define TARGET_NR_readv                  145
150
#define TARGET_NR_writev                 146
151
#define TARGET_NR_getsid                 147
152
#define TARGET_NR_fdatasync              148
153
#define TARGET_NR__sysctl                149
154
#define TARGET_NR_mlock                  150
155
#define TARGET_NR_munlock                151
156
#define TARGET_NR_mlockall               152
157
#define TARGET_NR_munlockall             153
158
#define TARGET_NR_sched_setparam         154
159
#define TARGET_NR_sched_getparam         155
160
#define TARGET_NR_sched_setscheduler     156
161
#define TARGET_NR_sched_getscheduler     157
162
#define TARGET_NR_sched_yield            158
163
#define TARGET_NR_sched_get_priority_max 159
164
#define TARGET_NR_sched_get_priority_min 160
165
#define TARGET_NR_sched_rr_get_interval  161
166
#define TARGET_NR_nanosleep              162
167
#define TARGET_NR_mremap                 163
168
#define TARGET_NR_setresuid32            164
169
#define TARGET_NR_getresuid32            165
170
#define TARGET_NR_query_module           166
171
#define TARGET_NR_poll                   167
172
#define TARGET_NR_nfsservctl             168
173
#define TARGET_NR_setresgid32            169
174
#define TARGET_NR_getresgid32            170
175
#define TARGET_NR_prctl                  171
176
#define TARGET_NR_rt_sigreturn           172
177
#define TARGET_NR_rt_sigaction           173
178
#define TARGET_NR_rt_sigprocmask         174
179
#define TARGET_NR_rt_sigpending          175
180
#define TARGET_NR_rt_sigtimedwait        176
181
#define TARGET_NR_rt_sigqueueinfo        177
182
#define TARGET_NR_rt_sigsuspend          178
183
#define TARGET_NR_pread64                179
184
#define TARGET_NR_pwrite64               180
185
#define TARGET_NR_chown32                181
186
#define TARGET_NR_getcwd                 182
187
#define TARGET_NR_capget                 183
188
#define TARGET_NR_capset                 184
189
#define TARGET_NR_sigaltstack            185
190
#define TARGET_NR_sendfile               186
191
#define TARGET_NR_getpmsg                187     /* some people actually want streams */
192
#define TARGET_NR_putpmsg                188     /* some people actually want streams */
193
#define TARGET_NR_vfork                  189
194
#define TARGET_NR_ugetrlimit             190     /* SuS compliant getrlimit */
195
#define TARGET_NR_readahead              191
196
#define TARGET_NR_mmap2                  192
197
#define TARGET_NR_truncate64             193
198
#define TARGET_NR_ftruncate64            194
199
#define TARGET_NR_stat64                 195
200
#define TARGET_NR_lstat64                196
201
#define TARGET_NR_fstat64                197
202
#define TARGET_NR_pciconfig_read         198
203
#define TARGET_NR_pciconfig_write        199
204
#define TARGET_NR_pciconfig_iobase       200
205
#define TARGET_NR_multiplexer            201
206
#define TARGET_NR_getdents64             202
207
#define TARGET_NR_pivot_root             203
208
#define TARGET_NR_fcntl64                204
209
#define TARGET_NR_madvise                205
210
#define TARGET_NR_mincore                206
211
#define TARGET_NR_gettid                 207
212
#define TARGET_NR_tkill                  208
213
#define TARGET_NR_setxattr               209
214
#define TARGET_NR_lsetxattr              210
215
#define TARGET_NR_fsetxattr              211
216
#define TARGET_NR_getxattr               212
217
#define TARGET_NR_lgetxattr              213
218
#define TARGET_NR_fgetxattr              214
219
#define TARGET_NR_listxattr              215
220
#define TARGET_NR_llistxattr             216
221
#define TARGET_NR_flistxattr             217
222
#define TARGET_NR_removexattr            218
223
#define TARGET_NR_lremovexattr           219
224
#define TARGET_NR_fremovexattr           220
225
#define TARGET_NR_futex                  221
226
#define TARGET_NR_sched_setaffinity      222
227
#define TARGET_NR_sched_getaffinity      223
228
/* 224 currently unused */
229
#define TARGET_NR_tuxcall                225
230
#define TARGET_NR_sendfile64             226
231
#define TARGET_NR_io_setup               227
232
#define TARGET_NR_io_destroy             228
233
#define TARGET_NR_io_getevents           229
234
#define TARGET_NR_io_submit              230
235
#define TARGET_NR_io_cancel              231
236
#define TARGET_NR_set_tid_address        232
237
#define TARGET_NR_fadvise64              233
238
#define TARGET_NR_exit_group             234
239
#define TARGET_NR_lookup_dcookie         235
240
#define TARGET_NR_epoll_create           236
241
#define TARGET_NR_epoll_ctl              237
242
#define TARGET_NR_epoll_wait             238
243
#define TARGET_NR_remap_file_pages       239
244
#define TARGET_NR_timer_create           240
245
#define TARGET_NR_timer_settime          241
246
#define TARGET_NR_timer_gettime          242
247
#define TARGET_NR_timer_getoverrun       243
248
#define TARGET_NR_timer_delete           244
249
#define TARGET_NR_clock_settime          245
250
#define TARGET_NR_clock_gettime          246
251
#define TARGET_NR_clock_getres           247
252
#define TARGET_NR_clock_nanosleep        248
253
#define TARGET_NR_swapcontext            249
254
#define TARGET_NR_tgkill                 250
255
#define TARGET_NR_utimes                 251
256
#define TARGET_NR_statfs64               252
257
#define TARGET_NR_fstatfs64              253
258
#define TARGET_NR_fadvise64_64           254
259
#define TARGET_NR_rtas		255
260
#define TARGET_NR_sys_debug_setcontext 256
261
/* Number 257 is reserved for vserver */
262
#define TARGET_NR_migrate_pages	258
263
#define TARGET_NR_mbind		259
264
#define TARGET_NR_get_mempolicy	260
265
#define TARGET_NR_set_mempolicy	261
266
#define TARGET_NR_mq_open		262
267
#define TARGET_NR_mq_unlink		263
268
#define TARGET_NR_mq_timedsend	264
269
#define TARGET_NR_mq_timedreceive	265
270
#define TARGET_NR_mq_notify		266
271
#define TARGET_NR_mq_getsetattr	267
272
#define TARGET_NR_kexec_load		268
273
#define TARGET_NR_add_key		269
274
#define TARGET_NR_request_key	270
275
#define TARGET_NR_keyctl		271
276
#define TARGET_NR_waitid		272
277
#define TARGET_NR_ioprio_set		273
278
#define TARGET_NR_ioprio_get		274
279
#define TARGET_NR_inotify_init	275
280
#define TARGET_NR_inotify_add_watch	276
281
#define TARGET_NR_inotify_rm_watch	277
282
#define TARGET_NR_spu_run		278
283
#define TARGET_NR_spu_create		279
284
#define TARGET_NR_pselect6		280
285
#define TARGET_NR_ppoll		281
286
#define TARGET_NR_unshare		282
287
#define TARGET_NR_splice		283
288
#define TARGET_NR_tee		284
289
#define TARGET_NR_vmsplice		285
290
#define TARGET_NR_openat		286
291
#define TARGET_NR_mkdirat		287
292
#define TARGET_NR_mknodat		288
293
#define TARGET_NR_fchownat		289
294
#define TARGET_NR_futimesat		290
295
#define TARGET_NR_newfstatat		291
296
#define TARGET_NR_unlinkat		292
297
#define TARGET_NR_renameat		293
298
#define TARGET_NR_linkat		294
299
#define TARGET_NR_symlinkat		295
300
#define TARGET_NR_readlinkat		296
301
#define TARGET_NR_fchmodat		297
302
#define TARGET_NR_faccessat		298
303
#define TARGET_NR_get_robust_list	299
304
#define TARGET_NR_set_robust_list	300
305
#define TARGET_NR_move_pages		301
306
#define TARGET_NR_getcpu		302
307
#define TARGET_NR_epoll_pwait	303
308
#define TARGET_NR_utimensat		304
309
#define TARGET_NR_signalfd		305
310
#define TARGET_NR_timerfd		306
311
#define TARGET_NR_eventfd		307
312
#define TARGET_NR_sync_file_range2	308
313
#define TARGET_NR_fallocate		309
/dev/null
1
#ifndef TARGET_SIGNAL_H
2
#define TARGET_SIGNAL_H
3

  
4
#include "cpu.h"
5

  
6
/* this struct defines a stack used during syscall handling */
7

  
8
typedef struct target_sigaltstack {
9
	abi_ulong ss_sp;
10
	abi_long ss_flags;
11
	abi_ulong ss_size;
12
} target_stack_t;
13

  
14

  
15
/*
16
 * sigaltstack controls
17
 */
18
#define TARGET_SS_ONSTACK     1
19
#define TARGET_SS_DISABLE     2
20

  
21
#define TARGET_MINSIGSTKSZ    2048
22
#define TARGET_SIGSTKSZ       8192
23

  
24
static inline abi_ulong get_sp_from_cpustate(CPUPPCState *state)
25
{
26
    return state->gpr[1];
27
}
28

  
29
#endif /* TARGET_SIGNAL_H */
/dev/null
1
/* from asm/termbits.h */
2

  
3
#define TARGET_NCCS 19
4

  
5
struct target_termios {
6
    unsigned int c_iflag;               /* input mode flags */
7
    unsigned int c_oflag;               /* output mode flags */
8
    unsigned int c_cflag;               /* control mode flags */
9
    unsigned int c_lflag;               /* local mode flags */
10
    unsigned char c_cc[TARGET_NCCS];                /* control characters */
11
    unsigned char c_line;                    /* line discipline */
12
    unsigned int c_ispeed;		/* input speed */
13
    unsigned int c_ospeed;		/* output speed */
14
};
15

  
16
/* c_cc character offsets */
17
#define TARGET_VINTR 	0
18
#define TARGET_VQUIT 	1
19
#define TARGET_VERASE 	2
20
#define TARGET_VKILL	3
21
#define TARGET_VEOF	4
22
#define TARGET_VMIN	5
23
#define TARGET_VEOL	6
24
#define TARGET_VTIME	7
25
#define TARGET_VEOL2	8
26
#define TARGET_VSWTC	9
27

  
28
#define TARGET_VWERASE 	10
29
#define TARGET_VREPRINT	11
30
#define TARGET_VSUSP    12
31
#define TARGET_VSTART   13
32
#define TARGET_VSTOP    14
33
#define TARGET_VLNEXT   15
34
#define TARGET_VDISCARD	16
35

  
36
#define TARGET_IGNBRK	0000001
37
#define TARGET_BRKINT	0000002
38
#define TARGET_IGNPAR	0000004
39
#define TARGET_PARMRK	0000010
40
#define TARGET_INPCK	0000020
41
#define TARGET_ISTRIP	0000040
42
#define TARGET_INLCR	0000100
43
#define TARGET_IGNCR	0000200
44
#define TARGET_ICRNL	0000400
45
#define TARGET_IXON	0001000
46
#define TARGET_IXOFF	0002000
47
#define TARGET_IXANY	0004000
48
#define TARGET_IUCLC	0010000
49
#define TARGET_IMAXBEL	0020000
50
#define	TARGET_IUTF8	0040000
51

  
52
/* c_oflag bits */
53
#define TARGET_OPOST	0000001
54
#define TARGET_ONLCR	0000002
55
#define TARGET_OLCUC	0000004
56

  
57
#define TARGET_OCRNL	0000010
58
#define TARGET_ONOCR	0000020
59
#define TARGET_ONLRET	0000040
60

  
61
#define TARGET_OFILL	00000100
62
#define TARGET_OFDEL	00000200
63
#define TARGET_NLDLY	00001400
64
#define   TARGET_NL0	00000000
65
#define   TARGET_NL1	00000400
66
#define   TARGET_NL2	00001000
67
#define   TARGET_NL3	00001400
68
#define TARGET_TABDLY	00006000
69
#define   TARGET_TAB0	00000000
70
#define   TARGET_TAB1	00002000
71
#define   TARGET_TAB2	00004000
72
#define   TARGET_TAB3	00006000
73
#define   TARGET_XTABS	00006000	/* required by POSIX to == TAB3 */
74
#define TARGET_CRDLY	00030000
75
#define   TARGET_CR0	00000000
76
#define   TARGET_CR1	00010000
77
#define   TARGET_CR2	00020000
78
#define   TARGET_CR3	00030000
79
#define TARGET_FFDLY	00040000
80
#define   TARGET_FF0	00000000
81
#define   TARGET_FF1	00040000
82
#define TARGET_BSDLY	00100000
83
#define   TARGET_BS0	00000000
84
#define   TARGET_BS1	00100000
85
#define TARGET_VTDLY	00200000
86
#define   TARGET_VT0	00000000
87
#define   TARGET_VT1	00200000
88

  
89
/* c_cflag bit meaning */
90
#define TARGET_CBAUD	0000377
91
#define  TARGET_B0	0000000		/* hang up */
92
#define  TARGET_B50	0000001
93
#define  TARGET_B75	0000002
94
#define  TARGET_B110	0000003
95
#define  TARGET_B134	0000004
96
#define  TARGET_B150	0000005
97
#define  TARGET_B200	0000006
98
#define  TARGET_B300	0000007
99
#define  TARGET_B600	0000010
100
#define  TARGET_B1200	0000011
101
#define  TARGET_B1800	0000012
102
#define  TARGET_B2400	0000013
103
#define  TARGET_B4800	0000014
104
#define  TARGET_B9600	0000015
105
#define  TARGET_B19200	0000016
106
#define  TARGET_B38400	0000017
107
#define TARGET_EXTA B19200
108
#define TARGET_EXTB B38400
109
#define TARGET_CBAUDEX 0000000
110
#define  TARGET_B57600   00020
111
#define  TARGET_B115200  00021
112
#define  TARGET_B230400  00022
113
#define  TARGET_B460800  00023
114
#define  TARGET_B500000  00024
115
#define  TARGET_B576000  00025
116
#define  TARGET_B921600  00026
117
#define TARGET_B1000000  00027
118
#define TARGET_B1152000  00030
119
#define TARGET_B1500000  00031
120
#define TARGET_B2000000  00032
121
#define TARGET_B2500000  00033
122
#define TARGET_B3000000  00034
123
#define TARGET_B3500000  00035
124
#define TARGET_B4000000  00036
125

  
126
#define TARGET_CSIZE	00001400
127
#define   TARGET_CS5	00000000
128
#define   TARGET_CS6	00000400
129
#define   TARGET_CS7	00001000
130
#define   TARGET_CS8	00001400
131

  
132
#define TARGET_CSTOPB	00002000
133
#define TARGET_CREAD	00004000
134
#define TARGET_PARENB	00010000
135
#define TARGET_PARODD	00020000
136
#define TARGET_HUPCL	00040000
137

  
138
#define TARGET_CLOCAL	00100000
139
#define TARGET_CMSPAR	010000000000		/* mark or space (stick) parity */
140
#define TARGET_CRTSCTS	020000000000		/* flow control */
141

  
142
/* c_lflag bits */
143
#define TARGET_ISIG	0x00000080
144
#define TARGET_ICANON	0x00000100
145
#define TARGET_XCASE	0x00004000
146
#define TARGET_ECHO	0x00000008
147
#define TARGET_ECHOE	0x00000002
148
#define TARGET_ECHOK	0x00000004
149
#define TARGET_ECHONL	0x00000010
150
#define TARGET_NOFLSH	0x80000000
151
#define TARGET_TOSTOP	0x00400000
152
#define TARGET_ECHOCTL	0x00000040
153
#define TARGET_ECHOPRT	0x00000020
154
#define TARGET_ECHOKE	0x00000001
155
#define TARGET_FLUSHO	0x00800000
156
#define TARGET_PENDIN	0x20000000
157
#define TARGET_IEXTEN	0x00000400
158

  
159
/* ioctls */
160

  
161
#define TARGET_FIOCLEX		TARGET_IO('f', 1)
162
#define TARGET_FIONCLEX	        TARGET_IO('f', 2)
163
#define TARGET_FIOASYNC	        TARGET_IOW('f', 125, int)
164
#define TARGET_FIONBIO		TARGET_IOW('f', 126, int)
165
#define TARGET_FIONREAD	        TARGET_IOR('f', 127, int)
166
#define TARGET_TIOCINQ		TARGET_FIONREAD
167
//#define TARGET_FIOQSIZE	        TARGET_IOR('f', 128, loff_t)
168

  
169
#define TARGET_TCGETS		TARGET_IOR('t', 19, struct target_termios)
170
#define TARGET_TCSETS		TARGET_IOW('t', 20, struct target_termios)
171
#define TARGET_TCSETSW		TARGET_IOW('t', 21, struct target_termios)
172
#define TARGET_TCSETSF		TARGET_IOW('t', 22, struct target_termios)
173

  
174
#define TARGET_TCGETA		TARGET_IOR('t', 23, struct target_termio)
175
#define TARGET_TCSETA		TARGET_IOW('t', 24, struct target_termio)
176
#define TARGET_TCSETAW		TARGET_IOW('t', 25, struct target_termio)
177
#define TARGET_TCSETAF		TARGET_IOW('t', 28, struct target_termio)
178

  
179
#define TARGET_TCSBRK		TARGET_IO('t', 29)
180
#define TARGET_TCXONC		TARGET_IO('t', 30)
181
#define TARGET_TCFLSH		TARGET_IO('t', 31)
182

  
183
#define TARGET_TIOCSWINSZ	TARGET_IOW('t', 103, struct target_winsize)
184
#define TARGET_TIOCGWINSZ	TARGET_IOR('t', 104, struct target_winsize)
185
#define	TARGET_TIOCSTART	TARGET_IO('t', 110)		/* start output, like ^Q */
186
#define	TARGET_TIOCSTOP	TARGET_IO('t', 111)		/* stop output, like ^S */
187
#define TARGET_TIOCOUTQ        TARGET_IOR('t', 115, int)     /* output queue size */
188

  
189
#define TARGET_TIOCGLTC	TARGET_IOR('t', 116, struct target_ltchars)
190
#define TARGET_TIOCSLTC	TARGET_IOW('t', 117, struct target_ltchars)
191
#define TARGET_TIOCSPGRP	TARGET_IOW('t', 118, int)
192
#define TARGET_TIOCGPGRP	TARGET_IOR('t', 119, int)
193

  
194
#define TARGET_TIOCEXCL	0x540C
195
#define TARGET_TIOCNXCL	0x540D
196
#define TARGET_TIOCSCTTY	0x540E
197

  
198
#define TARGET_TIOCSTI		0x5412
199
#define TARGET_TIOCMGET	0x5415
200
#define TARGET_TIOCMBIS	0x5416
201
#define TARGET_TIOCMBIC	0x5417
202
#define TARGET_TIOCMSET	0x5418
203

  
204
#define TARGET_TIOCGSOFTCAR	0x5419
205
#define TARGET_TIOCSSOFTCAR	0x541A
206
#define TARGET_TIOCLINUX	0x541C
207
#define TARGET_TIOCCONS	0x541D
208
#define TARGET_TIOCGSERIAL	0x541E
209
#define TARGET_TIOCSSERIAL	0x541F
210
#define TARGET_TIOCPKT		0x5420
211

  
212
#define TARGET_TIOCNOTTY	0x5422
213
#define TARGET_TIOCSETD	0x5423
214
#define TARGET_TIOCGETD	0x5424
215
#define TARGET_TCSBRKP		0x5425	/* Needed for POSIX tcsendbreak() */
216
#define TARGET_TIOCTTYGSTRUCT	0x5426  /* For debugging only */
217
#define TARGET_TIOCSBRK	0x5427  /* BSD compatibility */
218
#define TARGET_TIOCCBRK	0x5428  /* BSD compatibility */
219
#define TARGET_TIOCGSID	0x5429  /* Return the session ID of FD */
220
#define TARGET_TIOCGPTN	TARGET_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
221
#define TARGET_TIOCSPTLCK	TARGET_IOW('T',0x31, int)  /* Lock/unlock Pty */
222

  
223
#define TARGET_TIOCSERCONFIG	0x5453
224
#define TARGET_TIOCSERGWILD	0x5454
225
#define TARGET_TIOCSERSWILD	0x5455
226
#define TARGET_TIOCGLCKTRMIOS	0x5456
227
#define TARGET_TIOCSLCKTRMIOS	0x5457
228
#define TARGET_TIOCSERGSTRUCT	0x5458 /* For debugging only */
229
#define TARGET_TIOCSERGETLSR   0x5459 /* Get line status register */
230
  /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
231
# define TARGET_TIOCSER_TEMT    0x01	/* Transmitter physically empty */
232
#define TARGET_TIOCSERGETMULTI 0x545A /* Get multiport config  */
233
#define TARGET_TIOCSERSETMULTI 0x545B /* Set multiport config */
234

  
235
#define TARGET_TIOCMIWAIT	0x545C	/* wait for a change on serial input line(s) */
236
#define TARGET_TIOCGICOUNT	0x545D	/* read serial port inline interrupt counts */
237

  

Also available in: Unified diff