upgrade valgrind to 3.3.1, refresh patches (#3699)
[openwrt/svn-archive/archive.git] / utils / valgrind / patches / 001-uclibc_syscall.patch
1 --- a/coregrind/m_syswrap/syswrap-amd64-linux.c
2 +++ b/coregrind/m_syswrap/syswrap-amd64-linux.c
3 @@ -1165,7 +1165,7 @@
4 GENXY(__NR_times, sys_times), // 100
5 PLAXY(__NR_ptrace, sys_ptrace), // 101
6 GENX_(__NR_getuid, sys_getuid), // 102
7 - // (__NR_syslog, sys_syslog), // 103
8 + LINXY(__NR_syslog, sys_syslog), // 103
9 GENX_(__NR_getgid, sys_getgid), // 104
10
11 GENX_(__NR_setuid, sys_setuid), // 105
12 --- a/include/vki/vki-linux.h
13 +++ b/include/vki/vki-linux.h
14 @@ -1582,7 +1582,9 @@
15
16 #define VKI_BLKROSET _VKI_IO(0x12,93) /* set device read-only (0 = read-write) */
17 #define VKI_BLKROGET _VKI_IO(0x12,94) /* get read-only status (0 = read_write) */
18 +#define VKI_BLKRRPART _VKI_IO(0x12,95) /* re-read partition table */
19 #define VKI_BLKGETSIZE _VKI_IO(0x12,96) /* return device size /512 (long *arg) */
20 +#define VKI_BLKFLSBUF _VKI_IO(0x12,97) /* flush buffer cache */
21 #define VKI_BLKRASET _VKI_IO(0x12,98) /* set read ahead for block device */
22 #define VKI_BLKRAGET _VKI_IO(0x12,99) /* get current read ahead setting */
23 #define VKI_BLKFRASET _VKI_IO(0x12,100)/* set filesystem (mm/filemap.c) read-ahead */
24 @@ -1657,6 +1659,54 @@
25 //#define SG_GET_COMMAND_Q 0x2270 /* Yields 0 (queuing off) or 1 (on) */
26 #define VKI_SG_SET_COMMAND_Q 0x2271 /* Change queuing state with 0 or 1 */
27
28 +
29 +typedef struct vki_scsi_idlun
30 +{
31 + int mux4;
32 + int host_unique_id;
33 +
34 +} vki_scsi_idlun_t;
35 +#define VKI_SCSI_IOCTL_GET_IDLUN 0x5382 /* Gets a struct vki_scsi_idlun */
36 +#define VKI_SCSI_IOCTL_PROBE_HOST 0x5385 /* Gets an arrary describing the SCSI host */
37 +#define VKI_SCSI_IOCTL_GET_BUS_NUMBER 0x5386 /* Get the bus number for a device */
38 +
39 +//----------------------------------------------------------------------
40 +// From linux-2.6.8.1/include/linux/fd.h
41 +//----------------------------------------------------------------------
42 +#define VKI_FDRESET 0x254 /* Takes an int by value */
43 +#define VKI_FDGETDRVTYP 0x20f /* Returns char floppy_drive_name[16] */
44 +typedef struct vki_floppy_drive_struct {
45 + unsigned long flags;
46 + unsigned long spinup_date;
47 + unsigned long select_date;
48 + unsigned long first_read_date;
49 + short probed_format;
50 + short track;
51 + short maxblock;
52 + short maxtrack;
53 + int generation;
54 + int keep_data;
55 + int fd_ref;
56 + int fd_device;
57 + unsigned long last_checked;
58 + char *dmabuf;
59 + int bufblocks;
60 +} vki_floppy_drive_struct_t;
61 +#define VKI_FDPOLLDRVSTAT 0x213 /* returns a struct floppy_drive_struct */
62 +typedef struct vki_floppy_struct {
63 + unsigned int size;
64 + unsigned int sect;
65 + unsigned int head;
66 + unsigned int track;
67 + unsigned int stretch;
68 + unsigned char gap;
69 + unsigned char rate;
70 + unsigned char spec1;
71 + unsigned char fmt_gap;
72 + const char * name;
73 +} vki_floppy_struct_t;
74 +#define VKI_FDGETPRM 0x204 /* returns a struct floppy_struct */
75 +
76 //----------------------------------------------------------------------
77 // From linux-2.6.8.1/include/linux/cdrom.h
78 //----------------------------------------------------------------------
79 @@ -1666,6 +1716,7 @@
80 (struct cdrom_tochdr) */
81 #define VKI_CDROMREADTOCENTRY 0x5306 /* Read TOC entry
82 (struct cdrom_tocentry) */
83 +#define VKI_CDROMEJECT 0x5309 /* Eject cdrom media */
84 #define VKI_CDROMSUBCHNL 0x530b /* Read subchannel data
85 (struct cdrom_subchnl) */
86 #define VKI_CDROMREADMODE2 0x530c /* Read CDROM mode 2 data (2336 Bytes)
87 --- a/coregrind/m_syswrap/syswrap-generic.c
88 +++ b/coregrind/m_syswrap/syswrap-generic.c
89 @@ -3288,6 +3288,33 @@
90 case VKI_SG_GET_SG_TABLESIZE: /* 0x227f */
91 PRE_MEM_WRITE( "ioctl(SG_GET_SG_TABLESIZE)", ARG3, sizeof(int) );
92 break;
93 + case VKI_SCSI_IOCTL_GET_IDLUN:
94 + PRE_MEM_WRITE( "ioctl(SCSI_IOCTL_GET_IDLUN)", ARG3, sizeof(vki_scsi_idlun_t) );
95 + break;
96 + case VKI_SCSI_IOCTL_PROBE_HOST:
97 + {
98 + int arraylen;
99 + char *array = (char*)ARG3;
100 + PRE_MEM_READ("ioctl(SCSI_IOCTL_PROBE_HOST)", ARG3, sizeof(char)*4 );
101 + arraylen = array[0] + (array[1]<<8) + (array[2]<<16) + (array[3]<<24);
102 + PRE_MEM_WRITE( "ioctl(SCSI_IOCTL_PROBE_HOST)", ARG3, sizeof(char)*arraylen );
103 + }
104 + break;
105 + case VKI_SCSI_IOCTL_GET_BUS_NUMBER:
106 + PRE_MEM_WRITE( "ioctl(SCSI_IOCTL_GET_BUS_NUMBER)", ARG3, sizeof(int) );
107 + break;
108 +
109 + case VKI_FDRESET:
110 + break;
111 + case VKI_FDGETDRVTYP:
112 + PRE_MEM_WRITE( "ioctl(FDGETDRVTYP)", ARG3, sizeof(char)*16 );
113 + break;
114 + case VKI_FDPOLLDRVSTAT:
115 + PRE_MEM_WRITE( "ioctl(FDPOLLDRVSTAT)", ARG3, sizeof(vki_floppy_drive_struct_t) );
116 + break;
117 + case VKI_FDGETPRM:
118 + PRE_MEM_WRITE( "ioctl(FDGETPRM)", ARG3, sizeof(vki_floppy_struct_t) );
119 + break;
120
121 case VKI_IIOCGETCPS:
122 PRE_MEM_WRITE( "ioctl(IIOCGETCPS)", ARG3,
123 @@ -3611,6 +3638,8 @@
124 case VKI_BLKROGET:
125 PRE_MEM_WRITE( "ioctl(BLKROGET)", ARG3, sizeof(int));
126 break;
127 + case VKI_BLKRRPART:
128 + break;
129 case VKI_BLKGETSIZE:
130 PRE_MEM_WRITE( "ioctl(BLKGETSIZE)", ARG3, sizeof(unsigned long));
131 break;
132 @@ -3619,6 +3648,8 @@
133 case VKI_BLKRAGET:
134 PRE_MEM_WRITE( "ioctl(BLKRAGET)", ARG3, sizeof(long));
135 break;
136 + case VKI_BLKFLSBUF:
137 + break;
138 case VKI_BLKFRASET:
139 break;
140 case VKI_BLKFRAGET:
141 @@ -3685,6 +3716,8 @@
142 PRE_MEM_WRITE( "ioctl(CDROMREADTOCENTRY)", ARG3,
143 sizeof(struct vki_cdrom_tocentry));
144 break;
145 + case VKI_CDROMEJECT:
146 + break;
147 case VKI_CDROMMULTISESSION: /* 0x5310 */
148 PRE_MEM_WRITE( "ioctl(CDROMMULTISESSION)", ARG3,
149 sizeof(struct vki_cdrom_multisession));
150 @@ -4274,6 +4307,28 @@
151 case VKI_SG_GET_SG_TABLESIZE:
152 POST_MEM_WRITE(ARG3, sizeof(int));
153 break;
154 + case VKI_SCSI_IOCTL_GET_IDLUN:
155 + POST_MEM_WRITE(ARG3, sizeof(vki_scsi_idlun_t));
156 + break;
157 + case VKI_SCSI_IOCTL_PROBE_HOST:
158 + if (RES > 0 && ARG3 )
159 + POST_MEM_WRITE(ARG3, sizeof(char)*RES);
160 + break;
161 + case VKI_SCSI_IOCTL_GET_BUS_NUMBER:
162 + POST_MEM_WRITE(ARG3, sizeof(int));
163 + break;
164 +
165 + case VKI_FDRESET:
166 + break;
167 + case VKI_FDGETDRVTYP:
168 + POST_MEM_WRITE( ARG3, sizeof(char)*16 );
169 + break;
170 + case VKI_FDPOLLDRVSTAT:
171 + POST_MEM_WRITE( ARG3, sizeof(vki_floppy_drive_struct_t) );
172 + break;
173 + case VKI_FDGETPRM:
174 + POST_MEM_WRITE( ARG3, sizeof(vki_floppy_struct_t) );
175 + break;
176
177 case VKI_IIOCGETCPS:
178 POST_MEM_WRITE( ARG3, VKI_ISDN_MAX_CHANNELS * 2 * sizeof(unsigned long) );
179 @@ -4492,6 +4547,8 @@
180 case VKI_BLKROGET:
181 POST_MEM_WRITE(ARG3, sizeof(int));
182 break;
183 + case VKI_BLKRRPART:
184 + break;
185 case VKI_BLKGETSIZE:
186 POST_MEM_WRITE(ARG3, sizeof(unsigned long));
187 break;
188 @@ -4500,6 +4557,8 @@
189 case VKI_BLKRAGET:
190 POST_MEM_WRITE(ARG3, sizeof(long));
191 break;
192 + case VKI_BLKFLSBUF:
193 + break;
194 case VKI_BLKFRASET:
195 break;
196 case VKI_BLKFRAGET:
197 @@ -4541,6 +4600,8 @@
198 case VKI_CDROMREADTOCENTRY:
199 POST_MEM_WRITE(ARG3, sizeof(struct vki_cdrom_tocentry));
200 break;
201 + case VKI_CDROMEJECT:
202 + break;
203 case VKI_CDROMMULTISESSION:
204 POST_MEM_WRITE(ARG3, sizeof(struct vki_cdrom_multisession));
205 break;