~jderose/ubuntu/raring/qemu/vde-again

« back to all changes in this revision

Viewing changes to linux-user/syscall_defs.h

Tags: upstream-0.9.0+20070816
ImportĀ upstreamĀ versionĀ 0.9.0+20070816

Show diffs side-by-side

added added

removed removed

Lines of Context:
49
49
#define TARGET_IOC_TYPEBITS     8
50
50
 
51
51
#if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_SH4) \
52
 
    || defined(TARGET_M68K)
 
52
    || defined(TARGET_M68K) || defined(TARGET_ALPHA)
53
53
 
54
54
#define TARGET_IOC_SIZEBITS     14
55
55
#define TARGET_IOC_DIRBITS      2
176
176
static __inline__ struct target_cmsghdr *
177
177
__target_cmsg_nxthdr (struct target_msghdr *__mhdr, struct target_cmsghdr *__cmsg)
178
178
{
179
 
  if (tswapl(__cmsg->cmsg_len) < sizeof (struct target_cmsghdr))
180
 
    /* The kernel header does this so there may be a reason.  */
181
 
    return 0;
 
179
  struct target_cmsghdr *__ptr;
182
180
 
183
 
  __cmsg = (struct target_cmsghdr *) ((unsigned char *) __cmsg
184
 
                               + TARGET_CMSG_ALIGN (tswapl(__cmsg->cmsg_len)));
185
 
  if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) tswapl(__mhdr->msg_control)
186
 
                                        + tswapl(__mhdr->msg_controllen))
187
 
      || ((unsigned char *) __cmsg + TARGET_CMSG_ALIGN (tswapl(__cmsg->cmsg_len))
188
 
          > ((unsigned char *) tswapl(__mhdr->msg_control) 
189
 
             + tswapl(__mhdr->msg_controllen))))
 
181
  __ptr = (struct target_cmsghdr *)((unsigned char *) __cmsg
 
182
                                    + TARGET_CMSG_ALIGN (tswapl(__cmsg->cmsg_len)));
 
183
  if ((unsigned long)((char *)(__ptr+1) - (char *)(size_t)tswapl(__mhdr->msg_control))
 
184
      > tswapl(__mhdr->msg_controllen))
190
185
    /* No more entries.  */
191
 
    return 0;
 
186
    return (struct target_cmsghdr *)0;
192
187
  return __cmsg;
193
188
}
194
189
 
294
289
int do_sigaction(int sig, const struct target_sigaction *act,
295
290
                 struct target_sigaction *oact);
296
291
 
297
 
#if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_SPARC) || defined(TARGET_PPC) || defined(TARGET_MIPS) || defined (TARGET_SH4) || defined(TARGET_M68K)
 
292
#if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_SPARC) || defined(TARGET_PPC) || defined(TARGET_MIPS) || defined (TARGET_SH4) || defined(TARGET_M68K) || defined(TARGET_ALPHA)
298
293
 
299
294
#if defined(TARGET_SPARC)
300
295
#define TARGET_SA_NOCLDSTOP    8u
874
869
#define TARGET_MAP_NORESERVE    0x4000          /* don't check for reservations */
875
870
#endif
876
871
 
877
 
#if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_SH4)
 
872
#if defined(TARGET_I386) || defined(TARGET_ARM)
878
873
struct target_stat {
879
874
        unsigned short st_dev;
880
875
        unsigned short __pad1;
967
962
} __attribute__ ((packed));
968
963
#endif
969
964
 
 
965
#elif defined(TARGET_SPARC64)
 
966
struct target_stat {
 
967
        unsigned int    st_dev;
 
968
        target_ulong    st_ino;
 
969
        unsigned int    st_mode;
 
970
        unsigned int    st_nlink;
 
971
        unsigned int    st_uid;
 
972
        unsigned int    st_gid;
 
973
        unsigned int    st_rdev;
 
974
        target_long     st_size;
 
975
        target_long     target_st_atime;
 
976
        target_long     target_st_mtime;
 
977
        target_long     target_st_ctime;
 
978
        target_long     st_blksize;
 
979
        target_long     st_blocks;
 
980
        target_ulong    __unused4[2];
 
981
};
 
