Statistics
| Branch: | Revision:

root / linux-user / syscall_defs.h @ 1b6b029e

History | View | Annotate | Download (14.9 kB)

1

    
2
/* common syscall defines for all architectures */
3

    
4
#define SOCKOP_socket           1
5
#define SOCKOP_bind             2
6
#define SOCKOP_connect          3
7
#define SOCKOP_listen           4
8
#define SOCKOP_accept           5
9
#define SOCKOP_getsockname      6
10
#define SOCKOP_getpeername      7
11
#define SOCKOP_socketpair       8
12
#define SOCKOP_send             9
13
#define SOCKOP_recv             10
14
#define SOCKOP_sendto           11
15
#define SOCKOP_recvfrom         12
16
#define SOCKOP_shutdown         13
17
#define SOCKOP_setsockopt       14
18
#define SOCKOP_getsockopt       15
19
#define SOCKOP_sendmsg          16
20
#define SOCKOP_recvmsg          17
21

    
22
struct target_timeval {
23
    target_long tv_sec;
24
    target_long tv_usec;
25
};
26

    
27
struct target_timespec {
28
    target_long tv_sec;
29
    target_long tv_nsec;
30
};
31

    
32
struct target_iovec {
33
    target_long iov_base;   /* Starting address */
34
    target_long iov_len;   /* Number of bytes */
35
};
36

    
37
struct target_msghdr {
38
    target_long         msg_name;        /* Socket name                        */
39
    int                 msg_namelen;        /* Length of name                */
40
    target_long         msg_iov;        /* Data blocks                        */
41
    target_long         msg_iovlen;        /* Number of blocks                */
42
    target_long  msg_control;        /* Per protocol magic (eg BSD file descriptor passing) */
43
    target_long         msg_controllen;        /* Length of cmsg list */
44
    unsigned int msg_flags;
45
};
46

    
47
struct  target_rusage {
48
        struct target_timeval ru_utime;        /* user time used */
49
        struct target_timeval ru_stime;        /* system time used */
50
        target_long    ru_maxrss;              /* maximum resident set size */
51
        target_long    ru_ixrss;               /* integral shared memory size */
52
        target_long    ru_idrss;               /* integral unshared data size */
53
        target_long    ru_isrss;               /* integral unshared stack size */
54
        target_long    ru_minflt;              /* page reclaims */
55
        target_long    ru_majflt;              /* page faults */
56
        target_long    ru_nswap;               /* swaps */
57
        target_long    ru_inblock;             /* block input operations */
58
        target_long    ru_oublock;             /* block output operations */
59
        target_long    ru_msgsnd;              /* messages sent */
60
        target_long    ru_msgrcv;              /* messages received */
61
        target_long    ru_nsignals;            /* signals received */
62
        target_long    ru_nvcsw;               /* voluntary context switches */
63
        target_long    ru_nivcsw;              /* involuntary " */
64
};
65

    
66
typedef struct {
67
        int     val[2];
68
} kernel_fsid_t;
69

    
70
struct kernel_statfs {
71
        int f_type;
72
        int f_bsize;
73
        int f_blocks;
74
        int f_bfree;
75
        int f_bavail;
76
        int f_files;
77
        int f_ffree;
78
        kernel_fsid_t f_fsid;
79
        int f_namelen;
80
        int f_spare[6];
81
};
82

    
83
struct target_dirent {
84
        target_long        d_ino;
85
        target_long        d_off;
86
        unsigned short        d_reclen;
87
        char                d_name[256]; /* We must not include limits.h! */
88
};
89

    
90
struct target_dirent64 {
91
        uint64_t        d_ino;
92
        int64_t                d_off;
93
        unsigned short        d_reclen;
94
        unsigned char        d_type;
95
        char                d_name[256];
96
};
97

    
98

    
99
/* mostly generic signal stuff */
100
#define TARGET_SIG_DFL        ((target_long)0)        /* default signal handling */
101
#define TARGET_SIG_IGN        ((target_long)1)        /* ignore signal */
102
#define TARGET_SIG_ERR        ((target_long)-1)        /* error return from signal */
103

    
104
#ifdef TARGET_MIPS
105
#define TARGET_NSIG           128
106
#else
107
#define TARGET_NSIG           64
108
#endif
109
#define TARGET_NSIG_BPW           TARGET_LONG_BITS
110
#define TARGET_NSIG_WORDS  (TARGET_NSIG / TARGET_NSIG_BPW)
111

    
112
typedef struct {
113
    target_ulong sig[TARGET_NSIG_WORDS];
114
} target_sigset_t;
115

    
116
/* Networking ioctls */
117
#define TARGET_SIOCADDRT       0x890B          /* add routing table entry */
118
#define TARGET_SIOCDELRT       0x890C          /* delete routing table entry */
119
#define TARGET_SIOCGIFNAME     0x8910          /* get iface name               */
120
#define TARGET_SIOCSIFLINK     0x8911          /* set iface channel            */
121
#define TARGET_SIOCGIFCONF     0x8912          /* get iface list               */
122
#define TARGET_SIOCGIFFLAGS    0x8913          /* get flags                    */
123
#define TARGET_SIOCSIFFLAGS    0x8914          /* set flags                    */
124
#define TARGET_SIOCGIFADDR     0x8915          /* get PA address               */
125
#define TARGET_SIOCSIFADDR     0x8916          /* set PA address               */
126
#define TARGET_SIOCGIFDSTADDR  0x8917          /* get remote PA address        */
127
#define TARGET_SIOCSIFDSTADDR  0x8918          /* set remote PA address        */
128
#define TARGET_SIOCGIFBRDADDR  0x8919          /* get broadcast PA address     */
129
#define TARGET_SIOCSIFBRDADDR  0x891a          /* set broadcast PA address     */
130
#define TARGET_SIOCGIFNETMASK  0x891b          /* get network PA mask          */
131
#define TARGET_SIOCSIFNETMASK  0x891c          /* set network PA mask          */
132
#define TARGET_SIOCGIFMETRIC   0x891d          /* get metric                   */
133
#define TARGET_SIOCSIFMETRIC   0x891e          /* set metric                   */
134
#define TARGET_SIOCGIFMEM      0x891f          /* get memory address (BSD)     */
135
#define TARGET_SIOCSIFMEM      0x8920          /* set memory address (BSD)     */
136
#define TARGET_SIOCGIFMTU      0x8921          /* get MTU size                 */
137
#define TARGET_SIOCSIFMTU      0x8922          /* set MTU size                 */
138
#define TARGET_SIOCSIFHWADDR   0x8924          /* set hardware address (NI)    */
139
#define TARGET_SIOCGIFENCAP    0x8925          /* get/set slip encapsulation   */
140
#define TARGET_SIOCSIFENCAP    0x8926
141
#define TARGET_SIOCGIFHWADDR   0x8927          /* Get hardware address         */
142
#define TARGET_SIOCGIFSLAVE    0x8929          /* Driver slaving support       */
143
#define TARGET_SIOCSIFSLAVE    0x8930
144
#define TARGET_SIOCADDMULTI    0x8931          /* Multicast address lists      */
145
#define TARGET_SIOCDELMULTI    0x8932
146

    
147
/* Bridging control calls */
148
#define TARGET_SIOCGIFBR       0x8940          /* Bridging support             */
149
#define TARGET_SIOCSIFBR       0x8941          /* Set bridging options         */
150

    
151
#define TARGET_SIOCGIFTXQLEN   0x8942          /* Get the tx queue length      */
152
#define TARGET_SIOCSIFTXQLEN   0x8943          /* Set the tx queue length      */
153

    
154
/* ARP cache control calls. */
155
#define TARGET_OLD_SIOCDARP    0x8950          /* old delete ARP table entry   */
156
#define TARGET_OLD_SIOCGARP    0x8951          /* old get ARP table entry      */
157
#define TARGET_OLD_SIOCSARP    0x8952          /* old set ARP table entry      */
158
#define TARGET_SIOCDARP        0x8953          /* delete ARP table entry       */
159
#define TARGET_SIOCGARP        0x8954          /* get ARP table entry          */
160
#define TARGET_SIOCSARP        0x8955          /* set ARP table entry          */
161

    
162
/* RARP cache control calls. */
163
#define TARGET_SIOCDRARP       0x8960          /* delete RARP table entry      */
164
#define TARGET_SIOCGRARP       0x8961          /* get RARP table entry         */
165
#define TARGET_SIOCSRARP       0x8962          /* set RARP table entry         */
166

    
167
/* Driver configuration calls */
168
#define TARGET_SIOCGIFMAP      0x8970          /* Get device parameters        */
169
#define TARGET_SIOCSIFMAP      0x8971          /* Set device parameters        */
170

    
171
/* DLCI configuration calls */
172
#define TARGET_SIOCADDDLCI     0x8980          /* Create new DLCI device       */
173
#define TARGET_SIOCDELDLCI     0x8981          /* Delete DLCI device           */
174

    
175

    
176
/* From <linux/fs.h> */
177

    
178
#define TARGET_BLKROSET   TARGET_IO(0x12,93) /* set device read-only (0 = read-write) */
179
#define TARGET_BLKROGET   TARGET_IO(0x12,94) /* get read-only status (0 = read_write) */
180
#define TARGET_BLKRRPART  TARGET_IO(0x12,95) /* re-read partition table */
181
#define TARGET_BLKGETSIZE TARGET_IO(0x12,96) /* return device size /512 (long *arg) */
182
#define TARGET_BLKFLSBUF  TARGET_IO(0x12,97) /* flush buffer cache */
183
#define TARGET_BLKRASET   TARGET_IO(0x12,98) /* Set read ahead for block device */
184
#define TARGET_BLKRAGET   TARGET_IO(0x12,99) /* get current read ahead setting */
185
#define TARGET_BLKFRASET  TARGET_IO(0x12,100)/* set filesystem (mm/filemap.c) read-ahead */
186
#define TARGET_BLKFRAGET  TARGET_IO(0x12,101)/* get filesystem (mm/filemap.c) read-ahead */
187
#define TARGET_BLKSECTSET TARGET_IO(0x12,102)/* set max sectors per request (ll_rw_blk.c) */
188
#define TARGET_BLKSECTGET TARGET_IO(0x12,103)/* get max sectors per request (ll_rw_blk.c) */
189
#define TARGET_BLKSSZGET  TARGET_IO(0x12,104)/* get block device sector size */
190
/* A jump here: 108-111 have been used for various private purposes. */
191
#define TARGET_BLKBSZGET  TARGET_IOR(0x12,112,sizeof(int))
192
#define TARGET_BLKBSZSET  TARGET_IOW(0x12,113,sizeof(int))
193
#define TARGET_BLKGETSIZE64 TARGET_IOR(0x12,114,sizeof(uint64_t)) /* return device size in bytes (u64 *arg) */
194
#define TARGET_FIBMAP     TARGET_IO(0x00,1)  /* bmap access */
195
#define TARGET_FIGETBSZ   TARGET_IO(0x00,2)  /* get the block size used for bmap */
196

    
197
/* cdrom commands */
198
#define TARGET_CDROMPAUSE                0x5301 /* Pause Audio Operation */ 
199
#define TARGET_CDROMRESUME                0x5302 /* Resume paused Audio Operation */
200
#define TARGET_CDROMPLAYMSF                0x5303 /* Play Audio MSF (struct cdrom_msf) */
201
#define TARGET_CDROMPLAYTRKIND                0x5304 /* Play Audio Track/index 
202
                                           (struct cdrom_ti) */
