]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
backport TIOCSERGETLSR, TIOCGICOUNT, HDIO_GET_DMA ioctls (v5633)
authorDirk Mueller <daywalker@users.sourceforge.net>
Wed, 22 Feb 2006 13:20:17 +0000 (13:20 +0000)
committerDirk Mueller <daywalker@users.sourceforge.net>
Wed, 22 Feb 2006 13:20:17 +0000 (13:20 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/branches/VALGRIND_3_1_BRANCH@5675

coregrind/m_syswrap/syswrap-generic.c
include/vki-amd64-linux.h
include/vki-linux.h
include/vki-ppc32-linux.h
include/vki-x86-linux.h

index fbaaba9c867d18a864cc1a19f9c3d86dedf66e5e..ffb1debfafac1051951fd0b2b10290ef65e82961 100644 (file)
@@ -3163,6 +3163,14 @@ PRE(sys_ioctl)
       PRE_MEM_WRITE( "ioctl(FIONREAD)",  ARG3, sizeof(int) );
       break;
 
+   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 @@ PRE(sys_ioctl)
    case VKI_HDIO_GETGEO: /* 0x0301 */
       PRE_MEM_WRITE( "ioctl(HDIO_GETGEO)", ARG3, sizeof(struct vki_hd_geometry));
       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(sys_ioctl)
       POST_MEM_WRITE( ARG3, sizeof(int) );
       break;
 
+   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 @@ POST(sys_ioctl)
    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;
index 79f96a432df68525fe54405c6a4481aaf0d72760..8905529d3490d121c564d9dac444228fb5a552e6 100644 (file)
@@ -433,6 +433,9 @@ struct vki_termios {
 #define VKI_TIOCSPTLCK _VKI_IOW('T',0x31, int)  /* Lock/unlock Pty */
 
 #define VKI_FIOASYNC   0x5452
+#define TIOCSERGETLSR   0x5459 /* Get line status register */
+
+#define TIOCGICOUNT    0x545D  /* read serial port inline interrupt counts */
 
 //----------------------------------------------------------------------
 // From linux-2.6.9/include/asm-x86_64/poll.h
index 1eb61d690e47ed46819ef19439ac62e904765760..babea066babed1a8c117428bb011b9bdcab0a7cf 100644 (file)
@@ -1816,6 +1816,7 @@ struct vki_hd_geometry {
 };
 
 #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 */
 
 // [[Nb: done like this because the original type is a huge struct that will
@@ -2038,6 +2039,18 @@ enum {
        VKI_SNDRV_TIMER_IOCTL_PAUSE = _VKI_IO('T', 0xa3),
 };
 
+//----------------------------------------------------------------------
+// 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
 
 /*--------------------------------------------------------------------*/
index 150340e385747c8e3d1bf4537006119b305d6ada..6fc2fbe88f55a5bc301b0f8298a3e02a060db688 100644 (file)
@@ -606,14 +606,14 @@ extern unsigned int __VKI_invalid_size_argument_for_IOC;
 //#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 below */
+#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 */
 
 //#define VKI_TIOCMIWAIT       0x545C  /* wait for a change on serial input line(s) */
-//#define VKI_TIOCGICOUNT      0x545D  /* read serial port inline interrupt counts */
+#define VKI_TIOCGICOUNT                0x545D  /* read serial port inline interrupt counts */
 
 //----------------------------------------------------------------------
 // From linux-2.6.9/include/asm-ppc/poll.h
index 582f2b6d2a5954c2a1212dbf5466873986131d4a..eb1c99edac8602d6dec6c47b08c0532c03d2b658 100644 (file)
@@ -515,6 +515,9 @@ extern unsigned int __vki_invalid_size_argument_for_IOC;
 #define VKI_TIOCSPTLCK _VKI_IOW('T',0x31, int)  /* Lock/unlock Pty */
 
 #define VKI_FIOASYNC   0x5452
+#define VKI_TIOCSERGETLSR   0x5459 /* Get line status register */
+
+#define VKI_TIOCGICOUNT        0x545D  /* read serial port inline interrupt counts */
 
 //----------------------------------------------------------------------
 // From linux-2.6.8.1/include/asm-i386/poll.h