982
 
 
983
struct target_stat64 {
 
984
        unsigned char   __pad0[6];
 
985
        unsigned short  st_dev;
 
986
 
 
987
        uint64_t        st_ino;
 
988
        uint64_t        st_nlink;
 
989
 
 
990
        unsigned int    st_mode;
 
991
 
 
992
        unsigned int    st_uid;
 
993
        unsigned int    st_gid;
 
994
 
 
995
        unsigned char   __pad2[6];
 
996
        unsigned short  st_rdev;
 
997
 
 
998
        int64_t         st_size;
 
999
        int64_t         st_blksize;
 
1000
 
 
1001
        unsigned char   __pad4[4];
 
1002
        unsigned int    st_blocks;
 
1003
 
 
1004
        target_ulong    target_st_atime;
 
1005
        target_ulong    __unused1;
 
1006
 
 
1007
        target_ulong    target_st_mtime;
 
1008
        target_ulong    __unused2;
 
1009
 
 
1010
        target_ulong    target_st_ctime;
 
1011
        target_ulong    __unused3;
 
1012
 
 
1013
        target_ulong    __unused4[3];
 
1014
};
 
1015
 
970
1016
#elif defined(TARGET_SPARC)
971
1017
 
972
1018
struct target_stat {
1203
1249
 
1204
1250
        int64_t         st_blocks;
1205
1251
};
 
1252
 
 
1253
#elif defined(TARGET_ALPHA)
 
1254
 
 
1255
struct target_stat {
 
1256
       unsigned int    st_dev;
 
1257
       unsigned int    st_ino;
 
1258
       unsigned int    st_mode;
 
1259
       unsigned int    st_nlink;
 
1260
       unsigned int    st_uid;
 
1261
       unsigned int    st_gid;
 
1262
       unsigned int    st_rdev;
 
1263
       target_long     st_size;
 
1264
       target_ulong    target_st_atime;
 
1265
       target_ulong    target_st_mtime;
 
1266
       target_ulong    target_st_ctime;
 
1267
       unsigned int    st_blksize;
 
1268
       unsigned int    st_blocks;
 
1269
       unsigned int    st_flags;
 
1270
       unsigned int    st_gen;
 
1271
};
 
1272
 
 
1273
struct target_stat64 {
 
1274
       target_ulong    st_dev;
 
1275
       target_ulong    st_ino;
 
1276
       target_ulong    st_rdev;
 
1277
       target_long     st_size;
 
1278
       target_ulong    st_blocks;
 
1279
 
 
1280
       unsigned int    st_mode;
 
1281
       unsigned int    st_uid;
 
1282
       unsigned int    st_gid;
 
1283
       unsigned int    st_blksize;
 
1284
       unsigned int    st_nlink;
 
1285
       unsigned int    __pad0;
 
1286
 
 
1287
       target_ulong    target_st_atime;
 
1288
       target_ulong    target_st_atime_nsec; 
 
1289
       target_ulong    target_st_mtime;
 
1290
       target_ulong    target_st_mtime_nsec;
 
1291
       target_ulong    target_st_ctime;
 
1292
       target_ulong    target_st_ctime_nsec;
 
1293
       target_long     __unused[3];
 
1294
};
 
1295
 
 
1296
#elif defined(TARGET_SH4)
 
