|
From: <sv...@va...> - 2006-02-11 13:29:27
|
Author: tom
Date: 2006-02-11 13:29:09 +0000 (Sat, 11 Feb 2006)
New Revision: 5633
Log:
Implement a few extra ioctls based on patch from Eric Pouech in bug #1207=
28.
Modified:
trunk/coregrind/m_syswrap/syswrap-generic.c
trunk/include/vki-amd64-linux.h
trunk/include/vki-linux.h
trunk/include/vki-ppc32-linux.h
trunk/include/vki-ppc64-linux.h
trunk/include/vki-x86-linux.h
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-generic.c 2006-02-11 13:06:22 UTC (=
rev 5632)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c 2006-02-11 13:29:09 UTC (=
rev 5633)
@@ -3163,6 +3163,14 @@
PRE_MEM_WRITE( "ioctl(FIONREAD)", ARG3, sizeof(int) );
break;
=20
+ case VKI_TIOCSERGETLSR:
+ PRE_MEM_WRITE( "ioctl(TIOCSERGETLSR)", ARG3, sizeof(int) );
+ break;
+ case VKI_TIOCGICOUNT:
+ PRE_MEM_WRITE( "ioctl(TIOCGICOUNT)", ARG3,
+ sizeof(struct vki_serial_icounter_struct) );
+ break;
+
case VKI_SG_SET_COMMAND_Q:
PRE_MEM_READ( "ioctl(SG_SET_COMMAND_Q)", ARG3, sizeof(int) );
break;
@@ -3549,6 +3557,9 @@
case VKI_HDIO_GETGEO: /* 0x0301 */
PRE_MEM_WRITE( "ioctl(HDIO_GETGEO)", ARG3, sizeof(struct vki_hd_ge=
ometry));
break;
+ case VKI_HDIO_GET_DMA: /* 0x030b */
+ PRE_MEM_WRITE( "ioctl(HDIO_GET_DMA)", ARG3, sizeof(long));
+ break;
case VKI_HDIO_GET_IDENTITY: /* 0x030d */
PRE_MEM_WRITE( "ioctl(HDIO_GET_IDENTITY)", ARG3,
VKI_SIZEOF_STRUCT_HD_DRIVEID );
@@ -3968,6 +3979,13 @@
POST_MEM_WRITE( ARG3, sizeof(int) );
break;
=20
+ case VKI_TIOCSERGETLSR:
+ POST_MEM_WRITE( ARG3, sizeof(int) );
+ break;
+ case VKI_TIOCGICOUNT:
+ POST_MEM_WRITE( ARG3, sizeof(struct vki_serial_icounter_struct) );
+ break;
+
case VKI_SG_SET_COMMAND_Q:
break;
case VKI_SG_IO:
@@ -4244,6 +4262,9 @@
case VKI_HDIO_GETGEO: /* 0x0301 */
POST_MEM_WRITE(ARG3, sizeof(struct vki_hd_geometry));
break;
+ case VKI_HDIO_GET_DMA: /* 0x030b */
+ POST_MEM_WRITE(ARG3, sizeof(long));
+ break;
case VKI_HDIO_GET_IDENTITY: /* 0x030d */
POST_MEM_WRITE(ARG3, VKI_SIZEOF_STRUCT_HD_DRIVEID );
break;
Modified: trunk/include/vki-amd64-linux.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/include/vki-amd64-linux.h 2006-02-11 13:06:22 UTC (rev 5632)
+++ trunk/include/vki-amd64-linux.h 2006-02-11 13:29:09 UTC (rev 5633)
@@ -432,7 +432,10 @@
#define VKI_TIOCSPTLCK _VKI_IOW('T',0x31, int) /* Lock/unlock Pty */
=20
#define VKI_FIOASYNC 0x5452
+#define TIOCSERGETLSR 0x5459 /* Get line status register */
=20
+#define TIOCGICOUNT 0x545D /* read serial port inline interrupt counts *=
/
+
//----------------------------------------------------------------------
// From linux-2.6.9/include/asm-x86_64/poll.h
//----------------------------------------------------------------------
Modified: trunk/include/vki-linux.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/include/vki-linux.h 2006-02-11 13:06:22 UTC (rev 5632)
+++ trunk/include/vki-linux.h 2006-02-11 13:29:09 UTC (rev 5633)
@@ -1826,6 +1826,7 @@
};
=20
#define VKI_HDIO_GETGEO 0x0301 /* get device geometry */
+#define VKI_HDIO_GET_DMA 0x030b /* get use-dma flag */
#define VKI_HDIO_GET_IDENTITY 0x030d /* get IDE identification info */
=20
// [[Nb: done like this because the original type is a huge struct that =
will
@@ -2048,6 +2049,18 @@
VKI_SNDRV_TIMER_IOCTL_PAUSE =3D _VKI_IO('T', 0xa3),
};
=20
+//----------------------------------------------------------------------
+// From linux-2.6.15.4/include/linux/serial.h
+//----------------------------------------------------------------------
+
+struct vki_serial_icounter_struct {
+ int cts, dsr, rng, dcd;
+ int rx, tx;
+ int frame, overrun, parity, brk;
+ int buf_overrun;
+ int reserved[9];
+};
+
#endif // __VKI_LINUX_H
=20
/*--------------------------------------------------------------------*/
Modified: trunk/include/vki-ppc32-linux.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/include/vki-ppc32-linux.h 2006-02-11 13:06:22 UTC (rev 5632)
+++ trunk/include/vki-ppc32-linux.h 2006-02-11 13:29:09 UTC (rev 5633)
@@ -605,14 +605,14 @@
//#define VKI_TIOCGLCKTRMIOS 0x5456
//#define VKI_TIOCSLCKTRMIOS 0x5457
//#define VKI_TIOCSERGSTRUCT 0x5458 /* For debugging only */
-//#define VKI_TIOCSERGETLSR 0x5459 /* Get line status register */
-// /* ioctl (fd, VKI_TIOCSERGETLSR, &result) where result may be as bel=
ow */
+#define VKI_TIOCSERGETLSR 0x5459 /* Get line status register */
+ /* ioctl (fd, VKI_TIOCSERGETLSR, &result) where result may be as below=
*/
//# define VKI_TIOCSER_TEMT 0x01 /* Transmitter physically empty */
//#define VKI_TIOCSERGETMULTI 0x545A /* Get multiport config */
//#define VKI_TIOCSERSETMULTI 0x545B /* Set multiport config */
=20
//#define VKI_TIOCMIWAIT 0x545C /* wait for a change on serial input li=
ne(s) */
-//#define VKI_TIOCGICOUNT 0x545D /* read serial port inline interrupt c=
ounts */
+#define VKI_TIOCGICOUNT 0x545D /* read serial port inline interrupt co=
unts */
=20
//----------------------------------------------------------------------
// From linux-2.6.9/include/asm-ppc/poll.h
Modified: trunk/include/vki-ppc64-linux.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/include/vki-ppc64-linux.h 2006-02-11 13:06:22 UTC (rev 5632)
+++ trunk/include/vki-ppc64-linux.h 2006-02-11 13:29:09 UTC (rev 5633)
@@ -598,6 +598,8 @@
/* Get Pty Number (of pty-mux device) */
#define VKI_TIOCSPTLCK _VKI_IOW('T',0x31, int) /* Lock/unlock Pty =
*/
#define VKI_FIOASYNC _VKI_IOW('f', 125, int)
+#define VKI_TIOCSERGETLSR 0x5459 /* Get line status register */
+#define VKI_TIOCGICOUNT 0x545D /* read serial port inline interrupt =
counts */
=20
//----------------------------------------------------------------------
// From linux-2.6.13/include/asm-ppc64/poll.h
Modified: trunk/include/vki-x86-linux.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/include/vki-x86-linux.h 2006-02-11 13:06:22 UTC (rev 5632)
+++ trunk/include/vki-x86-linux.h 2006-02-11 13:29:09 UTC (rev 5633)
@@ -515,7 +515,10 @@
#define VKI_TIOCSPTLCK _VKI_IOW('T',0x31, int) /* Lock/unlock Pty */
=20
#define VKI_FIOASYNC 0x5452
+#define VKI_TIOCSERGETLSR 0x5459 /* Get line status register */
=20
+#define VKI_TIOCGICOUNT 0x545D /* read serial port inline interrupt coun=
ts */
+
//----------------------------------------------------------------------
// From linux-2.6.8.1/include/asm-i386/poll.h
//----------------------------------------------------------------------
|