203
#define TARGET_CDROMREADTOCHDR                0x5305 /* Read TOC header 
204
                                           (struct cdrom_tochdr) */
205
#define TARGET_CDROMREADTOCENTRY        0x5306 /* Read TOC entry 
206
                                           (struct cdrom_tocentry) */
207
#define TARGET_CDROMSTOP                0x5307 /* Stop the cdrom drive */
208
#define TARGET_CDROMSTART                0x5308 /* Start the cdrom drive */
209
#define TARGET_CDROMEJECT                0x5309 /* Ejects the cdrom media */
210
#define TARGET_CDROMVOLCTRL                0x530a /* Control output volume 
211
                                           (struct cdrom_volctrl) */
212
#define TARGET_CDROMSUBCHNL                0x530b /* Read subchannel data 
213
                                           (struct cdrom_subchnl) */
214
#define TARGET_CDROMREADMODE2                0x530c /* Read TARGET_CDROM mode 2 data (2336 Bytes) 
215
                                           (struct cdrom_read) */
216
#define TARGET_CDROMREADMODE1                0x530d /* Read TARGET_CDROM mode 1 data (2048 Bytes)
217
                                           (struct cdrom_read) */
218
#define TARGET_CDROMREADAUDIO                0x530e /* (struct cdrom_read_audio) */
219
#define TARGET_CDROMEJECT_SW                0x530f /* enable(1)/disable(0) auto-ejecting */
220
#define TARGET_CDROMMULTISESSION        0x5310 /* Obtain the start-of-last-session 
221
                                           address of multi session disks 
