summaryrefslogtreecommitdiff
path: root/dvb-spec/valgrind-1.0pre3-dvb.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dvb-spec/valgrind-1.0pre3-dvb.patch')
-rw-r--r--dvb-spec/valgrind-1.0pre3-dvb.patch154
1 files changed, 154 insertions, 0 deletions
diff --git a/dvb-spec/valgrind-1.0pre3-dvb.patch b/dvb-spec/valgrind-1.0pre3-dvb.patch
new file mode 100644
index 000000000..6c61ceb91
--- /dev/null
+++ b/dvb-spec/valgrind-1.0pre3-dvb.patch
@@ -0,0 +1,154 @@
+diff -ur valgrind-1.0pre3.orig/vg_syscall_mem.c valgrind-1.0pre3/vg_syscall_mem.c
+--- valgrind-1.0pre3.orig/vg_syscall_mem.c Thu Jun 20 09:23:49 2002
++++ valgrind-1.0pre3/vg_syscall_mem.c Mon Jul 8 19:55:45 2002
+@@ -2038,6 +2038,136 @@
+ sizeof(struct cdrom_msf));
+ KERNEL_DO_SYSCALL(tid,res);
+ break;
++
++ /* DVB (Digital Video Broadcasting) related stuff
++ * http://www.linuxtv.org
++ */
++ case FE_GET_INFO:
++ must_be_writable(tst, "ioctl(FE_GET_INFO)", arg3,
++ sizeof(struct dvb_frontend_info));
++ KERNEL_DO_SYSCALL(tid,res);
++ if (!VG_(is_kerror)(res) && res == 0)
++ make_readable (arg3, sizeof(struct dvb_frontend_info));
++ break;
++ case FE_DISEQC_RESET_OVERLOAD:
++ KERNEL_DO_SYSCALL(tid,res);
++ break;
++ case FE_DISEQC_SEND_MASTER_CMD:
++ must_be_readable(tst, "ioctl(FE_DISEQC_SEND_MASTER_CMD)", arg3,
++ sizeof(struct dvb_diseqc_master_cmd));
++ KERNEL_DO_SYSCALL(tid,res);
++ break;
++ case FE_DISEQC_RECV_SLAVE_REPLY:
++ must_be_writable(tst, "ioctl(FE_DISEQC_RECV_SLAVE_REPLY)", arg3,
++ sizeof(struct dvb_diseqc_slave_reply));
++ KERNEL_DO_SYSCALL(tid,res);
++ if (!VG_(is_kerror)(res) && res == 0)
++ make_readable (arg3, sizeof(struct dvb_diseqc_slave_reply));
++ break;
++ case FE_DISEQC_SEND_BURST:
++ case FE_SET_TONE:
++ case FE_SET_VOLTAGE:
++ case FE_ENABLE_HIGH_LNB_VOLTAGE:
++ KERNEL_DO_SYSCALL(tid,res);
++ break;
++ case FE_READ_STATUS:
++ must_be_writable(tst, "ioctl(FE_READ_STATUS)", arg3,
++ sizeof(fe_status_t));
++ KERNEL_DO_SYSCALL(tid,res);
++ if (!VG_(is_kerror)(res) && res == 0)
++ make_readable (arg3, sizeof(fe_status_t));
++ break;
++ case FE_READ_BER:
++ must_be_writable(tst, "ioctl(FE_READ_BER)", arg3,
++ sizeof(uint32_t));
++ KERNEL_DO_SYSCALL(tid,res);
++ if (!VG_(is_kerror)(res) && res == 0)
++ make_readable (arg3, sizeof(uint32_t));
++ break;
++ case FE_READ_SIGNAL_STRENGTH:
++ must_be_writable(tst, "ioctl(FE_READ_SIGNAL_STRENGTH)", arg3,
++ sizeof(uint16_t));
++ KERNEL_DO_SYSCALL(tid,res);
++ if (!VG_(is_kerror)(res) && res == 0)
++ make_readable (arg3, sizeof(uint16_t));
++ break;
++ case FE_READ_SNR:
++ must_be_writable(tst, "ioctl(FE_READ_SNR)", arg3,
++ sizeof(uint16_t));
++ KERNEL_DO_SYSCALL(tid,res);
++ if (!VG_(is_kerror)(res) && res == 0)
++ make_readable (arg3, sizeof(uint16_t));
++ break;
++ case FE_READ_UNCORRECTED_BLOCKS:
++ must_be_writable(tst, "ioctl(FE_READ_UNCORRECTED_BLOCKS)", arg3,
++ sizeof(uint32_t));
++ KERNEL_DO_SYSCALL(tid,res);
++ if (!VG_(is_kerror)(res) && res == 0)
++ make_readable (arg3, sizeof(uint32_t));
++ break;
++ case FE_SET_FRONTEND:
++ must_be_readable(tst, "ioctl(FE_SET_FRONTEND)", arg3,
++ sizeof(struct dvb_frontend_parameters));
++ KERNEL_DO_SYSCALL(tid,res);
++ break;
++ case FE_GET_FRONTEND:
++ must_be_writable(tst, "ioctl(FE_GET_FRONTEND)", arg3,
++ sizeof(struct dvb_frontend_parameters));
++ KERNEL_DO_SYSCALL(tid,res);
++ if (!VG_(is_kerror)(res) && res == 0)
++ make_readable (arg3, sizeof(struct dvb_frontend_parameters));
++ break;
++ case FE_GET_EVENT:
++ must_be_writable(tst, "ioctl(FE_GET_EVENT)", arg3,
++ sizeof(struct dvb_frontend_event));
++ KERNEL_DO_SYSCALL(tid,res);
++ if (!VG_(is_kerror)(res) && res == 0)
++ make_readable (arg3, sizeof(struct dvb_frontend_event));
++ break;
++ case DMX_START:
++ case DMX_STOP:
++ KERNEL_DO_SYSCALL(tid,res);
++ break;
++ case DMX_SET_FILTER:
++ must_be_readable(tst, "ioctl(DMX_SET_FILTER)", arg3,
++ sizeof(struct dmx_sct_filter_params));
++ KERNEL_DO_SYSCALL(tid,res);
++ break;
++ case DMX_SET_PES_FILTER:
++ must_be_readable(tst, "ioctl(DMX_SET_PES_FILTER)", arg3,
++ sizeof(struct dmx_pes_filter_params));
++ KERNEL_DO_SYSCALL(tid,res);
++ break;
++ case DMX_SET_BUFFER_SIZE:
++ KERNEL_DO_SYSCALL(tid,res);
++ break;
++ case DMX_GET_EVENT:
++ must_be_writable(tst, "ioctl(DMX_GET_EVENT)", arg3,
++ sizeof(struct dmx_event));
++ KERNEL_DO_SYSCALL(tid,res);
++ if (!VG_(is_kerror)(res) && res == 0)
++ make_readable (arg3, sizeof(struct dmx_event));
++ break;
++ case DMX_GET_PES_PIDS:
++ must_be_writable(tst, "ioctl(DMX_GET_PES_PIDS)", arg3,
++ 5*sizeof(dvb_pid_t));
++ KERNEL_DO_SYSCALL(tid,res);
++ if (!VG_(is_kerror)(res) && res == 0)
++ make_readable (arg3, 5*sizeof(dvb_pid_t));
++ break;
++ case DMX_GET_CAPS:
++ must_be_writable(tst, "ioctl(DMX_GET_CAPS)", arg3,
++ sizeof(dmx_caps_t));
++ KERNEL_DO_SYSCALL(tid,res);
++ if (!VG_(is_kerror)(res) && res == 0)
++ make_readable (arg3, sizeof(dmx_caps_t));
++ break;
++ case DMX_SET_SOURCE:
++ must_be_readable(tst, "ioctl(DMX_SET_SOURCE)", arg3,
++ sizeof(dmx_source_t));
++ KERNEL_DO_SYSCALL(tid,res);
++ break;
++
+ /* We don't have any specific information on it, so
+ try to do something reasonable based on direction and
+ size bits. The encoding scheme is described in
+diff -ur valgrind-1.0pre3.orig/vg_unsafe.h valgrind-1.0pre3/vg_unsafe.h
+--- valgrind-1.0pre3.orig/vg_unsafe.h Thu Jun 13 18:02:37 2002
++++ valgrind-1.0pre3/vg_unsafe.h Mon Jul 8 19:56:20 2002
+@@ -85,6 +85,10 @@
+
+ #include <sys/poll.h>
+
++#include <linux/dvb/frontend.h>
++#include <linux/dvb/dmx.h>
++#include <linux/dvb/audio.h>
++#include <linux/dvb/video.h>
+
+ /*--------------------------------------------------------------------*/
+ /*--- end vg_unsafe.h ---*/