diff options
| author | Blue Swirl <blauwirbel@gmail.com> | 2012-04-07 11:45:25 +0000 |
|---|---|---|
| committer | Blue Swirl <blauwirbel@gmail.com> | 2012-04-07 11:45:25 +0000 |
| commit | adcd61f7fcd5a24e65b2ec087bfae2356805993b (patch) | |
| tree | a74ea7fff914a0237e5190d5c97866bef1b3d21b /thunk.h | |
| parent | 6375e09e79964fa6eac3e8426d25c8b759185482 (diff) | |
| parent | d8fd2954996255ba6ad610917e7849832d0120b7 (diff) | |
| download | focaccia-qemu-adcd61f7fcd5a24e65b2ec087bfae2356805993b.tar.gz focaccia-qemu-adcd61f7fcd5a24e65b2ec087bfae2356805993b.zip | |
Merge branch 'linux-user-for-upstream' of git://git.linaro.org/people/rikuvoipio/qemu
* 'linux-user-for-upstream' of git://git.linaro.org/people/rikuvoipio/qemu: Userspace ARM BE8 support elf.h: Update EF_ARM_ constants to newer ABI versions arm-linux-user: fix elfload.c's AT_HWCAP to reflect cpu features. linux-user/arm/syscall_nr.h: Add syscall number for ppoll linux-user: Add support for prctl PR_GET_NAME and PR_SET_NAME linux-user/syscall.c: Fix indentation in prctl handling linux-user: reserve 4GB of vmem for 32-on-64 linux-user: resolve reserved_va vma downwards linux-user: take RESERVED_VA into account for g2h_valid() linux-user: fix fallocate linux-user: Add ioctl for BLKBSZGET linux-user: add BLKSSZGET ioctl wrapper linux-user: fix BLK ioctl arguments linux-user: add struct old_dev_t compat linux-user: implement device mapper ioctls linux-user: target_argv is placed on ts->bprm->argv and can't be freed() linux-user: improve fake /proc/self/stat making `ps` not segfault.
Diffstat (limited to 'thunk.h')
| -rw-r--r-- | thunk.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/thunk.h b/thunk.h index 9810743191..5be8f912f5 100644 --- a/thunk.h +++ b/thunk.h @@ -37,6 +37,7 @@ typedef enum argtype { TYPE_PTR, TYPE_ARRAY, TYPE_STRUCT, + TYPE_OLDDEVT, } argtype; #define MK_PTR(type) TYPE_PTR, type @@ -104,6 +105,31 @@ static inline int thunk_type_size(const argtype *type_ptr, int is_host) return TARGET_ABI_BITS / 8; } break; + case TYPE_OLDDEVT: + if (is_host) { +#if defined(HOST_X86_64) + return 8; +#elif defined(HOST_ALPHA) || defined(HOST_IA64) || defined(HOST_MIPS) || \ + defined(HOST_PARISC) || defined(HOST_SPARC64) + return 4; +#elif defined(HOST_PPC) + return HOST_LONG_SIZE; +#else + return 2; +#endif + } else { +#if defined(TARGET_X86_64) + return 8; +#elif defined(TARGET_ALPHA) || defined(TARGET_IA64) || defined(TARGET_MIPS) || \ + defined(TARGET_PARISC) || defined(TARGET_SPARC64) + return 4; +#elif defined(TARGET_PPC) + return TARGET_ABI_BITS / 8; +#else + return 2; +#endif + } + break; case TYPE_ARRAY: size = type_ptr[1]; return size * thunk_type_size_array(type_ptr + 2, is_host); @@ -141,6 +167,8 @@ static inline int thunk_type_align(const argtype *type_ptr, int is_host) return TARGET_ABI_BITS / 8; } break; + case TYPE_OLDDEVT: + return thunk_type_size(type_ptr, is_host); case TYPE_ARRAY: return thunk_type_align_array(type_ptr + 2, is_host); case TYPE_STRUCT: |