]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Handle the HDIO_GETGEO ioctl. Secondary problem found from bug #109780.
authorTom Hughes <tom@compton.nu>
Thu, 28 Jul 2005 16:13:42 +0000 (16:13 +0000)
committerTom Hughes <tom@compton.nu>
Thu, 28 Jul 2005 16:13:42 +0000 (16:13 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4290

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

index 7984f30039297b2906b02f1677168e6dbcebcc2b..94b5c71b72339760dbbbf44c554043a3fee2ab36 100644 (file)
@@ -3495,6 +3495,9 @@ PRE(sys_ioctl)
       break;
 
       /* Hard disks */
+   case VKI_HDIO_GETGEO: /* 0x0301 */
+      PRE_MEM_WRITE( "ioctl(HDIO_GETGEO)", ARG3, sizeof(struct vki_hd_geometry));
+      break;
    case VKI_HDIO_GET_IDENTITY: /* 0x030d */
       PRE_MEM_WRITE( "ioctl(HDIO_GET_IDENTITY)", ARG3,
                      VKI_SIZEOF_STRUCT_HD_DRIVEID );
@@ -4167,6 +4170,9 @@ POST(sys_ioctl)
       break;
 
       /* Hard disks */
+   case VKI_HDIO_GETGEO: /* 0x0301 */
+      POST_MEM_WRITE(ARG3, sizeof(struct vki_hd_geometry));
+      break;
    case VKI_HDIO_GET_IDENTITY: /* 0x030d */
       POST_MEM_WRITE(ARG3, VKI_SIZEOF_STRUCT_HD_DRIVEID );
       break;
index e4c859c0c95db94da1b1b68f26cd4bf1496f3e14..a7010f837a2b439c10432fa1b2a06f79c84f392a 100644 (file)
@@ -1721,6 +1721,14 @@ typedef struct vki_audio_buf_info {
 // From linux-2.6.8.1/include/linux/hdreg.h
 //----------------------------------------------------------------------
 
+struct vki_hd_geometry {
+      unsigned char heads;
+      unsigned char sectors;
+      unsigned short cylinders;
+      unsigned long start;
+};
+
+#define VKI_HDIO_GETGEO                0x0301  /* get device geometry */
 #define VKI_HDIO_GET_IDENTITY  0x030d  /* get IDE identification info */
 
 // [[Nb: done like this because the original type is a huge struct that will