222
                                           (struct cdrom_multisession) */
223
#define TARGET_CDROM_GET_MCN                0x5311 /* Obtain the "Universal Product Code" 
224
                                           if available (struct cdrom_mcn) */
225
#define TARGET_CDROM_GET_UPC                TARGET_CDROM_GET_MCN  /* This one is depricated, 
226
                                          but here anyway for compatability */
227
#define TARGET_CDROMRESET                0x5312 /* hard-reset the drive */
228
#define TARGET_CDROMVOLREAD                0x5313 /* Get the drive's volume setting 
229
                                          (struct cdrom_volctrl) */
230
#define TARGET_CDROMREADRAW                0x5314        /* read data in raw mode (2352 Bytes)
231
                                           (struct cdrom_read) */
232
/* 
233
 * These ioctls are used only used in aztcd.c and optcd.c
234
 */
235
#define TARGET_CDROMREADCOOKED                0x5315        /* read data in cooked mode */
236
#define TARGET_CDROMSEEK                0x5316  /* seek msf address */
237
  
238
/*
239
 * This ioctl is only used by the scsi-cd driver.  
240
   It is for playing audio in logical block addressing mode.
241
 */
242
#define TARGET_CDROMPLAYBLK                0x5317        /* (struct cdrom_blk) */
243

    
244
/* 
245
 * These ioctls are only used in optcd.c
246
 */
