From: Nicholas Nethercote Date: Mon, 1 Nov 2004 16:22:00 +0000 (+0000) Subject: Do 'struct termios' properly. X-Git-Tag: svn/VALGRIND_3_0_0~1415 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a11072f0f962e8e7b9c9b9773bfec40523414bf8;p=thirdparty%2Fvalgrind.git Do 'struct termios' properly. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2891 --- diff --git a/coregrind/vg_syscalls.c b/coregrind/vg_syscalls.c index 3f634da192..cbe882d483 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 2d50c253f3..8a097e93b2 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