mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
Merge remote-tracking branch 'remotes/riku/tags/pull-linux-user-20160719-2' into staging
linux-user fixes before 2.7 freeze, fix commit message # gpg: Signature made Tue 19 Jul 2016 14:18:54 BST # gpg: using RSA key 0xB44890DEDE3C9BC0 # gpg: Good signature from "Riku Voipio <riku.voipio@iki.fi>" # gpg: aka "Riku Voipio <riku.voipio@linaro.org>" # Primary key fingerprint: FF82 03C8 C391 98AE 0581 41EF B448 90DE DE3C 9BC0 * remotes/riku/tags/pull-linux-user-20160719-2: linux-user: AArch64 has sync_file_range, not sync_file_range2 linux-user: Fix type for SIOCATMARK ioctl linux-user: define missing sparc syscalls linux-user: Fix terminal control ioctls linux-user: Add some new blk ioctls linux-user: Handle short lengths in host_to_target_sockaddr() linux-user: Forget about synchronous signal once it is delivered linux-user: Correct type for LOOP_GET_STATUS{,64} ioctls linux-user: Correct type for BLKSSZGET linux-user: Add loop control ioctls linux-user: Check sigsetsize argument to syscalls linux-user: add nested netlink types linux-user: convert sockaddr_ll from host to target linux-user: add fd_trans helper in do_recvfrom() linux-user: fix netlink memory corruption linux-user: fd_trans_*_data() returns the length Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
@@ -86,8 +86,7 @@
|
||||
#define TARGET_NR_sync 81
|
||||
#define TARGET_NR_fsync 82
|
||||
#define TARGET_NR_fdatasync 83
|
||||
#define TARGET_NR_sync_file_range2 84
|
||||
/* #define TARGET_NR_sync_file_range 84 */
|
||||
#define TARGET_NR_sync_file_range 84
|
||||
#define TARGET_NR_timerfd_create 85
|
||||
#define TARGET_NR_timerfd_settime 86
|
||||
#define TARGET_NR_timerfd_gettime 87
|
||||
|
||||
+37
-4
@@ -76,10 +76,39 @@
|
||||
IOCTL(BLKFLSBUF, 0, TYPE_NULL)
|
||||
IOCTL(BLKRASET, 0, TYPE_INT)
|
||||
IOCTL(BLKRAGET, IOC_R, MK_PTR(TYPE_LONG))
|
||||
IOCTL(BLKSSZGET, IOC_R, MK_PTR(TYPE_LONG))
|
||||
IOCTL(BLKSSZGET, IOC_R, MK_PTR(TYPE_INT))
|
||||
IOCTL(BLKBSZGET, IOC_R, MK_PTR(TYPE_INT))
|
||||
IOCTL_SPECIAL(BLKPG, IOC_W, do_ioctl_blkpg,
|
||||
MK_PTR(MK_STRUCT(STRUCT_blkpg_ioctl_arg)))
|
||||
|
||||
#ifdef BLKDISCARD
|
||||
IOCTL(BLKDISCARD, IOC_W, MK_PTR(MK_ARRAY(TYPE_ULONGLONG, 2)))
|
||||
#endif
|
||||
#ifdef BLKIOMIN
|
||||
IOCTL(BLKIOMIN, IOC_R, MK_PTR(TYPE_INT))
|
||||
#endif
|
||||
#ifdef BLKIOOPT
|
||||
IOCTL(BLKIOOPT, IOC_R, MK_PTR(TYPE_INT))
|
||||
#endif
|
||||
#ifdef BLKALIGNOFF
|
||||
IOCTL(BLKALIGNOFF, IOC_R, MK_PTR(TYPE_INT))
|
||||
#endif
|
||||
#ifdef BLKPBSZGET
|
||||
IOCTL(BLKPBSZGET, IOC_R, MK_PTR(TYPE_INT))
|
||||
#endif
|
||||
#ifdef BLKDISCARDZEROES
|
||||
IOCTL(BLKDISCARDZEROES, IOC_R, MK_PTR(TYPE_INT))
|
||||
#endif
|
||||
#ifdef BLKSECDISCARD
|
||||
IOCTL(BLKSECDISCARD, IOC_W, MK_PTR(MK_ARRAY(TYPE_ULONGLONG, 2)))
|
||||
#endif
|
||||
#ifdef BLKROTATIONAL
|
||||
IOCTL(BLKROTATIONAL, IOC_R, MK_PTR(TYPE_SHORT))
|
||||
#endif
|
||||
#ifdef BLKZEROOUT
|
||||
IOCTL(BLKZEROOUT, IOC_W, MK_PTR(MK_ARRAY(TYPE_ULONGLONG, 2)))
|
||||
#endif
|
||||
|
||||
#ifdef FIBMAP
|
||||
IOCTL(FIBMAP, IOC_W | IOC_R, MK_PTR(TYPE_LONG))
|
||||
#endif
|
||||
@@ -91,7 +120,7 @@
|
||||
MK_PTR(MK_STRUCT(STRUCT_fiemap)))
|
||||
#endif
|
||||
|
||||
IOCTL(SIOCATMARK, 0, TYPE_NULL)
|
||||
IOCTL(SIOCATMARK, IOC_R, MK_PTR(TYPE_INT))
|
||||
IOCTL(SIOCGIFNAME, IOC_RW, MK_PTR(TYPE_INT))
|
||||
IOCTL(SIOCGIFFLAGS, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_short_ifreq)))
|
||||
IOCTL(SIOCSIFFLAGS, IOC_W, MK_PTR(MK_STRUCT(STRUCT_short_ifreq)))
|
||||
@@ -322,11 +351,15 @@
|
||||
IOCTL(LOOP_SET_FD, 0, TYPE_INT)
|
||||
IOCTL(LOOP_CLR_FD, 0, TYPE_INT)
|
||||
IOCTL(LOOP_SET_STATUS, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info)))
|
||||
IOCTL(LOOP_GET_STATUS, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info)))
|
||||
IOCTL(LOOP_GET_STATUS, IOC_R, MK_PTR(MK_STRUCT(STRUCT_loop_info)))
|
||||
IOCTL(LOOP_SET_STATUS64, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info64)))
|
||||
IOCTL(LOOP_GET_STATUS64, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info64)))
|
||||
IOCTL(LOOP_GET_STATUS64, IOC_R, MK_PTR(MK_STRUCT(STRUCT_loop_info64)))
|
||||
IOCTL(LOOP_CHANGE_FD, 0, TYPE_INT)
|
||||
|
||||
IOCTL(LOOP_CTL_ADD, 0, TYPE_INT)
|
||||
IOCTL(LOOP_CTL_REMOVE, 0, TYPE_INT)
|
||||
IOCTL(LOOP_CTL_GET_FREE, 0, TYPE_NULL)
|
||||
|
||||
IOCTL(MTIOCTOP, IOC_W, MK_PTR(MK_STRUCT(STRUCT_mtop)))
|
||||
IOCTL(MTIOCGET, IOC_R, MK_PTR(MK_STRUCT(STRUCT_mtget)))
|
||||
IOCTL(MTIOCPOS, IOC_R, MK_PTR(MK_STRUCT(STRUCT_mtpos)))
|
||||
|
||||
+10
-1
@@ -1,4 +1,6 @@
|
||||
/* Copied from 2.6.25 kernel headers to avoid problems on older hosts. */
|
||||
/* Copied from 2.6.25 kernel headers to avoid problems on older hosts,
|
||||
* and subsequently updated to match newer additions to the API.
|
||||
*/
|
||||
|
||||
#ifndef LINUX_LOOP_H
|
||||
#define LINUX_LOOP_H
|
||||
@@ -92,5 +94,12 @@ struct loop_info64 {
|
||||
#define LOOP_SET_STATUS64 0x4C04
|
||||
#define LOOP_GET_STATUS64 0x4C05
|
||||
#define LOOP_CHANGE_FD 0x4C06
|
||||
#define LOOP_SET_CAPACITY 0x4C07
|
||||
#define LOOP_SET_DIRECT_IO 0x4C08
|
||||
|
||||
/* /dev/loop-control interface */
|
||||
#define LOOP_CTL_ADD 0x4C80
|
||||
#define LOOP_CTL_REMOVE 0x4C81
|
||||
#define LOOP_CTL_GET_FREE 0x4C82
|
||||
|
||||
#endif
|
||||
|
||||
+4
-4
@@ -5826,7 +5826,8 @@ long do_rt_sigreturn(CPUArchState *env)
|
||||
|
||||
#endif
|
||||
|
||||
static void handle_pending_signal(CPUArchState *cpu_env, int sig)
|
||||
static void handle_pending_signal(CPUArchState *cpu_env, int sig,
|
||||
struct emulated_sigtable *k)
|
||||
{
|
||||
CPUState *cpu = ENV_GET_CPU(cpu_env);
|
||||
abi_ulong handler;
|
||||
@@ -5834,7 +5835,6 @@ static void handle_pending_signal(CPUArchState *cpu_env, int sig)
|
||||
target_sigset_t target_old_set;
|
||||
struct target_sigaction *sa;
|
||||
TaskState *ts = cpu->opaque;
|
||||
struct emulated_sigtable *k = &ts->sigtab[sig - 1];
|
||||
|
||||
trace_user_handle_signal(cpu_env, sig);
|
||||
/* dequeue signal */
|
||||
@@ -5937,7 +5937,7 @@ void process_pending_signals(CPUArchState *cpu_env)
|
||||
sigact_table[sig - 1]._sa_handler = TARGET_SIG_DFL;
|
||||
}
|
||||
|
||||
handle_pending_signal(cpu_env, sig);
|
||||
handle_pending_signal(cpu_env, sig, &ts->sync_signal);
|
||||
}
|
||||
|
||||
for (sig = 1; sig <= TARGET_NSIG; sig++) {
|
||||
@@ -5947,7 +5947,7 @@ void process_pending_signals(CPUArchState *cpu_env)
|
||||
if (ts->sigtab[sig - 1].pending &&
|
||||
(!sigismember(blocked_set,
|
||||
target_to_host_signal_table[sig]))) {
|
||||
handle_pending_signal(cpu_env, sig);
|
||||
handle_pending_signal(cpu_env, sig, &ts->sigtab[sig - 1]);
|
||||
/* Restart scan from the beginning */
|
||||
sig = 1;
|
||||
}
|
||||
|
||||
@@ -179,6 +179,9 @@
|
||||
#define TARGET_NR_readahead 205 /* Linux Specific */
|
||||
#define TARGET_NR_socketcall 206 /* Linux Specific */
|
||||
#define TARGET_NR_syslog 207 /* Linux Specific */
|
||||
#define TARGET_NR_lookup_dcookie 208 /* Linux Specific */
|
||||
#define TARGET_NR_fadvise64 209 /* Linux Specific */
|
||||
#define TARGET_NR_fadvise64_64 210 /* Linux Specific */
|
||||
#define TARGET_NR_tgkill 211 /* Linux Specific */
|
||||
#define TARGET_NR_waitpid 212 /* Linux Specific */
|
||||
#define TARGET_NR_swapoff 213 /* Linux Specific */
|
||||
|
||||
+435
-19
File diff suppressed because it is too large
Load Diff
@@ -985,6 +985,17 @@ struct target_pollfd {
|
||||
#define TARGET_BLKGETSIZE64 TARGET_IOR(0x12,114,abi_ulong)
|
||||
/* return device size in bytes
|
||||
(u64 *arg) */
|
||||
|
||||
#define TARGET_BLKDISCARD TARGET_IO(0x12, 119)
|
||||
#define TARGET_BLKIOMIN TARGET_IO(0x12, 120)
|
||||
#define TARGET_BLKIOOPT TARGET_IO(0x12, 121)
|
||||
#define TARGET_BLKALIGNOFF TARGET_IO(0x12, 122)
|
||||
#define TARGET_BLKPBSZGET TARGET_IO(0x12, 123)
|
||||
#define TARGET_BLKDISCARDZEROES TARGET_IO(0x12, 124)
|
||||
#define TARGET_BLKSECDISCARD TARGET_IO(0x12, 125)
|
||||
#define TARGET_BLKROTATIONAL TARGET_IO(0x12, 126)
|
||||
#define TARGET_BLKZEROOUT TARGET_IO(0x12, 127)
|
||||
|
||||
#define TARGET_FIBMAP TARGET_IO(0x00,1) /* bmap access */
|
||||
#define TARGET_FIGETBSZ TARGET_IO(0x00,2) /* get the block size used for bmap */
|
||||
#define TARGET_FS_IOC_FIEMAP TARGET_IOWR('f',11,struct fiemap)
|
||||
@@ -1117,6 +1128,10 @@ struct target_pollfd {
|
||||
#define TARGET_LOOP_GET_STATUS64 0x4C05
|
||||
#define TARGET_LOOP_CHANGE_FD 0x4C06
|
||||
|
||||
#define TARGET_LOOP_CTL_ADD 0x4C80
|
||||
#define TARGET_LOOP_CTL_REMOVE 0x4C81
|
||||
#define TARGET_LOOP_CTL_GET_FREE 0x4C82
|
||||
|
||||
/* fb ioctls */
|
||||
#define TARGET_FBIOGET_VSCREENINFO 0x4600
|
||||
#define TARGET_FBIOPUT_VSCREENINFO 0x4601
|
||||
|
||||
@@ -103,10 +103,11 @@ STRUCT(loop_info64,
|
||||
TYPE_ULONGLONG, /* lo_inode */
|
||||
TYPE_ULONGLONG, /* lo_rdevice */
|
||||
TYPE_ULONGLONG, /* lo_offset */
|
||||
TYPE_ULONG, /* lo_number */
|
||||
TYPE_ULONG, /* lo_encrypt_type */
|
||||
TYPE_ULONG, /* lo_encrypt_key_size */
|
||||
TYPE_ULONG, /* lo_flags */
|
||||
TYPE_ULONGLONG, /* lo_sizelimit */
|
||||
TYPE_INT, /* lo_number */
|
||||
TYPE_INT, /* lo_encrypt_type */
|
||||
TYPE_INT, /* lo_encrypt_key_size */
|
||||
TYPE_INT, /* lo_flags */
|
||||
MK_ARRAY(TYPE_CHAR, 64), /* lo_name */
|
||||
MK_ARRAY(TYPE_CHAR, 64), /* lo_crypt_name */
|
||||
MK_ARRAY(TYPE_CHAR, 32), /* lo_encrypt_key */
|
||||
|
||||
@@ -209,12 +209,12 @@ struct target_termios {
|
||||
#define TARGET_TIOCSBRK 0x5427 /* BSD compatibility */
|
||||
#define TARGET_TIOCCBRK 0x5428 /* BSD compatibility */
|
||||
#define TARGET_TIOCGSID 0x5429 /* Return the session ID of FD */
|
||||
#define TARGET_TCGETS2 _IOR('T',0x2A, struct termios2)
|
||||
#define TARGET_TCSETS2 _IOW('T',0x2B, struct termios2)
|
||||
#define TARGET_TCSETSW2 _IOW('T',0x2C, struct termios2)
|
||||
#define TARGET_TCSETSF2 _IOW('T',0x2D, struct termios2)
|
||||
#define TARGET_TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
|
||||
#define TARGET_TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */
|
||||
#define TARGET_TCGETS2 TARGET_IOR('T',0x2A, struct termios2)
|
||||
#define TARGET_TCSETS2 TARGET_IOW('T',0x2B, struct termios2)
|
||||
#define TARGET_TCSETSW2 TARGET_IOW('T',0x2C, struct termios2)
|
||||
#define TARGET_TCSETSF2 TARGET_IOW('T',0x2D, struct termios2)
|
||||
#define TARGET_TIOCGPTN TARGET_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
|
||||
#define TARGET_TIOCSPTLCK TARGET_IOW('T',0x31, int) /* Lock/unlock Pty */
|
||||
|
||||
#define TARGET_FIONCLEX 0x5450 /* these numbers need to be adjusted. */
|
||||
#define TARGET_FIOCLEX 0x5451
|
||||
|
||||
Reference in New Issue
Block a user