247
#define TARGET_CDROMREADALL                0x5318        /* read all 2646 bytes */
248

    
249
/* 
250
 * These ioctls are (now) only in ide-cd.c for controlling 
251
 * drive spindown time.  They should be implemented in the
252
 * Uniform driver, via generic packet commands, GPCMD_MODE_SELECT_10,
253
 * GPCMD_MODE_SENSE_10 and the GPMODE_POWER_PAGE...
254
 *  -Erik
255
 */
256
#define TARGET_CDROMGETSPINDOWN        0x531d
257
#define TARGET_CDROMSETSPINDOWN        0x531e
258

    
259
/* 
260
 * These ioctls are implemented through the uniform CD-ROM driver
261
 * They _will_ be adopted by all CD-ROM drivers, when all the CD-ROM
262
 * drivers are eventually ported to the uniform CD-ROM driver interface.
263
 */
264
#define TARGET_CDROMCLOSETRAY                0x5319        /* pendant of CDROMEJECT */
265
#define TARGET_CDROM_SET_OPTIONS        0x5320  /* Set behavior options */
266
#define TARGET_CDROM_CLEAR_OPTIONS        0x5321  /* Clear behavior options */
267
#define TARGET_CDROM_SELECT_SPEED        0x5322  /* Set the CD-ROM speed */
268
#define TARGET_CDROM_SELECT_DISC        0x5323  /* Select disc (for juke-boxes) */
269
#define TARGET_CDROM_MEDIA_CHANGED        0x5325  /* Check is media changed  */
270
#define TARGET_CDROM_DRIVE_STATUS        0x5326  /* Get tray position, etc. */
271
#define TARGET_CDROM_DISC_STATUS        0x5327  /* Get disc type, etc. */
272
#define TARGET_CDROM_CHANGER_NSLOTS    0x5328  /* Get number of slots */
273
#define TARGET_CDROM_LOCKDOOR                0x5329  /* lock or unlock door */
274
#define TARGET_CDROM_DEBUG                0x5330        /* Turn debug messages on/off */
275
#define TARGET_CDROM_GET_CAPABILITY        0x5331        /* get capabilities */
276

    
277
/* Note that scsi/scsi_ioctl.h also uses 0x5382 - 0x5386.
278
 * Future CDROM ioctls should be kept below 0x537F
279
 */
