valgrind.patch 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. diff -urN ../valgrind-2.4.0/coregrind/vg_syscalls.c valgrind-2.4.0/coregrind/vg_syscalls.c
  2. --- ../valgrind-2.4.0/coregrind/vg_syscalls.c 2005-03-23 03:22:03.000000000 -0700
  3. +++ valgrind-2.4.0/coregrind/vg_syscalls.c 2005-07-22 03:42:01.000000000 -0600
  4. @@ -3266,15 +3266,34 @@
  5. SYS_PRE_MEM_WRITE( "ioctl(RTC_IRQP_READ)", arg3, sizeof(unsigned long));
  6. break;
  7. + case VKI_BLKRRPART:
  8. + case VKI_BLKFLSBUF:
  9. + break;
  10. case VKI_BLKGETSIZE:
  11. SYS_PRE_MEM_WRITE( "ioctl(BLKGETSIZE)", arg3, sizeof(unsigned long));
  12. break;
  13. + case VKI_BLKGETSIZE64:
  14. + SYS_PRE_MEM_WRITE( "ioctl(BLKGETSIZE64)", arg3, sizeof(__vki_u64));
  15. + break;
  16. + case VKI_BLKSSZGET:
  17. + SYS_PRE_MEM_WRITE( "ioctl(BLKSSZGET)", arg3, sizeof(unsigned long));
  18. + break;
  19. + case VKI_BLKBSZGET:
  20. + SYS_PRE_MEM_WRITE( "ioctl(BLKBSZGET)", arg3, sizeof(unsigned long));
  21. + break;
  22. + case VKI_BLKBSZSET:
  23. + SYS_PRE_MEM_READ( "ioctl(BLKBSZSET)", arg3, sizeof(unsigned long) );
  24. + break;
  25. /* Hard disks */
  26. case VKI_HDIO_GET_IDENTITY: /* 0x030d */
  27. SYS_PRE_MEM_WRITE( "ioctl(HDIO_GET_IDENTITY)", arg3,
  28. VKI_SIZEOF_STRUCT_HD_DRIVEID );
  29. break;
  30. + case VKI_HDIO_GETGEO: /* 0x0301 */
  31. + SYS_PRE_MEM_WRITE( "ioctl(HDIO_GETGEO)", arg3,
  32. + sizeof(struct vki_hd_geometry) );
  33. + break;
  34. /* CD ROM stuff (??) */
  35. case VKI_CDROM_GET_MCN:
  36. @@ -3332,6 +3351,7 @@
  37. break;
  38. /* The following two are probably bogus (should check args
  39. for readability). JRS 20021117 */
  40. + case VKI_CDROMEJECT:
  41. case VKI_CDROM_DRIVE_STATUS: /* 0x5326 */
  42. case VKI_CDROM_CLEAR_OPTIONS: /* 0x5321 */
  43. break;
  44. @@ -3931,14 +3951,31 @@
  45. VG_TRACK( post_mem_write,arg3, sizeof(unsigned long));
  46. break;
  47. + case VKI_BLKRRPART:
  48. + case VKI_BLKFLSBUF:
  49. + break;
  50. case VKI_BLKGETSIZE:
  51. VG_TRACK( post_mem_write,arg3, sizeof(unsigned long));
  52. break;
  53. + case VKI_BLKGETSIZE64:
  54. + VG_TRACK( post_mem_write,arg3, sizeof(__vki_u64));
  55. + break;
  56. + case VKI_BLKSSZGET:
  57. + VG_TRACK( post_mem_write,arg3, sizeof(unsigned long));
  58. + break;
  59. + case VKI_BLKBSZGET:
  60. + VG_TRACK( post_mem_write,arg3, sizeof(unsigned long));
  61. + break;
  62. + case VKI_BLKBSZSET:
  63. + break;
  64. /* Hard disks */
  65. case VKI_HDIO_GET_IDENTITY: /* 0x030d */
  66. VG_TRACK( post_mem_write,arg3, VKI_SIZEOF_STRUCT_HD_DRIVEID );
  67. break;
  68. + case VKI_HDIO_GETGEO: /* 0x0301 */
  69. + VG_TRACK( post_mem_write,arg3, sizeof(struct vki_hd_geometry) );
  70. + break;
  71. /* CD ROM stuff (??) */
  72. case VKI_CDROMSUBCHNL:
  73. @@ -3967,6 +4004,7 @@
  74. break;
  75. /* The following two are probably bogus (should check args
  76. for readability). JRS 20021117 */
  77. + case VKI_CDROMEJECT:
  78. case VKI_CDROM_DRIVE_STATUS: /* 0x5326 */
  79. case VKI_CDROM_CLEAR_OPTIONS: /* 0x5321 */
  80. break;
  81. diff -urN ../valgrind-2.4.0/include/linux/vki.h valgrind-2.4.0/include/linux/vki.h
  82. --- ../valgrind-2.4.0/include/linux/vki.h 2005-03-10 23:28:14.000000000 -0700
  83. +++ valgrind-2.4.0/include/linux/vki.h 2005-07-22 03:42:01.000000000 -0600
  84. @@ -1389,7 +1389,14 @@
  85. // From linux-2.6.8.1/include/linux/fs.h
  86. //----------------------------------------------------------------------
  87. -#define VKI_BLKGETSIZE _VKI_IO(0x12,96) /* return device size /512 (long *arg) */
  88. +#define VKI_BLKGETSIZE _VKI_IO(0x12, 96) /* return device size /512 (long *arg) */
  89. +#define VKI_BLKGETSIZE64 _VKI_IOR(0x12, 114, __vki_u64) /* return device size in bytes (u64 *arg) */
  90. +#define VKI_BLKRRPART _VKI_IO(0x12, 95) /* re-read partition table */
  91. +#define VKI_BLKFLSBUF _VKI_IO(0x12, 97) /* flush buffer cache */
  92. +#define VKI_BLKSSZGET _VKI_IO(0x12, 104)/* get block device sector size */
  93. +#define VKI_BLKBSZGET _VKI_IOR(0x12, 112, unsigned long)
  94. +#define VKI_BLKBSZSET _VKI_IOW(0x12, 113, unsigned long)
  95. +
  96. #define VKI_FIBMAP _VKI_IO(0x00,1) /* bmap access */
  97. #define VKI_FIGETBSZ _VKI_IO(0x00,2) /* get the block size used for bmap */
  98. @@ -1464,6 +1471,7 @@
  99. (struct cdrom_tochdr) */
  100. #define VKI_CDROMREADTOCENTRY 0x5306 /* Read TOC entry
  101. (struct cdrom_tocentry) */
  102. +#define VKI_CDROMEJECT 0x5309 /* Ejects the cdrom media */
  103. #define VKI_CDROMSUBCHNL 0x530b /* Read subchannel data
  104. (struct cdrom_subchnl) */
  105. #define VKI_CDROMREADMODE2 0x530c /* Read CDROM mode 2 data (2336 Bytes)
  106. @@ -1674,12 +1682,20 @@
  107. // From linux-2.6.8.1/include/linux/hdreg.h
  108. //----------------------------------------------------------------------
  109. +#define VKI_HDIO_GETGEO 0x0301 /* get device geometry */
  110. #define VKI_HDIO_GET_IDENTITY 0x030d /* get IDE identification info */
  111. // [[Nb: done like this because the original type is a huge struct that will
  112. // always be the same size.]]
  113. #define VKI_SIZEOF_STRUCT_HD_DRIVEID 512
  114. +struct vki_hd_geometry {
  115. + unsigned char heads;
  116. + unsigned char sectors;
  117. + unsigned short cylinders;
  118. + unsigned long start;
  119. +};
  120. +
  121. //----------------------------------------------------------------------
  122. // From linux-2.6.8.1/include/linux/fb.h
  123. //----------------------------------------------------------------------