Do 'struct termios' properly.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2891
This commit is contained in:
Nicholas Nethercote 2004-11-01 16:22:00 +00:00
parent e78cfe5b19
commit a11072f0f9
2 changed files with 15 additions and 4 deletions

View File

@ -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:

View File

@ -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