Sophie

Sophie

distrib > Arklinux > devel > x86_64 > media > main-src > by-pkgid > 89766837a1ffbc7d0fbc829991268d17 > files > 8

strace-4.5.20-1ark.src.rpm

--- strace-4.5.20/dvb.c.dvb~	2010-05-04 11:03:29.735795276 +0200
+++ strace-4.5.20/dvb.c	2010-05-04 11:03:29.735795276 +0200
@@ -0,0 +1,231 @@
+/*
+ * Copyright (c) 2006 Bernhard Rosenkraenzer <bero@arklinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ *	$Id: sock.c,v 1.11 2005/06/01 19:02:37 roland Exp $
+ */
+
+#include "defs.h"
+
+#ifdef LINUX
+#include <linux/dvb/dmx.h>
+#include <linux/dvb/frontend.h>
+#include <sys/ioctl.h>
+
+static const struct xlat dmxout[] = {
+	{ DMX_OUT_DECODER,	"DMX_OUT_DECODER"	},
+	{ DMX_OUT_TAP,		"DMX_OUT_TAP"		},
+	{ DMX_OUT_TS_TAP,	"DMX_OUT_TS_TAP"	},
+	{ 0,			NULL			}
+};
+
+static const struct xlat dmxin[] = {
+	{ DMX_IN_FRONTEND,	"DMX_IN_FRONTEND"	},
+	{ DMX_IN_DVR,		"DMX_IN_DVR"		},
+	{ 0,			NULL			}
+};
+
+static const struct xlat dmxpestype[] = {
+	{ DMX_PES_AUDIO0,	"DMX_PES_AUDIO0"	},
+	{ DMX_PES_VIDEO0,	"DMX_PES_VIDEO0"	},
+	{ DMX_PES_TELETEXT0,	"DMX_PES_TELETEXT0"	},
+	{ DMX_PES_SUBTITLE0,	"DMX_PES_SUBTITLE0"	},
+	{ DMX_PES_PCR0,		"DMX_PES_PCR0"		},
+
+	{ DMX_PES_AUDIO1,	"DMX_PES_AUDIO1"	},
+	{ DMX_PES_VIDEO1,	"DMX_PES_VIDEO1"	},
+	{ DMX_PES_TELETEXT1,	"DMX_PES_TELETEXT1"	},
+	{ DMX_PES_SUBTITLE1,	"DMX_PES_SUBTITLE1"	},
+	{ DMX_PES_PCR1,		"DMX_PES_PCR1"		},
+
+	{ DMX_PES_AUDIO2,	"DMX_PES_AUDIO2"	},
+	{ DMX_PES_VIDEO2,	"DMX_PES_VIDEO2"	},
+	{ DMX_PES_TELETEXT2,	"DMX_PES_TELETEXT2"	},
+	{ DMX_PES_SUBTITLE2,	"DMX_PES_SUBTITLE2"	},
+	{ DMX_PES_PCR2,		"DMX_PES_PCR2"		},
+
+	{ DMX_PES_AUDIO3,	"DMX_PES_AUDIO3"	},
+	{ DMX_PES_VIDEO3,	"DMX_PES_VIDEO3"	},
+	{ DMX_PES_TELETEXT3,	"DMX_PES_TELETEXT3"	},
+	{ DMX_PES_SUBTITLE3,	"DMX_PES_SUBTITLE3"	},
+	{ DMX_PES_PCR3,		"DMX_PES_PCR3"		},
+
+	{ DMX_PES_OTHER,	"DMX_PES_OTHER"		},
+	{ 0,			NULL			}
+};
+
+static const struct xlat dmxfilterflags[] = {
+	{ DMX_CHECK_CRC,	"DMX_CHECK_CRC"		},
+	{ DMX_ONESHOT,		"DMX_ONESHOT"		},
+	{ DMX_IMMEDIATE_START,	"DMX_IMMEDIATE_START"	},
+	{ DMX_KERNEL_CLIENT,	"DMX_KERNEL_CLIENT"	},
+	{ 0,			NULL			}
+};
+
+static const struct xlat dmxsource[] = {
+	{ DMX_SOURCE_FRONT0,	"DMX_SOURCE_FRONT0"	},
+	{ DMX_SOURCE_FRONT1,	"DMX_SOURCE_FRONT1"	},
+	{ DMX_SOURCE_FRONT2,	"DMX_SOURCE_FRONT2"	},
+	{ DMX_SOURCE_FRONT3,	"DMX_SOURCE_FRONT3"	},
+
+	{ DMX_SOURCE_DVR0,	"DMX_SOURCE_DVR0"	},
+	{ DMX_SOURCE_DVR1,	"DMX_SOURCE_DVR1"	},
+	{ DMX_SOURCE_DVR2,	"DMX_SOURCE_DVR2"	},
+	{ DMX_SOURCE_DVR3,	"DMX_SOURCE_DVR3"	},
+	{ 0,			NULL			}
+};
+
+static const struct xlat fetypes[] = {
+	{ FE_QPSK,		"FE_QPSK"		},
+	{ FE_QAM,		"FE_QAM"		},
+	{ FE_OFDM,		"FE_OFDM"		},
+	{ FE_ATSC,		"FE_ATSC"		},
+	{ 0,			NULL			}
+};
+
+static const struct xlat festatus[] = {
+	{ FE_HAS_SIGNAL,	"FE_HAS_SIGNAL"		},
+	{ FE_HAS_CARRIER,	"FE_HAS_CARRIER"	},
+	{ FE_HAS_VITERBI,	"FE_HAS_VITERBI"	},
+	{ FE_HAS_SYNC,		"FE_HAS_SYNC"		},
+	{ FE_HAS_LOCK,		"FE_HAS_LOCK"		},
+	{ FE_TIMEDOUT,		"FE_TIMEDOUT"		},
+	{ FE_REINIT,		"FE_REINIT"		},
+	{ 0,			NULL			}
+};
+
+static const struct xlat fecaps[] = {
+	{ FE_IS_STUPID,		"FE_IS_STUPID"		},
+	{ FE_CAN_INVERSION_AUTO,"FE_CAN_INVERSION_AUTO"	},
+	{ FE_CAN_FEC_1_2,	"FE_CAN_FEC_1_2"	},
+	{ FE_CAN_FEC_2_3,	"FE_CAN_FEC_2_3"	},
+	{ FE_CAN_FEC_3_4,	"FE_CAN_FEC_3_4"	},
+	{ FE_CAN_FEC_4_5,	"FE_CAN_FEC_4_5"	},
+	{ FE_CAN_FEC_5_6,	"FE_CAN_FEC_5_6"	},
+	{ FE_CAN_FEC_6_7,	"FE_CAN_FEC_6_7"	},
+	{ FE_CAN_FEC_7_8,	"FE_CAN_FEC_7_8"	},
+	{ FE_CAN_FEC_8_9,	"FE_CAN_FEC_8_9"	},
+	{ FE_CAN_FEC_AUTO,	"FE_CAN_FEC_AUTO"	},
+	{ FE_CAN_QPSK,		"FE_CAN_QPSK"		},
+	{ FE_CAN_QAM_16,	"FE_CAN_QAM_16"		},
+	{ FE_CAN_QAM_32,	"FE_CAN_QAM_32"		},
+	{ FE_CAN_QAM_64,	"FE_CAN_QAM_64"		},
+	{ FE_CAN_QAM_128,	"FE_CAN_QAM_128"	},
+	{ FE_CAN_QAM_256,	"FE_CAN_QAM_256"	},
+	{ FE_CAN_QAM_AUTO,	"FE_CAN_QAM_AUTO"	},
+	{ FE_CAN_TRANSMISSION_MODE_AUTO,
+				"FE_CAN_TRANSMISSION_MODE_AUTO"	},
+	{ FE_CAN_BANDWIDTH_AUTO,"FE_CAN_BANDWIDTH_AUTO"	},
+	{ FE_CAN_GUARD_INTERVAL_AUTO,
+				"FE_CAN_GUARD_INTERVAL_AUTO"	},
+	{ FE_CAN_HIERARCHY_AUTO,"FE_CAN_HIERARCHY_AUTO"	},
+	{ FE_CAN_8VSB,		"FE_CAN_8VSB"		},
+	{ FE_CAN_16VSB,		"FE_CAN_16VSB"		},
+	{ FE_NEEDS_BENDING,	"FE_NEEDS_BENDING"	},
+	{ FE_CAN_RECOVER,	"FE_CAN_RECOVER"	},
+	{ FE_CAN_MUTE_TS,	"FE_CAN_MUTE_TS"	},
+	{ 0,			NULL			}
+};
+
+int
+dvb_ioctl(tcp, code, arg)
+struct tcb *tcp;
+long code, arg;
+{
+	const char *str = NULL;
+	unsigned char *bytes;
+
+	if (entering(tcp)) {
+		return 0;
+	}
+
+	switch (code) {
+	case DMX_START:
+		return 0;
+
+	case DMX_STOP:
+		return 0;
+
+	case DMX_SET_FILTER: {
+		struct dmx_sct_filter_params fp;
+		int i;
+		umove(tcp, arg, &fp);
+		tprintf("{ pid=%04x, filter={ filter={", fp.pid);
+		for(i=0; i<DMX_FILTER_SIZE; i++) {
+			tprintf("%u", fp.filter.filter[i]);
+			if(i<DMX_FILTER_SIZE-1)
+				tprintf(", ");
+		}
+		tprintf("}, mask={");
+		for(i=0; i<DMX_FILTER_SIZE; i++) {
+			tprintf("%u", fp.filter.mask[i]);
+			if(i<DMX_FILTER_SIZE-1)
+				tprintf(", ");
+		}
+		tprintf("}, mode={");
+		for(i=0; i<DMX_FILTER_SIZE; i++) {
+			tprintf("%u", fp.filter.mode[i]);
+			if(i<DMX_FILTER_SIZE-1)
+				tprintf(", ");
+		}
+		tprintf("} }, timeout=%d, flags=%d }", fp.timeout, fp.flags);
+		return 1;
+	}
+
+	case FE_GET_INFO: {
+		struct dvb_frontend_info fi;
+		umove(tcp, arg, &fi);
+		tprintf(", { name=\"%s\", type=", fi.name);
+		printxval(fetypes, fi.type, "FE_???");
+		tprintf(", frequency_min=%u, frequency_max=%u, frequency_stepsize=%u, frequency_tolerance=%u, symbol_rate_min=%u, symbol_rate_max=%u, symbol_rate_tolerance=%u, caps=", fi.frequency_min, fi.frequency_max, fi.frequency_stepsize, fi.frequency_tolerance, fi.symbol_rate_min, fi.symbol_rate_max, fi.symbol_rate_tolerance);
+		printflags(fecaps, fi.caps, "FE_CAN_???");
+		tprintf(" }");
+		return 1;
+	}
+
+	case FE_SET_FRONTEND: {
+		struct dvb_frontend_parameters fp;
+		umove(tcp, arg, &fp);
+		tprintf(", { frequency=%d, inversion=%x", fp.frequency, fp.inversion);
+		// FIXME figure out if this is qpsk, qam, ofdm or vsb...
+		// for now we hardcode qpsk
+		tprintf(", symbol rate=%d, fec_inner: %x", fp.u.qpsk.symbol_rate, fp.u.qpsk.fec_inner);
+		tprintf("}");
+		return 1;
+	}
+
+	case FE_READ_STATUS: {
+		fe_status_t fs;
+		umove(tcp, arg, &fs);
+		tprintf(", ");
+		printflags(festatus, fs, "FE_STATUS???");
+		return 1;
+	}
+
+	default:
+		return 0;
+	}
+}
+#endif
--- strace-4.5.20/ioctl.c.dvb~	2007-06-30 13:36:46.000000000 +0200
+++ strace-4.5.20/ioctl.c	2010-05-04 11:03:29.735795276 +0200
@@ -155,6 +155,10 @@ long code, arg;
 	case 0x22:
 		return scsi_ioctl(tcp, code, arg);
 #endif
