mirror of https://github.com/xemu-project/xemu.git
Merge remote-tracking branch 'remotes/riku/linux-user-for-upstream' into staging
* remotes/riku/linux-user-for-upstream: linux-user: Fix error handling in target_to_host_semarray() linux-user: Implement BLKPG ioctl linux-user: Fix error handling in lock_iovec() linux-user/signal.c: Don't pass sigaction uninitialised sa_flags linux-user/elfload.c: Avoid calling g_free() on uninitialized data linux-user: sync syscall numbers upto 3.13 Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
9bd9d5e357
|
@ -433,3 +433,10 @@
|
||||||
#define TARGET_NR_open_by_handle_at 498
|
#define TARGET_NR_open_by_handle_at 498
|
||||||
#define TARGET_NR_clock_adjtime 499
|
#define TARGET_NR_clock_adjtime 499
|
||||||
#define TARGET_NR_syncfs 500
|
#define TARGET_NR_syncfs 500
|
||||||
|
#define TARGET_NR_setns 501
|
||||||
|
#define TARGET_NR_accept4 502
|
||||||
|
#define TARGET_NR_sendmmsg 503
|
||||||
|
#define TARGET_NR_process_vm_readv 504
|
||||||
|
#define TARGET_NR_process_vm_writev 505
|
||||||
|
#define TARGET_NR_kcmp 506
|
||||||
|
#define TARGET_NR_finit_module 507
|
||||||
|
|
|
@ -378,3 +378,9 @@
|
||||||
#define TARGET_NR_open_by_handle_at (371)
|
#define TARGET_NR_open_by_handle_at (371)
|
||||||
#define TARGET_NR_clock_adjtime (372)
|
#define TARGET_NR_clock_adjtime (372)
|
||||||
#define TARGET_NR_syncfs (373)
|
#define TARGET_NR_syncfs (373)
|
||||||
|
#define TARGET_NR_sendmmsg (374)
|
||||||
|
#define TARGET_NR_setns (375)
|
||||||
|
#define TARGET_NR_process_vm_readv (376)
|
||||||
|
#define TARGET_NR_process_vm_writev (377)
|
||||||
|
#define TARGET_NR_kcmp (378)
|
||||||
|
#define TARGET_NR_finit_module (379)
|
||||||
|
|
|
@ -335,3 +335,4 @@
|
||||||
#define TARGET_NR_inotify_init1 332
|
#define TARGET_NR_inotify_init1 332
|
||||||
#define TARGET_NR_preadv 333
|
#define TARGET_NR_preadv 333
|
||||||
#define TARGET_NR_pwritev 334
|
#define TARGET_NR_pwritev 334
|
||||||
|
#define TARGET_NR_setns 335
|
||||||
|
|
|
@ -2636,6 +2636,16 @@ static void fill_thread_info(struct elf_note_info *info, const CPUArchState *env
|
||||||
info->notes_size += note_size(&ets->notes[0]);
|
info->notes_size += note_size(&ets->notes[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void init_note_info(struct elf_note_info *info)
|
||||||
|
{
|
||||||
|
/* Initialize the elf_note_info structure so that it is at
|
||||||
|
* least safe to call free_note_info() on it. Must be
|
||||||
|
* called before calling fill_note_info().
|
||||||
|
*/
|
||||||
|
memset(info, 0, sizeof (*info));
|
||||||
|
QTAILQ_INIT(&info->thread_list);
|
||||||
|
}
|
||||||
|
|
||||||
static int fill_note_info(struct elf_note_info *info,
|
static int fill_note_info(struct elf_note_info *info,
|
||||||
long signr, const CPUArchState *env)
|
long signr, const CPUArchState *env)
|
||||||
{
|
{
|
||||||
|
@ -2644,10 +2654,6 @@ static int fill_note_info(struct elf_note_info *info,
|
||||||
TaskState *ts = (TaskState *)env->opaque;
|
TaskState *ts = (TaskState *)env->opaque;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
(void) memset(info, 0, sizeof (*info));
|
|
||||||
|
|
||||||
QTAILQ_INIT(&info->thread_list);
|
|
||||||
|
|
||||||
info->notes = g_malloc0(NUMNOTES * sizeof (struct memelfnote));
|
info->notes = g_malloc0(NUMNOTES * sizeof (struct memelfnote));
|
||||||
if (info->notes == NULL)
|
if (info->notes == NULL)
|
||||||
return (-ENOMEM);
|
return (-ENOMEM);
|
||||||
|
@ -2781,6 +2787,8 @@ static int elf_core_dump(int signr, const CPUArchState *env)
|
||||||
int segs = 0;
|
int segs = 0;
|
||||||
int fd = -1;
|
int fd = -1;
|
||||||
|
|
||||||
|
init_note_info(&info);
|
||||||
|
|
||||||
errno = 0;
|
errno = 0;
|
||||||
getrlimit(RLIMIT_CORE, &dumpsize);
|
getrlimit(RLIMIT_CORE, &dumpsize);
|
||||||
if (dumpsize.rlim_cur == 0)
|
if (dumpsize.rlim_cur == 0)
|
||||||
|
|
|
@ -347,3 +347,9 @@
|
||||||
#define TARGET_NR_open_by_handle_at 342
|
#define TARGET_NR_open_by_handle_at 342
|
||||||
#define TARGET_NR_clock_adjtime 343
|
#define TARGET_NR_clock_adjtime 343
|
||||||
#define TARGET_NR_syncfs 344
|
#define TARGET_NR_syncfs 344
|
||||||
|
#define TARGET_NR_sendmmsg 345
|
||||||
|
#define TARGET_NR_setns 346
|
||||||
|
#define TARGET_NR_process_vm_readv 347
|
||||||
|
#define TARGET_NR_process_vm_writev 348
|
||||||
|
#define TARGET_NR_kcmp 349
|
||||||
|
#define TARGET_NR_finit_module 350
|
||||||
|
|
|
@ -77,6 +77,7 @@
|
||||||
IOCTL(BLKRAGET, IOC_R, MK_PTR(TYPE_LONG))
|
IOCTL(BLKRAGET, IOC_R, MK_PTR(TYPE_LONG))
|
||||||
IOCTL(BLKSSZGET, IOC_R, MK_PTR(TYPE_LONG))
|
IOCTL(BLKSSZGET, IOC_R, MK_PTR(TYPE_LONG))
|
||||||
IOCTL(BLKBSZGET, IOC_R, MK_PTR(TYPE_INT))
|
IOCTL(BLKBSZGET, IOC_R, MK_PTR(TYPE_INT))
|
||||||
|
IOCTL(BLKPG, IOC_W, MK_PTR(MK_STRUCT(STRUCT_blkpg_ioctl_arg)))
|
||||||
#ifdef FIBMAP
|
#ifdef FIBMAP
|
||||||
IOCTL(FIBMAP, IOC_W | IOC_R, MK_PTR(TYPE_LONG))
|
IOCTL(FIBMAP, IOC_W | IOC_R, MK_PTR(TYPE_LONG))
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -344,3 +344,8 @@
|
||||||
#define TARGET_NR_open_by_handle_at 341
|
#define TARGET_NR_open_by_handle_at 341
|
||||||
#define TARGET_NR_clock_adjtime 342
|
#define TARGET_NR_clock_adjtime 342
|
||||||
#define TARGET_NR_syncfs 343
|
#define TARGET_NR_syncfs 343
|
||||||
|
#define TARGET_NR_setns 344
|
||||||
|
#define TARGET_NR_process_vm_readv 345
|
||||||
|
#define TARGET_NR_process_vm_writev 346
|
||||||
|
#define TARGET_NR_kcmp 347
|
||||||
|
#define TARGET_NR_finit_module 348
|
||||||
|
|
|
@ -376,4 +376,9 @@
|
||||||
#define TARGET_NR_open_by_handle_at 372
|
#define TARGET_NR_open_by_handle_at 372
|
||||||
#define TARGET_NR_clock_adjtime 373
|
#define TARGET_NR_clock_adjtime 373
|
||||||
#define TARGET_NR_syncfs 374
|
#define TARGET_NR_syncfs 374
|
||||||
|
#define TARGET_NR_setns 375
|
||||||
|
#define TARGET_NR_sendmmsg 376
|
||||||
|
#define TARGET_NR_process_vm_readv 377
|
||||||
|
#define TARGET_NR_process_vm_writev 378
|
||||||
|
#define TARGET_NR_kcmp 379
|
||||||
|
#define TARGET_NR_finit_module 380
|
||||||
|
|
|
@ -345,3 +345,9 @@
|
||||||
#define TARGET_NR_open_by_handle_at (TARGET_NR_Linux + 340)
|
#define TARGET_NR_open_by_handle_at (TARGET_NR_Linux + 340)
|
||||||
#define TARGET_NR_clock_adjtime (TARGET_NR_Linux + 341)
|
#define TARGET_NR_clock_adjtime (TARGET_NR_Linux + 341)
|
||||||
#define TARGET_NR_syncfs (TARGET_NR_Linux + 342)
|
#define TARGET_NR_syncfs (TARGET_NR_Linux + 342)
|
||||||
|
#define TARGET_NR_sendmmsg (TARGET_NR_Linux + 343)
|
||||||
|
#define TARGET_NR_setns (TARGET_NR_Linux + 344)
|
||||||
|
#define TARGET_NR_process_vm_readv (TARGET_NR_Linux + 345)
|
||||||
|
#define TARGET_NR_process_vm_writev (TARGET_NR_Linux + 346)
|
||||||
|
#define TARGET_NR_kcmp (TARGET_NR_Linux + 347)
|
||||||
|
#define TARGET_NR_finit_module (TARGET_NR_Linux + 348)
|
||||||
|
|
|
@ -310,6 +310,12 @@
|
||||||
#define TARGET_NR_open_by_handle_at (TARGET_NR_Linux + 304)
|
#define TARGET_NR_open_by_handle_at (TARGET_NR_Linux + 304)
|
||||||
#define TARGET_NR_clock_adjtime (TARGET_NR_Linux + 305)
|
#define TARGET_NR_clock_adjtime (TARGET_NR_Linux + 305)
|
||||||
#define TARGET_NR_syncfs (TARGET_NR_Linux + 306)
|
#define TARGET_NR_syncfs (TARGET_NR_Linux + 306)
|
||||||
|
#define TARGET_NR_sendmmsg (TARGET_NR_Linux + 307)
|
||||||
|
#define TARGET_NR_setns (TARGET_NR_Linux + 308)
|
||||||
|
#define TARGET_NR_process_vm_readv (TARGET_NR_Linux + 309)
|
||||||
|
#define TARGET_NR_process_vm_writev (TARGET_NR_Linux + 310)
|
||||||
|
#define TARGET_NR_kcmp (TARGET_NR_Linux + 311)
|
||||||
|
#define TARGET_NR_finit_module (TARGET_NR_Linux + 312)
|
||||||
#else
|
#else
|
||||||
/*
|
/*
|
||||||
* Linux 64-bit syscalls are in the range from 5000 to 5999.
|
* Linux 64-bit syscalls are in the range from 5000 to 5999.
|
||||||
|
@ -617,4 +623,11 @@
|
||||||
#define TARGET_NR_open_by_handle_at (TARGET_NR_Linux + 299)
|
#define TARGET_NR_open_by_handle_at (TARGET_NR_Linux + 299)
|
||||||
#define TARGET_NR_clock_adjtime (TARGET_NR_Linux + 300)
|
#define TARGET_NR_clock_adjtime (TARGET_NR_Linux + 300)
|
||||||
#define TARGET_NR_syncfs (TARGET_NR_Linux + 301)
|
#define TARGET_NR_syncfs (TARGET_NR_Linux + 301)
|
||||||
|
#define TARGET_NR_sendmmsg (TARGET_NR_Linux + 302)
|
||||||
|
#define TARGET_NR_setns (TARGET_NR_Linux + 303)
|
||||||
|
#define TARGET_NR_process_vm_readv (TARGET_NR_Linux + 304)
|
||||||
|
#define TARGET_NR_process_vm_writev (TARGET_NR_Linux + 305)
|
||||||
|
#define TARGET_NR_kcmp (TARGET_NR_Linux + 306)
|
||||||
|
#define TARGET_NR_finit_module (TARGET_NR_Linux + 307)
|
||||||
|
#define TARGET_NR_getdents64 (TARGET_NR_Linux + 308)
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -378,9 +378,13 @@
|
||||||
#define TARGET_NR_syncfs 267
|
#define TARGET_NR_syncfs 267
|
||||||
#define TARGET_NR_setns 268
|
#define TARGET_NR_setns 268
|
||||||
#define TARGET_NR_sendmmsg 269
|
#define TARGET_NR_sendmmsg 269
|
||||||
|
#define TARGET_NR_process_vm_readv 270
|
||||||
|
#define TARGET_NR_process_vm_writev 271
|
||||||
|
#define TARGET_NR_kcmp 272
|
||||||
|
#define TARGET_NR_finit_module 273
|
||||||
|
|
||||||
#undef TARGET_NR_syscalls
|
#undef TARGET_NR_syscalls
|
||||||
#define TARGET_NR_syscalls 270
|
#define TARGET_NR_syscalls 274
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* All syscalls below here should go away really,
|
* All syscalls below here should go away really,
|
||||||
|
|
|
@ -362,3 +362,9 @@
|
||||||
#define TARGET_NR_open_by_handle_at 346
|
#define TARGET_NR_open_by_handle_at 346
|
||||||
#define TARGET_NR_clock_adjtime 347
|
#define TARGET_NR_clock_adjtime 347
|
||||||
#define TARGET_NR_syncfs 348
|
#define TARGET_NR_syncfs 348
|
||||||
|
#define TARGET_NR_sendmmsg 349
|
||||||
|
#define TARGET_NR_setns 350
|
||||||
|
#define TARGET_NR_process_vm_readv 351
|
||||||
|
#define TARGET_NR_process_vm_writev 352
|
||||||
|
#define TARGET_NR_finit_module 353
|
||||||
|
#define TARGET_NR_kcmp 354
|
||||||
|
|
|
@ -265,6 +265,12 @@
|
||||||
#define TARGET_NR_open_by_handle_at 336
|
#define TARGET_NR_open_by_handle_at 336
|
||||||
#define TARGET_NR_clock_adjtime 337
|
#define TARGET_NR_clock_adjtime 337
|
||||||
#define TARGET_NR_syncfs 338
|
#define TARGET_NR_syncfs 338
|
||||||
|
#define TARGET_NR_setns 339
|
||||||
|
#define TARGET_NR_process_vm_readv 340
|
||||||
|
#define TARGET_NR_process_vm_writev 341
|
||||||
|
#define TARGET_NR_s390_runtime_instr 342
|
||||||
|
#define TARGET_NR_kcmp 343
|
||||||
|
#define TARGET_NR_finit_module 344
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* There are some system calls that are not present on 64 bit, some
|
* There are some system calls that are not present on 64 bit, some
|
||||||
|
@ -355,4 +361,3 @@
|
||||||
#define TARGET_NR_newfstatat 293
|
#define TARGET_NR_newfstatat 293
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -366,3 +366,9 @@
|
||||||
#define TARGET_NR_open_by_handle_at 360
|
#define TARGET_NR_open_by_handle_at 360
|
||||||
#define TARGET_NR_clock_adjtime 361
|
#define TARGET_NR_clock_adjtime 361
|
||||||
#define TARGET_NR_syncfs 362
|
#define TARGET_NR_syncfs 362
|
||||||
|
#define TARGET_NR_sendmmsg 363
|
||||||
|
#define TARGET_NR_setns 364
|
||||||
|
#define TARGET_NR_process_vm_readv 365
|
||||||
|
#define TARGET_NR_process_vm_writev 366
|
||||||
|
#define TARGET_NR_kcmp 367
|
||||||
|
#define TARGET_NR_finit_module 368
|
||||||
|
|
|
@ -420,6 +420,7 @@ static void QEMU_NORETURN force_sig(int target_sig)
|
||||||
* it to arrive. */
|
* it to arrive. */
|
||||||
sigfillset(&act.sa_mask);
|
sigfillset(&act.sa_mask);
|
||||||
act.sa_handler = SIG_DFL;
|
act.sa_handler = SIG_DFL;
|
||||||
|
act.sa_flags = 0;
|
||||||
sigaction(host_sig, &act, NULL);
|
sigaction(host_sig, &act, NULL);
|
||||||
|
|
||||||
/* For some reason raise(host_sig) doesn't send the signal when
|
/* For some reason raise(host_sig) doesn't send the signal when
|
||||||
|
|
|
@ -302,3 +302,10 @@
|
||||||
#define TARGET_NR_open_by_handle_at 333
|
#define TARGET_NR_open_by_handle_at 333
|
||||||
#define TARGET_NR_clock_adjtime 334
|
#define TARGET_NR_clock_adjtime 334
|
||||||
#define TARGET_NR_syncfs 335
|
#define TARGET_NR_syncfs 335
|
||||||
|
#define TARGET_NR_sendmmsg 336
|
||||||
|
#define TARGET_NR_setns 337
|
||||||
|
#define TARGET_NR_process_vm_readv 338
|
||||||
|
#define TARGET_NR_process_vm_writev 339
|
||||||
|
#define TARGET_NR_kern_features 340
|
||||||
|
#define TARGET_NR_kcmp 341
|
||||||
|
#define TARGET_NR_finit_module 342
|
||||||
|
|
|
@ -334,3 +334,10 @@
|
||||||
#define TARGET_NR_open_by_handle_at 333
|
#define TARGET_NR_open_by_handle_at 333
|
||||||
#define TARGET_NR_clock_adjtime 334
|
#define TARGET_NR_clock_adjtime 334
|
||||||
#define TARGET_NR_syncfs 335
|
#define TARGET_NR_syncfs 335
|
||||||
|
#define TARGET_NR_sendmmsg 336
|
||||||
|
#define TARGET_NR_setns 337
|
||||||
|
#define TARGET_NR_process_vm_readv 338
|
||||||
|
#define TARGET_NR_process_vm_writev 339
|
||||||
|
#define TARGET_NR_kern_features 340
|
||||||
|
#define TARGET_NR_kcmp 341
|
||||||
|
#define TARGET_NR_finit_module 342
|
||||||
|
|
|
@ -107,6 +107,7 @@ int __clone2(int (*fn)(void *), void *child_stack_base,
|
||||||
#include <linux/reboot.h>
|
#include <linux/reboot.h>
|
||||||
#include <linux/route.h>
|
#include <linux/route.h>
|
||||||
#include <linux/filter.h>
|
#include <linux/filter.h>
|
||||||
|
#include <linux/blkpg.h>
|
||||||
#include "linux_loop.h"
|
#include "linux_loop.h"
|
||||||
#include "cpu-uname.h"
|
#include "cpu-uname.h"
|
||||||
|
|
||||||
|
@ -1707,6 +1708,7 @@ static struct iovec *lock_iovec(int type, abi_ulong target_addr,
|
||||||
struct iovec *vec;
|
struct iovec *vec;
|
||||||
abi_ulong total_len, max_len;
|
abi_ulong total_len, max_len;
|
||||||
int i;
|
int i;
|
||||||
|
int err = 0;
|
||||||
|
|
||||||
if (count == 0) {
|
if (count == 0) {
|
||||||
errno = 0;
|
errno = 0;
|
||||||
|
@ -1726,7 +1728,7 @@ static struct iovec *lock_iovec(int type, abi_ulong target_addr,
|
||||||
target_vec = lock_user(VERIFY_READ, target_addr,
|
target_vec = lock_user(VERIFY_READ, target_addr,
|
||||||
count * sizeof(struct target_iovec), 1);
|
count * sizeof(struct target_iovec), 1);
|
||||||
if (target_vec == NULL) {
|
if (target_vec == NULL) {
|
||||||
errno = EFAULT;
|
err = EFAULT;
|
||||||
goto fail2;
|
goto fail2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1740,7 +1742,7 @@ static struct iovec *lock_iovec(int type, abi_ulong target_addr,
|
||||||
abi_long len = tswapal(target_vec[i].iov_len);
|
abi_long len = tswapal(target_vec[i].iov_len);
|
||||||
|
|
||||||
if (len < 0) {
|
if (len < 0) {
|
||||||
errno = EINVAL;
|
err = EINVAL;
|
||||||
goto fail;
|
goto fail;
|
||||||
} else if (len == 0) {
|
} else if (len == 0) {
|
||||||
/* Zero length pointer is ignored. */
|
/* Zero length pointer is ignored. */
|
||||||
|
@ -1748,7 +1750,7 @@ static struct iovec *lock_iovec(int type, abi_ulong target_addr,
|
||||||
} else {
|
} else {
|
||||||
vec[i].iov_base = lock_user(type, base, len, copy);
|
vec[i].iov_base = lock_user(type, base, len, copy);
|
||||||
if (!vec[i].iov_base) {
|
if (!vec[i].iov_base) {
|
||||||
errno = EFAULT;
|
err = EFAULT;
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
if (len > max_len - total_len) {
|
if (len > max_len - total_len) {
|
||||||
|
@ -1763,9 +1765,10 @@ static struct iovec *lock_iovec(int type, abi_ulong target_addr,
|
||||||
return vec;
|
return vec;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
free(vec);
|
|
||||||
fail2:
|
|
||||||
unlock_user(target_vec, target_addr, 0);
|
unlock_user(target_vec, target_addr, 0);
|
||||||
|
fail2:
|
||||||
|
free(vec);
|
||||||
|
errno = err;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2427,10 +2430,15 @@ static inline abi_long target_to_host_semarray(int semid, unsigned short **host_
|
||||||
nsems = semid_ds.sem_nsems;
|
nsems = semid_ds.sem_nsems;
|
||||||
|
|
||||||
*host_array = malloc(nsems*sizeof(unsigned short));
|
*host_array = malloc(nsems*sizeof(unsigned short));
|
||||||
|
if (!*host_array) {
|
||||||
|
return -TARGET_ENOMEM;
|
||||||
|
}
|
||||||
array = lock_user(VERIFY_READ, target_addr,
|
array = lock_user(VERIFY_READ, target_addr,
|
||||||
nsems*sizeof(unsigned short), 1);
|
nsems*sizeof(unsigned short), 1);
|
||||||
if (!array)
|
if (!array) {
|
||||||
|
free(*host_array);
|
||||||
return -TARGET_EFAULT;
|
return -TARGET_EFAULT;
|
||||||
|
}
|
||||||
|
|
||||||
for(i=0; i<nsems; i++) {
|
for(i=0; i<nsems; i++) {
|
||||||
__get_user((*host_array)[i], &array[i]);
|
__get_user((*host_array)[i], &array[i]);
|
||||||
|
|
|
@ -901,6 +901,7 @@ struct target_pollfd {
|
||||||
#define TARGET_BLKSECTSET TARGET_IO(0x12,102)/* set max sectors per request (ll_rw_blk.c) */
|
#define TARGET_BLKSECTSET TARGET_IO(0x12,102)/* set max sectors per request (ll_rw_blk.c) */
|
||||||
#define TARGET_BLKSECTGET TARGET_IO(0x12,103)/* get max sectors per request (ll_rw_blk.c) */
|
#define TARGET_BLKSECTGET TARGET_IO(0x12,103)/* get max sectors per request (ll_rw_blk.c) */
|
||||||
#define TARGET_BLKSSZGET TARGET_IO(0x12,104)/* get block device sector size */
|
#define TARGET_BLKSSZGET TARGET_IO(0x12,104)/* get block device sector size */
|
||||||
|
#define TARGET_BLKPG TARGET_IO(0x12,105)/* Partition table and disk geometry handling */
|
||||||
/* A jump here: 108-111 have been used for various private purposes. */
|
/* A jump here: 108-111 have been used for various private purposes. */
|
||||||
#define TARGET_BLKBSZGET TARGET_IOR(0x12, 112, abi_ulong)
|
#define TARGET_BLKBSZGET TARGET_IOR(0x12, 112, abi_ulong)
|
||||||
#define TARGET_BLKBSZSET TARGET_IOW(0x12, 113, abi_ulong)
|
#define TARGET_BLKBSZSET TARGET_IOW(0x12, 113, abi_ulong)
|
||||||
|
|
|
@ -240,3 +240,16 @@ STRUCT(fiemap,
|
||||||
TYPE_INT, /* fm_mapped_extents */
|
TYPE_INT, /* fm_mapped_extents */
|
||||||
TYPE_INT, /* fm_extent_count */
|
TYPE_INT, /* fm_extent_count */
|
||||||
TYPE_INT) /* fm_reserved */
|
TYPE_INT) /* fm_reserved */
|
||||||
|
|
||||||
|
STRUCT(blkpg_partition,
|
||||||
|
TYPE_LONGLONG, /* start */
|
||||||
|
TYPE_LONGLONG, /* length */
|
||||||
|
TYPE_INT, /* pno */
|
||||||
|
MK_ARRAY(TYPE_CHAR, BLKPG_DEVNAMELTH), /* devname */
|
||||||
|
MK_ARRAY(TYPE_CHAR, BLKPG_VOLNAMELTH)) /* volname */
|
||||||
|
|
||||||
|
STRUCT(blkpg_ioctl_arg,
|
||||||
|
TYPE_INT, /* op */
|
||||||
|
TYPE_INT, /* flags */
|
||||||
|
TYPE_INT, /* datalen */
|
||||||
|
MK_PTR(MK_STRUCT(STRUCT_blkpg_partition))) /* data */
|
||||||
|
|
|
@ -305,3 +305,10 @@
|
||||||
#define TARGET_NR_open_by_handle_at 304
|
#define TARGET_NR_open_by_handle_at 304
|
||||||
#define TARGET_NR_clock_adjtime 305
|
#define TARGET_NR_clock_adjtime 305
|
||||||
#define TARGET_NR_syncfs 306
|
#define TARGET_NR_syncfs 306
|
||||||
|
#define TARGET_NR_sendmmsg 307
|
||||||
|
#define TARGET_NR_setns 308
|
||||||
|
#define TARGET_NR_getcpu 309
|
||||||
|
#define TARGET_NR_process_vm_readv 310
|
||||||
|
#define TARGET_NR_process_vm_writev 311
|
||||||
|
#define TARGET_NR_kcmp 312
|
||||||
|
#define TARGET_NR_finit_module 313
|
||||||
|
|
Loading…
Reference in New Issue