280

    
281
/* This ioctl is only used by sbpcd at the moment */
282
#define TARGET_CDROMAUDIOBUFSIZ        0x5382        /* set the audio buffer size */
283
                                        /* conflict with SCSI_IOCTL_GET_IDLUN */
284

    
285
/* DVD-ROM Specific ioctls */
286
#define TARGET_DVD_READ_STRUCT                0x5390  /* Read structure */
287
#define TARGET_DVD_WRITE_STRUCT        0x5391  /* Write structure */
288
#define TARGET_DVD_AUTH                0x5392  /* Authentication */
289

    
290
#define TARGET_CDROM_SEND_PACKET        0x5393        /* send a packet to the drive */
291
#define TARGET_CDROM_NEXT_WRITABLE        0x5394        /* get next writable block */
292
#define TARGET_CDROM_LAST_WRITTEN        0x5395        /* get last block written on disc */
293

    
294
/* HD commands */
295

    
296
/* hd/ide ctl's that pass (arg) ptrs to user space are numbered 0x030n/0x031n */
297
#define TARGET_HDIO_GETGEO            0x0301  /* get device geometry */
298
#define TARGET_HDIO_GET_UNMASKINTR    0x0302  /* get current unmask setting */
299
#define TARGET_HDIO_GET_MULTCOUNT     0x0304  /* get current IDE blockmode setting */
300
#define TARGET_HDIO_GET_IDENTITY      0x0307  /* get IDE identification info */
301
#define TARGET_HDIO_GET_KEEPSETTINGS  0x0308  /* get keep-settings-on-reset flag */
302
#define TARGET_HDIO_GET_32BIT         0x0309  /* get current io_32bit setting */
303
#define TARGET_HDIO_GET_NOWERR        0x030a  /* get ignore-write-error flag */
304
#define TARGET_HDIO_GET_DMA           0x030b  /* get use-dma flag */
305
#define TARGET_HDIO_DRIVE_CMD         0x031f  /* execute a special drive command */
306

    
307
/* hd/ide ctl's that pass (arg) non-ptr values are numbered 0x032n/0x033n */
308
#define TARGET_HDIO_SET_MULTCOUNT     0x0321  /* change IDE blockmode */
309
#define TARGET_HDIO_SET_UNMASKINTR    0x0322  /* permit other irqs during I/O */
310
#define TARGET_HDIO_SET_KEEPSETTINGS  0x0323  /* keep ioctl settings on reset */
311
#define TARGET_HDIO_SET_32BIT         0x0324  /* change io_32bit flags */
312
#define TARGET_HDIO_SET_NOWERR        0x0325  /* change ignore-write-error flag */
313
#define TARGET_HDIO_SET_DMA           0x0326  /* change use-dma flag */
314
#define TARGET_HDIO_SET_PIO_MODE      0x0327  /* reconfig interface to new speed */