+#ifdef LINUX
+	case 'o':
+		return dvb_ioctl(tcp, code, arg);
+#endif
 	default:
 		break;
 	}
--- strace-4.5.20/linux/ioctlent.sh.dvb~	2010-04-07 13:34:06.000000000 +0200
+++ strace-4.5.20/linux/ioctlent.sh	2010-05-04 11:04:33.991830275 +0200
@@ -81,7 +81,7 @@ if [ -e $dir/Kbuild ]; then
 	)
 else
 	# older kernel so just assume some headers
-	files="linux/* $asm/* asm-generic/* scsi/* sound/*"
+	files="linux/* linux/*/* $asm/* asm-generic/* mtd/* rdma/* scsi/* sound/* video/*"
 fi
 
 # Build the list of all ioctls
--- strace-4.5.20/Makefile.am.dvb~	2010-04-07 12:17:27.000000000 +0200
+++ strace-4.5.20/Makefile.am	2010-05-04 11:03:29.735795276 +0200
@@ -15,7 +15,7 @@ INCLUDES = -I$(srcdir)/$(OS)/$(ARCH) -I$
 strace_SOURCES = strace.c syscall.c count.c util.c desc.c file.c ipc.c \
 		 io.c ioctl.c mem.c net.c process.c bjm.c quota.c \
 		 resource.c signal.c sock.c system.c term.c time.c \
-		 proc.c scsi.c stream.c
+		 proc.c scsi.c stream.c dvb.c
 noinst_HEADERS = defs.h
 
 EXTRA_DIST = $(man_MANS) errnoent.sh signalent.sh syscallent.sh ioctlsort.c \