diff --git a/coregrind/vg_syscalls.c b/coregrind/vg_syscalls.c index 3f634da19..cbe882d48 100644 --- a/coregrind/vg_syscalls.c +++ b/coregrind/vg_syscalls.c @@ -2861,11 +2861,11 @@ PRE(ioctl) case VKI_TCSETSW: case VKI_TCSETSF: SYSCALL_TRACK( pre_mem_read, tid, "ioctl(TCSET{S,SW,SF})", arg3, - VKI_SIZEOF_STRUCT_TERMIOS ); + sizeof(struct vki_termios) ); break; case VKI_TCGETS: SYSCALL_TRACK( pre_mem_write, tid, "ioctl(TCGETS)", arg3, - VKI_SIZEOF_STRUCT_TERMIOS ); + sizeof(struct vki_termios) ); break; case VKI_TCSETA: case VKI_TCSETAW: @@ -3571,7 +3571,7 @@ POST(ioctl) case VKI_TCSETSF: break; case VKI_TCGETS: - VG_TRACK( post_mem_write, arg3, VKI_SIZEOF_STRUCT_TERMIOS ); + VG_TRACK( post_mem_write, arg3, sizeof(struct vki_termios) ); break; case VKI_TCSETA: case VKI_TCSETAW: diff --git a/include/x86-linux/vki_arch.h b/include/x86-linux/vki_arch.h index 2d50c253f..8a097e93b 100644 --- a/include/x86-linux/vki_arch.h +++ b/include/x86-linux/vki_arch.h @@ -406,7 +406,18 @@ struct vki_termio { // From linux-2.6.8.1/include/asm-i386/termbits.h //---------------------------------------------------------------------- -#define VKI_SIZEOF_STRUCT_TERMIOS 17 +typedef unsigned char vki_cc_t; +typedef unsigned int vki_tcflag_t; + +#define VKI_NCCS 19 +struct vki_termios { + vki_tcflag_t c_iflag; /* input mode flags */ + vki_tcflag_t c_oflag; /* output mode flags */ + vki_tcflag_t c_cflag; /* control mode flags */ + vki_tcflag_t c_lflag; /* local mode flags */ + vki_cc_t c_line; /* line discipline */ + vki_cc_t c_cc[VKI_NCCS]; /* control characters */ +}; //---------------------------------------------------------------------- // From linux-2.6.8.1/include/asm-i386/ioctl.h