1297
 
 
1298
struct target_stat {
 
1299
        target_ulong  st_dev;
 
1300
        target_ulong  st_ino;
 
1301
        unsigned short st_mode;
 
1302
        unsigned short st_nlink;
 
1303
        unsigned short st_uid;
 
1304
        unsigned short st_gid;
 
1305
        target_ulong  st_rdev;
 
1306
        target_ulong  st_size;
 
1307
        target_ulong  st_blksize;
 
1308
        target_ulong  st_blocks;
 
1309
        target_ulong  target_st_atime;
 
1310
        target_ulong  target_st_atime_nsec;
 
1311
        target_ulong  target_st_mtime;
 
1312
        target_ulong  target_st_mtime_nsec;
 
1313
        target_ulong  target_st_ctime;
 
1314
        target_ulong  target_st_ctime_nsec;
 
1315
        target_ulong  __unused4;
 
1316
        target_ulong  __unused5;
 
1317
};
 
1318
 
 
1319
/* This matches struct stat64 in glibc2.1, hence the absolutely
 
1320
 * insane amounts of padding around dev_t's.
 
1321
 */
 
1322
struct target_stat64 {
 
1323
        unsigned long long      st_dev;
 
1324
        unsigned char   __pad0[4];
 
1325
 
 
1326
#define TARGET_STAT64_HAS_BROKEN_ST_INO 1
 
1327
        target_ulong    __st_ino;
 
1328
 
 
1329
        unsigned int    st_mode;
 
1330
        unsigned int    st_nlink;
 
1331
 
 
1332
        target_ulong    st_uid;
 
1333
        target_ulong    st_gid;
 
1334
 
 
1335
        unsigned long long      st_rdev;
 
1336
        unsigned char   __pad3[4];
 
1337
 
 
1338
        long long       st_size;
 
1339
        target_ulong    st_blksize;
 
1340
 
 
1341
        unsigned long long      st_blocks;      /* Number 512-byte blocks allocated. */
 
1342
 
 
1343
        target_ulong    target_st_atime;
 
1344
        target_ulong    target_st_atime_nsec;
 
1345
 
 
1346
        target_ulong    target_st_mtime;
 
1347
        target_ulong    target_st_mtime_nsec;
 
1348
 
 
1349
        target_ulong    target_st_ctime;
 
1350
        target_ulong    target_st_ctime_nsec; 
 
1351
 
 
1352
        unsigned long long      st_ino;
 
1353
};
 
1354
 
1206
1355
#else
1207
1356
#error unsupported CPU
1208
1357
#endif
1209
1358
 
 
1359
typedef struct {
 
1360
        int     val[2];
 
1361
} target_fsid_t;
 
1362
 
1210
1363
#ifdef TARGET_MIPS
1211
1364
struct target_statfs {
1212
1365
        target_long             f_type;
1219
1372
        target_long             f_bavail;
1220
1373
 
1221
1374
        /* Linux specials */
1222
 
        int     f_fsid;
 
1375
        target_fsid_t           f_fsid;
1223
1376
        target_long             f_namelen;
1224
1377
        target_long             f_spare[6];
1225
1378
};
1234
1387
        uint64_t        f_files;
1235
1388
        uint64_t        f_ffree;
1236
1389
        uint64_t        f_bavail;
1237
 
        int f_fsid;
 
1390
        target_fsid_t   f_fsid;
1238
1391
        uint32_t        f_namelen;
1239
1392
        uint32_t        f_spare[6];
1240
1393
};
1247
1400
        uint32_t f_bavail;
1248
1401
        uint32_t f_files;
1249
1402
        uint32_t f_ffree;
1250
 
        int f_fsid;
 
1403
        target_fsid_t f_fsid;
1251
1404
        uint32_t f_namelen;
1252
1405
        uint32_t f_frsize;
1253
1406
        uint32_t f_spare[5];
1261
1414
        uint64_t f_bavail;
1262
1415
        uint64_t f_files;
1263
1416
        uint64_t f_ffree;
1264
 
        int f_fsid;
 
1417
        target_fsid_t f_fsid;
1265
1418
        uint32_t f_namelen;
1266
1419
        uint32_t f_frsize;
1267
1420
        uint32_t f_spare[5];
1577
1730
};
1578
1731
 
1579
1732
#include "socket.h"
 
1733
 
 
1734
#include "errno_defs.h"