Revision 74aa0429

b/linux-user/ppc64/syscall.h
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
	target_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
struct target_msgbuf {
69
	int mtype;
70
	char mtext[1];
71
};
72

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

  
78
struct target_ipc_perm {
79
	int	key;
80
	unsigned short	uid;
81
	unsigned short	gid;
82
	unsigned short	cuid;
83
	unsigned short	cgid;
84
	unsigned short	mode;
85
	unsigned short	seq;
86
};
87

  
88
struct target_msqid_ds {
89
	struct target_ipc_perm	msg_perm;
90
	unsigned int		msg_first;	/* really struct target_msg* */
91
	unsigned int		msg_last;	/* really struct target_msg* */
92
	unsigned int		msg_stime;	/* really target_time_t */
93
	unsigned int		msg_rtime;	/* really target_time_t */
94
	unsigned int		msg_ctime;	/* really target_time_t */
95
	unsigned int		wwait;		/* really struct wait_queue* */
96
	unsigned int		rwait;		/* really struct wait_queue* */
97
	unsigned short		msg_cbytes;
98
	unsigned short		msg_qnum;
99
	unsigned short		msg_qbytes;
100
	unsigned short		msg_lspid;
101
	unsigned short		msg_lrpid;
102
};
103

  
104
struct target_shmid_ds {
105
	struct target_ipc_perm	shm_perm;
106
	int			shm_segsz;
107
	unsigned int		shm_atime;	/* really target_time_t */
108
	unsigned int		shm_dtime;	/* really target_time_t */
109
	unsigned int		shm_ctime;	/* really target_time_t */
110
	unsigned short		shm_cpid;
111
	unsigned short		shm_lpid;
112
	short			shm_nattch;
113
	unsigned short		shm_npages;
114
	unsigned long		*shm_pages;
115
	void 			*attaches;	/* really struct shm_desc * */
116
};
117

  
118
#define TARGET_IPC_RMID	0
119
#define TARGET_IPC_SET	1
120
#define TARGET_IPC_STAT	2
121

  
122
union target_semun {
123
    int val;
124
    unsigned int buf;	/* really struct semid_ds * */
125
    unsigned int array; /* really unsigned short * */
126
    unsigned int __buf;	/* really struct seminfo * */
127
    unsigned int __pad;	/* really void* */
128
};
129

  
130
#define UNAME_MACHINE "ppc"
b/linux-user/ppc64/syscall_nr.h
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
b/linux-user/ppc64/termbits.h
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_line;                    /* line discipline */
11
    unsigned char c_cc[TARGET_NCCS];                /* control characters */
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

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

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

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

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

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

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

  
137
#define TARGET_CLOCAL	00100000
138
#define TARGET_CRTSCTS	  020000000000		/* flow control */
139

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

  
157
/* ioctls */
158

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

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

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

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

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

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

  
192
#define TARGET_TIOCEXCL	0x540C
193
#define TARGET_TIOCNXCL	0x540D
194
#define TARGET_TIOCSCTTY	0x540E
195

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

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

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

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

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

  
b/linux-user/x86_64/syscall.h
1
#define __USER_CS	(0x33)
2
#define __USER_DS	(0x2B)
3

  
4
struct target_pt_regs {
5
	target_ulong r15;
6
	target_ulong r14;
7
	target_ulong r13;
8
	target_ulong r12;
9
	target_ulong rbp;
10
	target_ulong rbx;
11
/* arguments: non interrupts/non tracing syscalls only save upto here*/
12
 	target_ulong r11;
13
	target_ulong r10;
14
	target_ulong r9;
15
	target_ulong r8;
16
	target_ulong rax;
17
	target_ulong rcx;
18
	target_ulong rdx;
19
	target_ulong rsi;
20
	target_ulong rdi;
21
	target_ulong orig_rax;
22
/* end of arguments */
23
/* cpu exception frame or undefined */
24
	target_ulong rip;
25
	target_ulong cs;
26
	target_ulong eflags;
27
	target_ulong rsp;
28
	target_ulong ss;
29
/* top of stack page */
30
};
31

  
32
/* Maximum number of LDT entries supported. */
33
#define TARGET_LDT_ENTRIES	8192
34
/* The size of each LDT entry. */
35
#define TARGET_LDT_ENTRY_SIZE	8
36

  
37
#define TARGET_GDT_ENTRY_TLS_ENTRIES 3
38
#define TARGET_GDT_ENTRY_TLS_MIN 12
39
#define TARGET_GDT_ENTRY_TLS_MAX 14
40

  
41
#if 0 // Redefine this
42
struct target_modify_ldt_ldt_s {
43
	unsigned int  entry_number;
44
	target_ulong  base_addr;
45
	unsigned int  limit;
46
	unsigned int  seg_32bit:1;
47
	unsigned int  contents:2;
48
	unsigned int  read_exec_only:1;
49
	unsigned int  limit_in_pages:1;
50
	unsigned int  seg_not_present:1;
51
	unsigned int  useable:1;
52
	unsigned int  lm:1;
53
};
54
#else
55
struct target_modify_ldt_ldt_s {
56
	unsigned int  entry_number;
57
	target_ulong  base_addr;
58
	unsigned int  limit;
59
        unsigned int flags;
60
};
61
#endif
62

  
63
struct target_ipc64_perm
64
{
65
	int		key;
66
	uint32_t	uid;
67
	uint32_t	gid;
68
	uint32_t	cuid;
69
	uint32_t	cgid;
70
	unsigned short		mode;
71
	unsigned short		__pad1;
72
	unsigned short		seq;
73
	unsigned short		__pad2;
74
	target_ulong		__unused1;
75
	target_ulong		__unused2;
76
};
77

  
78
struct target_msqid64_ds {
79
	struct target_ipc64_perm msg_perm;
80
	unsigned int msg_stime;	/* last msgsnd time */
81
	unsigned int msg_rtime;	/* last msgrcv time */
82
	unsigned int msg_ctime;	/* last change time */
83
	target_ulong  msg_cbytes;	/* current number of bytes on queue */
84
	target_ulong  msg_qnum;	/* number of messages in queue */
85
	target_ulong  msg_qbytes;	/* max number of bytes on queue */
86
	unsigned int msg_lspid;	/* pid of last msgsnd */
87
	unsigned int msg_lrpid;	/* last receive pid */
88
	target_ulong  __unused4;
89
	target_ulong  __unused5;
90
};
91

  
92
#define UNAME_MACHINE "x86_64"
b/linux-user/x86_64/syscall_nr.h
1
#define TARGET_NR_read                                0
2
#define TARGET_NR_write                               1
3
#define TARGET_NR_open                                2
4
#define TARGET_NR_close                               3
5
#define TARGET_NR_stat                                4
6
#define TARGET_NR_fstat                               5
7
#define TARGET_NR_lstat                               6
8
#define TARGET_NR_poll                                7
9
#define TARGET_NR_lseek                               8
10
#define TARGET_NR_mmap                                9
11
#define TARGET_NR_mprotect                           10
12
#define TARGET_NR_munmap                             11
13
#define TARGET_NR_brk                                12
14
#define TARGET_NR_rt_sigaction                       13
15
#define TARGET_NR_rt_sigprocmask                     14
16
#define TARGET_NR_rt_sigreturn                       15
17
#define TARGET_NR_ioctl                              16
18
#define TARGET_NR_pread64                            17
19
#define TARGET_NR_pwrite64                           18
20
#define TARGET_NR_readv                              19
21
#define TARGET_NR_writev                             20
22
#define TARGET_NR_access                             21
23
#define TARGET_NR_pipe                               22
24
#define TARGET_NR_select                             23
25
#define TARGET_NR_sched_yield                        24
26
#define TARGET_NR_mremap                             25
27
#define TARGET_NR_msync                              26
28
#define TARGET_NR_mincore                            27
29
#define TARGET_NR_madvise                            28
30
#define TARGET_NR_shmget                             29
31
#define TARGET_NR_shmat                              30
32
#define TARGET_NR_shmctl                             31
33
#define TARGET_NR_dup                                32
34
#define TARGET_NR_dup2                               33
35
#define TARGET_NR_pause                              34
36
#define TARGET_NR_nanosleep                          35
37
#define TARGET_NR_getitimer                          36
38
#define TARGET_NR_alarm                              37
39
#define TARGET_NR_setitimer                          38
40
#define TARGET_NR_getpid                             39
41
#define TARGET_NR_sendfile                           40
42
#define TARGET_NR_socket                             41
43
#define TARGET_NR_connect                            42
44
#define TARGET_NR_accept                             43
45
#define TARGET_NR_sendto                             44
46
#define TARGET_NR_recvfrom                           45
47
#define TARGET_NR_sendmsg                            46
48
#define TARGET_NR_recvmsg                            47
49
#define TARGET_NR_shutdown                           48
50
#define TARGET_NR_bind                               49
51
#define TARGET_NR_listen                             50
52
#define TARGET_NR_getsockname                        51
53
#define TARGET_NR_getpeername                        52
54
#define TARGET_NR_socketpair                         53
55
#define TARGET_NR_setsockopt                         54
56
#define TARGET_NR_getsockopt                         55
57
#define TARGET_NR_clone                              56
58
#define TARGET_NR_fork                               57
59
#define TARGET_NR_vfork                              58
60
#define TARGET_NR_execve                             59
61
#define TARGET_NR_exit                               60
62
#define TARGET_NR_wait4                              61
63
#define TARGET_NR_kill                               62
64
#define TARGET_NR_uname                              63
65
#define TARGET_NR_semget                             64
66
#define TARGET_NR_semop                              65
67
#define TARGET_NR_semctl                             66
68
#define TARGET_NR_shmdt                              67
69
#define TARGET_NR_msgget                             68
70
#define TARGET_NR_msgsnd                             69
71
#define TARGET_NR_msgrcv                             70
72
#define TARGET_NR_msgctl                             71
73
#define TARGET_NR_fcntl                              72
74
#define TARGET_NR_flock                              73
75
#define TARGET_NR_fsync                              74
76
#define TARGET_NR_fdatasync                          75
77
#define TARGET_NR_truncate                           76
78
#define TARGET_NR_ftruncate                          77
79
#define TARGET_NR_getdents                           78
80
#define TARGET_NR_getcwd                             79
81
#define TARGET_NR_chdir                              80
82
#define TARGET_NR_fchdir                             81
83
#define TARGET_NR_rename                             82
84
#define TARGET_NR_mkdir                              83
85
#define TARGET_NR_rmdir                              84
86
#define TARGET_NR_creat                              85
87
#define TARGET_NR_link                               86
88
#define TARGET_NR_unlink                             87
89
#define TARGET_NR_symlink                            88
90
#define TARGET_NR_readlink                           89
91
#define TARGET_NR_chmod                              90
92
#define TARGET_NR_fchmod                             91
93
#define TARGET_NR_chown                              92
94
#define TARGET_NR_fchown                             93
95
#define TARGET_NR_lchown                             94
96
#define TARGET_NR_umask                              95
97
#define TARGET_NR_gettimeofday                       96
98
#define TARGET_NR_getrlimit                          97
99
#define TARGET_NR_getrusage                          98
100
#define TARGET_NR_sysinfo                            99
101
#define TARGET_NR_times                             100
102
#define TARGET_NR_ptrace                            101
103
#define TARGET_NR_getuid                            102
104
#define TARGET_NR_syslog                            103
105
#define TARGET_NR_getgid                            104
106
#define TARGET_NR_setuid                            105
107
#define TARGET_NR_setgid                            106
108
#define TARGET_NR_geteuid                           107
109
#define TARGET_NR_getegid                           108
110
#define TARGET_NR_setpgid                           109
111
#define TARGET_NR_getppid                           110
112
#define TARGET_NR_getpgrp                           111
113
#define TARGET_NR_setsid                            112
114
#define TARGET_NR_setreuid                          113
115
#define TARGET_NR_setregid                          114
116
#define TARGET_NR_getgroups                         115
117
#define TARGET_NR_setgroups                         116
118
#define TARGET_NR_setresuid                         117
119
#define TARGET_NR_getresuid                         118
120
#define TARGET_NR_setresgid                         119
121
#define TARGET_NR_getresgid                         120
122
#define TARGET_NR_getpgid                           121
123
#define TARGET_NR_setfsuid                          122
124
#define TARGET_NR_setfsgid                          123
125
#define TARGET_NR_getsid                            124
126
#define TARGET_NR_capget                            125
127
#define TARGET_NR_capset                            126
128
#define TARGET_NR_rt_sigpending                     127
129
#define TARGET_NR_rt_sigtimedwait                   128
130
#define TARGET_NR_rt_sigqueueinfo                   129
131
#define TARGET_NR_rt_sigsuspend                     130
132
#define TARGET_NR_sigaltstack                       131
133
#define TARGET_NR_utime                             132
134
#define TARGET_NR_mknod                             133
135
#define TARGET_NR_uselib                            134
136
#define TARGET_NR_personality                       135
137
#define TARGET_NR_ustat                             136
138
#define TARGET_NR_statfs                            137
139
#define TARGET_NR_fstatfs                           138
140
#define TARGET_NR_sysfs                             139
141
#define TARGET_NR_getpriority                       140
142
#define TARGET_NR_setpriority                       141
143
#define TARGET_NR_sched_setparam                    142
144
#define TARGET_NR_sched_getparam                    143
145
#define TARGET_NR_sched_setscheduler                144
146
#define TARGET_NR_sched_getscheduler                145
147
#define TARGET_NR_sched_get_priority_max            146
148
#define TARGET_NR_sched_get_priority_min            147
149
#define TARGET_NR_sched_rr_get_interval             148
150
#define TARGET_NR_mlock                             149
151
#define TARGET_NR_munlock                           150
152
#define TARGET_NR_mlockall                          151
153
#define TARGET_NR_munlockall                        152
154
#define TARGET_NR_vhangup                           153
155
#define TARGET_NR_modify_ldt                        154
156
#define TARGET_NR_pivot_root                        155
157
#define TARGET_NR__sysctl                           156
158
#define TARGET_NR_prctl                             157
159
#define TARGET_NR_arch_prctl                        158
160
#define TARGET_NR_adjtimex                          159
161
#define TARGET_NR_setrlimit                         160
162
#define TARGET_NR_chroot                            161
163
#define TARGET_NR_sync                              162
164
#define TARGET_NR_acct                              163
165
#define TARGET_NR_settimeofday                      164
166
#define TARGET_NR_mount                             165
167
#define TARGET_NR_umount2                           166
168
#define TARGET_NR_swapon                            167
169
#define TARGET_NR_swapoff                           168
170
#define TARGET_NR_reboot                            169
171
#define TARGET_NR_sethostname                       170
172
#define TARGET_NR_setdomainname                     171
173
#define TARGET_NR_iopl                              172
174
#define TARGET_NR_ioperm                            173
175
#define TARGET_NR_create_module                     174
176
#define TARGET_NR_init_module                       175
177
#define TARGET_NR_delete_module                     176
178
#define TARGET_NR_get_kernel_syms                   177
179
#define TARGET_NR_query_module                      178
180
#define TARGET_NR_quotactl                          179
181
#define TARGET_NR_nfsservctl                        180
182
#define TARGET_NR_getpmsg                           181	/* reserved for LiS/STREAMS */
183
#define TARGET_NR_putpmsg                           182	/* reserved for LiS/STREAMS */
184
#define TARGET_NR_afs_syscall                       183	/* reserved for AFS */ 
185
#define TARGET_NR_tuxcall      		184 /* reserved for tux */
186
#define TARGET_NR_security			185
187
#define TARGET_NR_gettid		186
188
#define TARGET_NR_readahead		187
189
#define TARGET_NR_setxattr		188
190
#define TARGET_NR_lsetxattr		189
191
#define TARGET_NR_fsetxattr		190
192
#define TARGET_NR_getxattr		191
193
#define TARGET_NR_lgetxattr		192
194
#define TARGET_NR_fgetxattr		193
195
#define TARGET_NR_listxattr		194
196
#define TARGET_NR_llistxattr		195
197
#define TARGET_NR_flistxattr		196
198
#define TARGET_NR_removexattr	197
199
#define TARGET_NR_lremovexattr	198
200
#define TARGET_NR_fremovexattr	199
201
#define TARGET_NR_tkill	200
202
#define TARGET_NR_time      201
203
#define TARGET_NR_futex     202
204
#define TARGET_NR_sched_setaffinity    203
205
#define TARGET_NR_sched_getaffinity     204
206
#define TARGET_NR_set_thread_area	205
207
#define TARGET_NR_io_setup	206
208
#define TARGET_NR_io_destroy	207
209
#define TARGET_NR_io_getevents	208
210
#define TARGET_NR_io_submit	209
211
#define TARGET_NR_io_cancel	210
212
#define TARGET_NR_get_thread_area	211
213
#define TARGET_NR_lookup_dcookie	212
214
#define TARGET_NR_epoll_create	213
215
#define TARGET_NR_epoll_ctl_old	214
216
#define TARGET_NR_epoll_wait_old	215
217
#define TARGET_NR_remap_file_pages	216
218
#define TARGET_NR_getdents64	217
219
#define TARGET_NR_set_tid_address	218
220
#define TARGET_NR_restart_syscall	219
221
#define TARGET_NR_semtimedop		220
222
#define TARGET_NR_fadvise64		221
223
#define TARGET_NR_timer_create		222
224
#define TARGET_NR_timer_settime		223
225
#define TARGET_NR_timer_gettime		224
226
#define TARGET_NR_timer_getoverrun		225
227
#define TARGET_NR_timer_delete	226
228
#define TARGET_NR_clock_settime	227
229
#define TARGET_NR_clock_gettime	228
230
#define TARGET_NR_clock_getres	229
231
#define TARGET_NR_clock_nanosleep	230
232
#define TARGET_NR_exit_group		231
233
#define TARGET_NR_epoll_wait		232
234
#define TARGET_NR_epoll_ctl		233
235
#define TARGET_NR_tgkill		234
236
#define TARGET_NR_utimes		235
237
#define TARGET_NR_vserver		236
238
#define TARGET_NR_mbind 		237
239
#define TARGET_NR_set_mempolicy 	238
240
#define TARGET_NR_get_mempolicy 	239
241
#define TARGET_NR_mq_open 		240
242
#define TARGET_NR_mq_unlink 		241
243
#define TARGET_NR_mq_timedsend 	242
244
#define TARGET_NR_mq_timedreceive	243
245
#define TARGET_NR_mq_notify 		244
246
#define TARGET_NR_mq_getsetattr 	245
247
#define TARGET_NR_kexec_load 	246
248
#define TARGET_NR_waitid		247
249
#define TARGET_NR_add_key		248
250
#define TARGET_NR_request_key	249
251
#define TARGET_NR_keyctl		250
252
#define TARGET_NR_ioprio_set		251
253
#define TARGET_NR_ioprio_get		252
254
#define TARGET_NR_inotify_init	253
255
#define TARGET_NR_inotify_add_watch	254
256
#define TARGET_NR_inotify_rm_watch	255
257
#define TARGET_NR_migrate_pages	256
258
#define TARGET_NR_openat		257
259
#define TARGET_NR_mkdirat		258
260
#define TARGET_NR_mknodat		259
261
#define TARGET_NR_fchownat		260
262
#define TARGET_NR_futimesat		261
263
#define TARGET_NR_newfstatat		262
264
#define TARGET_NR_unlinkat		263
265
#define TARGET_NR_renameat		264
266
#define TARGET_NR_linkat		265
267
#define TARGET_NR_symlinkat		266
268
#define TARGET_NR_readlinkat		267
269
#define TARGET_NR_fchmodat		268
270
#define TARGET_NR_faccessat		269
271
#define TARGET_NR_pselect6		270
272
#define TARGET_NR_ppoll		271
273
#define TARGET_NR_unshare		272
274
#define TARGET_NR_set_robust_list	273
275
#define TARGET_NR_get_robust_list	274
276
#define TARGET_NR_splice		275
277
#define TARGET_NR_tee		276
278
#define TARGET_NR_sync_file_range	277
279
#define TARGET_NR_vmsplice		278
280
#define TARGET_NR_move_pages		279
b/linux-user/x86_64/termbits.h
1
#define TARGET_NCCS 19
2

  
3
typedef unsigned char	target_cc_t;
4
typedef unsigned int	target_speed_t;
5
typedef unsigned int	target_tcflag_t;
6
struct target_termios {
7
	target_tcflag_t c_iflag;		/* input mode flags */
8
	target_tcflag_t c_oflag;		/* output mode flags */
9
	target_tcflag_t c_cflag;		/* control mode flags */
10
	target_tcflag_t c_lflag;		/* local mode flags */
11
	target_cc_t c_line;			/* line discipline */
12
	target_cc_t c_cc[TARGET_NCCS];		/* control characters */
13
};
14

  
15
/* c_cc characters */
16
#define TARGET_VINTR 0
17
#define TARGET_VQUIT 1
18
#define TARGET_VERASE 2
19
#define TARGET_VKILL 3
20
#define TARGET_VEOF 4
21
#define TARGET_VTIME 5
22
#define TARGET_VMIN 6
23
#define TARGET_VSWTC 7
24
#define TARGET_VSTART 8
25
#define TARGET_VSTOP 9
26
#define TARGET_VSUSP 10
27
#define TARGET_VEOL 11
28
#define TARGET_VREPRINT 12
29
#define TARGET_VDISCARD 13
30
#define TARGET_VWERASE 14
31
#define TARGET_VLNEXT 15
32
#define TARGET_VEOL2 16
33

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

  
51
/* c_oflag bits */
52
#define TARGET_OPOST	0000001
53
#define TARGET_OLCUC	0000002
54
#define TARGET_ONLCR	0000004
55
#define TARGET_OCRNL	0000010
56
#define TARGET_ONOCR	0000020
57
#define TARGET_ONLRET	0000040
58
#define TARGET_OFILL	0000100
59
#define TARGET_OFDEL	0000200
60
#define TARGET_NLDLY	0000400
61
#define   TARGET_NL0	0000000
62
#define   TARGET_NL1	0000400
63
#define TARGET_CRDLY	0003000
64
#define   TARGET_CR0	0000000
65
#define   TARGET_CR1	0001000
66
#define   TARGET_CR2	0002000
67
#define   TARGET_CR3	0003000
68
#define TARGET_TABDLY	0014000
69
#define   TARGET_TAB0	0000000
70
#define   TARGET_TAB1	0004000
71
#define   TARGET_TAB2	0010000
72
#define   TARGET_TAB3	0014000
73
#define   TARGET_XTABS	0014000
74
#define TARGET_BSDLY	0020000
75
#define   TARGET_BS0	0000000
76
#define   TARGET_BS1	0020000
77
#define TARGET_VTDLY	0040000
78
#define   TARGET_VT0	0000000
79
#define   TARGET_VT1	0040000
80
#define TARGET_FFDLY	0100000
81
#define   TARGET_FF0	0000000
82
#define   TARGET_FF1	0100000
83

  
84
/* c_cflag bit meaning */
85
#define TARGET_CBAUD	0010017
86
#define  TARGET_B0	0000000		/* hang up */
87
#define  TARGET_B50	0000001
88
#define  TARGET_B75	0000002
89
#define  TARGET_B110	0000003
90
#define  TARGET_B134	0000004
91
#define  TARGET_B150	0000005
92
#define  TARGET_B200	0000006
93
#define  TARGET_B300	0000007
94
#define  TARGET_B600	0000010
95
#define  TARGET_B1200	0000011
96
#define  TARGET_B1800	0000012
97
#define  TARGET_B2400	0000013
98
#define  TARGET_B4800	0000014
99
#define  TARGET_B9600	0000015
100
#define  TARGET_B19200	0000016
101
#define  TARGET_B38400	0000017
102
#define TARGET_EXTA B19200
103
#define TARGET_EXTB B38400
104
#define TARGET_CSIZE	0000060
105
#define   TARGET_CS5	0000000
106
#define   TARGET_CS6	0000020
107
#define   TARGET_CS7	0000040
108
#define   TARGET_CS8	0000060
109
#define TARGET_CSTOPB	0000100
110
#define TARGET_CREAD	0000200
111
#define TARGET_PARENB	0000400
112
#define TARGET_PARODD	0001000
113
#define TARGET_HUPCL	0002000
114
#define TARGET_CLOCAL	0004000
115
#define TARGET_CBAUDEX 0010000
116
#define	   TARGET_BOTHER 0010000		/* non standard rate */
117
#define    TARGET_B57600 0010001
118
#define   TARGET_B115200 0010002
119
#define   TARGET_B230400 0010003
120
#define   TARGET_B460800 0010004
121
#define   TARGET_B500000 0010005
122
#define   TARGET_B576000 0010006
123
#define   TARGET_B921600 0010007
124
#define  TARGET_B1000000 0010010
125
#define  TARGET_B1152000 0010011
126
#define  TARGET_B1500000 0010012
127
#define  TARGET_B2000000 0010013
128
#define  TARGET_B2500000 0010014
129
#define  TARGET_B3000000 0010015
130
#define  TARGET_B3500000 0010016
131
#define  TARGET_B4000000 0010017
132
#define TARGET_CIBAUD	  002003600000	/* input baud rate */
133
#define TARGET_CMSPAR	  010000000000		/* mark or space (stick) parity */
134
#define TARGET_CRTSCTS	  020000000000		/* flow control */
135

  
136
#define TARGET_IBSHIFT	  8		/* Shift from CBAUD to CIBAUD */
137

  
138
/* c_lflag bits */
139
#define TARGET_ISIG	0000001
140
#define TARGET_ICANON	0000002
141
#define TARGET_XCASE	0000004
142
#define TARGET_ECHO	0000010
143
#define TARGET_ECHOE	0000020
144
#define TARGET_ECHOK	0000040
145
#define TARGET_ECHONL	0000100
146
#define TARGET_NOFLSH	0000200
147
#define TARGET_TOSTOP	0000400
148
#define TARGET_ECHOCTL	0001000
149
#define TARGET_ECHOPRT	0002000
150
#define TARGET_ECHOKE	0004000
151
#define TARGET_FLUSHO	0010000
152
#define TARGET_PENDIN	0040000
153
#define TARGET_IEXTEN	0100000
154

  
155
/* tcflow() and TCXONC use these */
156
#define	TARGET_TCOOFF		0
157
#define	TARGET_TCOON		1
158
#define	TARGET_TCIOFF		2
159
#define	TARGET_TCION		3
160

  
161
/* tcflush() and TCFLSH use these */
162
#define	TARGET_TCIFLUSH	0
163
#define	TARGET_TCOFLUSH	1
164
#define	TARGET_TCIOFLUSH	2
165

  
166
/* tcsetattr uses these */
167
#define	TARGET_TCSANOW		0
168
#define	TARGET_TCSADRAIN	1
169
#define	TARGET_TCSAFLUSH	2
170

  
171
#define TARGET_TCGETS		0x5401
172
#define TARGET_TCSETS		0x5402
173
#define TARGET_TCSETSW		0x5403
174
#define TARGET_TCSETSF		0x5404
175
#define TARGET_TCGETA		0x5405
176
#define TARGET_TCSETA		0x5406
177
#define TARGET_TCSETAW		0x5407
178
#define TARGET_TCSETAF		0x5408
179
#define TARGET_TCSBRK		0x5409
180
#define TARGET_TCXONC		0x540A
181
#define TARGET_TCFLSH		0x540B
182
#define TARGET_TIOCEXCL	0x540C
183
#define TARGET_TIOCNXCL	0x540D
184
#define TARGET_TIOCSCTTY	0x540E
185
#define TARGET_TIOCGPGRP	0x540F
186
#define TARGET_TIOCSPGRP	0x5410
187
#define TARGET_TIOCOUTQ	0x5411
188
#define TARGET_TIOCSTI		0x5412
189
#define TARGET_TIOCGWINSZ	0x5413
190
#define TARGET_TIOCSWINSZ	0x5414
191
#define TARGET_TIOCMGET	0x5415
192
#define TARGET_TIOCMBIS	0x5416
193
#define TARGET_TIOCMBIC	0x5417
194
#define TARGET_TIOCMSET	0x5418
195
#define TARGET_TIOCGSOFTCAR	0x5419
196
#define TARGET_TIOCSSOFTCAR	0x541A
197
#define TARGET_FIONREAD	0x541B
198
#define TARGET_TIOCINQ		FIONREAD
199
#define TARGET_TIOCLINUX	0x541C
200
#define TARGET_TIOCCONS	0x541D
201
#define TARGET_TIOCGSERIAL	0x541E
202
#define TARGET_TIOCSSERIAL	0x541F
203
#define TARGET_TIOCPKT		0x5420
204
#define TARGET_FIONBIO		0x5421
205
#define TARGET_TIOCNOTTY	0x5422
206
#define TARGET_TIOCSETD	0x5423
207
#define TARGET_TIOCGETD	0x5424
208
#define TARGET_TCSBRKP		0x5425	/* Needed for POSIX tcsendbreak() */
209
#define TARGET_TIOCSBRK	0x5427  /* BSD compatibility */
210
#define TARGET_TIOCCBRK	0x5428  /* BSD compatibility */
211
#define TARGET_TIOCGSID	0x5429  /* Return the session ID of FD */
212
#define TARGET_TCGETS2		_IOR('T',0x2A, struct termios2)
213
#define TARGET_TCSETS2		_IOW('T',0x2B, struct termios2)
214
#define TARGET_TCSETSW2	_IOW('T',0x2C, struct termios2)
215
#define TARGET_TCSETSF2	_IOW('T',0x2D, struct termios2)
216
#define TARGET_TIOCGPTN	_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
217
#define TARGET_TIOCSPTLCK	_IOW('T',0x31, int)  /* Lock/unlock Pty */
218

  
219
#define TARGET_FIONCLEX	0x5450  /* these numbers need to be adjusted. */
220
#define TARGET_FIOCLEX		0x5451
221
#define TARGET_FIOASYNC	0x5452
222
#define TARGET_TIOCSERCONFIG	0x5453
223
#define TARGET_TIOCSERGWILD	0x5454
224
#define TARGET_TIOCSERSWILD	0x5455
225
#define TARGET_TIOCGLCKTRMIOS	0x5456
226
#define TARGET_TIOCSLCKTRMIOS	0x5457
227
#define TARGET_TIOCSERGSTRUCT	0x5458 /* For debugging only */
228
#define TARGET_TIOCSERGETLSR   0x5459 /* Get line status register */
229
#define TARGET_TIOCSERGETMULTI 0x545A /* Get multiport config  */
230
#define TARGET_TIOCSERSETMULTI 0x545B /* Set multiport config */
231

  
232
#define TARGET_TIOCMIWAIT	0x545C	/* wait for a change on serial input line(s) */
233
#define TARGET_TIOCGICOUNT	0x545D	/* read serial port inline interrupt counts */
234
#define TARGET_TIOCGHAYESESP   0x545E  /* Get Hayes ESP configuration */
235
#define TARGET_TIOCSHAYESESP   0x545F  /* Set Hayes ESP configuration */
236
#define TARGET_FIOQSIZE       0x5460
237

  
238
/* Used for packet mode */
239
#define TARGET_TIOCPKT_DATA		 0
240
#define TARGET_TIOCPKT_FLUSHREAD	 1
241
#define TARGET_TIOCPKT_FLUSHWRITE	 2
242
#define TARGET_TIOCPKT_STOP		 4
243
#define TARGET_TIOCPKT_START		 8
244
#define TARGET_TIOCPKT_NOSTOP		16
245
#define TARGET_TIOCPKT_DOSTOP		32
246

  
247
#define TARGET_TIOCSER_TEMT    0x01	/* Transmitter physically empty */

Also available in: Unified diff