|
From: <sv...@va...> - 2005-07-28 16:13:45
|
Author: tom
Date: 2005-07-28 17:13:42 +0100 (Thu, 28 Jul 2005)
New Revision: 4290
Log:
Handle the HDIO_GETGEO ioctl. Secondary problem found from bug #109780.
Modified:
trunk/coregrind/m_syswrap/syswrap-generic.c
trunk/include/vki-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 2005-07-28 16:10:42 UTC (=
rev 4289)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c 2005-07-28 16:13:42 UTC (=
rev 4290)
@@ -3495,6 +3495,9 @@
break;
=20
/* Hard disks */
+ case VKI_HDIO_GETGEO: /* 0x0301 */
+ PRE_MEM_WRITE( "ioctl(HDIO_GETGEO)", ARG3, sizeof(struct vki_hd_ge=
ometry));
+ break;
case VKI_HDIO_GET_IDENTITY: /* 0x030d */
PRE_MEM_WRITE( "ioctl(HDIO_GET_IDENTITY)", ARG3,
VKI_SIZEOF_STRUCT_HD_DRIVEID );
@@ -4167,6 +4170,9 @@
break;
=20
/* 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;
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 2005-07-28 16:10:42 UTC (rev 4289)
+++ trunk/include/vki-linux.h 2005-07-28 16:13:42 UTC (rev 4290)
@@ -1721,6 +1721,14 @@
// From linux-2.6.8.1/include/linux/hdreg.h
//----------------------------------------------------------------------
=20
+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 */
=20
// [[Nb: done like this because the original type is a huge struct that =
will
|