Add valgrind
[packages.git] / utils / valgrind / patches / 001-uclibc_syscall.patch
1 --- valgrind/coregrind/m_syswrap/syswrap-amd64-linux.c.orig     2006-08-02 16:51:51.000000000 -0600
2 +++ valgrind/coregrind/m_syswrap/syswrap-amd64-linux.c  2006-08-02 16:53:19.000000000 -0600
3 @@ -1124,7 +1124,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 --- valgrind/include/vki-linux.h.orig   2006-08-02 18:22:21.000000000 -0600
13 +++ valgrind/include/vki-linux.h        2006-08-02 18:38:02.000000000 -0600
14 @@ -1556,7 +1556,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 @@ -1631,6 +1633,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 @@ -1640,6 +1690,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 --- valgrind/coregrind/m_syswrap/syswrap-generic.c.orig 2006-08-02 18:22:13.000000000 -0600
88 +++ valgrind/coregrind/m_syswrap/syswrap-generic.c      2006-08-02 18:43:49.000000000 -0600
89 @@ -3227,6 +3227,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 @@ -3550,6 +3578,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 @@ -3558,6 +3588,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 @@ -3624,6 +3656,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 @@ -4042,6 +4076,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 @@ -4260,6 +4317,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 @@ -4268,6 +4327,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 @@ -4309,6 +4370,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;