+++ /dev/null
-DESCRIPTION="AiO screen grabber for dreambox stbs"
-LICENSE = "GPL"
-
-PR = "r0"
-PV = "0.8+cvs${SRCDATE}"
-SRCDATE = "20081212"
-SRC_URI="cvs://anonymous@cvs.schwerkraft.elitedvb.net/cvsroot/aio-grab;module=aio-grab;method=pserver"
-
-S = "${WORKDIR}/aio-grab"
-
-inherit autotools pkgconfig
+++ /dev/null
-#
-# $Id: auto.master,v 1.4 2005/01/04 14:36:54 raven Exp $
-#
-# Sample auto.master file
-# This is an automounter map and it has the following format
-# key [ -mount-options-separated-by-comma ] location
-# For details of the format look at autofs(5).
-#/smb /etc/auto.smb
-#/net /etc/auto.net
-/autofs /etc/auto.hotplug
-/media/net /etc/auto.network
+++ /dev/null
-# automatically generated by enigma 2
-# do NOT change manually!
+++ /dev/null
-#!/bin/sh
-#
-# $Id: rc.autofs.in,v 1.58 2005/04/11 11:30:54 raven Exp $
-#
-# rc file for automount using a Sun-style "master map".
-# We first look for a local /etc/auto.master, then a YP
-# map with that name
-#
-# On most distributions, this file should be called:
-# /etc/rc.d/init.d/autofs or /etc/init.d/autofs
-#
-
-# For Redhat-ish systems
-#
-# chkconfig: 345 28 72
-# processname: /usr/sbin/automount
-# config: /etc/auto.master
-# description: Automounts filesystems on demand
-
-# This is used in the Debian distribution to determine the proper
-# location for the S- and K-links to this init file.
-# The following value is extracted by debstd to figure out how to
-# generate the postinst script. Edit the field to change the way the
-# script is registered through update-rc.d (see the manpage for
-# update-rc.d!)
-#
-FLAGS="defaults 21"
-
-#
-# Location of the automount daemon and the init directory
-#
-DAEMON=/usr/sbin/automount
-prog=`basename $DAEMON`
-initdir=/etc/init.d
-
-test -e $DAEMON || exit 0
-
-#
-# Determine which kind of configuration we're using
-#
-system=debian
-
-
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-export PATH
-
-#
-# We can add local options here
-# e.g. localoptions='rsize=8192,wsize=8192'
-#
-localoptions=''
-
-daemonoptions='--ghost '
-
-#
-# load custom settings
-#
-TIMEOUT=1
-DISABLE_DIRECT=1
-DAEMON_EXIT_WAIT=20
-
-daemonoptions="$daemonoptions --timeout=$TIMEOUT"
-
-
-#
-# Check for all maps that are to be loaded
-#
-getschemes()
-{
- SOURCES=`grep ^automount: /etc/nsswitch.conf | \
- sed -e 's/^.*://' -e 's/\[.*\]/ /g'`
-
- if [ `echo $SOURCES | awk '{print NF}'` -gt 0 ]
- then
- echo ${SOURCES}
- else
- echo files
- fi
-}
-
-catnismap()
-{
- if [ -z "$1" ] ; then
- map="auto_master"
- else
- map="$1"
- fi
- /usr/bin/ypcat -k "$map" 2> /dev/null | sed -e '/^#/d' -e '/^$/d'
-}
-
-getfilemounts()
-{
- if [ -f /etc/auto.master ] ; then
- cat /etc/auto.master | awk '{print $0}' | sed -e '/^#/d' -e '/^$/d' | (
- while read auto_master_in
- do
- if [ "`echo $auto_master_in | grep '^+'`" = "" ]; then
- echo $auto_master_in
- else
- for nismap in `cat /etc/auto.master | grep '^\+' |
- sed -e '/^#/d' -e '/^$/d'`; do
- catnismap `echo "$nismap" | sed -e 's/^\+//'`
- done
- fi
- done
- )
- fi
-}
-
-getnismounts()
-{
- YPMAP=`catnismap auto.master`
- if [ -z "$YPMAP" ]; then
- catnismap
- else
- catnismap auto.master
- fi
-}
-
-getldapmounts()
-{
- if [ -x /usr/lib/autofs/autofs-ldap-auto-master ]; then
- /usr/lib/autofs/autofs-ldap-auto-master 2> /dev/null
- fi
-}
-
-getrawmounts()
-{
- for scheme in `getschemes` ; do
- case "$scheme" in
- files)
- if [ -z "$filescheme" ] ; then
- getfilemounts
- filescheme=1
- export filescheme
- fi
- ;;
- nis)
- if [ -z "$nisscheme" ] ; then
- getnismounts
- nisscheme=1
- export nisscheme
- fi
- ;;
- ldap*)
- if [ -z "$ldapscheme" ] ; then
- getldapmounts
- ldapscheme=1
- export ldapscheme
- fi
- ;;
- esac
- done
-}
-
-
-#
-# This function will build a list of automount commands to execute in
-# order to activate all the mount points. It is used to figure out
-# the difference of automount points in case of a reload
-#
-getmounts()
-{
- local LC_ALL=C
- export LC_ALL
- knownmaps=" "
- getrawmounts | (
- while read dir map options
- do
- # These checks screen out duplicates and skip over directories
- # where the map is '-'.
- # We can't do empty or direct host maps, so don't bother trying.
-
- # Strip trailing slashes from the dir line if it exists to aid
- # in checking for duplicate maps
- dir=`echo "$dir" | sed -e "s/\/*$//"`
-
- if [ ! -z "$map" -a "$map" = "-hosts" ] ; then
- continue
- fi
-
- if [ $DISABLE_DIRECT -eq 1 \
- -a x`echo $dir | grep -E "^/-"` != 'x' ]
- then
- continue
- fi
-
- # Do not include a map if it is a duplicate, maps on top of
- # another map or another map, maps on top of it.
- for knownmap in $knownmaps
- do
- if [ "`echo $dir/ | grep ^$knownmap`" != "" \
- -o "`echo $knownmap | grep ^$dir/`" != "" \]
- then
- continue 2
- fi
- done
-
- if [ ! -z "$dir" -a ! -z "$map" \
- -a x`echo "$map" | cut -c1` != 'x-' ]
- then
- # If the options include a -t or --timeout, a -g or --ghost,
- # a -v or --verbose or a -d or --debug paramter, then pull
- # those particular options out.
- : echo DAEMONOPTIONS OPTIONS $daemonoptions $options
- startupoptions=
- if echo "$options" | grep -qE -- '\B-(t\b|-timeout\b=)' ;
- then
- startupoptions="--timeout=$(echo $options |\
- sed 's/.*-\(t[^0-9]*\|-timeout\)[ \t=]*\([0-9][0-9]*\).*$/\2/g')"
- elif echo "$daemonoptions" | grep -q -- '-t' ;
- then
- # It's okay to be sloppy with DAEMONOPTIONS as there is no
- # possibility of conflicting with mount or map options.
- startupoptions="--timeout=$(echo $daemonoptions | \
- sed 's/.*--*t\(imeout\)*[ \t=]*\([0-9][0-9]*\).*$/\2/g')"
- fi
-
- # Check for the ghost option
- if echo "$daemonoptions $options" | grep -qE -- '\B-(g\b|-ghost\b)' ;
- then
- startupoptions="$startupoptions --ghost"
- fi
- # Dont even deal with conflicts between --ghost and [no]browse
- # Its just insane to configure things like that.
- if echo "$options" | grep -qE -- '\B-browse\b' ;
- then
- startupoptions="$startupoptions --ghost"
- fi
- # Check for verbose
- if echo "$daemonoptions $options" | \
- grep -qE -- '\B-(v\b|-verbose\b)' ;
- then
- startupoptions="$startupoptions --verbose"
- fi
-
- # Check for debug
- if echo "$daemonoptions $options" | \
- grep -qE -- '\B-(d\b|-debug\b)' ;
- then
- startupoptions="$startupoptions --debug"
- fi
-
- # Other option flags are intended for maps.
- mapoptions="$(echo "$daemonoptions $options" |\
- sed 's/-\(t[^0-9]*\|-timeout\)[ \t=]*\([0-9][0-9]*\)//g' |
- sed 's/-\(g\b\|-ghost\b\)//g' |
- sed 's/-\(v\b\|-verbose\b\)//g' |
- sed 's/-\(d\b\|-debug\b\)//g' |
- sed 's/-\b\(no\)\?browse\b//g')"
-
- # Break up the maptype and map, if the map type is specified
- maptype=`echo $map | cut -f1 -d:`
- # Handle degenerate map specifiers
- if [ "$maptype" = "$map" ] ; then
- if [ "$map" = "hesiod" -o "$map" = "userhome" ] ; then
- maptype=$map
- map=
- elif [ "$map" = "multi" ] ; then
- maptype=$map
- map=
-# elif echo "$map" | grep -q '^!'; then
-# map=`echo "$map"| sed -e 's/^!//g'`
- elif `echo $map | grep -q "^/"` && [ -x "$map" ]; then
- maptype=file
- elif [ -x "/etc/$map" ]; then
- maptype=program
- map=`echo /etc/$map | sed 's^//^/^g'`
- elif `echo $map | grep -q "^/"` && [ -f "$map" ]; then
- maptype=file
- elif [ -f "/etc/$map" ]; then
- maptype=file
- map=`echo /etc/$map | sed 's^//^/^g'`
- else
- maptype=yp
- if [ "$UNDERSCORETODOT" = "1" ] ; then
- map=`basename $map | sed -e s/^auto_home/auto.home/ -e s/^auto_mnt/auto.mnt/`
- else
- map=`basename $map | sed 's^//^/^g'`
- fi
- fi
- fi
- map=`echo $map | cut -f2- -d:`
-
- : echo STARTUPOPTIONS $startupoptions
- : echo DIR $dir
- : echo MAPTYPE $maptype
- : echo MAP $map
- : echo MAPOPTIONS $mapoptions
- : echo LOCALOPTIONS $localoptions
-
- NEWOPTIONS=""
- for m in $mapoptions
- do
- if [ x"$m" = x"--" ]; then
- NEWOPTIONS="$NEWOPTIONS $localoptions --"
- else
- NEWOPTIONS="$NEWOPTIONS $m"
- fi
- done
- mapoptions=$NEWOPTIONS
-
- echo "$DAEMON $startupoptions $dir $maptype $map $mapoptions $localoptions" | sed -e 's/ / /g' -e 's/ */ /g'
-
- : echo ------------------------
- knownmaps=" $dir/ $knownmaps"
- fi
- done
- )
-}
-
-#
-# Status lister.
-#
-status()
-{
- echo -e $"Configured Mount Points:\n------------------------"
- getmounts
- echo ""
- echo -e $"Active Mount Points:\n--------------------"
- ps axwww|grep "[0-9]:[0-9][0-9] $DAEMON " | (
- while read pid tt stat time command; do echo $command; done
- )
-}
-
-get_command_from_pid()
-{
- ps ax | grep "[0-9]:[0-9][0-9] $DAEMON " | (
- while read pid tt stat time command; do
- if [ "$pid" = "$1" ] ; then
- echo `echo "$command" | \
- sed 's/--pid-file.*\.pid/ /'`
- return 0
- fi
- done
- )
- return 0
-}
-
-# return true if at least one pid is alive
-alive()
-{
- if [ -z "$*" ]; then
- return 1
- fi
- for i in $*; do
- if kill -0 $i 2> /dev/null; then
- return 0
- fi
- done
-
- return 1
-}
-
-#
-# Find pids of process group leaders
-#
-get_pgrp_pids()
-{
- ps -eo pid,pgrp,cmd|grep $DAEMON|\
- awk '{print $1,$2}'|\
- while read pid pgrp
- do
- if [ $pid -eq $pgrp ]
- then
- echo $pid
- fi
- done
-}
-
-#
-# Signal each automount process group leader
-#
-signal_automounts()
-{
- RETVAL=0
- pgrp_pids=`get_pgrp_pids`
- for pid in $pgrp_pids
- do
- kill -USR2 $pid 2 > /dev/null
- count=0
- while ps ax|grep -v grep|grep $pid >/dev/null
- do
- sleep 1
- count=$(expr $count + 1)
- if [ $count -gt $DAEMON_EXIT_WAIT ]; then
- break;
- fi
- done
- done
-
- if [ -n "`/sbin/pidof $DAEMON`" ] ; then
- RETVAL=1
- fi
-
- return $RETVAL
-}
-
-umount_loopback()
-{
- loops=`LC_ALL=C awk '!/^#/ && $1 ~ /^\/dev\/loop/ && $2 != "/" {print $2}' /proc/mounts`
- automounts=`LC_ALL=C awk '!/^#/ && $1 ~ /^automount/ {print $2}' /proc/mounts`
-
- for l in $loops
- do
- # If a loop device is mounted into a subdir of the automount point,
- # umount it here.
- for a in $automounts
- do
- match=`echo $l | grep -E "^$a[\$|/]" || true`
- if [ -n "$match" ]; then
- echo ""
- echo -n $"Unmounting loopback filesystem $match: "
- loopdev=`LC_ALL=C grep $l /proc/mounts | awk '{print $1}'`
- umount -d $match
- if [ $? -eq 0 ]; then
- echo "done"
- else
- echo "failed ($?)"
- fi
- fi
- done
- done
-
- # If the loop device file exists under the automount point, umount
- # it here.
- loopmnts=`LC_ALL=C awk '!/^#/ && $1 ~ /^\/dev\/loop/ && $2 != "/" {print $1}' /proc/mounts`
- for l in $loopmnts
- do
- loopmnt=`losetup $l | awk -F\( '{print $2}' | awk -F\) '{print $1}'`
- for a in $automounts
- do
- match=`echo $loopmnt | grep -E "^$a[\$|/]" || true`
- if [ -n "$match" ]; then
- echo ""
- echo -n $"Unmounting loopback filesystem $match: "
- umount -d $match
- if [ $? -eq 0 ]; then
- echo "done"
- else
- echo "failed ($?)"
- fi
- fi
- done
- done
-}
-
-stop() {
- echo -n $"Stopping $prog: "
- count=0
- while [ -n "`pidof $DAEMON`" -a $count -lt 15 ] ; do
- killall -TERM $prog >& /dev/null
- RETVAL=$?
- [ $RETVAL = 0 -a -z "`pidof $DAEMON`" ] || sleep 3
- count=`expr $count + 1`
- done
- if [ -n "`pidof $DAEMON`" ] ; then
- echo "done."
- else
- echo "failed."
- fi
- return $RETVAL
-}
-
-
-
-case "$1" in
-start)
- echo -n 'Starting automounter:'
-
- # make sure autofs4 is loaded
- if ! grep -q autofs /proc/filesystems
- then
- # autofs filesystem support not loaded
- echo -n ' loading autofs4 kernel module,'
- modprobe autofs4 || true
- elif ([ -f /proc/modules ] && lsmod) | grep -q autofs[^4]; then
- # wrong autofs filesystem module loaded
- echo
- echo "WARNING: autofs kernel module is loaded, autofs4 needed"
- echo " for correct behaviour. You might experience mount failures."
- fi
-
- # Check that maps exist
- if [ -z "$(getrawmounts)" ]
- then
- echo " no automount maps defined."
- exit 0
- fi
-
- # ensure pid file directory exists
- if [ ! -e /var/run/autofs ]
- then
- mkdir /var/run/autofs
- fi
-
- getmounts | while read cmd rest
- do
- mnt=`echo $rest | sed 's/^.* \(\/[^ ]*\) [A-Za-z].*$/\1/'`
- pidfile=/var/run/autofs/`echo $mnt | sed 's,/,_,g'`.pid
-
- start-stop-daemon --start --pidfile $pidfile --quiet \
- --exec $DAEMON -- --pid-file=$pidfile $rest
-
- ret=$?
-
- if [ $ret -ne 0 ]
- then
- echo
- echo " failed to start automount point $mnt"
- fi
- done
-
- echo " done."
- ;;
-stop)
- echo -n 'Stopping automounter:'
-
- umount_loopback
-
- any=0
- for file in `ls /var/run/autofs/*.pid 2>/dev/null`
- do
- if [ -e "$file" ]
- then
- any=1
- pid=`head -n 1 $file`
- mnt=`ps -wwo 'cmd=' $pid | sed -e \
- 's,.* --pid-file=/var/run/autofs/\([^ ]*\)\.pid.*,\1,; s,_,/,g'`
- dname=`basename $DAEMON`
-
- start-stop-daemon --stop --quiet --pidfile $file --name $dname
-
- ret=$?
- case $ret in
- 0)
-# echo -n " $mnt"
- rm -f $file
- ;;
- 1)
- echo -n -e "\n No process for automount $mnt"
- rm -f $file
- ;;
- 2)
- echo -n -e "\n Couldn't stop automount for $mnt"
- ;;
- *)
- echo -n -e \
- "\n Strange start-stop-daemon exit status: $ret"
- ;;
- esac
- fi
- done
-
- echo " done."
- ;;
-reload)
- echo "Reloading automounter: checking for changes ... "
-
- TMP1=`mktemp autofs.XXXXXX`
- TMP2=`mktemp autofs.XXXXXX`
-
- getmounts >$TMP1
-
- for i in `ls /var/run/autofs/*.pid 2>/dev/null`
- do
- pid=`head -n 1 $i 2>/dev/null`
- [ "$pid" = "" ] && continue
-
- cmd=`get_command_from_pid $pid`
- echo $cmd >>$TMP2
-
- mnt=`ps -wwo 'cmd=' $pid | sed -e \
- 's,.* --pid-file=/var/run/autofs/\([^ ]*\)\.pid.*,\1,; s,_,/,g'`
-
- if ! grep -q "$cmd" $TMP1; then
- echo "Stopping automounter for: $mnt"
- kill -USR2 $pid 2> /dev/null
- else
- echo "Reloading automounter map for: $mnt"
- kill -HUP $pid 2> /dev/null
- fi
- done
-
- cat $TMP1 | (while read x; do
- if ! grep -q "^$x" $TMP2; then
- echo $x | while read cmd rest; do
-
- mnt=`echo $rest | sed 's/^.* \(\/[^ ]*\) [A-Za-z].*$/\1/'`
- pidfile=/var/run/autofs/`echo $mnt | sed 's,/,_,g'`.pid
-
- start-stop-daemon --start --pidfile $pidfile --quiet \
- --exec $DAEMON -- --pid-file=$pidfile $rest
-
- ret=$?
-
- if [ $ret -ne 0 ]
- then
- echo
- echo " failed to start automount point $mnt"
- else
- echo "Started automounter: $mnt"
- fi
- done
- fi
- done)
-
- rm -f $TMP1 $TMP2
- ;;
-force-reload|restart)
- stop
- start
- ;;
-status)
- status
- ;;
-getmounts)
- getmounts
- ;;
-active)
- alive
- ;;
-*)
- echo "Usage: $initdir/autofs {start|stop|restart|reload|status|getmounts|active}" >&2
- exit 1
- ;;
-esac
-
-exit 0
-
+++ /dev/null
-Index: autofs-4.1.4/samples/Makefile
-===================================================================
---- autofs-4.1.4.orig/samples/Makefile 2008-05-21 22:59:29.000000000 +0200
-+++ autofs-4.1.4/samples/Makefile 2008-05-21 23:00:04.000000000 +0200
-@@ -34,6 +34,8 @@
- install -c -m 755 auto.net $(INSTALLROOT)/etc
- -mv -f $(INSTALLROOT)/etc/auto.smb $(INSTALLROOT)/etc/auto.smb.old
- install -c -m 755 auto.smb $(INSTALLROOT)/etc
-+ -mv -f $(INSTALLROOT)/etc/auto.hotplug $(INSTALLROOT)/etc/auto.hotplug.old
-+ install -c -m 755 auto.hotplug $(INSTALLROOT)/etc
- install -d -m 755 $(INSTALLROOT)$(initdir)
- install -c -m 755 rc.autofs $(INSTALLROOT)$(initdir)/autofs
- install -d -m 755 $(INSTALLROOT)$(autofslibdir)
-Index: autofs-4.1.4/samples/auto.hotplug
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ autofs-4.1.4/samples/auto.hotplug 2008-05-21 22:59:47.000000000 +0200
-@@ -0,0 +1 @@
-+* -fstype=auto,ro :/dev/&
+++ /dev/null
-rootfs / auto defaults 1 1
-proc /proc proc defaults 0 0
-devpts /dev/pts devpts mode=0620,gid=5 0 0
-usbdevfs /proc/bus/usb usbfs defaults 0 0
-/dev/mtdblock/2 /boot jffs2 ro 0 0
-tmpfs /var tmpfs defaults 0 0
-tmpfs /tmp tmpfs defaults 0 0
+++ /dev/null
-rootfs / auto defaults 1 1
-proc /proc proc defaults 0 0
-devpts /dev/pts devpts mode=0620,gid=5 0 0
-usbdevfs /proc/bus/usb usbfs defaults 0 0
-/dev/mtdblock/2 /boot jffs2 ro 0 0
-tmpfs /var tmpfs defaults 0 0
-tmpfs /tmp tmpfs defaults 0 0
-/dev/discs/disc0/part1 /media/hdd auto defaults 0 0
+++ /dev/null
-rootfs / auto defaults 1 1
-proc /proc proc defaults 0 0
-devpts /dev/pts devpts mode=0620,gid=5 0 0
-usbdevfs /proc/bus/usb usbfs defaults 0 0
-/dev/mtdblock/2 /boot jffs2 ro 0 0
-tmpfs /var tmpfs defaults 0 0
-tmpfs /tmp tmpfs defaults 0 0
-/dev/ide/host0/bus0/target0/lun0/part1 /media/hdd auto defaults 0 0
-/dev/ide/host1/bus0/target0/lun0/part1 /media/cf auto defaults 0 0
+++ /dev/null
-#!/bin/sh
-#
-# Devfs handling script. Since we arent running devfsd due to various reasons
-# which I will not lay out here, we need to create some links for compatibility.
-
-. /etc/default/rcS
-
-# exit without doing anything if udev is active
-if test -x /bin/pidof -a "`pidof udevd`" != ""; then
- exit 0
-fi
-
-if test -e /dev/.devfsd
-then
- if test "$VERBOSE" != "no"; then echo -n "Setting up device links for devfs: "; fi
- ln -s /dev/touchscreen/0 /dev/ts
- ln -s /dev/touchscreen/0raw /dev/tsraw
- ln -s /dev/vc/0 /dev/tty0
- ln -s /dev/vc/1 /dev/tty1
- ln -s /dev/vc/2 /dev/tty2
- ln -s /dev/vc/3 /dev/tty3
- ln -s /dev/vc/4 /dev/tty4
- ln -s /dev/vc/5 /dev/tty5
- ln -s /dev/fb/0 /dev/fb0
-# ln -s /dev/tts/0 /dev/ttySA0
-# ln -s /dev/tts/1 /dev/ttySA1
-# ln -s /dev/tts/2 /dev/ttySA2
-
- ln -s /dev/sound/dsp /dev/dsp
- ln -s /dev/sound/mixer /dev/mixer
-
- ## need this so that ppp will autoload the ppp modules
-# mknod /dev/ppp c 108 0
- if test "$VERBOSE" != "no"; then echo "done"; fi
-else
- if test "$VERBOSE" != "no"; then echo -n "Mounting /dev ramdisk: "; fi
- mount -t ramfs ramfs /dev || mount -t tmpfs ramfs /dev
- if test $? -ne 0; then
- if test "$VERBOSE" != "no"; then echo "failed"; fi
- else
- if test "$VERBOSE" != "no"; then echo "done"; fi
- fi
- if test "$VERBOSE" != "no"; then echo -n "Populating /dev: "; fi
- cd /
- mkdir -p dev/input
- mkdir -p dev/msys
- mkdir -p dev/pts
- mkdir -p dev/vc
- for i in 0 1 2 3 4 5 6 7 8 9; do
- ln -s /dev/tty$i /dev/vc/$i
- done
- ln -sf /proc/self/fd /dev/fd
- ln -sf /proc/kcore /dev/core
- /sbin/makedevs -r / -D /etc/device_table
- if test $? -ne 0; then
- if test "$VERBOSE" != "no"; then echo "failed"; fi
- else
- if test "$VERBOSE" != "no"; then echo "done"; fi
- fi
-fi
-
-exit 0
+++ /dev/null
-rootfs / auto defaults 1 1
-proc /proc proc defaults 0 0
-devpts /dev/pts devpts mode=0620,gid=5 0 0
-usbdevfs /proc/bus/usb usbfs defaults 0 0
-/dev/mtdblock/2 /boot jffs2 ro 0 0
-tmpfs /var tmpfs defaults 0 0
-tmpfs /tmp tmpfs defaults 0 0
-/dev/ide/host0/bus0/target0/lun0/part1 /media/hdd auto defaults 0 0
-/dev/ide/host1/bus0/target0/lun0/part1 /media/cf auto defaults 0 0
-/dev/ide/host1/bus0/target0/lun0/disc /media/cf auto defaults 0 0
-/dev/scsi/host0/bus0/target0/lun0/part1 /media/usb auto defaults 0 0
-/dev/scsi/host0/bus0/target0/lun0/disc /media/usb auto defaults 0 0
+++ /dev/null
-rootfs / auto defaults 1 1
-proc /proc proc defaults 0 0
-devpts /dev/pts devpts mode=0620,gid=5 0 0
-usbdevfs /proc/bus/usb usbfs defaults 0 0
-/dev/mtdblock/2 /boot jffs2 ro 0 0
-tmpfs /var tmpfs defaults 0 0
-tmpfs /tmp tmpfs defaults 0 0
-/dev/discs/disc0/part1 /media/hdd auto defaults 0 0
+++ /dev/null
-rootfs / auto defaults 1 1
-proc /proc proc defaults 0 0
-devpts /dev/pts devpts mode=0620,gid=5 0 0
-usbdevfs /proc/bus/usb usbfs defaults 0 0
-/dev/mtdblock/2 /boot jffs2 ro 0 0
-tmpfs /var tmpfs defaults 0 0
-tmpfs /tmp tmpfs defaults 0 0
-/dev/discs/disc0/part1 /media/hdd auto defaults 0 0
+++ /dev/null
-# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
-# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
-
-PATH="/usr/local/bin:/usr/bin:/bin"
-EDITOR="/bin/vi" # needed for packages like cron
-TERM="xterm" # Basic terminal capab. For screen etc.
-
-if [ "`id -u`" -eq 0 ]; then
- PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin:
-fi
-if [ "$PS1" ]; then
-# works for bash and ash (no other shells known to be in use here)
- PS1='\u@\h:\w\$ '
-fi
-
-if [ -d /etc/profile.d ]; then
- for i in `ls /etc/profile.d/`; do
- . /etc/profile.d/$i
- done
- unset i
-fi
-
-export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM
-
-umask 022
-
+++ /dev/null
-diff -auNr busybox-1.11.3/console-tools/Config.in busybox-1.11.3_getkey/console-tools/Config.in
---- busybox-1.11.3/console-tools/Config.in 2008-06-25 14:51:18.000000000 +0200
-+++ busybox-1.11.3_getkey/console-tools/Config.in 2008-12-05 19:13:40.000000000 +0100
-@@ -37,6 +37,14 @@
- help
- This program reports and sets keyboard mode.
-
-+config GETKEY
-+ bool "getkey"
-+ default n
-+ help
-+ This program displays a configurable message and waits
-+ a dedicated number of seconds for a keypress. It sets
-+ the exit code accordingly, i.e. SUCCESS if there was a keypress.
-+
- config LOADFONT
- bool "loadfont"
- default n
-diff -auNr busybox-1.11.3/console-tools/Kbuild busybox-1.11.3_getkey/console-tools/Kbuild
---- busybox-1.11.3/console-tools/Kbuild 2008-06-25 14:51:18.000000000 +0200
-+++ busybox-1.11.3_getkey/console-tools/Kbuild 2008-12-05 19:12:35.000000000 +0100
-@@ -18,3 +18,4 @@
- lib-$(CONFIG_RESIZE) += resize.o
- lib-$(CONFIG_SETKEYCODES) += setkeycodes.o
- lib-$(CONFIG_SETLOGCONS) += setlogcons.o
-+lib-$(CONFIG_GETKEY) += getkey.o
-diff -auNr busybox-1.11.3/console-tools/getkey.c busybox-1.11.3_getkey/console-tools/getkey.c
---- busybox-1.11.3/console-tools/getkey.c 1970-01-01 01:00:00.000000000 +0100
-+++ busybox-1.11.3_getkey/console-tools/getkey.c 2008-12-05 19:11:01.000000000 +0100
-@@ -0,0 +1,94 @@
-+/* vi: set sw=4 ts=4: */
-+/*
-+ * getkey.c - Michael 'Mickey' Lauer
-+ *
-+ * Version 0.1
-+ *
-+ * A simple keygrapper. Displays a configurable message and waits a dedicated number
-+ * of seconds for a keypress. Sets the exit code accordingly (SUCCESS on keypress).
-+ */
-+#include <stdio.h>
-+#include <fcntl.h>
-+#include <memory.h>
-+#include <stdlib.h>
-+#include <unistd.h>
-+#include <sys/types.h>
-+#include <errno.h>
-+#include <sys/ioctl.h>
-+#include <sys/kd.h>
-+#include "busybox.h"
-+
-+extern int getkey_main(int argc, char **argv)
-+{
-+ int status = EXIT_FAILURE;
-+
-+ if ( argc < 2 )
-+ {
-+ bb_show_usage();
-+ }
-+
-+ /*
-+ * If no terminal is attached it is quite useless
-+ * to treat it like one.
-+ */
-+ if( !isatty(STDIN_FILENO) )
-+ {
-+ goto error_hard;
-+ }
-+
-+ //bb_printf( "DEBUG: time = '%s'\n", argv[1] );
-+ //bb_printf( "DEBUG: mesg = '%s'\n", argv[2] );
-+
-+ struct termios orig;
-+ struct termios attr;
-+
-+ if ( tcgetattr(STDIN_FILENO, &orig) == -1 )
-+ {
-+ goto error_hard;
-+ }
-+
-+ attr = orig;
-+ attr.c_cc[VMIN] = 0;
-+ attr.c_cc[VTIME] = 0;
-+ attr.c_iflag |= INLCR;
-+ attr.c_oflag |= OPOST|ONLCR;
-+ attr.c_cflag &= ~PARENB;
-+ attr.c_lflag &= ~(ICANON/*|ECHO*/);
-+ if ( tcsetattr(STDIN_FILENO,TCSANOW,&attr) == -1 )
-+ {
-+ goto error_hard;
-+ }
-+
-+ fd_set rfds;
-+ struct timeval tv;
-+ int retval;
-+
-+ FD_ZERO(&rfds);
-+ FD_SET(0, &rfds);
-+
-+ tv.tv_sec = atoi( argv[1] );
-+ tv.tv_usec = 0;
-+
-+ if ( argc == 3 )
-+ {
-+ bb_printf( argv[2], tv.tv_sec );
-+ bb_printf( "\n" );
-+ fflush(stdout);
-+ }
-+ retval = select(1, &rfds, NULL, NULL, &tv);
-+ if (retval > 0)
-+ {
-+ status = EXIT_SUCCESS;
-+ }
-+
-+ if (tcsetattr(STDIN_FILENO,TCSANOW,&orig) == -1 )
-+ {
-+ goto error_hard;
-+ }
-+
-+ return status;
-+
-+error_hard :
-+ return EXIT_FAILURE;
-+};
-+
-diff -auNr busybox-1.11.3/include/applets.h busybox-1.11.3_getkey/include/applets.h
---- busybox-1.11.3/include/applets.h 2008-06-25 14:51:29.000000000 +0200
-+++ busybox-1.11.3_getkey/include/applets.h 2008-12-05 19:16:30.000000000 +0100
-@@ -163,6 +163,7 @@
- USE_FTPPUT(APPLET_ODDNAME(ftpput, ftpgetput, _BB_DIR_USR_BIN, _BB_SUID_NEVER, ftpput))
- USE_FUSER(APPLET(fuser, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
- USE_GETENFORCE(APPLET(getenforce, _BB_DIR_USR_SBIN, _BB_SUID_NEVER))
-+USE_GETKEY(APPLET(getkey, _BB_DIR_SBIN, _BB_SUID_NEVER))
- USE_GETOPT(APPLET(getopt, _BB_DIR_BIN, _BB_SUID_NEVER))
- USE_GETSEBOOL(APPLET(getsebool, _BB_DIR_USR_SBIN, _BB_SUID_NEVER))
- USE_GETTY(APPLET(getty, _BB_DIR_SBIN, _BB_SUID_NEVER))
-diff -auNr busybox-1.11.3/include/usage.h busybox-1.11.3_getkey/include/usage.h
---- busybox-1.11.3/include/usage.h 2008-09-28 20:04:12.000000000 +0200
-+++ busybox-1.11.3_getkey/include/usage.h 2008-12-05 19:11:48.000000000 +0100
-@@ -1262,6 +1262,13 @@
- "\n -P Port number" \
- )
-
-+#define getkey_trivial_usage \
-+ "time [message]"
-+#define getkey_full_usage \
-+ "Display a message and wait for a keypress."
-+#define getkey_example_usage \
-+ "$ getkey 5 'Press a key within %d seconds to interrupt autoboot.'"
-+
- #define fuser_trivial_usage \
- "[options] FILE or PORT/PROTO"
- #define fuser_full_usage "\n\n" \
+++ /dev/null
-diff -Naur busybox-1.11.3/networking/udhcp/dhcpc.c busybox-1.11.3_dhcp-hostname/networking/udhcp/dhcpc.c
---- busybox-1.11.3/networking/udhcp/dhcpc.c 2008-06-25 14:51:14.000000000 +0200
-+++ busybox-1.11.3_dhcp-hostname/networking/udhcp/dhcpc.c 2008-12-05 11:41:36.000000000 +0100
-@@ -145,6 +145,7 @@
- struct timeval tv;
- struct dhcpMessage packet;
- fd_set rfds;
-+ char hostbuf[256]; /* SUSv2: hostnames are <= 255 bytes */
-
- #if ENABLE_GETOPT_LONG
- static const char udhcpc_longopts[] ALIGN1 =
-@@ -210,6 +211,13 @@
- USE_FEATURE_UDHCP_PORT(CLIENT_PORT = 68;)
- client_config.interface = "eth0";
- client_config.script = DEFAULT_SCRIPT;
-+ if (gethostname (hostbuf, sizeof (hostbuf)) == 0) {
-+ int len = strlen (hostbuf);
-+ client_config.hostname = xmalloc (len + 2);
-+ client_config.hostname[OPT_CODE] = DHCP_HOST_NAME;
-+ client_config.hostname[OPT_LEN] = len;
-+ strncpy(client_config.hostname + 2, hostbuf, len);
-+ }
-
- /* Parse command line */
- /* Cc: mutually exclusive; O: list; -T,-t,-A take numeric param */
+++ /dev/null
-diff -Naur busybox-1.11.3/miscutils/hdparm.c busybox-1.11.3-hdparm_M/miscutils/hdparm.c
---- busybox-1.11.3/miscutils/hdparm.c 2008-06-25 14:51:29.000000000 +0200
-+++ busybox-1.11.3-hdparm_M/miscutils/hdparm.c 2008-12-05 11:04:15.000000000 +0100
-@@ -283,6 +283,7 @@
- smallint set_sleepnow, get_sleepnow;
- smallint get_powermode;
- smallint set_apmmode, get_apmmode;
-+ smallint set_acoustic, get_acoustic;
- int xfermode_requested;
- unsigned long dkeep;
- unsigned long standby_requested; /* 0..255 */
-@@ -292,6 +293,7 @@
- unsigned long wcache;
- unsigned long doorlock;
- unsigned long apmmode;
-+ unsigned long acoustic;
- #endif
- USE_FEATURE_HDPARM_GET_IDENTITY( smallint get_IDentity;)
- USE_FEATURE_HDPARM_HDIO_TRISTATE_HWIF( smallint set_busstate, get_busstate;)
-@@ -376,6 +378,8 @@
- #define get_powermode (G.get_powermode )
- #define set_apmmode (G.set_apmmode )
- #define get_apmmode (G.get_apmmode )
-+#define set_acoustic (G.set_acoustic )
-+#define get_acoustic (G.get_acoustic )
- #define xfermode_requested (G.xfermode_requested )
- #define dkeep (G.dkeep )
- #define standby_requested (G.standby_requested )
-@@ -385,6 +389,7 @@
- #define wcache (G.wcache )
- #define doorlock (G.doorlock )
- #define apmmode (G.apmmode )
-+#define acoustic (G.acoustic )
- #define get_IDentity (G.get_IDentity )
- #define set_busstate (G.set_busstate )
- #define get_busstate (G.get_busstate )
-@@ -1660,6 +1665,17 @@
- ioctl_or_warn(fd, HDIO_DRIVE_CMD, &args);
- args[1] = 0;
- }
-+ if (set_acoustic)
-+ {
-+ if (get_acoustic)
-+ printf(" setting AAM level to 0x%02lX (%ld)\n", acoustic, acoustic);
-+ ioctl_or_warn(fd, HDIO_SET_ACOUSTIC, (int*)acoustic);
-+ }
-+ if (get_acoustic)
-+ {
-+ ioctl_or_warn(fd, HDIO_GET_ACOUSTIC, (unsigned long*)&parm);
-+ printf(" acoustic = %2ld (128=quiet ... 254=fast)\n", parm);
-+ }
- if (set_wcache) {
- #ifdef DO_FLUSHCACHE
- #ifndef WIN_FLUSHCACHE
-@@ -1963,7 +1979,7 @@
- USE_FEATURE_HDPARM_GET_IDENTITY("iI")
- USE_FEATURE_HDPARM_HDIO_GETSET_DMA("d::")
- #ifdef HDIO_DRIVE_CMD
-- "S:D:P:X:K:A:L:W:CyYzZ"
-+ "S:D:P:X:K:A:L:W:CyYzZM:"
- #endif
- USE_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF("U:")
- #ifdef HDIO_GET_QDMA
-@@ -2000,6 +2016,7 @@
- if (c == 'c') parse_opts(&get_io32bit, &set_io32bit, &io32bit, 0, INT_MAX /*8*/);
- if (c == 'k') parse_opts(&get_keep, &set_keep, &keep, 0, 1);
- if (c == 'a') parse_opts(&get_readahead, &set_readahead, &Xreadahead, 0, INT_MAX);
-+ if (c == 'M') parse_opts(&get_acoustic, &set_acoustic, &acoustic, 1, 254);
- if (c == 'B') parse_opts(&get_apmmode, &set_apmmode, &apmmode, 1, 255);
- do_flush |= do_timings |= (c == 't');
- do_flush |= do_ctimings |= (c == 'T');
+++ /dev/null
-diff -Naur busybox-1.11.3/console-tools/dumpkmap.c busybox-1.11.3_keymap-endianess/console-tools/dumpkmap.c
---- busybox-1.11.3/console-tools/dumpkmap.c 2008-06-25 14:51:18.000000000 +0200
-+++ busybox-1.11.3_keymap-endianess/console-tools/dumpkmap.c 2008-12-05 11:36:21.000000000 +0100
-@@ -10,6 +10,7 @@
- /* no options, no getopt */
-
- #include "libbb.h"
-+#include <endian.h>
-
- /* From <linux/kd.h> */
- struct kbentry {
-@@ -56,6 +57,9 @@
- (char *)&ke.kb_table,
- &ke.kb_value)
- ) {
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-+ ke.kb_value = ((ke.kb_value&0xFF) << 8) | ((ke.kb_value&0xFF00) >> 8);
-+#endif
- write(STDOUT_FILENO, (void*)&ke.kb_value, 2);
- }
- }
-diff -Naur busybox-1.11.3/console-tools/loadkmap.c busybox-1.11.3_keymap-endianess/console-tools/loadkmap.c
---- busybox-1.11.3/console-tools/loadkmap.c 2008-06-25 14:51:18.000000000 +0200
-+++ busybox-1.11.3_keymap-endianess/console-tools/loadkmap.c 2008-12-05 11:36:53.000000000 +0100
-@@ -9,6 +9,7 @@
- */
-
- #include "libbb.h"
-+#include <endian.h>
-
- #define BINARY_KEYMAP_MAGIC "bkeymap"
-
-@@ -49,6 +50,9 @@
- for (j = 0; j < NR_KEYS; j++) {
- ke.kb_index = j;
- ke.kb_table = i;
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-+ ibuff[j] = ((ibuff[j]&0xFF) << 8) | ((ibuff[j]&0xFF00) >> 8);
-+#endif
- ke.kb_value = ibuff[j];
- ioctl(fd, KDSKBENT, &ke);
- }
+++ /dev/null
-diff -auNr busybox-1.11.3/libbb/procps.c busybox-1.11.3-nptl/libbb/procps.c
---- busybox-1.11.3/libbb/procps.c 2008-09-28 20:04:12.000000000 +0200
-+++ busybox-1.11.3-nptl/libbb/procps.c 2008-12-28 15:33:09.000000000 +0100
-@@ -166,236 +166,268 @@
- procps_status_t *procps_scan(procps_status_t* sp, int flags)
- {
- struct dirent *entry;
-+ static DIR *taskdir;
- char buf[PROCPS_BUFSIZE];
- char filename[sizeof("/proc//cmdline") + sizeof(int)*3];
- char *filename_tail;
- long tasknice;
- unsigned pid;
-+ static unsigned parentpid;
- int n;
- struct stat sb;
-
- if (!sp)
- sp = alloc_procps_scan();
-
-- for (;;) {
-- entry = readdir(sp->dir);
-- if (entry == NULL) {
-- free_procps_scan(sp);
-- return NULL;
-- }
-- pid = bb_strtou(entry->d_name, NULL, 10);
-- if (errno)
-- continue;
--
-- /* After this point we have to break, not continue
-- * ("continue" would mean that current /proc/NNN
-- * is not a valid process info) */
-+ if(taskdir){
-+ for(;;) {
-+ entry = readdir(taskdir);
-+ if(entry == NULL) {
-+ closedir(taskdir);
-+ taskdir = 0;
-+ break;
-+ }
-+ pid = bb_strtou(entry->d_name, NULL, 10);
-+ if (errno)
-+ continue;
-+
-+ /* After this point we have to break, not continue
-+ * ("continue" would mean that current /proc/NNN
-+ * is not a valid process info) */
-
-- memset(&sp->vsz, 0, sizeof(*sp) - offsetof(procps_status_t, vsz));
-+ memset(&sp->vsz, 0, sizeof(*sp) - offsetof(procps_status_t, vsz));
-
-- sp->pid = pid;
-- if (!(flags & ~PSSCAN_PID)) break;
-+ sp->pid = pid;
-+ if (!(flags & ~PSSCAN_PID)) break;
-
- #if ENABLE_SELINUX
-- if (flags & PSSCAN_CONTEXT) {
-- if (getpidcon(sp->pid, &sp->context) < 0)
-- sp->context = NULL;
-- }
-+ if (flags & PSSCAN_CONTEXT) {
-+ if (getpidcon(sp->pid, &sp->context) < 0)
-+ sp->context = NULL;
-+ }
- #endif
-
-- filename_tail = filename + sprintf(filename, "/proc/%d", pid);
-+ filename_tail = filename + sprintf(filename, "/proc/%d/task/%d", parentpid, pid);
-
-- if (flags & PSSCAN_UIDGID) {
-- if (stat(filename, &sb))
-- break;
-- /* Need comment - is this effective or real UID/GID? */
-- sp->uid = sb.st_uid;
-- sp->gid = sb.st_gid;
-- }
-+ if (flags & PSSCAN_UIDGID) {
-+ if (stat(filename, &sb))
-+ break;
-+ /* Need comment - is this effective or real UID/GID? */
-+ sp->uid = sb.st_uid;
-+ sp->gid = sb.st_gid;
-+ }
-
-- if (flags & PSSCAN_STAT) {
-- char *cp, *comm1;
-- int tty;
-+ if (flags & PSSCAN_STAT) {
-+ char *cp, *comm1;
-+ int tty;
- #if !ENABLE_FEATURE_FAST_TOP
-- unsigned long vsz, rss;
-+ unsigned long vsz, rss;
- #endif
-
-- /* see proc(5) for some details on this */
-- strcpy(filename_tail, "/stat");
-- n = read_to_buf(filename, buf);
-- if (n < 0)
-- break;
-- cp = strrchr(buf, ')'); /* split into "PID (cmd" and "<rest>" */
-- /*if (!cp || cp[1] != ' ')
-- break;*/
-- cp[0] = '\0';
-- if (sizeof(sp->comm) < 16)
-- BUG_comm_size();
-- comm1 = strchr(buf, '(');
-- /*if (comm1)*/
-- safe_strncpy(sp->comm, comm1 + 1, sizeof(sp->comm));
-+ /* see proc(5) for some details on this */
-+ strcpy(filename_tail, "/stat");
-+ n = read_to_buf(filename, buf);
-+ if (n < 0)
-+ break;
-+ cp = strrchr(buf, ')'); /* split into "PID (cmd" and "<rest>" */
-+ /*if (!cp || cp[1] != ' ')
-+ break;*/
-+ cp[0] = '\0';
-+ if (sizeof(sp->comm) < 16)
-+ BUG_comm_size();
-+ comm1 = strchr(buf, '(');
-+ /*if (comm1)*/
-+ safe_strncpy(sp->comm, comm1 + 1, sizeof(sp->comm));
-
- #if !ENABLE_FEATURE_FAST_TOP
-- n = sscanf(cp+2,
-- "%c %u " /* state, ppid */
-- "%u %u %d %*s " /* pgid, sid, tty, tpgid */
-- "%*s %*s %*s %*s %*s " /* flags, min_flt, cmin_flt, maj_flt, cmaj_flt */
-- "%lu %lu " /* utime, stime */
-- "%*s %*s %*s " /* cutime, cstime, priority */
-- "%ld " /* nice */
-- "%*s %*s " /* timeout, it_real_value */
-- "%lu " /* start_time */
-- "%lu " /* vsize */
-- "%lu " /* rss */
-- /* "%lu %lu %lu %lu %lu %lu " rss_rlim, start_code, end_code, start_stack, kstk_esp, kstk_eip */
-- /* "%u %u %u %u " signal, blocked, sigignore, sigcatch */
-- /* "%lu %lu %lu" wchan, nswap, cnswap */
-- ,
-- sp->state, &sp->ppid,
-- &sp->pgid, &sp->sid, &tty,
-- &sp->utime, &sp->stime,
-- &tasknice,
-- &sp->start_time,
-- &vsz,
-- &rss);
-- if (n != 11)
-- break;
-- /* vsz is in bytes and we want kb */
-- sp->vsz = vsz >> 10;
-- /* vsz is in bytes but rss is in *PAGES*! Can you believe that? */
-- sp->rss = rss << sp->shift_pages_to_kb;
-- sp->tty_major = (tty >> 8) & 0xfff;
-- sp->tty_minor = (tty & 0xff) | ((tty >> 12) & 0xfff00);
-+ n = sscanf(cp+2,
-+ "%c %u " /* state, ppid */
-+ "%u %u %d %*s " /* pgid, sid, tty, tpgid */
-+ "%*s %*s %*s %*s %*s " /* flags, min_flt, cmin_flt, maj_flt, cmaj_flt */
-+ "%lu %lu " /* utime, stime */
-+ "%*s %*s %*s " /* cutime, cstime, priority */
-+ "%ld " /* nice */
-+ "%*s %*s " /* timeout, it_real_value */
-+ "%lu " /* start_time */
-+ "%lu " /* vsize */
-+ "%lu " /* rss */
-+ /* "%lu %lu %lu %lu %lu %lu " rss_rlim, start_code, end_code, start_stack, kstk_esp, kstk_eip */
-+ /* "%u %u %u %u " signal, blocked, sigignore, sigcatch */
-+ /* "%lu %lu %lu" wchan, nswap, cnswap */
-+ ,
-+ sp->state, &sp->ppid,
-+ &sp->pgid, &sp->sid, &tty,
-+ &sp->utime, &sp->stime,
-+ &tasknice,
-+ &sp->start_time,
-+ &vsz,
-+ &rss);
-+ if (n != 11)
-+ break;
-+ /* vsz is in bytes and we want kb */
-+ sp->vsz = vsz >> 10;
-+ /* vsz is in bytes but rss is in *PAGES*! Can you believe that? */
-+ sp->rss = rss << sp->shift_pages_to_kb;
-+ sp->tty_major = (tty >> 8) & 0xfff;
-+ sp->tty_minor = (tty & 0xff) | ((tty >> 12) & 0xfff00);
- #else
- /* This costs ~100 bytes more but makes top faster by 20%
- * If you run 10000 processes, this may be important for you */
-- sp->state[0] = cp[2];
-- cp += 4;
-- sp->ppid = fast_strtoul_10(&cp);
-- sp->pgid = fast_strtoul_10(&cp);
-- sp->sid = fast_strtoul_10(&cp);
-- tty = fast_strtoul_10(&cp);
-- sp->tty_major = (tty >> 8) & 0xfff;
-- sp->tty_minor = (tty & 0xff) | ((tty >> 12) & 0xfff00);
-- cp = skip_fields(cp, 6); /* tpgid, flags, min_flt, cmin_flt, maj_flt, cmaj_flt */
-- sp->utime = fast_strtoul_10(&cp);
-- sp->stime = fast_strtoul_10(&cp);
-- cp = skip_fields(cp, 3); /* cutime, cstime, priority */
-- tasknice = fast_strtoul_10(&cp);
-- cp = skip_fields(cp, 2); /* timeout, it_real_value */
-- sp->start_time = fast_strtoul_10(&cp);
-- /* vsz is in bytes and we want kb */
-- sp->vsz = fast_strtoul_10(&cp) >> 10;
-- /* vsz is in bytes but rss is in *PAGES*! Can you believe that? */
-- sp->rss = fast_strtoul_10(&cp) << sp->shift_pages_to_kb;
-+ sp->state[0] = cp[2];
-+ cp += 4;
-+ sp->ppid = fast_strtoul_10(&cp);
-+ sp->pgid = fast_strtoul_10(&cp);
-+ sp->sid = fast_strtoul_10(&cp);
-+ tty = fast_strtoul_10(&cp);
-+ sp->tty_major = (tty >> 8) & 0xfff;
-+ sp->tty_minor = (tty & 0xff) | ((tty >> 12) & 0xfff00);
-+ cp = skip_fields(cp, 6); /* tpgid, flags, min_flt, cmin_flt, maj_flt, cmaj_flt */
-+ sp->utime = fast_strtoul_10(&cp);
-+ sp->stime = fast_strtoul_10(&cp);
-+ cp = skip_fields(cp, 3); /* cutime, cstime, priority */
-+ tasknice = fast_strtoul_10(&cp);
-+ cp = skip_fields(cp, 2); /* timeout, it_real_value */
-+ sp->start_time = fast_strtoul_10(&cp);
-+ /* vsz is in bytes and we want kb */
-+ sp->vsz = fast_strtoul_10(&cp) >> 10;
-+ /* vsz is in bytes but rss is in *PAGES*! Can you believe that? */
-+ sp->rss = fast_strtoul_10(&cp) << sp->shift_pages_to_kb;
- #endif
-
-- if (sp->vsz == 0 && sp->state[0] != 'Z')
-- sp->state[1] = 'W';
-- else
-- sp->state[1] = ' ';
-- if (tasknice < 0)
-- sp->state[2] = '<';
-- else if (tasknice) /* > 0 */
-- sp->state[2] = 'N';
-- else
-- sp->state[2] = ' ';
-+ if (sp->vsz == 0 && sp->state[0] != 'Z')
-+ sp->state[1] = 'W';
-+ else
-+ sp->state[1] = ' ';
-+ if (tasknice < 0)
-+ sp->state[2] = '<';
-+ else if (tasknice) /* > 0 */
-+ sp->state[2] = 'N';
-+ else
-+ sp->state[2] = ' ';
-
-- }
-+ }
-
- #if ENABLE_FEATURE_TOPMEM
-- if (flags & (PSSCAN_SMAPS)) {
-- FILE *file;
-+ if (flags & (PSSCAN_SMAPS)) {
-+ FILE *file;
-
-- strcpy(filename_tail, "/smaps");
-- file = fopen(filename, "r");
-- if (!file)
-- break;
-- while (fgets(buf, sizeof(buf), file)) {
-- unsigned long sz;
-- char *tp;
-- char w;
-+ strcpy(filename_tail, "/smaps");
-+ file = fopen(filename, "r");
-+ if (!file)
-+ break;
-+ while (fgets(buf, sizeof(buf), file)) {
-+ unsigned long sz;
-+ char *tp;
-+ char w;
- #define SCAN(str, name) \
- if (strncmp(buf, str, sizeof(str)-1) == 0) { \
- tp = skip_whitespace(buf + sizeof(str)-1); \
- sp->name += fast_strtoul_10(&tp); \
- continue; \
- }
-- SCAN("Shared_Clean:" , shared_clean );
-- SCAN("Shared_Dirty:" , shared_dirty );
-- SCAN("Private_Clean:", private_clean);
-- SCAN("Private_Dirty:", private_dirty);
-+ SCAN("Shared_Clean:" , shared_clean );
-+ SCAN("Shared_Dirty:" , shared_dirty );
-+ SCAN("Private_Clean:", private_clean);
-+ SCAN("Private_Dirty:", private_dirty);
- #undef SCAN
-- // f7d29000-f7d39000 rw-s ADR M:m OFS FILE
-- tp = strchr(buf, '-');
-- if (tp) {
-- *tp = ' ';
-- tp = buf;
-- sz = fast_strtoul_16(&tp); /* start */
-- sz = (fast_strtoul_16(&tp) - sz) >> 10; /* end - start */
-- // tp -> "rw-s" string
-- w = tp[1];
-- // skipping "rw-s ADR M:m OFS "
-- tp = skip_whitespace(skip_fields(tp, 4));
-- // filter out /dev/something (something != zero)
-- if (strncmp(tp, "/dev/", 5) != 0 || strcmp(tp, "/dev/zero\n") == 0) {
-- if (w == 'w') {
-- sp->mapped_rw += sz;
-- } else if (w == '-') {
-- sp->mapped_ro += sz;
-+ // f7d29000-f7d39000 rw-s ADR M:m OFS FILE
-+ tp = strchr(buf, '-');
-+ if (tp) {
-+ *tp = ' ';
-+ tp = buf;
-+ sz = fast_strtoul_16(&tp); /* start */
-+ sz = (fast_strtoul_16(&tp) - sz) >> 10; /* end - start */
-+ // tp -> "rw-s" string
-+ w = tp[1];
-+ // skipping "rw-s ADR M:m OFS "
-+ tp = skip_whitespace(skip_fields(tp, 4));
-+ // filter out /dev/something (something != zero)
-+ if (strncmp(tp, "/dev/", 5) != 0 || strcmp(tp, "/dev/zero\n") == 0) {
-+ if (w == 'w') {
-+ sp->mapped_rw += sz;
-+ } else if (w == '-') {
-+ sp->mapped_ro += sz;
-+ }
- }
-- }
- //else printf("DROPPING %s (%s)\n", buf, tp);
-- if (strcmp(tp, "[stack]\n") == 0)
-- sp->stack += sz;
-+ if (strcmp(tp, "[stack]\n") == 0)
-+ sp->stack += sz;
-+ }
- }
-+ fclose(file);
- }
-- fclose(file);
-- }
- #endif /* TOPMEM */
-
- #if 0 /* PSSCAN_CMD is not used */
-- if (flags & (PSSCAN_CMD|PSSCAN_ARGV0)) {
-- free(sp->argv0);
-- sp->argv0 = NULL;
-- free(sp->cmd);
-- sp->cmd = NULL;
-- strcpy(filename_tail, "/cmdline");
-- /* TODO: to get rid of size limits, read into malloc buf,
-- * then realloc it down to real size. */
-- n = read_to_buf(filename, buf);
-- if (n <= 0)
-- break;
-- if (flags & PSSCAN_ARGV0)
-- sp->argv0 = xstrdup(buf);
-- if (flags & PSSCAN_CMD) {
-- do {
-- n--;
-- if ((unsigned char)(buf[n]) < ' ')
-- buf[n] = ' ';
-- } while (n);
-- sp->cmd = xstrdup(buf);
-+ if (flags & (PSSCAN_CMD|PSSCAN_ARGV0)) {
-+ free(sp->argv0);
-+ sp->argv0 = NULL;
-+ free(sp->cmd);
-+ sp->cmd = NULL;
-+ strcpy(filename_tail, "/cmdline");
-+ /* TODO: to get rid of size limits, read into malloc buf,
-+ * then realloc it down to real size. */
-+ n = read_to_buf(filename, buf);
-+ if (n <= 0)
-+ break;
-+ if (flags & PSSCAN_ARGV0)
-+ sp->argv0 = xstrdup(buf);
-+ if (flags & PSSCAN_CMD) {
-+ do {
-+ n--;
-+ if ((unsigned char)(buf[n]) < ' ')
-+ buf[n] = ' ';
-+ } while (n);
-+ sp->cmd = xstrdup(buf);
-+ }
- }
-- }
- #else
-- if (flags & (PSSCAN_ARGV0|PSSCAN_ARGVN)) {
-- free(sp->argv0);
-- sp->argv0 = NULL;
-- strcpy(filename_tail, "/cmdline");
-- n = read_to_buf(filename, buf);
-- if (n <= 0)
-- break;
-- if (flags & PSSCAN_ARGVN) {
-- sp->argv_len = n;
-- sp->argv0 = xmalloc(n + 1);
-- memcpy(sp->argv0, buf, n + 1);
-- /* sp->argv0[n] = '\0'; - buf has it */
-- } else {
-- sp->argv_len = 0;
-- sp->argv0 = xstrdup(buf);
-+ if (flags & (PSSCAN_ARGV0|PSSCAN_ARGVN)) {
-+ free(sp->argv0);
-+ sp->argv0 = NULL;
-+ strcpy(filename_tail, "/cmdline");
-+ n = read_to_buf(filename, buf);
-+ if (n <= 0)
-+ break;
-+ if (flags & PSSCAN_ARGVN) {
-+ sp->argv_len = n;
-+ sp->argv0 = xmalloc(n + 1);
-+ memcpy(sp->argv0, buf, n + 1);
-+ /* sp->argv0[n] = '\0'; - buf has it */
-+ } else {
-+ sp->argv_len = 0;
-+ sp->argv0 = xstrdup(buf);
-+ }
- }
-- }
- #endif
-+ break;
-+ }
-+ if(taskdir)
-+ return sp;
-+ }
-+
-+ for (;;) {
-+ entry = readdir(sp->dir);
-+ if (entry == NULL) {
-+ free_procps_scan(sp);
-+ return NULL;
-+ }
-+ pid = bb_strtou(entry->d_name, NULL, 10);
-+ if (errno)
-+ continue;
-+
-+ filename_tail = filename + sprintf(filename, "/proc/%d", pid);
-+
-+ if (!taskdir) {
-+ strcpy(filename_tail, "/task");
-+ taskdir = xopendir(filename);
-+ if(!taskdir)
-+ // ignore processes without taskdir
-+ continue;
-+ parentpid = pid;
-+ return procps_scan(sp, flags);
-+ }
-+
- break;
- }
- return sp;
+++ /dev/null
-#
-# Automatically generated make config: don't edit
-# Busybox version: 1.11.1
-# Thu Sep 25 23:43:31 2008
-#
-CONFIG_HAVE_DOT_CONFIG=y
-
-#
-# Busybox Settings
-#
-
-#
-# General Configuration
-#
-# CONFIG_DESKTOP is not set
-# CONFIG_FEATURE_ASSUME_UNICODE is not set
-CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
-# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
-# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
-CONFIG_SHOW_USAGE=y
-CONFIG_FEATURE_VERBOSE_USAGE=y
-CONFIG_FEATURE_COMPRESS_USAGE=y
-# CONFIG_FEATURE_INSTALLER is not set
-# CONFIG_LOCALE_SUPPORT is not set
-CONFIG_GETOPT_LONG=y
-CONFIG_FEATURE_DEVPTS=y
-# CONFIG_FEATURE_CLEAN_UP is not set
-# CONFIG_FEATURE_PIDFILE is not set
-CONFIG_FEATURE_SUID=y
-# CONFIG_FEATURE_SUID_CONFIG is not set
-# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
-# CONFIG_SELINUX is not set
-# CONFIG_FEATURE_PREFER_APPLETS is not set
-CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
-CONFIG_FEATURE_SYSLOG=y
-# CONFIG_FEATURE_HAVE_RPC is not set
-
-#
-# Build Options
-#
-# CONFIG_STATIC is not set
-# CONFIG_PIE is not set
-# CONFIG_NOMMU is not set
-# CONFIG_BUILD_LIBBUSYBOX is not set
-# CONFIG_FEATURE_INDIVIDUAL is not set
-# CONFIG_FEATURE_SHARED_BUSYBOX is not set
-CONFIG_LFS=y
-CONFIG_CROSS_COMPILER_PREFIX=""
-
-#
-# Debugging Options
-#
-# CONFIG_DEBUG is not set
-# CONFIG_DEBUG_PESSIMIZE is not set
-# CONFIG_WERROR is not set
-CONFIG_NO_DEBUG_LIB=y
-# CONFIG_DMALLOC is not set
-# CONFIG_EFENCE is not set
-CONFIG_INCLUDE_SUSv2=y
-
-#
-# Installation Options
-#
-# CONFIG_INSTALL_NO_USR is not set
-CONFIG_INSTALL_APPLET_SYMLINKS=y
-# CONFIG_INSTALL_APPLET_HARDLINKS is not set
-# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
-# CONFIG_INSTALL_APPLET_DONT is not set
-# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
-# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
-# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
-CONFIG_PREFIX="./_install"
-
-#
-# Busybox Library Tuning
-#
-CONFIG_PASSWORD_MINLEN=6
-CONFIG_MD5_SIZE_VS_SPEED=2
-# CONFIG_FEATURE_FAST_TOP is not set
-# CONFIG_FEATURE_ETC_NETWORKS is not set
-CONFIG_FEATURE_EDITING=y
-CONFIG_FEATURE_EDITING_MAX_LEN=1024
-CONFIG_FEATURE_EDITING_VI=y
-CONFIG_FEATURE_EDITING_HISTORY=63
-CONFIG_FEATURE_EDITING_SAVEHISTORY=y
-CONFIG_FEATURE_TAB_COMPLETION=y
-# CONFIG_FEATURE_USERNAME_COMPLETION is not set
-CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
-CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
-CONFIG_FEATURE_COPYBUF_KB=64
-CONFIG_MONOTONIC_SYSCALL=y
-CONFIG_IOCTL_HEX2STR_ERROR=y
-# CONFIG_FEATURE_HWIB is not set
-
-#
-# Applets
-#
-
-#
-# Archival Utilities
-#
-CONFIG_AR=y
-# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
-CONFIG_BUNZIP2=y
-CONFIG_BZIP2=y
-CONFIG_CPIO=y
-# CONFIG_FEATURE_CPIO_O is not set
-# CONFIG_DPKG is not set
-# CONFIG_DPKG_DEB is not set
-# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
-CONFIG_GUNZIP=y
-# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
-CONFIG_GZIP=y
-# CONFIG_RPM2CPIO is not set
-# CONFIG_RPM is not set
-# CONFIG_FEATURE_RPM_BZ2 is not set
-CONFIG_TAR=y
-CONFIG_FEATURE_TAR_CREATE=y
-CONFIG_FEATURE_TAR_GZIP=y
-CONFIG_FEATURE_TAR_BZIP2=y
-# CONFIG_FEATURE_TAR_LZMA is not set
-# CONFIG_FEATURE_TAR_COMPRESS is not set
-# CONFIG_FEATURE_TAR_AUTODETECT is not set
-CONFIG_FEATURE_TAR_FROM=y
-# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
-# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
-CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
-CONFIG_FEATURE_TAR_LONG_OPTIONS=y
-# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
-# CONFIG_UNCOMPRESS is not set
-# CONFIG_UNLZMA is not set
-# CONFIG_FEATURE_LZMA_FAST is not set
-CONFIG_UNZIP=y
-
-#
-# Common options for cpio and tar
-#
-# CONFIG_FEATURE_DEB_TAR_GZ is not set
-# CONFIG_FEATURE_DEB_TAR_BZ2 is not set
-# CONFIG_FEATURE_DEB_TAR_LZMA is not set
-
-#
-# Coreutils
-#
-CONFIG_BASENAME=y
-# CONFIG_CAL is not set
-CONFIG_CAT=y
-CONFIG_CATV=y
-CONFIG_CHGRP=y
-CONFIG_CHMOD=y
-CONFIG_CHOWN=y
-CONFIG_CHROOT=y
-# CONFIG_CKSUM is not set
-# CONFIG_COMM is not set
-CONFIG_CP=y
-CONFIG_CUT=y
-CONFIG_DATE=y
-CONFIG_FEATURE_DATE_ISOFMT=y
-CONFIG_DD=y
-CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
-CONFIG_FEATURE_DD_IBS_OBS=y
-CONFIG_DF=y
-# CONFIG_FEATURE_DF_INODE is not set
-CONFIG_DIRNAME=y
-CONFIG_DOS2UNIX=y
-CONFIG_UNIX2DOS=y
-CONFIG_DU=y
-CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
-CONFIG_ECHO=y
-CONFIG_FEATURE_FANCY_ECHO=y
-CONFIG_ENV=y
-# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
-# CONFIG_EXPAND is not set
-# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set
-CONFIG_EXPR=y
-# CONFIG_EXPR_MATH_SUPPORT_64 is not set
-CONFIG_FALSE=y
-# CONFIG_FOLD is not set
-CONFIG_HEAD=y
-CONFIG_FEATURE_FANCY_HEAD=y
-# CONFIG_HOSTID is not set
-CONFIG_ID=y
-# CONFIG_INSTALL is not set
-# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
-# CONFIG_LENGTH is not set
-CONFIG_LN=y
-CONFIG_LOGNAME=y
-CONFIG_LS=y
-CONFIG_FEATURE_LS_FILETYPES=y
-CONFIG_FEATURE_LS_FOLLOWLINKS=y
-CONFIG_FEATURE_LS_RECURSIVE=y
-CONFIG_FEATURE_LS_SORTFILES=y
-CONFIG_FEATURE_LS_TIMESTAMPS=y
-CONFIG_FEATURE_LS_USERNAME=y
-CONFIG_FEATURE_LS_COLOR=y
-CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
-CONFIG_MD5SUM=y
-CONFIG_MKDIR=y
-# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set
-CONFIG_MKFIFO=y
-CONFIG_MKNOD=y
-CONFIG_MV=y
-# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
-CONFIG_NICE=y
-CONFIG_NOHUP=y
-CONFIG_OD=y
-# CONFIG_PRINTENV is not set
-CONFIG_PRINTF=y
-CONFIG_PWD=y
-CONFIG_READLINK=y
-# CONFIG_FEATURE_READLINK_FOLLOW is not set
-# CONFIG_REALPATH is not set
-CONFIG_RM=y
-CONFIG_RMDIR=y
-# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
-CONFIG_SEQ=y
-CONFIG_SHA1SUM=y
-CONFIG_SLEEP=y
-CONFIG_FEATURE_FANCY_SLEEP=y
-CONFIG_SORT=y
-CONFIG_FEATURE_SORT_BIG=y
-# CONFIG_SPLIT is not set
-# CONFIG_FEATURE_SPLIT_FANCY is not set
-# CONFIG_STAT is not set
-# CONFIG_FEATURE_STAT_FORMAT is not set
-CONFIG_STTY=y
-# CONFIG_SUM is not set
-CONFIG_SYNC=y
-# CONFIG_TAC is not set
-CONFIG_TAIL=y
-CONFIG_FEATURE_FANCY_TAIL=y
-CONFIG_TEE=y
-# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set
-CONFIG_TEST=y
-# CONFIG_FEATURE_TEST_64 is not set
-CONFIG_TOUCH=y
-CONFIG_TR=y
-# CONFIG_FEATURE_TR_CLASSES is not set
-# CONFIG_FEATURE_TR_EQUIV is not set
-CONFIG_TRUE=y
-CONFIG_TTY=y
-CONFIG_UNAME=y
-# CONFIG_UNEXPAND is not set
-# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set
-CONFIG_UNIQ=y
-# CONFIG_USLEEP is not set
-CONFIG_UUDECODE=y
-CONFIG_UUENCODE=y
-CONFIG_WC=y
-# CONFIG_FEATURE_WC_LARGE is not set
-CONFIG_WHO=y
-CONFIG_WHOAMI=y
-CONFIG_YES=y
-
-#
-# Common options for cp and mv
-#
-# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set
-
-#
-# Common options for ls, more and telnet
-#
-CONFIG_FEATURE_AUTOWIDTH=y
-
-#
-# Common options for df, du, ls
-#
-CONFIG_FEATURE_HUMAN_READABLE=y
-
-#
-# Common options for md5sum, sha1sum
-#
-CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
-
-#
-# Console Utilities
-#
-CONFIG_CHVT=y
-CONFIG_CLEAR=y
-CONFIG_DEALLOCVT=y
-CONFIG_DUMPKMAP=y
-# CONFIG_KBD_MODE is not set
-CONFIG_LOADFONT=y
-CONFIG_LOADKMAP=y
-CONFIG_OPENVT=y
-CONFIG_RESET=y
-# CONFIG_RESIZE is not set
-# CONFIG_FEATURE_RESIZE_PRINT is not set
-# CONFIG_SETCONSOLE is not set
-# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
-# CONFIG_SETKEYCODES is not set
-# CONFIG_SETLOGCONS is not set
-
-#
-# Debian Utilities
-#
-CONFIG_MKTEMP=y
-# CONFIG_PIPE_PROGRESS is not set
-CONFIG_RUN_PARTS=y
-# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
-# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
-CONFIG_START_STOP_DAEMON=y
-CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
-CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
-CONFIG_WHICH=y
-
-#
-# Editors
-#
-CONFIG_AWK=y
-CONFIG_FEATURE_AWK_MATH=y
-# CONFIG_CMP is not set
-CONFIG_DIFF=y
-CONFIG_FEATURE_DIFF_BINARY=y
-CONFIG_FEATURE_DIFF_DIR=y
-# CONFIG_FEATURE_DIFF_MINIMAL is not set
-# CONFIG_ED is not set
-CONFIG_PATCH=y
-CONFIG_SED=y
-CONFIG_VI=y
-CONFIG_FEATURE_VI_MAX_LEN=4096
-CONFIG_FEATURE_VI_8BIT=y
-CONFIG_FEATURE_VI_COLON=y
-CONFIG_FEATURE_VI_YANKMARK=y
-CONFIG_FEATURE_VI_SEARCH=y
-CONFIG_FEATURE_VI_USE_SIGNALS=y
-CONFIG_FEATURE_VI_DOT_CMD=y
-# CONFIG_FEATURE_VI_READONLY is not set
-# CONFIG_FEATURE_VI_SETOPTS is not set
-# CONFIG_FEATURE_VI_SET is not set
-CONFIG_FEATURE_VI_WIN_RESIZE=y
-CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
-CONFIG_FEATURE_ALLOW_EXEC=y
-
-#
-# Finding Utilities
-#
-CONFIG_FIND=y
-CONFIG_FEATURE_FIND_PRINT0=y
-CONFIG_FEATURE_FIND_MTIME=y
-CONFIG_FEATURE_FIND_MMIN=y
-CONFIG_FEATURE_FIND_PERM=y
-CONFIG_FEATURE_FIND_TYPE=y
-CONFIG_FEATURE_FIND_XDEV=y
-CONFIG_FEATURE_FIND_MAXDEPTH=y
-CONFIG_FEATURE_FIND_NEWER=y
-CONFIG_FEATURE_FIND_INUM=y
-CONFIG_FEATURE_FIND_EXEC=y
-CONFIG_FEATURE_FIND_USER=y
-CONFIG_FEATURE_FIND_GROUP=y
-CONFIG_FEATURE_FIND_NOT=y
-CONFIG_FEATURE_FIND_DEPTH=y
-CONFIG_FEATURE_FIND_PAREN=y
-CONFIG_FEATURE_FIND_SIZE=y
-CONFIG_FEATURE_FIND_PRUNE=y
-# CONFIG_FEATURE_FIND_DELETE is not set
-CONFIG_FEATURE_FIND_PATH=y
-CONFIG_FEATURE_FIND_REGEX=y
-# CONFIG_FEATURE_FIND_CONTEXT is not set
-CONFIG_GREP=y
-CONFIG_FEATURE_GREP_EGREP_ALIAS=y
-CONFIG_FEATURE_GREP_FGREP_ALIAS=y
-CONFIG_FEATURE_GREP_CONTEXT=y
-CONFIG_XARGS=y
-CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
-CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
-CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
-CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
-
-#
-# Init Utilities
-#
-# CONFIG_INIT is not set
-# CONFIG_DEBUG_INIT is not set
-# CONFIG_FEATURE_USE_INITTAB is not set
-# CONFIG_FEATURE_KILL_REMOVED is not set
-CONFIG_FEATURE_KILL_DELAY=0
-# CONFIG_FEATURE_INIT_SCTTY is not set
-# CONFIG_FEATURE_INIT_SYSLOG is not set
-# CONFIG_FEATURE_EXTRA_QUIET is not set
-# CONFIG_FEATURE_INIT_COREDUMPS is not set
-# CONFIG_FEATURE_INITRD is not set
-# CONFIG_HALT is not set
-# CONFIG_MESG is not set
-
-#
-# Login/Password Management Utilities
-#
-CONFIG_FEATURE_SHADOWPASSWDS=y
-# CONFIG_USE_BB_PWD_GRP is not set
-# CONFIG_USE_BB_SHADOW is not set
-CONFIG_USE_BB_CRYPT=y
-CONFIG_ADDGROUP=y
-CONFIG_FEATURE_ADDUSER_TO_GROUP=y
-CONFIG_DELGROUP=y
-CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
-# CONFIG_FEATURE_CHECK_NAMES is not set
-CONFIG_ADDUSER=y
-CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y
-CONFIG_DELUSER=y
-CONFIG_GETTY=y
-CONFIG_FEATURE_UTMP=y
-# CONFIG_FEATURE_WTMP is not set
-CONFIG_LOGIN=y
-# CONFIG_PAM is not set
-# CONFIG_LOGIN_SCRIPTS is not set
-CONFIG_FEATURE_NOLOGIN=y
-CONFIG_FEATURE_SECURETTY=y
-CONFIG_PASSWD=y
-# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
-# CONFIG_CRYPTPW is not set
-# CONFIG_CHPASSWD is not set
-CONFIG_SU=y
-CONFIG_FEATURE_SU_SYSLOG=y
-CONFIG_FEATURE_SU_CHECKS_SHELLS=y
-CONFIG_SULOGIN=y
-CONFIG_VLOCK=y
-
-#
-# Linux Ext2 FS Progs
-#
-CONFIG_CHATTR=y
-# CONFIG_FSCK is not set
-CONFIG_LSATTR=y
-
-#
-# Linux Module Utilities
-#
-# CONFIG_DEPMOD is not set
-# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set
-# CONFIG_FEATURE_DEPMOD_ALIAS is not set
-CONFIG_INSMOD=y
-# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
-# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
-# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
-# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
-# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
-CONFIG_RMMOD=y
-CONFIG_LSMOD=y
-# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
-CONFIG_MODPROBE=y
-CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
-CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
-# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
-
-#
-# Options common to multiple modutils
-#
-CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
-# CONFIG_FEATURE_2_4_MODULES is not set
-CONFIG_FEATURE_2_6_MODULES=y
-CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
-CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
-# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
-
-#
-# Linux System Utilities
-#
-CONFIG_DMESG=y
-CONFIG_FEATURE_DMESG_PRETTY=y
-CONFIG_FBSET=y
-CONFIG_FEATURE_FBSET_FANCY=y
-# CONFIG_FEATURE_FBSET_READMODE is not set
-# CONFIG_FDFLUSH is not set
-# CONFIG_FDFORMAT is not set
-# CONFIG_FDISK is not set
-CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
-# CONFIG_FEATURE_FDISK_WRITABLE is not set
-# CONFIG_FEATURE_AIX_LABEL is not set
-# CONFIG_FEATURE_SGI_LABEL is not set
-# CONFIG_FEATURE_SUN_LABEL is not set
-# CONFIG_FEATURE_OSF_LABEL is not set
-# CONFIG_FEATURE_FDISK_ADVANCED is not set
-# CONFIG_FINDFS is not set
-# CONFIG_FREERAMDISK is not set
-# CONFIG_FSCK_MINIX is not set
-# CONFIG_MKFS_MINIX is not set
-# CONFIG_FEATURE_MINIX2 is not set
-# CONFIG_GETOPT is not set
-CONFIG_HEXDUMP=y
-CONFIG_FEATURE_HEXDUMP_REVERSE=y
-# CONFIG_HD is not set
-# CONFIG_HWCLOCK is not set
-# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
-# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
-# CONFIG_IPCRM is not set
-# CONFIG_IPCS is not set
-CONFIG_LOSETUP=y
-# CONFIG_MDEV is not set
-# CONFIG_FEATURE_MDEV_CONF is not set
-# CONFIG_FEATURE_MDEV_RENAME is not set
-# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
-# CONFIG_FEATURE_MDEV_EXEC is not set
-# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
-CONFIG_MKSWAP=y
-# CONFIG_FEATURE_MKSWAP_V0 is not set
-CONFIG_MORE=y
-CONFIG_FEATURE_USE_TERMIOS=y
-# CONFIG_VOLUMEID is not set
-# CONFIG_FEATURE_VOLUMEID_EXT is not set
-# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
-# CONFIG_FEATURE_VOLUMEID_FAT is not set
-# CONFIG_FEATURE_VOLUMEID_HFS is not set
-# CONFIG_FEATURE_VOLUMEID_JFS is not set
-# CONFIG_FEATURE_VOLUMEID_XFS is not set
-# CONFIG_FEATURE_VOLUMEID_NTFS is not set
-# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
-# CONFIG_FEATURE_VOLUMEID_UDF is not set
-# CONFIG_FEATURE_VOLUMEID_LUKS is not set
-# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
-# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
-# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
-# CONFIG_FEATURE_VOLUMEID_SYSV is not set
-# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
-# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
-CONFIG_MOUNT=y
-# CONFIG_FEATURE_MOUNT_FAKE is not set
-# CONFIG_FEATURE_MOUNT_VERBOSE is not set
-# CONFIG_FEATURE_MOUNT_HELPERS is not set
-# CONFIG_FEATURE_MOUNT_LABEL is not set
-CONFIG_FEATURE_MOUNT_NFS=y
-# CONFIG_FEATURE_MOUNT_CIFS is not set
-CONFIG_FEATURE_MOUNT_FLAGS=y
-CONFIG_FEATURE_MOUNT_FSTAB=y
-CONFIG_PIVOT_ROOT=y
-# CONFIG_RDATE is not set
-CONFIG_READPROFILE=y
-# CONFIG_RTCWAKE is not set
-# CONFIG_SCRIPT is not set
-# CONFIG_SETARCH is not set
-CONFIG_SWAPONOFF=y
-# CONFIG_FEATURE_SWAPON_PRI is not set
-CONFIG_SWITCH_ROOT=y
-CONFIG_UMOUNT=y
-CONFIG_FEATURE_UMOUNT_ALL=y
-
-#
-# Common options for mount/umount
-#
-CONFIG_FEATURE_MOUNT_LOOP=y
-# CONFIG_FEATURE_MTAB_SUPPORT is not set
-
-#
-# Miscellaneous Utilities
-#
-# CONFIG_ADJTIMEX is not set
-# CONFIG_BBCONFIG is not set
-# CONFIG_CHAT is not set
-# CONFIG_FEATURE_CHAT_NOFAIL is not set
-# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
-# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set
-# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set
-# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
-# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
-# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
-# CONFIG_CHRT is not set
-CONFIG_CROND=y
-# CONFIG_DEBUG_CROND_OPTION is not set
-# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
-CONFIG_CRONTAB=y
-CONFIG_DC=y
-# CONFIG_DEVFSD is not set
-# CONFIG_DEVFSD_MODLOAD is not set
-# CONFIG_DEVFSD_FG_NP is not set
-# CONFIG_DEVFSD_VERBOSE is not set
-CONFIG_FEATURE_DEVFS=y
-CONFIG_EJECT=y
-CONFIG_FEATURE_EJECT_SCSI=y
-# CONFIG_FBSPLASH is not set
-# CONFIG_INOTIFYD is not set
-# CONFIG_LAST is not set
-# CONFIG_FEATURE_LAST_SMALL is not set
-# CONFIG_FEATURE_LAST_FANCY is not set
-CONFIG_LESS=y
-CONFIG_FEATURE_LESS_MAXLINES=9999999
-CONFIG_FEATURE_LESS_BRACKETS=y
-CONFIG_FEATURE_LESS_FLAGS=y
-CONFIG_FEATURE_LESS_FLAGCS=y
-# CONFIG_FEATURE_LESS_MARKS is not set
-# CONFIG_FEATURE_LESS_REGEXP is not set
-CONFIG_HDPARM=y
-CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
-CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y
-CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y
-CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y
-CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y
-CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y
-# CONFIG_MAKEDEVS is not set
-# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
-# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
-# CONFIG_MAN is not set
-CONFIG_MICROCOM=y
-# CONFIG_MOUNTPOINT is not set
-# CONFIG_MT is not set
-# CONFIG_RAIDAUTORUN is not set
-# CONFIG_READAHEAD is not set
-# CONFIG_RUNLEVEL is not set
-CONFIG_RX=y
-# CONFIG_SETSID is not set
-CONFIG_STRINGS=y
-# CONFIG_TASKSET is not set
-# CONFIG_FEATURE_TASKSET_FANCY is not set
-CONFIG_TIME=y
-# CONFIG_TTYSIZE is not set
-# CONFIG_WATCHDOG is not set
-
-#
-# Networking Utilities
-#
-# CONFIG_FEATURE_IPV6 is not set
-# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set
-# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
-CONFIG_ARP=y
-CONFIG_ARPING=y
-CONFIG_BRCTL=y
-# CONFIG_FEATURE_BRCTL_FANCY is not set
-# CONFIG_FEATURE_BRCTL_SHOW is not set
-# CONFIG_DNSD is not set
-CONFIG_ETHER_WAKE=y
-# CONFIG_FAKEIDENTD is not set
-CONFIG_FTPGET=y
-CONFIG_FTPPUT=y
-# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
-CONFIG_HOSTNAME=y
-# CONFIG_HTTPD is not set
-# CONFIG_FEATURE_HTTPD_RANGES is not set
-# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
-# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
-# CONFIG_FEATURE_HTTPD_SETUID is not set
-# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
-# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
-# CONFIG_FEATURE_HTTPD_CGI is not set
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
-# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
-# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
-# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
-# CONFIG_FEATURE_HTTPD_PROXY is not set
-CONFIG_IFCONFIG=y
-CONFIG_FEATURE_IFCONFIG_STATUS=y
-# CONFIG_FEATURE_IFCONFIG_SLIP is not set
-# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
-CONFIG_FEATURE_IFCONFIG_HW=y
-CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
-# CONFIG_IFENSLAVE is not set
-CONFIG_IFUPDOWN=y
-CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
-CONFIG_FEATURE_IFUPDOWN_IP=y
-CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
-# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
-CONFIG_FEATURE_IFUPDOWN_IPV4=y
-# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
-# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
-# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
-# CONFIG_INETD is not set
-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
-# CONFIG_FEATURE_INETD_RPC is not set
-CONFIG_IP=y
-CONFIG_FEATURE_IP_ADDRESS=y
-CONFIG_FEATURE_IP_LINK=y
-CONFIG_FEATURE_IP_ROUTE=y
-CONFIG_FEATURE_IP_TUNNEL=y
-# CONFIG_FEATURE_IP_RULE is not set
-# CONFIG_FEATURE_IP_SHORT_FORMS is not set
-# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
-# CONFIG_IPADDR is not set
-# CONFIG_IPLINK is not set
-# CONFIG_IPROUTE is not set
-# CONFIG_IPTUNNEL is not set
-# CONFIG_IPRULE is not set
-# CONFIG_IPCALC is not set
-# CONFIG_FEATURE_IPCALC_FANCY is not set
-# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
-# CONFIG_NAMEIF is not set
-# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
-CONFIG_NC=y
-CONFIG_NC_SERVER=y
-CONFIG_NC_EXTRA=y
-CONFIG_NETSTAT=y
-# CONFIG_FEATURE_NETSTAT_WIDE is not set
-CONFIG_NSLOOKUP=y
-CONFIG_PING=y
-# CONFIG_PING6 is not set
-CONFIG_FEATURE_FANCY_PING=y
-# CONFIG_PSCAN is not set
-CONFIG_ROUTE=y
-# CONFIG_SENDMAIL is not set
-# CONFIG_FETCHMAIL is not set
-# CONFIG_SLATTACH is not set
-CONFIG_TELNET=y
-CONFIG_FEATURE_TELNET_TTYPE=y
-CONFIG_FEATURE_TELNET_AUTOLOGIN=y
-CONFIG_TELNETD=y
-# CONFIG_FEATURE_TELNETD_STANDALONE is not set
-# CONFIG_TFTP is not set
-# CONFIG_TFTPD is not set
-# CONFIG_FEATURE_TFTP_GET is not set
-# CONFIG_FEATURE_TFTP_PUT is not set
-# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
-# CONFIG_DEBUG_TFTP is not set
-CONFIG_TRACEROUTE=y
-# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
-# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
-# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
-# CONFIG_APP_UDHCPD is not set
-# CONFIG_APP_DHCPRELAY is not set
-# CONFIG_APP_DUMPLEASES is not set
-# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
-CONFIG_DHCPD_LEASES_FILE=""
-CONFIG_APP_UDHCPC=y
-CONFIG_FEATURE_UDHCPC_ARPING=y
-# CONFIG_FEATURE_UDHCP_PORT is not set
-# CONFIG_FEATURE_UDHCP_DEBUG is not set
-# CONFIG_FEATURE_RFC3397 is not set
-CONFIG_DHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
-CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
-# CONFIG_VCONFIG is not set
-CONFIG_WGET=y
-CONFIG_FEATURE_WGET_STATUSBAR=y
-CONFIG_FEATURE_WGET_AUTHENTICATION=y
-CONFIG_FEATURE_WGET_LONG_OPTIONS=y
-CONFIG_ZCIP=y
-# CONFIG_TCPSVD is not set
-# CONFIG_UDPSVD is not set
-
-#
-# Process Utilities
-#
-CONFIG_FREE=y
-CONFIG_FUSER=y
-CONFIG_KILL=y
-CONFIG_KILLALL=y
-# CONFIG_KILLALL5 is not set
-# CONFIG_NMETER is not set
-# CONFIG_PGREP is not set
-CONFIG_PIDOF=y
-# CONFIG_FEATURE_PIDOF_SINGLE is not set
-# CONFIG_FEATURE_PIDOF_OMIT is not set
-# CONFIG_PKILL is not set
-CONFIG_PS=y
-# CONFIG_FEATURE_PS_WIDE is not set
-# CONFIG_FEATURE_PS_TIME is not set
-# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
-CONFIG_RENICE=y
-CONFIG_BB_SYSCTL=y
-CONFIG_TOP=y
-CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
-CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
-# CONFIG_FEATURE_TOP_DECIMALS is not set
-# CONFIG_FEATURE_TOPMEM is not set
-CONFIG_UPTIME=y
-CONFIG_WATCH=y
-
-#
-# Shells
-#
-CONFIG_FEATURE_SH_IS_ASH=y
-# CONFIG_FEATURE_SH_IS_HUSH is not set
-# CONFIG_FEATURE_SH_IS_MSH is not set
-# CONFIG_FEATURE_SH_IS_NONE is not set
-CONFIG_ASH=y
-
-#
-# Ash Shell Options
-#
-CONFIG_ASH_BASH_COMPAT=y
-CONFIG_ASH_JOB_CONTROL=y
-CONFIG_ASH_READ_NCHARS=y
-CONFIG_ASH_READ_TIMEOUT=y
-CONFIG_ASH_ALIAS=y
-CONFIG_ASH_MATH_SUPPORT=y
-# CONFIG_ASH_MATH_SUPPORT_64 is not set
-CONFIG_ASH_GETOPTS=y
-CONFIG_ASH_BUILTIN_ECHO=y
-CONFIG_ASH_BUILTIN_PRINTF=y
-CONFIG_ASH_BUILTIN_TEST=y
-# CONFIG_ASH_CMDCMD is not set
-# CONFIG_ASH_MAIL is not set
-CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
-# CONFIG_ASH_RANDOM_SUPPORT is not set
-CONFIG_ASH_EXPAND_PRMT=y
-# CONFIG_HUSH is not set
-# CONFIG_HUSH_HELP is not set
-# CONFIG_HUSH_INTERACTIVE is not set
-# CONFIG_HUSH_JOB is not set
-# CONFIG_HUSH_TICK is not set
-# CONFIG_HUSH_IF is not set
-# CONFIG_HUSH_LOOPS is not set
-# CONFIG_LASH is not set
-# CONFIG_MSH is not set
-
-#
-# Bourne Shell Options
-#
-CONFIG_FEATURE_SH_EXTRA_QUIET=y
-# CONFIG_FEATURE_SH_STANDALONE is not set
-# CONFIG_FEATURE_SH_NOFORK is not set
-# CONFIG_CTTYHACK is not set
-
-#
-# System Logging Utilities
-#
-CONFIG_SYSLOGD=y
-# CONFIG_FEATURE_ROTATE_LOGFILE is not set
-CONFIG_FEATURE_REMOTE_LOG=y
-# CONFIG_FEATURE_SYSLOGD_DUP is not set
-CONFIG_FEATURE_IPC_SYSLOG=y
-CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16
-CONFIG_LOGREAD=y
-# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
-CONFIG_KLOGD=y
-CONFIG_LOGGER=y
-
-#
-# Runit Utilities
-#
-# CONFIG_RUNSV is not set
-# CONFIG_RUNSVDIR is not set
-# CONFIG_SV is not set
-# CONFIG_SVLOGD is not set
-# CONFIG_CHPST is not set
-# CONFIG_SETUIDGID is not set
-# CONFIG_ENVUIDGID is not set
-# CONFIG_ENVDIR is not set
-# CONFIG_SOFTLIMIT is not set
-# CONFIG_CHCON is not set
-# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
-# CONFIG_GETENFORCE is not set
-# CONFIG_GETSEBOOL is not set
-# CONFIG_LOAD_POLICY is not set
-# CONFIG_MATCHPATHCON is not set
-# CONFIG_RESTORECON is not set
-# CONFIG_RUNCON is not set
-# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
-# CONFIG_SELINUXENABLED is not set
-# CONFIG_SETENFORCE is not set
-# CONFIG_SETFILES is not set
-# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
-# CONFIG_SETSEBOOL is not set
-# CONFIG_SESTATUS is not set
-
-#
-# Print Utilities
-#
-# CONFIG_LPD is not set
-# CONFIG_LPR is not set
-# CONFIG_LPQ is not set
+++ /dev/null
-DESCRIPTION = "portable command-line CD/DVD recorder software"
-LICENSE = "GPL"
-SECTION = "optional"
-DEPENDS = "cmake-native libcap"
-
-SRC_URI = "http://cdrkit.org/releases/${PN}-${PV}.tar.gz"
-
-inherit autotools
-
-do_install () {
- oe_runmake 'DESTDIR=${D}' 'PREFIX=/usr' install
-}
+++ /dev/null
-DESCRIPTION = "portable command-line CD/DVD recorder software"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-LICENSE = "GPL"
-SECTION = "optional"
-DEPENDS = "cmake-native libcap bzip2"
-
-SRC_URI = "http://cdrkit.org/releases/${PN}-${PV}.tar.gz"
-
-inherit autotools
-
-do_install () {
- oe_runmake 'DESTDIR=${D}' 'PREFIX=/usr' install
- ln -fs genisoimage ${D}${bindir}/mkisofs
-}
+++ /dev/null
-DESCRIPTION = "mount UPnP server content as a linux filesystem"
-HOMEPAGE = "http://djmount.sourceforge.net/"
-LICENSE = "GPL"
-DEPENDS = "libupnp fuse"
-RDEPENDS = "fuse-utils fuse-module"
-PR = "r1"
-
-INITSCRIPT_NAME = "djmount"
-INITSCRIPT_PARAMS = "defaults"
-
-inherit autotools update-rc.d
-
-EXTRA_OECONF = "--with-external-libupnp --with-fuse-prefix='/usr/lib/'"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/djmount/djmount-0.71.tar.gz \
- file://init \
- file://filebuffer-fix_range.patch;patch=1"
-
-do_configure() {
- cd ${S}
- oe_runconf
-}
-
-do_install_append() {
- install -d ${D}/etc/init.d
- install -m 0755 ${WORKDIR}/init ${D}/etc/init.d/djmount
-}
+++ /dev/null
---- trunk/djmount/file_buffer.c 2006/10/05 20:01:53 271
-+++ trunk/djmount/file_buffer.c 2006/10/08 09:11:10 272
-@@ -199,7 +199,7 @@
- int rc = UpnpOpenHttpGetEx (file->url, &handle,
- &contentType, &contentLength,
- &httpStatus,
-- offset, offset + size,
-+ offset, offset + size - 1,
- HTTP_DEFAULT_TIMEOUT
- );
- if (rc != UPNP_E_SUCCESS)
+++ /dev/null
-#!/bin/sh
-DAEMON=/usr/bin/djmount
-NAME=djmount
-DESC="UPnP client"
-MOUNTPOINT="/media/upnp/"
-ARGS=$MOUNTPOINT
-
-test -f $DAEMON || exit 0
-
-set -e
-
-case "$1" in
-start)
- echo -n "* starting $DESC: $NAME... "
- if ! test -d $MOUNTPOINT; then
- mkdir $MOUNTPOINT
- fi
- modprobe fuse
- start-stop-daemon -S -b -x $DAEMON -- $ARGS
- echo "done."
- ;;
-stop)
- echo -n "* stopping $DESC: $NAME... "
- start-stop-daemon -K -x $DAEMON
- rmmod fuse
- echo "done."
- ;;
-restart)
- echo "* restarting $DESC: $NAME... "
- $0 stop
- $0 start
- echo "done."
- ;;
-*)
- echo "Usage: $0 {start|stop|restart}"
- exit 1
- ;;
-esac
-
-exit 0
+++ /dev/null
-DESCRIPTION = "Utilities needed to do transponder blindscan with dreambox dvb receivers"
-SECTION = "base"
-PRIORITY = "optional"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-LICENSE = "GPL"
-PV = "1.0"
-PR = "r0"
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-SRC_URI = "http://sources.dreamboxupdate.com/download/opendreambox/dreambox-blindscan-utils-${MACHINE}-1.0.tar.bz2"
-SRC_URI_dm600pvr = "http://sources.dreamboxupdate.com/download/opendreambox/dreambox-blindscan-utils-${MACHINE}-1.1.tar.bz2"
-PR_dm600pvr = "r1"
-
-S = "${WORKDIR}/blindscan-utils"
-
-do_install() {
- install -d ${D}/${bindir}/
- for i in `find ${S} -type f -maxdepth 1`; do
- install -m 0755 $i ${D}/${bindir}/;
- done;
-}
+++ /dev/null
-DESCRIPTION = "Bootlogo support"
-SECTION = "base"
-PRIORITY = "required"
-LICENSE = "proprietary"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-
-IMAGES_VERSION = "1"
-BINARY_VERSION = "1"
-BINARY_VERSION_dm7025 = "2"
-BINARY_VERSION_dm800 = "2"
-BINARY_VERSION_dm8000 = "4"
-
-PV = "${BINARY_VERSION}.${IMAGES_VERSION}"
-PR = "r3"
-
-SRC_URI = "http://sources.dreamboxupdate.com/download/7020/bootlogo-${MACHINE}-${BINARY_VERSION}.elf \
- http://sources.dreamboxupdate.com/download/7020/bootlogo-${MACHINE}-${IMAGES_VERSION}.mvi \
- http://sources.dreamboxupdate.com/download/7020/bootlogo_wait-${MACHINE}-${IMAGES_VERSION}.mvi \
- http://sources.dreamboxupdate.com/download/7020/backdrop-${MACHINE}-${IMAGES_VERSION}.mvi"
-
-SRC_URI_append_dm8000 = " http://sources.dreamboxupdate.com/download/7020/bootlogo-${MACHINE}-${IMAGES_VERSION}.jpg"
-
-SRC_URI_append_dm800 = " http://sources.dreamboxupdate.com/download/7020/bootlogo-${MACHINE}-${IMAGES_VERSION}.jpg \
- http://sources.dreamboxupdate.com/download/7020/switchoff-${MACHINE}-${IMAGES_VERSION}.mvi"
-
-S = "${WORKDIR}/"
-
-MVI = "bootlogo backdrop bootlogo_wait"
-MVI_append_dm800 = " switchoff"
-
-do_install() {
- install -d ${D}/boot
- install -m 0755 ${S}/bootlogo-${MACHINE}-${BINARY_VERSION}.elf ${D}/boot/bootlogo.elf
- for i in ${MVI}; do
- install -m 0755 ${S}/$i-${MACHINE}-${IMAGES_VERSION}.mvi ${D}/boot/$i.mvi;
- done;
-}
-
-do_install_dm800() {
- install -d ${D}/boot
- install -d ${D}/usr/share
- install -m 0755 ${S}/bootlogo-${MACHINE}-${BINARY_VERSION}.elf ${D}/boot/bootlogo.elf
- install -m 0755 ${S}/bootlogo-${MACHINE}-${IMAGES_VERSION}.jpg ${D}/boot/bootlogo.jpg
- for i in ${MVI}; do
- install -m 0755 ${S}/$i-${MACHINE}-${IMAGES_VERSION}.mvi ${D}/usr/share/$i.mvi;
- ln -sf /usr/share/$i.mvi ${D}/boot/$i.mvi;
- done;
-}
-
-do_install_dm8000() {
- do_install_dm800
-}
-
-pkg_preinst() {
- [ -d /proc/stb ] && mount -o rw,remount /boot
-}
-
-pkg_postinst() {
- [ -d /proc/stb ] && mount -o ro,remount /boot
-}
-
-pkg_prerm() {
- [ -d /proc/stb ] && mount -o rw,remount /boot
-}
-
-pkg_postrm() {
- [ -d /proc/stb ] && mount -o ro,remount /boot
-}
-
-PACKAGE_ARCH := "${MACHINE_ARCH}"
-FILES_${PN} = "/boot /usr/share"
+++ /dev/null
-DESCRIPTION = "Squashfs jffs2 unionfs mount tool"
-SECTION = "base"
-PRIORITY = "required"
-LICENSE = "proprietary"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-
-PV = "1.0"
-PR = "r1"
-DEPENDS = "klibc"
-
-SRC_URI = "file://boottool-${MACHINE}.c"
-
-S = "${WORKDIR}/"
-
-do_install_append() {
- install -d ${D}/boot/bin
- install ${S}/boottool ${D}/boot/bin/init
-}
-
-do_compile_append() {
- ${STAGING_DIR_HOST}/bin/klcc ${S}/boottool-${MACHINE}.c -o ${S}/boottool
-}
-
-PACKAGE_ARCH := "${MACHINE_ARCH}"
-FILES_${PN} = "/boot/bin/init"
+++ /dev/null
-#include <sys/mount.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <linux/loop.h>
-#include <dirent.h>
-#include <errno.h>
-#include <sys/mman.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define PREFIX
-//#define PREFIX "/boot"
-#define SQUASHFS_FILENAME PREFIX"/mnt/flash/squashfs"
-
-#define streq(a,b) (strcmp((a),(b)) == 0)
-
-/* This really needs to be in a header file... */
-extern long init_module(void *, unsigned long, const char *);
-
-/* We use error numbers in a loose translation... */
-static const char *moderror(int err)
-{
- switch (err) {
- case ENOEXEC:
- return "Invalid module format";
- case ENOENT:
- return "Unknown symbol in module";
- case ESRCH:
- return "Module has wrong symbol version";
- case EINVAL:
- return "Invalid parameters";
- default:
- return strerror(err);
- }
-}
-
-static void *grab_file(const char *filename, unsigned long *size)
-{
- unsigned int max = 16384;
- int ret, fd;
- void *buffer = malloc(max);
-
- if (streq(filename, "-"))
- fd = dup(STDIN_FILENO);
- else
- fd = open(filename, O_RDONLY, 0);
-
- if (fd < 0)
- return NULL;
-
- *size = 0;
- while ((ret = read(fd, buffer + *size, max - *size)) > 0) {
- *size += ret;
- if (*size == max)
- buffer = realloc(buffer, max *= 2);
- }
- if (ret < 0) {
- free(buffer);
- buffer = NULL;
- }
- close(fd);
- return buffer;
-}
-
-
-int insmod(const char *filename)
-{
- void *file;
- unsigned long len;
- long int ret;
-
-
- file = grab_file(filename, &len);
- if (!file) {
- fprintf(stderr, "insmod: can't read '%s': %s\n",
- filename, strerror(errno));
- return 1;
- }
-
- ret = init_module(file, len, "");
- if (ret != 0) {
- fprintf(stderr, "insmod: error inserting '%s': %li %s\n",
- filename, ret, moderror(errno));
- return 1;
- }
- return 0;
-}
-
-int main(int argc, char *argv[], char *envp[])
-{
- int res, x;
-
- /* first, load some needed kernel modules located in the root of our boot partition */
- const char *modules[] = { "fs/squashfs/unlzma.ko", "fs/squashfs/sqlzma.ko", "fs/squashfs/squashfs.ko", "fs/unionfs.ko", "drivers/block/loop.ko", 0 };
- const char *modules_path = PREFIX"/lib/modules/2.6.12.6/kernel/";
- char path[255];
-
- printf("Hello world!\n");
-
- x=0;
- while(modules[x]) {
- strcpy(path, modules_path);
- strcat(path, modules[x++]);
- printf("insmodding %s..\n", path);
- if (insmod(path))
- return 1;
- }
-
- /* mount the RW jffs2 partition, which contains the squashfs image (in /squashfs) and the deltas (in /delta) */
- printf("mounting mtd...\n");
- res = mount("/dev/mtdblock/3", PREFIX"/mnt/flash", "jffs2", 0, 0);
-
- if (res)
- {
- perror("mounting /flash");
- return res;
- }
-
- /* loop-mount the squashfs, by first connecting the file to loop0 ... */
- printf("opening squashfs...\n");
- int squashfs_fd = open(SQUASHFS_FILENAME, O_RDONLY);
- if (squashfs_fd < 0)
- {
- perror(SQUASHFS_FILENAME);
- return 1;
- }
-
- printf("setup loop\n");
- int loop_fd = open("/dev/loop/0", O_RDONLY);
-
- if (loop_fd < 0)
- {
- perror("/dev/loop/0");
- return 1;
- }
-
- struct loop_info loopinfo;
-
- memset(&loopinfo, 0, sizeof(loopinfo));
- strncpy(loopinfo.lo_name, SQUASHFS_FILENAME, LO_NAME_SIZE);
- loopinfo.lo_offset = 0;
- loopinfo.lo_encrypt_key_size = 0;
- if (ioctl(loop_fd, LOOP_SET_FD, (void*)squashfs_fd) < 0) {
- perror("LOOP_SET_FD");
- return 1;
- }
- if (ioctl(loop_fd, LOOP_SET_STATUS, &loopinfo) < 0) {
- perror("LOOP_SET_STATUS");
- return 1;
- }
- close(loop_fd);
- close(squashfs_fd);
-
- printf("mounting squashfs..\n");
-
- /* and then mounting the loop device. */
- if (mount("/dev/loop/0", PREFIX"/mnt/squashfs", "squashfs", MS_MGC_VAL|MS_RDONLY, "") < 0)
- {
- perror("mounting squashfs");
- return 1;
- }
-
- /* now the situation is:
-
- / - our boot jffs2 partition
- /flash - our RW jffs2 partition
- /flash/squashfs - our loop-mounted squashfs file,
- /flash/delta - the delta for the root
- /squashfs - RO root
- /root - yet empty, but we will populate it using unionfs
- */
-
-
- printf("mounting unionfs..\n");
- res = mount("none", PREFIX"/mnt/root", "unionfs", MS_MGC_VAL, "dirs="PREFIX"/mnt/flash/delta=rw:"PREFIX"/mnt/squashfs=ro");
- if (res < 0)
- {
- perror("mounting unionfs");
- return 1;
- }
-
- printf("pivot_root\n");
- if ( pivot_root(PREFIX"/mnt/root", PREFIX"/mnt/root/boot") < 0)
- {
- perror("pivot_root");
- return 1;
- }
-
- printf("mounting devfs..\n");
- res = mount("none", "/dev", "devfs", 0, 0);
- if (res)
- {
- perror("mounting /dev");
- return res;
- }
-
- printf("try umount old devfs..\n");
- res = umount("/boot/dev");
- perror("umount /boot/dev");
-
- printf("call init!\n");
- execve("/sbin/init", argv, envp);
- perror("/sbin/init");
-
- return 1;
-}
+++ /dev/null
-DESCRIPTION = "create Dreambox NAND boot images"
-SECTION = "console/utils"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-PV = "1.1"
-PR = "r1"
-
-SRC_URI = "file://buildimage.c"
-
-inherit native
-
-do_compile() {
- cp ${WORKDIR}/buildimage.c .
- ${CXX} -I. -o buildimage buildimage.c
-}
-
-do_stage() {
- install -m 0755 buildimage ${STAGING_BINDIR}/
-}
+++ /dev/null
-/*
- * buildimage - create Dreambox nand boot image.
- *
- * contains algorithms ripped from u-boot and first-stage.
- * Licensed as GPL.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <netinet/in.h>
-
-int eraseblock_size, spare_size, sector_size, largepage;
-
-#define SECTOR_SIZE_WITH_ECC (sector_size+spare_size)
-
-
-/*
- * Pre-calculated 256-way 1 byte column parity
- */
-static const unsigned char nand_ecc_precalc_table[] = {
- 0x00, 0x55, 0x56, 0x03, 0x59, 0x0c, 0x0f, 0x5a, 0x5a, 0x0f, 0x0c, 0x59, 0x03, 0x56, 0x55, 0x00,
- 0x65, 0x30, 0x33, 0x66, 0x3c, 0x69, 0x6a, 0x3f, 0x3f, 0x6a, 0x69, 0x3c, 0x66, 0x33, 0x30, 0x65,
- 0x66, 0x33, 0x30, 0x65, 0x3f, 0x6a, 0x69, 0x3c, 0x3c, 0x69, 0x6a, 0x3f, 0x65, 0x30, 0x33, 0x66,
- 0x03, 0x56, 0x55, 0x00, 0x5a, 0x0f, 0x0c, 0x59, 0x59, 0x0c, 0x0f, 0x5a, 0x00, 0x55, 0x56, 0x03,
- 0x69, 0x3c, 0x3f, 0x6a, 0x30, 0x65, 0x66, 0x33, 0x33, 0x66, 0x65, 0x30, 0x6a, 0x3f, 0x3c, 0x69,
- 0x0c, 0x59, 0x5a, 0x0f, 0x55, 0x00, 0x03, 0x56, 0x56, 0x03, 0x00, 0x55, 0x0f, 0x5a, 0x59, 0x0c,
- 0x0f, 0x5a, 0x59, 0x0c, 0x56, 0x03, 0x00, 0x55, 0x55, 0x00, 0x03, 0x56, 0x0c, 0x59, 0x5a, 0x0f,
- 0x6a, 0x3f, 0x3c, 0x69, 0x33, 0x66, 0x65, 0x30, 0x30, 0x65, 0x66, 0x33, 0x69, 0x3c, 0x3f, 0x6a,
- 0x6a, 0x3f, 0x3c, 0x69, 0x33, 0x66, 0x65, 0x30, 0x30, 0x65, 0x66, 0x33, 0x69, 0x3c, 0x3f, 0x6a,
- 0x0f, 0x5a, 0x59, 0x0c, 0x56, 0x03, 0x00, 0x55, 0x55, 0x00, 0x03, 0x56, 0x0c, 0x59, 0x5a, 0x0f,
- 0x0c, 0x59, 0x5a, 0x0f, 0x55, 0x00, 0x03, 0x56, 0x56, 0x03, 0x00, 0x55, 0x0f, 0x5a, 0x59, 0x0c,
- 0x69, 0x3c, 0x3f, 0x6a, 0x30, 0x65, 0x66, 0x33, 0x33, 0x66, 0x65, 0x30, 0x6a, 0x3f, 0x3c, 0x69,
- 0x03, 0x56, 0x55, 0x00, 0x5a, 0x0f, 0x0c, 0x59, 0x59, 0x0c, 0x0f, 0x5a, 0x00, 0x55, 0x56, 0x03,
- 0x66, 0x33, 0x30, 0x65, 0x3f, 0x6a, 0x69, 0x3c, 0x3c, 0x69, 0x6a, 0x3f, 0x65, 0x30, 0x33, 0x66,
- 0x65, 0x30, 0x33, 0x66, 0x3c, 0x69, 0x6a, 0x3f, 0x3f, 0x6a, 0x69, 0x3c, 0x66, 0x33, 0x30, 0x65,
- 0x00, 0x55, 0x56, 0x03, 0x59, 0x0c, 0x0f, 0x5a, 0x5a, 0x0f, 0x0c, 0x59, 0x03, 0x56, 0x55, 0x00
-};
-
-
-/*
- * Creates non-inverted ECC code from line parity
- */
-static void nand_trans_result(unsigned char reg2, unsigned char reg3,
- unsigned char *ecc_code)
-{
- unsigned char a, b, i, tmp1, tmp2;
-
- /* Initialize variables */
- a = b = 0x80;
- tmp1 = tmp2 = 0;
-
- /* Calculate first ECC byte */
- for (i = 0; i < 4; i++) {
- if (reg3 & a) /* LP15,13,11,9 --> ecc_code[0] */
- tmp1 |= b;
- b >>= 1;
- if (reg2 & a) /* LP14,12,10,8 --> ecc_code[0] */
- tmp1 |= b;
- b >>= 1;
- a >>= 1;
- }
-
- /* Calculate second ECC byte */
- b = 0x80;
- for (i = 0; i < 4; i++) {
- if (reg3 & a) /* LP7,5,3,1 --> ecc_code[1] */
- tmp2 |= b;
- b >>= 1;
- if (reg2 & a) /* LP6,4,2,0 --> ecc_code[1] */
- tmp2 |= b;
- b >>= 1;
- a >>= 1;
- }
-
- /* Store two of the ECC bytes */
- ecc_code[0] = tmp1;
- ecc_code[1] = tmp2;
-}
-
-/*
- * Calculate 3 byte ECC code for 256 byte block
- */
-static void nand_calculate_ecc (const unsigned char *dat, unsigned char *ecc_code)
-{
- unsigned char idx, reg1, reg3;
- int j;
-
- /* Initialize variables */
- reg1 = reg3 = 0;
- ecc_code[0] = ecc_code[1] = ecc_code[2] = 0;
-
- /* Build up column parity */
- for(j = 0; j < 256; j++) {
-
- /* Get CP0 - CP5 from table */
- idx = nand_ecc_precalc_table[dat[j]];
- reg1 ^= idx;
-
- /* All bit XOR = 1 ? */
- if (idx & 0x40) {
- reg3 ^= (unsigned char) j;
- }
- }
-
- /* Create non-inverted ECC code from line parity */
- nand_trans_result((reg1 & 0x40) ? ~reg3 : reg3, reg3, ecc_code);
-
- /* Calculate final ECC code */
- ecc_code[0] = ~ecc_code[0];
- ecc_code[1] = ~ecc_code[1];
- ecc_code[2] = ((~reg1) << 2) | 0x03;
-}
-
-void file_open(FILE **f, int *size, const char *filename)
-{
- *f = fopen(filename, "r");
- if (!*f)
- {
- perror(filename);
- exit(1);
- }
- fseek(*f, 0, SEEK_END);
- *size = ftell(*f);
- fseek(*f, 0, SEEK_SET);
-}
-
-void die(const char *msg)
-{
- fprintf(stderr, "%s\n", msg);
- exit(2);
-}
-
-void emit_4(unsigned long val)
-{
- val = htonl(val);
- write(1, &val, 4);
-}
-
-#define TO_SECT(x) (x+sector_size-1)/sector_size
-
-typedef void fnc_encode_ecc(unsigned char *dst, unsigned char *src, int cnt);
-
-void encode_hevers(unsigned char *dst, unsigned char *src, int count)
-{
- if (!largepage)
- {
- dst[0] = count >> 8;
- dst[1] = count & 0xFF;
- unsigned char temp;
- int cnt;
- for(cnt=0; cnt<sector_size; cnt++)
- {
- temp=src[cnt];
- dst[2]^=temp;
- if(cnt & 1)
- dst[6 + 0]^=temp;
- else
- dst[6 + 1]^=temp;
- if(cnt & 2) dst[6 + 2]^=temp;
- if(cnt & 4) dst[6 + 3]^=temp;
- if(cnt & 8) dst[6 + 4]^=temp;
- if(cnt & 16) dst[6 + 5]^=temp;
- if(cnt & 32) dst[6 + 6]^=temp;
- if(cnt & 64) dst[6 + 7]^=temp;
- if(cnt & 128) dst[6 + 8]^=temp;
- if(cnt & 256) dst[6 + 9]^=temp;
- }
- } else
- {
- dst[0] = 0xFF;
- dst[1] = 0xFF;
- dst[2] = count >> 8;
- dst[3] = count & 0xFF;
- unsigned char temp;
- int cnt;
- for(cnt=0; cnt<sector_size; cnt++)
- {
- temp=src[cnt];
- dst[40]^=temp;
- if(cnt & 1)
- dst[41]^=temp;
- else
- dst[42]^=temp;
- if(cnt & 2) dst[43]^=temp;
- if(cnt & 4) dst[44]^=temp;
- if(cnt & 8) dst[45]^=temp;
- if(cnt & 16) dst[46]^=temp;
- if(cnt & 32) dst[47]^=temp;
- if(cnt & 64) dst[48]^=temp;
- if(cnt & 128) dst[49]^=temp;
- if(cnt & 256) dst[50]^=temp;
- }
- }
-}
-
-void encode_jffs2(unsigned char *dst, unsigned char *src, int cnt)
-{
- memset(dst, 0xFF, spare_size);
-
- if (!largepage)
- {
- unsigned char ecc_code[8];
- nand_calculate_ecc (src, ecc_code);
- nand_calculate_ecc (src+256, ecc_code+3);
- dst[0] = ecc_code[0];
- dst[1] = ecc_code[1];
- dst[2] = ecc_code[2];
- dst[3] = ecc_code[3];
- dst[4] = 0xFF;
- dst[5] = 0xFF;
- dst[6] = ecc_code[4];
- dst[7] = ecc_code[5];
-
- if (!(cnt & ((eraseblock_size/sector_size)-1)))
- {
- dst[8] = 0x19;
- dst[9] = 0x85;
- dst[10] = 0x20;
- dst[11] = 0x03;
- dst[12] = 0x00;
- dst[13] = 0x00;
- dst[14] = 0x00;
- dst[15] = 0x08;
- } else
- memset(dst + 8, 0xFF, 8);
- } else
- {
- int i;
- for (i=0; i<8; ++i)
- nand_calculate_ecc (src + i * 256, dst + 40 + i * 3);
-
- if (!(cnt & ((eraseblock_size/sector_size)-1)))
- {
- dst[2] = 0x19;
- dst[3] = 0x85;
- dst[4] = 0x20;
- dst[5] = 0x03;
- dst[6] = 0x00;
- dst[7] = 0x00;
- dst[8] = 0x00;
- dst[9] = 0x08;
- }
- }
-}
-
-void emit_file(FILE *src, int size, fnc_encode_ecc * eccfnc)
-{
- emit_4(size * SECTOR_SIZE_WITH_ECC);
- int cnt = 0;
- while (1)
- {
- unsigned char sector[sector_size + spare_size];
- memset(sector, 0xFF, sector_size + spare_size);
- int r = fread(sector, 1, sector_size, src);
- if (!r)
- break;
- eccfnc(sector + sector_size, sector, cnt);
- write(1, sector, SECTOR_SIZE_WITH_ECC);
- ++cnt;
- }
- if (cnt != size)
- die("size changed");
-}
-
- /* reserve to two sectors plus 1% for badblocks, and round down */
-#define BADBLOCK_SAFE(x) ( ((x) - (eraseblock_size * 2) - (x) / 100) &~ eraseblock_size )
-
-int main(int argc, char **argv)
-{
- if ((argc != 4) && (argc != 5) && (argc != 6) && (argc != 7) )
- {
- fprintf(stderr, "usage: %s <2nd.bin.gz> <boot.jffs2> <root.jffs2> [<arch>] [<flashsize-in-mb>] [options]> image.nfi\n", *argv);
- return 1;
- }
-
- FILE *f_2nd, *f_boot, *f_root;
- int size_2nd, size_boot, size_root;
-
- file_open(&f_2nd, &size_2nd, argv[1]);
- file_open(&f_boot, &size_boot, argv[2]);
- file_open(&f_root, &size_root, argv[3]);
-
- int flashsize = 32*1024*1024;
- if (argc >= 6)
- flashsize = atoi(argv[5]) * 1024 * 1024;
-
-
- int partition[] = {0x40000, 0x400000, flashsize};
-
- if ((argc >= 7) && strstr(argv[6], "large"))
- {
- largepage = 1;
- eraseblock_size = 128*1024;
- spare_size = 64;
- sector_size = 2048;
- partition[0] = 0x100000;
- } else
- {
- largepage = 0;
- eraseblock_size = 16384;
- spare_size = 16;
- sector_size = 512;
- partition[0] = 0x40000;
- }
-
- if (size_2nd > BADBLOCK_SAFE(partition[0]))
- die("2nd stage is too big. did you gzip it before?");
- if (size_boot > BADBLOCK_SAFE(partition[1] - partition[0]))
- die("boot is too big. You can modify the buildimage tool, but you don't want that.");
- if (size_root > BADBLOCK_SAFE(partition[2] - partition[1]))
- die("root is too big. This doesn't work. sorry.");
-
- int sectors_2nd = TO_SECT(size_2nd), sectors_boot = TO_SECT(size_boot), sectors_root = TO_SECT(size_root);
-
- int num_partitions = 3;
-
- int total_size = 4 + num_partitions * 4 + 4 + sectors_2nd * SECTOR_SIZE_WITH_ECC + 4 + sectors_boot * SECTOR_SIZE_WITH_ECC + 4 + sectors_root * SECTOR_SIZE_WITH_ECC;
-
- /* in case an architecture is given, write NFI1 header */
- if (argc >= 5)
- {
- char header[32] = "NFI1";
- strncpy(header + 4, argv[4], 28);
- write(1, header, 32);
- }
-
- /* global header */
- emit_4(total_size);
-
- /* partition */
- emit_4(num_partitions * 4);
- int i;
- for (i=0; i < num_partitions; ++i)
- emit_4(partition[i]);
-
- /* 2nd stage */
- emit_file(f_2nd, sectors_2nd, encode_hevers);
- /* boot + root */
- emit_file(f_boot, sectors_boot, encode_jffs2);
- emit_file(f_root, sectors_root, encode_jffs2);
-
- return 0;
-}
+++ /dev/null
-DESCRIPTION = "Dreambox compatibility links"
-SECTION = "base"
-PRIORITY = "required"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-PV = "1.0"
-PR = "r0"
-
-FILES = "/lib/libgcc_s_nof.so.1"
-PACKAGE_ARCH = "all"
-
-do_install() {
- install -d ${D}/lib
- ln -sf libgcc_s.so.1 ${D}/lib/libgcc_s_nof.so.1
-}
+++ /dev/null
-DESCRIPTION = "Dreamcrypt/Firecrypt Conditional Access Daemon"
-SECTION = "base"
-PRIORITY = "optional"
-LICENSE = "proprietary"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-
-PV = "1.1"
-PR = "r2"
-
-SRC_URI = "http://sources.dreamboxupdate.com/download/7020/dccamd-${MACHINE}-${PV} \
- http://sources.dreamboxupdate.com/download/7020/wdog-${MACHINE} \
- file://dccamd.sh"
-
-S = "${WORKDIR}"
-
-INHIBIT_PACKAGE_STRIP = "1"
-
-do_install() {
- install -d ${D}/usr/bin
- install -d ${D}/etc/init.d
- install -m 0755 ${WORKDIR}/dccamd-${MACHINE}-${PV} ${D}/usr/bin/dccamd
- install -m 0755 ${WORKDIR}/wdog-${MACHINE} ${D}/usr/bin/wdog
-}
-
-PACKAGE_ARCH := "${MACHINE_ARCH}"
-FILES_${PN} = "/"
+++ /dev/null
-#!/bin/sh
-
-usage()
-{
- echo "Usage: $0 {start|stop|status|restart|reload}"
-}
-
-if [ $# -lt 1 ] ; then usage ; break ; fi
-action=$1
-
-case "$action" in
-
-start)
- echo -n "Start Dreamcrypt cam daemon:"
- /usr/bin/wdog /usr/bin/dccamd -
- echo " dccamd."
- ;;
-
-stop)
- echo -n "Stopping Dreamcrypt cam daemon: dccamd"
- killall wdog dccamd
- echo "."
- ;;
-
-status)
- ;;
-
-restart|reload)
- $0 stop
- $0 start
- ;;
-
-*)
- usage
- ;;
-
-esac
-
-exit 0
+++ /dev/null
-DESCRIPTION = "Hardware drivers for Dreambox"
-SECTION = "base"
-PRIORITY = "required"
-LICENSE = "proprietary"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-RDEPENDS_dm8000 = "dreambox-secondstage"
-RDEPENDS_dm800 = "dreambox-secondstage"
-
-KV_dm7020 = "2.6.9"
-PV_dm7020 = "${KV}-20060622"
-
-def get_modules_extension(bb, d):
- if 'nptl' in bb.data.getVar('GLIBC_ADDONS', d, 1):
- return "-gcc4.1"
- return ""
-
-KV_dm7025 = "2.6.12.6"
-PV_dm7025 = "${KV}-20090206${@get_modules_extension(bb, d)}"
-
-KV_dm600pvr = "2.6.12"
-PV_dm600pvr = "${KV}-20080822"
-
-KV_dm500plus = "2.6.12"
-PV_dm500plus = "${KV}-20080822"
-
-KV_dm800 = "2.6.12-5.1-brcmstb-dm800"
-PV_dm800 = "${KV}-20090206"
-
-KV_dm8000 = "2.6.12-5.1-brcmstb-dm8000"
-PV_dm8000 = "${KV}-20090206"
-
-RDEPENDS = "kernel (${KV})"
-PR = "r0"
-
-SRC_URI = "http://sources.dreamboxupdate.com/snapshots/dreambox-dvb-modules-${MACHINE}-${PV}.tar.bz2 "
-SRC_URI_append_dm7025 = "http://sources.dreamboxupdate.com/download/7020/fpupgrade-${MACHINE}-v7"
-SRC_URI_append_dm8000 = "http://sources.dreamboxupdate.com/download/7020/fpupgrade-${MACHINE}-v5"
-
-S = "${WORKDIR}"
-
-do_install() {
- install -d ${D}/lib/modules/${KV}/extra
- for f in head; do
- install -m 0644 $f.ko ${D}/lib/modules/${KV}/extra/$f.ko;
- done
-}
-
-do_install_dm800() {
- install -d ${D}/lib/modules/${KV}/extra
- for f in *.ko LICENSE; do
- install -m 0644 ${WORKDIR}/$f ${D}/lib/modules/${KV}/extra/$f;
- done
-}
-
-do_install_dm7025() {
- do_install_dm800
- install -d ${D}${sbindir}
- install -m 0755 ${WORKDIR}/fpupgrade-${MACHINE}-v7 ${D}${sbindir}/fpupgrade
-}
-
-do_install_dm8000() {
- do_install_dm800
- install -d ${D}${sbindir}
- install -m 0755 ${WORKDIR}/fpupgrade-${MACHINE}-v5 ${D}${sbindir}/fpupgrade
-}
-
-PACKAGE_ARCH := "${MACHINE_ARCH}"
-FILES_${PN} = "/"
+++ /dev/null
-#!/bin/sh
-
-usage()
-{
- echo "Usage: $0 {start|stop|status|restart|reload}"
-}
-
-if [ $# -lt 1 ] ; then usage ; break ; fi
-action=$1
-
-case "$action" in
-
-start)
- echo -n "Start Dreambox DVB Subsystem:"
- /sbin/insmod /lib/modules/`uname -r`/extra/head.ko
- echo " head."
-
- # redisplay bootlogo, either the "wait..." or the normal
- [ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
- ;;
-
-stop)
- ;;
-
-status)
- ;;
-
-restart|reload)
- $0 stop
- $0 start
- ;;
-
-*)
- usage
- ;;
-
-esac
-
-exit 0
+++ /dev/null
-#!/bin/sh
-
-usage()
-{
- echo "Usage: $0 {start|stop|status|restart|reload}"
-}
-
-if [ $# -lt 1 ] ; then usage ; break ; fi
-action=$1
-
-case "$action" in
-
-start)
- echo -n "Start Dreambox DVB Subsystem:"
-
- modprobe dreambox_keyboard
- modprobe fp
- modprobe rfmod
-
- echo " done!"
-
- # redisplay bootlogo, either the "wait..." or the normal
- [ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
- ;;
-
-stop)
- ;;
-
-status)
- ;;
-
-restart|reload)
- $0 stop
- $0 start
- ;;
-
-*)
- usage
- ;;
-
-esac
-
-exit 0
+++ /dev/null
-DESCRIPTION = "Small utilities specific to the dreambox dvb receiver (for DVB v3)"
-SECTION = "base"
-PRIORITY = "optional"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-LICENSE = "GPL"
-
-PV = "1.5"
-PR = "r0"
-
-SRC_URI = "http://sources.dreamboxupdate.com/download/opendreambox/dreambox-dvb-tools-v3-${PV}.tar.gz"
-
-inherit qmake
-
-UTILS = "showiframe"
-
-do_configure_prepend() {
- cd ${S}/
- echo "TEMPLATE=subdirs" > dmutils.pro
- echo "CONFIG=console" >> dmutils.pro
- echo "SUBDIRS=${UTILS}" >> dmutils.pro
-}
-
-do_install() {
- install -d ${D}/${bindir}/
- for u in ${UTILS}
- do
- install -m 0755 ${S}/${u}/${u} ${D}/${bindir}/
- done
-}
+++ /dev/null
-DESCRIPTION = "Small utilities specific to the dreambox dvb receiver (for DVB v1)"
-DEPENDS = "dreambox-dvbincludes"
-SECTION = "base"
-PRIORITY = "optional"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-LICENSE = "GPL"
-PV = "1.0"
-PR = "r0"
-
-SRC_URI = "http://sources.dreamboxupdate.com/download/opendreambox/dreambox-dvb-tools-1.0.tar.gz"
-
-inherit qmake
-
-UTILS = "grabpic showiframe dvbnet test_tbl test_dmx"
-
-do_configure_prepend() {
- cd ${S}/
- echo "TEMPLATE=subdirs" > dmutils.pro
- echo "CONFIG=console" >> dmutils.pro
- echo "SUBDIRS=${UTILS}" >> dmutils.pro
-}
-
-do_install() {
- install -d ${D}/${bindir}/
- for u in ${UTILS}
- do
- install -m 0755 ${S}/${u}/${u} ${D}/${bindir}/
- done
-}
+++ /dev/null
-DESCRIPTION = "This package provides dbox2/dreambox \
-compatible header files for the API to the drivers."
-
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-
-SRC_URI = "http://sources.dreamboxupdate.com/snapshots/include2.tar.gz"
-S = "${WORKDIR}/include"
-
-ALLOW_EMPTY_dreambox-dvbincludes = "1"
-
-INPUT_FILES = "input_fake.h ci/ci.h dbox/avia_gt_pig.h dbox/avs_core.h \
- dbox/event.h dbox/fp.h dbox/info.h dbox/lcd.h dbox/saa7126_core.h \
- dbox/lcd-ks0713.h dbox/fb.h \
- dreambox/dreaminfo.h \
- tuxbox/hardware_dbox2.h tuxbox/hardware_dreambox.h tuxbox/hardware_pci.h \
- tuxbox/info.h tuxbox/info_dbox2.h tuxbox/kernel.h"
-
-INPUT_FILES_OST = " ost/audio.h ost/ca.h ost/demux.h ost/descrambler.h ost/dmx.h \
- ost/dvb.h ost/dvb_frontend.h ost/frontend.h ost/net.h ost/sec.h \
- ost/video.h "
-
-PV="1"
-
-do_install_dm7020() {
- install -d ${STAGING_INCDIR}/ci
- install -d ${STAGING_INCDIR}/dbox
- install -d ${STAGING_INCDIR}/dreambox
- install -d ${STAGING_INCDIR}/ost
- install -d ${STAGING_INCDIR}/tuxbox
- for f in ${INPUT_FILES} ${INPUT_FILES_OST}; do
- install -m 0644 ${S}/$f ${STAGING_INCDIR}/$f
- done;
-}
-
-do_install_dm600pvr() {
- install -d ${STAGING_INCDIR}/ci
- install -d ${STAGING_INCDIR}/dbox
- install -d ${STAGING_INCDIR}/dreambox
- install -d ${STAGING_INCDIR}/ost
- install -d ${STAGING_INCDIR}/tuxbox
- for f in ${INPUT_FILES} ${INPUT_FILES_OST}; do
- install -m 0644 ${S}/$f ${STAGING_INCDIR}/$f
- done;
-}
-
-do_install_dm500plus() {
- install -d ${STAGING_INCDIR}/ci
- install -d ${STAGING_INCDIR}/dbox
- install -d ${STAGING_INCDIR}/dreambox
- install -d ${STAGING_INCDIR}/ost
- install -d ${STAGING_INCDIR}/tuxbox
- for f in ${INPUT_FILES} ${INPUT_FILES_OST}; do
- install -m 0644 ${S}/$f ${STAGING_INCDIR}/$f
- done;
-}
-
-do_install_dm7025() {
- install -d ${STAGING_INCDIR}/ci
- install -d ${STAGING_INCDIR}/dbox
- install -d ${STAGING_INCDIR}/dreambox
- install -d ${STAGING_INCDIR}/tuxbox
- for f in ${INPUT_FILES}; do
- install -m 0644 ${S}/$f ${STAGING_INCDIR}/$f
- done;
-}
-
-do_install_dm800() {
- install -d ${STAGING_INCDIR}/ci
- install -d ${STAGING_INCDIR}/dbox
- install -d ${STAGING_INCDIR}/dreambox
- install -d ${STAGING_INCDIR}/tuxbox
- for f in ${INPUT_FILES}; do
- install -m 0644 ${S}/$f ${STAGING_INCDIR}/$f
- done;
-}
-
-do_install_dm8000() {
- install -d ${STAGING_INCDIR}/ci
- install -d ${STAGING_INCDIR}/dbox
- install -d ${STAGING_INCDIR}/dreambox
- install -d ${STAGING_INCDIR}/tuxbox
- for f in ${INPUT_FILES}; do
- install -m 0644 ${S}/$f ${STAGING_INCDIR}/$f
- done;
-}
+++ /dev/null
-DESCRIPTION = "Configuration files for online package repositories aka feeds"
-PR = "r0"
-
-DISTRO_FEED_PREFIX ?= "official"
-DISTRO_FEED_URI ?= "http://sources.dreamboxupdate.com/${DISTRO}/${DISTRO_VERSION}"
-
-do_compile() {
- mkdir -p ${S}/${sysconfdir}/opkg
- for feed in all ${TARGET_ARCH} ${MACHINE_ARCH}; do
- echo "src/gz ${DISTRO_FEED_PREFIX}-${feed} ${DISTRO_FEED_URI}/${feed}" > ${S}/${sysconfdir}/opkg/${feed}-feed.conf
- done
-}
-do_install () {
- install -d ${D}${sysconfdir}/opkg
- install -m 0644 ${S}/${sysconfdir}/opkg/* ${D}${sysconfdir}/opkg/
-}
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-CONFFILES_${PN} += '${@ " ".join( [ ( "${sysconfdir}/opkg/%s-feed.conf" % feed ) for feed in "all ${TARGET_ARCH} ${MACHINE_ARCH}".split() ] ) }'
+++ /dev/null
-DESCRIPTION = "Dreambox Keyboard Keymap files"
-LICENSE = "GPL"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-
-SRC_URI = "file://dream-de.info file://dream-de.kmap file://eng.info file://eng.kmap"
-
-PR = "r1"
-
-FILES_${PN} = "/"
-PACKAGE_ARCH = "all"
-
-do_install() {
- install -d ${D}/usr/share/keymaps
- for x in dream-de.info dream-de.kmap eng.info eng.kmap; do
- install -m 0644 ${WORKDIR}/$x ${D}/usr/share/keymaps/$x
- done
-}
+++ /dev/null
-kmap=dream-de.kmap
-name=Dreambox Keyboard Deutsch
+++ /dev/null
-kmap=eng.kmap
-name=Keyboard English
+++ /dev/null
-DESCRIPTION = "Dreambox second stage bootloader"
-SECTION = "base"
-PRIORITY = "required"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-PV_dm7020 = "35"
-PV_dm7025 = "61"
-PV_dm600pvr = "66"
-PV_dm500plus = "66"
-PV_dm8000 = "71"
-PV_dm800 = "70"
-PR = "r1"
-
-SRC_URI = "http://sources.dreamboxupdate.com/download/7020/secondstage-${MACHINE}-${PV}.bin"
-
-SECONDSTAGE_UPDATE_SRC = "http://sources.dreamboxupdate.com/download/7020/secondstage-${MACHINE}-${PV}.nfi \
- http://sources.dreamboxupdate.com/download/7020/writenfi-r1"
-
-SRC_URI_append_dm8000 = " ${SECONDSTAGE_UPDATE_SRC}"
-SRC_URI_append_dm800 = " ${SECONDSTAGE_UPDATE_SRC}"
-
-S = "${WORKDIR}"
-
-do_stage() {
- install -d ${STAGING_LIBDIR}/dreambox-secondstage
- gzip -c ${S}/secondstage-${MACHINE}-${PV}.bin > ${STAGING_LIBDIR}/dreambox-secondstage/main.bin.gz
-}
-
-# the dm{800,8000} secondstage is already compressed (and encrypted)
-
-do_stage_dm8000() {
- install -d ${STAGING_LIBDIR}/dreambox-secondstage
- cp ${S}/secondstage-${MACHINE}-${PV}.bin ${STAGING_LIBDIR}/dreambox-secondstage/main.bin.gz
-}
-
-do_install_dm8000() {
- install -d ${D}/tmp
- install ${WORKDIR}/secondstage-${MACHINE}-${PV}.nfi ${D}/tmp/secondstage.nfi
- install -m 0755 ${WORKDIR}/writenfi-r1 ${D}/tmp/writenfi
-}
-
-do_stage_dm800() {
- do_stage_dm8000
-}
-
-do_install_dm800() {
- do_install_dm8000
-}
-
-FILES_${PN} = "/tmp"
-PACKAGE_ARCH := "${MACHINE_ARCH}"
-
-pkg_postinst() {
- if [ -d /proc/stb ]; then
- if [ -f /tmp/writenfi ]; then
- /tmp/writenfi /tmp/secondstage.nfi;
- rm /tmp/writenfi /tmp/secondstage.nfi;
- fi
- fi
-}
+++ /dev/null
-DESCRIPTION = "dvd+rw-tools makes it possible to burn DVD images"
-LICENSE = "GPL"
-SECTION = "optional"
-
-SRC_URI = "http://fy.chalmers.se/~appro/linux/DVD+RW/tools/${PN}-${PV}.tar.gz"
-
-inherit autotools
-
-EXTRA_OEMAKE = "'CC=${CC}' 'CXX=${CXX}' \
- 'CFLAGS=${CFLAGS} ${LDFLAGS}' 'prefix=${D}'"
+++ /dev/null
-DESCRIPTION = "A set of tools to help you generate DVD files to be played back on a standalone DVD player."
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-LICENSE = "GPL"
-SECTION = "optional"
-DEPENDS = "libdvdread"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/dvdauthor/dvdauthor-${PV}.tar.gz \
- file://dvdauthor-fix-fribidi.patch;patch=1;pnum=1 \
- file://dvdauthor-flush-progress.patch;patch=1;pnum=1 \
- file://dvdauthor-fix-old-freetype.patch;patch=1;pnum=1"
-
-PR="r1"
-inherit autotools
+++ /dev/null
-Index: dvdauthor-0.6.14/configure.ac
-===================================================================
---- dvdauthor-0.6.14.orig/configure.ac 2008-04-08 23:57:39.000000000 +0200
-+++ dvdauthor-0.6.14/configure.ac 2008-04-08 23:56:53.000000000 +0200
-@@ -57,12 +57,10 @@
- AC_SUBST(MAGICK_CPPFLAGS)
- AC_SUBST(MAGICK_LIBS)
-
--AC_CHECK_PROGS(FRIBIDICONFIG, [fribidi-config])
--if test -n "$FRIBIDICONFIG"; then
-- FRIBIDI_CPPFLAGS="`$FRIBIDICONFIG --cflags`"
-- FRIBIDI_LIBS="`$FRIBIDICONFIG --libs`"
-- AC_DEFINE(HAVE_FRIBIDI, 1, [Whether FriBiDi is available])
--fi
-+PKG_CHECK_MODULES(FRIBIDI, fribidi)
-+AC_SUBST(FRIBIDI_CFLAGS)
-+AC_SUBST(FRIBIDI_LIBS)
-+AC_DEFINE(HAVE_FRIBIDI, 1, [Whether FriBiDi is available])
-
- AC_SUBST(FRIBIDI_CPPFLAGS)
- AC_SUBST(FRIBIDI_LIBS)
+++ /dev/null
-Index: dvdauthor-0.6.14/src/subfont.c
-===================================================================
---- dvdauthor-0.6.14.orig/src/subfont.c 2008-04-08 23:58:04.000000000 +0200
-+++ dvdauthor-0.6.14/src/subfont.c 2008-04-08 23:56:50.000000000 +0200
-@@ -557,7 +557,7 @@
- desc->font[c] = -1;
- return;
- }
-- if( oglyph->format != FT_GLYPH_FORMAT_BITMAP ) {
-+ if( oglyph->format != ft_glyph_format_bitmap ) {
- WARNING("FT_Get_Glyph did not return a bitmap glyph.");
- desc->font[c] = -1;
- return;
+++ /dev/null
---- ./src/dvdvob.c~ 2007-01-13 00:52:20.000000000 +0100
-+++ ./src/dvdvob.c 2008-11-05 14:49:42.000000000 +0100
-@@ -741,7 +741,7 @@
- nv+=va->vobs[j]->numvobus;
-
- // fprintf(stderr,"STAT: VOBU %d at %dMB, %d PGCS, %d:%02d:%02d\r",nv,cursect/512,va->numallpgcs,total/324000000,(total%324000000)/5400000,(total%5400000)/90000);
-- fprintf(stderr,"STAT: VOBU %d at %dMB, %d PGCS\r",nv,cursect/512,va->numallpgcs);
-+ fprintf(stderr,"STAT: VOBU %d at %dMB, %d PGCS\n",nv,cursect/512,va->numallpgcs);
- }
-
- static void audio_scan_ac3(struct audchannel *ach,unsigned char *buf,int sof,int len)
+++ /dev/null
-DEPENDS = "enigma"
-DESCRIPTION = "Enigma Blindscan Plugin"
-MAINTAINER = "Andreas Monzner <ghost@dream-multimedia-tv.de>"
-LICENSE = "GPL"
-
-SRC_URI = "http://sources.dreamboxupdate.com/download/opendreambox/enigma/enigma-blindscan-${PV}.tar.bz2"
-
-PV = "0.1"
-PN = "enigma-blindscan"
-PR = "r0"
-
-PACKAGES = "enigma-blindscan"
-
-S = "${WORKDIR}/enigma-blindscan-${PV}"
-
-inherit autotools pkgconfig
-
-FILES_${PN} = "/usr/lib/tuxbox/plugins/enigma_blindscan.so \
- /usr/lib/tuxbox/plugins/enigma_blindscan.cfg"
-
-EXTRA_OECONF = "--with-target=native "
+++ /dev/null
-DEPENDS = "enigma"
-DESCRIPTION = "Enigma Modem Plugin"
-MAINTAINER = "Andreas Monzner <ghost@dream-multimedia-tv.de>"
-LICENSE = "GPL"
-
-SRC_URI = "http://sources.dreamboxupdate.com/download/opendreambox/enigma/enigma-modem-${PV}.tar.gz"
-
-PV = "0.3"
-PN = "enigma-modem"
-PR = "r0"
-
-PACKAGES = "enigma-modem"
-
-S = "${WORKDIR}/enigma-modem-${PV}"
-
-inherit autotools pkgconfig
-
-FILES_${PN} = "/usr/lib/tuxbox/plugins/enigma_modem.so \
- /usr/lib/tuxbox/plugins/enigma_modem.cfg \
- /etc/ppp/options \
- /etc/ppp/pap-secrets \
- /etc/ppp/dial.modem \
- /etc/ppp/disconnect.modem \
- /etc/ppp/ip-up.d/01peerdns /etc/ppp/ip-down.d/01peerdns-remove"
-
-EXTRA_OECONF = "--with-target=native "
-
-PPP_FILES = "dial.modem options disconnect.modem pap-secrets"
-
-do_install_append() {
- install -d ${D}/etc/ppp
- for i in dial.modem disconnect.modem; do
- install -m 0755 ${S}/$i ${D}/etc/ppp/
- done;
- for i in options pap-secrets; do
- install -m 0644 ${S}/$i ${D}/etc/ppp/
- done;
- install -d ${D}/etc/ppp/ip-up.d
- install -m 0755 ${S}/01peerdns ${D}/etc/ppp/ip-up.d
- install -d ${D}/etc/ppp/ip-down.d
- install -m 0755 ${S}/01peerdns-remove ${D}/etc/ppp/ip-down.d
-}
-
+++ /dev/null
-Index: src/enigma_scan.cpp
-===================================================================
-RCS file: /cvs/tuxbox/apps/tuxbox/b/src/enigma_scan.cpp,v
-retrieving revision 1.25
-diff -u -r1.25 enigma_scan.cpp
---- a/src/enigma_scan.cpp 5 Feb 2006 23:41:01 -0000 1.25
-+++ b/src/enigma_scan.cpp 21 Aug 2007 17:08:27 -0000
-@@ -27,6 +27,7 @@
- #include <scan.h>
- #include <satfind.h>
- #include <tpeditwindow.h>
-+#include <enigma_plugins.h>
- #include <lib/base/i18n.h>
- #include <lib/dvb/edvb.h>
- #include <lib/dvb/frontend.h>
-@@ -63,6 +64,8 @@
- CONNECT((new eListBoxEntryMenu(&list, _("Automatic Multisat Scan"), eString().sprintf("(%d) %s", ++entry, _("open automatic multisat transponder scan"))))->selected, eZapScan::sel_multiScan);
-
- CONNECT((new eListBoxEntryMenu(&list, _("Manual Transponder Scan"), eString().sprintf("(%d) %s", ++entry, _("open manual transponder scan"))))->selected, eZapScan::sel_manualScan);
-+ if ( eFrontend::getInstance()->canBlindScan() && eZapPlugins(2).execPluginByName("enigma_blindscan.cfg", true) == "OK" )
-+ CONNECT((new eListBoxEntryMenu(&list, _("Satellite Blindscan"), eString().sprintf("(%d) %s", ++entry, _("open transponder blindscan"))))->selected, eZapScan::sel_blindScan);
- }
-
- void eZapScan::sel_satfind()
-@@ -111,6 +114,13 @@
- show();
- }
-
-+void eZapScan::sel_blindScan()
-+{
-+ hide();
-+ eZapPlugins(2).execPluginByName("enigma_blindscan.cfg");
-+ show();
-+}
-+
- void eZapScan::sel_satconfig()
- {
- hide();
-Index: src/enigma_scan.h
-===================================================================
-RCS file: /cvs/tuxbox/apps/tuxbox/b/src/enigma_scan.h,v
-retrieving revision 1.7
-diff -u -r1.7 enigma_scan.h
---- a/src/enigma_scan.h 26 Oct 2003 00:41:17 -0000 1.7
-+++ b/src/enigma_scan.h 21 Aug 2007 17:08:27 -0000
-@@ -25,6 +25,7 @@
- void sel_multiScan();
- void sel_manualScan();
- void sel_satfind();
-+ void sel_blindScan();
- public:
- static eLNB* getRotorLNB(int silent);
- eZapScan();
-Index: src/scan.cpp
-===================================================================
-RCS file: /cvs/tuxbox/apps/tuxbox/b/src/scan.cpp,v
-retrieving revision 1.92
-diff -u -r1.92 scan.cpp
---- a/src/scan.cpp 5 Feb 2006 23:41:01 -0000 1.92
-+++ b/src/scan.cpp 21 Aug 2007 17:08:27 -0000
-@@ -3,6 +3,7 @@
- #include <enigma.h>
-
- #include <enigma_main.h>
-+#include <enigma_plugins.h>
- #include <lib/base/i18n.h>
- #include <lib/dvb/frontend.h>
- #include <lib/dvb/si.h>
-@@ -45,6 +46,8 @@
- new eListBoxEntryMenuItem(list, _("Automatic Multisat Scan"), (void*)3, 0, _("open automatic multisat transponder scan") );
- new eListBoxEntryMenuItem(list, _("manual scan.."), (void*)1, 0, _("open manual transponder scan") );
- CONNECT(list->selected, tsSelectType::selected);
-+ if ( eFrontend::getInstance()->canBlindScan() && eZapPlugins(2).execPluginByName("enigma_blindscan.cfg", true) == "OK" )
-+ new eListBoxEntryMenuItem(list, _("Satellite Blindscan"), (void*)4, 0, _("open transponder blindscan") );
- }
-
- void tsSelectType::selected(eListBoxEntryMenu *entry)
-@@ -989,6 +992,22 @@
- }
- }
-
-+
-+struct countTransponders
-+{
-+ int &m_cnt;
-+ countTransponders(int &cnt)
-+ :m_cnt(cnt)
-+ {
-+ m_cnt=0;
-+ }
-+ void operator()(eTransponder &t)
-+ {
-+ ++m_cnt;
-+ }
-+};
-+
-+
- int TransponderScan::Exec()
- {
- tState state = stateInitial;
-@@ -1335,6 +1354,20 @@
- state=stateDone;
- break;
- }
-+ case stateBlind:
-+ {
-+ int tp_count_old, tp_count_new;
-+ eTransponderList::getInstance()->forEachTransponder(countTransponders(tp_count_old));
-+ eWindow::globalCancel(eWindow::ON);
-+ hide();
-+ eZapPlugins(2).execPluginByName("enigma_blindscan.cfg");
-+ show();
-+ state=stateEnd;
-+ eWindow::globalCancel(eWindow::OFF);
-+ eTransponderList::getInstance()->forEachTransponder(countTransponders(tp_count_new));
-+ ret=tp_count_new > tp_count_old ? 0 : 1;
-+ break;
-+ }
- case stateScan:
- {
- if ( eSystemInfo::getInstance()->getFEType() == eSystemInfo::feSatellite )
-Index: src/scan.h
-===================================================================
-RCS file: /cvs/tuxbox/apps/tuxbox/b/src/scan.h,v
-retrieving revision 1.38
-diff -u -r1.38 scan.h
---- a/src/scan.h 20 Feb 2007 21:57:05 -0000 1.38
-+++ b/src/scan.h 21 Aug 2007 17:08:27 -0000
-@@ -172,6 +172,7 @@
- stateManual,
- stateAutomatic,
- stateMulti,
-+ stateBlind,
- stateScan,
- stateMultiScan,
- stateDone,
-diff -Naur a/include/lib/dvb/frontend.h b/include/lib/dvb/frontend.h
---- a/include/lib/dvb/frontend.h 2007-08-21 22:04:22.000000000 +0200
-+++ b/include/lib/dvb/frontend.h 2007-08-24 00:59:42.000000000 +0200
-@@ -112,6 +112,7 @@
- voltage,
- increased;
- ///////////////////
-+ bool m_canBlindScan;
- #if HAVE_DVB_API_VERSION < 3
- FrontendParameters front;
- #else
-@@ -157,6 +158,7 @@
- static eFrontend *getInstance() { return frontend; }
-
- int Type() { return type; }
-+ int canBlindScan() { return m_canBlindScan; }
-
- int Status();
- int Locked() { return Status()&FE_HAS_LOCK; }
-diff -Naur a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp
---- a/lib/dvb/frontend.cpp 2007-08-21 22:04:22.000000000 +0200
-+++ b/lib/dvb/frontend.cpp 2007-08-24 01:00:13.000000000 +0200
-@@ -42,7 +42,7 @@
- #endif
- checkRotorLockTimer(eApp), checkLockTimer(eApp),
- updateTransponderTimer(eApp), sn(0), noRotorCmd(0),
-- idlePowerInput_l(0), idlePowerInput_h(0)
-+ idlePowerInput_l(0), idlePowerInput_h(0), m_canBlindScan(false)
- {
- CONNECT(rotorTimer1.timeout, eFrontend::RotorStartLoop );
- CONNECT(rotorTimer2.timeout, eFrontend::RotorRunningLoop );
-@@ -99,6 +99,27 @@
- curContTone = curVoltage = -1;
- #endif
- needreset = 2;
-+
-+// check if tuner can blindscan
-+ if (type == eSystemInfo::feSatellite)
-+ {
-+ FILE *f=fopen("/proc/bus/nim_sockets", "rt");
-+ while (f)
-+ {
-+ char buffer[128];
-+ if (!fgets(buffer, 128, f))
-+ {
-+ fclose(f);
-+ break;
-+ }
-+ if (strstr(buffer, "Name:") && strstr(buffer, "Alps -S(STV0288)"))
-+ {
-+ m_canBlindScan=true;
-+ fclose(f);
-+ break;
-+ }
-+ }
-+ }
- }
-
- void eFrontend::checkLock()
+++ /dev/null
-diff -Naur enigma/Makefile.am enigma_boot/Makefile.am
---- enigma/Makefile.am 2005-09-28 10:49:03.000000000 +0200
-+++ enigma_boot/Makefile.am 2005-10-31 11:29:55.000000000 +0100
-@@ -1,3 +1,3 @@
- AUTOMAKE_OPTIONS = gnu
-
--SUBDIRS = include lib src po data doc boot
-+SUBDIRS = include lib src po data doc
+++ /dev/null
---- enigma-org/lib/dvb/dvbscan.cpp 11 Oct 2005 20:34:36 -0000 1.34
-+++ enigma/lib/dvb/dvbscan.cpp 29 Apr 2008 14:43:47 -0000
-@@ -244,11 +244,15 @@
- break;
- }
- }
--
-+
- eDVBNamespace dvb_namespace =
- tp.satellite.isValid()
- ?eTransponder::buildNamespace(onid,tsid,tp.satellite.orbital_position,tp.satellite.frequency, tp.satellite.polarisation)
-- :-1;
-+ :tp.cable.isValid()
-+ ?eTransponder::buildNamespace(onid,tsid, 0xFFFF, tp.cable.frequency, 0)
-+ :tp.terrestrial.isValid()
-+ ?eTransponder::buildNamespace(onid,tsid, 0xEEEE, tp.terrestrial.centre_frequency/1000, 0)
-+ :-1; // should not happen
-
- tp.dvb_namespace=dvb_namespace;
-
-@@ -390,14 +394,17 @@
- // build "namespace" to work around buggy satellites
- if (transponder->satellite.valid)
- dvb_namespace=eTransponder::buildNamespace(onid, tsid, transponder->satellite.orbital_position, transponder->satellite.frequency, transponder->satellite.polarisation);
-+ else if (transponder->cable.valid)
-+ dvb_namespace=eTransponder::buildNamespace(onid, tsid, 0xFFFF, transponder->cable.frequency, 0);
-+ else if (transponder->terrestrial.valid)
-+ dvb_namespace=eTransponder::buildNamespace(onid, tsid, 0xEEEE, transponder->terrestrial.centre_frequency/1000, 0);
- else
-- dvb_namespace=0;
-+ dvb_namespace=0; // should not happen!
-
- transponder->dvb_namespace=dvb_namespace;
-
- eTransponder *tmp = 0;
-- if ( transponder->satellite.valid &&
-- dvb_namespace.get() & 0xFFFF ) // feeds.. scpc.. or muxxers with default values
-+ if ( dvb_namespace.get() & 0xFFFF ) // feeds.. scpc.. or muxxers with default values
- {
- eDebug("[SCAN] SCPC detected... compare complete transponder");
- // we must search transponder via freq pol usw..
---- enigma-org/src/scan.cpp 17 Dec 2007 15:09:13 -0000 1.93
-+++ enigma/src/scan.cpp 29 Apr 2008 14:44:15 -0000
-@@ -2004,8 +2004,16 @@
- transponder.satellite.orbital_position,
- transponder.satellite.frequency,
- transponder.satellite.polarisation);
-- else
-- dvb_namespace=0;
-+ else if (transponder.cable.valid)
-+ dvb_namespace=eTransponder::buildNamespace(onid, tsid,
-+ 0xFFFF,
-+ transponder.cable.frequency,
-+ 0);
-+ else if (transponder.terrestrial.valid)
-+ dvb_namespace=eTransponder::buildNamespace(onid, tsid,
-+ 0xEEEE,
-+ transponder.terrestrial.centre_frequency/1000, // centre_freq is in hz
-+ 0);
-
- transponder.dvb_namespace=dvb_namespace;
-
+++ /dev/null
-diff -auNr enigma/include/lib/dvb/dvb.h enigma-gcc4hack/include/lib/dvb/dvb.h
---- enigma/include/lib/dvb/dvb.h 2007-03-16 19:25:43.000000000 +0100
-+++ enigma-gcc4hack/include/lib/dvb/dvb.h 2009-01-01 20:10:47.000000000 +0100
-@@ -945,11 +945,13 @@
- for (std::map<tsref,eTransponder>::iterator i(transponders.begin()); i!=transponders.end(); ++i)
- ob(i->second);
- }
-+#if 0
- template <class T> void forEachChannel(T ob)
- {
- for (std::map<int,eServiceDVB*>::iterator i(channel_number.begin()); i!=channel_number.end(); ++i)
- ob(*i->second);
- }
-+#endif
-
- eTransponder *getFirstTransponder(int state);
- eSatellite *findSatellite(int orbital_position);
+++ /dev/null
-#!/bin/sh
-
-/usr/bin/showiframe /boot/backdrop.mvi
-
-init=0
-/usr/bin/boot || init=1
-if [ $init -eq 1 ] ; then
- rm -R /etc/enigma
-fi
-
-if [ ! -e /etc/enigma ] ; then
- cp -R /usr/share/enigma/default /etc/enigma
-fi
-
-/usr/bin/enigma
-
-ret=$?
-case $ret in
- 0)
- /sbin/halt
- ;;
- 4)
- /sbin/reboot
- ;;
- *)
- ;;
-esac
-
+++ /dev/null
-#!/bin/sh
-PID=`pidof tuxmaild`
-if [ $PID ]; then
- /etc/init.d/tuxmail pause;
-fi
\ No newline at end of file
+++ /dev/null
-#!/bin/sh
-PID=`pidof tuxmaild`
-if [ $PID ]; then
- /etc/init.d/tuxmail pause;
-fi
\ No newline at end of file
+++ /dev/null
-diff -Naur enigma/include/lib/dvb/epgcache.h enigma_fix/include/lib/dvb/epgcache.h
---- enigma/include/lib/dvb/epgcache.h 2008-02-18 17:35:38.000000000 +0100
-+++ enigma_fix/include/lib/dvb/epgcache.h 2008-02-18 17:06:58.000000000 +0100
-@@ -315,7 +315,7 @@
-
- int state;
- __u8 isRunning, firstStart, haveData;
-- void FixOverlapping(std::pair<eventMap,timeMap> &, time_t, int, const timeMap::iterator &, const uniqueEPGKey &);
-+ bool FixOverlapping(std::pair<eventMap,timeMap> &, time_t, int, const timeMap::iterator &, const uniqueEPGKey &);
- int sectionRead(__u8 *data, int source);
- static eEPGCache *instance;
-
-diff -Naur enigma/lib/dvb/epgcache.cpp enigma_fix/lib/dvb/epgcache.cpp
---- enigma/lib/dvb/epgcache.cpp 2008-02-18 17:35:38.000000000 +0100
-+++ enigma_fix/lib/dvb/epgcache.cpp 2008-02-18 17:34:01.000000000 +0100
-@@ -325,7 +325,7 @@
- int sid = data[ptr++] << 8;
- sid |= data[ptr++];
-
--// WORKAROUND for wrong transmitted epg data (01.08.2006)
-+// WORKAROUND for wrong transmitted epg data (01.10.2007)
- if ( onid == 0x85 )
- {
- switch( (tsid << 16) | sid )
-@@ -336,6 +336,7 @@
- case 0x0300f5: sid = 0xdc; break;
- case 0x0400d2: sid = 0xe2; tsid = 0x11; break;
- case 0x1100d3: sid = 0xe3; break;
-+ case 0x0100d4: sid = 0xe4; tsid = 4; break;
- }
- }
- ////////////////////////////////////////////
-@@ -448,8 +449,9 @@
- }
- #endif // ENABLE_PRIVATE_EPG
-
--void eEPGCache::FixOverlapping(std::pair<eventMap,timeMap> &servicemap, time_t TM, int duration, const timeMap::iterator &tm_it, const uniqueEPGKey &service)
-+bool eEPGCache::FixOverlapping(std::pair<eventMap,timeMap> &servicemap, time_t TM, int duration, const timeMap::iterator &tm_it, const uniqueEPGKey &service)
- {
-+ bool ret = false;
- timeMap::iterator tmp = tm_it;
- while ((tmp->first+tmp->second->getDuration()-300) > TM)
- {
-@@ -464,6 +466,20 @@
- {
- __u16 event_id = tmp->second->getEventID();
- servicemap.first.erase(event_id);
-+#ifdef EPG_DEBUG
-+ {
-+ EITEvent evt((eit_event_struct *)tmp->second->get(), service.tsid<<16|service.onid);
-+ char tmp[255];
-+ struct tm t;
-+ localtime_r(&evt.start_time, &t);
-+ snprintf(tmp, 255, "%08x(%d), %d seconds, %02d.%02d, %02d:%02d",
-+ evt.event_id, evt.event_id,
-+ evt.duration,
-+ t.tm_mday, t.tm_mon+1,
-+ t.tm_hour, t.tm_min);
-+ eDebug("(1)erase no more used event %s", tmp);
-+ }
-+#endif
- delete tmp->second;
- if (tmp == servicemap.second.begin())
- {
-@@ -472,6 +488,7 @@
- }
- else
- servicemap.second.erase(tmp--);
-+ ret = true;
- }
- else
- {
-@@ -495,14 +512,30 @@
- {
- __u16 event_id = tmp->second->getEventID();
- servicemap.first.erase(event_id);
-+#ifdef EPG_DEBUG
-+ {
-+ EITEvent evt((eit_event_struct *)tmp->second->get(), service.tsid<<16|service.onid);
-+ char tmp[255];
-+ struct tm t;
-+ localtime_r(&evt.start_time, &t);
-+ snprintf(tmp, 255, "%08x(%d), %d seconds, %02d.%02d, %02d:%02d",
-+ evt.event_id, evt.event_id,
-+ evt.duration,
-+ t.tm_mday, t.tm_mon+1,
-+ t.tm_hour, t.tm_min);
-+ eDebug("(2)erase no more used event %s", tmp);
-+ }
-+#endif
- delete tmp->second;
- servicemap.second.erase(tmp++);
-+ ret = true;
- }
- else
- ++tmp;
- if (tmp == servicemap.second.end())
- break;
- }
-+ return ret;
- }
-
- int eEPGCache::sectionRead(__u8 *data, int source)
-@@ -560,7 +593,11 @@
- if ( data[ptr-1] < 0x40 )
- --ptr;
-
-- uniqueEPGKey service( HILO(eit->service_id), HILO(eit->original_network_id), HILO(eit->transport_stream_id) );
-+ // Cablecom HACK.. for incorrect tsid/onid in eit data
-+ bool use_transponder_chid = source == SCHEDULE || (source == NOWNEXT && data[0] == 0x4E);
-+ uniqueEPGKey service( HILO(eit->service_id),
-+ use_transponder_chid ? current_service.onid : HILO(eit->original_network_id),
-+ use_transponder_chid ? current_service.tsid : HILO(eit->transport_stream_id) );
-
- eit_event_struct* eit_event = (eit_event_struct*) (data+ptr);
- int eit_event_size;
-@@ -658,7 +695,11 @@
- eventData *tmp = ev_it->second;
- ev_it->second = tm_it_tmp->second =
- new eventData(eit_event, eit_event_size, source);
-- FixOverlapping(servicemap, TM, duration, tm_it_tmp, service);
-+ if (FixOverlapping(servicemap, TM, duration, tm_it_tmp, service))
-+ {
-+ prevEventIt = servicemap.first.end();
-+ prevTimeIt = servicemap.second.end();
-+ }
- delete tmp;
- goto next;
- }
-@@ -730,8 +771,6 @@
- tm_it=prevTimeIt=servicemap.second.insert( prevTimeIt, std::pair<const time_t, eventData*>( TM, evt ) );
- }
-
-- FixOverlapping(servicemap, TM, duration, tm_it, service);
--
- #if EPG_DEBUG
- if ( consistencyCheck )
- {
-@@ -751,6 +790,11 @@
- ev_it->first, event_id );
- }
- #endif
-+ if (FixOverlapping(servicemap, TM, duration, tm_it, service))
-+ {
-+ prevEventIt = servicemap.first.end();
-+ prevTimeIt = servicemap.second.end();
-+ }
- }
- next:
- #if EPG_DEBUG
+++ /dev/null
-i:/elitedvb/audio/ac3default=00000000
-i:/ezap/lcd/brightness=00000087
-i:/ezap/lcd/contrast=0000000a
-i:/ezap/lcd/inverted=00000000
-i:/ezap/rc/repeatRate=00000025
-i:/ezap/serviceselector/showButtons=00000001
-u:/elitedvb/video/vcr_switching=00000000
-u:/ezap/rc/TextInputField/nextCharTimeout=00000320
-i:/enigma/plugins/needoffsets/bottom=00000221
-i:/enigma/plugins/needoffsets/left=0000002c
-i:/enigma/plugins/needoffsets/right=000002a3
-i:/enigma/plugins/needoffsets/top=0000001d
+++ /dev/null
-#NAME Favourites (TV)
-#SERVICE: 1:0:1:6DCA:44D:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6D66:437:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6DCC:44D:1:C00000:0:0:0:
-#SERVICE: 1:0:1:2EE3:441:1:C00000:0:0:0:
-#SERVICE: 1:0:1:445C:453:1:C00000:0:0:0:
-#SERVICE: 1:0:1:2EF4:441:1:C00000:0:0:0:
-#SERVICE: 1:0:1:445D:453:1:C00000:0:0:0:
-#SERVICE: 1:0:1:445E:453:1:C00000:0:0:0:
-#SERVICE: 1:0:1:33:21:85:C00000:0:0:0:
-#SERVICE: 1:0:1:701:5:85:C00000:0:0:0:
-#SERVICE: 1:0:1:2F1C:441:1:C00000:0:0:0:
-#SERVICE: 1:0:1:7005:436:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6DCD:44D:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6D67:437:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6E29:431:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6E2A:431:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6E2B:431:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6DCB:44D:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6E2C:431:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6E2D:431:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6F46:445:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6DCF:44D:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6E41:431:1:C00000:0:0:0:
-#SERVICE: 1:64:B:0:0:0:0:0:0:0:
-#DESCRIPTION: Doku/Wissen/Themen
-#SERVICE: 1:0:1:6DD0:44D:1:C00000:0:0:0:
-#SERVICE: 1:0:1:4289:446:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6D6E:437:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6D6B:437:1:C00000:0:0:0:
-#SERVICE: 1:0:1:2775:444:1:C00000:0:0:0:
-#SERVICE: 1:0:1:202:7:85:C00000:0:0:0:
-#SERVICE: 1:0:1:293:5:85:C00000:0:0:0:
-#SERVICE: 1:0:1:3158:459:1:C00000:0:0:0:
-#SERVICE: 1:0:1:3138:459:1:C00000:0:0:0:
-#SERVICE: 1:0:1:2FE:5:85:C00000:0:0:0:
-#SERVICE: 1:0:1:6D70:437:1:C00000:0:0:0:
-#SERVICE: 1:0:1:3139:459:1:C00000:0:0:0:
-#SERVICE: 1:0:1:F1CC:421:1:C00000:0:0:0:
-#SERVICE: 1:64:A:0:0:0:0:0:0:0:
-#DESCRIPTION: Sport
-#SERVICE: 1:0:1:384:21:85:C00000:0:0:0:
-#SERVICE: 1:0:1:79E0:443:1:C00000:0:0:0:
-#SERVICE: 1:64:1:0:0:0:0:0:0:0:
-#DESCRIPTION: Kinder
-#SERVICE: 1:0:1:2F08:441:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6D68:437:1:C00000:0:0:0:
-#SERVICE: 1:0:1:7008:436:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6FE0:443:1:C00000:0:0:0:
-#SERVICE: 1:64:2:0:0:0:0:0:0:0:
-#DESCRIPTION: Nachrichten
-#SERVICE: 1:0:1:2F3A:441:1:C00000:0:0:0:
-#SERVICE: 1:0:1:445F:453:1:C00000:0:0:0:
-#SERVICE: 1:0:1:79F4:443:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6DD2:44D:1:C00000:0:0:0:
-#SERVICE: 1:0:1:2F80:454:1:C00000:0:0:0:
-#SERVICE: 1:64:3:0:0:0:0:0:0:0:
-#DESCRIPTION: Regional
-#SERVICE: 1:0:1:3146:459:1:C00000:0:0:0:
-#SERVICE: 1:0:1:300:7:85:C00000:0:0:0:
-#SERVICE: 1:0:1:2778:444:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6F45:445:1:C00000:0:0:0:
-#SERVICE: 1:0:1:277A:444:1:C00000:0:0:0:
-#SERVICE: 1:0:1:2779:444:1:C00000:0:0:0:
-#SERVICE: 1:0:1:2777:444:1:C00000:0:0:0:
-#SERVICE: 1:0:1:32D6:45D:1:C00000:0:0:0:
-#SERVICE: 1:64:4:0:0:0:0:0:0:0:
-#DESCRIPTION: Musik
-#SERVICE: 1:0:1:308:5:85:C00000:0:0:0:
-#SERVICE: 1:0:1:2774:444:1:C00000:0:0:0:
-#SERVICE: 1:0:1:7004:436:1:C00000:0:0:0:
-#SERVICE: 1:0:1:7001:436:1:C00000:0:0:0:
-#SERVICE: 1:0:1:6FE1:443:1:C00000:0:0:0:
-#SERVICE: 1:0:1:2FD:7:85:C00000:0:0:0:
-#SERVICE: 1:0:1:32D5:45D:1:C00000:0:0:0:
-#SERVICE: 1:0:1:277B:444:1:C00000:0:0:0:
-#SERVICE: 1:0:1:332E:45B:1:C00000:0:0:0:
-#SERVICE: 1:0:1:304:5:85:C00000:0:0:0:
-#SERVICE: 1:0:1:702:5:85:C00000:0:0:0:
-#SERVICE: 1:64:5:0:0:0:0:0:0:0:
-#DESCRIPTION: Reisen
-#SERVICE: 1:0:1:20:21:85:C00000:0:0:0:
-#SERVICE: 1:0:1:2FC:5:85:C00000:0:0:0:
-#SERVICE: 1:0:1:301:7:85:C00000:0:0:0:
-#SERVICE: 1:64:9:0:0:0:0:0:0:0:
-#DESCRIPTION: Beratung
-#SERVICE: 1:0:1:295:21:85:C00000:0:0:0:
-#SERVICE: 1:0:1:277C:444:1:C00000:0:0:0:
-#SERVICE: 1:0:1:F9B:454:1:C00000:0:0:0:
-#SERVICE: 1:64:6:0:0:0:0:0:0:0:
-#DESCRIPTION: Einkaufen
-#SERVICE: 1:0:1:2F30:441:1:C00000:0:0:0:
-#SERVICE: 1:0:1:28:21:85:C00000:0:0:0:
-#SERVICE: 1:0:1:79EA:443:1:C00000:0:0:0:
-#SERVICE: 1:0:1:2F44:454:1:C00000:0:0:0:
-#SERVICE: 1:0:1:3148:459:1:C00000:0:0:0:
-#SERVICE: 1:0:1:332D:45B:1:C00000:0:0:0:
-#SERVICE: 1:0:1:36:7:85:C00000:0:0:0:
-#SERVICE: 1:0:1:307:7:85:C00000:0:0:0:
-#SERVICE: 1:0:1:296:5:85:C00000:0:0:0:
-#SERVICE: 1:0:1:F20B:421:1:C00000:0:0:0:
-#SERVICE: 1:0:1:1782:457:1:C00000:0:0:0:
-#SERVICE: 1:64:8:0:0:0:0:0:0:0:
-#DESCRIPTION: Gewinnspiele
-#SERVICE: 1:0:1:381:21:85:C00000:0:0:0:
-#SERVICE: 1:64:7:0:0:0:0:0:0:0:
-#DESCRIPTION: Anzeigen
-#SERVICE: 1:0:1:313C:459:1:C00000:0:0:0:
+++ /dev/null
-#NAME Bouquets (TV)
-#SERVICE: 4097:7:0:33fc5:0:0:0:0:0:0:/etc/enigma/userbouquet.33fc5.tv
-#TYPE 16385
-/etc/enigma/userbouquet.33fc5.tv\r
\ No newline at end of file
+++ /dev/null
-diff -Naur b/src/rds_text.cpp a/src/rds_text.cpp
---- b/src/rds_text.cpp 2007-03-25 10:11:18.000000000 +0200
-+++ a/src/rds_text.cpp 2007-11-26 13:14:00.000000000 +0100
-@@ -36,7 +36,9 @@
- sn = new eSocketNotifier(eApp, fd, eSocketNotifier::Read);
- CONNECT(sn->activated, RDSTextDecoder::process_data);
- }
--
-+
-+ memset(rtp_item, 0, sizeof(rtp_item));
-+
- int x = eSkin::getActive()->queryValue("rds.pos.x", 0);
- int y = eSkin::getActive()->queryValue("rds.pos.y", 0);
- int width = eSkin::getActive()->queryValue("rds.pos.width", 0);
-@@ -586,13 +588,19 @@
-
- unsigned char rtplus_osd_tmp[64];
-
-- memcpy(rtp_item[rtp_typ[0]],lastmessage+rtp_start[0],rtp_len[0]+1);
-- rtp_item[rtp_typ[0]][rtp_len[0]+1]=0;
-+ if (rtp_start[0] < 66 && (rtp_len[0]+rtp_start[0]) < 66)
-+ {
-+ memcpy(rtp_item[rtp_typ[0]],lastmessage+rtp_start[0],rtp_len[0]+1);
-+ rtp_item[rtp_typ[0]][rtp_len[0]+1]=0;
-+ }
-
- if (rtp_typ[0] != rtp_typ[1])
- {
-- memcpy(rtp_item[rtp_typ[1]],lastmessage+rtp_start[1],rtp_len[1]+1);
-- rtp_item[rtp_typ[1]][rtp_len[1]+1]=0;
-+ if (rtp_start[1] < 66 && (rtp_len[1]+rtp_start[1]) < 66)
-+ {
-+ memcpy(rtp_item[rtp_typ[1]],lastmessage+rtp_start[1],rtp_len[1]+1);
-+ rtp_item[rtp_typ[1]][rtp_len[1]+1]=0;
-+ }
- }
-
- // main RTPlus item_types used by the radio stations:
-diff -Naur b/src/rds_text.cpp.patch a/src/rds_text.cpp.patch
---- b/src/rds_text.cpp.patch 1970-01-01 01:00:00.000000000 +0100
-+++ a/src/rds_text.cpp.patch 2007-11-08 23:45:47.000000000 +0100
-@@ -0,0 +1,26 @@
-+--- rds_text.cpp.org 2007-03-25 10:11:18.000000000 +0200
-++++ rds_text.cpp 2007-11-08 23:40:37.000000000 +0100
-+@@ -586,13 +586,19 @@
-+
-+ unsigned char rtplus_osd_tmp[64];
-+
-+- memcpy(rtp_item[rtp_typ[0]],lastmessage+rtp_start[0],rtp_len[0]+1);
-+- rtp_item[rtp_typ[0]][rtp_len[0]+1]=0;
-++ if (rtp_start[0] < 66 && (rtp_len[0]+rtp_start[0]) < 66)
-++ {
-++ memcpy(rtp_item[rtp_typ[0]],lastmessage+rtp_start[0],rtp_len[0]+1);
-++ rtp_item[rtp_typ[0]][rtp_len[0]+1]=0;
-++ }
-+
-+ if (rtp_typ[0] != rtp_typ[1])
-+ {
-+- memcpy(rtp_item[rtp_typ[1]],lastmessage+rtp_start[1],rtp_len[1]+1);
-+- rtp_item[rtp_typ[1]][rtp_len[1]+1]=0;
-++ if (rtp_start[1] < 66 && (rtp_len[1]+rtp_start[1]) < 66)
-++ {
-++ memcpy(rtp_item[rtp_typ[1]],lastmessage+rtp_start[1],rtp_len[1]+1);
-++ rtp_item[rtp_typ[1]][rtp_len[1]+1]=0;
-++ }
-+ }
-+
-+ // main RTPlus item_types used by the radio stations:
+++ /dev/null
-diff -Naur enigma_org/include/lib/dvb/frontend.h enigma/include/lib/dvb/frontend.h
---- enigma_org/include/lib/dvb/frontend.h 2007-08-06 22:54:26.000000000 +0200
-+++ enigma/include/lib/dvb/frontend.h 2007-08-06 22:47:44.000000000 +0200
-@@ -74,41 +74,43 @@
- class eFrontend: public Object
- {
- int type,
-- fd,
-+ fd,
- #if HAVE_DVB_API_VERSION < 3
-- secfd,
-+ secfd,
- #else
-- curContTone,
-- curVoltage,
-+ curContTone,
-+ curVoltage,
- #endif
-- needreset,
-- lastcsw,
-- lastucsw,
-- lastToneBurst,
-- lastRotorCmd,
-- lastSmatvFreq,
-- curRotorPos; // current Orbital Position
-+ needreset,
-+ lastcsw,
-+ lastucsw,
-+ lastToneBurst,
-+ lastRotorCmd,
-+ lastSmatvFreq,
-+ curRotorPos; // current Orbital Position
-
- eLNB *lastLNB;
- eTransponder *transponder;
- static eFrontend *frontend;
- eTimer rotorTimer1, rotorTimer2,
- #if HAVE_DVB_API_VERSION >=3
-- timeout,
-+ timeout,
- #endif
-- checkRotorLockTimer, checkLockTimer, updateTransponderTimer;
-+ checkRotorLockTimer, checkLockTimer, updateTransponderTimer;
- eSocketNotifier *sn;
- int tries, noRotorCmd, wasLoopthrough, lostlockcount;
- Signal1<void, eTransponder*> tpChanged;
- // ROTOR INPUTPOWER
- timeval rotorTimeout;
-- int idlePowerInput;
-- int runningPowerInput;
-- int newPos;
-+ int idlePowerInput_l,
-+ idlePowerInput_h,
-+ runningPowerInput,
-+ newPos,
-+ voltageState;
- // Non blocking rotor turning
- int DeltaA,
-- voltage,
-- increased;
-+ voltage,
-+ increased;
- ///////////////////
- #if HAVE_DVB_API_VERSION < 3
- FrontendParameters front;
-diff -Naur enigma_org/lib/dvb/frontend.cpp enigma/lib/dvb/frontend.cpp
---- enigma_org/lib/dvb/frontend.cpp 2007-08-06 22:54:26.000000000 +0200
-+++ enigma/lib/dvb/frontend.cpp 2007-08-06 22:55:48.000000000 +0200
-@@ -29,6 +29,10 @@
-
- eFrontend* eFrontend::frontend;
-
-+#ifndef I2C_SLAVE_FORCE
-+#define I2C_SLAVE_FORCE 0x0706
-+#endif
-+
- eFrontend::eFrontend(int type, const char *demod, const char *sec)
- :type(type),
- curRotorPos(10000), transponder(0), rotorTimer1(eApp),
-@@ -37,7 +41,8 @@
- timeout(eApp),
- #endif
- checkRotorLockTimer(eApp), checkLockTimer(eApp),
-- updateTransponderTimer(eApp), sn(0), noRotorCmd(0)
-+ updateTransponderTimer(eApp), sn(0), noRotorCmd(0),
-+ idlePowerInput_l(0), idlePowerInput_h(0)
- {
- CONNECT(rotorTimer1.timeout, eFrontend::RotorStartLoop );
- CONNECT(rotorTimer2.timeout, eFrontend::RotorRunningLoop );
-@@ -112,6 +117,40 @@
- }
- }
-
-+#define STATIC 0
-+#define DYNAMIC 1
-+void setCurrentLimitingMode(int mode)
-+{
-+#if HAVE_DVB_API_VERSION < 3
-+#warning FIXME setCurrentLimitingMode just for frontends with LNBP21
-+ if ( eSystemInfo::getInstance()->getHwType() == eSystemInfo::DM7020
-+ || eSystemInfo::getInstance()->getHwType() == eSystemInfo::DM500PLUS
-+ || eSystemInfo::getInstance()->getHwType() == eSystemInfo::DM600PVR )
-+ {
-+ int fd=::open("/dev/i2c/0", O_RDWR);
-+ if ( fd >= 0 )
-+ {
-+ unsigned char data[2];
-+ ::ioctl(fd, I2C_SLAVE_FORCE, 0x10 >> 1);
-+ if(::read(fd, data, 1) != 1)
-+ eDebug("error read lnbp (%m)");
-+ else
-+ {
-+ if (mode == STATIC)
-+ data[0] |= 0x80; // set static current limiting
-+ else
-+ data[0] &= ~0x80; // set dynamic current limiting
-+ if(::write(fd, data, 1) != 1)
-+ eDebug("error write lnbp (%m)");
-+ }
-+ ::close(fd);
-+ }
-+ else
-+ eDebug("couldn't open /dev/i2c/0 (%m)");
-+ }
-+#endif
-+}
-+
- void eFrontend::checkRotorLock()
- {
- if (!transponder)
-@@ -130,6 +166,7 @@
- {
- eDebug("[FE] rotor has stopped..");
- curRotorPos=newPos;
-+ setCurrentLimitingMode(DYNAMIC);
- /*emit*/ tunedIn(transponder, 0);
- // eDebug("!!!!!!!!!!!!!!!! TUNED IN OK 1 !!!!!!!!!!!!!!!!");
- if ( !eDVB::getInstance()->getScanAPI() )
-@@ -832,7 +869,10 @@
- seq.voltage=SEC_VOLTAGE_OFF;
- break;
- }
-- return ::ioctl(secfd, SEC_SEND_SEQUENCE, &seq);
-+ int ret = ::ioctl(secfd, SEC_SEND_SEQUENCE, &seq);
-+ if ( ret < 0 )
-+ eDebug("SEC_SEND_SEQUENCE failed(%m)");
-+ return ret;
- }
- #else
- int eFrontend::SendSequence( const eSecCmdSequence &seq )
-@@ -1033,10 +1073,7 @@
- // send DiSEqC Sequence ( normal diseqc switches )
- seq.continuousTone = eSecCmdSequence::TONE_OFF;
- if ( SendSequence(seq) < 0 )
-- {
-- eDebug("SendSequence failed (%m)");
- return -1;
-- }
- else if ( lnb->getDiSEqC().SeqRepeat ) // Sequence Repeat selected ?
- {
- usleep( 100000 ); // between seq repeats we wait 75ms
-@@ -1048,6 +1085,7 @@
- usleep( 100000 ); // wait 100ms
-
- // send DiSEqC Sequence (Rotor)
-+ setCurrentLimitingMode(STATIC);
- seq.commands=&commands[seq.numCommands]; // last command is rotor cmd... see above...
- seq.numCommands=1; // only rotor cmd
- seq.toneBurst = eSecCmdSequence::NONE;
-@@ -1072,7 +1110,6 @@
- #else
- dvb_diseqc_master_cmd *commands = seq.commands;
- #endif
-- idlePowerInput=0;
- runningPowerInput=0;
- int secTone = seq.continuousTone;
-
-@@ -1086,14 +1123,12 @@
-
- seq.continuousTone=SEC_TONE_OFF;
- if ( SendSequence(seq) < 0 )
-- {
-- eDebug("SendSequence failed (%m)");
- return -2;
-- }
- else if ( lnb->getDiSEqC().SeqRepeat ) // Sequence Repeat selected ?
- {
- usleep( 100000 ); // between seq repeats we wait 100ms
-- SendSequence(seq); // then repeat the cmd
-+ if ( SendSequence(seq) < 0 )
-+ return -2;
- }
-
- if ( lastLNB != lnb )
-@@ -1103,15 +1138,48 @@
- }
- else
- {
-- usleep( 100*1000 ); // wait 100ms
--// eDebug("sleep 100ms");
-+ usleep( 50*1000 ); // wait 50ms
-+// eDebug("sleep 50ms");
-+ }
-+
-+ // get power input of Rotor on idle 13V .. only working with a dreambox
-+ if ( !idlePowerInput_l )
-+ {
-+ idlePowerInput_l = readInputPower();
-+ if ( idlePowerInput_l < 0 )
-+ return idlePowerInput_l;
-+// eDebug("idle power input l = %dmA", idlePowerInput_l );
- }
-
--// get power input of Rotor on idle not work on dbox yet .. only dreambox
-- idlePowerInput = readInputPower();
-- if ( idlePowerInput < 0 )
-- return idlePowerInput;
--// eDebug("idle power input = %dmA", idlePowerInput );
-+ setCurrentLimitingMode(STATIC);
-+
-+ // get power input of Rotor on idle 18V .. only working with a dreambox
-+ if ( !idlePowerInput_h)
-+ {
-+#if HAVE_DVB_API_VERSION < 3
-+ if (::ioctl(secfd, SEC_SET_VOLTAGE, increased ? SEC_VOLTAGE_18_5 : SEC_VOLTAGE_18) < 0 )
-+ eDebug("SEC_SET_VOLTAGE failed (%m)");
-+#else
-+ if ( ::ioctl(fd, FE_SET_VOLTAGE, SEC_VOLTAGE_18) < 0 )
-+ eDebug("FE_SET_VOLTAGE failed (%m)");
-+#endif
-+ usleep( 50*1000 ); // wait 50ms
-+ idlePowerInput_h = readInputPower();
-+ if ( idlePowerInput_h < 0 )
-+ {
-+ setCurrentLimitingMode(DYNAMIC);
-+ return idlePowerInput_h;
-+ }
-+// eDebug("idle power input h = %dmA", idlePowerInput_h );
-+#if HAVE_DVB_API_VERSION < 3
-+ if (::ioctl(secfd, SEC_SET_VOLTAGE, increased ? SEC_VOLTAGE_13_5 : SEC_VOLTAGE_13) < 0 )
-+ eDebug("SEC_SET_VOLTAGE failed (%m)");
-+#else
-+ if ( ::ioctl(fd, FE_SET_VOLTAGE, SEC_VOLTAGE_13) < 0 )
-+ eDebug("FE_SET_VOLTAGE failed (%m)");
-+#endif
-+ usleep( 50*1000 ); // wait 50ms
-+ }
-
- // send DiSEqC Sequence (Rotor)
- seq.commands=&commands[seq.numCommands]; // last command is rotor cmd... see above...
-@@ -1122,7 +1190,7 @@
- seq.continuousTone=secTone;
- if ( SendSequence(seq) < 0 )
- {
-- eDebug("SendSequence failed (%m)");
-+ setCurrentLimitingMode(DYNAMIC);
- return -2;
- }
- // set rotor start timeout // 2 sek..
-@@ -1147,11 +1215,14 @@
- {
- runningPowerInput = readInputPower();
- if ( runningPowerInput < 0 )
-+ {
-+ setCurrentLimitingMode(DYNAMIC);
- return;
-+ }
- // eDebug("running %d mA", runningPowerInput);
- // eDebug("delta %d mA", DeltaA);
-
-- if ( abs(runningPowerInput-idlePowerInput ) >= (DeltaA&0xFF) ) // rotor running ?
-+ if ( abs(runningPowerInput-idlePowerInput_l ) >= (DeltaA&0xFF) ) // rotor running ?
- {
- if ( (DeltaA & 0x200) == 0x200 )
- {
-@@ -1182,17 +1253,43 @@
- {
- timeval now;
- gettimeofday(&now,0);
-+
-+ if ( voltageState == eSecCmdSequence::VOLTAGE_13 )
-+ {
-+ timeval tmp = rotorTimeout - now;
-+ int timeout_msek = tmp.tv_sec * 1000 + tmp.tv_usec / 1000;
-+ if ( timeout_msek < 149700 ) // rotor running at least 300msek?
-+ {
-+ // then switch to higher voltage
-+#if HAVE_DVB_API_VERSION < 3
-+ if (::ioctl(secfd, SEC_SET_VOLTAGE, increased ? SEC_VOLTAGE_18_5 : SEC_VOLTAGE_18) < 0 )
-+ eDebug("SEC_SET_VOLTAGE failed (%m)");
-+#else
-+ if ( ::ioctl(fd, FE_SET_VOLTAGE, voltage) < 0 )
-+ eDebug("FE_SET_VOLTAGE failed (%m)");
-+ curVoltage = voltage;
-+#endif
-+ voltageState = eSecCmdSequence::VOLTAGE_18;
-+ }
-+ }
-+
- if ( rotorTimeout < now )
- {
- eDebug("Rotor timeouted :-(");
- /* emit */ s_RotorTimeout();
-+ setCurrentLimitingMode(DYNAMIC);
- }
- else
- {
-+ int &idlePowerInput = (voltageState == eSecCmdSequence::VOLTAGE_13) ? idlePowerInput_l : idlePowerInput_h;
-+
- runningPowerInput = readInputPower();
- if ( runningPowerInput < 0 )
-+ {
-+ setCurrentLimitingMode(DYNAMIC);
- return;
--// eDebug("running %d mA", runningPowerInput);
-+ }
-+ // eDebug("running %d mA, idle %d mA", runningPowerInput, idlePowerInput);
-
- if ( abs( idlePowerInput-runningPowerInput ) <= (DeltaA&0xFF) ) // rotor stoped ?
- {
-@@ -1216,7 +1313,8 @@
- {
- if (type != eSystemInfo::feSatellite)
- return;
-- if ( eSystemInfo::getInstance()->canMeasureLNBCurrent() == 1 )
-+ setCurrentLimitingMode(DYNAMIC);
-+ if ( voltageState == eSecCmdSequence::VOLTAGE_18 )
- {
- if ( voltage != eSecCmdSequence::VOLTAGE_18 )
- #if HAVE_DVB_API_VERSION < 3
-@@ -1228,7 +1326,7 @@
- curVoltage = voltage;
- #endif
- }
-- else // can only measure with lower lnb voltage ( 13V )
-+ else
- {
- if ( voltage != eSecCmdSequence::VOLTAGE_13 )
- #if HAVE_DVB_API_VERSION < 3
-@@ -1466,7 +1564,10 @@
- checkLockTimer.stop();
-
- if ( curRotorPos > 11000 )
-+ {
- curRotorPos = 11000;
-+ setCurrentLimitingMode(DYNAMIC);
-+ }
-
- // eDebug("ROTOR STOPPED 1");
- /* emit */ s_RotorStopped();
-@@ -1886,16 +1987,10 @@
- commands[cmdCount-1].u.diseqc.params[1]);
- #endif
-
-- // drive rotor with 18V when we can measure inputpower
-- // or we know which orbital pos currently is selected
-+ // when we can measure inputpower we start rotor turning with 13V
- if ( lnb->getDiSEqC().useRotorInPower&1 )
-- {
-- if ( eSystemInfo::getInstance()->canMeasureLNBCurrent() == 1 ) // can measure with voltage > 13V ?
-- seq.voltage = eSecCmdSequence::VOLTAGE_18;
-- else
-- seq.voltage = eSecCmdSequence::VOLTAGE_13;
-- }
-- else
-+ voltageState = seq.voltage = eSecCmdSequence::VOLTAGE_13;
-+ else // without measure input power we must start with the correct voltage
- seq.voltage = voltage;
-
- lastRotorCmd=RotorCmd;
-@@ -1926,14 +2021,12 @@
- send:
- seq.voltage=voltage;
- if ( SendSequence(seq) < 0 )
-- {
-- eDebug("SendSequence failed (%m)");
- return -1;
-- }
- else if ( lnb->getDiSEqC().DiSEqCMode >= eDiSEqC::V1_1 && lnb->getDiSEqC().SeqRepeat ) // Sequence Repeat ?
- {
- usleep( 100000 ); // between seq repeats we wait 80ms
-- SendSequence(seq); // just do it *g*
-+ if ( SendSequence(seq) < 0 )
-+ return -1;
- }
- }
- else if ( lastcsw != csw )
-@@ -2083,10 +2176,7 @@
- seq.continuousTone = eSecCmdSequence::TONE_OFF;
- seq.toneBurst = eSecCmdSequence::NONE;
- if (SendSequence(seq) < 0 )
-- {
-- eDebug("SendSequence failed (%m)");
- return -1;
-- }
- }
- if ( ioctl(fd, FE_SET_POWER_STATE, FE_POWER_OFF) < 0 )
- eDebug("FE_SET_POWER_STATE failed (%m)");
-diff -Naur enigma_org/lib/system/info.cpp enigma/lib/system/info.cpp
---- enigma_org/lib/system/info.cpp 2007-08-06 22:54:26.000000000 +0200
-+++ enigma/lib/system/info.cpp 2007-08-06 22:47:44.000000000 +0200
-@@ -177,19 +177,8 @@
- midstr="9";
- modelstr="DM7020";
- cpustr="STB04500, 252MHz";
-- hasrfmod = hashdd = haslcd = hasci
-- = canrecordts = hasstandbywakeuptimer = cantimeshift = 1;
-- // check if the box revision is new enough to measure
-- // lnb power with > 13V ( revisions with lnbp21 can this )
-- int fd = open("/dev/dbox/fp0", O_RDWR);
-- if ( fd >=0 )
-- {
-- if ( ::ioctl( fd, 0x100, 0 ) == 0 )
-- canmeasurelnbcurrent=1;
-- else
-- canmeasurelnbcurrent=2;
-- close(fd);
-- }
-+ hasrfmod = hashdd = haslcd = hasci = canrecordts =
-+ hasstandbywakeuptimer = cantimeshift = canmeasurelnbcurrent = 1;
- hwtype = DM7020;
- defaulttimertype=ePlaylistEntry::RecTimerEntry|ePlaylistEntry::recDVR;
- break;
+++ /dev/null
---- enigma_org/lib/dvb/subtitle.cpp 2 Aug 2005 20:35:36 -0000 1.13
-+++ enigma/lib/dvb/subtitle.cpp 21 Nov 2007 11:52:51 -0000
-@@ -337,6 +337,19 @@
- delete page->page_regions;
- page->page_regions = p;
- }
-+ while (page->regions)
-+ {
-+ struct subtitle_region *p = page->regions->next;
-+ while(page->regions->region_objects)
-+ {
-+ subtitle_region_object *ob = page->regions->region_objects->next;
-+ delete page->regions->region_objects;
-+ page->regions->region_objects = ob;
-+ }
-+ delete [] page->regions->region_buffer;
-+ delete page->regions;
-+ page->regions = p;
-+ }
- }
-
- // eDebug("new page.. (%d)", page_state);
-@@ -352,7 +365,14 @@
- // go to last entry
- while (*r)
- r = &(*r)->next;
--
-+
-+ if (processed_length == segment_length && !page->page_regions)
-+ {
-+// eDebug("no regions in page.. clear screen!!");
-+ if (sub->screen_enabled)
-+ subtitle_redraw_all(sub);
-+ }
-+
- while (processed_length < segment_length)
- {
- struct subtitle_page_region *pr;
-@@ -763,20 +783,16 @@
- #if 1
- struct subtitle_page *page = sub->pages;
- if ( page )
-- {
-- struct subtitle_page_region *region = page->page_regions;
-- if ( region )
-- subtitle_clear_screen(sub);
-- }
-+ subtitle_clear_screen(sub);
- while(page)
- {
- subtitle_redraw(sub, page->page_id);
- page = page->next;
- }
- #else
-- subtitle_clear_screen(sub);
--
- struct subtitle_page *page = sub->pages;
-+ if ( page )
-+ subtitle_clear_screen(sub);
- //eDebug("----------- end of display set");
- //eDebug("active pages:");
- while (page)
-@@ -878,7 +894,6 @@
- return;
- }
-
--
- //eDebug("iterating regions..");
- /* iterate all regions in this pcs */
- struct subtitle_page_region *region = page->page_regions;
-@@ -902,20 +917,19 @@
- {
- if (main_clut_id != clut_id)
- {
--// eDebug("MULTIPLE CLUTS IN USE! prepare for pixelmuell!");
-+ eDebug("MULTIPLE CLUTS IN USE! prepare for pixelmuell!");
- // exit(0);
- }
- }
- main_clut_id = clut_id;
-
--
-- //eDebug("copy region %d to %d, %d", region->region_id, region->region_horizontal_address, region->region_vertical_address);
--
- int x0 = region->region_horizontal_address;
- int y0 = region->region_vertical_address;
- int x1 = x0 + reg->region_width;
- int y1 = y0 + reg->region_height;
--
-+
-+ //eDebug("copy region %d to %d, %d, size %d %d", region->region_id, x0, y0, x1, y1);
-+
- if ((x0 < 0) || (y0 < 0) || (x0 > sub->screen_width) || (x0 > sub->screen_height))
- continue;
-
---- enigma_org/lib/dvb/subtitling.cpp 2 Aug 2005 20:35:36 -0000 1.12
-+++ enigma/lib/dvb/subtitling.cpp 21 Nov 2007 11:52:51 -0000
-@@ -67,26 +67,26 @@
- unsigned long long current = 0;
- if (Decoder::getSTC(current))
- eDebug("bloed, going unsyced");
-- eDebug("DEMUX STC: %08llx\n", current);
-+ eDebug("DEMUX STC: %08llx", current);
-
- unsigned long long pts = 0;
-
-- int enqueue = 0;
--
-- if (!queue.empty())
-- enqueue = 1;
-- else if (!extractPTS(pts, pkt))
-+ int enqueue = !queue.empty();
-+
-+ if (!extractPTS(pts, pkt))
- {
-- eDebug("PES STC: %08llx\n", pts);
-+ eDebug("PES STC: %08llx", pts);
- signed long long int diff = pts - current;
-- eDebug(" STC: %lld\n", diff);
-- if (diff > 900000) // 10s
-- {
-- eDebug("rediculous high delay! showing now");
-- } else if (diff > 2000)
-+ eDebug(" diff: %lld(%lldms)", diff, diff/90);
-+ if (diff > 1800)
- enqueue = 1;
-+ else if (enqueue) // this should not happen !!
-+ {
-+ eDebug("showing instantly, diff small enough... but queue not empy!!!!");
-+ enqueue = 0;
-+ }
- else
-- eDebug("showing instantly, diff small enough!");
-+ eDebug("showing instantly, diff small enough...!");
- }
-
- if (enqueue)
-@@ -98,11 +98,15 @@
- memcpy(pes.pkt, pkt, len);
- pes.len = len;
- queue.push(pes);
-+ eDebug("enqueue");
- if (wasempty)
- {
-- eDebug("setting timer to %d ms!\n", (pes.pts - current) / 90);
-+ eDebug("setting timer to %lld ms!\n", (pes.pts - current) / 90);
- timer.start((pes.pts - current) / 90, 1);
- }
-+ else
-+ eDebug("");
-+
- return;
- }
- subtitle_process_pes(subtitle, pesbuffer, peslen);
-@@ -155,13 +159,15 @@
- return;
- }
-
-- eDebug("by the way, actual delay was %lld(%lld msek)\n", current - fpts, (current-fpts)/90 );
-+ eDebug("by the way, actual delay was %lld(%lld msek)", current - fpts, (current-fpts)/90 );
-
-- if (queue.empty())
-- return;
--
-- signed long long int diff = queue.front().pts - current;
-- timer.start(diff / 90, 1);
-+ if (!queue.empty()) {
-+ signed long long int diff = queue.front().pts - current;
-+ timer.start(diff / 90, 1);
-+ eDebug("setting timer to %lld ms!\n", diff / 90);
-+ }
-+ else
-+ eDebug("");
- }
-
- void eSubtitleWidget::gotData(int what)
-@@ -377,7 +383,7 @@
- while (!queue.empty())
- {
- pes_packet_s pkt = queue.front();
-- queue.front();
-+ queue.pop();
- delete [] pkt.pkt;
- }
- delete subtitle;
+++ /dev/null
-diff -Naur enigma_org/lib/dvb/decoder.cpp enigma/lib/dvb/decoder.cpp
---- enigma_org/lib/dvb/decoder.cpp 2006-11-12 22:35:31.000000000 +0100
-+++ enigma/lib/dvb/decoder.cpp 2007-10-19 01:10:21.000000000 +0200
-@@ -817,7 +817,7 @@
- {
- int wasOpen = fd.mpeg != -1;
- if ( !wasOpen )
-- fd.mpeg = ::open("/dev/video", O_WRONLY);
-+ fd.mpeg = ::open("/dev/video", O_RDONLY);
- {
- if (::ioctl(fd.mpeg, VIDEO_FLUSH_CLIP_BUFFER) < 0)
- eDebug("VIDEO_FLUSH_BUFFER failed (%m)");
-@@ -833,7 +833,7 @@
- {
- int wasOpen = fd.mpeg != -1;
- if ( !wasOpen )
-- fd.mpeg=::open("/dev/video", O_WRONLY);
-+ fd.mpeg=::open("/dev/video", O_RDONLY);
- if ( fd.mpeg > -1 )
- {
- if ( ::ioctl(fd.mpeg, VIDEO_CLEAR_SCREEN) < 0 )
-@@ -878,7 +878,7 @@
- {
- int wasOpen = fd.mpeg != -1;
- if ( !wasOpen )
-- fd.mpeg = ::open("/dev/video", O_WRONLY);
-+ fd.mpeg = ::open("/dev/video", O_RDONLY);
- if ( fd.mpeg > -1 )
- {
- if ( ::ioctl(fd.mpeg, VIDEO_SET_FASTZAP, val) < 0 )
-@@ -895,7 +895,7 @@
- {
- int wasOpen = fd.mpeg != -1;
- if ( !wasOpen )
-- fd.mpeg = ::open("/dev/video", O_WRONLY);
-+ fd.mpeg = ::open("/dev/video", O_RDONLY);
- if ( fd.mpeg > -1 )
- {
- if ( ::ioctl(fd.mpeg, VIDEO_SET_AUTOFLUSH, on) < 0 )
-diff -Naur enigma_org/src/enigma_main.cpp enigma/src/enigma_main.cpp
---- enigma_org/src/enigma_main.cpp 2007-07-03 11:10:12.000000000 +0200
-+++ enigma/src/enigma_main.cpp 2007-10-19 11:48:20.000000000 +0200
-@@ -3038,17 +3038,25 @@
- {
- if ( ref.type == eServiceReference::idDVB && !ref.path && !timeshift )
- {
-- if (eSystemInfo::getInstance()->canTimeshift() &&
-- eSystemInfo::getInstance()->getHwType() != eSystemInfo::DM600PVR &&
-- eSystemInfo::getInstance()->getHwType() != eSystemInfo::DM500PLUS
-- )
-+ if (eSystemInfo::getInstance()->canTimeshift())
- {
- if (!eDVB::getInstance()->recorder)
- {
-- record();
-+ switch(eSystemInfo::getInstance()->getHwType())
-+ {
-+ case eSystemInfo::DM600PVR:
-+ case eSystemInfo::DM500PLUS:
-+ Decoder::setAutoFlushScreen(0);
-+ Decoder::Pause(2); // freeze frame
-+ record();
-+ break;
-+ default:
-+ record();
-+ Decoder::setAutoFlushScreen(0);
-+ Decoder::Pause(2); // freeze frame
-+ break;
-+ }
- timeshift=1;
-- Decoder::Pause(2); // freeze frame
-- Decoder::setAutoFlushScreen(0);
- handler->serviceCommand(eServiceCommand(eServiceCommand::cmdSetSpeed, -1));
- Decoder::setAutoFlushScreen(1);
- }
+++ /dev/null
-DEPENDS = "jpeg libungif libid3tag libmad libpng libsigc++-1.2 gettext-native tuxbox-libs tuxbox-plugins dreambox-dvbincludes mtd-utils freetype"
-DESCRIPTION = "Enigma is a framebuffer-based frontend for DVB functions"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-LICENSE = "GPL"
-
-SRCDATE = "20070615"
-PV = "cvs-${SRCDATE}"
-PN = "enigma"
-PR = "r4"
-
-SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/tuxbox/enigma;method=ext \
- file://enigma.sh \
- file://config \
- file://userbouquet* \
- http://sources.dreamboxupdate.com/download/opendreambox/enigma/boot-${MACHINE} \
- file://enigma_enter_standby.sh \
- file://enigma_leave_standby.sh \
- file://rotor_fix.diff;patch=1;pnum=1 \
- file://disable_boot.diff;patch=1;pnum=1 \
- file://enigma-gcc4.patch;patch=1 \
- file://epgfix_backport.diff;patch=1;pnum=1 \
- file://timeshiftfix_backport.diff;patch=1;pnum=1 \
- file://subtitlefix_backport.diff;patch=1;pnum=1 \
- file://rdstextfix_backport.diff;patch=1;pnum=1 \
- file://duplicate_tsid_onid_cable_terrestrial_fix_backport.diff;patch=1;pnum=1"
-
-# dm600pvr and dm500plus don't have a FP, so they can't really switch of. Show a shutdown pic instead.
-SRC_URI_append_dm600pvr = " http://sources.dreamboxupdate.com/download/opendreambox/enigma/showshutdownpic-${MACHINE} \
- file://add_blindscan_to_menu.diff;patch=1;pnum=1 \
- http://sources.dreamboxupdate.com/download/patches/enigma_add_cable_blindscan.diff;patch=1;pnum=1"
-SRC_URI_append_dm500plus = " http://sources.dreamboxupdate.com/download/opendreambox/enigma/showshutdownpic-${MACHINE} \
- file://add_blindscan_to_menu.diff;patch=1;pnum=1"
-
-S = "${WORKDIR}/enigma"
-
-FILES_${PN} += " ${datadir}/tuxbox ${datadir}/fonts"
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-PACKAGES_DYNAMIC = "enigma-locale-*"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--with-target=native --with-boxtype=${MACHINE} --with-webif=standard --with-epg=private --with-enigma-debug=yes --with-reiserfs=no"
-
-do_configure_prepend() {
- mkdir -p m4
-}
-
-do_compile_prepend() {
- chmod ugo+x ${S}/po/xml2po
-}
-
-do_stage_append() {
- install -d ${STAGING_INCDIR}/enigma
- install -m 0644 ${WORKDIR}/enigma/include/*.h ${STAGING_INCDIR}/enigma
- for dir in base dvb dvb/lowlevel codecs driver gdi gui socket system picviewer movieplayer; do
- install -d ${STAGING_INCDIR}/enigma/lib/$dir;
- install -m 0644 ${WORKDIR}/enigma/include/lib/$dir/*.h ${STAGING_INCDIR}/enigma/lib/$dir;
- done;
- rm -R ${STAGING_INCDIR}/enigma/src 2> /dev/null || /bin/true
- install -m 0644 ${WORKDIR}/enigma/src/*.h ${STAGING_INCDIR}/enigma
- ln -sf ${STAGING_INCDIR}/enigma ${STAGING_INCDIR}/enigma/src
-}
-
-do_install_append() {
- install -d ${D}/usr/share/enigma/default
- install -d ${D}/usr/share/enigma/default/cable
- install -d ${D}/usr/share/enigma/default/terrestrial
- mv ${D}/etc/enigma/* ${D}/usr/share/enigma/default 2> /dev/null || /bin/true
- rm -R ${D}/etc/enigma 2> /dev/null || /bin/true
- install -m 0644 ${WORKDIR}/config ${D}/usr/share/enigma/default/
- if [ "${MACHINE}" = "dm600pvr" -o "${MACHINE}" = "dm500plus" ]; then
- install -m 0755 ${WORKDIR}/showshutdownpic-${MACHINE} ${D}/usr/bin/showshutdownpic
- # vulcan-based boxes don't look that well with too much alpha
- echo "i:/ezap/osd/alpha=00000000" >> ${D}/usr/share/enigma/default/config
- echo "i:/ezap/osd/simpleMainMenu=00000001" >> ${D}/usr/share/enigma/default/config
- fi
- install -m 0644 ${WORKDIR}/userbouquet* ${D}/usr/share/enigma/default/
- install -m 0755 ${WORKDIR}/enigma.sh ${D}/usr/bin/
- install -m 0755 ${WORKDIR}/boot-${MACHINE} ${D}/usr/bin/boot
- install -d ${D}/etc
- install -m 0755 ${WORKDIR}/enigma_enter_standby.sh ${D}/etc
- install -m 0755 ${WORKDIR}/enigma_leave_standby.sh ${D}/etc
-}
+++ /dev/null
-DEPENDS = "enigma"
-RDEPENDS = "enigma ipkg"
-DESCRIPTION = "Enigma Plugin IPKG"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-LICENSE = "GPL"
-PV = "0.2.1"
-PR = "r1"
-SRC_URI = "http://sources.dreamboxupdate.com/download/opendreambox/enigma/ipkgpl-${PV}-r1.tar.bz2"
-
-S = "${WORKDIR}/ipkgpl"
-
-FILES_${PN} = "/usr/lib/tuxbox/plugins/ipkgpl.so \
- /usr/lib/tuxbox/plugins/ipkgpl.cfg"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--with-target=native "
-
-do_install() {
- install -d ${D}/usr/lib/tuxbox/plugins
- install ${S}/.libs/ipkgpl.so ${D}/usr/lib/tuxbox/plugins
- install -m 0644 ${S}/ipkgpl.cfg ${D}/usr/lib/tuxbox/plugins
-}
+++ /dev/null
-DESCRIPTION = "enigma2 default services/transponder"
-PRIORITY = "optional"
-LICENSE = "proprietary"
-MAINTAINER = "tmbinc@elitedvb.net"
-
-PR = "r1"
-
-SRC_URI = "file://*"
-
-S = "${WORKDIR}"
-
-INHIBIT_PACKAGE_STRIP = "1"
-
-do_install() {
- install -d ${D}/usr/share/enigma2/dealer
- install ${WORKDIR}/*.info ${D}/usr/share/enigma2/dealer
- install ${WORKDIR}/lamedb.* ${D}/usr/share/enigma2/dealer
-}
-
-FILES_${PN} = "/"
-PACKAGE_ARCH = "all"
+++ /dev/null
-eDVB services /3/
-transponders
-00820000:00c9:0006
- s 10775000:28000000:0:3:130:2
-/
-00820000:012d:0006
- s 11095910:28000000:0:3:130:2
-/
-00820000:1250:0064
- s 11013000:27500000:0:3:130:2
-/
-00820000:1ce8:0071
- s 12188000:27500000:1:3:130:2
-/
-00820000:1e78:0071
- s 12264000:27500000:1:3:130:2
-/
-00820000:1edc:0071
- s 12284000:27500000:0:3:130:2
-/
-00820000:3390:0071
- s 11159000:27500000:1:3:130:2
-/
-00820000:2bc0:00b0
- s 10758000:27500000:1:3:130:2
-/
-00820000:2c88:00b0
- s 10795000:27500000:1:3:130:2
-/
-00820000:2d50:00b0
- s 10834000:27500000:1:3:130:2
-/
-00820000:2e18:00b0
- s 10872000:27500000:1:3:130:2
-/
-00820000:2ee0:00b0
- s 10911000:27500000:1:3:130:2
-/
-00820000:3db8:00b0
- s 11662000:27500000:1:3:130:2
-/
-00820000:0708:00c8
- s 11541030:22000000:1:4:130:2
-/
-00820000:0389:0110
- s 11431800:27500000:1:1:130:2
-/
-00820000:1770:0110
- s 11919000:27500000:1:2:130:2
-/
-00820000:00c8:013e
- s 11240000:27500000:1:3:130:2
-/
-00820000:01f4:013e
- s 11295900:27500000:0:3:130:2
-/
-00820000:03e8:013e
- s 11393000:27500000:1:3:130:2
-/
-00820000:044c:013e
- s 11411050:27500000:0:4:130:2
-/
-00820000:0514:013e
- s 11449000:27500000:0:2:130:2:1:2:0:2
-/
-00820000:0578:013e
- s 11258000:27500000:0:2:130:2:1:2:0:2
-/
-00820000:05dc:013e
- s 11487770:27500000:0:3:130:2
-/
-00820000:06a4:013e
- s 11526000:27500000:0:3:130:2
-/
-00820000:1388:013e
- s 11727480:27500000:1:3:130:2
-/
-00820000:13ef:013e
- s 11747000:27500000:0:3:130:2
-/
-00820000:1450:013e
- s 11766000:27500000:1:2:130:2
-/
-00820000:14b4:013e
- s 11785000:27500000:0:3:130:2
-/
-00820000:1518:013e
- s 11804200:27500000:1:2:130:2
-/
-00820000:157c:013e
- s 11823000:27500000:0:3:130:2
-/
-00820000:17d4:013e
- s 11938000:27500000:0:3:130:2
-/
-00820000:1964:013e
- s 12015000:27500000:0:3:130:2
-/
-00820000:1af4:013e
- s 12092000:27500000:0:3:130:2
-/
-00820000:1b58:013e
- s 12111000:27500000:1:3:130:2
-/
-00820000:1bbc:013e
- s 12144760:3333000:0:3:130:2
-/
-00820000:1c20:013e
- s 12149000:27500000:1:3:130:2
-/
-00820000:1c84:013e
- s 12169000:27500000:0:3:130:2
-/
-00820000:1e14:013e
- s 12245000:27500000:0:3:130:2
-/
-00820000:1f40:013e
- s 12303000:27500000:1:3:130:2
-/
-00820000:1fa4:013e
- s 12322000:27500000:0:3:130:2
-/
-00820000:206c:013e
- s 12360420:27500000:0:3:130:2
-/
-00820000:20d0:013e
- s 12379000:27500000:1:3:130:2
-/
-00820000:2134:013e
- s 12398780:27500000:0:3:130:2
-/
-00820000:21fc:013e
- s 12437000:27500000:0:3:130:2
-/
-00820000:22c4:013e
- s 12475500:27500000:0:3:130:2
-/
-00820000:2328:013e
- s 12519840:27500000:1:3:130:2
-/
-00820000:238c:013e
- s 12539020:27500000:0:3:130:2
-/
-00820000:2454:013e
- s 12577000:27500000:0:3:130:2
-/
-00820000:24b8:013e
- s 12596560:27500000:1:3:130:2
-/
-00820000:2648:013e
- s 12673000:27500000:1:3:130:2
-/
-00820000:2af8:013e
- s 10719000:27500000:1:3:130:2
-/
-00820000:2b5c:013e
- s 10723000:29900000:0:3:130:2
-/
-00820000:2cec:013e
- s 10829500:3333000:0:3:130:2
-/
-00820000:2e7c:013e
- s 10892000:27500000:0:3:130:2
-/
-00820000:2f44:013e
- s 10930000:27500000:0:3:130:2
-/
-00820000:2fa8:013e
- s 10949000:27500000:1:3:130:2
-/
-00820000:300c:013e
- s 10971000:27500000:0:3:130:2
-/
-00820000:3070:013e
- s 10992160:27500000:1:2:130:2
-/
-00820000:3138:013e
- s 11034000:27500000:1:3:130:2
-/
-00820000:319c:013e
- s 11054000:27500000:0:4:130:2
-/
-00820000:3200:013e
- s 11075000:27500000:1:3:130:2
-/
-00820000:32c8:013e
- s 11117000:27500000:1:3:130:2
-/
-00820000:332c:013e
- s 11137000:27500000:0:3:130:2
-/
-00820000:33f4:013e
- s 11179000:27500000:0:3:130:2
-/
-00820000:3458:013e
- s 11200000:27500000:1:4:130:2
-/
-00820000:3bc4:013e
- s 11565740:27500000:0:3:130:2
-/
-00820000:3c28:013e
- s 11585000:27500000:1:3:130:2
-/
-00820000:3c8c:013e
- s 11604100:27500000:0:4:130:2
-/
-00820000:3cf0:013e
- s 11623280:27500000:1:3:130:2
-/
-00820000:3d54:013e
- s 11642500:27500000:0:3:130:2
-/
-00820000:23f0:013f
- s 12558200:27500000:1:3:130:2
-/
-00820000:26ac:013f
- s 12692000:27500000:0:3:130:2
-/
-00820000:3e1c:013f
- s 11681000:27500000:0:3:130:2
-/
-00820000:25e4:02be
- s 12654000:27500000:0:3:130:2
-/
-00820000:0064:fbff
- s 11219250:27500000:0:3:130:2
-/
-00820000:0320:fbff
- s 11355080:27500000:1:3:130:2
-/
-00820000:15e0:fbff
- s 11842000:27500000:1:3:130:2
-/
-00820000:1644:fbff
- s 11861000:27500000:0:3:130:2
-/
-00820000:16a8:fbff
- s 11880000:27500000:1:3:130:2
-/
-00820000:170c:fbff
- s 11900000:27500000:0:3:130:2
-/
-00820000:1838:fbff
- s 11958000:27500000:1:3:130:2
-/
-00820000:189c:fbff
- s 11976000:27500000:0:3:130:2
-/
-00820000:1900:fbff
- s 11996000:27500000:1:2:130:2:1:2:2:2
-/
-00820000:19c8:fbff
- s 12034000:27500000:1:3:130:2
-/
-00820000:1a2c:fbff
- s 12054000:27500000:0:3:130:2
-/
-00820000:1a90:fbff
- s 12072000:27500000:1:3:130:2
-/
-00820000:2008:fbff
- s 12341000:27500000:1:3:130:2
-/
-00820000:2198:fbff
- s 12418000:27500000:1:3:130:2
-/
-00820000:2260:fbff
- s 12465910:27500000:1:3:130:2
-/
-00820000:251c:fbff
- s 12616000:27500000:0:3:130:2
-/
-00820000:2580:fbff
- s 12635000:27500000:1:3:130:2
-/
-00820000:2710:fbff
- s 12713000:27500000:1:3:130:2
-/
-00820000:2774:fbff
- s 12731000:27500000:0:3:130:2
-/
-00822a65:2db4:0000
- s 10853440:27500000:0:3:130:2
-/
-00822faf:0001:0001
- s 12207000:27500000:0:3:130:2
-/
-0082afc1:0065:0001
- s 12225000:27500000:1:3:130:2
-/
-end
-services
-0009:00820000:3200:013e:0:0
-
-p:,f:40
-0015:00820000:0389:0110:0:0
-Servizio 21
-p:,f:40
-0017:00820000:0389:0110:0:0
-Servizio 23
-p:,f:40
-0018:00820000:0389:0110:0:0
-Servizio 24
-p:,f:40
-0019:00820000:0389:0110:0:0
-Servizio 25
-p:,f:40
-001a:00820000:0389:0110:0:0
-Servizio 26
-p:,f:40
-001b:00820000:0389:0110:0:0
-Servizio 27
-p:,f:40
-001c:00820000:0389:0110:0:0
-Servizio 28
-p:,f:40
-001d:00820000:0389:0110:0:0
-Servizio 29
-p:,f:40
-001e:00820000:0389:0110:0:0
-Servizio 30
-p:,f:40
-3623:00820000:00c8:013e:0:0
-SSU Orange
-p:EUTELSAT,f:40
-3624:00820000:00c8:013e:0:0
-SSU
-p:EUTELSAT,f:40
-225f:00820000:1af4:013e:0:0
-
-p:,f:40
-12cf:00820000:2e7c:013e:0:0
-119 test 1 E
-p:CYFRA +,f:40
-12d0:00820000:2e7c:013e:0:0
-119 test 2 E
-p:CYFRA +,f:40
-12d1:00820000:2e7c:013e:0:0
-119 test 3 E
-p:CYFRA +,f:40
-12d2:00820000:2e7c:013e:0:0
-119 test 1. E
-p:CYFRA +,f:40
-12d3:00820000:2e7c:013e:0:0
-119 test 2. E
-p:CYFRA +,f:40
-12d4:00820000:2e7c:013e:0:0
-119 test 3. E
-p:CYFRA +,f:40
-00ea:00820000:3e1c:013f:0:0
-SSU
-p:EUTELSAT,f:40
-00eb:00820000:3e1c:013f:0:0
-SSU Orange
-p:EUTELSAT,f:40
-0200:00820000:26ac:013f:1:0
-AB4
-p:AB Sat,f:40
-2200:00820000:1af4:013e:1:0
-Redlight USA
-p:TSA,f:40
-2500:00820000:2774:fbff:1:0
-Boomerang
-p:SkyItalia,f:40
-0001:00820000:3200:013e:1:0
-MTV Portugal
-p:MTV Networks Europe,f:40
-0001:00820000:300c:013e:1:0
-TRT-INT
-p:RRSat,f:40
-0001:00820000:2648:013e:1:0
-AL MAGHRIBIA
-p:PRVDR,f:40
-0001:00820000:1250:0064:1:0
-CGN
-p:,f:40
-0001:00820000:3d54:013e:1:0
-Bloomberg French TV
-p:,C:0e00,f:40
-0001:0082afc1:0065:0001:1:0
-VOA TV 1 (HB1-8)
-p:,f:40
-0001:00820000:1770:0110:1:0
-Italia 1
-p:,f:40
-0001:00820000:1fa4:013e:1:0
-RIT-TV
-p:EUTELSAT,f:40
-0001:00820000:1bbc:013e:1:0
-m2
-p:Magyar Televizio,f:40
-0001:00820000:00c9:0006:1:0
-Sports/ESPN/FoxSports/Conting
-p:,C:0e00,f:40
-0001:00820000:25e4:02be:1:0
-SHARJAH TV
-p:ARABSAT,f:40
-0001:00820000:2cec:013e:1:0
-Autonomia
-p:Duna Televizio,f:40
-2501:00820000:2774:fbff:1:0
-Hallmark
-p:SkyItalia,f:40
-0002:00820000:3200:013e:1:0
-MTV Polska
-p:MTV Networks Europe,f:40
-0002:00820000:300c:013e:1:0
-Suroyo tv
-p:RRSat,f:40
-0002:00820000:2648:013e:1:0
-TVM INTER+L
-p:PRVDR,f:40
-0002:00820000:1250:0064:1:0
-Marine Biz TV
-p:,f:40
-0002:00820000:3d54:013e:1:0
-Bloomberg Italian TV
-p:,C:0e00,f:40
-0002:00820000:1770:0110:1:0
-Canale 5
-p:,f:40
-0002:00820000:0578:013e:1:0
-Mktv Sat
-p:Harmonic,f:40
-0002:00820000:00c9:0006:1:0
-AFN Atlantic/PowerNet/Eagle/NPR
-p:,C:0e00,f:40
-0002:00820000:25e4:02be:1:0
-QATAR TV
-p:ARABSAT,f:40
-1402:00820000:05dc:013e:1:0
-ANIMAL PLANET
-p:CYFRA +,f:40
-2202:00820000:1af4:013e:1:0
-MCT Lux-Best
-p:TSA,f:40
-2502:00820000:2774:fbff:1:0
-Fox
-p:SkyItalia,f:40
-3b02:00820000:0578:013e:1:0
-TVP Sport
-p:ITI,f:40
-0003:00820000:3200:013e:1:0
-Game One
-p:MTV Networks Europe,f:40
-0003:00820000:300c:013e:1:0
-Music Box Russia
-p:RRSat,f:40
-0003:00820000:2648:013e:1:0
-AL Aoula
-p:PRVDR,f:40
-0003:00820000:1250:0064:1:0
-Telecolore
-p:,f:40
-0003:00820000:3d54:013e:1:0
-Bloomberg European TV
-p:,f:40
-0003:00820000:1770:0110:1:0
-Retequattro
-p:,f:40
-0003:00820000:0578:013e:1:0
-RIKSAT
-p:Harmonic,f:40
-0003:00820000:00c9:0006:1:0
-Spectrum/Touch/Contin
-p:,C:0e00,f:40
-0003:00820000:25e4:02be:1:0
-SAUDI 1
-p:ARABSAT,f:40
-0e03:00820000:15e0:fbff:1:0
-MotoTV
-p:SkyItalia,f:40
-1403:00820000:05dc:013e:1:0
-DISCOVERY
-p:CYFRA +,f:40
-2503:00820000:2774:fbff:1:0
-Jetix +1
-p:SkyItalia,f:40
-0004:00820000:3200:013e:1:0
-VH1 Polska
-p:MTV Networks Europe,f:40
-0004:00820000:300c:013e:1:0
-TIN + 18668336763
-p:RRSat,f:40
-0004:00820000:2648:013e:1:0
-ARRABIAA
-p:PRVDR,f:40
-0004:00820000:1250:0064:1:0
-Rusiya Al-Yaum
-p:,f:40
-0004:00820000:3d54:013e:1:0
-Bloomberg German TV
-p:,f:40
-0004:00820000:1770:0110:1:0
-Test
-p:,f:40
-0004:00820000:0578:013e:1:0
-ICC TV
-p:Harmonic,f:40
-0004:00820000:00c9:0006:1:0
-Pacific/Pure Gold
-p:,C:0e00,f:40
-0004:00820000:25e4:02be:1:0
-KUWAIT
-p:ARABSAT,f:40
-0104:0082afc1:0065:0001:1:0
-VOA Music Mix 260
-p:,f:40
-0e04:00820000:15e0:fbff:1:0
-Fox Crime +1
-p:SkyItalia,f:40
-2504:00820000:2774:fbff:1:0
-Cartoon +1
-p:SkyItalia,f:40
-3b04:00820000:0578:013e:1:0
-Sport Klub +
-p:ITI,f:40
-0005:00820000:3200:013e:1:0
-VIVA Polska
-p:MTV Networks Europe,f:40
-0005:00820000:300c:013e:1:0
-The Word Network
-p:RRSat,f:40
-0005:00820000:012d:0006:1:0
-News/BrightAC/Country/ARock
-p:,C:0e00,f:40
-0005:00820000:2648:013e:1:0
-TVM INTER
-p:PRVDR,f:40
-0005:00820000:1250:0064:1:0
-Gali Kurdistan TV
-p:,f:40
-0005:00820000:3d54:013e:1:0
-Bloomberg English TV
-p:,f:40
-0005:00820000:1770:0110:1:0
-Mediashopping
-p:,f:40
-0005:00820000:0578:013e:1:0
-PEN TV
-p:Harmonic,f:40
-0005:00820000:25e4:02be:1:0
-LIBYA
-p:ARABSAT,f:40
-0105:0082afc1:0065:0001:1:0
-VOA Music Mix 261
-p:,f:40
-1405:00820000:05dc:013e:1:0
-CNBC
-p:CYFRA +,f:40
-2505:00820000:2774:fbff:1:0
-The MGM Channel
-p:SkyItalia,f:40
-2905:00820000:1edc:0071:1:0
-E!
-p:Cyfrowy Polsat,f:40
-3b05:00820000:0578:013e:1:0
-Cartoon TCM
-p:ITI,f:40
-0006:00820000:3200:013e:1:0
-MTV 1
-p:MTV Networks Europe,f:40
-0006:00820000:012d:0006:1:0
-AFN Xtra/Time Code
-p:,C:0e00,f:40
-0006:00820000:2648:013e:1:0
-ASSADISSA
-p:PRVDR,f:40
-0006:00820000:1250:0064:1:0
-LA 9
-p:,f:40
-0006:00820000:3d54:013e:1:0
-SAT-7 KIDS
-p:,f:40
-0006:00820000:0578:013e:1:0
-Channel 6
-p:Harmonic,f:40
-0006:00820000:25e4:02be:1:0
-SUDAN
-p:ARABSAT,f:40
-0106:00820000:012d:0006:1:0
-AFN Freedom Radio
-p:,C:0e00,f:40
-0106:0082afc1:0065:0001:1:0
-VOA Music Mix 262
-p:,f:40
-1406:00820000:05dc:013e:1:0
-ZONE CLUB
-p:CYFRA +,f:40
-1f06:00820000:21fc:013e:1:0
-ALKAWTHAR
-p:IRIB,f:40
-2506:00820000:2774:fbff:1:0
-Roma Channel
-p:SkyItalia,f:40
-2906:00820000:1edc:0071:1:0
-Boomerang
-p:Cyfrowy Polsat,f:40
-3b06:00820000:0578:013e:1:0
-Sport Klub
-p:ITI,f:40
-0007:00820000:3200:013e:1:0
-VH1
-p:MTV Networks Europe,f:40
-0007:00820000:300c:013e:1:0
-Baby TV
-p:RRSat,f:40
-0007:00820000:1250:0064:1:0
-SARAFAN
-p:,f:40
-0007:00820000:3d54:013e:1:0
-Bloomberg Spain TV
-p:,C:0e00,f:40
-0007:00820000:0578:013e:1:0
-SALAAM TV
-p:Harmonic,f:40
-0007:00820000:00c9:0006:1:0
-Guide/PowerNet/HotAC/NewsRadio/UVC
-p:,C:0e00,f:40
-0007:00820000:25e4:02be:1:0
-OMAN
-p:ARABSAT,f:40
-0107:0082afc1:0065:0001:1:0
-IBB VOA RFERL Radio 263
-p:,f:40
-1407:00820000:05dc:013e:1:0
-ZONE REALITY
-p:CYFRA +,f:40
-1f07:00820000:21fc:013e:1:0
-FEED
-p:IRIB,f:40
-2507:00820000:2774:fbff:1:0
-GXT
-p:SkyItalia,f:40
-3607:00820000:00c8:013e:1:0
-ESP Int'l
-p:Eutelsat,f:40
-3b07:00820000:0578:013e:1:0
-TVN Med
-p:TVN,f:40
-3c07:00820000:2260:fbff:1:0
-MTV Gold
-p:SkyItalia,f:40
-0008:00820000:300c:013e:1:0
-MRTV / Univ TV
-p:RRSat,f:40
-0008:00820000:012d:0006:1:0
-Pentagon Channel
-p:,f:40
-0008:00820000:2648:013e:1:0
-Medi1SAT
-p:PRVDR,f:40
-0008:00820000:1250:0064:1:0
-AL FAYHAA
-p:,f:40
-0008:00820000:3d54:013e:1:0
-Miracle TV
-p:,f:40
-0008:0082afc1:0065:0001:1:0
-IBB OS Download 8 (DCP)
-p:,f:40
-0008:00820000:0578:013e:1:0
-THARISANAM
-p:Harmonic,f:40
-0008:00820000:14b4:013e:1:0
-R1
-p:Overon,f:40
-0008:00820000:25e4:02be:1:0
-ESC
-p:ARABSAT,f:40
-0108:0082afc1:0065:0001:1:0
-IBB VOA RFERL Radio 264
-p:,f:40
-0208:00820000:26ac:013f:1:0
-Beur TV
-p:AB SAT,f:40
-1408:00820000:05dc:013e:1:0
-EXTREME SPORTS
-p:CYFRA +,f:40
-1f08:00820000:21fc:013e:1:0
-PRESS TV
-p:IRIB,f:40
-2508:00820000:2774:fbff:1:0
-GXT +1
-p:SkyItalia,f:40
-2908:00820000:1edc:0071:1:0
-Radiostacja
-p:Cyfrowy Polsat,f:40
-3608:00820000:00c8:013e:1:0
-ESP Romanian
-p:Eutelsat,f:40
-3b08:00820000:0578:013e:1:0
-MTV2
-p:ITI,f:40
-3c08:00820000:2260:fbff:1:0
-MTV Pulse
-p:SkyItalia,f:40
-0009:00820000:300c:013e:1:0
-Al-Anwar
-p:RRSat,f:40
-0009:00820000:012d:0006:1:0
-AFN Family Channel
-p:,C:0e00,f:40
-0009:00820000:3d54:013e:1:0
-SAT-7 PARS
-p:,f:40
-0009:0082afc1:0065:0001:1:0
-IBB OS Download 9 (CCP)
-p:,f:40
-0009:00820000:0578:013e:1:0
-Andisheh
-p:Harmonic,f:40
-0009:00820000:14b4:013e:1:0
-KontaktChance.TV
-p:Overon/SmartCast,f:40
-0009:00820000:25e4:02be:1:0
-AL IRAQIA
-p:ARABSAT,f:40
-0109:0082afc1:0065:0001:1:0
-IBB VOA RFERL Radio 265
-p:,f:40
-1109:00820000:2710:fbff:1:0
-NatGeo Music
-p:SkyItalia,f:40
-1309:00820000:2e7c:013e:1:0
-DTV CABLE JE
-p:CYFRA +,f:40
-2009:00820000:24b8:013e:1:0
-Planeta Sport
-p:Globecast,f:40
-3609:00820000:00c8:013e:1:0
-ESP Dutch
-p:Eutelsat,f:40
-3909:00820000:32c8:013e:1:0
-BBC Prime
-p:Globecast UK,f:40
-3b09:00820000:0578:013e:1:0
-NASN
-p:TVN,f:40
-3c09:00820000:2260:fbff:1:0
-Vh1
-p:SkyItalia,f:40
-000a:00820000:3200:013e:1:0
-Comedy Central Polska
-p:MTV Networks Europe,f:40
-000a:00820000:300c:013e:1:0
-VenetoSat
-p:RRSat,f:40
-000a:00820000:012d:0006:1:0
-AFN Movie Channel
-p:,C:0e00,f:40
-000a:00820000:2648:013e:1:0
-ARRIADIA
-p:PRVDR,f:40
-000a:00820000:0578:013e:1:0
-OMID E IRAN
-p:Harmonic,f:40
-010a:0082afc1:0065:0001:1:0
-IBB VOA RFERL Radio 266
-p:,f:40
-110a:00820000:2710:fbff:1:0
-SKY TG 24
-p:SkyItalia,f:40
-130a:00820000:2e7c:013e:1:0
-DTV CABLE KU
-p:CYFRA +,f:40
-200a:00820000:24b8:013e:1:0
-KTO
-p:Globecast,f:40
-360a:00820000:00c8:013e:1:0
-ESP Polish
-p:Eutelsat,f:40
-390a:00820000:32c8:013e:1:0
-BBC Entertainment Poland
-p:Globecast UK,f:40
-3b0a:00820000:0578:013e:1:0
-Nsport 59
-p:TVN,f:40
-000b:00820000:3200:013e:1:0
-Nickelodeon Euro
-p:MTV Networks Europe,f:40
-000b:00820000:300c:013e:1:0
-3 Channel
-p:RRSat,f:40
-000b:00820000:0578:013e:1:0
-BET NAHRAIN
-p:Harmonic,f:40
-000b:00820000:00c9:0006:1:0
-Franconia
-p:,C:0e00,f:40
-010b:0082afc1:0065:0001:1:0
-IBB VOA RFERL Radio 267
-p:,f:40
-110b:00820000:2710:fbff:1:0
-Current
-p:SkyItalia,f:40
-130b:00820000:2e7c:013e:1:0
-DTV CABLE AL
-p:CYFRA +,f:40
-200b:00820000:24b8:013e:1:0
-BET
-p:Globecast,f:40
-290b:00820000:1edc:0071:1:0
-Zone Europa
-p:Cyfrowy Polsat,f:40
-360b:00820000:00c8:013e:1:0
-ESP Russian
-p:Eutelsat,f:40
-390b:00820000:32c8:013e:1:0
-BBC Knowledge Poland
-p:Globecast UK,f:40
-3b0b:00820000:0578:013e:1:0
-Boomerang
-p:ITI,f:40
-000c:00820000:300c:013e:1:0
-Telenova
-p:RRSat,f:40
-000c:00820000:012d:0006:1:0
-Aviano
-p:,C:0e00,f:40
-000c:00820000:1250:0064:1:0
-Canale8
-p:,f:40
-000c:00820000:0578:013e:1:0
-JAAM E JAM
-p:Harmonic,f:40
-010c:0082afc1:0065:0001:1:0
-VOA Music Mix 268
-p:,f:40
-120c:00820000:2b5c:013e:1:0
-AL JAZEERA SP+2
-p:H,f:40
-130c:00820000:2e7c:013e:1:0
-DTV CABLE ZI
-p:CYFRA +,f:40
-200c:00820000:24b8:013e:1:0
-BBC World News
-p:Globecast UK,f:40
-290c:00820000:1edc:0071:1:0
-Zone Club
-p:Cyfrowy Polsat,f:40
-360c:00820000:00c8:013e:1:0
-ESP Portuguese
-p:Eutelsat,f:40
-390c:00820000:32c8:013e:1:0
-BBC Lifestyle Poland
-p:Globecast UK,f:40
-3b0c:00820000:0578:013e:1:0
-Cinemax 1
-p:ITI,f:40
-000d:00820000:300c:013e:1:0
-NTD TV
-p:NTD TV,f:40
-000d:00820000:1250:0064:1:0
-RU TV
-p:,f:40
-000d:00820000:0578:013e:1:0
-PROPHETIC
-p:Harmonic,f:40
-000d:00820000:00c9:0006:1:0
-Hessen
-p:,C:0e00,f:40
-010d:0082afc1:0065:0001:1:0
-IBB VOA RFERL Radio 269
-p:,f:40
-020d:00820000:26ac:013f:1:0
-LUXE TV
-p:DVL.TV,f:40
-030d:00820000:1b58:013e:1:0
-Puglia Channel
-p:Telespazio,f:40
-120d:00820000:2b5c:013e:1:0
-ANT1 EU promo
-p:Harmonic,f:40
-360d:00820000:00c8:013e:1:0
-ESP Hungarian
-p:Eutelsat,f:40
-390d:00820000:32c8:013e:1:0
-BBC CBeebies Poland
-p:Globecast UK,f:40
-3b0d:00820000:0578:013e:1:0
-Cinemax 2
-p:ITI,f:40
-000e:00820000:300c:013e:1:0
-Russia Today
-p:RRSat,f:40
-000e:00820000:012d:0006:1:0
-Vicenza
-p:,C:0e00,f:40
-000e:00820000:0578:013e:1:0
-IRAN
-p:Harmonic,f:40
-010e:0082afc1:0065:0001:1:0
-IBB VOA RFERL Radio 270
-p:,f:40
-360e:00820000:00c8:013e:1:0
-Prod ESP
-p:Eutelsat,f:40
-390e:00820000:32c8:013e:1:0
-BBC Persian
-p:Globecast UK,f:40
-3b0e:00820000:0578:013e:1:0
-KidsCo
-p:ITI,f:40
-000f:00820000:300c:013e:1:0
-GOD TV
-p:RRSat,f:40
-000f:00820000:00c9:0006:1:0
-Heidelberg
-p:,C:0e00,f:40
-010f:0082afc1:0065:0001:1:0
-IBB VOA RFERL Radio 271
-p:,f:40
-0c0f:00820000:20d0:013e:1:0
-RFI Francais
-p:GlobeCast,f:40
-290f:00820000:1edc:0071:1:0
-Dla Abonentow
-p:Cyfrowy Polsat,f:40
-360f:00820000:00c8:013e:1:0
-ESP Czech
-p:Eutelsat,f:40
-3b0f:00820000:0578:013e:1:0
-DA VINCI
-p:ITI,f:40
-0010:00820000:300c:013e:1:0
-Wind int. tv
-p:RRSat,f:40
-0010:00820000:012d:0006:1:0
-AFNS Contingency Channel
-p:,C:0e00,f:40
-0010:00820000:1250:0064:1:0
-VideoBergamo
-p:,f:40
-0010:00820000:0578:013e:1:0
-Ariana
-p:Harmonic,f:40
-0110:0082afc1:0065:0001:1:0
-IBB VOA RFERL Radio 272
-p:,f:40
-0210:00820000:26ac:013f:1:0
-CINE POP
-p:,f:40
-2010:00820000:24b8:013e:1:0
-1TVRUS Europe
-p:Globecast,f:40
-2210:00820000:1af4:013e:1:0
-MCT Premium
-p:Harmonic,f:40
-3610:00820000:00c8:013e:1:0
-ESP Greek
-p:Eutelsat,f:40
-3b10:00820000:0578:013e:1:0
-OTV
-p:ITI,f:40
-0011:00822faf:0001:0001:1:0
-Fashion TV
-p:RRSat,f:40
-0011:00820000:1250:0064:1:0
-Cinquestelle
-p:,f:40
-0011:00820000:0578:013e:1:0
-IRAN.MNTV
-p:Harmonic,f:40
-0011:00820000:00c9:0006:1:0
-Bavaria
-p:,C:0e00,f:40
-0111:0082afc1:0065:0001:1:0
-IBB VOA RFERL Radio 273
-p:,f:40
-2011:00820000:24b8:013e:1:0
-CNNi
-p:Globecast,f:40
-3611:00820000:00c8:013e:1:0
-ESP Cyprus
-p:Eutelsat,f:40
-3b11:00820000:0578:013e:1:0
-Jetix
-p:ITI,f:40
-0012:00822faf:0001:0001:1:0
-F men
-p:RRSat,f:40
-0012:00820000:012d:0006:1:0
-Naples
-p:,C:0e00,f:40
-0012:00820000:0578:013e:1:0
-Tasvir Iran
-p:Harmonic,f:40
-0e12:00820000:0708:00c8:1:0
-TV7 LOMBARDIA
-p:M-Three satcom,f:40
-2912:00820000:1edc:0071:1:0
-Zone Reality
-p:Cyfrowy Polsat,f:40
-3612:00820000:00c8:013e:1:0
-ESP Bulgarian
-p:Eutelsat,f:40
-0013:00820000:1250:0064:1:0
-TBM
-p:,f:40
-0013:00820000:0578:013e:1:0
-MOHABAT TV
-p:Harmonic,f:40
-0013:00820000:00c9:0006:1:0
-Kaiserslautern
-p:,C:0e00,f:40
-0e13:00820000:0708:00c8:1:0
-THOU TV
-p:M-Three satcom,f:40
-2013:00820000:24b8:013e:1:0
-Euronews
-p:Globecast,f:40
-3613:00820000:00c8:013e:1:0
-ESP2 Turk
-p:Eutelsat,f:40
-0014:00822faf:0001:0001:1:0
-Pars TV
-p:RRSat,f:40
-0014:00820000:012d:0006:1:0
-Sigonella
-p:,C:0e00,f:40
-0014:00820000:1250:0064:1:0
-Angel TV
-p:,f:40
-0e14:00820000:0708:00c8:1:0
-Sardegna Channel
-p:M-Three satcom,f:40
-2914:00820000:1edc:0071:1:0
-Playboy
-p:Cyfrowy Polsat,f:40
-3614:00820000:00c8:013e:1:0
-ESP Serbia
-p:Eutelsat,f:40
-3b14:00820000:0578:013e:1:0
-ITVN EU
-p:ITI,f:40
-0015:00820000:00c9:0006:1:0
-Benelux
-p:,C:0e00,f:40
-0015:00820000:25e4:02be:1:0
-SHARJAH R2
-p:ARABSAT,f:40
-0e15:00820000:0708:00c8:1:0
-BERGAMOSAT
-p:M-Three satcom,f:40
-2015:00820000:24b8:013e:1:0
-JSTV1
-p:Globecast,f:40
-2915:00820000:1edc:0071:1:0
-Jetix Play
-p:Cyfrowy Polsat,f:40
-3615:00820000:00c8:013e:1:0
-ESP Turk
-p:Eutelsat,f:40
-0016:00820000:3200:013e:1:0
-MTV Polska.
-p:MTV Networks Europe,f:40
-0016:00820000:300c:013e:1:0
-Suryoyo Sat
-p:RRSat,f:40
-0016:00820000:0578:013e:1:0
-TAPESH
-p:Harmonic,f:40
-0016:00820000:00c9:0006:1:0
-Guide/Country
-p:,C:0e00,f:40
-0e16:00820000:0708:00c8:1:0
-ESP2 Romania
-p:EUTELSAT,f:40
-2016:00820000:24b8:013e:1:0
-JSTV2
-p:Globecast,f:40
-2316:00820000:238c:013e:1:0
-Nile TV International
-p:ERTU,f:40
-2916:00820000:1edc:0071:1:0
-TV1000
-p:Cyfrowy Polsat,f:40
-3616:00820000:00c8:013e:1:0
-ESP2 German
-p:Eutelsat,f:40
-0017:00820000:00c9:0006:1:0
-Eifel
-p:,C:0e00,f:40
-2217:00820000:1af4:013e:1:0
-MCT Sct
-p:TSA,f:40
-2317:00820000:238c:013e:1:0
-Nile News
-p:ERTU,f:40
-2917:00820000:1edc:0071:1:0
-Test Radio 2
-p:Cyfrowy Polsat,f:40
-3617:00820000:00c8:013e:1:0
-ESP2 Serbia
-p:Eutelsat,f:40
-0018:00820000:3200:013e:1:0
-VH1 Polska.
-p:MTV Networks Europe,f:40
-0018:00820000:300c:013e:1:0
-Asianet Plus
-p:RRSat,f:40
-0018:00820000:00c9:0006:1:0
-Guide/NPR
-p:,C:0e00,f:40
-0218:00820000:26ac:013f:1:0
-ORANGE SPORT TV
-p:AB SAT,f:40
-0e18:00820000:0708:00c8:1:0
-La Nuova TV
-p:M-Three satcom,f:40
-2218:00820000:1af4:013e:1:0
-MCT Sex
-p:TSA,f:40
-2918:00820000:1edc:0071:1:0
-Travel
-p:Cyfrowy Polsat,f:40
-0019:00820000:3200:013e:1:0
-VIVA Polska.
-p:MTV Networks Europe,f:40
-0119:0082afc1:0065:0001:1:0
-IBB VOA RFERL Radio 281
-p:,f:40
-0e19:00820000:0708:00c8:1:0
-Umbria Channel
-p:M-Three satcom,f:40
-2219:00820000:1af4:013e:1:0
-TELEITALIA
-p:Harmonic,f:40
-2919:00820000:1edc:0071:1:0
-Science
-p:Cyfrowy Polsat,f:40
-3619:00820000:00c8:013e:1:0
-France 24 (en Francais)
-p:Eutelsat,f:40
-001a:00820000:012d:0006:1:0
-AFN Freedom
-p:,C:0e00,f:40
-011a:0082afc1:0065:0001:1:0
-Sawa Levant Radio 282
-p:,f:40
-021a:00820000:26ac:013f:1:0
-France 3
-p:AB SAT,f:40
-0e1a:00820000:0708:00c8:1:0
-LA7
-p:,C:093b,C:0919,f:40
-1d1a:00820000:2fa8:013e:1:0
-Sun KTV
-p:Globecast UK,f:40
-291a:00820000:1edc:0071:1:0
-Discovery World
-p:Cyfrowy Polsat,f:40
-361a:00820000:00c8:013e:1:0
-France 24 (in English)
-p:Eutelsat,f:40
-001b:00820000:3200:013e:1:0
-VH1.
-p:MTV Networks Europe,f:40
-001b:00820000:00c9:0006:1:0
-Guide/The Touch
-p:,C:0e00,f:40
-011b:0082afc1:0065:0001:1:0
-Sawa Iraq Radio 283
-p:,f:40
-021b:00820000:26ac:013f:1:0
-France 4
-p:AB SAT,f:40
-231b:00820000:238c:013e:1:0
-MEDIOLANUM
-p:Tadiran Scopus,f:40
-001c:00820000:00c9:0006:1:0
-Guide/Pure Gold
-p:,C:0e00,f:40
-011c:0082afc1:0065:0001:1:0
-IBB TV Dedicated Channel 284
-p:,f:40
-021c:00820000:26ac:013f:1:0
-TMC
-p:AB SAT,f:40
-051c:00820000:3db8:00b0:1:0
-OM TV
-p:,f:40
-1d1c:00820000:2fa8:013e:1:0
-ANB
-p:Globecast,f:40
-001d:00820000:00c9:0006:1:0
-Guide/Hot AC
-p:,C:0e00,f:40
-021d:00820000:26ac:013f:1:0
-CINE FIRST
-p:,f:40
-0c1d:00820000:1e78:0071:1:0
-Polsat Sport HD test
-p:Cyfrowy Polsat S.A.,f:40
-0e1d:00820000:0708:00c8:1:0
-ESP2 Hungary
-p:EUTELSAT,f:40
-221d:00820000:1af4:013e:1:0
-Redlight LATINO
-p:TSA,f:40
-251d:00820000:13ef:013e:1:0
-DUBAI TV
-p:DU,f:40
-001e:00820000:3200:013e:1:0
-Comedy Central Polska.
-p:MTV Networks Europe,f:40
-001e:00820000:00c9:0006:1:0
-Guide/Z-rock ABC Hard Rock
-p:,C:0e00,f:40
-051e:00820000:3db8:00b0:1:0
-COMEDIE!
-p:,C:0500,f:40
-0c1e:00820000:1e78:0071:1:0
-HBO
-p:Cyfrowy Polsat S.A.,f:40
-251e:00820000:13ef:013e:1:0
-DUBAI SPORTS
-p:DU,f:40
-341e:00820000:0064:fbff:1:0
-Prima Fila 38
-p:SkyItalia,f:40
-391e:00820000:32c8:013e:1:0
-Wedding TV
-p:Globecast UK,f:40
-001f:00820000:00c9:0006:1:0
-Guide/Fox Sports Talk
-p:,C:0e00,f:40
-051f:00820000:3db8:00b0:1:0
-SPORT+
-p:,C:0500,f:40
-0c1f:00820000:1e78:0071:1:0
-HBO 2
-p:Cyfrowy Polsat S.A.,f:40
-0e1f:00820000:0708:00c8:1:0
-ROMAUNO
-p:Scopus Network Technologies,f:40
-1d1f:00820000:2fa8:013e:1:0
-Sun TV +442083356780
-p:Globecast UK,f:40
-231f:00820000:238c:013e:1:0
-Sports
-p:ERTU,f:40
-251f:00820000:13ef:013e:1:0
-SAMADUBAI
-p:DU,f:40
-341f:00820000:0064:fbff:1:0
-Prima Fila 31
-p:SkyItalia,f:40
-0020:00820000:00c9:0006:1:0
-Guide/ESPN Radio
-p:,C:0e00,f:40
-0520:00820000:3db8:00b0:1:0
-13ème RUE
-p:,f:40
-0c20:00820000:1e78:0071:1:0
-HBO Comedy
-p:Cyfrowy Polsat S.A.,f:40
-0e20:00820000:0708:00c8:1:0
-NATIONAL GEO
-p:EUTELSAT,f:40
-1d20:00820000:2fa8:013e:1:0
-Al Hiwar TV
-p:Globecast UK,f:40
-3420:00820000:0064:fbff:1:0
-Prima Fila 32
-p:SkyItalia,f:40
-3620:00820000:00c8:013e:1:0
-KP
-p:Eutelsat,f:40
-3920:00820000:32c8:013e:1:0
-D. Travel
-p:Globecast UK,f:40
-0021:00822faf:0001:0001:1:0
-3ABN International
-p:RRSat,f:40
-0221:00820000:26ac:013f:1:0
-TEST 1
-p:,f:40
-0321:00820000:3bc4:013e:1:0
-TBN Europe
-p:OVERON,f:40
-0c21:00820000:1e78:0071:1:0
-HBO HD test
-p:Cyfrowy Polsat S.A.,f:40
-1c21:00820000:1c20:013e:1:0
-DunaTV
-p:AH-EDP,f:40
-1d21:00820000:2fa8:013e:1:0
-CN/TCM CEE Combo
-p:Globecast UK,f:40
-3421:00820000:0064:fbff:1:0
-Prima Fila 35
-p:SkyItalia,f:40
-3621:00820000:00c8:013e:1:0
-M
-p:Eutelsat,f:40
-3921:00820000:32c8:013e:1:0
-D. World
-p:Globecast UK,f:40
-0022:00822faf:0001:0001:1:0
-Asianet
-p:RRSat,f:40
-0122:0082afc1:0065:0001:1:0
-Sawa Egypt Radio 290
-p:,f:40
-0322:00820000:3bc4:013e:1:0
-TBNEspain
-p:OVERON,f:40
-1c22:00820000:1c20:013e:1:0
-TV7 Tunis
-p:AH-EDP,f:40
-3422:00820000:0064:fbff:1:0
-Prima Fila 36
-p:SkyItalia,f:40
-3622:00820000:00c8:013e:1:0
-S
-p:Eutelsat,f:40
-3722:00820000:206c:013e:1:0
-SEX VIEW HQ
-p:,f:40
-3922:00820000:32c8:013e:1:0
-D. Science
-p:Globecast UK,f:40
-0023:00820000:00c9:0006:1:0
-Guide/AFNE PowerNet
-p:,C:0e00,f:40
-0123:0082afc1:0065:0001:1:0
-Sawa Gulf Radio 291
-p:,f:40
-0323:00820000:3bc4:013e:1:0
-TBN ITALIA
-p:OVERON,f:40
-1123:00820000:2710:fbff:1:0
-SKY TG 24
-p:SkyItalia,f:40
-1d23:00820000:2fa8:013e:1:0
-DMC TV
-p:Globecast UK,f:40
-2923:00820000:1edc:0071:1:0
-Radio ZET
-p:Cyfrowy Polsat,f:40
-3423:00820000:0064:fbff:1:0
-Prima Fila 37
-p:SkyItalia,f:40
-0024:00820000:00c9:0006:1:0
-Guide/Contingency
-p:,C:0e00,f:40
-0124:0082afc1:0065:0001:1:0
-Sawa N. Africa Radio 292
-p:,f:40
-0324:00820000:3bc4:013e:1:0
-Church Channel
-p:GCE,f:40
-2524:00820000:13ef:013e:1:0
-PMC
-p:DU,f:40
-2924:00820000:1edc:0071:1:0
-RMF Classic
-p:Cyfrowy Polsat,f:40
-0025:00820000:00c9:0006:1:0
-Guide/AFNE Eagle
-p:,C:0e00,f:40
-0125:0082afc1:0065:0001:1:0
-Sawa Egypt Radio 293
-p:,f:40
-0325:00820000:3bc4:013e:1:0
-JCTV
-p:,f:40
-1325:00820000:33f4:013e:1:0
-Test Tv 1 Enc 01
-p:Telespazio,f:40
-1c25:00820000:1c20:013e:1:0
-SALENTO CHANNEL
-p:AH-EDP,f:40
-2c25:00820000:1644:fbff:1:0
-Rock TV
-p:SkyItalia,f:40
-3625:00820000:00c8:013e:1:0
-H1
-p:EUTELSAT,f:40
-0126:0082afc1:0065:0001:1:0
-Farda Radio 294
-p:,f:40
-0326:00820000:3bc4:013e:1:0
-EL SHAFAA
-p:OVERON,f:40
-0e26:00820000:0708:00c8:1:0
-Toscana Channel
-p:M-Three Satcom,f:40
-1326:00820000:33f4:013e:1:0
-Test Tv 2 Enc 02
-p:,f:40
-1c26:00820000:1c20:013e:1:0
-STUDIO 100 TV
-p:AH-EDP,f:40
-2526:00820000:13ef:013e:1:0
-AL SHARQIYA
-p:DU,f:40
-2926:00820000:1edc:0071:1:0
-Radio Plus
-p:Cyfrowy Polsat,f:40
-2c26:00820000:1644:fbff:1:0
-Animal Planet
-p:SkyItalia,f:40
-3626:00820000:00c8:013e:1:0
-H2
-p:EUTELSAT,f:40
-0027:00820000:00c9:0006:1:0
-Guide/AFN News Radio
-p:,C:0e00,f:40
-0127:0082afc1:0065:0001:1:0
-VOA Persian TV 295
-p:,f:40
-0327:00820000:3bc4:013e:1:0
-TBN RUSSIA
-p:GCE,f:40
-0e27:00820000:0708:00c8:1:0
-50 Canale
-p:M-Three satcom,f:40
-1c27:00820000:1c20:013e:1:0
-FUEGO
-p:AH-EDP,f:40
-1d27:00820000:2fa8:013e:1:0
-Al Forat
-p:Globecast UK,f:40
-2927:00820000:1edc:0071:1:0
-Trójka - PR
-p:Cyfrowy Polsat,f:40
-3427:00820000:0064:fbff:1:0
-Prima Fila 39
-p:SkyItalia,f:40
-3627:00820000:00c8:013e:1:0
-H3
-p:EUTELSAT,f:40
-0028:00820000:00c9:0006:1:0
-AFN Iraq Radio
-p:,C:0e00,f:40
-0028:00820000:25e4:02be:1:0
-JORDAN
-p:ARABSAT,f:40
-0128:0082afc1:0065:0001:1:0
-IBB VOA RFERL Radio 296
-p:,f:40
-0328:00820000:3bc4:013e:1:0
-SMILE
-p:,f:40
-0e28:00820000:0708:00c8:1:0
-ARCOIRIS TV
-p:M-Three satcom,f:40
-1328:00820000:33f4:013e:1:0
-Test Tv 4 Enc 04
-p:Telespazio,f:40
-1c28:00820000:1c20:013e:1:0
-BLU
-p:AH-EDP,f:40
-2528:00820000:13ef:013e:1:0
-INFINITY
-p:DU,f:40
-2928:00820000:1edc:0071:1:0
-Radio Polonia
-p:Cyfrowy Polsat,f:40
-2c28:00820000:1644:fbff:1:0
-Discovery Real Time
-p:SkyItalia,f:40
-0029:00820000:012d:0006:1:0
-The Eagle - Vicenza (audio only)
-p:,C:0e00,f:40
-0029:00820000:25e4:02be:1:0
-ALMUSTAKILLA
-p:ARABSAT,f:40
-0129:0082afc1:0065:0001:1:0
-Sawa Sudan Radio 297
-p:,f:40
-0329:00820000:3bc4:013e:1:0
-NEJAT TV
-p:OVERON,f:40
-1329:00820000:33f4:013e:1:0
-Test Tv 5 Enc 05
-p:Telespazio,f:40
-1c29:00820000:1c20:013e:1:0
-TR2SAT
-p:AH-EDP,f:40
-1d29:00820000:2fa8:013e:1:0
-Al Forat Radio
-p:Globecast UK,f:40
-2529:00820000:13ef:013e:1:0
-AL ARABIYA
-p:DU,f:40
-2929:00820000:1edc:0071:1:0
-Jedynka - PR
-p:Cyfrowy Polsat,f:40
-002a:00820000:012d:0006:1:0
-Power 107 Vicenza (audio only)
-p:,C:0e00,f:40
-002a:00820000:25e4:02be:1:0
-STRIKE TV
-p:ARABSAT,f:40
-012a:0082afc1:0065:0001:1:0
-VOA Persian TV 298
-p:,f:40
-1c2a:00820000:1c20:013e:1:0
-BLU 3
-p:AH-EDP,f:40
-1d2a:00820000:2fa8:013e:1:0
-Disney Channel
-p:Globecast UK,f:40
-292a:00820000:1edc:0071:1:0
-RMF FM
-p:Cyfrowy Polsat,f:40
-2c2a:00820000:1644:fbff:1:0
-Discovery
-p:SkyItalia,f:40
-342a:00820000:0064:fbff:1:0
-JimJam
-p:SkyItalia,f:40
-002b:00820000:012d:0006:1:0
-AFN Vicenza Contingency
-p:,C:0e00,f:40
-012b:0082afc1:0065:0001:1:0
-Sawa Lebanon Radio 299
-p:,f:40
-032b:00820000:3bc4:013e:1:0
-Inspiration
-p:GlobeCast,f:40
-0e2b:00820000:0708:00c8:1:0
-TeleTirreno
-p:M-Three satcom,f:40
-1d2b:00820000:2fa8:013e:1:0
-Cartoon Network
-p:Globecast UK,f:40
-252b:00820000:13ef:013e:1:0
-MBC MAGHREB AL ARABIA
-p:DU,f:40
-2d2b:00820000:1a2c:fbff:1:0
-Bloomberg
-p:SkyItalia,f:40
-342b:00820000:0064:fbff:1:0
-Prima Fila 33
-p:SkyItalia,f:40
-032c:00820000:3bc4:013e:1:0
-DAYSTAR
-p:OVERON,f:40
-132c:00820000:33f4:013e:1:0
-TV Moda
-p:Telespazio,f:40
-1d2c:00820000:2fa8:013e:1:0
-Turner Classic Movies
-p:Globecast UK,f:40
-252c:00820000:13ef:013e:1:0
-ME SHOP
-p:DU,f:40
-2c2c:00820000:1644:fbff:1:0
-Class CNBC
-p:SkyItalia,f:40
-012d:0082afc1:0065:0001:1:0
-Sawa Iraq Radio 301
-p:,f:40
-012d:00820000:157c:013e:1:0
-R1
-p:NetMed,f:40
-1d2d:00820000:2fa8:013e:1:0
-All Music
-p:Globecast UK,f:40
-252d:00820000:13ef:013e:1:0
-EZ Shop
-p:Samacom,f:40
-332d:00820000:3390:0071:1:0
-Polsat
-p:Polsat,f:40
-342d:00820000:0064:fbff:1:0
-CNBC Europe
-p:SkyItalia,f:40
-012e:0082afc1:0065:0001:1:0
-Sawa Egypt Radio 302
-p:,f:40
-012e:00820000:157c:013e:1:0
-R2
-p:NetMed,f:40
-0e2e:00820000:16a8:fbff:1:0
-Alice
-p:SkyItalia,f:40
-132e:00820000:33f4:013e:1:0
-JSC Sport+1
-p:Telespazio,f:40
-222e:00820000:1af4:013e:1:0
-Bolsa
-p:TSA,f:40
-2c2e:00820000:1644:fbff:1:0
-Raisat Cinema
-p:SkyItalia,f:40
-332e:00820000:3390:0071:1:0
-Polsat2
-p:Polsat,f:40
-002f:00820000:25e4:02be:1:0
-OMAN -HOLY QURAN
-p:ARABSAT,f:40
-012f:0082afc1:0065:0001:1:0
-Sawa Gulf Radio 303
-p:,f:40
-012f:00820000:157c:013e:1:0
-R3
-p:NetMed,f:40
-0e2f:00820000:16a8:fbff:1:0
-Leonardo
-p:SkyItalia,f:40
-132f:00820000:33f4:013e:1:0
-JSC Sport+2
-p:Telespazio,f:40
-332f:00820000:3390:0071:1:0
-TV4
-p:Polsat,f:40
-0130:0082afc1:0065:0001:1:0
-Sawa N. Africa Radio 304
-p:,f:40
-0130:00820000:157c:013e:1:0
-R4
-p:NetMed,f:40
-0e30:00820000:16a8:fbff:1:0
-Nuvolari
-p:SkyItalia,f:40
-1330:00820000:33f4:013e:1:0
-JSC Sport+3
-p:Telespazio,f:40
-3330:00820000:3390:0071:1:0
-Polsat Sport
-p:Polsat,f:40
-0131:0082afc1:0065:0001:1:0
-Sawa Sudan Radio 305
-p:,f:40
-0e31:00820000:16a8:fbff:1:0
-Marcopolo
-p:SkyItalia,f:40
-2931:00820000:1edc:0071:1:0
-Techniczny
-p:CyfrowyPolsat,f:40
-2c31:00820000:1644:fbff:1:0
-Raisat Gambero
-p:SkyItalia,f:40
-3331:00820000:3390:0071:1:0
-Polsat Sport Extra
-p:Polsat,f:40
-0032:00822faf:0001:0001:1:0
-VTV4
-p:RRSat,f:40
-0032:00820000:00c9:0006:1:0
-Guide/Bright AC
-p:,C:0e00,f:40
-0132:0082afc1:0065:0001:1:0
-Farda Radio 306
-p:,f:40
-0132:00820000:157c:013e:1:0
-R5
-p:NetMed,f:40
-1132:00820000:2af8:013e:1:0
-Movies24
-p:CYFRA +,f:40
-2c32:00820000:1644:fbff:1:0
-Raisat YOYO
-p:SkyItalia,f:40
-3332:00820000:3390:0071:1:0
-Zdrowie i Uroda
-p:Polsat,f:40
-0033:00822faf:0001:0001:1:0
-CNL
-p:RRSat,f:40
-0033:00820000:00c9:0006:1:0
-Guide/Adult Rock
-p:,C:0e00,f:40
-0133:0082afc1:0065:0001:1:0
-Sawa Lebanon Radio 307
-p:,f:40
-0133:00820000:157c:013e:1:0
-R6
-p:NetMed,f:40
-0e33:00820000:16a8:fbff:1:0
-Fox +1
-p:SkyItalia,f:40
-1133:00820000:2af8:013e:1:0
-TV 4
-p:CYFRA +,f:40
-1333:00820000:33f4:013e:1:0
-Studio Europa
-p:Telespazio,f:40
-2c33:00820000:1644:fbff:1:0
-VideoItalia
-p:SkyItalia,f:40
-3333:00820000:3390:0071:1:0
-TV Biznes
-p:CYFRA+,f:40
-0034:00822faf:0001:0001:1:0
-Rojhelat
-p:RRSat,f:40
-0134:00820000:157c:013e:1:0
-SuperSport1
-p:NetMed,f:40
-0834:00820000:3d54:013e:1:0
-ERTSAT Europe
-p:,f:40
-0e34:00820000:16a8:fbff:1:0
-Fantasy
-p:SkyItalia,f:40
-1134:00820000:2af8:013e:1:0
-4fun.TV
-p:CYFRA +,f:40
-1334:00820000:33f4:013e:1:0
-GLOBE MEDIA
-p:Telespazio,f:40
-1c34:00820000:1c20:013e:1:0
-Khabar TV
-p:AH-EDP,f:40
-2234:00820000:1af4:013e:1:0
-Redlight Italy
-p:TSA,f:40
-3334:00820000:3390:0071:1:0
-Superstacja
-p:Cyfrowy Polsat,f:40
-0e35:00820000:16a8:fbff:1:0
-NatGeo Wild
-p:SkyItalia,f:40
-1135:00820000:2af8:013e:1:0
-EUROSPORT 2
-p:CYFRA +,f:40
-1c35:00820000:1c20:013e:1:0
-Telelombardia
-p:AH-EDP,f:40
-2135:00820000:3070:013e:1:0
-Rai Africa
-p:RAI,f:40
-2935:00820000:1edc:0071:1:0
-RMF MAXXX
-p:Cyfrowy Polsat,f:40
-3335:00820000:3390:0071:1:0
-Polsat News
-p:Cyfrowy Polsat,f:40
-3a35:00820000:1fa4:013e:1:0
-UNIVERSAL
-p:EUTELSAT,f:40
-1136:00820000:2af8:013e:1:0
-PLANETE
-p:CYFRA +,f:40
-1c36:00820000:1c20:013e:1:0
-LIDER TV AZE
-p:AH-EDP,f:40
-2136:00820000:3070:013e:1:0
-RAITALIA INTERNATIONAL
-p:RAI,f:40
-2c36:00820000:1644:fbff:1:0
-Comedy Central
-p:SkyItalia,f:40
-3a36:00820000:1fa4:013e:1:0
-SCI FI
-p:EUTELSAT,f:40
-1137:00820000:2af8:013e:1:0
-MINIMINI
-p:CYFRA +,f:40
-1c37:00820000:1c20:013e:1:0
-Nessuno TV
-p:AH-EDP,f:40
-1338:00820000:33f4:013e:1:0
-NEW TELEVISION
-p:Telespazio,f:40
-1c38:00820000:1c20:013e:1:0
-CCTV4
-p:AH-EDP,f:40
-2c38:00820000:1644:fbff:1:0
-Nickelodeon
-p:SkyItalia,f:40
-1339:00820000:33f4:013e:1:0
-GBR
-p:Telespazio,f:40
-2239:00820000:1af4:013e:1:0
-MCT Gay-Trans
-p:TSA,f:40
-133a:00820000:33f4:013e:1:0
-BTV INPS
-p:Telespazio,f:40
-223a:00820000:1af4:013e:1:0
-MCT Fantasy-Amateur
-p:TSA,f:40
-223b:00820000:1af4:013e:1:0
-Don t Panic TV
-p:TSA,f:40
-013c:00820000:157c:013e:1:0
-JETIX
-p:NetMed,f:40
-2c3c:00820000:1644:fbff:1:0
-NASN
-p:SkyItalia,f:40
-003d:00820000:00c9:0006:1:0
-Bars and Test Tone +4.0 dBu
-p:,f:40
-013d:00820000:157c:013e:1:0
-novacinema1
-p:NetMed,f:40
-113d:00820000:2af8:013e:1:0
-INFO+/C+ Sport2
-p:CYFRA +,f:40
-133d:00820000:33f4:013e:1:0
-Sensuality
-p:Telespazio,f:40
-223d:00820000:1af4:013e:1:0
-MCT Super-Dream
-p:Harmonic,f:40
-013e:00820000:157c:013e:1:0
-novasports1
-p:NetMed,f:40
-133e:00820000:33f4:013e:1:0
-SixtyNine
-p:Telespazio,f:40
-223e:00820000:1af4:013e:1:0
-MCT Strong
-p:TSA,f:40
-013f:00820000:157c:013e:1:0
-MEGA
-p:NetMed,f:40
-123f:00820000:2b5c:013e:1:0
-Discovery Historia
-p:ARQIVA,f:40
-133f:00820000:33f4:013e:1:0
-Telemarket
-p:Telespazio,f:40
-213f:00820000:3070:013e:1:0
-Rai Uno
-p:RAI,f:40
-0140:00820000:157c:013e:1:0
-ANT-1
-p:NetMed,f:40
-1240:00820000:2b5c:013e:1:0
-AXN
-p:ARQIVA,f:40
-2140:00820000:3070:013e:1:0
-Rai Due
-p:RAI,f:40
-0141:00820000:157c:013e:1:0
-STAR
-p:NetMed,f:40
-0641:00820000:2ee0:00b0:1:0
-M6
-p:,C:0100,C:0500,f:40
-1241:00820000:2b5c:013e:1:0
-AXN Crime
-p:ARQIVA,f:40
-2141:00820000:3070:013e:1:0
-Rai Tre
-p:RAI,f:40
-0142:00820000:157c:013e:1:0
-ALTER
-p:NetMed,f:40
-0642:00820000:2ee0:00b0:1:0
-Eurosport
-p:,C:0100,C:0500,f:40
-1242:00820000:2b5c:013e:1:0
-AXN Sci-Fi
-p:ARQIVA,f:40
-2142:00820000:3070:013e:1:0
-Rai Gulp
-p:RAI,f:40
-2242:00820000:1af4:013e:1:0
-MCT Reality-Blu
-p:Harmonic,f:40
-0143:00820000:157c:013e:1:0
-SSExtra 1
-p:NetMed,f:40
-0643:00820000:2ee0:00b0:1:0
-Histoire
-p:,C:0100,C:0500,f:40
-1243:00820000:2b5c:013e:1:0
-Religia
-p:TVN,f:40
-1f43:00820000:319c:013e:1:0
-RTL CH
-p:T-Systems,C:0d02,f:40
-2243:00820000:1af4:013e:1:0
-MCT Gold
-p:Harmonic,f:40
-0144:00820000:157c:013e:1:0
-R13
-p:NetMed,f:40
-0644:00820000:2ee0:00b0:1:0
-TF1
-p:,C:0100,C:0500,f:40
-0145:00820000:157c:013e:1:0
-ALPHA TV
-p:NetMed,f:40
-0046:00820000:1250:0064:1:0
-AIT
-p:,f:40
-0146:00820000:157c:013e:1:0
-R11
-p:NetMed,f:40
-0646:00820000:2ee0:00b0:1:0
-Odyssée
-p:,C:0100,C:0500,f:40
-0047:00820000:1250:0064:1:0
-Bridge TV
-p:,f:40
-0147:00820000:157c:013e:1:0
-R12
-p:NetMed,f:40
-0647:00820000:2ee0:00b0:1:0
-TF6
-p:,C:0100,C:0500,f:40
-0048:00820000:1250:0064:1:0
-MTA International
-p:,f:40
-0148:00820000:157c:013e:1:0
-Test2
-p:NetMed,f:40
-0648:00820000:2ee0:00b0:1:0
-LCI
-p:,C:0500,f:40
-0149:00820000:157c:013e:1:0
-DS Test
-p:NetMed,f:40
-0649:00820000:2ee0:00b0:1:0
-Télétoon+1
-p:,C:0100,C:0500,f:40
-0d49:00820000:1450:013e:1:0
-RAI1
-p:RAI,f:40
-064a:00820000:2ee0:00b0:1:0
-Privatespice
-p:,C:0500,f:40
-0d4a:00820000:1450:013e:1:0
-RAI2
-p:RAI,f:40
-294a:00820000:1edc:0071:1:0
-Portal ITV
-p:OTV,f:40
-064b:00820000:2ee0:00b0:1:0
-Planète Thalassa
-p:,C:0500,f:40
-0d4b:00820000:1450:013e:1:0
-RAI3
-p:RAI,f:40
-1f4b:00820000:319c:013e:1:0
-ZDF
-p:ZDFmobil,f:40
-0d4c:00820000:1450:013e:1:0
-RaiMed
-p:RAI,f:40
-114c:00820000:2af8:013e:1:0
-MTV TWO
-p:CYFRA +,f:40
-044d:00820000:2d50:00b0:1:0
-Canal+
-p:,f:40
-114d:00820000:2af8:013e:1:0
-HBO
-p:CYFRA +,f:40
-1d4d:00820000:2f44:013e:1:0
-novasports3
-p:NetMed,f:40
-044e:00820000:2d50:00b0:1:0
-Canal+ Décalé
-p:,f:40
-044e:00820000:3d54:013e:1:0
-Fileas
-p:,f:40
-0d4e:00820000:1450:013e:1:0
-RaiEdu2
-p:RAI,f:40
-114e:00820000:2af8:013e:1:0
-HALLMARK
-p:CYFRA +,f:40
-1d4e:00820000:2f44:013e:1:0
-VH1
-p:NetMed,f:40
-294e:00820000:1edc:0071:1:0
-Pogoda
-p:OTV2,f:40
-044f:00820000:2d50:00b0:1:0
-France 2
-p:,C:0100,C:0500,f:40
-114f:00820000:2af8:013e:1:0
-HBO2
-p:CYFRA +,f:40
-1d4f:00820000:2f44:013e:1:0
-MTV
-p:NetMed,f:40
-0450:00820000:2d50:00b0:1:0
-Eurosport 2
-p:,C:0100,C:0500,f:40
-0d50:00820000:1450:013e:1:0
-Senato
-p:RAI,f:40
-1150:00820000:2af8:013e:1:0
-HBO COMEDY
-p:CYFRA +,f:40
-2950:00820000:1edc:0071:1:0
-Test-EPG
-p:Cyfrowy Polsat S.A.,f:40
-0051:00822faf:0001:0001:1:0
-Thai Global Network
-p:RRSat,f:40
-0451:00820000:2d50:00b0:1:0
-France 3
-p:,C:0100,C:0500,f:40
-1d51:00820000:2f44:013e:1:0
-MGM
-p:NetMed,f:40
-2d51:00820000:2008:fbff:1:0
-Prima Fila 16
-p:SkyItalia,f:40
-0452:00820000:2d50:00b0:1:0
-Canal+ Cinéma
-p:,f:40
-0d52:00820000:1450:013e:1:0
-Rai Gulp
-p:Rai,f:40
-1d52:00820000:2f44:013e:1:0
-Animal Planet
-p:NetMed,f:40
-0453:00820000:2d50:00b0:1:0
-Canal+ Hi-Tech
-p:,f:40
-1153:00820000:2af8:013e:1:0
-ESP
-p:CYFRA +,f:40
-1d53:00820000:2f44:013e:1:0
-novacinema2
-p:NetMed,f:40
-2d53:00820000:2008:fbff:1:0
-Prima Fila 20
-p:SkyItalia,f:40
-0154:0082afc1:0065:0001:1:0
-IBB TV Dedicated Channel 340
-p:,f:40
-0454:00820000:2d50:00b0:1:0
-Canal+ Sport
-p:,f:40
-0654:00820000:2ee0:00b0:1:0
-M6
-p:,C:0100,C:0500,f:40
-1d54:00820000:2f44:013e:1:0
-National Geographic
-p:NetMed,f:40
-0455:00820000:2d50:00b0:1:0
-OL TV
-p:,C:0100,C:0500,f:40
-0655:00820000:2ee0:00b0:1:0
-TF1
-p:,C:0100,C:0500,f:40
-1d55:00820000:2f44:013e:1:0
-novacinema2 Cy
-p:NetMed,f:40
-0456:00820000:2d50:00b0:1:0
-I>TELE
-p:,C:0500,f:40
-1d56:00820000:2f44:013e:1:0
-A TEST
-p:NetMed,f:40
-2456:00820000:23f0:013f:1:0
-Administra.it - FLTV
-p:Administra.it - FLTV,f:40
-1d57:00820000:2f44:013e:1:0
-MAD VMA '08
-p:NetMed,f:40
-2d57:00820000:2008:fbff:1:0
-Prima Fila 24
-p:SkyItalia,f:40
-1f59:00820000:319c:013e:1:0
-MI-TV
-p:T-Systems,f:40
-2d59:00820000:2008:fbff:1:0
-Prima Fila 8
-p:SkyItalia,f:40
-025a:00820000:3c8c:013e:1:0
-IranMusic
-p:T-Systems,f:40
-1f5a:00820000:319c:013e:1:0
-SRI TV
-p:T-Systems,f:40
-2d5b:00820000:2008:fbff:1:0
-Prima Fila 26
-p:SkyItalia,f:40
-1f5c:00820000:319c:013e:1:0
-Venere TV
-p:T-Systems,f:40
-025d:00820000:3c8c:013e:1:0
-Napoli TLA
-p:T-Systems,f:40
-1f5d:00820000:319c:013e:1:0
-Sport Channel
-p:T-Systems,f:40
-2b5d:00820000:19c8:fbff:1:0
-SKYCinema 1
-p:SkyItalia,f:40
-2d5d:00820000:2008:fbff:1:0
-SKY Calcio 9
-p:SkyItalia,f:40
-025e:00820000:3c8c:013e:1:0
-ARD "Das Erste"
-p:T-Systems,f:40
-125e:00820000:3458:013e:1:0
-Telenord
-p:T-Systems/MTI,f:40
-1f5e:00820000:319c:013e:1:0
-Iran Beauty
-p:T-Systems,f:40
-015f:00820000:1c84:013e:1:0
-Discovery Channel
-p:NetMed,f:40
-025f:00820000:3c8c:013e:1:0
-DW-TV EUROPA
-p:Deutsche Welle,f:40
-125f:00820000:3458:013e:1:0
-Trentino TV
-p:T-Systems/MTI,f:40
-1f5f:00820000:319c:013e:1:0
-C TV Coptic CH
-p:T-Systems,f:40
-2b5f:00820000:19c8:fbff:1:0
-SKY Mania
-p:SkyItalia,f:40
-2d5f:00820000:2008:fbff:1:0
-SKY Calcio 10
-p:SkyItalia,f:40
-365f:00820000:1388:013e:1:0
-BBC Arabic
-p:BBC World Service,f:40
-0160:00820000:1c84:013e:1:0
-R9
-p:NetMed,f:40
-0260:00820000:3c8c:013e:1:0
-DW-TV ARABIA
-p:Deutsche Welle,f:40
-0460:00820000:2d50:00b0:1:0
-France 2
-p:,C:0100,C:0500,f:40
-1f60:00820000:319c:013e:1:0
-tv PERSIA
-p:T-Systems,f:40
-0161:00820000:1c84:013e:1:0
-novasports2
-p:NetMed,f:40
-0261:00820000:3c8c:013e:1:0
-RTL 2 CH
-p:T-Systems,f:40
-0461:00820000:2d50:00b0:1:0
-France 3
-p:,C:0100,C:0500,f:40
-1261:00820000:3458:013e:1:0
-Sat9
-p:T-Systems/MTI,f:40
-2b61:00820000:19c8:fbff:1:0
-SKYCinema 3
-p:SkyItalia,f:40
-2d61:00820000:2008:fbff:1:0
-SKY Calcio 11
-p:SkyItalia,f:40
-3b61:00820000:0578:013e:1:0
-HBO HD
-p:ITI,f:40
-0162:00820000:1c84:013e:1:0
-TCM
-p:NetMed,f:40
-0462:00820000:2d50:00b0:1:0
-I>TELE
-p:,C:0500,f:40
-1262:00820000:3458:013e:1:0
-ELITE SHOPPING
-p:T-Systems/MTI,f:40
-2d62:00820000:2008:fbff:1:0
-SKY Calcio 12
-p:SkyItalia,f:40
-0163:00820000:1c84:013e:1:0
-Test TX
-p:NetMed,f:40
-2d63:00820000:2008:fbff:1:0
-SKY Calcio 13
-p:SkyItalia,f:40
-0064:0082afc1:0065:0001:1:0
-VOA TV 100 (HB1-4)
-p:,f:40
-0164:00820000:1c84:013e:1:0
-R15
-p:NetMed,f:40
-0264:00820000:3c8c:013e:1:0
-7'armanat Nar
-p:T-Systems,f:40
-0f64:00820000:251c:fbff:1:0
-Vetrina Primafila
-p:SkyItalia,f:40
-1264:00820000:3458:013e:1:0
-Hot Week
-p:T-Systems/MTI,f:40
-2d64:00820000:2008:fbff:1:0
-SKY Calcio 14
-p:SkyItalia,f:40
-0065:00820000:1e14:013e:1:0
-Gulli
-p:Globecast,C:0500,f:40
-0165:00820000:1c84:013e:1:0
-R10
-p:NetMed,f:40
-0265:00820000:3c8c:013e:1:0
-arab-69.tv
-p:T-Systems,f:40
-0f65:00820000:251c:fbff:1:0
-Prima Fila 1
-p:SkyItalia,f:40
-1265:00820000:3458:013e:1:0
-Sevince TV
-p:T-Systems/MTI,f:40
-2b65:00820000:19c8:fbff:1:0
-SKY Calcio 1
-p:SkyItalia,f:40
-0066:00820000:1e14:013e:1:0
-AZ TV
-p:GlobeCast,f:40
-0166:00820000:1c84:013e:1:0
-R8
-p:NetMed,f:40
-0266:00820000:3c8c:013e:1:0
-' ' Hot Arab Sex
-p:T-Systems,f:40
-0f66:00820000:251c:fbff:1:0
-Prima Fila 2
-p:SkyItalia,f:40
-1266:00820000:3458:013e:1:0
-Betting Channel
-p:T-Systems/MTI,f:40
-2d66:00820000:2008:fbff:1:0
-SKY Sport 16:9
-p:SkyItalia,f:40
-0067:00820000:1e14:013e:1:0
-COMING SOON
-p:GlobeCast,f:40
-0267:00820000:3c8c:013e:1:0
-.69arabdream.tv
-p:T-Systems,f:40
-0f67:00820000:251c:fbff:1:0
-Prima Fila 12
-p:SkyItalia,f:40
-2b67:00820000:19c8:fbff:1:0
-E!
-p:SkyItalia,f:40
-0068:00820000:1e14:013e:1:0
-FILLES TV
-p:Globecast,C:0500,f:40
-0168:00820000:1c84:013e:1:0
-Cartoon
-p:NetMed,f:40
-0268:00820000:3c8c:013e:1:0
-Arab-Jins
-p:MEDIA BROADCAST,f:40
-0f68:00820000:251c:fbff:1:0
-Prima Fila 4
-p:SkyItalia,f:40
-0069:00820000:1e14:013e:1:0
-MEZZO
-p:Globecast,C:0604,C:0100,C:0500,f:40
-0169:00820000:1c84:013e:1:0
-MACEDONIA TV
-p:NetMed,f:40
-0269:00820000:3c8c:013e:1:0
-Zawaj elmot3a
-p:MEDIA BROADCAST,f:40
-0f69:00820000:251c:fbff:1:0
-Prima Fila 6
-p:SkyItalia,f:40
-2969:00820000:22c4:013e:1:0
-LIVE 24
-p:Belgacom,f:40
-2d69:00820000:2008:fbff:1:0
-SKY Sport Extra
-p:SkyItalia,f:40
-006a:00820000:1e14:013e:1:0
-Canal J
-p:GlobeCast,C:0500,f:40
-016a:00820000:1c84:013e:1:0
-SKAI TV
-p:NetMed,f:40
-026a:00820000:3c8c:013e:1:0
-Lebnaniat TV.
-p:T-Systems,f:40
-0f6a:00820000:251c:fbff:1:0
-Prima Fila 7
-p:SkyItalia,f:40
-1d6a:00820000:2f44:013e:1:0
-SSExtra 2
-p:NetMed,f:40
-226a:00820000:238c:013e:1:0
-Canal Algerie
-p:TDA,f:40
-296a:00820000:22c4:013e:1:0
-.Eurotour-Xstream
-p:Belgacom,f:40
-016b:00820000:1c84:013e:1:0
-ET-3
-p:NetMed,f:40
-026b:00820000:3c8c:013e:1:0
-Arab XXX
-p:T-Systems,f:40
-0f6b:00820000:251c:fbff:1:0
-Prima Fila 9
-p:SkyItalia,f:40
-226b:00820000:238c:013e:1:0
-A3
-p:TDA,f:40
-296b:00820000:22c4:013e:1:0
-Komala TV
-p:Belgacom,f:40
-2b6b:00820000:19c8:fbff:1:0
-SKY Max
-p:SkyItalia,f:40
-006c:00820000:1e14:013e:1:0
-SUBACQUEA TV
-p:GlobeCast,f:40
-026c:00820000:3c8c:013e:1:0
-Wala3 Arab tv
-p:T-Systems,f:40
-0f6c:00820000:251c:fbff:1:0
-Prima Fila 10
-p:SkyItalia,f:40
-296c:00820000:22c4:013e:1:0
-Zee TV
-p:Belgacom,f:40
-006d:00820000:1e14:013e:1:0
-HOLY GOD
-p:Globecast,f:40
-026d:00820000:3c8c:013e:1:0
-Xtele.tv
-p:T-Systems,f:40
-0f6d:00820000:251c:fbff:1:0
-Vetrina Primafila
-p:SkyItalia,f:40
-206d:00820000:2328:013e:1:0
-HRT-TV1
-p:OIV Zagreb,f:40
-296d:00820000:22c4:013e:1:0
-ROJ
-p:Belgacom,f:40
-006e:00820000:1e14:013e:1:0
-Virgin 17
-p:Globecast,C:0500,f:40
-026e:00820000:3c8c:013e:1:0
-+18 Nisa
-p:MEDIA BROADCAST,f:40
-0f6e:00820000:251c:fbff:1:0
-FX
-p:SkyItalia,f:40
-126e:00820000:3458:013e:1:0
-ALL SEX
-p:T-Systems/MTI,f:40
-206e:00820000:2328:013e:1:0
-HRT-TV2
-p:OIV Zagreb,f:40
-2b6e:00820000:19c8:fbff:1:0
-Disney Channel
-p:SkyItalia,f:40
-016f:00820000:1c84:013e:1:0
-R7
-p:NetMed,f:40
-026f:00820000:3c8c:013e:1:0
-Al Jameela Jins
-p:MEDIA BROADCAST,f:40
-0f6f:00820000:251c:fbff:1:0
-Vetrina Primafila
-p:SkyItalia,f:40
-126f:00820000:3458:013e:1:0
-Made In Italy
-p:T-Systems/MTI,f:40
-206f:00820000:2328:013e:1:0
-HRT PLUS
-p:OIV Zagreb,f:40
-296f:00820000:22c4:013e:1:0
-2M MAROC
-p:BELGACOM,f:40
-2b6f:00820000:19c8:fbff:1:0
-New Ch1
-p:SkyItalia,f:40
-0070:00820000:1e14:013e:1:0
-Rainbow TV
-p:Tadiran Scopus,f:40
-0070:00820000:00c9:0006:1:0
-Guide/AFN Franconia Eagle
-p:,C:0e00,f:40
-0170:00820000:1c84:013e:1:0
-novasports7
-p:NetMed,f:40
-0270:00820000:3c8c:013e:1:0
-.arab babes
-p:T-Systems,f:40
-1270:00820000:3458:013e:1:0
-ODEON SAT
-p:T-Systems/MTI,f:40
-2b70:00820000:19c8:fbff:1:0
-SKY Show
-p:SkyItalia,f:40
-0071:00820000:1e14:013e:1:0
-DAN TV
-p:GlobeCast,f:40
-0071:00820000:00c9:0006:1:0
-Guide/AFN Franconia PowerNet
-p:,C:0e00,f:40
-0171:00820000:1c84:013e:1:0
-novasports7 Cy
-p:NetMed,f:40
-0f71:00820000:251c:fbff:1:0
-Vetrina Primafila
-p:SkyItalia,f:40
-2971:00820000:22c4:013e:1:0
-ARY DIGITAL
-p:Belgacom,f:40
-0072:00822faf:0001:0001:1:0
-TCT
-p:RRSat,f:40
-0072:00820000:1e14:013e:1:0
-TIJI
-p:GlobeCast ,C:0500,f:40
-0172:00820000:1c84:013e:1:0
-Mad Music Hits GR Cy
-p:NetMed,f:40
-0272:00820000:3c8c:013e:1:0
-Erde und Mensch
-p:T-Systems,f:40
-1f72:00820000:319c:013e:1:0
-Akubis Classic
-p:T-Systems,C:0b00,f:40
-0073:00822faf:0001:0001:1:0
-Arirang TV
-p:RRSat,f:40
-0173:00820000:1c84:013e:1:0
-Mad Music My Rock Cy
-p:NetMed,f:40
-0273:00820000:3c8c:013e:1:0
-Italiamia
-p:T-Systems,f:40
-1273:00820000:3458:013e:1:0
-MagicTV
-p:T-Systems/MTI,f:40
-1f73:00820000:319c:013e:1:0
-Akubis Direkt
-p:T-Systems,C:0b00,f:40
-0074:00822faf:0001:0001:1:0
-KURDsat
-p:RRSat,f:40
-0174:00820000:1c84:013e:1:0
-Mad Music Greek Cy
-p:NetMed,f:40
-0274:00820000:3c8c:013e:1:0
-FREE CHANNEL
-p:T-Systems,f:40
-1274:00820000:3458:013e:1:0
-Sat8
-p:T-Systems/MTI,f:40
-1f74:00820000:319c:013e:1:0
-AKUBIS Special IG
-p:T-Systems,C:0b00,f:40
-0075:00820000:1e14:013e:1:0
-KURD 1
-p:GlobeCast,f:40
-0175:00820000:1c84:013e:1:0
-Mad Music Rebetico Cy
-p:NetMed,f:40
-0275:00820000:3c8c:013e:1:0
-pdf.tv
-p:T-Systems,f:40
-1275:00820000:3458:013e:1:0
-TLC SAT
-p:T-Systems/MTI,f:40
-0076:00820000:1e14:013e:1:0
-Private Spice
-p:digital media centre,f:40
-0176:00820000:1c84:013e:1:0
-Mad Music Seasonal Cy
-p:NetMed,f:40
-1276:00820000:3458:013e:1:0
-STARSAT
-p:T-Systems/MTI,f:40
-2976:00820000:22c4:013e:1:0
-MEZOPOTAMIA
-p:Belgacom,f:40
-0077:00820000:1e14:013e:1:0
-Canale Italia
-p:,f:40
-0277:00820000:3c8c:013e:1:0
-Sexy Sexy TV
-p:T-Systems,f:40
-0078:00822faf:0001:0001:1:0
-Newroz
-p:RRSAt,f:40
-0178:00820000:1c84:013e:1:0
-NEÔ
-p:NetMed,f:40
-0278:00820000:3c8c:013e:1:0
-xxx Action TV
-p:T-Systems,f:40
-1278:00820000:3458:013e:1:0
-MOTORI TV
-p:T-Systems/MTI,f:40
-2978:00820000:22c4:013e:1:0
-Alpha ETC Punjabi
-p:Belgacom,f:40
-0179:00820000:1c84:013e:1:0
-MAD T.V
-p:NetMed,f:40
-0279:00820000:3c8c:013e:1:0
-Tele A+
-p:T-Systems,f:40
-0579:00820000:2c88:00b0:1:0
-Infosport
-p:,C:0100,C:0500,f:40
-017a:00820000:1c84:013e:1:0
-ET-1
-p:NetMed,f:40
-057a:00820000:2c88:00b0:1:0
-Planète Juniors
-p:,C:0100,C:0500,f:40
-127a:00820000:3458:013e:1:0
-PLAY TV ITALIA
-p:T-Systems/MTI,f:40
-237a:00820000:238c:013e:1:0
-RETE ORO
-p:Scopus Network Technologies,f:40
-027b:00820000:3c8c:013e:1:0
-COOLtv
-p:Media Braodcast,f:40
-057b:00820000:2c88:00b0:1:0
-Série Club
-p:,C:0100,C:0500,f:40
-127b:00820000:3458:013e:1:0
-PEOPLE TV-RETE7
-p:T-Systems/MTI,f:40
-227b:00820000:238c:013e:1:0
-TVA Vicenza
-p:MultiProgram,f:40
-017c:00820000:1c84:013e:1:0
-MAD TV
-p:NetMed,f:40
-027c:00820000:3c8c:013e:1:0
-Tele A
-p:Media Broadcast,f:40
-057c:00820000:2c88:00b0:1:0
-Fun TV
-p:,C:0100,C:0500,f:40
-117c:00820000:2af8:013e:1:0
-DTV CABLE PL
-p:CYFRA +,f:40
-127c:00820000:3458:013e:1:0
-ROMA SAT
-p:T-Systems/MTI,f:40
-227c:00820000:238c:013e:1:0
-CARPE DIEM
-p:MultiProgram,f:40
-017d:00820000:1c84:013e:1:0
-R14
-p:NetMed,f:40
-057d:00820000:2c88:00b0:1:0
-Téva
-p:,C:0100,C:0500,f:40
-117d:00820000:2af8:013e:1:0
-DTV CABLE MI
-p:CYFRA +,f:40
-127d:00820000:3458:013e:1:0
-MTI
-p:T-Systems/MTI,f:40
-227d:00820000:238c:013e:1:0
-GENIUS TV
-p:MultiProgram,f:40
-297d:00820000:22c4:013e:1:0
-Newroz
-p:BSS,f:40
-057e:00820000:2c88:00b0:1:0
-Télétoon
-p:,C:0100,C:0500,f:40
-127e:00820000:3458:013e:1:0
-Mediatel
-p:T-Systems/MTI,f:40
-1d7e:00820000:2f44:013e:1:0
-OTV Test
-p:NetMed,f:40
-227e:00820000:238c:013e:1:0
-LA 8
-p:MultiProgram,f:40
-377e:00820000:044c:013e:1:0
-Rang-A-Rang TV
-p:RRSat,f:40
-017f:00820000:1c84:013e:1:0
-novasports2 Cy
-p:NetMed,f:40
-057f:00820000:2c88:00b0:1:0
-Paris Première
-p:,C:0500,f:40
-1d7f:00820000:2f44:013e:1:0
-OTV PVR
-p:NetMed,f:40
-377f:00820000:044c:013e:1:0
-CALABRIA
-p:RRSat,f:40
-0180:00820000:1c84:013e:1:0
-ÂïõëÞ
-p:NetMed,f:40
-0580:00820000:2c88:00b0:1:0
-Piwi
-p:,C:0100,C:0500,f:40
-2980:00820000:22c4:013e:1:0
-Zee Cinema
-p:Belgacom,f:40
-3780:00820000:044c:013e:1:0
-TIZIANA SAT
-p:,f:40
-0c81:00820000:1f40:013e:1:0
-SLO-TV1
-p:RTV Slovenija,f:40
-2981:00820000:22c4:013e:1:0
-B4U Movies
-p:Belgacom,f:40
-3781:00820000:044c:013e:1:0
-RTA
-p:RRSat,f:40
-0082:00822faf:0001:0001:1:0
-FREE-XTV 2
-p:RRSat,f:40
-0182:00820000:1c84:013e:1:0
-MAD MUSIC Hits GR
-p:NetMed,f:40
-0582:00820000:2c88:00b0:1:0
-M6 Music Hits
-p:,C:0100,C:0500,f:40
-0c82:00820000:1f40:013e:1:0
-SLO-TV2
-p:RTV Slovenija,f:40
-0083:00822faf:0001:0001:1:0
-XDream TV
-p:RRSat,f:40
-0183:00820000:1c84:013e:1:0
-MAD MUSIC My Rock
-p:NetMed,f:40
-0c83:00820000:1f40:013e:1:0
-TV K-C
-p:RTV Slovenija,f:40
-3783:00820000:044c:013e:1:0
-Cancao Nova
-p:,f:40
-0084:00820000:00c9:0006:1:0
-Guide/AFN Hessen Eagle
-p:,C:0e00,f:40
-0184:00820000:1c84:013e:1:0
-MAD MUSIC Greek
-p:NetMed,f:40
-0584:00820000:2c88:00b0:1:0
-CANAL + FAMILY
-p:,C:0500,f:40
-3584:00820000:1388:013e:1:0
-Zagros Tv
-p:BT,f:40
-3784:00820000:044c:013e:1:0
-Bethel TV
-p:,f:40
-0085:00820000:00c9:0006:1:0
-Guide/AFN Hessen PowerNet
-p:,C:0e00,f:40
-0185:00820000:1c84:013e:1:0
-MAD MUSIC Rebetico
-p:NetMed,f:40
-0385:00820000:2134:013e:1:0
-SF 1
-p:Schweizer Fernsehen,f:40
-1285:00820000:3458:013e:1:0
-.Lolita
-p:T-Systems/MTI,f:40
-1c85:00820000:332c:013e:1:0
-Motors TV
-p:Arqiva France,f:40
-1c85:00820000:1ce8:0071:1:0
-Zone Romantica
-p:Cyfrowy Polsat,f:40
-3785:00820000:044c:013e:1:0
-Extra 3
-p:,f:40
-0086:00822faf:0001:0001:1:0
-Free-X TV
-p:RRSat,f:40
-0186:00820000:1c84:013e:1:0
-MAD MUSIC Seasonal
-p:NetMed,f:40
-0586:00820000:2c88:00b0:1:0
-Teletoon Africa
-p:,C:0500,f:40
-1c86:00820000:1ce8:0071:1:0
-AXN Crime
-p:Cyfrowy Polsat,f:40
-1f86:00820000:319c:013e:1:0
-bwtv
-p:T-Systems,f:40
-3786:00820000:044c:013e:1:0
-Dorcel TV
-p:,f:40
-0087:00822faf:0001:0001:1:0
-SAMA FM TV
-p:RRSat,f:40
-0c87:00820000:1f40:013e:1:0
-SLO-TV3
-p:RTV Slovenija,f:40
-1287:00820000:3458:013e:1:0
-Feyz TV
-p:T-Systems/MTI,f:40
-1c87:00820000:1ce8:0071:1:0
-AXN Sci-Fi
-p:Cyfrowy Polsat,f:40
-2487:00820000:23f0:013f:1:0
-TELE5
-p:EUTELSAT,f:40
-1288:00820000:3458:013e:1:0
-Mobile Arena TV
-p:T-Systems/MTI,f:40
-1d88:00820000:2f44:013e:1:0
-novasports3 Cy
-p:NetMed,f:40
-2488:00820000:23f0:013f:1:0
-POLONIA1
-p:EUTELSAT,f:40
-0c89:00820000:1f40:013e:1:0
-BVN-TV
-p:RTV Slovenija,f:40
-1c89:00820000:1ce8:0071:1:0
-Extreme Sports
-p:Cyfrowy Polsat,f:40
-2489:00820000:23f0:013f:1:0
-EDUSAT
-p:EUTELSAT,f:40
-3589:00820000:1388:013e:1:0
-TRSP
-p:BT,f:40
-3789:00820000:044c:013e:1:0
-TAPESH TV2
-p:GlobeCast,f:40
-378a:00820000:044c:013e:1:0
-ADJARA TV
-p:,f:40
-038b:00820000:2134:013e:1:0
-SF zwei
-p:Schweizer Fernsehen,f:40
-128b:00820000:3458:013e:1:0
-EBC.1
-p:T-Systems/MTI,f:40
-0c8c:00820000:1f40:013e:1:0
-XL Tv
-p:OIV Zagreb,f:40
-128c:00820000:3458:013e:1:0
-Heaven TV
-p:T-Systems/MTI,f:40
-008d:00820000:0389:0110:1:0
-Canale 5
-p:Mediaset,f:40
-0c8d:00820000:1f40:013e:1:0
-TV SLJEME
-p:OiV Zagreb,f:40
-208d:00820000:2328:013e:1:0
-Italia 8
-p:OiV Zagreb,f:40
-378d:00820000:044c:013e:1:0
-One Minute TV
-p:PRVDR,f:40
-008e:00820000:012d:0006:1:0
-The Eagle-Vicenza
-p:,C:0e00,f:40
-008e:00820000:0389:0110:1:0
-Italia 1
-p:Mediaset,f:40
-0c8e:00820000:1f40:013e:1:0
-PLEASURE TV
-p:OIV Zagreb,f:40
-208e:00820000:2328:013e:1:0
-Jewels Sorg1
-p:OiV Zagreb,f:40
-378e:00820000:044c:013e:1:0
-ECTV
-p:RRSat,f:40
-008f:00820000:012d:0006:1:0
-Power-Vicenza
-p:,C:0e00,f:40
-008f:00820000:0389:0110:1:0
-Rete 4
-p:Mediaset,f:40
-038f:00820000:2134:013e:1:0
-SF info
-p:Schweizer Fernsehen,f:40
-1d8f:00820000:2f44:013e:1:0
-novacinema1 Cy
-p:NetMed,f:40
-208f:00820000:2328:013e:1:0
-Jewels Sorg2
-p:OiV Zagreb,f:40
-0090:00820000:0389:0110:1:0
-Iris
-p:Mediaset,f:40
-0190:0082afc1:0065:0001:1:0
-VNN TEST 400
-p:,f:40
-2090:00820000:2328:013e:1:0
-Jewels Sorg3
-p:OiV Zagreb,f:40
-3790:00820000:044c:013e:1:0
-PDF Channel
-p: ,f:40
-2092:00820000:2328:013e:1:0
-Health&Beauty TV
-p:OiV Zagreb,f:40
-2492:00820000:23f0:013f:1:0
-AL JAZEERA CHILDREN
-p:Al Jazeera,f:40
-3792:00820000:044c:013e:1:0
-TV2DAY
-p:RRSat,f:40
-0c93:00820000:1f40:013e:1:0
-BLU LINE
-p:OIV Zagreb,f:40
-1c93:00820000:1ce8:0071:1:0
-Discovery
-p:Cyfrowy Polsat,f:40
-1d93:00820000:2f44:013e:1:0
-EEPG
-p:NetMed,f:40
-0c94:00820000:1f40:013e:1:0
-NTV HAYAT SAT
-p:RTV Slovenija,f:40
-1c94:00820000:1ce8:0071:1:0
-Animal Planet
-p:Cyfrowy Polsat,f:40
-0c95:00820000:1f40:013e:1:0
-DANCE TV
-p:OIV Zagreb,f:40
-1d95:00820000:2f44:013e:1:0
-NOVA SCOPE
-p:NetMed,f:40
-3795:00820000:044c:013e:1:0
-Casa Italia
-p:PRVDR,f:40
-0c96:00820000:1f40:013e:1:0
-ITALIAN MUSIC
-p:OIV Zagreb,f:40
-1c96:00820000:1ce8:0071:1:0
-AXN
-p:Cyfrowy Polsat,f:40
-2096:00820000:2328:013e:1:0
-RBC-TV
-p:OiV Zagreb,f:40
-0097:00820000:0389:0110:1:0
-Sportitalia
-p:,f:40
-1d97:00820000:2f44:013e:1:0
-Travel Channel
-p:NetMed,f:40
-2097:00820000:2328:013e:1:0
-OASI TV
-p:OIV Zagreb,f:40
-3797:00820000:044c:013e:1:0
-MTV PULSE
-p:,f:40
-0098:00820000:0389:0110:1:0
-Sportitalia24
-p:,f:40
-0098:00820000:00c9:0006:1:0
-Guide/AFN Heidelberg Eagle
-p:,C:0e00,f:40
-2098:00820000:2328:013e:1:0
-NOELLO SAT
-p:OiV Zagreb,f:40
-3598:00820000:1388:013e:1:0
-Telefortune
-p:BT,f:40
-3798:00820000:044c:013e:1:0
-MTV IDOL
-p:,f:40
-0099:00820000:00c9:0006:1:0
-Guide/AFN Heidelberg PowerNet
-p:,C:0e00,f:40
-1c99:00820000:332c:013e:1:0
-TV5MONDE FBS
-p:TV5MONDE,f:40
-1d99:00820000:2f44:013e:1:0
-novasports1 Cy
-p:NetMed,f:40
-2099:00820000:2328:013e:1:0
-TAXI CHANNEL
-p:OiV Zagreb,f:40
-3a99:00820000:0514:013e:1:0
-Wojna i Pokoj
-p:ITI,f:40
-019a:00820000:1964:013e:1:0
-ART PRIME SPORT - ARABESQUE
-p:ART,f:40
-0c9a:00820000:1f40:013e:1:0
-Diva Futura
-p:OIV Zagreb,f:40
-1c9a:00820000:332c:013e:1:0
-TV5MONDE EUROPE
-p:TV5MONDE,f:40
-1d9a:00820000:2f44:013e:1:0
-Stest1
-p:NetMed,f:40
-3a9a:00820000:0514:013e:1:0
-nTalk
-p:ITI,f:40
-3a9b:00820000:0514:013e:1:0
-TVN Lingua
-p:ITI,f:40
-1c9c:00820000:332c:013e:1:0
-ANN
-p:Arqiva France,f:40
-219c:00822a65:2db4:0000:1:0
-Supreme Master TV
-p:T-Systems,f:40
-1c9d:00820000:332c:013e:1:0
-Videolook
-p:Arqiva France,f:40
-359d:00820000:1388:013e:1:0
-Nepali
-p:BT,f:40
-0c9e:00820000:1f40:013e:1:0
-CRO MUSIC CHANNEL
-p:OiV Zagreb,f:40
-1c9e:00820000:332c:013e:1:0
-Kurdistan TV
-p:Arqiva France,f:40
-0c9f:00820000:1f40:013e:1:0
-Kanal e Jadid
-p:OiV Zagreb,f:40
-1c9f:00820000:332c:013e:1:0
-Iran TV
-p:Arqiva France,f:40
-0ca0:00820000:1f40:013e:1:0
-LOVEWORLD
-p:OiV Zagreb,f:40
-1ca0:00820000:332c:013e:1:0
-Videolina
-p:Arqiva France,f:40
-00a2:00820000:012d:0006:1:0
-The Eagle - La Maddalena
-p:,C:0e00,f:40
-1ca2:00820000:332c:013e:1:0
-RTB
-p:Arqiva,f:40
-2ca2:00820000:170c:fbff:1:0
-MTV
-p:SkyItalia,f:40
-35a2:00820000:1388:013e:1:0
-Infochannel
-p:BT,f:40
-00a3:00820000:012d:0006:1:0
-Power - La Maddalena
-p:,C:0e00,f:40
-1ca3:00820000:332c:013e:1:0
-Starmarket
-p:Arqiva France,f:40
-35a3:00820000:1388:013e:1:0
-Sardinia
-p:BT,f:40
-01a4:00820000:1964:013e:1:0
-ART CHILDREN/TARAB - ARABESQUE
-p:ART,f:40
-29a4:00820000:22c4:013e:1:0
-AIRBOX TV
-p:BSS,f:40
-06a5:00820000:3138:013e:1:0
-W9
-p:Globecast,C:0100,C:0500,f:40
-0ca5:00820000:1f40:013e:1:0
-TVS
-p:OIV Zagreb,f:40
-1ca5:00820000:332c:013e:1:0
-GEM TV
-p:Arqiva France,f:40
-29a5:00820000:22c4:013e:1:0
-Podroze TV
-p:Belgacom,f:40
-06a6:00820000:3138:013e:1:0
-M6 Boutique la chaine
-p:Globecast,f:40
-06a7:00820000:3138:013e:1:0
-Boomerang
-p:Globecast,C:0100,C:0500,f:40
-06a8:00820000:3138:013e:1:0
-Demain!
-p:Globecast,f:40
-16a8:00820000:2ee0:00b0:1:0
-Météo Express
-p:OpenMux,f:40
-1fa8:00820000:2454:013e:1:0
-TELESUD
-p:GlobeCast,f:40
-2aa8:00820000:1838:fbff:1:0
-SKY Sport 1
-p:SkyItalia,f:40
-06a9:00820000:3138:013e:1:0
-Tele Melody
-p:Globecast,C:0100,C:0500,f:40
-1fa9:00820000:2454:013e:1:0
-Abu_Dhabi_Sport
-p:GlobeCast,f:40
-2aa9:00820000:1838:fbff:1:0
-SKY Sport 2
-p:SkyItalia,f:40
-06aa:00820000:3138:013e:1:0
-CCTV9
-p:Globecast,f:40
-2aaa:00820000:1838:fbff:1:0
-SKY SuperCalcio
-p:SkyItalia,f:40
-06ab:00820000:3138:013e:1:0
-CLP TV
-p:Globecast,f:40
-1fab:00820000:2454:013e:1:0
-Hope_Channel
-p:GlobeCast,f:40
-2aab:00820000:1838:fbff:1:0
-Sport Active 1
-p:SkyItalia,f:40
-00ac:00820000:00c9:0006:1:0
-Guide/AFN Bavaria Eagle
-p:,C:0e00,f:40
-06ac:00820000:3138:013e:1:0
-RTR
-p:Globecast,f:40
-1cac:00820000:1ce8:0071:1:0
-ESPN
-p:Cyfrowy Polsat,f:40
-1fac:00820000:2454:013e:1:0
-Hope_Channel_2
-p:,f:40
-21ac:00822a65:2db4:0000:1:0
-eurotic TV
-p:T-Systems,f:40
-2aac:00820000:1838:fbff:1:0
-Sports Active 2
-p:SkyItalia,f:40
-35ac:00820000:1388:013e:1:0
-SET
-p:Sicilia Int,f:40
-00ad:00820000:00c9:0006:1:0
-Guide/AFN Bavaria PowerNet
-p:,C:0e00,f:40
-0dad:00820000:14b4:013e:1:0
-TVE Internacional
-p:RTVE,f:40
-1fad:00820000:2454:013e:1:0
-Liberty_TV _FR
-p:GlobeCast,f:40
-21ad:00822a65:2db4:0000:1:0
-INXTC TV
-p:T-Systems,f:40
-22ad:00820000:238c:013e:1:0
-DIRECT 8
-p:EUTELSAT ,f:40
-01ae:00820000:1964:013e:1:0
-ART MOVIES - ARABESQUE
-p:ART,f:40
-06ae:00820000:3138:013e:1:0
-Vesti
-p:Globecast,f:40
-0dae:00820000:14b4:013e:1:0
-Canal 24 Horas
-p:RTVE,f:40
-1cae:00820000:1ce8:0071:1:0
-KINO POLSKA
-p:Cyfrowy Polsat,f:40
-22ae:00820000:238c:013e:1:0
-TV8 Mt Blanc
-p:EUTELSAT ,f:40
-06af:00820000:3138:013e:1:0
-Berbere Television
-p:Globecast,C:0100,C:0500,f:40
-0daf:00820000:14b4:013e:1:0
-TVE Internacional Asia
-p:RTVE,f:40
-21af:00822a65:2db4:0000:1:0
-eurotic TV 2
-p:T-Systems,f:40
-2aaf:00820000:1838:fbff:1:0
-SKY Calcio Info
-p:SkyItalia,f:40
-1fb0:00820000:206c:013e:1:0
-SEX VIEW 264
-p:,f:40
-21b0:00822a65:2db4:0000:1:0
-Sexy-Arab.TV
-p:T-Systems,f:40
-22b0:00820000:238c:013e:1:0
-DIRECT 8
-p:EUTELSAT ,f:40
-04b1:00820000:2bc0:00b0:1:0
-C Cinéma Frisson
-p:,C:0100,C:0500,f:40
-06b1:00820000:3138:013e:1:0
-MTV BASE
-p:EUTELSAT,f:40
-1fb1:00820000:2454:013e:1:0
-Payam_TV
-p:GlobeCast,f:40
-21b1:00822a65:2db4:0000:1:0
-Fatayat 7'armanat
-p:T-Systems,f:40
-36b1:00820000:206c:013e:1:0
-SEX VIEW INFO
-p:Scopus Network Technologies,f:40
-04b2:00820000:2bc0:00b0:1:0
-C Cinéma Premier
-p:,C:0100,C:0500,f:40
-06b2:00820000:3138:013e:1:0
-Aljazeera Intl
-p:Globecast,f:40
-21b2:00822a65:2db4:0000:1:0
-Ta3arees TV
-p:T-Systems,f:40
-36b2:00820000:206c:013e:1:0
-SEX VIEW PLUS
-p:Scopus Network Technologies,f:40
-36b2:00820000:06a4:013e:1:0
-TSR1
-p:Television Suisse Romande,f:40
-04b3:00820000:2bc0:00b0:1:0
-C Cinéma Classic
-p:,C:0100,C:0500,f:40
-1fb3:00820000:2454:013e:1:0
-Orange Foot
-p:GlobeCast,f:40
-21b3:00822a65:2db4:0000:1:0
-ArabSexClub
-p:T-Systems,f:40
-2cb3:00820000:170c:fbff:1:0
-AXN
-p:SkyItalia,f:40
-36b3:00820000:206c:013e:1:0
-SEX VIEW EXTRA
-p:Scopus Network Technologies,f:40
-36b3:00820000:06a4:013e:1:0
-TSI1
-p:Televisione svizzera di lingua italiana,f:40
-04b4:00820000:2bc0:00b0:1:0
-TPS Star
-p:,C:0100,C:0500,f:40
-21b4:00822a65:2db4:0000:1:0
-ALO TV
-p:T-Systems,f:40
-36b4:00820000:206c:013e:1:0
-SEX VIEW 247
-p:Scopus Network Technologies,f:40
-04b5:00820000:2bc0:00b0:1:0
-C Cinéma Star
-p:,C:0100,C:0500,f:40
-1cb5:00820000:1ce8:0071:1:0
-Jetix
-p:Cyfrowy Polsat,f:40
-21b5:00822a65:2db4:0000:1:0
-'Arab-Girls.TV
-p:T-Systems,f:40
-36b5:00820000:206c:013e:1:0
-SEX VIEW DP
-p:Scopus Network Technologies,f:40
-00b6:00820000:012d:0006:1:0
-The Eagle - Naples
-p:,C:0e00,f:40
-04b6:00820000:2bc0:00b0:1:0
-C Cinéma Culte
-p:,C:0100,C:0500,f:40
-0db6:00820000:14b4:013e:1:0
-Al-Hayat
-p:Harmonic,f:40
-35b6:00820000:1388:013e:1:0
-Sardegna Uno
-p:BT,f:40
-36b6:00820000:206c:013e:1:0
-SEX VIEW SPECIAL
-p:Scopus Network Technologies,f:40
-00b7:00820000:012d:0006:1:0
-Power - Naples
-p:,C:0e00,f:40
-04b7:00820000:2bc0:00b0:1:0
-C Cinéma Emotion
-p:,C:0100,C:0500,f:40
-0db7:00820000:14b4:013e:1:0
-Channel One
-p:Harmonic,f:40
-2ab7:00820000:1838:fbff:1:0
-Sports Active 3
-p:SkyItalia,f:40
-36b7:00820000:206c:013e:1:0
-SEX VIEW HOT
-p:Scopus Network Technologies,f:40
-3ab7:00820000:0514:013e:1:0
-MGM
-p:ITI,f:40
-01b8:00820000:1964:013e:1:0
-ART MOVIES2 - ARABESQUE
-p:ART,f:40
-04b8:00820000:2bc0:00b0:1:0
-C Cinéma Famiz
-p:,C:0100,C:0500,f:40
-06b8:00820000:3138:013e:1:0
-W9
-p:Globecast,C:0100,C:0500,f:40
-0db8:00820000:14b4:013e:1:0
-Didar Global TV
-p:Harmonic,f:40
-36b8:00820000:206c:013e:1:0
-SEX VIEW CLIMAX
-p:Scopus Network Technologies,f:40
-36b8:00820000:06a4:013e:1:0
-TSR2
-p:Television Suisse Romande,f:40
-3ab8:00820000:0514:013e:1:0
-Discovery HD
-p:ITI,f:40
-04b9:00820000:2bc0:00b0:1:0
-C Cinéma Premier 16/9
-p:,C:0100,C:0500,f:40
-0bb9:00820000:20d0:013e:1:0
-Yemen TV
-p:GLOBECAST,f:40
-0db9:00820000:14b4:013e:1:0
-Payame Afghan
-p:Harmonic,f:40
-1fb9:00820000:189c:fbff:1:0
-NatGeoAdventur
-p:SkyItalia,f:40
-36b9:00820000:206c:013e:1:0
-SEX VIEW INTER
-p:Scopus Network Technologies,f:40
-36b9:00820000:06a4:013e:1:0
-TSI2
-p:Televisione svizzera di lingua italiana,f:40
-3ab9:00820000:0514:013e:1:0
-nSport
-p:ITI,f:40
-0bba:00820000:20d0:013e:1:0
-Syria Satellite Channel
-p:GLOBECAST,f:40
-0dba:00820000:14b4:013e:1:0
-Angel TV - KICC TV
-p:Harmonic,f:40
-1fba:00820000:2454:013e:1:0
-M6
-p:Orange,f:40
-2cba:00820000:170c:fbff:1:0
-Disney Ch. +1
-p:SkyItalia,f:40
-36ba:00820000:206c:013e:1:0
-SEX VIEW EXTREME
-p:Scopus Network Technologies,f:40
-3aba:00820000:0514:013e:1:0
-FILMBOX HD
-p:ITI,f:40
-0bbb:00820000:20d0:013e:1:0
-SAT 7
-p:GlobeCast,f:40
-1fbb:00820000:189c:fbff:1:0
-History +1
-p:SkyItalia,f:40
-2cbb:00820000:170c:fbff:1:0
-Toon Disney
-p:SkyItalia,f:40
-36bb:00820000:206c:013e:1:0
-SEX VIEW TV
-p:Scopus Network Technologies,f:40
-0bbc:00820000:20d0:013e:1:0
-Abu Dhabi
-p:GLOBECAST,f:40
-2cbc:00820000:170c:fbff:1:0
-Playhouse Disney
-p:SkyItalia,f:40
-36bc:00820000:206c:013e:1:0
-SEX VIEW GAY
-p:Scopus Network Technologies,f:40
-0bbd:00820000:20d0:013e:1:0
-ALBAGHDADIA
-p:GlobeCast,f:40
-1bbd:00820000:17d4:013e:1:0
-GAMES
-p:NetMed,f:40
-1fbd:00820000:189c:fbff:1:0
-NationalGeo +1
-p:SkyItalia,f:40
-2cbd:00820000:170c:fbff:1:0
-Raisat Smash
-p:SkyItalia,f:40
-34bd:00820000:3c28:013e:1:0
-RTS SAT
-p:GlobeCast,f:40
-00be:00820000:1e14:013e:1:0
-Gulli
-p:GC,C:0500,f:40
-00be:0082afc1:0065:0001:1:0
-Al Hurra-Europe TV
-p:,f:40
-0bbe:00820000:20d0:013e:1:0
-RTV Montenegro
-p:GCP,f:40
-1bbe:00820000:17d4:013e:1:0
-E! Entertainment
-p:NetMed,f:40
-2cbe:00820000:170c:fbff:1:0
-Matchmusic
-p:SkyItalia,f:40
-34be:00820000:3c28:013e:1:0
-BFM TV
-p:GlobeCast,f:40
-36be:00820000:206c:013e:1:0
-SEX VIEW HQ
-p:,f:40
-0bbf:00820000:20d0:013e:1:0
-Telepace
-p:GlobeCast,f:40
-1bbf:00820000:17d4:013e:1:0
-The History Channel
-p:NetMed,f:40
-1fbf:00820000:189c:fbff:1:0
-Sky News
-p:SkyItalia,f:40
-20bf:00820000:2328:013e:1:0
-Ishtar TV
-p:OiV Zagreb,f:40
-2cbf:00820000:170c:fbff:1:0
-Juventus Channel
-p:SkyItalia,f:40
-34bf:00820000:3c28:013e:1:0
-E'TV Emilia Romagna
-p:GlobeCast,f:40
-36bf:00820000:206c:013e:1:0
-MONDO ARTE
-p:OVERON,f:40
-00c0:00820000:00c9:0006:1:0
-Guide/AFN Kaiserslautern Eagle
-p:,C:0e00,f:40
-0bc0:00820000:20d0:013e:1:0
-Living God
-p:GLOBECAST,f:40
-0dc0:00820000:15e0:fbff:1:0
-Caccia e Pesca
-p:SkyItalia,f:40
-1bc0:00820000:17d4:013e:1:0
-Private Spice
-p:NetMed,f:40
-2cc0:00820000:170c:fbff:1:0
-Inter Channel
-p:SkyItalia,f:40
-34c0:00820000:3c28:013e:1:0
-MAHARISHI
-p:GLOBECAST,f:40
-36c0:00820000:206c:013e:1:0
-NAPOLI NOVA
-p:OVERON,f:40
-00c1:00820000:00c9:0006:1:0
-Guide/AFN Kaiserslautern PowerNet
-p:,C:0e00,f:40
-02c1:00820000:1b58:013e:1:0
-AlJazeera Documentary
-p:Telespazio,f:40
-0bc1:00820000:20d0:013e:1:0
-ZAHRAA TV
-p:GLOBECAST,f:40
-12c1:00820000:2e7c:013e:1:0
-CANAL+
-p:CYFRA +,f:40
-1bc1:00820000:17d4:013e:1:0
-Motors TV
-p:NetMed,f:40
-1fc1:00820000:189c:fbff:1:0
-Cartoon Network
-p:SkyItalia,f:40
-27c1:00820000:23f0:013f:1:0
-T. R. Padre Pio
-p:SKYGATE,f:40
-2bc1:00820000:1a90:fbff:1:0
-Prima Fila 3
-p:SkyItalia,f:40
-2cc1:00820000:170c:fbff:1:0
-RaisatExtra
-p:SkyItalia,f:40
-34c1:00820000:3c28:013e:1:0
-ISLAM TV
-p:GlobeCast,f:40
-36c1:00820000:206c:013e:1:0
-GALAXY
-p:OVERON,f:40
-38c1:00820000:0320:fbff:1:0
-Fox Life +1
-p:SkyItalia,f:40
-00c2:00820000:1e14:013e:1:0
-Virgin 17
-p:GC,C:0500,f:40
-01c2:00820000:1964:013e:1:0
-NILE DRAMA - ARABESQUE
-p:ART,f:40
-02c2:00820000:1b58:013e:1:0
-AlJazeera Mubasher
-p:Telespazio,f:40
-0bc2:00820000:20d0:013e:1:0
-Saudi arabia TV2
-p:GlobeCast,f:40
-12c2:00820000:2e7c:013e:1:0
-CANAL+ FILM
-p:CYFRA +,f:40
-1bc2:00820000:17d4:013e:1:0
-NOVACINEMA3
-p:NetMed,f:40
-2cc2:00820000:170c:fbff:1:0
-Raisat Premium
-p:SkyItalia,f:40
-34c2:00820000:3c28:013e:1:0
-Ariana TV
-p:GlobeCast,f:40
-36c2:00820000:206c:013e:1:0
-!ALLOVE
-p:GlobeCast,f:40
-02c3:00820000:1b58:013e:1:0
-ACM Channel
-p:Telespazio,f:40
-0dc3:00820000:14b4:013e:1:0
-GAY.TV
-p:TSA,f:40
-12c3:00820000:2e7c:013e:1:0
-JETIX
-p:CYFRA +,f:40
-1bc3:00820000:17d4:013e:1:0
-NOVASPORTS4
-p:NetMed,f:40
-1fc3:00820000:189c:fbff:1:0
-Jetix
-p:SkyItalia,f:40
-2bc3:00820000:1a90:fbff:1:0
-Prima Fila 5
-p:SkyItalia,f:40
-36c3:00820000:206c:013e:1:0
-SEXWORLD
-p:GlobeCast,f:40
-02c4:00820000:1b58:013e:1:0
-AL JAZEERA
-p:Telespazio,f:40
-0dc4:00820000:14b4:013e:1:0
-VIP.TV
-p:Harmonic,f:40
-12c4:00820000:2e7c:013e:1:0
-KUCHNIA.TV
-p:CYFRA +,f:40
-1bc4:00820000:17d4:013e:1:0
-novasports5
-p:NetMed,f:40
-36c4:00820000:206c:013e:1:0
-HOUSE CHANNEL
-p:Scopus Network Technologies,f:40
-02c5:00820000:1b58:013e:1:0
-Sicilia Channel
-p:Telespazio,f:40
-0dc5:00820000:14b4:013e:1:0
-Cardmania Shopping
-p:Harmonic,f:40
-12c5:00820000:2e7c:013e:1:0
-ALE KINO!
-p:CYFRA +,f:40
-1bc5:00820000:17d4:013e:1:0
-novasports6
-p:NetMed,f:40
-1fc5:00820000:189c:fbff:1:0
-Fox Life
-p:SkyItalia,f:40
-2bc5:00820000:1a90:fbff:1:0
-Prima Fila 11
-p:SkyItalia,f:40
-0dc6:00820000:14b4:013e:1:0
-Ictimai TV
-p:Harmonic,f:40
-12c6:00820000:2e7c:013e:1:0
-ZigZap
-p:CYFRA +,f:40
-1bc6:00820000:17d4:013e:1:0
-Nova Promo
-p:NetMed,f:40
-0dc7:00820000:14b4:013e:1:0
-Exotica
-p:Harmonic,f:40
-12c7:00820000:2e7c:013e:1:0
-TVP 1
-p:CYFRA +,f:40
-1bc7:00820000:17d4:013e:1:0
-Chasse & Peche
-p:NetMed,f:40
-1fc7:00820000:2454:013e:1:0
-ARM_1
-p:GlobeCast,f:40
-2bc7:00820000:1a90:fbff:1:0
-Prima Fila 13
-p:SkyItalia,f:40
-00c8:00820000:3e1c:013f:1:0
-RTL9
-p:AB SAT,f:40
-0dc8:00820000:14b4:013e:1:0
-IPN
-p:Harmonic,f:40
-12c8:00820000:2e7c:013e:1:0
-TVP 2
-p:CYFRA +,f:40
-1bc8:00820000:17d4:013e:1:0
-Playboy TV
-p:NetMed,f:40
-00c9:00820000:3e1c:013f:1:0
-AB1
-p:AB SAT,f:40
-02c9:00820000:1b58:013e:1:0
-UNOSAT
-p:Telespazio,f:40
-12c9:00820000:2e7c:013e:1:0
-CANAL+ SPORT
-p:CYFRA +,f:40
-1bc9:00820000:17d4:013e:1:0
-novasports4 Cy
-p:NetMed,f:40
-1fc9:00820000:2454:013e:1:0
-Show room
-p:GlobeCast,f:40
-1fc9:00820000:189c:fbff:1:0
-Cult
-p:SkyItalia,f:40
-2bc9:00820000:1a90:fbff:1:0
-Prima Fila 22
-p:SkyItalia,f:40
-00ca:00820000:3e1c:013f:1:0
-AB MOTEURS
-p:AB SAT,f:40
-00ca:00820000:012d:0006:1:0
-The Eagle - Sigonella
-p:,C:0e00,f:40
-02ca:00820000:1b58:013e:1:0
-OUT IP DATA TS1
-p:Telespazio,f:40
-0dca:00820000:15e0:fbff:1:0
-Jimmy
-p:SkyItalia,f:40
-1bca:00820000:17d4:013e:1:0
-novacinema3 Cy
-p:NetMed,f:40
-1cca:00820000:1ce8:0071:1:0
-Cinemax2
-p:Cyfrowy Polsat,f:40
-2dca:00820000:2198:fbff:1:0
-SKYCinema 2
-p:SkyItalia,f:40
-34ca:00820000:3c28:013e:1:0
-EWTN UK
-p:,f:40
-34ca:00820000:14b4:013e:1:0
-MARE TV
-p:Harmonic,f:40
-00cb:00820000:3e1c:013f:1:0
-ANIMAUX
-p:AB SAT,f:40
-00cb:00820000:012d:0006:1:0
-Power - Sigonella
-p:,C:0e00,f:40
-1bcb:00820000:17d4:013e:1:0
-Playboy TV Cy
-p:NetMed,f:40
-1ccb:00820000:1ce8:0071:1:0
-TVP1
-p:Cyfrowy Polsat,f:40
-1fcb:00820000:2454:013e:1:0
-Liberty_TV_NL
-p:GlobeCast,f:40
-1fcb:00820000:189c:fbff:1:0
-Fox Crime
-p:SkyItalia,f:40
-2bcb:00820000:1a90:fbff:1:0
-Prima Fila 28
-p:SkyItalia,f:40
-2dcb:00820000:2198:fbff:1:0
-SKY Classics
-p:SkyItalia,f:40
-34cb:00820000:3c28:013e:1:0
-Bio TV
-p:Scopus Network Technologies,f:40
-34cb:00820000:14b4:013e:1:0
-SAT EROTICA
-p:Harmonic,f:40
-35cb:00820000:1388:013e:1:0
-Trav + Leisure
-p:TVN,f:40
-00cc:00820000:3e1c:013f:1:0
-CHASSE & PECHE
-p:AB SAT,f:40
-01cc:00820000:1964:013e:1:0
-LBC EUROPE - ARABESQUE
-p:ART,f:40
-02cc:00820000:1b58:013e:1:0
-Telemarket 2
-p:Telespazio,f:40
-1bcc:00820000:17d4:013e:1:0
-novasports6 Cy
-p:NetMed,f:40
-1ccc:00820000:1ce8:0071:1:0
-Test_P
-p:Cyfrowy Polsat,f:40
-2dcc:00820000:2198:fbff:1:0
-SKY Cinema Hits
-p:SkyItalia,f:40
-34cc:00820000:3c28:013e:1:0
-.Viva L'Italia Channel
-p:GlobeCast,f:40
-34cc:00820000:14b4:013e:1:0
-IGHRA
-p:Harmonic,f:40
-35cc:00820000:1388:013e:1:0
-Disc Science
-p:TVN,f:40
-38cc:00820000:0320:fbff:1:0
-Radio on SKY
-p:SkyItalia,f:40
-00cd:00820000:3e1c:013f:1:0
-XXL
-p:AB SAT,f:40
-02cd:00820000:1b58:013e:1:0
-Radio Radio Tv
-p:Telespazio,f:40
-1ccd:00820000:1ce8:0071:1:0
-TVP2
-p:Cyfrowy Polsat,f:40
-1fcd:00820000:2454:013e:1:0
-CONTO TV
-p:CONTO TV,f:40
-1fcd:00820000:189c:fbff:1:0
-Fox News
-p:SkyItalia,f:40
-29cd:00820000:3cf0:013e:1:0
-PIANETA
-p:GlobeCast,f:40
-2bcd:00820000:1a90:fbff:1:0
-Prima Fila 30
-p:SkyItalia,f:40
-34cd:00820000:14b4:013e:1:0
-ERO PULSE
-p:Harmonic,f:40
-35cd:00820000:1388:013e:1:0
-An Planet
-p:TVN,f:40
-00ce:00820000:3e1c:013f:1:0
-TF1
-p:AB SAT,f:40
-02ce:00820000:1b58:013e:1:0
-MediterraneoSat
-p:Telespazio,f:40
-1bce:00820000:17d4:013e:1:0
-Private Spice Cy
-p:NetMed,f:40
-1fce:00820000:2454:013e:1:0
-CONTO TV 1
-p:CONTO TV,f:40
-29ce:00820000:3cf0:013e:1:0
-Cartomanzia_LOTTO
-p:GlobeCast,f:40
-34ce:00820000:3c28:013e:1:0
-SPIRIT CHANNEL
-p:GlobeCast,f:40
-34ce:00820000:14b4:013e:1:0
-ERO LIVE 1
-p:Harmonic,f:40
-35ce:00820000:1388:013e:1:0
-Disc Civ
-p:TVN,f:40
-00cf:00820000:3e1c:013f:1:0
-ESCALES
-p:AB SAT,f:40
-1ccf:00820000:1ce8:0071:1:0
-FoxLife
-p:Cyfrowy Polsat,f:40
-1fcf:00820000:2454:013e:1:0
-CONTO TV 2
-p:CONTO TV,f:40
-1fcf:00820000:189c:fbff:1:0
-Cooltoon
-p:SkyItalia,f:40
-29cf:00820000:3cf0:013e:1:0
-ARTE
-p:GlobeCast,f:40
-2bcf:00820000:1a90:fbff:1:0
-SKY Calcio 2
-p:SkyItalia,f:40
-34cf:00820000:3c28:013e:1:0
-NRJ 12
-p:globeCast,f:40
-34cf:00820000:14b4:013e:1:0
-Arablive
-p:Harmonic,f:40
-35cf:00820000:1388:013e:1:0
-Disc Chnl
-p:TVN,f:40
-36cf:00820000:206c:013e:1:0
-SEXYSAT2
-p:Scopus Network Technologies,f:40
-00d0:00820000:3e1c:013f:1:0
-Fit/Toute l'Histoire
-p:AB SAT,f:40
-02d0:00820000:1b58:013e:1:0
-Telefoggia
-p:Telespazio,f:40
-1bd0:00820000:17d4:013e:1:0
-ALFA
-p:NetMed,f:40
-1fd0:00820000:2454:013e:1:0
-CONTO TV 3
-p:CONTO TV,f:40
-21d0:00822a65:2db4:0000:1:0
-Tenfore
-p:T-Systems,f:40
-29d0:00820000:3cf0:013e:1:0
-RTL_102.5_TV
-p:GlobeCast_Italia,f:40
-34d0:00820000:3c28:013e:1:0
-NRJ 12 HQ
-p:GlobeCast,f:40
-36d0:00820000:206c:013e:1:0
-SEXYSAT3
-p:Scopus Network Technologies,f:40
-00d1:00820000:3e1c:013f:1:0
-NT1
-p:AB SAT,f:40
-02d1:00820000:1b58:013e:1:0
-TV della Liberta'
-p:Telespazio,f:40
-1bd1:00820000:17d4:013e:1:0
-LTV
-p:NetMed,f:40
-20d1:00820000:01f4:013e:1:0
-ALL TV
-p:Telespazio,f:40
-29d1:00820000:3cf0:013e:1:0
-Best_of_Shopping
-p:GlobeCast,f:40
-2bd1:00820000:1a90:fbff:1:0
-SKY Calcio 3
-p:SkyItalia,f:40
-36d1:00820000:206c:013e:1:0
-SEXYSAT4
-p:Scopus Network Technologies,f:40
-39d1:00820000:1fa4:013e:1:0
-TRACE-TV
-p:EUTELSAT ,f:40
-00d2:00820000:3e1c:013f:1:0
-ACTION
-p:AB SAT,f:40
-20d2:00820000:01f4:013e:1:0
-S2K
-p:Telespazio,C:9728,f:40
-29d2:00820000:3cf0:013e:1:0
-ITALIA_CHANNEL
-p:GlobeCast,f:40
-2dd2:00820000:2198:fbff:1:0
-Milan Channel
-p:SkyItalia,f:40
-39d2:00820000:1fa4:013e:1:0
-RTVi Europe
-p:EUTELSAT ,f:40
-00d3:00820000:3e1c:013f:1:0
-MANGAS
-p:AB SAT,f:40
-20d3:00820000:01f4:013e:1:0
-Denaro Tv
-p:Telespazio,f:40
-29d3:00820000:3cf0:013e:1:0
-TV_ROMANIA
-p:,f:40
-2bd3:00820000:1a90:fbff:1:0
-SKY Calcio 4
-p:SkyItalia,f:40
-2dd3:00820000:2198:fbff:1:0
-Classica
-p:SkyItalia,f:40
-39d3:00820000:1fa4:013e:1:0
-RTVi Detskii Mir - Teleclub
-p:EUTELSAT ,f:40
-00d4:00820000:3e1c:013f:1:0
-ENCYCLOPEDIA
-p:AB SAT,f:40
-00d4:00820000:00c9:0006:1:0
-Guide/AFN Benelux Eagle
-p:,C:0e00,f:40
-20d4:00820000:01f4:013e:1:0
-IMC
-p:Telespazio,f:40
-29d4:00820000:3cf0:013e:1:0
-Carisma_TV
-p:GlobeCast,f:40
-2dd4:00820000:2198:fbff:1:0
-Discovery Travel
-p:SkyItalia,f:40
-39d4:00820000:1fa4:013e:1:0
-RTVi Nashe Kino
-p:EUTELSAT ,f:40
-3bd4:00820000:2260:fbff:1:0
-Deejay TV
-p:SkyItalia,f:40
-00d5:00820000:3e1c:013f:1:0
-XXL
-p:AB SAT,f:40
-00d5:00820000:00c9:0006:1:0
-Guide/AFN Benelux PowerNet
-p:,C:0e00,f:40
-29d5:00820000:3cf0:013e:1:0
-KBS_WORLD
-p:GlobeCast,f:40
-2bd5:00820000:1a90:fbff:1:0
-SKY Calcio 5
-p:SkyItalia,f:40
-2dd5:00820000:2198:fbff:1:0
-La7
-p:SkyItalia,f:40
-3bd5:00820000:2260:fbff:1:0
-SKY Assist
-p:SkyItalia,f:40
-00d6:00820000:3e1c:013f:1:0
-XXL
-p:AB SAT,f:40
-20d6:00820000:01f4:013e:1:0
-Lazio Ch
-p:Telespazio,f:40
-29d6:00820000:3cf0:013e:1:0
-123_SAT
-p:GlobeCast,f:40
-2dd6:00820000:2198:fbff:1:0
-Discovery Civil.
-p:SkyItalia,f:40
-34d6:00820000:3c28:013e:1:0
-TV GLOBO
-p:GlobeCast,C:0500,C:1801,f:40
-00d7:00820000:3e1c:013f:1:0
-XXL PL
-p:AB SAT,f:40
-10d7:00820000:03e8:013e:1:0
-TVN
-p:TVN Grupa ITI,f:40
-20d7:00820000:01f4:013e:1:0
-Napoli Mia
-p:Telespazio,f:40
-2bd7:00820000:1a90:fbff:1:0
-SKY Calcio 6
-p:SkyItalia,f:40
-2dd7:00820000:2198:fbff:1:0
-CNN Intl.
-p:SkyItalia,f:40
-39d7:00820000:1fa4:013e:1:0
-RTVi ME
-p:EUTELSAT ,f:40
-00d8:00820000:3e1c:013f:1:0
-NT1
-p:AB SAT,f:40
-01d8:00820000:1964:013e:1:0
-ART SPORT 1 - ARABESQUE
-p:ART,f:40
-10d8:00820000:03e8:013e:1:0
-TVN 24
-p:TVN Grupa ITI,f:40
-20d8:00820000:01f4:013e:1:0
-Mediterraneo Sat 2
-p:Telespazio ,f:40
-00d9:00820000:3e1c:013f:1:0
-France 5
-p:AB SAT,f:40
-10d9:00820000:03e8:013e:1:0
-TVN Siedem
-p:TVN,f:40
-20d9:00820000:01f4:013e:1:0
-Challenger Tv
-p:Telespazio,f:40
-29d9:00820000:3cf0:013e:1:0
-K+
-p:GlobeCast,f:40
-2bd9:00820000:1a90:fbff:1:0
-SKY Calcio 7
-p:SkyItalia,f:40
-00da:00820000:3e1c:013f:1:0
-France ô
-p:AB SAT,f:40
-01da:00820000:1964:013e:1:0
-IQRAA - ARABESQUE
-p:ART,f:40
-10da:00820000:03e8:013e:1:0
-FILMBOX EXTRA
-p:TVN grupa ITI,f:40
-20da:00820000:01f4:013e:1:0
-Laurenti Ch
-p:Telespazio,f:40
-00db:00820000:3e1c:013f:1:0
-LCP
-p:AB SAT,f:40
-10db:00820000:03e8:013e:1:0
-FILMBOX
-p:TVN Grupa ITI,f:40
-20db:00820000:01f4:013e:1:0
-Radio Italia TV
-p:Telespazio,f:40
-29db:00820000:3cf0:013e:1:0
-Arte_&_Arte_Channel
-p:GlobeCast,f:40
-2bdb:00820000:1a90:fbff:1:0
-SKY Calcio 8
-p:SkyItalia,f:40
-34db:00820000:3c28:013e:1:0
-NRJ 12
-p:GlobeCast,f:40
-01dc:00820000:1964:013e:1:0
-ART CINEMA - ARABESQUE
-p:ART,f:40
-10dc:00820000:03e8:013e:1:0
-Mango 24
-p:,f:40
-34dc:00820000:3c28:013e:1:0
-BFM TV
-p:GlobeCast,f:40
-39dc:00820000:1fa4:013e:1:0
-World Fashion
-p:EUTELSAT ,f:40
-05dd:00820000:2e18:00b0:1:0
-M6 Music Rock
-p:,f:40
-1edd:00820000:21fc:013e:1:0
-IRIB1 PER
-p:IRIB,f:40
-20dd:00820000:01f4:013e:1:0
-Gold shop
-p:Telespazio,f:40
-3bdd:00820000:2260:fbff:1:0
-MTV Brand New
-p:SkyItalia,f:40
-00de:00820000:012d:0006:1:0
-The Eagle - Livorno
-p:,C:0e00,f:40
-01de:00820000:1964:013e:1:0
-ART- ARABESQUE
-p:ART,f:40
-10de:00820000:03e8:013e:1:0
-TVN METEO
-p:TVN Grupa ITI,f:40
-12de:00820000:2e7c:013e:1:0
-H test 1
-p:CYFRA +,f:40
-1ede:00820000:21fc:013e:1:0
-IRIB1 ENG
-p:,f:40
-20de:00820000:01f4:013e:1:0
-Punto Sat
-p:Telespazio,f:40
-34de:00820000:3c28:013e:1:0
-Walf TV
-p:GlobeCast,C:0500,f:40
-35de:00820000:1388:013e:1:0
-Sicilia Int
-p:BT,f:40
-3bde:00820000:2260:fbff:1:0
-MTV Hits
-p:SkyItalia,f:40
-00df:00820000:012d:0006:1:0
-Power - Livorno
-p:,C:0e00,f:40
-05df:00820000:2e18:00b0:1:0
-Equidia
-p:,f:40
-10df:00820000:03e8:013e:1:0
-TVN TURBO
-p:TVN GRUPA ITI,f:40
-12df:00820000:2e7c:013e:1:0
-H test 2
-p:CYFRA +,f:40
-1edf:00820000:21fc:013e:1:0
-IRIB2 PER
-p:IRIB,f:40
-20df:00820000:01f4:013e:1:0
-MilanoTV Sat
-p:Telespazio,f:40
-22df:00820000:238c:013e:1:0
-BLUTV
-p:Scopus Network Technologies,f:40
-01e0:00820000:1964:013e:1:0
-ART HEKAYAT ZAMANE- ARABESQUE
-p:ART,f:40
-05e0:00820000:2e18:00b0:1:0
-Sci Fi
-p:TPS,C:0500,f:40
-10e0:00820000:03e8:013e:1:0
-TVN Style
-p:TVN,f:40
-12e0:00820000:2e7c:013e:1:0
-H test 3
-p:CYFRA +,f:40
-1ee0:00820000:21fc:013e:1:0
-IRIB2 ENG
-p:,f:40
-20e0:00820000:01f4:013e:1:0
-julie
-p:Telespazio,f:40
-29e0:00820000:3cf0:013e:1:0
-Nostradamus
-p:Scopus Network Technologies,f:40
-38e0:00820000:0320:fbff:1:0
-SKY Test
-p:SkyItalia,f:40
-01e1:00820000:1964:013e:1:0
-ART SPORT 2 - ARABESQUE
-p:ART,f:40
-05e1:00820000:2e18:00b0:1:0
-France 4
-p:,C:0100,C:0500,f:40
-10e1:00820000:2710:fbff:1:0
-SKY Meteo24
-p:SkyItalia,f:40
-10e1:00820000:03e8:013e:1:0
-TVN Gra
-p:TVN Grupa ITI,f:40
-1ee1:00820000:21fc:013e:1:0
-IRINN
-p:IRIB,f:40
-05e2:00820000:2e18:00b0:1:0
-Ushuaia TV
-p:,f:40
-10e2:00820000:2710:fbff:1:0
-Test 6
-p:SkyItalia,f:40
-10e2:00820000:03e8:013e:1:0
-TVN CNBC Biznes
-p:TVN Grupa ITI,f:40
-20e2:00820000:01f4:013e:1:0
-ONE
-p:Telespazio,f:40
-01e3:00820000:1964:013e:1:0
-ART SPORT 3 - ARABESQUE
-p:ART,f:40
-05e3:00820000:2e18:00b0:1:0
-TV Breizh
-p:,f:40
-10e3:00820000:2710:fbff:1:0
-SNAI Sat
-p:SkyItalia,f:40
-12e3:00820000:2e7c:013e:1:0
-DTV CABLE
-p:CYFRA +,f:40
-1ee3:00820000:21fc:013e:1:0
-IRIB QURAN
-p:IRIB,f:40
-20e3:00820000:01f4:013e:1:0
-Ulisse
-p:Telespazio,f:40
-29e3:00820000:3cf0:013e:1:0
-ARTE
-p:,f:40
-05e4:00820000:2e18:00b0:1:0
-France 5
-p:,f:40
-12e4:00820000:2e7c:013e:1:0
-DTV CABLE 2
-p:CYFRA +,f:40
-20e4:00820000:01f4:013e:1:0
-LIBERA
-p:TELESPAZIO,f:40
-01e5:00820000:1964:013e:1:0
-ART SPORT 4 - ARABESQUE
-p:ART,f:40
-05e5:00820000:2e18:00b0:1:0
-France Ô
-p:,f:40
-0ce5:00820000:1518:013e:1:0
-RaiNotizie24
-p:RAI,f:40
-12e5:00820000:2e7c:013e:1:0
-DTV CABLE 3
-p:CYFRA +,f:40
-20e5:00820000:01f4:013e:1:0
-AB Channel
-p:TELESPAZIO,f:40
-38e5:00820000:0320:fbff:1:0
-SKY Sport HD
-p:SkyItalia,f:40
-05e6:00820000:2e18:00b0:1:0
-La Chaîne Parlementaire
-p:,f:40
-0ce6:00820000:1518:013e:1:0
-Camera Deputati
-p:RAI,f:40
-20e6:00820000:01f4:013e:1:0
-S24
-p:Telespazio,f:40
-3be6:00820000:2260:fbff:1:0
-Music on SKY
-p:SkyItalia,f:40
-01e7:00820000:1964:013e:1:0
-ART HEKAYAT - ARABESQUE
-p:ART,f:40
-0fe7:00820000:2580:fbff:1:0
-Prima Fila 19
-p:SkyItalia,f:40
-10e7:00820000:2710:fbff:1:0
-Test 5
-p:SkyItalia,f:40
-1ee7:00820000:21fc:013e:1:0
-SAHAR
-p:IRIB,f:40
-20e7:00820000:01f4:013e:1:0
-Puntosat3
-p:Telespazio,f:40
-38e7:00820000:0320:fbff:1:0
-SKY Cinema HD
-p:SkyItalia,f:40
-01e8:00820000:1964:013e:1:0
-FUTURE NEWS - ARABESQUE
-p:ART,f:40
-0ce8:00820000:1518:013e:1:0
-RaiTest
-p:Rai,f:40
-0fe8:00820000:2580:fbff:1:0
-Prima Fila 21
-p:SkyItalia,f:40
-10e8:00820000:2710:fbff:1:0
-Anc1003
-p:SkyItalia,f:40
-20e8:00820000:01f4:013e:1:0
-Poker Tv
-p:Telespazio,f:40
-0ce9:00820000:1518:013e:1:0
-RAI Sport più
-p:RAI,f:40
-0fe9:00820000:2580:fbff:1:0
-Prima Fila 23
-p:SkyItalia,f:40
-10e9:00820000:2710:fbff:1:0
-Anc1004
-p:SkyItalia,f:40
-20e9:00820000:01f4:013e:1:0
-S.Neu Jerusalem
-p:Telespazio,f:40
-35e9:00820000:00c8:013e:1:0
-ESP2 Int'l
-p:Eutelsat,f:40
-38e9:00820000:0320:fbff:1:0
-NationalGeo HD
-p:SkyItalia,f:40
-0cea:00820000:1518:013e:1:0
-RaiNettunoSat2
-p:RAI,f:40
-0fea:00820000:2580:fbff:1:0
-Prima Fila 25
-p:SkyItalia,f:40
-10ea:00820000:2710:fbff:1:0
-Anc1005
-p:SkyItalia,f:40
-1cea:00820000:2fa8:013e:1:0
-Noursat
-p:Globecast UK,f:40
-20ea:00820000:01f4:013e:1:0
-ROLSAT
-p:Telespazio,f:40
-35ea:00820000:00c8:013e:1:0
-EUSP2 PL
-p:Eutelsat,f:40
-38ea:00820000:0320:fbff:1:0
-Next HD
-p:SkyItalia,f:40
-05eb:00820000:2e18:00b0:1:0
-M6 Music Black
-p:,f:40
-0beb:00820000:20d0:013e:1:0
-EQUIDIA PRO
-p:PMU,f:40
-0ceb:00820000:1518:013e:1:0
-Rai Edu1
-p:RAI,f:40
-0feb:00820000:2580:fbff:1:0
-Prima Fila 14
-p:SkyItalia,f:40
-10eb:00820000:2710:fbff:1:0
-SKY Focus
-p:SkyItalia,f:40
-1ceb:00820000:2fa8:013e:1:0
-Rete Capri
-p:Globecast UK,f:40
-1eeb:00820000:21fc:013e:1:0
-AL-ALAM
-p:IRIB,f:40
-35eb:00820000:00c8:013e:1:0
-Prod ESP2
-p:Eutelsat,f:40
-0bec:00820000:20d0:013e:1:0
-EQUIDIA PRO P1
-p:PMU,f:40
-0cec:00820000:1518:013e:1:0
-RaiNettunoSat1
-p:RAI,f:40
-0fec:00820000:2580:fbff:1:0
-Prima Fila 15
-p:SkyItalia,f:40
-10ec:00820000:2710:fbff:1:0
-Anc1006
-p:SkyItalia,f:40
-35ec:00820000:00c8:013e:1:0
-ESP2 Test
-p:Eutelsat,f:40
-0ced:00820000:1518:013e:1:0
-SAT2000
-p:RAI,f:40
-0fed:00820000:2580:fbff:1:0
-Prima Fila 27
-p:SkyItalia,f:40
-10ed:00820000:2710:fbff:1:0
-Test 24
-p:SkyItalia,f:40
-13ed:00820000:05dc:013e:1:0
-TV POLONIA
-p:CYFRA +,f:40
-35ed:00820000:00c8:013e:1:0
-ESP2 Greek
-p:Eutelsat,f:40
-3bed:00820000:2260:fbff:1:0
-Music on SKY
-p:SkyItalia,f:40
-0cee:00820000:1518:013e:1:0
-Rai Gulp
-p:RAI,f:40
-0fee:00820000:2580:fbff:1:0
-Prima Fila 17
-p:SkyItalia,f:40
-1eee:00820000:21fc:013e:1:0
-RADIO QURAN
-p:,f:40
-2cee:00820000:1a2c:fbff:1:0
-Sportitalia
-p:SkyItalia,f:40
-01ef:00820000:33f4:013e:1:0
-Sisal TV
-p:Telespazio,f:40
-0fef:00820000:2580:fbff:1:0
-Prima Fila 18
-p:SkyItalia,f:40
-1eef:00820000:21fc:013e:1:0
-SEDAYE ASHNA
-p:,f:40
-00f0:0082afc1:0065:0001:1:0
-VOA TV 240 (HB1-8)
-p:,f:40
-01f0:00820000:33f4:013e:1:0
-SA OS download
-p:Telespazio,f:40
-13f0:00820000:05dc:013e:1:0
-KINO POLSKA
-p:CYFRA +,f:40
-2cf0:00820000:1a2c:fbff:1:0
-Eurosport
-p:SkyItalia,f:40
-00f1:00820000:2648:013e:1:0
-Arriadia 2
-p:PRVDR,f:40
-00f1:0082afc1:0065:0001:1:0
-VOA TV 241 (HB1-2, HB5-6)
-p:,f:40
-05f1:00820000:2e18:00b0:1:0
-France 5
-p:,f:40
-00f2:0082afc1:0065:0001:1:0
-VOA TV 242 (HB1-2, HB7-8)
-p:,f:40
-05f2:00820000:2e18:00b0:1:0
-La Chaine Parlementaire
-p:,f:40
-2cf2:00820000:1a2c:fbff:1:0
-Eurosport 2
-p:SkyItalia,f:40
-00f3:0082afc1:0065:0001:1:0
-IBB VOA RFERL Radio 243
-p:,f:40
-05f3:00820000:2e18:00b0:1:0
-France 4
-p:,f:40
-0df3:00820000:15e0:fbff:1:0
-SKY Inside
-p:SkyItalia,f:40
-38f3:00820000:0320:fbff:1:0
-Music Box
-p:SkyItalia,f:40
-00f4:0082afc1:0065:0001:1:0
-IBB VOA RFERL Radio 244
-p:,f:40
-0df4:00820000:15e0:fbff:1:0
-SKY Inside
-p:SkyItalia,f:40
-2cf4:00820000:1a2c:fbff:1:0
-EurosportNews
-p:SkyItalia,f:40
-39f4:00820000:1fa4:013e:1:0
-France 24 (in Arabic)
-p:EUTELSAT ,f:40
-00f5:0082afc1:0065:0001:1:0
-IBB VOA RFERL Radio 245
-p:,f:40
-0df5:00820000:15e0:fbff:1:0
-SKY Inside
-p:SkyItalia,f:40
-13f5:00820000:05dc:013e:1:0
-ITV
-p:CYFRA +,f:40
-1ef5:00820000:21fc:013e:1:0
-RADIO IRAN
-p:,f:40
-2cf5:00820000:1a2c:fbff:1:0
-SKY Sport 3
-p:SkyItalia,f:40
-35f5:00820000:00c8:013e:1:0
-ESP2 Rus
-p:Eutelsat,f:40
-0df6:00820000:15e0:fbff:1:0
-SKY Inside
-p:SkyItalia,f:40
-13f6:00820000:05dc:013e:1:0
-TVP INFO
-p:CYFRA +,f:40
-01f7:00820000:26ac:013f:1:0
-France 2
-p:AB SAT,f:40
-0df7:00820000:15e0:fbff:1:0
-SKY Inside
-p:SkyItalia,f:40
-13f7:00820000:05dc:013e:1:0
-CINEMAX
-p:CYFRA +,f:40
-1ef7:00820000:21fc:013e:1:0
-RADIO MAAREF(ENG)
-p:,f:40
-2cf7:00820000:1a2c:fbff:1:0
-ESPN Classic
-p:SkyItalia,f:40
-0df8:00820000:15e0:fbff:1:0
-SKY Inside
-p:SkyItalia,f:40
-13f8:00820000:05dc:013e:1:0
-PULS
-p:CYFRA +,f:40
-01f9:00820000:26ac:013f:1:0
-TMC
-p:AB SAT,f:40
-11f9:00820000:2b5c:013e:1:0
-ANT1 EUROPE
-p:H,f:40
-13f9:00820000:05dc:013e:1:0
-TVP Kultura
-p:CYFRA +,f:40
-2cf9:00820000:1a2c:fbff:1:0
-SKY Vivo
-p:SkyItalia,f:40
-38f9:00820000:0320:fbff:1:0
-Prima Fila 34
-p:SkyItalia,f:40
-00fa:00820000:3e1c:013f:1:0
-TISHK
-p:AB SAT,f:40
-00fa:0082afc1:0065:0001:1:0
-VOA TV 250 (HB1-8)
-p:,f:40
-01fa:00820000:26ac:013f:1:0
-CINE POLAR
-p:AB SAT,f:40
-0dfa:00820000:15e0:fbff:1:0
-Yacht & Sail
-p:SkyItalia,f:40
-0ffa:00820000:2580:fbff:1:0
-Prima Fila 40
-p:SkyItalia,f:40
-11fa:00820000:2b5c:013e:1:0
-AL JAZEERA SP+1
-p:H,f:40
-13fa:00820000:05dc:013e:1:0
-ESPN Classic Sport
-p:CYFRA +,f:40
-1efa:00820000:21fc:013e:1:0
-IRIB1/IRIB2
-p:,f:40
-2cfa:00820000:1a2c:fbff:1:0
-Discovery Sci
-p:SkyItalia,f:40
-38fa:00820000:0320:fbff:1:0
-Prima Fila 29
-p:SkyItalia,f:40
-39fa:00820000:1fa4:013e:1:0
-Italy&Italy
-p:EUTELSAT,f:40
-00fb:0082afc1:0065:0001:1:0
-VOA TV 251 (HB1-2, HB5-6)
-p:,f:40
-01fb:00820000:26ac:013f:1:0
-CINE FX
-p:AB SAT,f:40
-0ffb:00820000:2580:fbff:1:0
-Prima Fila 40
-p:SkyItalia,f:40
-11fb:00820000:2b5c:013e:1:0
-RTPi
-p:H,f:40
-1efb:00820000:21fc:013e:1:0
-IRIB5/IRIB4
-p:,f:40
-00fc:0082afc1:0065:0001:1:0
-VOA TV 252 (HB1-2, HB7-8)
-p:,f:40
-01fc:00820000:26ac:013f:1:0
-VIDEOCLICK
-p:AB SAT,f:40
-0dfc:00820000:15e0:fbff:1:0
-SKY Play IT
-p:SkyItalia,f:40
-11fc:00820000:2b5c:013e:1:0
-MTA INTL
-p:H,f:40
-1efc:00820000:21fc:013e:1:0
-IRIB3/IRIB6
-p:,f:40
-3afc:00820000:0514:013e:1:0
-Initial
-p:ITI,f:40
-00fd:0082afc1:0065:0001:1:0
-IBB VOA RFERL Radio 253
-p:,f:40
-01fd:00820000:26ac:013f:1:0
-TEST
-p:AB SAT,f:40
-11fd:00820000:2b5c:013e:1:0
-10.722 H
-p:H,f:40
-2cfd:00820000:1a2c:fbff:1:0
-BBC Prime
-p:SkyItalia,f:40
-35fd:00820000:00c8:013e:1:0
-ESP2 Romanian
-p:Eutelsat,f:40
-3afd:00820000:0578:013e:1:0
-TVP 1
-p:ITI,f:40
-01fe:00820000:26ac:013f:1:0
-BIS TV PROMO
-p:AB Sat,f:40
-11fe:00820000:2b5c:013e:1:0
-Deepam TV
-p:H,f:40
-21fe:00820000:1af4:013e:1:0
-Redlight Mixx
-p:TSA,f:40
-24fe:00820000:2774:fbff:1:0
-NationalGeo
-p:SkyItalia,f:40
-3afe:00820000:0578:013e:1:0
-TVP 2
-p:ITI,f:40
-01ff:00820000:26ac:013f:1:0
-AB3
-p:AB Sat,f:40
-21ff:00820000:1af4:013e:1:0
-Redlight German
-p:Harmonic,f:40
-24ff:00820000:2774:fbff:1:0
-History
-p:SkyItalia,f:40
-3aff:00820000:0578:013e:1:0
-TVP 3
-p:ITI,f:40
-0e00:00820000:14b4:013e:2:0
-Radio 5
-p:RTVE,f:40
-2a00:00820000:3cf0:013e:2:0
-Radio_Romania_International
-p:GlobeCast,f:40
-3c00:00820000:2260:fbff:2:0
-Soulsista
-p:SkyItalia,f:40
-0e01:00820000:14b4:013e:2:0
-Radio Exterior
-p:RTVE,f:40
-2a01:00820000:3cf0:013e:2:0
-RadioClassica
-p:GlobeCast,f:40
-0e02:00820000:14b4:013e:2:0
-Radio 4
-p:RTVE,f:40
-2a02:00820000:3cf0:013e:2:0
-RTL_102.5_HC
-p:GlobeCast_Italia,f:40
-0e03:00820000:14b4:013e:2:0
-RNE Contribucion
-p:RTVE,f:40
-2a03:00820000:3cf0:013e:2:0
-RTL_102.5_ROCK
-p:GlobeCast_Italia,f:40
-2a04:00820000:3cf0:013e:2:0
-Guardia_Costeria
-p:GlobeCast_Italia,f:40
-2a05:00820000:3cf0:013e:2:0
-RTL_102.5_CLASSIC
-p:GlobeCast_Italia,f:40
-0e06:00820000:3c8c:013e:2:0
-DW09
-p:T-Systems,f:40
-1206:00820000:2b5c:013e:2:0
-NPR
-p:H,f:40
-3c06:00820000:2260:fbff:2:0
-New Rock
-p:SkyItalia,f:40
-2907:00820000:1edc:0071:2:0
-Radiostacja
-p:Cyfrowy Polsat,f:40
-3a08:00820000:1fa4:013e:2:0
-RADIO IZVOR
-p:NTH ,f:40
-2209:00820000:1af4:013e:2:0
-Musicam 1
-p:TSA,f:40
-3a09:00820000:1fa4:013e:2:0
-Glas Drine BiH
-p:NTH,f:40
-0c0a:00820000:20d0:013e:2:0
-Voice of Youth
-p:GlobeCast,f:40
-220a:00820000:1af4:013e:2:0
-Musicam 2
-p:TSA,f:40
-3a0a:00820000:1fa4:013e:2:0
-MegaRadio
-p:NTH ,f:40
-3c0a:00820000:2260:fbff:2:0
-Heart n' song
-p:SkyItalia,f:40
-000b:00820000:2648:013e:2:0
-Radio national
-p:PRVDR,f:40
-000b:00820000:1770:0110:2:0
-Radio Mater
-p:,f:40
-000b:00820000:25e4:02be:2:0
-SHARJAH R1
-p:ARABSAT,f:40
-0c0b:00820000:20d0:013e:2:0
-Emirates FM
-p:GLOBECAST,f:40
-220b:00820000:1af4:013e:2:0
-Musicam 3
-p:TSA,f:40
-000c:00820000:2648:013e:2:0
-Radio Dakhla
-p:PRVDR,f:40
-000c:00820000:25e4:02be:2:0
-QATAR R1
-p:ARABSAT,f:40
-0c0c:00820000:20d0:013e:2:0
-Radio MARIA
-p:GLOBECAST,f:40
-220c:00820000:1af4:013e:2:0
-Musicam 4
-p:TSA,f:40
-3c0c:00820000:2260:fbff:2:0
-Out Of Mind
-p:SkyItalia,f:40
-000d:00820000:25e4:02be:2:0
-SAUDI1 R1
-p:ARABSAT,f:40
-220d:00820000:1af4:013e:2:0
-Musicam 5
-p:TSA,f:40
-3c0d:00820000:2260:fbff:2:0
-Onda Latina
-p:SkyItalia,f:40
-000e:00820000:2648:013e:2:0
-Chaine inter
-p:PRVDR,f:40
-000e:00820000:25e4:02be:2:0
-KUWAIT R1
-p:ARABSAT,f:40
-0c0e:00820000:20d0:013e:2:0
-Voice Of People
-p:GLOBECAST,f:40
-220e:00820000:1af4:013e:2:0
-Musicam 6
-p:TSA,f:40
-3c0e:00820000:2260:fbff:2:0
-Livetime
-p:SkyItalia,f:40
-000f:00820000:2648:013e:2:0
-Amazigh
-p:PRVDR,f:40
-3c0f:00820000:2260:fbff:2:0
-Rock Classic
-p:SkyItalia,f:40
-0010:00820000:2648:013e:2:0
-Radio Mohamed VI
-p:PRVDR,f:40
-0010:00820000:25e4:02be:2:0
-SUDAN R1
-p:ARABSAT,f:40
-0c10:00820000:20d0:013e:2:0
-Radio Montenegro
-p:GLOBECAST,f:40
-3c10:00820000:2260:fbff:2:0
-Rock Shock
-p:SkyItalia,f:40
-0011:00820000:300c:013e:2:0
-VOT West
-p:RRSat,f:40
-0011:00820000:25e4:02be:2:0
-OMAN R1
-p:ARABSAT,f:40
-0c11:00820000:20d0:013e:2:0
-Main General Program
-p:GLOBECAST,f:40
-3c11:00820000:2260:fbff:2:0
-B-Side
-p:SkyItalia,f:40
-0012:00820000:300c:013e:2:0
-Turizm Radyosu
-p:RRSat,f:40
-0012:00820000:25e4:02be:2:0
-ESC R1
-p:ARABSAT,f:40
-3c12:00820000:2260:fbff:2:0
-Jazz & Fusion
-p:SkyItalia,f:40
-0013:00820000:300c:013e:2:0
-VOT World
-p:RRSat,f:40
-0013:00820000:25e4:02be:2:0
-RADIO BAGHDAD
-p:ARABSAT,f:40
-0c13:00820000:20d0:013e:2:0
-Sana'a radio
-p:GlobeCast,f:40
-3c13:00820000:2260:fbff:2:0
-Jazz Gold
-p:SkyItalia,f:40
-0014:00820000:300c:013e:2:0
-TSR Turkce
-p:RRSat,f:40
-0c14:00820000:20d0:013e:2:0
-Aden Radio
-p:GlobeCast,f:40
-3c14:00820000:2260:fbff:2:0
-Soul Train
-p:SkyItalia,f:40
-0015:00822faf:0001:0001:2:0
-Rang A Rang radio
-p:RRSat,f:40
-0015:00820000:300c:013e:2:0
-Radyo-2 (TRT FM)
-p:RRSat,f:40
-3c15:00820000:2260:fbff:2:0
-Extrabeat
-p:SkyItalia,f:40
-1216:00820000:2b5c:013e:2:0
-RDPi Radio
-p:H,f:40
-3c16:00820000:2260:fbff:2:0
-Sinfonia
-p:SkyItalia,f:40
-0017:00820000:25e4:02be:2:0
-SAUDI1 R2
-p:ARABSAT,f:40
-2017:00820000:24b8:013e:2:0
-WRN Russkij
-p:Globecast,f:40
-3c17:00820000:2260:fbff:2:0
-Opera
-p:SkyItalia,f:40
-0018:00820000:25e4:02be:2:0
-KUWAIT R2
-p:ARABSAT,f:40
-0c18:00820000:20d0:013e:2:0
-RADIO SAN
-p:GLOBECAST,f:40
-1d18:00820000:2fa8:013e:2:0
-Suryan Radio
-p:Globecast UK,f:40
-2018:00820000:24b8:013e:2:0
-WRN English
-p:Globecast,f:40
-2318:00820000:238c:013e:2:0
-El Shark El Awsat
-p:ERTU,f:40
-3918:00820000:32c8:013e:2:0
-BBC WS Persian Radio
-p:Globecast UK,f:40
-3c18:00820000:2260:fbff:2:0
-Stardust
-p:SkyItalia,f:40
-0019:00820000:300c:013e:2:0
-ILO Romano Radio
-p:RRSat,f:40
-0019:00820000:00c9:0006:2:0
-Voice
-p:,C:0e00,f:40
-1d19:00820000:2fa8:013e:2:0
-IRN
-p:Globecast NE,f:40
-2019:00820000:24b8:013e:2:0
-WRN Deutsch
-p:Globecast,f:40
-2319:00820000:238c:013e:2:0
-Al moagehat
-p:ERTU,f:40
-3c19:00820000:2260:fbff:2:0
-Baby Mix
-p:SkyItalia,f:40
-001a:00820000:300c:013e:2:0
-Radio Tondar
-p:RRSat,f:40
-001a:00820000:25e4:02be:2:0
-SUDAN R2
-p:ARABSAT,f:40
-0e1a:00820000:3c8c:013e:2:0
-DW-FM01
-p:T-Systems,f:40
-201a:00820000:24b8:013e:2:0
-WRN Francais
-p:Globecast,f:40
-3c1a:00820000:2260:fbff:2:0
-Disc Joker
-p:SkyItalia,f:40
-001b:00820000:25e4:02be:2:0
-OMAN R2
-p:ARABSAT,f:40
-121b:00820000:2b5c:013e:2:0
-Radio A1
-p:BT,f:40
-201b:00820000:24b8:013e:2:0
-GBTS2
-p:Globecast,f:40
-291b:00820000:1edc:0071:2:0
-RMF FM
-p:Cyfrowy Polsat,f:40
-3b1b:00820000:0578:013e:2:0
-R1
-p:ITI,f:40
-001c:00820000:25e4:02be:2:0
-ESC R2
-p:ARABSAT,f:40
-201c:00820000:24b8:013e:2:0
-RCI 3
-p:Globecast,f:40
-3b1c:00820000:0578:013e:2:0
-R2
-p:ITI,f:40
-001d:00820000:25e4:02be:2:0
-AL-IRAQIA QURAN
-p:ARABSAT,f:40
-0c1d:00820000:2e18:00b0:2:0
-Europe1
-p:,f:40
-201d:00820000:24b8:013e:2:0
-Family Europe
-p:Globecast,f:40
-291d:00820000:1edc:0071:2:0
-RADIO PLUS
-p:Cyfrowy Polsat,f:40
-001e:00820000:1250:0064:2:0
-New Life Radio Russia
-p:,f:40
-0c1e:00820000:2e18:00b0:2:0
-Virgin Radio
-p:,f:40
-201e:00820000:24b8:013e:2:0
-RCI 2
-p:Globecast,f:40
-291e:00820000:1edc:0071:2:0
-RMF Classic
-p:Cyfrowy Polsat,f:40
-001f:00820000:300c:013e:2:0
-Nawa Kurd Radio
-p:RRSat,f:40
-0c1f:00820000:2e18:00b0:2:0
-RFM
-p:,f:40
-201f:00820000:24b8:013e:2:0
-RCI 1
-p:Globecast,f:40
-291f:00820000:1edc:0071:2:0
-Radio Polonia
-p:Cyfrowy Polsat,f:40
-2020:00820000:24b8:013e:2:0
-RTE
-p:Globecast,f:40
-2920:00820000:1edc:0071:2:0
-Jedynka - PR
-p:Cyfrowy Polsat,f:40
-0021:00820000:00c9:0006:2:0
-UI Split/Voice
-p:,C:0e00,f:40
-0c21:00820000:2e18:00b0:2:0
-RTL
-p:,f:40
-2021:00820000:24b8:013e:2:0
-IBC TAMIL RADIO
-p:Globecast,f:40
-2921:00820000:1edc:0071:2:0
-Trójka - PR
-p:Cyfrowy Polsat,f:40
-0022:00820000:00c9:0006:2:0
-SMPTE Time Code
-p:,C:0e00,f:40
-2022:00820000:24b8:013e:2:0
-Sedayelran
-p:Globecast,f:40
-2922:00820000:1edc:0071:2:0
-Radio ZET
-p:Cyfrowy Polsat,f:40
-0023:00820000:1250:0064:2:0
-London Tamil Radio
-p:,f:40
-0c23:00820000:2e18:00b0:2:0
-Radio Classique
-p:,f:40
-2023:00820000:24b8:013e:2:0
-PRA Radio
-p:Globecast,f:40
-0024:00820000:1250:0064:2:0
-European Radio for Belarus
-p:,f:40
-0e24:00820000:3c8c:013e:2:0
-DW-FM02
-p:T-Systems,f:40
-2024:00820000:24b8:013e:2:0
-The Voice
-p:Globecast,f:40
-0025:00820000:1250:0064:2:0
-Tamil ITR France
-p:,f:40
-0025:00820000:25e4:02be:2:0
-OMAN R3
-p:ARABSAT,f:40
-0c25:00820000:2e18:00b0:2:0
-Fun Radio
-p:,f:40
-2025:00820000:24b8:013e:2:0
-GBTS1
-p:Globecast,f:40
-0026:00820000:300c:013e:2:0
-Glas Drin BiH
-p:RRSat,f:40
-0026:00820000:1250:0064:2:0
-TAMIL RADIO TIR
-p:,f:40
-0026:00820000:25e4:02be:2:0
-ESC R3
-p:ARABSAT,f:40
-0c26:00820000:2e18:00b0:2:0
-RTL2
-p:,f:40
-2026:00820000:24b8:013e:2:0
-WRN Eng AAP
-p:Globecast,f:40
-0027:00820000:300c:013e:2:0
-R.jamawar_KSDP
-p:RRSat,f:40
-2027:00820000:24b8:013e:2:0
-Radio New Hope
-p:Globecast,f:40
-0028:00820000:300c:013e:2:0
-Thuthi FM-Tamil
-p:,f:40
-0a28:00820000:3d54:013e:2:0
-Era 1
-p:,f:40
-2028:00820000:24b8:013e:2:0
-PEC 3 RRI 3
-p:Globecast,f:40
-2029:00820000:24b8:013e:2:0
-Family Int 1
-p:Globecast,f:40
-202a:00820000:24b8:013e:2:0
-Family Int 2
-p:Globecast,f:40
-002b:00820000:1250:0064:2:0
-Tamil Radio EU
-p:,f:40
-1c2b:00820000:1c20:013e:2:0
-MR1-Kossuth
-p:AH-EDP,f:40
-202b:00820000:24b8:013e:2:0
-VTCSW1
-p:Globecast,f:40
-1c2c:00820000:1c20:013e:2:0
-MR2-Petofi
-p:AH-EDP,f:40
-202c:00820000:24b8:013e:2:0
-AWR Radio 128Kbit
-p:Globecast,f:40
-1c2d:00820000:1c20:013e:2:0
-R.Citta Futura
-p:AH-EDP,f:40
-202d:00820000:24b8:013e:2:0
-YLESAT 1
-p:Globecast,f:40
-0e2e:00820000:3c8c:013e:2:0
-DW-FM03
-p:T-Systems,f:40
-1c2e:00820000:1c20:013e:2:0
-ReteSport
-p:AH-EDP,f:40
-202e:00820000:24b8:013e:2:0
-YLESAT 2
-p:Globecast,f:40
-1c2f:00820000:1c20:013e:2:0
-Radio 6
-p:AH-EDP,f:40
-202f:00820000:24b8:013e:2:0
-GBTS3
-p:Globecast,f:40
-292f:00820000:1edc:0071:2:0
-RMF MAXXX
-p:Cyfrowy Polsat,f:40
-0030:00820000:1250:0064:2:0
-R.Kurdistan
-p:,f:40
-1c30:00820000:1c20:013e:2:0
-Ecoradio
-p:AH-EDP,f:40
-2030:00820000:24b8:013e:2:0
-WRN Sawt Al Alam
-p:Globecast,f:40
-0031:00820000:1250:0064:2:0
-RDK DUHOK
-p:,f:40
-0e31:00820000:0708:00c8:2:0
-VIRGIN RADIO
-p:M-Three satcom,f:40
-2031:00820000:24b8:013e:2:0
-WRN Events
-p:Globecast,f:40
-0032:00820000:1250:0064:2:0
-London TBC
-p:,f:40
-0032:00820000:25e4:02be:2:0
-JORDAN R1
-p:ARABSAT,f:40
-0e32:00820000:0708:00c8:2:0
-Global-Mir
-p:M-Three satcom,f:40
-1c32:00820000:1c20:013e:2:0
-R.Tunisie Culture
-p:AH-EDP,f:40
-0e33:00820000:0708:00c8:2:0
-RADIO CUORE
-p:M-Three satcom,f:40
-1c33:00820000:1c20:013e:2:0
-MR4/MR5
-p:AH-EDP,f:40
-2533:00820000:13ef:013e:2:0
-EDTV RADIO 1
-p:DU,f:40
-0e34:00820000:0708:00c8:2:0
-R.BuonConsiglio
-p:M-Three satcom,f:40
-2534:00820000:13ef:013e:2:0
-EDTV RADIO 2
-p:DU,f:40
-0035:00822faf:0001:0001:2:0
-VOV Radio
-p:,f:40
-0135:00820000:157c:013e:2:0
-Love Radio
-p:NetMed,f:40
-0e35:00820000:0708:00c8:2:0
-RADIO CUORE DUE
-p:M-Three satcom,f:40
-0036:00822faf:0001:0001:2:0
-neo zwei
-p:RRSat,f:40
-0136:0082afc1:0065:0001:2:0
-VOA Urdu Radio 310
-p:,f:40
-0136:00820000:157c:013e:2:0
-Greek Church
-p:NetMed,f:40
-0e36:00820000:0708:00c8:2:0
-KISS KISS RADIO
-p:M-Three satcom,f:40
-0137:00820000:157c:013e:2:0
-Skai Radio
-p:NetMed,f:40
-0e37:00820000:0708:00c8:2:0
-Millennium Radio
-p:M-Three satcom,f:40
-0138:00820000:157c:013e:2:0
-Melodi Radio
-p:NetMed,f:40
-0e38:00820000:0708:00c8:2:0
-R.S.F. inBlu
-p:M-Three satcom,f:40
-0e38:00820000:3c8c:013e:2:0
-DW-FM04
-p:T-Systems,f:40
-0139:00820000:157c:013e:2:0
-RR3
-p:NetMed,f:40
-0e39:00820000:0708:00c8:2:0
-LifeGate
-p:M-Three satcom,f:40
-013a:00820000:157c:013e:2:0
-RR1
-p:NetMed,f:40
-0e3a:00820000:0708:00c8:2:0
-Radio Padre Pio
-p:M-Three satcom,f:40
-0e3b:00820000:0708:00c8:2:0
-Radio Torino Intl.
-p:M-Three satcom,f:40
-0e3c:00820000:0708:00c8:2:0
-Radio 24
-p:M-Three satcom,f:40
-0e3d:00820000:0708:00c8:2:0
-RADIO RELAX
-p:M-Three satcom,f:40
-0e3e:00820000:0708:00c8:2:0
-R101
-p:M-Three satcom,f:40
-0e3f:00820000:0708:00c8:2:0
-ROCK FM
-p:M-Three satcom,f:40
-0e40:00820000:0708:00c8:2:0
-RADIO KOLBE
-p:M-Three satcom,f:40
-0e41:00820000:0708:00c8:2:0
-RADIO GYE NYAME
-p:M-Three satcom,f:40
-0042:00822faf:0001:0001:2:0
-Overcomer Radio
-p:RRSat,f:40
-0e42:00820000:0708:00c8:2:0
-DISCORADIO
-p:M-Three satcom,f:40
-0e42:00820000:3c8c:013e:2:0
-DW-M
-p:T-Systems,f:40
-2143:00820000:3070:013e:2:0
-FD Leggera
-p:Rai,f:40
-3c43:00820000:0578:013e:2:0
-MusicC. Klasyka
-p:Harmonic,f:40
-3c44:00820000:0578:013e:2:0
-Music Choice Pop
-p:Harmonic,f:40
-3c45:00820000:0578:013e:2:0
-Music Ch. Dance
-p:Harmonic,f:40
-0e46:00820000:3c8c:013e:2:0
-DW-FM06
-p:T-Systems,f:40
-3c46:00820000:0578:013e:2:0
-Music Ch. Urban
-p:Harmonic,f:40
-0047:00822faf:0001:0001:2:0
-Christian Voice
-p:RRSat,f:40
-3c47:00820000:0578:013e:2:0
-Music Ch. Swiat
-p:Harmonic,f:40
-0048:00822faf:0001:0001:2:0
-Hornafrik Somalia
-p:RRSat,f:40
-3c48:00820000:0578:013e:2:0
-Music Ch. Rock
-p:Harmonic,f:40
-3c49:00820000:0578:013e:2:0
-Music Ch. Oldies
-p:Harmonic,f:40
-0e4a:00820000:3c8c:013e:2:0
-DW-FM07
-p:T-Systems,f:40
-3c4a:00820000:0578:013e:2:0
-Music Choice 1
-p:Harmonic,f:40
-004b:00822faf:0001:0001:2:0
-Music Box Radio
-p:RRSat,f:40
-3c4b:00820000:0578:013e:2:0
-Music Choice 2
-p:Harmonic,f:40
-3c4c:00820000:0578:013e:2:0
-Music Choice 3
-p:Harmonic,f:40
-3c4d:00820000:0578:013e:2:0
-Music Choice 4
-p:Harmonic,f:40
-0e4e:00820000:3c8c:013e:2:0
-DW-FEED1
-p:T-Systems,f:40
-3c4e:00820000:0578:013e:2:0
-Music Choice 5
-p:Harmonic,f:40
-3c4f:00820000:0578:013e:2:0
-Music Choice 6
-p:Harmonic,f:40
-0050:00822faf:0001:0001:2:0
-3ABN Radio
-p:RRSat,f:40
-3c50:00820000:0578:013e:2:0
-Music Choice 7
-p:Harmonic,f:40
-3c51:00820000:0578:013e:2:0
-CYFRA+ GRY
-p:Harmonic,f:40
-0052:00822faf:0001:0001:2:0
-TGN Radio
-p:RRSat,f:40
-1c52:00820000:1c20:013e:2:0
-R.Tunisie Nationale
-p:AH-EDP,f:40
-3c52:00820000:0578:013e:2:0
-CYFRA+ GRY2
-p:Harmonic,f:40
-1c53:00820000:1c20:013e:2:0
-R.Tunisie Internationale
-p:AH-EDP,f:40
-3653:00820000:1388:013e:2:0
-BBC English (Europe)
-p:BBC World Service,f:40
-3c53:00820000:0578:013e:2:0
-INFO+
-p:Harmonic,f:40
-1154:00820000:2af8:013e:2:0
-tech 3
-p:CYFRA +,f:40
-1c54:00820000:1c20:013e:2:0
-Radio Spazio Aperto
-p:AH-EDP,f:40
-3654:00820000:1388:013e:2:0
-BBC English Mid-East
-p:BBC World Service,f:40
-0e56:00820000:3c8c:013e:2:0
-RNW-4
-p:Deutsche Welle,f:40
-1c56:00820000:1c20:013e:2:0
-Radio Azzurra
-p:AH-EDP,f:40
-3656:00820000:1388:013e:2:0
-BBC English News
-p:BBC World Service,f:40
-1d59:00820000:2f44:013e:2:0
-CY Feed
-p:NetMed,f:40
-365c:00820000:1388:013e:2:0
-BBC Arabic
-p:BBC World Service,f:40
-0960:00820000:3d54:013e:2:0
-Era Sport
-p:,f:40
-0061:00820000:2648:013e:2:0
-RADIO MOHAMMED VI
-p:PRVDR,f:40
-3661:00820000:1388:013e:2:0
-BBC Albanian
-p:BBC World Service,f:40
-3663:00820000:1388:013e:2:0
-BBC Azeri
-p:BBC World Service,f:40
-0065:0082afc1:0065:0001:2:0
-IBB VOA RFERL Radio 101
-p:,f:40
-0065:00820000:0578:013e:2:0
-Makedonsko Radio
-p:Harmonic,f:40
-0066:0082afc1:0065:0001:2:0
-IBB VOA RFERL Radio 102
-p:,f:40
-0066:00820000:0578:013e:2:0
-Bahai Radio
-p:Harmonic,f:40
-0067:00820000:1250:0064:2:0
-RUSSIAN RADIO
-p:,f:40
-0067:0082afc1:0065:0001:2:0
-IBB VOA RFERL Radio 103
-p:,f:40
-0067:00820000:0578:013e:2:0
-Radio Mojdeh
-p:Harmonic,f:40
-2167:00820000:3070:013e:2:0
-Multilingue 1
-p:RAI,f:40
-0068:0082afc1:0065:0001:2:0
-VOA Music Mix 104
-p:,f:40
-0068:00820000:0578:013e:2:0
-TOP 3 radio belgrad
-p:Harmonic,f:40
-1268:00820000:3458:013e:2:0
-R.ONDA D'URTO
-p:T-Systems/MTI,f:40
-2168:00820000:3070:013e:2:0
-Multilingue 2
-p:RAI,f:40
-0069:0082afc1:0065:0001:2:0
-IBB VOA RFERL Radio 105
-p:,f:40
-2169:00820000:3070:013e:2:0
-SatelRadio
-p:RAI,f:40
-006a:0082afc1:0065:0001:2:0
-IBB VOA RFERL Radio 106
-p:,f:40
-216a:00820000:3070:013e:2:0
-Radio OM unica
-p:RAI,f:40
-006b:0082afc1:0065:0001:2:0
-IBB VOA Radio 107
-p:,f:40
-216b:00820000:3070:013e:2:0
-Radio2 mono
-p:RAI,f:40
-006c:0082afc1:0065:0001:2:0
-IBB VOA RFERL Radio 108
-p:,f:40
-016c:00820000:1c84:013e:2:0
-ERA1
-p:NetMed,f:40
-216c:00820000:3070:013e:2:0
-Radio3 mono
-p:RAI,f:40
-226c:00820000:238c:013e:2:0
-Chaine 1
-p:TDA,f:40
-006d:0082afc1:0065:0001:2:0
-IBB VOA RFERL Radio 109
-p:,f:40
-016d:00820000:1c84:013e:2:0
-ERA2
-p:NetMed,f:40
-226d:00820000:238c:013e:2:0
-Chaine 2
-p:TDA,f:40
-006e:0082afc1:0065:0001:2:0
-IBB VOA RFERL Radio 110
-p:,f:40
-016e:00820000:1c84:013e:2:0
-ERA SPORT
-p:NetMed,f:40
-226e:00820000:238c:013e:2:0
-Chaine 3
-p:SkyGate,f:40
-296e:00820000:22c4:013e:2:0
-DENGE RADIO
-p:Belgacom,f:40
-006f:0082afc1:0065:0001:2:0
-IBB VOA RFERL Radio 111
-p:,f:40
-2070:00820000:2328:013e:2:0
-VOICE OF CRO
-p:OIV Zagreb,f:40
-2970:00820000:22c4:013e:2:0
-RADIO 2M MAROC
-p:BELGACOM,f:40
-0071:0082afc1:0065:0001:2:0
-IBB VOA RFERL Radio 113
-p:,f:40
-2071:00820000:2328:013e:2:0
-HRT-HR1
-p:OIV Zagreb,f:40
-0072:0082afc1:0065:0001:2:0
-Sawa Levant Radio 114
-p:,f:40
-2072:00820000:2328:013e:2:0
-HRT-HR2
-p:OIV Zagreb,f:40
-2972:00820000:22c4:013e:2:0
-RVi 1 (VRT)
-p:BELGACOM,f:40
-0073:0082afc1:0065:0001:2:0
-Sawa Iraq Radio 115
-p:,f:40
-2073:00820000:2328:013e:2:0
-HRT-HR3
-p:OIV Zagreb,f:40
-2973:00820000:22c4:013e:2:0
-RVi 2 (VRT)
-p:BELGACOM,f:40
-0074:0082afc1:0065:0001:2:0
-Sawa Egypt Radio 116
-p:,f:40
-2974:00820000:22c4:013e:2:0
-RADIO 74
-p:BELGACOM,f:40
-0075:0082afc1:0065:0001:2:0
-Sawa Gulf Radio 117
-p:,f:40
-0076:0082afc1:0065:0001:2:0
-Sawa N. Africa Radio 118
-p:,f:40
-0077:0082afc1:0065:0001:2:0
-Farda Radio 119
-p:,f:40
-3677:00820000:1388:013e:2:0
-BBC Persian
-p:BBC World Service,f:40
-0079:0082afc1:0065:0001:2:0
-IBB VOA RFERL Radio 121
-p:,f:40
-2979:00820000:22c4:013e:2:0
-ROUGE FM
-p:BSS_LDK,f:40
-007a:0082afc1:0065:0001:2:0
-Sawa Sudan Radio 122
-p:,f:40
-297a:00820000:22c4:013e:2:0
-ALMAHABA
-p:BSS_LDK,f:40
-007b:0082afc1:0065:0001:2:0
-Sawa Lebanon Radio 123
-p:,f:40
-017b:00820000:1c84:013e:2:0
-ERA3
-p:NetMed,f:40
-297b:00820000:22c4:013e:2:0
-TOP TWO
-p:BSS_LDK,f:40
-367c:00820000:1388:013e:2:0
-BBC Russian
-p:BBC World Service,f:40
-367e:00820000:1388:013e:2:0
-BBC Romanian
-p:BBC World Service,f:40
-127f:00820000:3458:013e:2:0
-Radio Standa
-p:T-Systems/MTI,f:40
-207f:00820000:2328:013e:2:0
-OTVORENI
-p:OIV Zagreb,f:40
-227f:00820000:238c:013e:2:0
-RADIO GENIUS
-p:MultiProgram,f:40
-1280:00820000:3458:013e:2:0
-R.Di per Di
-p:T-Systems/MTI,f:40
-2080:00820000:2328:013e:2:0
-MEDIASERVIS
-p:OIV Zagreb,f:40
-0081:00822faf:0001:0001:2:0
-SWISS MUSIC RADIO
-p:RRSat,f:40
-1281:00820000:3458:013e:2:0
-McDonalds
-p:T-Systems/MTI,f:40
-3681:00820000:1388:013e:2:0
-BBC Balkans
-p:BBC World Service,f:40
-1282:00820000:3458:013e:2:0
-Radio Expert
-p:T-Systems/MTI,f:40
-1283:00820000:3458:013e:2:0
-Radio Billa
-p:T-Systems/MTI,f:40
-1d83:00820000:2f44:013e:2:0
-Radio Gold
-p:NetMed,f:40
-0c84:00820000:1f40:013e:2:0
-SLO-RA1-INF
-p:RTV Slovenija,f:40
-0c84:00820000:2bc0:00b0:2:0
-Sud Radio
-p:,f:40
-1284:00820000:3458:013e:2:0
-RADIO ZAINET
-p:T-Systems/MTI,f:40
-1d84:00820000:2f44:013e:2:0
-REAL FM
-p:NetMed,f:40
-0c85:00820000:1f40:013e:2:0
-SLO-RA2
-p:RTV Slovenija,f:40
-3585:00820000:1388:013e:2:0
-Zagros Radio
-p:BT,f:40
-0c86:00820000:1f40:013e:2:0
-SLO-RA3
-p:RTV Slovenija,f:40
-1286:00820000:3458:013e:2:0
-Radio Intesa
-p:T-Systems/MTI,f:40
-0c88:00820000:2e18:00b0:2:0
-Alouette
-p:,f:40
-0c88:00820000:1f40:013e:2:0
-RADIO SI
-p:RTV Slovenija,f:40
-1d88:00820000:1fa4:013e:2:0
-Radio Dijla
-p:EUTELSAT,f:40
-0c89:00820000:2ee0:00b0:2:0
-Skyrock
-p:,C:0500,f:40
-208a:00820000:2328:013e:2:0
-Narodni radio
-p:OIV Zagreb,f:40
-208b:00820000:2328:013e:2:0
-RKC
-p:OIV Zagreb,f:40
-368b:00820000:1388:013e:2:0
-BBC Turkish
-p:BBC World Service,f:40
-368e:00820000:1388:013e:2:0
-BBC Ukrainian
-p:BBC World Service,f:40
-0c8f:00820000:1f40:013e:2:0
-CAPODISTRIA
-p:RTVS,f:40
-0c91:00820000:1f40:013e:2:0
-RA.OGNJISCE SI
-p:RTVS,f:40
-1291:00820000:3458:013e:2:0
-RadioSpazioAperto
-p:T-Systems/MTI,f:40
-2091:00820000:2328:013e:2:0
-HKR
-p:OiV Zagreb,f:40
-1d92:00820000:1fa4:013e:2:0
-Radio Azadegan
-p:EUTELSAT,f:40
-3693:00820000:1388:013e:2:0
-BBC Feed 1
-p:BBC WS,f:40
-1294:00820000:3458:013e:2:0
-AfgSalamWatandar
-p:T-Systems/MTI,f:40
-1d94:00820000:2f44:013e:2:0
-SS FM
-p:NetMed,f:40
-2094:00820000:2328:013e:2:0
-R MIR M
-p:OIV Zagreb,f:40
-3694:00820000:1388:013e:2:0
-BBC Feed 2
-p:BBC WS,f:40
-1295:00820000:3458:013e:2:0
-Radio Metro
-p:T-Systems/MTI,f:40
-2095:00820000:2328:013e:2:0
-DALMATIA
-p:OIV Zagreb,f:40
-3695:00820000:1388:013e:2:0
-BBC Feed 3
-p:BBC WS,f:40
-3696:00820000:1388:013e:2:0
-BBC Feed 4
-p:BBC WS,f:40
-3697:00820000:1388:013e:2:0
-BBC Feed 5
-p:BBC WS,f:40
-0898:00820000:3d54:013e:2:0
-Era 2
-p:,f:40
-0c98:00820000:1f40:013e:2:0
-RNW-1
-p:RTV Slovenija,f:40
-3698:00820000:1388:013e:2:0
-BBC Feed 6
-p:BBC WS,f:40
-0399:00820000:2134:013e:2:0
-SRG-DRS 1
-p:Schweizer Radio DRS,f:40
-0c99:00820000:1f40:013e:2:0
-RNW-2
-p:RTV Slovenija,f:40
-039a:00820000:2134:013e:2:0
-SRG-DRS 2
-p:Schweizer Radio DRS,f:40
-039b:00820000:2134:013e:2:0
-SRG-DRS 3
-p:Schweizer Radio DRS,f:40
-039c:00820000:2134:013e:2:0
-SRG-DRS Virus
-p:Schweizer Radio DRS,f:40
-299c:00820000:22c4:013e:2:0
-Eviva Radio
-p:BSS_LDK,f:40
-039d:00820000:2134:013e:2:0
-SRG-DRS Musikwelle
-p:Schweizer Radio DRS,f:40
-299d:00820000:22c4:013e:2:0
-TASVIR IRAN
-p:Belgacom,f:40
-039e:00820000:2134:013e:2:0
-SRG-Rumantsch
-p:Radio Rumantsch,f:40
-209e:00820000:2328:013e:2:0
-PEVEC RADIO
-p:OiV Zagreb,f:40
-29a1:00820000:22c4:013e:2:0
-Radio Zamaneh
-p:Belgacom,f:40
-03a6:00820000:2134:013e:2:0
-SRG-Swiss Classic
-p:Swiss Satellite Radio,f:40
-03a7:00820000:2134:013e:2:0
-SRG-Swiss Pop
-p:Swiss Satellite Radio,f:40
-03a8:00820000:2134:013e:2:0
-SRG-Swiss Jazz
-p:Swiss Satellite Radio,f:40
-03a9:00820000:2134:013e:2:0
-SRG-DRS 4 News
-p:Schweizer Radio DRS,f:40
-37aa:00820000:044c:013e:2:0
-TAMILFMRADIO
-p: ,f:40
-0dad:00820000:2ee0:00b0:2:0
-France Musique
-p:,f:40
-0dae:00820000:2bc0:00b0:2:0
-France Vivace
-p:,f:40
-0daf:00820000:2ee0:00b0:2:0
-FIP
-p:,f:40
-0db0:00820000:2c88:00b0:2:0
-France Inter
-p:,f:40
-00b1:00820000:2648:013e:2:0
-Radio FES
-p:PRVDR,f:40
-0db1:00820000:2c88:00b0:2:0
-France Info
-p:,f:40
-0db2:00820000:2ee0:00b0:2:0
-France Culture
-p:,f:40
-0db3:00820000:2bc0:00b0:2:0
-France Bleu
-p:,f:40
-0db4:00820000:2ee0:00b0:2:0
-Le Mouv
-p:,f:40
-0db6:00820000:3c8c:013e:2:0
-DW01
-p:T-Systems,f:40
-00b7:00820000:1e14:013e:2:0
-Israel 2000
-p:GlobeCast,f:40
-00b8:00820000:1e14:013e:2:0
-RCF
-p:GlobeCast,f:40
-00b9:00820000:1e14:013e:2:0
-Dan TAMIL ALAI Radio
-p:GlobeCast,f:40
-00ba:00820000:1e14:013e:2:0
-FRANCE MAGHREB
-p:Globecast,f:40
-00bb:00820000:1e14:013e:2:0
-RADIO ORIENT
-p:GlobeCast,f:40
-20bb:00820000:2328:013e:2:0
-RADIO MARIJA
-p:OIV Zagreb,f:40
-20bc:00820000:2328:013e:2:0
-Radio Banovina
-p:OIV Zagreb,f:40
-0dc0:00820000:3c8c:013e:2:0
-DW02
-p:T-Systems,f:40
-06c3:00820000:3138:013e:2:0
-Radio Berbere
-p:Globecast,f:40
-09c4:00820000:3d54:013e:2:0
-Era 5
-p:,f:40
-1fc8:00820000:2454:013e:2:0
-RD1_Radio_ARMENIA
-p:GlobeCast,f:40
-36cb:00820000:06a4:013e:2:0
-SSR-La 1ere
-p:Radio Suisse Romande,f:40
-36cc:00820000:06a4:013e:2:0
-SSR-Espace 2
-p:Radio Suisse Romande,f:40
-1bcd:00820000:17d4:013e:2:0
-Mad Radio
-p:NetMed,f:40
-36cd:00820000:06a4:013e:2:0
-SSR-Couleur3
-p:Radio Suisse Romande,f:40
-36ce:00820000:06a4:013e:2:0
-SSR-Option Musique
-p:Radio Suisse Romande,f:40
-36cf:00820000:06a4:013e:2:0
-SSR-Rete Uno
-p:Radio svizzera di lingua italiana,f:40
-36d0:00820000:06a4:013e:2:0
-SSR-Rete Due
-p:Radio svizzera di lingua italiana,f:40
-34d1:00820000:3c28:013e:2:0
-NRJ
-p:CSAT,f:40
-36d1:00820000:06a4:013e:2:0
-SSR-Rete Tre
-p:Radio svizzera di lingua italiana,f:40
-38d1:00820000:0320:fbff:2:0
-Radio DeeJay
-p:SkyItalia,f:40
-34d2:00820000:3c28:013e:2:0
-Rire & Chansons
-p:CSAT,f:40
-38d2:00820000:0320:fbff:2:0
-M2O
-p:SkyItalia,f:40
-34d3:00820000:3c28:013e:2:0
-Nostalgie
-p:CSAT,f:40
-38d3:00820000:0320:fbff:2:0
-Radio 105
-p:SkyItalia,f:40
-0dd4:00820000:3c8c:013e:2:0
-DW04
-p:T-Systems,f:40
-34d4:00820000:3c28:013e:2:0
-Cherie FM
-p:CSAT,f:40
-38d4:00820000:0320:fbff:2:0
-Virgin Radio
-p:SkyItalia,f:40
-34d5:00820000:3c28:013e:2:0
-radio Walfadjri
-p:GlobeCast,C:0500,f:40
-38d5:00820000:0320:fbff:2:0
-Radio Capital
-p:SkyItalia,f:40
-36d6:00820000:06a4:013e:2:0
-SSR-WRS
-p:Radio Suisse Romande,f:40
-38d6:00820000:0320:fbff:2:0
-Kiss Kiss
-p:SkyItalia,f:40
-38d7:00820000:0320:fbff:2:0
-RTL 102.5
-p:SkyItalia,f:40
-38d8:00820000:0320:fbff:2:0
-R 101
-p:SkyItalia,f:40
-38d9:00820000:0320:fbff:2:0
-Radio Italia
-p:SkyItalia,f:40
-29da:00820000:3cf0:013e:2:0
-ARTE_Radio.com
-p:GlobeCast,f:40
-38da:00820000:0320:fbff:2:0
-Radio 24
-p:SkyItalia,f:40
-38db:00820000:0320:fbff:2:0
-RDS
-p:SkyItalia,f:40
-02dc:00820000:1b58:013e:2:0
-R.Maria
-p:Telespazio,f:40
-38dc:00820000:0320:fbff:2:0
-Radio Montecarlo
-p:SkyItalia,f:40
-02dd:00820000:1b58:013e:2:0
-Vietnamese PR
-p:Telespazio,f:40
-02de:00820000:1b58:013e:2:0
-Radio Padania IP
-p:Telespazio,f:40
-0dde:00820000:3c8c:013e:2:0
-DW05
-p:T-Systems,f:40
-39de:00820000:1fa4:013e:2:0
-GRAND
-p:NTH ,f:40
-02e0:00820000:1b58:013e:2:0
-RDS
-p:Telespazio,f:40
-34e0:00820000:3c28:013e:2:0
-Test Radio Globo
-p:CSAT,C:1800,f:40
-02e1:00820000:1b58:013e:2:0
-DimSuono Roma
-p:Telespazio,f:40
-02e2:00820000:1b58:013e:2:0
-ANNI 60
-p:Telespazio,f:40
-39e2:00820000:1fa4:013e:2:0
-RAM RAJ RADIO
-p:NTH ,f:40
-39e3:00820000:1fa4:013e:2:0
-Lijepa nasa (LINA)
-p:NTH ,f:40
-02e4:00820000:1b58:013e:2:0
-R.Italia S.m.i.
-p:Telespazio,f:40
-39e4:00820000:1fa4:013e:2:0
-MB MITIC BILJANA
-p:NTH ,f:40
-39e5:00820000:1fa4:013e:2:0
-VULKAN radio
-p:NTH ,f:40
-39e6:00820000:1fa4:013e:2:0
-RADIO FLES
-p:NTH ,f:40
-02e7:00820000:1b58:013e:2:0
-Popolare
-p:Telespazio,f:40
-39e7:00820000:1fa4:013e:2:0
-Radio SRNA-BOSANKA
-p:NTH ,f:40
-0de8:00820000:3c8c:013e:2:0
-DW06
-p:T-Systems,f:40
-12e8:00820000:2e7c:013e:2:0
-CYFRA+ RADIO
-p:CYFRA +,f:40
-39e8:00820000:1fa4:013e:2:0
-Radio SvetPLUS
-p:NTH ,f:40
-3be8:00820000:2260:fbff:2:0
-50 songs
-p:SkyItalia,f:40
-0ce9:00820000:2ee0:00b0:2:0
-Radio Courtoisie
-p:,f:40
-3be9:00820000:2260:fbff:2:0
-Yesterjay '80
-p:SkyItalia,f:40
-0cea:00820000:2c88:00b0:2:0
-Radio FG
-p:,f:40
-12ea:00820000:2e7c:013e:2:0
-CYFRA+ RMF
-p:CYFRA +,f:40
-39ea:00820000:1fa4:013e:2:0
-TREF Radio
-p:NTH ,f:40
-3bea:00820000:2260:fbff:2:0
-Yesterjay '90
-p:SkyItalia,f:40
-02eb:00820000:1b58:013e:2:0
-R-Radio
-p:Telespazio,f:40
-39eb:00820000:1fa4:013e:2:0
-YU PLANET BEC
-p:NTH ,f:40
-3beb:00820000:2260:fbff:2:0
-Hit Italia
-p:SkyItalia,f:40
-12ec:00820000:2e7c:013e:2:0
-CYFRA+ PR
-p:CYFRA +,f:40
-1cec:00820000:2fa8:013e:2:0
-Radio Capri
-p:Globecast UK,f:40
-3bec:00820000:2260:fbff:2:0
-ItalianVintage
-p:SkyItalia,f:40
-02ed:00820000:1b58:013e:2:0
-Radio Eurospin
-p:Telespazio,f:40
-10ed:00820000:03e8:013e:2:0
-test_radio
-p:TVN Grupa ITI,f:40
-39ed:00820000:1fa4:013e:2:0
-PEIRAIKI EKKLISIA
-p:OTE,f:40
-02ee:00820000:1b58:013e:2:0
-R.Speranza
-p:Telespazio,f:40
-0cef:00820000:1518:013e:2:0
-RADIOUNO
-p:RAI,f:40
-0cf0:00820000:1518:013e:2:0
-RADIODUE
-p:RAI,f:40
-0cf1:00820000:1518:013e:2:0
-RADIOTRE
-p:RAI,f:40
-02f2:00820000:1b58:013e:2:0
-R.KOLBE-SAT
-p:Telespazio,f:40
-0cf2:00820000:1450:013e:2:0
-FD leggera
-p:RAI,f:40
-0cf3:00820000:1518:013e:2:0
-FD auditorium
-p:RAI,f:40
-02f4:00820000:1b58:013e:2:0
-Radio ZETA
-p:Telespazio,f:40
-0cf4:00820000:1518:013e:2:0
-BLUSAT2000
-p:RAI,f:40
-0cf5:00820000:1518:013e:2:0
-GR Parlam.
-p:RAI,f:40
-0cf6:00820000:1518:013e:2:0
-Isoradio
-p:RAI,f:40
-0cf7:00820000:1450:013e:2:0
-Notturno italiano
-p:RAI,f:40
-02f8:00820000:1b58:013e:2:0
-RADIO PADANIA
-p:Telespazio,f:40
-0cf8:00820000:1518:013e:2:0
-Radio Vaticana
-p:RAI,f:40
-02f9:00820000:1b58:013e:2:0
-Radio Radicale
-p:Telespazio,f:40
-08fc:00820000:3d54:013e:2:0
-Era 3
-p:,f:40
-0dfc:00820000:3c8c:013e:2:0
-DW08
-p:T-Systems,f:40
-0cfd:00820000:1518:013e:2:0
-DAB
-p:Rai,f:40
-0dfd:00820000:14b4:013e:2:0
-Radio 1
-p:RTVE,f:40
-0dfe:00820000:14b4:013e:2:0
-Radio Clasica
-p:RTVE,f:40
-29fe:00820000:3cf0:013e:2:0
-RTL_102.5
-p:GlobeCast_Italia,f:40
-3bfe:00820000:2260:fbff:2:0
-Capital '70
-p:SkyItalia,f:40
-0dff:00820000:14b4:013e:2:0
-Radio 3
-p:RTVE,f:40
-12ff:00820000:2e7c:013e:2:0
-tech 2
-p:CYFRA +,f:40
-29ff:00820000:3cf0:013e:2:0
-Romania_In_direct
-p:GlobeCast,f:40
-3bff:00820000:2260:fbff:2:0
-Vintage '60
-p:SkyItalia,f:40
-2002:00820000:2454:013e:12:0
-worldsat-o
-p:OpenMux IP Gateway,f:40
-2004:00820000:2454:013e:12:0
-WorldSat
-p:OpenMux IP Gateway,f:40
-0007:00820000:2648:013e:12:0
-MAP SAT
-p:PRVDR,f:40
-281f:00820000:23f0:013f:12:0
-AleniaSpazio
-p:Alenia,f:40
-1c24:00820000:1c20:013e:12:0
-AH-EMP4-DATA
-p:AH-EDP,f:40
-292b:00820000:1edc:0071:12:0
-CP_Download
-p:,f:40
-0e2f:00820000:0708:00c8:12:0
-ENVIATEL
-p:M-Three satcom,f:40
-3b38:00820000:0514:013e:12:0
-pVOD
-p:ITI,f:40
-243d:00820000:23f0:013f:12:0
-WebTv Ch1
-p:OpenMux IP Gateway,f:40
-243e:00820000:23f0:013f:12:0
-WebTv Ch1
-p:OpenMux IP Gateway,f:40
-243f:00820000:23f0:013f:12:0
-WebTv Ch2
-p:OpenMux IP Gateway,f:40
-2744:00820000:23f0:013f:12:0
-CRF-Perugia
-p:CRF-Perugia,f:40
-044e:00820000:20d0:013e:12:0
-POLYCOM
-p:GLOBECAST,f:40
-275d:00820000:23f0:013f:12:0
-CID09000200
-p:Alenia,f:40
-2064:00820000:24b8:013e:12:0
-Quadriga
-p:Globecast,f:40
-126d:00820000:3458:013e:12:0
-NIS_Intesa1
-p:T-Systems/MTI,f:40
-1d77:00820000:2f44:013e:12:0
-IPE 3
-p:???,f:40
-1f7b:00820000:319c:013e:12:0
-Akubis Daten
-p:T-Systems,C:0b00,f:40
-118a:00820000:2af8:013e:12:0
-ST
-p:CYFRA +,f:40
-278f:00820000:23f0:013f:12:0
-skn-92-8
-p:NCS-BBA-Lario-2,f:40
-2898:00820000:23f0:013f:12:0
-CID09004700
-p:PCP-ARPA-TO,f:40
-2bbf:00820000:2454:013e:12:0
-IEPG Data
-p:Skyitalia,f:40
-22c8:00820000:238c:013e:12:0
-HitCast Data 1
-p:OpenMux IP Gateway,f:40
-22ca:00820000:238c:013e:12:0
-Data_01
-p:OpenMux IP Gateway,f:40
-3aca:00820000:0514:013e:12:0
-Upload
-p:test,f:40
-22cb:00820000:238c:013e:12:0
-Data_02
-p:OpenMux IP Gateway,f:40
-21cd:00822a65:2db4:0000:12:0
-EUMETCAST
-p:T-Systems,f:40
-21ce:00822a65:2db4:0000:12:0
-GlobalK-Sat
-p:T-Systems,f:40
-21cf:00822a65:2db4:0000:12:0
-Acentic
-p:T-Systems,f:40
-27e1:00820000:23f0:013f:12:0
-CSF-Viminale
-p:VVF,f:40
-12f7:00820000:2e7c:013e:12:0
-REUTERS RSP
-p:CYFRA +,f:40
-2b0c:00820000:1900:fbff:25:0
-SKY Sport HD 1
-p:SkyItalia,f:40
-2b16:00820000:1900:fbff:25:0
-Next HD
-p:SkyItalia,f:40
-2b17:00820000:1900:fbff:25:0
-SKY Cinema HD
-p:SkyItalia,f:40
-2b18:00820000:1900:fbff:25:0
-NationalGeo HD
-p:SkyItalia,f:40
-2b19:00820000:1900:fbff:25:0
-SKY Sport HD 2
-p:SkyItalia,f:40
-03de:00820000:2134:013e:25:0
-HD suisse
-p:SRG SSR idee suisse,f:40
-240a:00820000:23f0:013f:128:0
-SIMS Signaling
-p:PCP-Campochiaro,f:40
-2315:00820000:238c:013e:128:0
-SKYGATE ERTU
-p:SkyMux,f:40
-231a:00820000:238c:013e:128:0
-SKY MEDIO
-p:SkyMux,f:40
-281a:00820000:23f0:013f:128:0
-SIMS Signaling
-p:Alenia,f:40
-243c:00820000:23f0:013f:128:0
-skygate25
-p:SkyMux,f:40
-2743:00820000:23f0:013f:128:0
-SIMS Signaling
-p:CRF-Perugia,f:40
-2455:00820000:23f0:013f:128:0
-skygate24
-p:SkyMux,f:40
-275c:00820000:23f0:013f:128:0
-SIMS Signaling
-p:Alenia,f:40
-2261:00820000:238c:013e:128:0
-SKYPLEX TXP91
-p:EUTELSAT,f:40
-1162:00820000:2af8:013e:128:0
-EPG
-p:CYFRA +,f:40
-2269:00820000:238c:013e:128:0
-skygateTDA
-p:SkyMux,f:40
-2379:00820000:238c:013e:128:0
-Skygate RTORO
-p:Eutelsat,f:40
-227a:00820000:238c:013e:128:0
-SkygateTDA
-p:Skylogic,f:40
-248a:00820000:23f0:013f:128:0
-SkyPlex CHID 4
-p:Eutelsat,f:40
-238d:00820000:23f0:013f:128:0
-SKYPLEX TXP92
-p:EUTELSAT,f:40
-278e:00820000:23f0:013f:128:0
-SIMS Signaling
-p:NCS-BBA-Lario-2,f:40
-2491:00820000:23f0:013f:128:0
-QAT-DOH-008
-p:Al Jazeera,f:40
-299a:00820000:22c4:013e:128:0
-MOVIEPEAK
-p:Twin Peak,f:40
-249b:00820000:23f0:013f:128:0
-ITA-FOC-17(SKY2)
-p:SkyMux,f:40
-22ac:00820000:238c:013e:128:0
-Skyplex RMB
-p:Eutelsat,f:40
-27b0:00820000:23f0:013f:128:0
-SIMS Signaling
-p:ITA-ROM-043,f:40
-29b5:00820000:22c4:013e:128:0
-StrongDigitalTV
-p:OpenMux,f:40
-29b7:00820000:22c4:013e:128:0
-Allsatcom4
-p:OpenMux,f:40
-29be:00820000:22c4:013e:128:0
-Opentech
-p:OpenMux,f:40
-27c0:00820000:23f0:013f:128:0
-Skyplex Internal
-p:SkyMux,f:40
-29c1:00820000:22c4:013e:128:0
-AllSat.Com
-p:OpenMux,f:40
-22c5:00820000:238c:013e:128:0
-Skyplex 10.1
-p:SkyMux,f:40
-22de:00820000:238c:013e:128:0
-SkygateBLUTV
-p:SkyMux,f:40
-27e0:00820000:23f0:013f:128:0
-SIMS Signaling
-p:Alenia,f:40
-12fe:00820000:2e7c:013e:128:0
-tech
-p:CYFRA +,f:40
-0016:00820000:1edc:0071:129:0
-SCM Download
-p:,f:40
-144f:00820000:05dc:013e:129:0
-5199
-p:CYFRA +,f:40
-00e1:00820000:2e7c:013e:129:0
-PHILIPS DOWNLOAD 1.1
-p:WIZJA 1,f:40
-0e00:00820000:15e0:fbff:130:0
-SKY Sound
-p:SkyItalia,f:40
-3900:00820000:0320:fbff:130:0
-GF Feed3
-p:SkyItalia,f:40
-0e32:00820000:16a8:fbff:130:0
-Prima Fila
-p:SkyItalia,f:40
-0e55:00820000:16a8:fbff:130:0
-Gestione Collegam. Telefonico
-p:SkyItalia,f:40
-38a5:00820000:0320:fbff:130:0
-Modalita' d'Acquisto
-p:SkyItalia,f:40
-2ab6:00820000:1838:fbff:130:0
-iadv appli4
-p:SkyItalia,f:40
-2ab8:00820000:1838:fbff:130:0
-iadv Video
-p:SkyItalia,f:40
-2ab9:00820000:1838:fbff:130:0
-i-Spot Puntoshop
-p:SkyItalia,f:40
-2aba:00820000:1838:fbff:130:0
-i-Spot Nokia Nseries
-p:SkyItalia,f:40
-2abb:00820000:1838:fbff:130:0
-iadv appli3
-p:SkyItalia,f:40
-29bd:00820000:22c4:013e:130:0
-HUMAX DOWNLOAD SVC
-p:HUMAX,f:40
-38be:00820000:0320:fbff:130:0
-GF Feed1
-p:SkyItalia,f:40
-38bf:00820000:0320:fbff:130:0
-SKY Assist active
-p:SkyItalia,f:40
-38c0:00820000:0320:fbff:130:0
-GF Feed2
-p:SkyItalia,f:40
-0dc4:00820000:15e0:fbff:130:0
-Zona Giochi
-p:SkyItalia,f:40
-0dc5:00820000:15e0:fbff:130:0
-Playjam
-p:SkyItalia,f:40
-38cd:00820000:0320:fbff:130:0
-Radio on Sky
-p:SkyItalia,f:40
-1fd1:00820000:189c:fbff:130:0
-SKY PASS
-p:SkyItalia,f:40
-38e2:00820000:0320:fbff:130:0
-BET ON SKY
-p:SkyItalia,f:40
-38e6:00820000:0320:fbff:130:0
-Better
-p:SkyItalia,f:40
-3be7:00820000:2260:fbff:130:0
-Music On SKY
-p:SkyItalia,f:40
-38e8:00820000:0320:fbff:130:0
-SNAI
-p:SkyItalia,f:40
-0ff2:00820000:2580:fbff:130:0
-Zona Bet Test
-p:SkyItalia,f:40
-0dfd:00820000:15e0:fbff:130:0
-SKY Play IT
-p:SkyItalia,f:40
-1003:00820000:2580:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-2006:00820000:189c:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-0e0e:00820000:15e0:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-2e17:00820000:2198:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-251a:00820000:2774:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-0e1c:00820000:0708:00c8:131:0
-XSI
-p:SKY,f:40
-3c1d:00820000:2260:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-2c23:00820000:1a90:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-112e:00820000:2710:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-2d4f:00820000:1a2c:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-3451:00820000:0064:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-2b57:00820000:1900:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-0e70:00820000:16a8:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-2c87:00820000:1644:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-0f89:00820000:251c:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-0dab:00820000:1450:013e:131:0
-download
-p:Rai,f:40
-2db3:00820000:2008:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-2bbf:00820000:19c8:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-2ceb:00820000:170c:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-2af7:00820000:1838:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-38ff:00820000:0320:fbff:131:0
-IEPG Data
-p:SkyItalia,f:40
-1001:00820000:2580:fbff:132:0
-Dl961
-p:SkyItalia,f:40
-1002:00820000:2580:fbff:132:0
-Dl962
-p:SkyItalia,f:40
-0e0c:00820000:15e0:fbff:132:0
-Dl561
-p:SkyItalia,f:40
-0e0d:00820000:15e0:fbff:132:0
-Dl562
-p:SkyItalia,f:40
-2e15:00820000:2198:fbff:132:0
-Dl861
-p:SkyItalia,f:40
-2e16:00820000:2198:fbff:132:0
-Dl862
-p:SkyItalia,f:40
-2518:00820000:2774:fbff:132:0
-Dl1011
-p:SkyItalia,f:40
-2519:00820000:2774:fbff:132:0
-Dl1012
-p:SkyItalia,f:40
-2c21:00820000:1a90:fbff:132:0
-Dl681
-p:SkyItalia,f:40
-2c22:00820000:1a90:fbff:132:0
-Dl682
-p:SkyItalia,f:40
-112c:00820000:2710:fbff:132:0
-Dl1001
-p:SkyItalia,f:40
-112d:00820000:2710:fbff:132:0
-Dl1002
-p:SkyItalia,f:40
-292d:00820000:1edc:0071:132:0
-01 34 01 16
-p:Cyfrowy Polsat,f:40
-062e:00820000:2e18:00b0:132:0
-01 06 04 50
-p:OpenMux,f:40
-062f:00820000:2e18:00b0:132:0
-01 06 01 48
-p:,f:40
-0630:00820000:2e18:00b0:132:0
-01 07 04 50
-p:OpenMux,f:40
-0631:00820000:2e18:00b0:132:0
-01 07 01 48
-p:OpenMux,f:40
-0632:00820000:2e18:00b0:132:0
-01 08 04 50
-p:OpenMux,f:40
-0633:00820000:2e18:00b0:132:0
-01 08 01 48
-p:OpenMux,f:40
-0634:00820000:2e18:00b0:132:0
-01 60 04 65
-p:OpenMux,f:40
-0635:00820000:2e18:00b0:132:0
-01 60 01 65
-p:OpenMux,f:40
-0638:00820000:2e18:00b0:132:0
-01 46 04 65
-p:OpenMux,f:40
-0639:00820000:2e18:00b0:132:0
-01 46 01 65
-p:,f:40
-063a:00820000:2e18:00b0:132:0
-01 03 04 50
-p:OpenMux,f:40
-063b:00820000:2e18:00b0:132:0
-01 03 01 48
-p:,f:40
-063c:00820000:2e18:00b0:132:0
-01 03 06 23
-p:,f:40
-063d:00820000:2e18:00b0:132:0
-01 04 01 48
-p:,f:40
-063e:00820000:2e18:00b0:132:0
-01 04 04 50
-p:OpenMux,f:40
-2d49:00820000:1a2c:fbff:132:0
-Dl671
-p:SkyItalia,f:40
-2d4a:00820000:1a2c:fbff:132:0
-Dl672
-p:SkyItalia,f:40
-344e:00820000:0064:fbff:132:0
-DI11
-p:SkyItalia,f:40
-344f:00820000:0064:fbff:132:0
-Dl11
-p:SkyItalia,f:40
-3450:00820000:0064:fbff:132:0
-Dl12
-p:SkyItalia,f:40
-2b55:00820000:1900:fbff:132:0
-Dl641
-p:SkyItalia,f:40
-2b56:00820000:1900:fbff:132:0
-Dl642
-p:SkyItalia,f:40
-0e57:00820000:16a8:fbff:132:0
-Dl583
-p:SkyItalia,f:40
-0e59:00820000:16a8:fbff:132:0
-Dl581
-p:SkyItalia,f:40
-0e5a:00820000:16a8:fbff:132:0
-Dl582
-p:SkyItalia,f:40
-295f:00820000:1edc:0071:132:0
-SAMSUNG370
-p:Cyfrowy Polsat,f:40
-2c82:00820000:1644:fbff:132:0
-Dl571
-p:SkyItalia,f:40
-2c83:00820000:1644:fbff:132:0
-Dl572
-p:SkyItalia,f:40
-0f87:00820000:251c:fbff:132:0
-Dl951
-p:SkyItalia,f:40
-0f88:00820000:251c:fbff:132:0
-Dl952
-p:SkyItalia,f:40
-0f8a:00820000:251c:fbff:132:0
-Dl583
-p:SkyItalia,f:40
-2dae:00820000:2008:fbff:132:0
-Dl821
-p:SkyItalia,f:40
-2daf:00820000:2008:fbff:132:0
-Dl822
-p:SkyItalia,f:40
-2bbc:00820000:19c8:fbff:132:0
-Dl661
-p:SkyItalia,f:40
-2bbd:00820000:19c8:fbff:132:0
-Dl662
-p:SkyItalia,f:40
-1cd3:00820000:1ce8:0071:132:0
-Samsung2
-p:Cyfrowy Polsat,f:40
-1cd9:00820000:1ce8:0071:132:0
-01 41 01 06
-p:FLASH4285,f:40
-2ce6:00820000:170c:fbff:132:0
-Dl591
-p:SkyItalia,f:40
-2ce7:00820000:170c:fbff:132:0
-Dl592
-p:SkyItalia,f:40
-1fec:00820000:189c:fbff:132:0
-Dl631
-p:SkyItalia,f:40
-1fed:00820000:189c:fbff:132:0
-Dl632
-p:SkyItalia,f:40
-2af5:00820000:1838:fbff:132:0
-Dl621
-p:SkyItalia,f:40
-2af6:00820000:1838:fbff:132:0
-Dl622
-p:SkyItalia,f:40
-38fd:00820000:0320:fbff:132:0
-Dl81
-p:SkyItalia,f:40
-38fe:00820000:0320:fbff:132:0
-Dl82
-p:SkyItalia,f:40
-1004:00820000:2e18:00b0:135:0
-Guide
-p:,f:40
-170c:00820000:2bc0:00b0:135:0
-RADIO2000
-p:OpenMux,f:40
-1715:00820000:2e18:00b0:135:0
-Notification Débits
-p:OpenMux,f:40
-1e16:00820000:3db8:00b0:135:0
-quizz_Satisfaction
-p:OpenMux,f:40
-1d4c:00820000:2bc0:00b0:135:0
-Playin TV Outlist
-p:OpenMux,f:40
-294f:00820000:1edc:0071:135:0
-Test
-p:Cyfrowy Polsat,f:40
-1b5f:00820000:2d50:00b0:135:0
-Debits de jetons
-p:OpenMux,C:0500,f:40
-1969:00820000:2e18:00b0:135:0
-UPSELLING
-p:OpenMux,f:40
-1775:00820000:2c88:00b0:135:0
-Quizz_TF1
-p:OpenMux,f:40
-1c8c:00820000:2bc0:00b0:135:0
-Tests terminaux
-p:OpenMux,f:40
-189c:00820000:2e18:00b0:135:0
-Boutique Votre Abonnement
-p:OpenMux,f:40
-16a9:00820000:2ee0:00b0:135:0
-Météo Express
-p:OpenMux,f:40
-12c0:00820000:2e18:00b0:135:0
-test-96-0
-p:OpenMux,f:40
-12c5:00820000:2e18:00b0:135:0
-opentst
-p:OpenMux,f:40
-17d4:00820000:2e18:00b0:135:0
-Votre_Contrat
-p:OpenMux,f:40
-05f0:00820000:2e18:00b0:135:0
-Equidia Outlist
-p:,f:40
-17d9:00820000:3db8:00b0:136:0
-CANAL+
-p:OpenMux,f:40
-17da:00820000:3db8:00b0:136:0
-CANAL+ DECALE
-p:OpenMux,f:40
-17db:00820000:3db8:00b0:136:0
-CANAL+ SPORT
-p:OpenMux,f:40
-17dc:00820000:3db8:00b0:136:0
-CANAL+ CINEMA
-p:OpenMux,f:40
-17dd:00820000:3db8:00b0:136:0
-CANAL+ HI-TECH
-p:OpenMux,f:40
-1518:00820000:2bc0:00b0:138:0
-X X L
-p:OpenMux,C:0500,f:40
-1521:00820000:2bc0:00b0:138:0
-PRIVATE SPICE
-p:OpenMux,C:0500,f:40
-0fa0:00820000:2ee0:00b0:138:0
-BANDIAGARA
-p:OpenMux,f:40
-18a1:00820000:2bc0:00b0:138:0
-Canal+
-p:OpenMux,f:40
-14b9:00820000:2bc0:00b0:138:0
-Playin TV
-p:OpenMux,f:40
-1af4:00820000:2bc0:00b0:138:0
-TPS & Vous
-p:,f:40
-11f8:00820000:3db8:00b0:138:0
-Mathilda
-p:OpenMux,f:40
-0a1f:00820000:2e18:00b0:139:0
-02 01 04 86
-p:OpenMux,f:40
-0a20:00820000:2e18:00b0:139:0
-02 01 01 84
-p:,f:40
-0a21:00820000:2e18:00b0:139:0
-02 02 04 86
-p:OpenMux,f:40
-0a22:00820000:2e18:00b0:139:0
-02 02 01 84
-p:,f:40
-0a25:00820000:2e18:00b0:139:0
-02 04 04 86
-p:OpenMux,f:40
-0a26:00820000:2e18:00b0:139:0
-02 04 01 84
-p:OpenMux,f:40
-0a27:00820000:2e18:00b0:139:0
-02 05 01 84
-p:OpenMux,f:40
-0a28:00820000:2e18:00b0:139:0
-02 05 04 86
-p:OpenMux,f:40
-0a29:00820000:2e18:00b0:139:0
-02 06 01 84
-p:OpenMux,f:40
-0a2a:00820000:2e18:00b0:139:0
-02 06 04 86
-p:OpenMux,f:40
-0a2b:00820000:2d50:00b0:139:0
-0208010a0F
-p:OpenMux,f:40
-0a2c:00820000:2d50:00b0:139:0
-0208041a0F
-p:OpenMux,f:40
-0e66:00820000:1ce8:0071:141:0
-EpgOpenTV
-p:Nagra,f:40
-8fff:00820000:1edc:0071:143:0
-EDCPS
-p:,f:40
-1cad:00820000:1ce8:0071:144:0
-0202000E
-p:Cyfrowy Polsat,f:40
-1cd6:00820000:1ce8:0071:144:0
-02010016
-p:Cyfrowy Polsat,f:40
-1d98:00820000:2f44:013e:145:0
-Eepg
-p:NetMed,f:40
-end
-Have a lot of bugs!
+++ /dev/null
-eDVB services /3/
-transponders
-00c00000:03f0:0001
- s 11317500:22000000:1:4:192:2
-/
-00c00000:03f3:0001
- s 11362000:22000000:0:2:192:0:1:2:0:1
-/
-00c00000:03f8:0001
- s 11435000:22000000:1:4:192:2
-/
-00c00000:03fa:0001
- s 11479000:22000000:1:4:192:2
-/
-00c00000:03fc:0001
- s 11508500:22000000:1:4:192:2
-/
-00c00000:03fe:0001
- s 11538000:22000000:1:4:192:2
-/
-00c00000:0400:0001
- s 11567500:22000000:1:4:192:2
-/
-00c00000:0402:0001
- s 11597000:22000000:1:4:192:2
-/
-00c00000:0407:0001
- s 11670750:22000000:0:4:192:2
-/
-00c00000:0408:0001
- s 11685500:22000000:1:4:192:2
-/
-00c00000:040a:0001
- s 10979000:22000000:1:4:192:2
-/
-00c00000:040e:0001
- s 11038000:22000000:1:4:192:2
-/
-00c00000:0412:0001
- s 11097000:22000000:1:4:192:2
-/
-00c00000:0416:0001
- s 11156000:22000000:1:4:192:2
-/
-00c00000:041b:0001
- s 10743750:22000000:0:4:192:2
-/
-00c00000:041d:0001
- s 10773250:22000000:0:4:192:2
-/
-00c00000:041e:0001
- s 10788000:22000000:1:4:192:2
-/
-00c00000:0420:0001
- s 10817500:22000000:1:4:192:2
-/
-00c00000:0421:0001
- s 10832000:22000000:0:4:192:2
-/
-00c00000:0422:0001
- s 10847000:22000000:1:4:192:2
-/
-00c00000:0423:0001
- s 10861750:22000000:0:4:192:2
-/
-00c00000:0424:0001
- s 10876000:22000000:1:4:192:2
-/
-00c00000:0427:0001
- s 10920750:22000000:0:4:192:2
-/
-00c00000:042a:0001
- s 11739000:27500000:1:3:192:2
-/
-00c00000:042c:0001
- s 11778000:27500000:1:3:192:2
-/
-00c00000:042e:0001
- s 11817000:27500000:1:3:192:2
-/
-00c00000:0430:0001
- s 11856000:27500000:1:3:192:2
-/
-00c00000:0431:0001
- s 12109500:27500000:0:3:192:2
-/
-00c00000:0432:0001
- s 11895000:27500000:1:3:192:2
-/
-00c00000:0434:0001
- s 11934000:27500000:1:3:192:2
-/
-00c00000:0436:0001
- s 11973000:27500000:1:3:192:2
-/
-00c00000:0437:0001
- s 11953500:27500000:0:3:192:2
-/
-00c00000:0438:0001
- s 12012000:27500000:1:3:192:2
-/
-00c00000:043a:0001
- s 12051000:27500000:1:3:192:2
-/
-00c00000:043c:0001
- s 12090000:27500000:1:3:192:2
-/
-00c00000:043e:0001
- s 12129000:27500000:1:3:192:2
-/
-00c00000:0440:0001
- s 12168000:27500000:1:3:192:2
-/
-00c00000:0441:0001
- s 12187500:27500000:0:3:192:2
-/
-00c00000:0442:0001
- s 12207000:27500000:1:3:192:2
-/
-00c00000:0443:0001
- s 12226500:27500000:0:3:192:2
-/
-00c00000:0444:0001
- s 12246000:27500000:1:3:192:2
-/
-00c00000:0445:0001
- s 12265500:27500000:0:3:192:2
-/
-00c00000:0446:0001
- s 12285000:27500000:1:3:192:2
-/
-00c00000:0447:0001
- s 12304500:27500000:0:3:192:2
-/
-00c00000:0448:0001
- s 12324000:27500000:1:3:192:2
-/
-00c00000:044a:0001
- s 11758000:27500000:1:3:192:2
-/
-00c00000:044b:0001
- s 12382500:27500000:0:3:192:2
-/
-00c00000:044c:0001
- s 12402000:27500000:1:3:192:2
-/
-00c00000:044d:0001
- s 11836500:27500000:0:3:192:2
-/
-00c00000:044e:0001
- s 12441000:27500000:1:3:192:2
-/
-00c00000:0453:0001
- s 12544750:22000000:0:4:192:2
-/
-00c00000:0454:0001
- s 12551500:22000000:1:4:192:2
-/
-00c00000:0457:0001
- s 12603750:22000000:0:4:192:2
-/
-00c00000:0458:0001
- s 12610500:22000000:1:4:192:2
-/
-00c00000:0459:0001
- s 12633250:22000000:0:4:192:2
-/
-00c00000:045a:0001
- s 12640000:22000000:1:4:192:2
-/
-00c00000:045b:0001
- s 12662750:22000000:0:4:192:2
-/
-00c00000:045d:0001
- s 12692250:22000000:0:4:192:2
-/
-00c00000:045e:0001
- s 12699000:22000000:1:4:192:2
-/
-00c00000:0460:0001
- s 12728500:22000000:1:4:192:2
-/
-00c00000:04b1:0001
- s 12421500:27500000:0:3:192:2
-/
-00c00000:04ff:0001
- s 11992500:27500000:0:3:192:2
-/
-00c00000:0449:0035
- s 12343500:27500000:0:3:192:2
-/
-00c00000:0451:0035
- s 12515000:22000000:0:4:192:2
-/
-00c00000:0455:0035
- s 12574000:22000000:0:4:192:2
-/
-00c00000:045c:0035
- s 12669500:22000000:1:4:192:2
-/
-00c00000:045f:0035
- s 12721750:22000000:0:4:192:2
-/
-00c00000:0001:0085
- s 12070500:27500000:0:3:192:2
-/
-00c00000:0002:0085
- s 11797500:27500000:0:3:192:2
-/
-00c00000:0003:0085
- s 11719500:27500000:0:3:192:2
-/
-00c00000:0004:0085
- s 12031500:27500000:0:3:192:2
-/
-00c00000:0005:0085
- s 12460500:27500000:0:3:192:2
-/
-00c00000:0006:0085
- s 11914500:27500000:0:9:192:2:1:1:0
-/
-00c00000:0007:0085
- s 12148500:27500000:0:3:192:2
-/
-00c00000:0009:0085
- s 11875500:27500000:0:3:192:2
-/
-00c00000:0011:0085
- s 11758500:27500000:0:3:192:2
-/
-00c00000:0021:0085
- s 12480000:27500000:1:3:192:2
-/
-end
-services
-75e8:00c00000:0422:0001:0:0
-
-p:,f:40
-75e9:00c00000:0422:0001:0:0
-
-p:,f:40
-75ea:00c00000:0422:0001:0:0
-
-p:,f:40
-75eb:00c00000:0422:0001:0:0
-
-p:,f:40
-75ec:00c00000:0422:0001:0:0
-
-p:,f:40
-0300:00c00000:0007:0085:1:0
-RNF
-p:BetaDigital,f:40
-0700:00c00000:0005:0085:1:0
-\86BLUCOM\87 DEMOKANAL
-p:BetaDigital,f:40
-1b00:00c00000:03fe:0001:1:0
-TELESUR
-p:GlobeCast Spain,f:40
-2200:00c00000:044c:0001:1:0
-REAL TIME
-p:CSAT,f:40
-7000:00c00000:0436:0001:1:0
-MTV Euro
-p:MTV Networks Europe,f:40
-7500:00c00000:0420:0001:1:0
-DCINE ESPAÑOL
-p:DCESP,f:40
-0201:00c00000:0004:0085:1:0
-EROTIK - \86AB 18!\87
-p:PREMIERE,C:1833,C:1831,C:1830,C:1810,f:40
-0301:00c00000:0007:0085:1:0
-\86Voyages\87 Television
-p:BetaDigital,f:40
-0701:00c00000:0005:0085:1:0
-\86D\87AS\86 VIERTE\87
-p:BetaDigital,f:40
-1901:00c00000:03fa:0001:1:0
-CANAL EVENEMENT
-p:CSAT,f:40
-2201:00c00000:044c:0001:1:0
-JETIX
-p:CSAT,f:40
-7001:00c00000:0436:0001:1:0
-MTV Germany
-p:MTV Networks Europe,f:40
-7501:00c00000:0420:0001:1:0
-CANAL COCINA
-p:CACOC,f:40
-0202:00c00000:0007:0085:1:0
-TIER.TV
-p:BetaDigital,f:40
-0302:00c00000:0007:0085:1:0
-.
-p:BetaDigital,f:40
-0702:00c00000:0005:0085:1:0
-\86JAMBA!\87 TV
-p:BetaDigital,f:40
-1902:00c00000:03fa:0001:1:0
-VIVOLTA
-p:CSAT,f:40
-2202:00c00000:044c:0001:1:0
-L'EQUIPE TV
-p:CSAT,f:40
-7002:00c00000:0436:0001:1:0
-MTV Pulse
-p:MTV Networks Europe,f:40
-7502:00c00000:0420:0001:1:0
-TVV INT.
-p:CCV,f:40
-7602:00c00000:0408:0001:1:0
-CNN+
-p:CNN+,f:40
-0203:00c00000:0004:0085:1:0
-MGM
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-0303:00c00000:0007:0085:1:0
-.
-p:BetaDigital,f:40
-1903:00c00000:03fa:0001:1:0
-TELEREALITE
-p:CSAT,f:40
-2203:00c00000:044c:0001:1:0
-PLANETE NO LIMIT
-p:CSAT,f:40
-7003:00c00000:0436:0001:1:0
-MTV Idol
-p:MTV Networks Europe,f:40
-7503:00c00000:0420:0001:1:0
-FOX
-p:FOXGE,f:40
-7603:00c00000:0408:0001:1:0
-PRO TV INT
-p:DIGITAL+,f:40
-0204:00c00000:0003:0085:1:0
-PREMIERE \86NOSTALGIE\87
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-0304:00c00000:0005:0085:1:0
-imusic TV
-p:BetaDigital,f:40
-1904:00c00000:03fa:0001:1:0
-BABY FIRST
-p:CSAT,f:40
-2204:00c00000:044c:0001:1:0
-NATIONAL GEO
-p:CSAT,f:40
-7004:00c00000:0436:0001:1:0
-VIVA Germany
-p:MTV Networks Europe,f:40
-7504:00c00000:0420:0001:1:0
-AXN
-p:AXN,f:40
-7604:00c00000:0408:0001:1:0
-RAD. ROMANIA
-p:DIGITAL+,f:40
-0305:00c00000:0007:0085:1:0
-BD 4
-p:BetaDigital,C:1833,f:40
-1905:00c00000:03fa:0001:1:0
-PLANETE JUSTICE
-p:CSAT,f:40
-2205:00c00000:044c:0001:1:0
-C CINEMA CLASSIC
-p:CSAT,f:40
-7005:00c00000:0436:0001:1:0
-COMEDY CENTRAL Germany
-p:MTV Networks Europe,f:40
-7505:00c00000:0420:0001:1:0
-TVE 1
-p:TVE 1,f:40
-0206:00c00000:0001:0085:1:0
-\86GOLDSTAR\87 TV
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-0306:00c00000:0007:0085:1:0
-\86GOD \87Channel
-p:BetaDigital,f:40
-2206:00c00000:044c:0001:1:0
-NRJ 12
-p:CSAT,f:40
-7506:00c00000:0420:0001:1:0
-SCI FI
-p:DIGITAL +,f:40
-0307:00c00000:0007:0085:1:0
-Der \86Schmuck\87kanal
-p:BetaDigital,f:40
-2207:00c00000:044c:0001:1:0
-C CINEMA FAMIZ
-p:CSAT,f:40
-7007:00c00000:0436:0001:1:0
-MTV NL
-p:MTV Networks Europe,f:40
-7607:00c00000:0408:0001:1:0
-S.MODELO 08
-p:DIGITAL+,f:40
-0008:00c00000:0001:0085:1:0
-PREMIERE \86START\87
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-0308:00c00000:0005:0085:1:0
-GIGA
-p:BetaDigital,f:40
-2f08:00c00000:0441:0001:1:0
-\86S\87uper\86 RTL\87
-p:RTL World,f:40
-7008:00c00000:0436:0001:1:0
-NICK Germany
-p:MTV Networks Europe,f:40
-0009:00c00000:0002:0085:1:0
-\86PREM\87IERE\86 4\87
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-2009:00c00000:0430:0001:1:0
-CANAL+
-p:CSAT,f:40
-2f09:00c00000:0441:0001:1:0
-Super RTL CH
-p:RTL,f:40
-7009:00c00000:0436:0001:1:0
-MTV ENTERTAINMENT (P)
-p:MTV Networks Europe,f:40
-7509:00c00000:0420:0001:1:0
-ECUAVISA INT
-p:Digital+,f:40
-000a:00c00000:0002:0085:1:0
-\86PREM\87IERE\86 1\87
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-200a:00c00000:0430:0001:1:0
-CANAL+ DECALE
-p:CSAT,f:40
-700a:00c00000:0436:0001:1:0
-NICK PREMIUM (P)
-p:MTV Networks Europe,f:40
-750a:00c00000:0420:0001:1:0
-CARACOL TV
-p:digital TV,f:40
-000b:00c00000:0002:0085:1:0
-\86PREM\87IERE\86 2\87
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-200b:00c00000:0430:0001:1:0
-CANAL+ CINEMA
-p:CSAT,f:40
-000c:00c00000:0011:0085:1:0
-\86ANIMAL\87 PLANET
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-200c:00c00000:0430:0001:1:0
-CANAL+ HI-TECH
-p:CSAT,f:40
-760c:00c00000:0408:0001:1:0
-TCM CLÁSICO
-p:CMACLS,f:40
-000d:00c00000:0011:0085:1:0
-DISCOVERY \86GESCHICHTE\87
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-000e:00c00000:0011:0085:1:0
-\86DISCOVERY\87 CHANNEL
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-200e:00c00000:0430:0001:1:0
-C CINEMA PREMIER
-p:CSAT,f:40
-500e:00c00000:0447:0001:1:0
-UPC Direct Radio
-p:UPC Direct,f:40
-760e:00c00000:0408:0001:1:0
-TV GALICIA
-p:DIGITAL+,f:40
-000f:00c00000:0011:0085:1:0
-FOCUS \86GESUND\87HEIT
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-200f:00c00000:0430:0001:1:0
-DISNEY CHANNEL
-p:CSAT,f:40
-500f:00c00000:0447:0001:1:0
-Game 3
-p:chellomedia IS,f:40
-0010:00c00000:0002:0085:1:0
-PREMIERE \86SERIE\87
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-2010:00c00000:0430:0001:1:0
-CANAL+ SPORT
-p:CSAT,f:40
-5010:00c00000:0447:0001:1:0
-Game 2
-p:chellomedia IS,f:40
-0011:00c00000:0003:0085:1:0
-PREMIERE \86SPORT PORTAL\87
-p:PREMIERE,C:1833,C:1830,f:40
-2011:00c00000:0430:0001:1:0
-EQUIDIA
-p:CSAT,f:40
-2211:00c00000:044c:0001:1:0
-NRJ 12
-p:CSAT,f:40
-5011:00c00000:0447:0001:1:0
-Game 1
-p:chellomedia IS,f:40
-0012:00c00000:0004:0085:1:0
-PREMIERE \86DIREKT\87
-p:PREMIERE,f:40
-5012:00c00000:0447:0001:1:0
-Games Portal
-p:UPC Direct,f:40
-0013:00c00000:0011:0085:1:0
-\86JUNIOR\87
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-5013:00c00000:0447:0001:1:0
-UPC_EPG
-p:UPC Direct,f:40
-0014:00c00000:0003:0085:1:0
-PREMIERE \86FILMFEST\87
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-5014:00c00000:0447:0001:1:0
-Guide
-p:UPC Direct,f:40
-0015:00c00000:0011:0085:1:0
-\86B\87EATE\86-UHSE\87.TV
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-2015:00c00000:0430:0001:1:0
-CANAL+ HI-TECH.
-p:CSAT,f:40
-0016:00c00000:0001:0085:1:0
-\86HEIMAT\87KANAL
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-0017:00c00000:0002:0085:1:0
-PREMIERE \86KRIMI\87
-p:PREMIERE,C:1833,C:1830,f:40
-2017:00c00000:0430:0001:1:0
-SCI FI
-p:CSAT,f:40
-0018:00c00000:0011:0085:1:0
-CLASSICA
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-001b:00c00000:0001:0085:1:0
-RTL CRIME
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-001c:00c00000:0011:0085:1:0
-JETIX
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-2f1c:00c00000:0441:0001:1:0
-VOX
-p:RTL World,f:40
-001d:00c00000:0001:0085:1:0
-PASSION
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-201d:00c00000:0430:0001:1:0
-CANAL+
-p:CSAT,f:40
-251d:00c00000:0440:0001:1:0
-TF6
-p:CSAT,f:40
-2f1d:00c00000:0441:0001:1:0
-VOX CH
-p:RTL,f:40
-251e:00c00000:0440:0001:1:0
-USHUAIA TV
-p:CSAT,f:40
-191f:00c00000:03fa:0001:1:0
-PLAYIN'Tvi
-p:CSAT,f:40
-1c1f:00c00000:0451:0035:1:0
-EPG
-p:CANALDIGITAAL,f:40
-251f:00c00000:0440:0001:1:0
-EUROSPORT 2
-p:CSAT,f:40
-0020:00c00000:0021:0085:1:0
-\86Sonnen\87klar \86TV\87
-p:PREMIERE,f:40
-0021:00c00000:0007:0085:1:0
-PFH
-p:,C:1810,f:40
-2521:00c00000:0440:0001:1:0
-C CINEMA 16/9
-p:CSAT,f:40
-4e21:00c00000:043a:0001:1:0
-ProSieben Schweiz
-p:ProSiebenSat.1,f:40
-0022:00c00000:0011:0085:1:0
-\86DISNEY\87 CHANNEL
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-4e22:00c00000:043a:0001:1:0
-ProSieben Austria
-p:ProSiebenSat.1,f:40
-2523:00c00000:0440:0001:1:0
-PIWI
-p:CSAT,f:40
-4e23:00c00000:043a:0001:1:0
-Kabel 1 Schweiz
-p:ProSiebenSat.1,f:40
-7023:00c00000:0402:0001:1:0
-Sky News
-p:BT,f:40
-0024:00c00000:0004:0085:1:0
-SCI FI
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-2524:00c00000:0440:0001:1:0
-EXTREME SPORTS
-p:CSAT,f:40
-2724:00c00000:0402:0001:1:0
-DW-TV
-p:Deutsche Telekom AG,f:40
-4e24:00c00000:043a:0001:1:0
-Kabel 1 Austria
-p:ProSiebenSat.1,f:40
-2525:00c00000:0440:0001:1:0
-FRANCE 4
-p:CSAT,f:40
-4e25:00c00000:043a:0001:1:0
-SAT.1 A
-p:ProSiebenSat.1,f:40
-2526:00c00000:0440:0001:1:0
-
-p:CSAT,f:40
-4e26:00c00000:043a:0001:1:0
-SAT.1 CH
-p:ProSiebenSat.1,f:40
-2527:00c00000:0440:0001:1:0
-ENCYCLOPEDIA
-p:CSAT,f:40
-4e27:00c00000:043a:0001:1:0
-PULS 4 Austria
-p:ProSiebenSat.1,f:40
-0028:00c00000:0021:0085:1:0
-\86HSE24\87
-p:BetaDigital,f:40
-7728:00c00000:0416:0001:1:0
-PEOPLE+ARTS
-p:P&A,f:40
-0029:00c00000:0003:0085:1:0
-PREMIERE \86FILMCLASSICS\87
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-6e29:00c00000:0431:0001:1:0
-EinsExtra-alt
-p:ARD,f:40
-7729:00c00000:0416:0001:1:0
-VIAJAR
-p:VJR,f:40
-002a:00c00000:0004:0085:1:0
-\8613 TH\87 STREET
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-6e2a:00c00000:0431:0001:1:0
-EinsFestival-alt
-p:ARD,f:40
-772a:00c00000:0416:0001:1:0
-PAR. COMEDY
-p:NC,f:40
-002b:00c00000:0002:0085:1:0
-\86PREM\87IERE\86 3\87
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-6e2b:00c00000:0431:0001:1:0
-EinsPlus-alt
-p:ARD,f:40
-772b:00c00000:0416:0001:1:0
-CAZA Y PESCA
-p:CAZPES,f:40
-6e2c:00c00000:0431:0001:1:0
-alt (MDR FERNSEHEN)
-p:ARD,f:40
-332d:00c00000:045b:0001:1:0
-TW1
-p:ORF,f:40
-6e2d:00c00000:0431:0001:1:0
-rbb Brandenburg
-p:ARD,f:40
-772d:00c00000:0416:0001:1:0
-LA 2
-p:La2,f:40
-002e:00c00000:0021:0085:1:0
-glück TV
-p:BetaDigital,f:40
-272e:00c00000:0402:0001:1:0
-CNBC Europe
-p:CNBC,f:40
-332e:00c00000:045b:0001:1:0
-GoTV
-p:GoTV,f:40
-6e2e:00c00000:0431:0001:1:0
-rbb Berlin
-p:ARD,f:40
-772e:00c00000:0416:0001:1:0
-CALLE 13
-p:CL13,f:40
-f22e:00c00000:0421:0001:1:0
-RTBF SAT
-p:RTBF,f:40
-002f:00c00000:0021:0085:1:0
-\86DAF\87-AnlegerTV
-p:BetaDigital,f:40
-332f:00c00000:045b:0001:1:0
-ALL FUN TV
-p:-,f:40
-772f:00c00000:0416:0001:1:0
-BLOOMBERG
-p:BL,f:40
-0030:00c00000:0005:0085:1:0
-ERF
-p:BetaDigital,f:40
-2f30:00c00000:0441:0001:1:0
-RTL Shop
-p:RTL World,f:40
-3330:00c00000:045b:0001:1:0
-INNSAT.TV
-p:Innsat,f:40
-7730:00c00000:0416:0001:1:0
-COSMOPOLITAN
-p:COSMO,f:40
-3331:00c00000:045b:0001:1:0
-NASN (P)
-p:PREMIERE,f:40
-7031:00c00000:041b:0001:1:0
-EinsExtra
-p:ARD,f:40
-7731:00c00000:0416:0001:1:0
-R. MADRID TV
-p:Digital+,f:40
-0032:00c00000:0001:0085:1:0
-1-2-3.tv
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-3332:00c00000:045b:0001:1:0
-AUSTRIA 9 TV
-p:AUSTRIA 9 TV,f:40
-7032:00c00000:041b:0001:1:0
-EinsFestival
-p:ARD,f:40
-7732:00c00000:0416:0001:1:0
-MÉTEO
-p:MET,f:40
-0033:00c00000:0021:0085:1:0
-TELE 5
-p:BetaDigital,f:40
-2333:00c00000:0400:0001:1:0
-CANAL ALGERIE
-p:CANALSATELLITE,f:40
-3333:00c00000:045b:0001:1:0
-Visit-X.TV
-p:-,f:40
-7033:00c00000:041b:0001:1:0
-EinsPlus
-p:ARD,f:40
-0034:00c00000:0009:0085:1:0
-\86STAR XL\87 LIVE
-p:PREMIERE,C:1831,C:1830,C:1801,C:1722,C:1702,f:40
-2334:00c00000:0400:0001:1:0
-TV5MONDE
-p:CANALSATELLITE,f:40
-3334:00c00000:045b:0001:1:0
-Spass im TV
-p:-,f:40
-7034:00c00000:041b:0001:1:0
-arte
-p:ARD,f:40
-7734:00c00000:0416:0001:1:0
-VIAJAR
-p:VJR,f:40
-0035:00c00000:0007:0085:1:0
-\86PREM\87IERE\86 A\87ustria
-p:PREMIERE,C:1833,f:40
-2135:00c00000:0442:0001:1:0
-FRANCE 5
-p:CSAT,f:40
-3335:00c00000:045b:0001:1:0
-NASN
-p:arena,f:40
-7035:00c00000:041b:0001:1:0
-Phoenix
-p:ARD,f:40
-7735:00c00000:0416:0001:1:0
-EHS
-p:Digital+,f:40
-0036:00c00000:0007:0085:1:0
-Q TV SHOP
-p:BetaDigital,f:40
-2136:00c00000:0442:0001:1:0
-TV BREIZH
-p:CSAT,f:40
-2336:00c00000:0400:0001:1:0
-Al Masriya
-p:CANALSATELLITE,f:40
-3336:00c00000:045b:0001:1:0
-Bundesliga 9
-p:arena,f:40
-2337:00c00000:0400:0001:1:0
-RAI 1
-p:CANALSATELLITE,f:40
-2138:00c00000:0442:0001:1:0
-PLANETE THALASSA
-p:CSAT,f:40
-3138:00c00000:0459:0001:1:0
-Bahn TV
-p:T-Systems,f:40
-3338:00c00000:045b:0001:1:0
-AKTIV DIREKT TV
-p:-,f:40
-2339:00c00000:0400:0001:1:0
-RTPI
-p:CANALSATELLITE,f:40
-2539:00c00000:0440:0001:1:0
-FRANCE 4
-p:CSAT,f:40
-3139:00c00000:0459:0001:1:0
-K-TV
-p:T-Systems,f:40
-3339:00c00000:045b:0001:1:0
-Kuren und Wellness
-p:-,f:40
-213a:00c00000:0442:0001:1:0
-PLAYBOY TV
-p:CSAT,f:40
-233a:00c00000:0400:0001:1:0
-TV7
-p:CANALSATELLITE,f:40
-2f3a:00c00000:0441:0001:1:0
-n-tv
-p:RTL World,f:40
-333a:00c00000:045b:0001:1:0
-Uschi TV
-p:StarSat,f:40
-6e3a:00c00000:0431:0001:1:0
-ARD-Online-Kanal
-p:ARD,f:40
-233b:00c00000:0400:0001:1:0
-ARTE
-p:CANALSATELLITE,f:40
-333b:00c00000:045b:0001:1:0
-Uschi´s Schwestern
-p:StarSat,f:40
-003c:00c00000:0009:0085:1:0
-\86KINOWELT\87 TV\86 (P)\87
-p:PREMIERE,C:1830,C:1801,C:1702,f:40
-213c:00c00000:0442:0001:1:0
-FRANCE Ô
-p:CSAT,f:40
-313c:00c00000:0459:0001:1:0
-dhd24.tv
-p:Media Broadcast,f:40
-333c:00c00000:045b:0001:1:0
-Liebeskanal
-p:StarSat,f:40
-003d:00c00000:0009:0085:1:0
-TCM (a/P)
-p:arena/Premiere,C:1830,C:1801,C:1702,f:40
-233d:00c00000:0400:0001:1:0
-Al Jazeera
-p:CANALSATELLITE,f:40
-333d:00c00000:045b:0001:1:0
-Weiber TV
-p:StarSat,f:40
-6e3d:00c00000:0431:0001:1:0
-ARD-TEST-1
-p:ARD,f:40
-003e:00c00000:0009:0085:1:0
-AXN (a/P)
-p:arena/Premiere,C:1830,C:1801,C:1702,f:40
-233e:00c00000:0400:0001:1:0
-TVEi
-p:CANALSATELLITE,f:40
-313e:00c00000:0459:0001:1:0
-Lustkanal.TV
-p:Media Broadcast,f:40
-333e:00c00000:045b:0001:1:0
-Liebesrundfunk
-p:StarSat,f:40
-6e3e:00c00000:0431:0001:1:0
-ARD-TEST-2
-p:ARD,f:40
-003f:00c00000:0009:0085:1:0
-\86ROMANCE\87 TV
-p:PREMIERE,C:1830,C:1801,C:1702,f:40
-233f:00c00000:0400:0001:1:0
-ARTE
-p:,f:40
-2f3f:00c00000:0441:0001:1:0
-RTL SHOP
-p:RTL World,f:40
-333f:00c00000:045b:0001:1:0
-Kurven-Reich
-p:StarSat,f:40
-0040:00c00000:0009:0085:1:0
-\86DISNEY P\87LAYHOUSE\86 (P)\87
-p:PREMIERE,C:1830,C:1801,C:1702,f:40
-2340:00c00000:0400:0001:1:0
-TRT International
-p:,f:40
-3340:00c00000:045b:0001:1:0
-Heiße Nummer
-p:StarSat,f:40
-6e40:00c00000:0431:0001:1:0
-NDR FS MV
-p:ARD,f:40
-0041:00c00000:0009:0085:1:0
-\86DISNEY T\87OON\86 (P)\87
-p:PREMIERE,C:1830,C:1801,C:1702,f:40
-1f41:00c00000:042e:0001:1:0
-SEASONS
-p:CSAT,f:40
-6e41:00c00000:0431:0001:1:0
-NDR FS HH
-p:ARD,f:40
-0042:00c00000:0009:0085:1:0
-\86BOOM\87ERANG\86 (a/P)\87
-p:arena/Premiere,C:1830,C:1801,C:1702,f:40
-1f42:00c00000:042e:0001:1:0
-C CINEMA EMOTION
-p:CSAT,f:40
-2742:00c00000:0402:0001:1:0
-BBC World
-p:BBC,f:40
-6e42:00c00000:0431:0001:1:0
-NDR FS NDS
-p:ARD,f:40
-0043:00c00000:0009:0085:1:0
-\86E.CLIPS\87 (P)
-p:PREMIERE,C:1830,C:1801,C:1702,f:40
-1f43:00c00000:042e:0001:1:0
-C CINEMA FRISSON
-p:CSAT,f:40
-2143:00c00000:0442:0001:1:0
-A LA CARTE 12
-p:CSAT,f:40
-6e43:00c00000:0431:0001:1:0
-NDR FS SH
-p:ARD,f:40
-0044:00c00000:0009:0085:1:0
-.
-p:BetaDigital,C:1830,C:1801,C:1702,f:40
-1f44:00c00000:042e:0001:1:0
-EURONEWS
-p:CSAT,f:40
-2144:00c00000:0442:0001:1:0
-OM'TV
-p:CSAT,f:40
-2f44:00c00000:0454:0001:1:0
-QVC Deutschland
-p:QVC,f:40
-3144:00c00000:0459:0001:1:0
-Erotik 24
-p:T-Systems,f:40
-6e44:00c00000:0431:0001:1:0
-MDR Sachsen
-p:ARD,f:40
-0045:00c00000:0009:0085:1:0
-\86s\87port\86d\87igital\86.tv\87
-p:BetaDigital,C:1830,f:40
-1f45:00c00000:042e:0001:1:0
-PARIS PREMIERE
-p:CSAT,f:40
-2145:00c00000:0442:0001:1:0
-OLTV
-p:CSAT,f:40
-6e45:00c00000:0431:0001:1:0
-MDR S-Anhalt
-p:ARD,f:40
-6f45:00c00000:0445:0001:1:0
-Radio Bremen TV-alt
-p:ARD,f:40
-0046:00c00000:0007:0085:1:0
-\86Alpen\87glühen \86TVX\87
-p:BetaDigital,C:1830,C:1801,C:1702,f:40
-1f46:00c00000:042e:0001:1:0
-JIMMY
-p:CSAT,f:40
-2346:00c00000:0400:0001:1:0
-2M Maroc
-p:CANALSATELLITE,f:40
-3146:00c00000:0459:0001:1:0
-rhein main tv
-p:T-Systems,f:40
-6e46:00c00000:0431:0001:1:0
-MDR Thüringen
-p:ARD,f:40
-6f46:00c00000:0445:0001:1:0
-SR Fernsehen
-p:ARD,f:40
-0047:00c00000:0007:0085:1:0
-Service 12
-p:BetaDigital,f:40
-1f47:00c00000:042e:0001:1:0
-MEZZO
-p:CSAT,f:40
-3147:00c00000:0459:0001:1:0
-Deutsche Girls 2
-p:T-Systems,f:40
-6e47:00c00000:0431:0001:1:0
-SWR Fernsehen RP
-p:ARD,f:40
-6f47:00c00000:0445:0001:1:0
-BR-alpha
-p:ARD,f:40
-0048:00c00000:0005:0085:1:0
-.
-p:BetaDigital,f:40
-1f48:00c00000:042e:0001:1:0
-LA CHAINE METEO
-p:CSAT,f:40
-3148:00c00000:0459:0001:1:0
-Gems TV
-p:T-Systems,f:40
-0049:00c00000:0005:0085:1:0
-.
-p:BetaDigital,f:40
-1f49:00c00000:042e:0001:1:0
-SPORT+
-p:CSAT,f:40
-2649:00c00000:0460:0001:1:0
-FR3 CAEN
-p:CSAT,f:40
-004a:00c00000:0005:0085:1:0
-.
-p:BetaDigital,f:40
-1f4a:00c00000:042e:0001:1:0
-I>TELE
-p:CSAT,f:40
-264a:00c00000:0460:0001:1:0
-FR3 NANTES
-p:CSAT,f:40
-314a:00c00000:0459:0001:1:0
-Dreamgirls.TV
-p:T-Systems,f:40
-004b:00c00000:0005:0085:1:0
-3A TV
-p:BetaDigital,f:40
-1f4b:00c00000:042e:0001:1:0
-HISTOIRE
-p:CSAT,f:40
-264b:00c00000:0460:0001:1:0
-FR3 NICE
-p:CSAT,f:40
-314b:00c00000:0459:0001:1:0
-Erotik Sat
-p:T-Systems,f:40
-004c:00c00000:0021:0085:1:0
-\86e\87qui\868\87
-p:BetaDigital,f:40
-1f4c:00c00000:042e:0001:1:0
-MEZZO.
-p:CSAT,f:40
-264c:00c00000:0460:0001:1:0
-FR3 ORLEANS
-p:CSAT,f:40
-274c:00c00000:0402:0001:1:0
-TV5MONDE EUROPE
-p:TV5MONDE,f:40
-314c:00c00000:0459:0001:1:0
-123Damenwahl
-p:T-Systems,f:40
-004d:00c00000:0021:0085:1:0
-.
-p:BetaDigital,f:40
-1c4d:00c00000:0457:0001:1:0
-IP4_slides
-p:SES ASTRA,f:40
-1f4d:00c00000:042e:0001:1:0
-NCMESS
-p:CSAT,f:40
-264d:00c00000:0460:0001:1:0
-FR3 DIJON
-p:CSAT,f:40
-314d:00c00000:0459:0001:1:0
-SexySat
-p:T-Systems,f:40
-4f4d:00c00000:0447:0001:1:0
-\86Gal\87axie \86Sport\87
-p:UPC Direct,f:40
-264e:00c00000:0460:0001:1:0
-FR3 POITIERS
-p:CSAT,f:40
-274e:00c00000:0402:0001:1:0
-Best of shopping
-p:GlobeCast,f:40
-314e:00c00000:0459:0001:1:0
-paradise
-p:T-Systems,f:40
-4f4e:00c00000:0447:0001:1:0
-\86Animal\87 \86Pl\87anet
-p:UPC Direct,f:40
-264f:00c00000:0460:0001:1:0
-FR3 REIMS
-p:CSAT,f:40
-274f:00c00000:0402:0001:1:0
-M6 BOUTIQUE LA CHAINE
-p:Globecast,f:40
-314f:00c00000:0459:0001:1:0
-Date Line
-p:T-Systems,f:40
-4f4f:00c00000:0447:0001:1:0
-\86Disc\87overy CE
-p:UPC Direct,f:40
-2650:00c00000:0460:0001:1:0
-FR3 GRENOBLE
-p:CSAT,f:40
-3150:00c00000:0459:0001:1:0
-Fotohandy
-p:T-Systems,f:40
-4f50:00c00000:0447:0001:1:0
-\86JimJam\87
-p:UPC Direct,f:40
-2651:00c00000:0460:0001:1:0
-FR3 LILLE
-p:CSAT,f:40
-3151:00c00000:0459:0001:1:0
-Mobile Sex
-p:T-Systems,f:40
-4f51:00c00000:0447:0001:1:0
-\86Jetix/Jetix Max\87
-p:UPC Direct,f:40
-2652:00c00000:0460:0001:1:0
-FR3 STRASBOURG
-p:CSAT,f:40
-3152:00c00000:0459:0001:1:0
-jeden Tag x
-p:T-Systems,f:40
-4f52:00c00000:0447:0001:1:0
-\86Nat\87 \86Geo\87
-p:UPC Direct,f:40
-2653:00c00000:0460:0001:1:0
-FR3 MONTPELLIER
-p:CSAT,f:40
-3153:00c00000:0459:0001:1:0
-Seitensprung.TV
-p:T-Systems,f:40
-4f53:00c00000:0447:0001:1:0
-\86HBO Comedy\87
-p:UPC Direct,f:40
-2654:00c00000:0460:0001:1:0
-FR3 VIA STELLA
-p:CSAT,f:40
-3154:00c00000:0459:0001:1:0
-Rundum Sex TV
-p:T-Systems,f:40
-4f54:00c00000:0447:0001:1:0
-\86Hall\87mark
-p:UPC Direct,f:40
-1f55:00c00000:042e:0001:1:0
-I>TELE
-p:CSAT,f:40
-3155:00c00000:0459:0001:1:0
-Traumgirls.TV
-p:T-Systems,f:40
-4f55:00c00000:0447:0001:1:0
-\86Hustler TV\87
-p:UPC Direct,f:40
-3156:00c00000:0459:0001:1:0
-Das Erotische TV
-p:T-Systems,f:40
-4f56:00c00000:0447:0001:1:0
-\86Zone\87Reality\87
-p:UPC Direct,f:40
-4f57:00c00000:0447:0001:1:0
-\86Ex\87treme \86Sports\87
-p:UPC Direct,f:40
-2f58:00c00000:0454:0001:1:0
-LibertyTV FR
-p:LibertyTV.com,f:40
-3158:00c00000:0459:0001:1:0
-Peep TV
-p:T-Systems,f:40
-2f59:00c00000:0454:0001:1:0
-Medi1SAT
-p:PRVDR,f:40
-3159:00c00000:0459:0001:1:0
-Manneskraft TV NEU
-p:Media Broadcast,f:40
-2f5a:00c00000:0454:0001:1:0
-[tru:] young tv
-p:Bibel TV,f:40
-315a:00c00000:0459:0001:1:0
-Supreme Master TV
-p:T-Systems,f:40
-2f5b:00c00000:0454:0001:1:0
-eUrotic NEU
-p:Neterra,f:40
-315b:00c00000:0459:0001:1:0
-phab 16
-p:T-Systems,f:40
-4f5b:00c00000:044b:0001:1:0
-\86CT1\87
-p:UPC Direct,f:40
-1b5c:00c00000:03fc:0001:1:0
-DEMAIN TV
-p:GlobeCast,f:40
-315c:00c00000:0459:0001:1:0
-dhd24 plus
-p:Media Broadcast,f:40
-445c:00c00000:0453:0001:1:0
-SAT.1
-p:ProSiebenSat.1,f:40
-4f5c:00c00000:044b:0001:1:0
-\86CT24\87
-p:UPC Direct,f:40
-1b5d:00c00000:03fc:0001:1:0
-NRJ Paris
-p:GCE,f:40
-315d:00c00000:0459:0001:1:0
-Top Girl Sex TV NEU
-p:Media Broadcast,f:40
-445d:00c00000:0453:0001:1:0
-ProSieben
-p:ProSiebenSat.1,f:40
-4f5d:00c00000:044b:0001:1:0
-\86NOVA Cinema\87
-p:UPC Direct,f:40
-315e:00c00000:0459:0001:1:0
-Gratis Hot TV NEU
-p:Media Broadcast,f:40
-335e:00c00000:045b:0001:1:0
-Telesünde
-p:StarSat,f:40
-445e:00c00000:0453:0001:1:0
-kabel eins
-p:ProSiebenSat.1,f:40
-4f5e:00c00000:044b:0001:1:0
-\86CT2\87
-p:UPC Direct,f:40
-1b5f:00c00000:03fc:0001:1:0
-POPULAR TV
-p:OVERON,f:40
-335f:00c00000:045b:0001:1:0
-Piep Show
-p:StarSat,f:40
-445f:00c00000:0453:0001:1:0
-N24
-p:ProSiebenSat.1,f:40
-4f5f:00c00000:044b:0001:1:0
-\86TV Markiza\86
-p:UPC Direct,f:40
-1b60:00c00000:03fc:0001:1:0
-CUBAVISION
-p:GCE,f:40
-3360:00c00000:045b:0001:1:0
-Flirtrepublik
-p:StarSat,f:40
-4460:00c00000:0453:0001:1:0
-9Live
-p:ProSiebenSat.1,f:40
-4f60:00c00000:044b:0001:1:0
-\86TV JOJ\86
-p:UPC Direct,f:40
-1b61:00c00000:03fc:0001:1:0
-BFM TV
-p:GLOBECAST,f:40
-2261:00c00000:0438:0001:1:0
-FRANCE 2
-p:CSAT,f:40
-4461:00c00000:0453:0001:1:0
-Sat.1 Comedy
-p:ProSiebenSat.1,C:1830,C:1801,C:1702,f:40
-4f61:00c00000:044b:0001:1:0
-\86TV Nova\87
-p:UPC Direct,f:40
-1b62:00c00000:03fc:0001:1:0
-REDERECORD
-p:GCE,f:40
-1c62:00c00000:0457:0001:1:0
-STB Comag
-p:SES ASTRA,f:40
-2262:00c00000:0438:0001:1:0
-FRANCE 3
-p:CSAT,f:40
-4462:00c00000:0453:0001:1:0
-kabel eins classics
-p:ProSiebenSat.1,C:1830,C:1801,C:1702,f:40
-4f62:00c00000:044b:0001:1:0
-\86XXX\87
-p:UPC Direct,f:40
-1b63:00c00000:03fc:0001:1:0
-ARIRANG TV
-p:GlobeCast,f:40
-4f63:00c00000:044b:0001:1:0
-\86Prima TV\87
-p:UPC Direct,f:40
-1b64:00c00000:03fc:0001:1:0
-AL JAZEERA ENG
-p:GCE,f:40
-2264:00c00000:0438:0001:1:0
-A LA CARTE 11
-p:CSAT,f:40
-4f64:00c00000:044b:0001:1:0
-DOQ
-p:UPC Direct,f:40
-7564:00c00000:0412:0001:1:0
-BARÇA TV
-p:BARNA,f:40
-1b65:00c00000:03fc:0001:1:0
-EXTREMADURA TV
-p:OVERON,f:40
-4f65:00c00000:044b:0001:1:0
-\86Filmmuzeum\86
-p:UPC Direct,f:40
-7565:00c00000:0412:0001:1:0
-TAQUILLA 5
-p:TQ5,f:40
-4f66:00c00000:044b:0001:1:0
-\86CT4 Sport\87
-p:UPC Direct,f:40
-6d66:00c00000:0437:0001:1:0
-ZDF
-p:ZDFvision,f:40
-7566:00c00000:0412:0001:1:0
-TAQUILLA 6
-p:TQ6,f:40
-2267:00c00000:0438:0001:1:0
-TRACE TV
-p:CSAT,f:40
-4f67:00c00000:04ff:0001:1:0
-\86Echo TV\87
-p:UPC Direct,f:40
-6d67:00c00000:0437:0001:1:0
-3sat
-p:ZDFvision,f:40
-7567:00c00000:0412:0001:1:0
-TAQUILLA 7
-p:TQ7,f:40
-2268:00c00000:0438:0001:1:0
-TELE MELODY
-p:CSAT,f:40
-4f68:00c00000:04ff:0001:1:0
-\86HBO2\87
-p:UPC Direct,f:40
-6d68:00c00000:0437:0001:1:0
-KiKa
-p:ZDFvision,f:40
-6f68:00c00000:042c:0001:1:0
-Spare 2
-p:TBS,f:40
-7468:00c00000:03f0:0001:1:0
-CANAL ODISEA
-p:Digital+,f:40
-7568:00c00000:0412:0001:1:0
-TAQUILLA X
-p:TQ10,f:40
-2069:00c00000:0430:0001:1:0
-DOWNLOAD TNTSAT STRONG
-p:IMEDIA,f:40
-2269:00c00000:0438:0001:1:0
-CINE+
-p:CSAT,f:40
-4f69:00c00000:04ff:0001:1:0
-\86HBO\87
-p:UPC Direct,f:40
-6f69:00c00000:042c:0001:1:0
-Cartoon Network
-p:TBS,f:40
-7469:00c00000:03f0:0001:1:0
-JETIX
-p:FK,f:40
-7569:00c00000:0412:0001:1:0
-TAQUILLA XX
-p:TQX,f:40
-226a:00c00000:0438:0001:1:0
-CINE+
-p:CSAT,f:40
-4f6a:00c00000:04ff:0001:1:0
-\86HBO\87
-p:UPC Direct,f:40
-6f6a:00c00000:042c:0001:1:0
-CNN Int.
-p:CNN,f:40
-746a:00c00000:03f0:0001:1:0
-DISNEY CH. +1
-p:DCH1,f:40
-756a:00c00000:0412:0001:1:0
-TAQUILLA XX
-p:TQXX,f:40
-1b6b:00c00000:03fc:0001:1:0
-BFM TV
-p:OVERON,f:40
-226b:00c00000:0438:0001:1:0
-A LA CARTE 10
-p:CSAT,f:40
-4f6b:00c00000:04ff:0001:1:0
-\86Duna TV\87
-p:UPC Direct,f:40
-6d6b:00c00000:0437:0001:1:0
-ZDFinfokanal
-p:ZDFvision,f:40
-746b:00c00000:03f0:0001:1:0
-PLAYHOUSE
-p:PLAYDC,f:40
-756b:00c00000:0412:0001:1:0
-C+ EVENTOS
-p:CPD3,f:40
-226c:00c00000:0438:0001:1:0
-A LA CARTE
-p:CSAT,f:40
-4f6c:00c00000:04ff:0001:1:0
-\86TV Paprika\87
-p:UPC Direct,f:40
-746c:00c00000:03f0:0001:1:0
-C+ ACCIÓN
-p:CPC1,f:40
-756c:00c00000:0412:0001:1:0
-TAQUILLA 9
-p:TQ9,f:40
-226d:00c00000:0438:0001:1:0
-ESPN CLASSIC
-p:CSAT,f:40
-4f6d:00c00000:04ff:0001:1:0
-\86Magyar ATV\87
-p:UPC Direct,f:40
-6f6d:00c00000:042c:0001:1:0
-TCM
-p:TBS,f:40
-746d:00c00000:03f0:0001:1:0
-C+ COMEDIA
-p:CPC2,f:40
-4f6e:00c00000:04ff:0001:1:0
-\86Cool\87
-p:UPC Direct,f:40
-6d6e:00c00000:0437:0001:1:0
-ZDFdokukanal
-p:ZDFvision,f:40
-6f6e:00c00000:042c:0001:1:0
-Spare 28526
-p:Arqiva,f:40
-746e:00c00000:03f0:0001:1:0
-C+ DCINE
-p:CPC3,f:40
-756e:00c00000:0412:0001:1:0
-C+ EVENTOS
-p:CPD3,f:40
-4f6f:00c00000:04ff:0001:1:0
-\86TV Deko\87
-p:UPC Direct,f:40
-6f6f:00c00000:042c:0001:1:0
-Boomerang
-p:TBS,f:40
-746f:00c00000:03f0:0001:1:0
-TOON DISNEY
-p:TOONDC,f:40
-756f:00c00000:0412:0001:1:0
-TAQUILLA 8
-p:TQ8,f:40
-2270:00c00000:0438:0001:1:0
-MOTORS TV
-p:CSAT,f:40
-2b70:00c00000:03f3:0001:1:0
-arte HD
-p:ZDFvision,f:40
-4f70:00c00000:04ff:0001:1:0
-\86Sport 1\87
-p:UPC Direct,f:40
-6d70:00c00000:0437:0001:1:0
-ZDFtheaterkanal
-p:ZDFvision,f:40
-7470:00c00000:03f0:0001:1:0
-OP. TRIUNFO
-p:DIGITAL+,f:40
-7570:00c00000:0412:0001:1:0
-
-p:Digital+,f:40
-4f71:00c00000:04ff:0001:1:0
-\86m2\87
-p:UPC Direct,f:40
-7471:00c00000:03f0:0001:1:0
-SONY TV
-p:DIGITAL+,f:40
-4f72:00c00000:04ff:0001:1:0
-\86Minimax / Animax\87
-p:UPC Direct,f:40
-7472:00c00000:03f0:0001:1:0
-C+ ACCIÓN
-p:CPC1,f:40
-4f73:00c00000:04ff:0001:1:0
-\86Sport 2\86
-p:UPC Direct,f:40
-7473:00c00000:03f0:0001:1:0
-C+ COMEDIA
-p:CPC2,f:40
-2774:00c00000:0444:0001:1:0
-\86DELUXE\87 MUSIC
-p:BetaDigital,f:40
-4f74:00c00000:04ff:0001:1:0
-\86Film+\86
-p:UPC Direct,f:40
-7474:00c00000:03f0:0001:1:0
-C+ DCINE
-p:CPC3,f:40
-2275:00c00000:0438:0001:1:0
-FRANCE 2
-p:CSAT,f:40
-2775:00c00000:0444:0001:1:0
-DMAX
-p:BetaDigital,f:40
-4f75:00c00000:0427:0001:1:0
-\86Cartoon Network/TCM\87
-p:UPC Direct,f:40
-7475:00c00000:03f0:0001:1:0
-INTERECON TV
-p:DIGITAL,f:40
-2276:00c00000:0438:0001:1:0
-FRANCE 3
-p:CSAT,f:40
-2776:00c00000:0444:0001:1:0
-! Primetime
-p:BetaDigital,f:40
-4f76:00c00000:0427:0001:1:0
-\86Viasat 3\87
-p:UPC Direct,f:40
-6f76:00c00000:0457:0001:1:0
-WDR Aachen
-p:ARD,f:40
-2777:00c00000:0444:0001:1:0
-\86ONTV\87 Regional
-p:BetaDigital,f:40
-4f77:00c00000:0427:0001:1:0
-\86Boomerang\87
-p:UPC Direct,f:40
-6f77:00c00000:0457:0001:1:0
-WDR Wuppertal
-p:ARD,f:40
-2778:00c00000:0444:0001:1:0
-\86F\87ranken \86SAT\87
-p:BetaDigital,f:40
-4f78:00c00000:0427:0001:1:0
-\86Viasat Explorer\87
-p:UPC Direct,f:40
-6f78:00c00000:0457:0001:1:0
-WDR Bonn
-p:ARD,f:40
-2779:00c00000:0444:0001:1:0
-LokalSAT
-p:BetaDigital,f:40
-4f79:00c00000:0427:0001:1:0
-\86Viasat History\87
-p:UPC Direct,f:40
-6f79:00c00000:0457:0001:1:0
-WDR Duisburg
-p:ARD,f:40
-277a:00c00000:0444:0001:1:0
-\86mü\87nchen.\86tv/RFO\87
-p:BetaDigital,f:40
-4f7a:00c00000:0427:0001:1:0
-\86STV1\87
-p:UPC Direct,f:40
-277b:00c00000:0444:0001:1:0
-DrDish Television
-p:BetaDigital,f:40
-4f7b:00c00000:0427:0001:1:0
-\86TA3\87
-p:UPC Direct,f:40
-277c:00c00000:0444:0001:1:0
-TVM/WWTV
-p:BetaDigital,f:40
-427c:00c00000:0446:0001:1:0
-AB MOTEURS
-p:ABSAT,C:0500,C:0100,f:40
-4f7c:00c00000:0427:0001:1:0
-\86Travel\87
-p:UPC Direct,f:40
-277d:00c00000:0444:0001:1:0
-tirol tv
-p:BetaDigital,f:40
-427d:00c00000:0446:0001:1:0
-AB1
-p:ABSAT,C:0500,C:0100,f:40
-4f7d:00c00000:0427:0001:1:0
-\86MGM\87
-p:UPC Direct,f:40
-277e:00c00000:0444:0001:1:0
-.
-p:BetaDigital,C:1830,C:1801,C:1702,f:40
-427e:00c00000:0446:0001:1:0
-ANIMAUX
-p:ABSAT,C:0100,f:40
-4f7e:00c00000:0427:0001:1:0
-\86bebe tv\87
-p:UPC Direct,f:40
-277f:00c00000:0444:0001:1:0
-entavio Home
-p:BetaDigital,f:40
-427f:00c00000:0446:0001:1:0
-ENCYCLOPEDIA
-p:ABSAT,C:0100,f:40
-2f80:00c00000:0454:0001:1:0
-Bloomberg TV Germany
-p:Bloomberg,f:40
-4280:00c00000:0446:0001:1:0
- XXL
-p:ABSAT,C:0500,C:0100,f:40
-4f80:00c00000:0427:0001:1:0
-\86AXN\87
-p:UPC Direct,f:40
-7080:00c00000:0443:0001:1:0
-RTL Austria
-p:RTL,f:40
-0381:00c00000:0021:0085:1:0
-\86SpiritON\87.TV
-p:BetaDigital,f:40
-2581:00c00000:0458:0001:1:0
-RTL9
-p:CSAT,f:40
-4281:00c00000:0446:0001:1:0
-ESCALES
-p:ABSAT,C:0500,C:0100,f:40
-4f81:00c00000:0427:0001:1:0
-\86Blue Hustler\87
-p:UPC Direct,f:40
-0382:00c00000:0021:0085:1:0
-XXHOME
-p:BetaDigital,f:40
-1782:00c00000:0457:0001:1:0
-TechniTipp-TV
-p:TechniSat,f:40
-2582:00c00000:0458:0001:1:0
-AB1
-p:CSAT,f:40
-4282:00c00000:0446:0001:1:0
-toute L'HISTOIRE
-p:ABSAT,C:0100,f:40
-4f82:00c00000:0407:0001:1:0
-\86HirTV\87
-p:UPC Direct,f:40
-0383:00c00000:0021:0085:1:0
-meinTVshop
-p:BetaDigital,f:40
-2583:00c00000:0458:0001:1:0
-AB MOTEURS
-p:CSAT,f:40
-2783:00c00000:0444:0001:1:0
-Top Girl Sex TV
-p:BetaDigital,f:40
-4283:00c00000:0446:0001:1:0
-LCP
-p:ABSAT,f:40
-4f83:00c00000:0407:0001:1:0
-\86M1 \87
-p:UPC Direct,f:40
-0384:00c00000:0021:0085:1:0
-DSF
-p:BetaDigital,f:40
-2584:00c00000:0458:0001:1:0
-CINE FX
-p:CSAT,f:40
-2784:00c00000:0444:0001:1:0
-Hot Girls TV
-p:BetaDigital,f:40
-4284:00c00000:0446:0001:1:0
-NT1
-p:ABSAT,f:40
-4f84:00c00000:0407:0001:1:0
-\86MTV Hungary\87
-p:UPC Direct,f:40
-2585:00c00000:0458:0001:1:0
-MANGAS
-p:CSAT,f:40
-2785:00c00000:0444:0001:1:0
-Zack Erotik TV
-p:BetaDigital,f:40
-4f85:00c00000:0407:0001:1:0
-\86Cinemax\87
-p:UPC Direct,f:40
-7085:00c00000:0443:0001:1:0
-VOX Austria
-p:RTL,f:40
-2586:00c00000:0458:0001:1:0
-XXL
-p:CSAT,f:40
-2786:00c00000:0444:0001:1:0
-Blitzkontakt.TV
-p:BetaDigital,f:40
-4286:00c00000:0446:0001:1:0
-ACTION
-p:ABSAT,C:0100,f:40
-4f86:00c00000:0407:0001:1:0
-\86TV Budapest\87
-p:UPC Direct,f:40
-2587:00c00000:0458:0001:1:0
-ANIMAUX
-p:CSAT,f:40
-2787:00c00000:0444:0001:1:0
-.6live
-p:BetaDigital,f:40
-4287:00c00000:0446:0001:1:0
-MANGAS
-p:ABSAT,C:0100,f:40
-4f87:00c00000:0407:0001:1:0
-\86RTL Klub\87
-p:UPC Direct,f:40
-2588:00c00000:0458:0001:1:0
-ESCALES
-p:CSAT,f:40
-2788:00c00000:0444:0001:1:0
-Amore TV
-p:BetaDigital,f:40
-4f88:00c00000:0407:0001:1:0
-\86Spektrum Int \87
-p:UPC Direct,f:40
-7788:00c00000:0424:0001:1:0
-40 LATINO
-p:40LAT,f:40
-2589:00c00000:0458:0001:1:0
-ACTION
-p:CSAT,f:40
-2789:00c00000:0444:0001:1:0
-Herzschlag69
-p:BetaDigital,f:40
-4289:00c00000:0446:0001:1:0
-CINE POLAR
-p:ABSAT,C:0100,f:40
-4f89:00c00000:0407:0001:1:0
-\86Sport Klub\87
-p:UPC Direct,f:40
-7789:00c00000:0424:0001:1:0
-GOLF+
-p:GOLF+,f:40
-258a:00c00000:0458:0001:1:0
-TOUTE L'HISTOIRE
-p:CSAT,f:40
-278a:00c00000:0444:0001:1:0
-tele6.tv
-p:BetaDigital,f:40
-428a:00c00000:0446:0001:1:0
-CINE FX
-p:ABSAT,C:0100,f:40
-4f8a:00c00000:0407:0001:1:0
-\86Film+ \87
-p:UPC Direct,f:40
-708a:00c00000:0443:0001:1:0
-RTL2 Austria
-p:RTL,f:40
-778a:00c00000:0424:0001:1:0
-CANAL+...30
-p:CP30,f:40
-278b:00c00000:0444:0001:1:0
-maennerwelt.tv
-p:BetaDigital,f:40
-428b:00c00000:0446:0001:1:0
-RTL9
-p:ABsat,C:0100,f:40
-4f8b:00c00000:0407:0001:1:0
-\86TV2 \87
-p:UPC Direct,f:40
-778b:00c00000:0424:0001:1:0
-PLAYBOY TV
-p:Playboy TV,f:40
-138c:00c00000:0455:0035:1:0
-NET5
-p:CANALDIGITAAL,f:40
-278c:00c00000:0444:0001:1:0
-Gebrauchtwagen TV
-p:BetaDigital,f:40
-4f8c:00c00000:0407:0001:1:0
-\86Sport 1 CZE \87
-p:UPC Direct,f:40
-778c:00c00000:0424:0001:1:0
-40 LATINO
-p:40LAT,f:40
-138d:00c00000:0455:0035:1:0
-SBS6
-p:CANALDIGITAAL,f:40
-238d:00c00000:044a:0001:1:0
-GUIDE TV
-p:CSAT,f:40
-278d:00c00000:0444:0001:1:0
-Traumkontakt.tv
-p:BetaDigital,f:40
-4f8d:00c00000:0407:0001:1:0
-\86Viva Hungary\87
-p:UPC Direct,f:40
-778d:00c00000:0424:0001:1:0
-NAT GEOGRAPH
-p:NATGEO,f:40
-238e:00c00000:044a:0001:1:0
-CANAL+ HI-TECH HD
-p:IMEDIA,f:40
-278e:00c00000:0444:0001:1:0
-Po6
-p:BetaDigital,f:40
-4f8e:00c00000:044b:0001:1:0
-\86Eurosport 2\87
-p:UPC Direct,f:40
-768e:00c00000:041e:0001:1:0
-TAQUILLA 1
-p:TQ1,f:40
-778e:00c00000:0424:0001:1:0
-C+ FÚTBOL
-p:CPD1,f:40
-218f:00c00000:0442:0001:1:0
-FRANCE 5
-p:CSAT,f:40
-238f:00c00000:044a:0001:1:0
-NATIONAL GEO HD
-p:CSAT,f:40
-278f:00c00000:0444:0001:1:0
-2255live
-p:BetaDigital,f:40
-708f:00c00000:0443:0001:1:0
-Super RTL A
-p:RTL,f:40
-768f:00c00000:041e:0001:1:0
-TAQUILLA 2
-p:TQ2,f:40
-778f:00c00000:0424:0001:1:0
-C+ DEPORTES
-p:CPD2,f:40
-2390:00c00000:044a:0001:1:0
-MON CSAT
-p:CSAT,f:40
-2790:00c00000:0444:0001:1:0
-.
-p:BetaDigital,f:40
-4290:00c00000:0446:0001:1:0
-NT1
-p:ABSAT,f:40
-7690:00c00000:041e:0001:1:0
-TAQUILLA 3
-p:TQ3,f:40
-2791:00c00000:0444:0001:1:0
-AllesfürsHandy
-p:BetaDigital,f:40
-3391:00c00000:044e:0001:1:0
-History Channel
-p:arena,f:40
-4291:00c00000:0446:0001:1:0
-LCP
-p:ABSAT,f:40
-7691:00c00000:041e:0001:1:0
-TAQUILLA 4
-p:TQ4,f:40
-0292:00c00000:0005:0085:1:0
-\86Daystar Television\87 Network
-p:BetaDigital,f:40
-2792:00c00000:0444:0001:1:0
-A1 Teleshop
-p:BetaDigital,f:40
-3392:00c00000:044e:0001:1:0
-National Geographic Channel
-p:arena,f:40
-6e92:00c00000:04b1:0001:1:0
-WDR Bielefeld
-p:ARD,f:40
-7792:00c00000:0424:0001:1:0
-
-p:DIGITAL+,f:40
-0293:00c00000:0005:0085:1:0
-tv.gusto
-p:BetaDigital,f:40
-1393:00c00000:0455:0035:1:0
-Hallmark
-p:CANALDIGITAAL,f:40
-2393:00c00000:044a:0001:1:0
-
-p:CSAT,f:40
-2793:00c00000:0444:0001:1:0
-.
-p:BetaDigital,f:40
-3393:00c00000:044e:0001:1:0
-ANIMAX (a/P)
-p:arena/Premiere,f:40
-6e93:00c00000:04b1:0001:1:0
-WDR Dortmund
-p:ARD,f:40
-7793:00c00000:0424:0001:1:0
-FOX NEWS
-p:FOXNWS,f:40
-2394:00c00000:044a:0001:1:0
-
-p:CSAT,f:40
-2f94:00c00000:0454:0001:1:0
-Chamber TV
-p:Chambre des Députées,f:40
-3394:00c00000:044e:0001:1:0
-Cartoon Network (a/P)
-p:arena/Premiere,f:40
-6e94:00c00000:04b1:0001:1:0
-WDR Düsseldorf
-p:ARD,f:40
-7594:00c00000:0422:0001:1:0
-MÚSICA DIGITAL
-p:DIGITAL+,f:40
-7694:00c00000:041e:0001:1:0
-ANIMAX
-p:DIGITAL+,f:40
-0295:00c00000:0021:0085:1:0
-AstroTV
-p:BetaDigital,f:40
-2395:00c00000:044a:0001:1:0
-ADIBOU TV
-p:CSAT,f:40
-3395:00c00000:044e:0001:1:0
-EuroSport 2 (a/P)
-p:arena/Premiere,f:40
-6e95:00c00000:04b1:0001:1:0
-WDR Essen
-p:ARD,f:40
-7695:00c00000:041e:0001:1:0
-TAQUILLA XY
-p:TXY,f:40
-0296:00c00000:0005:0085:1:0
-1-2-3.tv
-p:BetaDigital,f:40
-2396:00c00000:044a:0001:1:0
-ESPACE CLIENT
-p:CSAT,f:40
-3396:00c00000:044e:0001:1:0
-Kinowelt
-p:arena,f:40
-6e96:00c00000:04b1:0001:1:0
-WDR Münster
-p:ARD,f:40
-7596:00c00000:0422:0001:1:0
-RADIOS
-p:DIGITAL+,f:40
-7696:00c00000:041e:0001:1:0
-CARTOON NET.
-p:CTN,f:40
-0297:00c00000:0005:0085:1:0
-Deutsches Gesundheitsfernsehen
-p:BetaDigital,f:40
-1397:00c00000:0455:0035:1:0
-TMF
-p:CANALDIGITAAL,f:40
-3397:00c00000:044e:0001:1:0
-RTL Living
-p:arena,f:40
-6e97:00c00000:04b1:0001:1:0
-WDR Siegen
-p:ARD,f:40
-0298:00c00000:0004:0085:1:0
-\86BIG B\87ROTHER
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-0f98:00c00000:0454:0001:1:0
-LUXE.TV SD
-p:DVL.TV,f:40
-3398:00c00000:044e:0001:1:0
-Biography Channel
-p:arena,f:40
-2199:00c00000:0448:0001:1:0
-
-p:CSAT,f:40
-2399:00c00000:044a:0001:1:0
-TF1 HD
-p:CSAT,f:40
-3399:00c00000:044e:0001:1:0
-FOX
-p:arena,f:40
-7699:00c00000:041e:0001:1:0
-BOOMERANG
-p:BOOM,f:40
-0f9a:00c00000:0454:0001:1:0
-RTL Tele Letzebuerg
-p:,f:40
-219a:00c00000:0448:0001:1:0
-ONZEO
-p:CSAT,f:40
-239a:00c00000:044a:0001:1:0
-M6 HD
-p:CSAT,f:40
-769a:00c00000:041e:0001:1:0
-TAQUILLA 10
-p:TQ10,f:40
-0f9b:00c00000:0454:0001:1:0
-!Kanal Telemedial
-p:SES ASTRA,f:40
-219b:00c00000:0448:0001:1:0
-MOSAIQUE
-p:CSAT,f:40
-239b:00c00000:044a:0001:1:0
-CINE PREMIER HD
-p:CSAT,f:40
-339b:00c00000:044e:0001:1:0
-Bundesliga HOME
-p:arena,f:40
-769b:00c00000:041e:0001:1:0
-SAN FERMÍN
-p:DIGITAL+,f:40
-139c:00c00000:0455:0035:1:0
-Veronica/JETIX
-p:CANALDIGITAAL,f:40
-239c:00c00000:044a:0001:1:0
-13EME RUE HD
-p:CSAT,f:40
-339c:00c00000:044e:0001:1:0
-Bundesliga INFO
-p:arena,f:40
-779c:00c00000:0424:0001:1:0
-C+ FÚTBOL
-p:CPD1,f:40
-0f9d:00c00000:0454:0001:1:0
-Astra Vision
-p:SES ASTRA,f:40
-339d:00c00000:044e:0001:1:0
-Bundesliga 1
-p:arena,f:40
-779d:00c00000:0424:0001:1:0
-C+ DEPORTES
-p:CPD2,f:40
-339e:00c00000:044e:0001:1:0
-Bundesliga 2
-p:arena,f:40
-209f:00c00000:0432:0001:1:0
-C CINEMA CULTE
-p:CSAT,f:40
-219f:00c00000:0448:0001:1:0
-SAILING CHANNEL
-p:CSAT,f:40
-339f:00c00000:044e:0001:1:0
-Bundesliga 3
-p:arena,f:40
-20a0:00c00000:0432:0001:1:0
-MCM
-p:CSAT,f:40
-21a0:00c00000:0448:0001:1:0
-MOSAIQUE
-p:CSAT,f:40
-23a0:00c00000:044a:0001:1:0
-CE SOIR
-p:CSAT,f:40
-33a0:00c00000:044e:0001:1:0
-Bundesliga 4
-p:arena,f:40
-13a1:00c00000:0455:0035:1:0
-BVN
-p:CANALDIGITAAL,f:40
-21a1:00c00000:0448:0001:1:0
-MMD
-p:CSAT,f:40
-33a1:00c00000:044e:0001:1:0
-Bundesliga 7
-p:arena,f:40
-20a2:00c00000:0432:0001:1:0
-MCM POP
-p:CSAT,f:40
-23a2:00c00000:044a:0001:1:0
-
-p:CSAT,f:40
-33a2:00c00000:044e:0001:1:0
-Bundesliga 8
-p:arena,f:40
-20a3:00c00000:0432:0001:1:0
-CHEZ VOUS TV
-p:CSAT,f:40
-21a3:00c00000:0448:0001:1:0
-CASH TV
-p:CSAT,f:40
-13a4:00c00000:0455:0035:1:0
-Film1.3
-p:CANALDIGITAAL,f:40
-23a4:00c00000:044a:0001:1:0
-
-p:CSAT,f:40
-0fa5:00c00000:0451:0035:1:0
-Film1.1
-p:CANALDIGITAAL,f:40
-13a5:00c00000:0455:0035:1:0
-BiB
-p:CANALDIGITAAL,f:40
-21a5:00c00000:0448:0001:1:0
-PRIVATE SPICE
-p:CSAT,f:40
-6ea5:00c00000:04b1:0001:1:0
-NDR FS HH+
-p:ARD,f:40
-0fa6:00c00000:0451:0035:1:0
-Sport1
-p:CANALDIGITAAL,f:40
-13a6:00c00000:0455:0035:1:0
-Tele2 / Het Gesprek
-p:CANALDIGITAAL,f:40
-20a6:00c00000:0432:0001:1:0
-VIRGIN 17
-p:CSAT,f:40
-23a6:00c00000:044a:0001:1:0
-
-p:CSAT,f:40
-27a6:00c00000:0444:0001:1:0
-Liebesglück.TV
-p:BetaDigital,f:40
-6ea6:00c00000:04b1:0001:1:0
-NDR FS MV+
-p:ARD,f:40
-0fa7:00c00000:0451:0035:1:0
-Film1.2
-p:CANALDIGITAAL,f:40
-20a7:00c00000:0432:0001:1:0
-FOXLIFE
-p:CSAT,f:40
-21a7:00c00000:0448:0001:1:0
-
-p:CSAT,f:40
-27a7:00c00000:0444:0001:1:0
-Partnersuche.TV
-p:BetaDigital,f:40
-6ea7:00c00000:04b1:0001:1:0
-NDR FS SH+
-p:ARD,f:40
-00a8:00c00000:0001:0085:1:0
-HIT24
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-20a8:00c00000:0432:0001:1:0
-TEST CDN 8
-p:CSAT,f:40
-21a8:00c00000:0448:0001:1:0
-CDN12
-p:CSAT,f:40
-27a8:00c00000:0444:0001:1:0
-ReiseSchnäppchen.TV
-p:BetaDigital,f:40
-6ea8:00c00000:04b1:0001:1:0
-alt (MDR SACHSEN+)
-p:ARD,f:40
-20a9:00c00000:0432:0001:1:0
-
-p:CSAT,f:40
-21a9:00c00000:0448:0001:1:0
-
-p:CSAT,f:40
-27a9:00c00000:0444:0001:1:0
-Venusclub.TV
-p:BetaDigital,f:40
-6ea9:00c00000:04b1:0001:1:0
-alt (MDR S-ANHALT+)
-p:ARD,f:40
-75a9:00c00000:0422:0001:1:0
-GUÍA DIGITAL+
-p:DIGITAL+,f:40
-21aa:00c00000:0448:0001:1:0
-DISNEY MAGIC HD
-p:CSAT,f:40
-27aa:00c00000:0444:0001:1:0
-Ringtone TV
-p:BetaDigital,f:40
-6eaa:00c00000:04b1:0001:1:0
-alt (MDR THÜRINGEN+)
-p:ARD,f:40
-75aa:00c00000:0422:0001:1:0
-
-p:Digital +,f:40
-0fab:00c00000:0451:0035:1:0
-NED1
-p:CANALDIGITAAL,f:40
-20ab:00c00000:0432:0001:1:0
-
-p:CSAT,f:40
-27ab:00c00000:0444:0001:1:0
-.Club1.TV
-p:BetaDigital,f:40
-75ab:00c00000:0422:0001:1:0
-Cambio Tarj.
-p:DIGITAL+,f:40
-0fac:00c00000:0451:0035:1:0
-NED2
-p:CANALDIGITAAL,f:40
-27ac:00c00000:0444:0001:1:0
-AbsolutSexy.TV
-p:BetaDigital,f:40
-75ac:00c00000:0422:0001:1:0
-RAD. LATINAS
-p:Digital+,f:40
-0fad:00c00000:0451:0035:1:0
-NED3
-p:CANALDIGITAAL,f:40
-20ad:00c00000:0432:0001:1:0
-MCM TOP
-p:CSAT,f:40
-27ad:00c00000:0444:0001:1:0
-ACHTUNG Singles.TV
-p:BetaDigital,f:40
-75ad:00c00000:0422:0001:1:0
-COMPRA SMS
-p:DIGITAL+,f:40
-0fae:00c00000:0451:0035:1:0
-Nickelodeon/Comedy Central
-p:CANALDIGITAAL,f:40
-20ae:00c00000:0432:0001:1:0
-TF1
-p:CSAT,f:40
-27ae:00c00000:0444:0001:1:0
-SexyGirls.TV
-p:BetaDigital,f:40
-75ae:00c00000:0422:0001:1:0
-
-p:Digital +,f:40
-0faf:00c00000:0451:0035:1:0
-NGC
-p:CANALDIGITAAL,f:40
-20af:00c00000:0432:0001:1:0
-M6
-p:IMEDIA,f:40
-27af:00c00000:0444:0001:1:0
-Liebestraum.TV
-p:BetaDigital,f:40
-75af:00c00000:0422:0001:1:0
-
-p:DIGITAL+,f:40
-0fb0:00c00000:0451:0035:1:0
-Tele2 2e kanaal
-p:CANALDIGITAAL,f:40
-27b0:00c00000:0444:0001:1:0
-ACHTUNG Erotik.TV
-p:BetaDigital,f:40
-75b0:00c00000:0422:0001:1:0
-TAQUILLA
-p:DIGITAL+,f:40
-27b1:00c00000:0444:0001:1:0
-Pro Erotik TV
-p:BetaDigital,f:40
-75b1:00c00000:0422:0001:1:0
-GUÍA DIGITAL+
-p:Digital+,f:40
-0fb2:00c00000:0451:0035:1:0
-Man-X
-p:CANALDIGITAAL,f:40
-21b2:00c00000:0448:0001:1:0
-
-p:CSAT,f:40
-27b2:00c00000:0444:0001:1:0
-EroticDome
-p:BetaDigital,f:40
-75b2:00c00000:0422:0001:1:0
-TAQUILLA
-p:Digital+,f:40
-20b3:00c00000:0432:0001:1:0
-TF1
-p:CSAT,f:40
-27b3:00c00000:0444:0001:1:0
-666 Girls.TV
-p:BetaDigital,f:40
-20b4:00c00000:0432:0001:1:0
-M6
-p:CSAT,f:40
-27b4:00c00000:0444:0001:1:0
-Gratis Hot TV
-p:BetaDigital,f:40
-27b5:00c00000:0444:0001:1:0
-XXXKanal.TV
-p:BetaDigital,f:40
-20b6:00c00000:0432:0001:1:0
-VIRGIN 17
-p:CSAT,f:40
-27b6:00c00000:0444:0001:1:0
-SAT Erotiktreff.TV
-p:BetaDigital,f:40
-27b7:00c00000:0444:0001:1:0
-Friends TV
-p:BetaDigital,f:40
-27b8:00c00000:0444:0001:1:0
-.
-p:BetaDigital,f:40
-24b9:00c00000:043c:0001:1:0
-TPS STAR
-p:CSAT,f:40
-27b9:00c00000:0444:0001:1:0
-Mallorca.TV
-p:BetaDigital,f:40
-24ba:00c00000:043c:0001:1:0
-SERIE CLUB
-p:CSAT,f:40
-27ba:00c00000:0444:0001:1:0
-.
-p:BetaDigital,f:40
-24bb:00c00000:043c:0001:1:0
-W9
-p:CSAT,f:40
-27bb:00c00000:0444:0001:1:0
-.
-p:BetaDigital,f:40
-77bb:00c00000:040a:0001:1:0
-CLÁSICO
-p:CLASIC,f:40
-24bc:00c00000:043c:0001:1:0
-INFOSPORT
-p:CSAT,f:40
-27bc:00c00000:0444:0001:1:0
-.
-p:BetaDigital,f:40
-77bc:00c00000:040a:0001:1:0
-24 HORAS
-p:24H,f:40
-24bd:00c00000:043c:0001:1:0
-C CINEMA STAR
-p:CSAT,f:40
-6fbd:00c00000:042c:0001:1:0
-1.068 Spare
-p:Arqiva,f:40
-77bd:00c00000:040a:0001:1:0
-TNT
-p:CMA30,f:40
-1bbe:00c00000:0423:0001:1:0
-TVP1
-p:TVP,f:40
-23be:00c00000:044a:0001:1:0
-DT1
-p:CSAT,f:40
-24be:00c00000:043c:0001:1:0
-TELETOON
-p:CSAT,f:40
-77be:00c00000:040a:0001:1:0
-CLAN TVE
-p:Digital+,f:40
-1bbf:00c00000:0423:0001:1:0
-TVP2
-p:TVP,f:40
-23bf:00c00000:044a:0001:1:0
-DT2
-p:CSAT,f:40
-24bf:00c00000:043c:0001:1:0
-M6 MUSIC HITS
-p:CSAT,f:40
-77bf:00c00000:040a:0001:1:0
-24 HORAS
-p:24H,f:40
-1bc0:00c00000:0423:0001:1:0
-TVP Info
-p:TVP,f:40
-24c0:00c00000:043c:0001:1:0
-DISCOVERY
-p:CSAT,f:40
-76c0:00c00000:040e:0001:1:0
-CANAL+
-p:CP,f:40
-77c0:00c00000:040a:0001:1:0
-TELENOVELAS
-p:TLNV,f:40
-1bc1:00c00000:0423:0001:1:0
-TVP Sport
-p:Telewizja Polska SA,f:40
-21c1:00c00000:0448:0001:1:0
-MOSAIQUE
-p:CSAT,f:40
-23c1:00c00000:044a:0001:1:0
-DT4
-p:CSAT,f:40
-24c1:00c00000:043c:0001:1:0
-PINK TV/PINK X
-p:CSAT,f:40
-76c1:00c00000:040e:0001:1:0
-DOCU TVE
-p:Docu TVE,f:40
-77c1:00c00000:040a:0001:1:0
-HOLLYWOOD
-p:HOLLYW,f:40
-1bc2:00c00000:0423:0001:1:0
-INT6
-p:Telewizja Polska SA,f:40
-23c2:00c00000:044a:0001:1:0
-DT5
-p:CSAT,f:40
-24c2:00c00000:043c:0001:1:0
-TELETOON+1
-p:CSAT,f:40
-77c2:00c00000:040a:0001:1:0
-HISTORIA
-p:HIST,f:40
-23c3:00c00000:044a:0001:1:0
-DT6
-p:CSAT,f:40
-76c3:00c00000:040e:0001:1:0
-DISNEY CH.
-p:DCH,f:40
-77c3:00c00000:040a:0001:1:0
-TELENOVELAS
-p:TLNV,f:40
-23c4:00c00000:044a:0001:1:0
-DT7
-p:CSAT,f:40
-76c4:00c00000:040e:0001:1:0
-SPORTMANÍA
-p:SPM,f:40
-23c5:00c00000:044a:0001:1:0
-DT8
-p:CSAT,f:40
-76c5:00c00000:040e:0001:1:0
-40 TV
-p:+MUS,f:40
-77c5:00c00000:040a:0001:1:0
-TV CANARIA
-p:CANAR,f:40
-22c6:00c00000:045a:0001:1:0
-CINE POLAR
-p:CSAT,f:40
-23c6:00c00000:044a:0001:1:0
-DT9
-p:CSAT,f:40
-76c6:00c00000:040e:0001:1:0
-DISCOVERY
-p:DCR,f:40
-77c6:00c00000:040a:0001:1:0
-CUATRO
-p:Digital+,f:40
-22c7:00c00000:045a:0001:1:0
-GULLI
-p:CSAT,f:40
-23c7:00c00000:044a:0001:1:0
-DT10
-p:CSAT,f:40
-75c7:00c00000:0422:0001:1:0
-
-p:DIGITAL+,f:40
-77c7:00c00000:040a:0001:1:0
-CUATRO
-p:Digital+,f:40
-22c8:00c00000:045a:0001:1:0
-BLOOMBERG TV
-p:CSAT,f:40
-23c8:00c00000:044a:0001:1:0
-DT11
-p:CSAT,f:40
-22c9:00c00000:045a:0001:1:0
-TEVA
-p:CSAT,f:40
-23c9:00c00000:044a:0001:1:0
-DT12
-p:CSAT,f:40
-32c9:00c00000:045d:0001:1:0
-ORF1
-p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
-77c9:00c00000:040a:0001:1:0
-TNT
-p:CMA30,f:40
-22ca:00c00000:045a:0001:1:0
-DISNEY CHANNEL+1
-p:CSAT,f:40
-23ca:00c00000:044a:0001:1:0
-DT13
-p:CSAT,f:40
-32ca:00c00000:045d:0001:1:0
-ORF2
-p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
-6dca:00c00000:044d:0001:1:0
-Das Erste
-p:ARD,f:40
-75ca:00c00000:0422:0001:1:0
-
-p:DIGITAL+,f:40
-76ca:00c00000:040e:0001:1:0
-CANAL+ 2
-p:CP2,f:40
-22cb:00c00000:045a:0001:1:0
-PLAYHOUSE DISNEY
-p:CSAT,f:40
-23cb:00c00000:044a:0001:1:0
-DT14
-p:CSAT,f:40
-32cb:00c00000:045d:0001:1:0
-ORF2 W
-p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
-6dcb:00c00000:044d:0001:1:0
-Bayerisches FS Süd
-p:ARD,f:40
-22cc:00c00000:045a:0001:1:0
-DISNEY CINEMAGIC
-p:CSAT,f:40
-23cc:00c00000:044a:0001:1:0
-DT15
-p:CSAT,f:40
-32cc:00c00000:045d:0001:1:0
-ORF2 N
-p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
-42cc:00c00000:041d:0001:1:0
-Belsat TV
-p:TVP,f:40
-6dcc:00c00000:044d:0001:1:0
-hr-fernsehen
-p:ARD,f:40
-75cc:00c00000:0422:0001:1:0
-
-p:DIGITAL+,f:40
-76cc:00c00000:040e:0001:1:0
-TELEDEPORTE
-p:TDEP,f:40
-f1cc:00c00000:0421:0001:1:0
-Bibel TV
-p:Bibel TV,f:40
-22cd:00c00000:045a:0001:1:0
-DISNEY MAGIC+1
-p:CSAT,f:40
-23cd:00c00000:044a:0001:1:0
-DT16
-p:CSAT,f:40
-32cd:00c00000:045d:0001:1:0
-ORF2 B
-p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
-42cd:00c00000:041d:0001:1:0
-TV TRWAM
-p:TVP,f:40
-74cd:00c00000:03f8:0001:1:0
-TELEFE INT
-p:DIGITAL+,f:40
-23ce:00c00000:044a:0001:1:0
-DT17
-p:CSAT,f:40
-32ce:00c00000:045d:0001:1:0
-ORF2 O
-p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
-42ce:00c00000:041d:0001:1:0
-TV Polonia
-p:TVP,f:40
-6dce:00c00000:044d:0001:1:0
-Bayerisches FS Nord
-p:ARD,f:40
-74ce:00c00000:03f8:0001:1:0
-PORTADA
-p:ESCAP,f:40
-75ce:00c00000:0422:0001:1:0
-IBERDROLA
-p:DIGITAL+,f:40
-22cf:00c00000:045a:0001:1:0
-E! ENTERTAINMENT
-p:CSAT,f:40
-23cf:00c00000:044a:0001:1:0
-DT18
-p:CSAT,f:40
-24cf:00c00000:043c:0001:1:0
-W9
-p:CSAT,f:40
-32cf:00c00000:045d:0001:1:0
-ORF2 S
-p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
-42cf:00c00000:041d:0001:1:0
-TVP Historia
-p:TVP,f:40
-6dcf:00c00000:044d:0001:1:0
-WDR Köln
-p:ARD,f:40
-74cf:00c00000:03f8:0001:1:0
-TCM MODERNO
-p:TCM,f:40
-75cf:00c00000:0422:0001:1:0
-
-p:Digital +,f:40
-23d0:00c00000:044a:0001:1:0
-DT19
-p:CSAT,f:40
-32d0:00c00000:045d:0001:1:0
-ORF2 T
-p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
-42d0:00c00000:041d:0001:1:0
-TVP Kultura
-p:TVP,f:40
-6dd0:00c00000:044d:0001:1:0
-BR-alpha*
-p:ARD,f:40
-20d1:00c00000:043e:0001:1:0
-
-p:CSAT,f:40
-23d1:00c00000:044a:0001:1:0
-DT20
-p:CSAT,f:40
-32d1:00c00000:045d:0001:1:0
-ORF2 V
-p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
-6dd1:00c00000:044d:0001:1:0
-SWR Fernsehen BW
-p:ARD,f:40
-20d2:00c00000:043e:0001:1:0
-A LA CARTE 1
-p:CSAT,f:40
-32d2:00c00000:045d:0001:1:0
-ORF2 St
-p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
-75d2:00c00000:0422:0001:1:0
-CANAL+ HD
-p:DIGITAL+,f:40
-20d3:00c00000:043e:0001:1:0
-A LA CARTE 2
-p:CSAT,f:40
-32d3:00c00000:045d:0001:1:0
-ORF2 K
-p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
-07d4:00c00000:0449:0035:1:0
-RTL4
-p:CANALDIGITAAL,f:40
-20d4:00c00000:043e:0001:1:0
-A LA CARTE 3
-p:CSAT,f:40
-32d4:00c00000:045d:0001:1:0
-ATV+
-p:ATV+,C:1801,C:1702,C:0d05,C:1762,f:40
-07d5:00c00000:0449:0035:1:0
-RTL5
-p:CANALDIGITAAL,f:40
-20d5:00c00000:043e:0001:1:0
-A LA CARTE 4
-p:CSAT,f:40
-32d5:00c00000:045d:0001:1:0
-HITRADIO OE3
-p:ORF,f:40
-07d6:00c00000:0449:0035:1:0
-RTL7
-p:CANALDIGITAAL,f:40
-20d6:00c00000:043e:0001:1:0
-A LA CARTE 5
-p:CSAT,f:40
-32d6:00c00000:045d:0001:1:0
-ORF2E
-p:ORF,f:40
-75d6:00c00000:0422:0001:1:0
-SAN FERMÍN
-p:DIGITAL+,f:40
-1fd7:00c00000:0434:0001:1:0
-EUROSPORT
-p:CSAT,f:40
-20d7:00c00000:043e:0001:1:0
-A LA CARTE 6
-p:CSAT,f:40
-1fd8:00c00000:0434:0001:1:0
-TMC
-p:CSAT,f:40
-20d8:00c00000:043e:0001:1:0
-A LA CARTE 7
-p:CSAT,f:40
-6fd8:00c00000:042c:0001:1:0
-TVBS
-p:Chinese Channel LTD.,f:40
-77d8:00c00000:040a:0001:1:0
-EUROSPORT
-p:ESP,f:40
-1fd9:00c00000:0434:0001:1:0
-PLANETE
-p:CSAT,f:40
-20d9:00c00000:043e:0001:1:0
-A LA CARTE 8
-p:CSAT,f:40
-22d9:00c00000:045a:0001:1:0
-GULLI
-p:CSAT,f:40
-32d9:00c00000:045d:0001:1:0
-Bundesliga 5
-p:arena,f:40
-75d9:00c00000:0422:0001:1:0
-
-p:Digital +,f:40
-07da:00c00000:0449:0035:1:0
-TV Oranje
-p:CANALDIGITAAL,f:40
-20da:00c00000:043e:0001:1:0
-A LA CARTE 9
-p:CSAT,f:40
-32da:00c00000:045d:0001:1:0
-Bundesliga 6
-p:arena,f:40
-1fdb:00c00000:0434:0001:1:0
-VOYAGE
-p:CSAT,f:40
-20db:00c00000:043e:0001:1:0
-A LA CARTE 13
-p:CSAT,f:40
-1fdc:00c00000:0434:0001:1:0
-LCI
-p:CSAT,f:40
-20dc:00c00000:043e:0001:1:0
-A LA CARTE 14
-p:CSAT,f:40
-75dc:00c00000:0422:0001:1:0
-COMPRA SMS
-p:DIGITAL+,f:40
-1fdd:00c00000:0434:0001:1:0
-CANAL J
-p:CSAT,f:40
-75dd:00c00000:0422:0001:1:0
-TEST TÉCNICO
-p:DIGITAL+,f:40
-20de:00c00000:043e:0001:1:0
-KIOSQUE
-p:CSAT,f:40
-75de:00c00000:0422:0001:1:0
-TEST_CSD1
-p:DIGITAL+,f:40
-07df:00c00000:0449:0035:1:0
-Discovery
-p:CANALDIGITAAL,f:40
-1fdf:00c00000:0434:0001:1:0
-PLANETE JUNIORS
-p:CSAT,f:40
-75df:00c00000:0422:0001:1:0
-TEST_CSD2
-p:DIGITAL+,f:40
-1fe0:00c00000:0434:0001:1:0
-CUISINE TV
-p:CSAT,f:40
-6fe0:00c00000:0443:0001:1:0
-NICK AUSTRIA
-p:MTV Networks,f:40
-75e0:00c00000:0422:0001:1:0
-TEST_CSD3
-p:DIGITAL+,f:40
-79e0:00c00000:0443:0001:1:0
-Eurosport
-p:SES Astra,f:40
-1fe1:00c00000:0434:0001:1:0
-FILLES TV
-p:CSAT,f:40
-6ee1:00c00000:04b1:0001:1:0
-Radio Bremen TV
-p:ARD,f:40
-6fe1:00c00000:0443:0001:1:0
-MTV AUSTRIA
-p:MTV Networks,f:40
-75e1:00c00000:0422:0001:1:0
-TEST_CSD4
-p:DIGITAL+,f:40
-1fe2:00c00000:0434:0001:1:0
-TIJI
-p:CSAT,f:40
-75e2:00c00000:0422:0001:1:0
-TEST_CSD5
-p:DIGITAL+,f:40
-1fe3:00c00000:0434:0001:1:0
-CANAL+ FAMILY
-p:CSAT,f:40
-2ee3:00c00000:0441:0001:1:0
-\86RTL\87 Television
-p:RTL World,f:40
-31e3:00c00000:045c:0035:1:0
-VTM OLD
-p:TV Vlaanderen,f:40
-31e3:00c00000:045f:0035:1:0
-VTM
-p:TV Vlaanderen,f:40
-75e3:00c00000:0422:0001:1:0
-TEST_CSD6
-p:DIGITAL+,f:40
-07e4:00c00000:0449:0035:1:0
-Animal Planet
-p:CANALDIGITAAL,f:40
-2ee4:00c00000:0441:0001:1:0
-RTL HH SH
-p:RTL World,f:40
-31e4:00c00000:045c:0035:1:0
-2BE OLD
-p:TV Vlaanderen,f:40
-31e4:00c00000:045f:0035:1:0
-2BE
-p:TV Vlaanderen,f:40
-75e4:00c00000:0422:0001:1:0
-TEST_CSD7
-p:DIGITAL+,f:40
-25e5:00c00000:045e:0001:1:0
-FR3 AMIENS
-p:CSAT,f:40
-2ee5:00c00000:0441:0001:1:0
-RTL HB NDS
-p:RTL World,f:40
-31e5:00c00000:045c:0035:1:0
-VT4 OLD
-p:TV Vlaanderen,f:40
-31e5:00c00000:045f:0035:1:0
-VT4
-p:TV Vlaanderen,f:40
-75e5:00c00000:0422:0001:1:0
-TEST_CSD8
-p:DIGITAL+,f:40
-25e6:00c00000:045e:0001:1:0
-FR3 BESANCON
-p:CSAT,f:40
-31e6:00c00000:045c:0035:1:0
-ActionNow OLD
-p:TV Vlaanderen,f:40
-31e6:00c00000:045f:0035:1:0
-ActionNow
-p:TV Vlaanderen,f:40
-75e6:00c00000:0422:0001:1:0
-TEST_CSD9
-p:DIGITAL+,f:40
-25e7:00c00000:045e:0001:1:0
-FR3 BORDEAUX
-p:CSAT,f:40
-31e7:00c00000:045c:0035:1:0
-één OLD
-p:TV Vlaanderen,f:40
-31e7:00c00000:045f:0035:1:0
-één
-p:TV Vlaanderen,f:40
-75e7:00c00000:0422:0001:1:0
-TEST_CSD10
-p:DIGITAL+,f:40
-23e8:00c00000:044a:0001:1:0
-DOWNLOAD TNTSAT GENERIQUE
-p:CSAT,f:40
-25e8:00c00000:045e:0001:1:0
-FR3 NANCY
-p:CSAT,f:40
-31e8:00c00000:045c:0035:1:0
-Ketnet/Canvas OLD
-p:TV Vlaanderen,f:40
-31e8:00c00000:045f:0035:1:0
-Ketnet/Canvas
-p:TV Vlaanderen,f:40
-07e9:00c00000:0449:0035:1:0
-EUROSPORT
-p:CANALDIGITAAL,f:40
-23e9:00c00000:044a:0001:1:0
-DOWNLOAD TNTSAT STRONG
-p:CSAT,f:40
-25e9:00c00000:045e:0001:1:0
-FR3 CLERMONT FD
-p:CSAT,f:40
-31e9:00c00000:045c:0035:1:0
-Vitaya OLD
-p:TV Vlaanderen,f:40
-31e9:00c00000:045f:0035:1:0
-Vitaya
-p:TV Vlaanderen,f:40
-23ea:00c00000:044a:0001:1:0
-DOWNLOAD TNTSAT SAGEM
-p:CSAT,f:40
-25ea:00c00000:045e:0001:1:0
-FR3 PARIS
-p:CSAT,f:40
-79ea:00c00000:0443:0001:1:0
-HSE24 Digital
-p:SES Astra,f:40
-1feb:00c00000:0434:0001:1:0
-TMC
-p:CSAT,f:40
-23eb:00c00000:044a:0001:1:0
-CDN2
-p:CSAT,f:40
-25eb:00c00000:045e:0001:1:0
-FR3 RENNES
-p:CSAT,f:40
-6eeb:00c00000:04b1:0001:1:0
-WDR Test A
-p:ARD,f:40
-6feb:00c00000:042a:0001:1:0
-MTV ESP
-p:MTV Networks Europe,f:40
-23ec:00c00000:044a:0001:1:0
-CDN6
-p:CSAT,f:40
-25ec:00c00000:045e:0001:1:0
-FR3 ROUEN
-p:CSAT,f:40
-6fec:00c00000:042a:0001:1:0
-MTV France
-p:MTV Networks Europe,f:40
-23ed:00c00000:044a:0001:1:0
-CDN7
-p:CSAT,f:40
-25ed:00c00000:045e:0001:1:0
-FR3 LIMOGES
-p:CSAT,f:40
-75ed:00c00000:0422:0001:1:0
-
-p:Digital+,f:40
-07ee:00c00000:0449:0035:1:0
-Cartoon/TCM
-p:CANALDIGITAAL,f:40
-23ee:00c00000:044a:0001:1:0
-CDN5
-p:CSAT,f:40
-25ee:00c00000:045e:0001:1:0
-FR3 LYON
-p:CSAT,f:40
-6fee:00c00000:042a:0001:1:0
-MTV Hits
-p:MTV Networks Europe,f:40
-75ee:00c00000:0422:0001:1:0
-
-p:Digital +,f:40
-25ef:00c00000:045e:0001:1:0
-FR3 MARSEILLE
-p:CSAT,f:40
-31ef:00c00000:045c:0035:1:0
-JIM OLD
-p:TV Vlaanderen,f:40
-31ef:00c00000:045f:0035:1:0
-JIM
-p:TV Vlaanderen,f:40
-6fef:00c00000:042a:0001:1:0
-MTV Dance
-p:MTV Networks Europe,f:40
-75ef:00c00000:0422:0001:1:0
-
-p:DIGITAL+,f:40
-25f0:00c00000:045e:0001:1:0
-FR3 TOULOUSE
-p:CSAT,f:40
-31f0:00c00000:045c:0035:1:0
-VIJFtv OLD
-p:TV Vlaanderen,f:40
-31f0:00c00000:045f:0035:1:0
-VIJFtv
-p:TV Vlaanderen,f:40
-6ff0:00c00000:042a:0001:1:0
-VH1
-p:MTV Networks Europe,f:40
-31f1:00c00000:045c:0035:1:0
-KANAAL Z OLD
-p:TV Vlaanderen,f:40
-31f1:00c00000:045f:0035:1:0
-KANAAL Z
-p:TV Vlaanderen,f:40
-6ff1:00c00000:042a:0001:1:0
-VH1 Classic
-p:MTV Networks Europe,f:40
-75f1:00c00000:0422:0001:1:0
-
-p:Digital+,f:40
-75f2:00c00000:0422:0001:1:0
-
-p:Digital+,f:40
-07f3:00c00000:0449:0035:1:0
-RTL8
-p:CANALDIGITAAL,f:40
-6ff3:00c00000:042a:0001:1:0
-MTV TWO
-p:MTV Networks Europe,f:40
-75f3:00c00000:0422:0001:1:0
-
-p:Contactanos,f:40
-2ef4:00c00000:0441:0001:1:0
-RTL2
-p:RTL World,f:40
-6ff4:00c00000:042a:0001:1:0
-Nick ESP
-p:MTV Networks Europe,f:40
-75f4:00c00000:0422:0001:1:0
-ABONO FÚTBOL+
-p:Digital+,f:40
-79f4:00c00000:0443:0001:1:0
-EuroNews
-p:Globecast,f:40
-1af5:00c00000:03fe:0001:1:0
-DIRECT 8
-p:GlobeCast,f:40
-6ff5:00c00000:042a:0001:1:0
-MTV Base France
-p:MTV Networks Europe,f:40
-1af6:00c00000:03fe:0001:1:0
-KTO
-p:OVERON,f:40
-6ff7:00c00000:042a:0001:1:0
-GAME ONE
-p:MTV Networks Europe,f:40
-07f8:00c00000:0449:0035:1:0
-PRIVATE SPICE
-p:CANALDIGITAAL,f:40
-1af8:00c00000:03fe:0001:1:0
-Russia Today
-p:OVERON,f:40
-6ff8:00c00000:042a:0001:1:0
-MTV Hits.
-p:MTV Networks Europe,f:40
-1af9:00c00000:03fe:0001:1:0
-France 24 (en Francais)
-p:FRANCE 24,f:40
-75f9:00c00000:0408:0001:1:0
-TVC INT.
-p:TVC,f:40
-1afa:00c00000:03fe:0001:1:0
-France 24 (in English)
-p:FRANCE 24,f:40
-6ffa:00c00000:042a:0001:1:0
-VH1.
-p:MTV Networks Europe,f:40
-75fa:00c00000:0408:0001:1:0
-ANDALUCÍA TV
-p:ANTV,f:40
-1afb:00c00000:03fe:0001:1:0
-EWTN Europe
-p:OVERON,f:40
-6ffb:00c00000:042a:0001:1:0
-VH1 Classic.
-p:MTV Networks Europe,f:40
-75fb:00c00000:0408:0001:1:0
-EUSKADI TV
-p:DIGITAL+,f:40
-02fc:00c00000:0005:0085:1:0
-ANIXE SD
-p:BetaDigital,f:40
-1afc:00c00000:03fe:0001:1:0
-NRJ Hits
-p:GlobeCast,f:40
-6ffc:00c00000:042a:0001:1:0
-NICKELODEON France
-p:MTV Networks Europe,f:40
-75fc:00c00000:0408:0001:1:0
-TM SAT/LAOTRA
-p:DIGITAL+,f:40
-02fd:00c00000:0007:0085:1:0
-\86Y\87AVIDO\86 CLIPS\87
-p:BetaDigital,f:40
-07fd:00c00000:0449:0035:1:0
-DORCEL TV
-p:CANALDIGITAAL,f:40
-1afd:00c00000:03fe:0001:1:0
-ARAGON TV
-p:OVERON,f:40
-21fd:00c00000:044c:0001:1:0
-EQUIDIA INFO
-p:CSAT,f:40
-6ffd:00c00000:042a:0001:1:0
-MTV TWO.
-p:MTV Networks Europe,f:40
-75fd:00c00000:0408:0001:1:0
-CANAL CLUB
-p:DIGITAL+,f:40
-02fe:00c00000:0005:0085:1:0
-UProm.TV
-p:BetaDigital,f:40
-21fe:00c00000:044c:0001:1:0
-COMEDIE !
-p:CSAT,f:40
-74fe:00c00000:0420:0001:1:0
-C+ ACCIÓN...30
-p:CMA,f:40
-75fe:00c00000:0408:0001:1:0
-C. ESTRELLAS
-p:GALAV,f:40
-02ff:00c00000:0007:0085:1:0
-\86rtn\87 myestate
-p:BetaDigital,f:40
-1aff:00c00000:03fe:0001:1:0
-DIRECT 8
-p:OVERON,f:40
-21ff:00c00000:044c:0001:1:0
-13EME RUE
-p:CSAT,f:40
-6fff:00c00000:0436:0001:1:0
-MTV Music
-p:MTV Networks Europe,f:40
-74ff:00c00000:0420:0001:1:0
-C+ COMEDIA...30
-p:CMADOS,f:40
-75ff:00c00000:0408:0001:1:0
-CNN+
-p:CNN+,f:40
-6f00:00c00000:0445:0001:2:0
-DW 1
-p:ARD DW,f:40
-6f01:00c00000:0445:0001:2:0
-DW 4
-p:ARD DW,f:40
-0803:00c00000:0449:0035:2:0
-RTL RADIO
-p:CANALDIGITAAL,f:40
-6f03:00c00000:0445:0001:2:0
-hr1
-p:ARD HR,f:40
-6f04:00c00000:0445:0001:2:0
-hr2
-p:ARD HR,f:40
-6f05:00c00000:0445:0001:2:0
-hr3
-p:ARD HR,f:40
-6f06:00c00000:0445:0001:2:0
-hr4
-p:ARD HR,f:40
-6f07:00c00000:0445:0001:2:0
-YOU FM
-p:ARD HR,f:40
-6f08:00c00000:0445:0001:2:0
-hr iNFO
-p:ARD HR,f:40
-f208:00c00000:0421:0001:2:0
-Radio Horeb
-p:Eurociel,f:40
-6f09:00c00000:0445:0001:2:0
-hr iNFO +
-p:ARD HR,f:40
-f20a:00c00000:0421:0001:2:0
-RDC
-p:Polskie Radio-Regionalna,f:40
-6f0c:00c00000:0445:0001:2:0
-MDR1 SACHSEN
-p:ARD MDR,f:40
-6f0d:00c00000:0445:0001:2:0
-MDR1 S-ANHALT
-p:ARD MDR,f:40
-6f0e:00c00000:0445:0001:2:0
-MDR1 THÜRINGEN
-p:ARD MDR,f:40
-6f0f:00c00000:0445:0001:2:0
-MDR FIGARO
-p:ARD MDR,f:40
-6f10:00c00000:0445:0001:2:0
-MDR JUMP
-p:ARD MDR,f:40
-6f11:00c00000:0445:0001:2:0
-MDR SPUTNIK
-p:ARD MDR,f:40
-6f12:00c00000:0445:0001:2:0
-MDR INFO
-p:ARD MDR,f:40
-6f15:00c00000:0445:0001:2:0
-NDR 2
-p:ARD NDR,f:40
-0816:00c00000:0449:0035:2:0
-RVi1 (VRT)
-p:CANALDIGITAAL,f:40
-6f16:00c00000:0445:0001:2:0
-NDR Kultur
-p:ARD NDR,f:40
-6f17:00c00000:0445:0001:2:0
-NDR Info
-p:ARD NDR,f:40
-6f18:00c00000:0445:0001:2:0
-N-JOY
-p:ARD NDR,f:40
-6f19:00c00000:0445:0001:2:0
-NDR 90,3
-p:ARD NDR,f:40
-6f1a:00c00000:0445:0001:2:0
-NDR 1 Welle Nord
-p:ARD NDR,f:40
-081b:00c00000:0449:0035:2:0
-RVi2 (VRT)
-p:CANALDIGITAAL,f:40
-6f1b:00c00000:0445:0001:2:0
-NDR 1 Radio MV
-p:ARD NDR,f:40
-6f1c:00c00000:0445:0001:2:0
-NDR 1 Niedersachsen
-p:ARD NDR,f:40
-6f1d:00c00000:0445:0001:2:0
-NDR Info Spezial
-p:ARD NDR,f:40
-6f20:00c00000:0445:0001:2:0
-Bremen Eins
-p:ARD RB,f:40
-6f21:00c00000:0445:0001:2:0
-Nordwestradio
-p:ARD RB,f:40
-6f22:00c00000:0445:0001:2:0
-Bremen Vier
-p:ARD RB,f:40
-6f24:00c00000:0445:0001:2:0
-InfoRadio
-p:ARD rbb,f:40
-6f25:00c00000:0445:0001:2:0
-kulturradio
-p:ARD rbb,f:40
-6f26:00c00000:0445:0001:2:0
-Antenne Brandenburg
-p:ARD rbb,f:40
-6f27:00c00000:0445:0001:2:0
-radioBERLIN 88,8
-p:ARD rbb,f:40
-6f28:00c00000:0445:0001:2:0
-radioeins
-p:ARD rbb,f:40
-6f29:00c00000:0445:0001:2:0
-Fritz
-p:ARD rbb,f:40
-6f2a:00c00000:0445:0001:2:0
-radiomultikulti
-p:ARD rbb,f:40
-f22a:00c00000:0421:0001:2:0
-CFN/RFC
-p:Canadian Forces Europe,f:40
-f22b:00c00000:0421:0001:2:0
-Radio neue Hoffnung
-p:RADIO Neue Hoffnung,f:40
-6f2d:00c00000:0445:0001:2:0
-SR1
-p:ARD SR,f:40
-6f2e:00c00000:0445:0001:2:0
-SR2
-p:ARD SR,f:40
-6f2f:00c00000:0445:0001:2:0
-SR3
-p:ARD SR,f:40
-f22f:00c00000:0421:0001:2:0
-RTBF International
-p:RTBF,f:40
-4331:00c00000:041d:0001:2:0
-Radio Maryja test
-p:TVP,f:40
-6f31:00c00000:0445:0001:2:0
-SWR1 BW
-p:ARD SWR,f:40
-6f32:00c00000:0445:0001:2:0
-SWR1 RP
-p:ARD SWR,f:40
-6f33:00c00000:0445:0001:2:0
-SWR2
-p:ARD SWR,f:40
-6f34:00c00000:0445:0001:2:0
-SWR3
-p:ARD SWR,f:40
-6f35:00c00000:0445:0001:2:0
-SWR4 BW
-p:ARD SWR,f:40
-6f36:00c00000:0445:0001:2:0
-SWR4 RP
-p:ARD SWR,f:40
-6f37:00c00000:0445:0001:2:0
-DASDING
-p:ARD SWR,f:40
-6f38:00c00000:0445:0001:2:0
-cont.ra
-p:ARD SWR,f:40
-213b:00c00000:0442:0001:2:0
-CANALSAT RADIOS
-p:CSAT,f:40
-6f3b:00c00000:0445:0001:2:0
-1LIVE
-p:ARD WDR,f:40
-6f3c:00c00000:0445:0001:2:0
-WDR 2
-p:ARD WDR,f:40
-6f3d:00c00000:0445:0001:2:0
-WDR 3
-p:ARD WDR,f:40
-6f3e:00c00000:0445:0001:2:0
-WDR 4
-p:ARD WDR,f:40
-6f3f:00c00000:0445:0001:2:0
-WDR 5
-p:ARD WDR,f:40
-2140:00c00000:0442:0001:2:0
-RADIO INT 2
-p:CSAT,f:40
-6f40:00c00000:0445:0001:2:0
-WDR Funkhaus Europa
-p:ARD WDR,f:40
-2141:00c00000:0442:0001:2:0
-RADIO INT
-p:CSAT,f:40
-3341:00c00000:045b:0001:2:0
-OE1
-p:ORF,f:40
-6f41:00c00000:0445:0001:2:0
-1LIVE diggi
-p:ARD WDR,f:40
-3342:00c00000:045b:0001:2:0
-OE1 DD
-p:ORF,f:40
-6f42:00c00000:0445:0001:2:0
-WDR 2 Klassik
-p:ARD WDR,f:40
-3343:00c00000:045b:0001:2:0
-OE2 W
-p:ORF,f:40
-6f43:00c00000:0445:0001:2:0
-WDR Event
-p:ARD WDR,f:40
-3344:00c00000:045b:0001:2:0
-OE2 N
-p:ORF,f:40
-3345:00c00000:045b:0001:2:0
-OE2 B
-p:ORF,f:40
-3346:00c00000:045b:0001:2:0
-OE2 O
-p:ORF,f:40
-2147:00c00000:0442:0001:2:0
-FRANCE MUSIQUE
-p:CSAT,f:40
-3347:00c00000:045b:0001:2:0
-OE2 S
-p:ORF,f:40
-2148:00c00000:0442:0001:2:0
-FIP
-p:CSAT,f:40
-3348:00c00000:045b:0001:2:0
-OE2 T
-p:ORF,f:40
-2149:00c00000:0442:0001:2:0
-France INFO
-p:CSAT,f:40
-3349:00c00000:045b:0001:2:0
-OE2 V
-p:ORF,f:40
-214a:00c00000:0442:0001:2:0
-France INTER
-p:CSAT,f:40
-334a:00c00000:045b:0001:2:0
-OE2 St
-p:ORF,f:40
-214b:00c00000:0442:0001:2:0
-FRANCE BLEU IDF
-p:CSAT,f:40
-334b:00c00000:045b:0001:2:0
-OE2 K
-p:ORF,f:40
-214c:00c00000:0442:0001:2:0
-RFI INT
-p:CSAT,f:40
-214d:00c00000:0442:0001:2:0
-RADIO CLASSIQUE
-p:CSAT,f:40
-334d:00c00000:045b:0001:2:0
-OE3
-p:ORF,f:40
-214e:00c00000:0442:0001:2:0
-EUROPE 1
-p:CSAT,f:40
-334e:00c00000:045b:0001:2:0
-FM4
-p:ORF,f:40
-214f:00c00000:0442:0001:2:0
-RMC
-p:CSAT,f:40
-334f:00c00000:045b:0001:2:0
-Ö1 International
-p:ORF,f:40
-2150:00c00000:0442:0001:2:0
-RTL
-p:CSAT,f:40
-2151:00c00000:0442:0001:2:0
-RIRE & CHANSONS
-p:CSAT,f:40
-2152:00c00000:0442:0001:2:0
-SUD RADIO
-p:CSAT,f:40
-2153:00c00000:0442:0001:2:0
-MC DOUALIYA
-p:CSAT,f:40
-2154:00c00000:0442:0001:2:0
-TSF
-p:CSAT,f:40
-3354:00c00000:045b:0001:2:0
-RADIO MARIA
-p:Radio Maria Österreich,f:40
-2155:00c00000:0442:0001:2:0
-NOSTALGIE
-p:CSAT,f:40
-2156:00c00000:0442:0001:2:0
-BFM
-p:CSAT,f:40
-2157:00c00000:0442:0001:2:0
-JAZZ RADIO
-p:CSAT,f:40
-2158:00c00000:0442:0001:2:0
-NRJ
-p:CSAT,f:40
-2159:00c00000:0442:0001:2:0
-VIRGIN RADIO
-p:CSAT,f:40
-215a:00c00000:0442:0001:2:0
-RTL 2
-p:CSAT,f:40
-215b:00c00000:0442:0001:2:0
-SKYROCK
-p:CSAT,f:40
-215c:00c00000:0442:0001:2:0
-FUN RADIO
-p:CSAT,f:40
-215d:00c00000:0442:0001:2:0
-LE MOUV
-p:CSAT,f:40
-215e:00c00000:0442:0001:2:0
-RADIO NOVA
-p:CSAT,f:40
-215f:00c00000:0442:0001:2:0
-RADIO FG
-p:CSAT,f:40
-2160:00c00000:0442:0001:2:0
-VIBRATION
-p:CSAT,f:40
-2161:00c00000:0442:0001:2:0
-CONTACT FM
-p:CSAT,f:40
-2162:00c00000:0442:0001:2:0
-RADIO LATINA
-p:CSAT,f:40
-2163:00c00000:0442:0001:2:0
-RFM
-p:CSAT,f:40
-2164:00c00000:0442:0001:2:0
-CHERIE FM
-p:CSAT,f:40
-2165:00c00000:0442:0001:2:0
-ALOUETTE
-p:CSAT,f:40
-2166:00c00000:0442:0001:2:0
-VOLTAGE
-p:CSAT,f:40
-2167:00c00000:0442:0001:2:0
-OUI FM
-p:CSAT,f:40
-2168:00c00000:0442:0001:2:0
-ADO
-p:CSAT,f:40
-2169:00c00000:0442:0001:2:0
-COULEUR 3
-p:CSAT,f:40
-216a:00c00000:0442:0001:2:0
-PARENTHESE RADIO
-p:CSAT,f:40
-216b:00c00000:0442:0001:2:0
-RADIO NOTRE-DAME
-p:CSAT,f:40
-316b:00c00000:0459:0001:2:0
-Inselradio
-p:T-Systems,f:40
-6f6b:00c00000:042c:0001:2:0
-CNN Radio
-p:CNN,f:40
-216c:00c00000:0442:0001:2:0
-RADIO ALPHA
-p:CSAT,f:40
-6d6c:00c00000:0437:0001:2:0
-DKULTUR
-p:ZDFvision,f:40
-216d:00c00000:0442:0001:2:0
-RCJ / SHALOM
-p:CSAT,f:40
-316d:00c00000:0459:0001:2:0
-radio top40
-p:T-Systems,f:40
-6d6d:00c00000:0437:0001:2:0
-DLF
-p:ZDFvision,f:40
-216e:00c00000:0442:0001:2:0
-BEUR FM
-p:CSAT,f:40
-316e:00c00000:0459:0001:2:0
-ffn digital
-p:T-Systems,f:40
-216f:00c00000:0442:0001:2:0
-BBC ARABIC
-p:CSAT,f:40
-316f:00c00000:0459:0001:2:0
-DefJay 100% R&B
-p:T-Systems,f:40
-2170:00c00000:0442:0001:2:0
-RFI MULTILINGUE
-p:CSAT,f:40
-3170:00c00000:0459:0001:2:0
-WRN Deutsch
-p:T-Systems,f:40
-1771:00c00000:0457:0001:2:0
-Radio Swiss Jazz
-p:TechniSat,f:40
-2171:00c00000:0442:0001:2:0
-RCI SAT
-p:CSAT,f:40
-3171:00c00000:0459:0001:2:0
-PEPPERMINT fm
-p:T-Systems,f:40
-6d71:00c00000:0437:0001:2:0
-Dok&Deb
-p:ZDFvision,f:40
-1772:00c00000:0457:0001:2:0
-RADIOROPA-Hörbuch 2
-p:TechniSat,f:40
-2172:00c00000:0442:0001:2:0
-MEDI 1
-p:CSAT,f:40
-3172:00c00000:0459:0001:2:0
-ffn Comedy
-p:T-Systems,f:40
-1773:00c00000:0457:0001:2:0
-Radio Swiss Pop
-p:TechniSat,f:40
-2173:00c00000:0442:0001:2:0
-France CULTURE
-p:CSAT,f:40
-3173:00c00000:0459:0001:2:0
-Radio Gloria
-p:Media Broadcast,f:40
-1774:00c00000:0457:0001:2:0
-Euroklassik 1
-p:TechniSat,f:40
-2174:00c00000:0442:0001:2:0
-WRN
-p:CSAT,f:40
-3174:00c00000:0459:0001:2:0
-HIT RADIO FFH
-p:T-Systems,f:40
-1775:00c00000:0457:0001:2:0
-Radio Viola
-p:TechniSat,f:40
-2175:00c00000:0442:0001:2:0
-BBCW SERVICE
-p:CSAT,f:40
-3175:00c00000:0459:0001:2:0
-planet radio
-p:T-Systems,f:40
-1776:00c00000:0457:0001:2:0
-Star*Sat Gold
-p:TechniSat,f:40
-2176:00c00000:0442:0001:2:0
-RADIO COURTOISIE
-p:CSAT,f:40
-3176:00c00000:0459:0001:2:0
-harmony.fm
-p:T-Systems,f:40
-1777:00c00000:0457:0001:2:0
-Star*Sat Country
-p:TechniSat,f:40
-1778:00c00000:0457:0001:2:0
-Star*Sat Hit-Express
-p:TechniSat,f:40
-1779:00c00000:0457:0001:2:0
-Radio Swiss Classic
-p:TechniSat,f:40
-177a:00c00000:0457:0001:2:0
-Star*Sat EASYTI
-p:TechniSat,f:40
-177b:00c00000:0457:0001:2:0
-Kinderradio 1/ Konzertsaal 1
-p:TechniSat,f:40
-177c:00c00000:0457:0001:2:0
-RADIOROPA-Hörbuch 1
-p:TechniSat,f:40
-177d:00c00000:0457:0001:2:0
-RADIOROPA-Hörbuch 3
-p:TechniSat,f:40
-177e:00c00000:0457:0001:2:0
-Star*Sat Melodie
-p:TechniSat,f:40
-177f:00c00000:0457:0001:2:0
-RADIOROPA-BERLIN
-p:TechniSat,f:40
-1780:00c00000:0457:0001:2:0
-Jazz Time
-p:TechniSat,f:40
-1781:00c00000:0457:0001:2:0
-Star*Sat Klassik
-p:TechniSat,f:40
-1783:00c00000:0457:0001:2:0
-RADIOROPA-Hörbuch 4
-p:TechniSat,f:40
-0096:00c00000:0001:0085:2:0
-\86P-D\87EUTSCHE\86 CHARTS\87
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-0097:00c00000:0001:0085:2:0
-\86P-ROCK\87 HYMNEN
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-0098:00c00000:0001:0085:2:0
-\86P-LOVE\87 SONGS
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-7598:00c00000:0422:0001:2:0
-RADIOS ESP
-p:DIGITAL+,f:40
-0099:00c00000:0001:0085:2:0
-P-60ER/70ER
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-009a:00c00000:0001:0085:2:0
-P-80ER/90ER
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-009b:00c00000:0001:0085:2:0
-\86P-RnB\87/HIP HOP
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-009c:00c00000:0001:0085:2:0
-\86P-COUNT\87RY
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-279c:00c00000:0444:0001:2:0
-DELUXE RADIO
-p:BetaDigital,f:40
-279d:00c00000:0444:0001:2:0
-DELUXE LOUNGE
-p:BetaDigital,f:40
-279e:00c00000:0444:0001:2:0
-TEDDY
-p:BetaDigital,f:40
-279f:00c00000:0444:0001:2:0
-APS.R12
-p:BetaDigital,f:40
-00a0:00c00000:0007:0085:2:0
-\86ROCK ANT\87ENNE
-p:BetaDigital,f:40
-27a0:00c00000:0444:0001:2:0
-APS.R13
-p:BetaDigital,f:40
-00a1:00c00000:0007:0085:2:0
-\86ERF\87 Radio
-p:BetaDigital,f:40
-27a1:00c00000:0444:0001:2:0
-APS.R14
-p:BetaDigital,f:40
-27a2:00c00000:0444:0001:2:0
-APS.R15
-p:BetaDigital,f:40
-13a7:00c00000:0455:0035:2:0
-NL-Radio 1
-p:CANALDIGITAAL,f:40
-13a8:00c00000:0455:0035:2:0
-NL-Radio 2
-p:CANALDIGITAAL,f:40
-00a9:00c00000:0007:0085:2:0
-\86sunshine\87 live
-p:BetaDigital,f:40
-13a9:00c00000:0455:0035:2:0
-NL-3FM
-p:CANALDIGITAAL,f:40
-00aa:00c00000:0007:0085:2:0
-\86ANTENNE\87 BAYERN
-p:BetaDigital,f:40
-13aa:00c00000:0455:0035:2:0
-NL-Radio 4
-p:CANALDIGITAAL,f:40
-00ab:00c00000:0005:0085:2:0
-domradio
-p:BetaDigital,f:40
-13ab:00c00000:0455:0035:2:0
-NL-Radio 5
-p:CANALDIGITAAL,f:40
-00ac:00c00000:0005:0085:2:0
-.
-p:BetaDigital,f:40
-00ad:00c00000:0005:0085:2:0
-\86Klassik\87 Radio
-p:BetaDigital,f:40
-00ae:00c00000:0005:0085:2:0
-\86OldieStar\87 Radio
-p:BetaDigital,f:40
-00b0:00c00000:0007:0085:2:0
-2255 Gewinnradio
-p:BetaDigital,f:40
-13ba:00c00000:0455:0035:2:0
-CAZ!
-p:CANALDIGITAAL,f:40
-0fbe:00c00000:0451:0035:2:0
-R538 Dance Department
-p:CANALDIGITAAL,f:40
-13bf:00c00000:0455:0035:2:0
-KINK FM
-p:CANALDIGITAAL,f:40
-0fc3:00c00000:0451:0035:2:0
-FunX
-p:CANALDIGITAAL,f:40
-13c4:00c00000:0455:0035:2:0
-RNW1
-p:CANALDIGITAAL,f:40
-13c5:00c00000:0455:0035:2:0
-RNW2
-p:CANALDIGITAAL,f:40
-13c6:00c00000:0455:0035:2:0
-RNW3
-p:CANALDIGITAAL,f:40
-0fc8:00c00000:0451:0035:2:0
-Classic FM
-p:CANALDIGITAAL,f:40
-0fcd:00c00000:0451:0035:2:0
-Q-Music
-p:CANALDIGITAAL,f:40
-13ce:00c00000:0455:0035:2:0
-Sky Radio
-p:CANALDIGITAAL,f:40
-13cf:00c00000:0455:0035:2:0
-Juize.FM
-p:CANALDIGITAAL,f:40
-13d0:00c00000:0455:0035:2:0
-Radio538
-p:CANALDIGITAAL,f:40
-13d8:00c00000:0455:0035:2:0
-NL-Radio 6
-p:CANALDIGITAAL,f:40
-13dd:00c00000:0455:0035:2:0
-Radio10Gold
-p:CANALDIGITAAL,f:40
-4fe2:00c00000:0407:0001:2:0
-\86Bartok Radio\87
-p:UPC Direct,f:40
-4fe3:00c00000:0407:0001:2:0
-\86Petofi Radio\87
-p:UPC Direct,f:40
-4fe4:00c00000:0407:0001:2:0
-\86Kossuth Radio\87
-p:UPC Direct,f:40
-13e7:00c00000:0455:0035:2:0
-Radio Veronica
-p:CANALDIGITAAL,f:40
-31ea:00c00000:045c:0035:2:0
-Radio 1 OLD
-p:TV Vlaanderen,f:40
-31ea:00c00000:045f:0035:2:0
-Radio 1
-p:TV Vlaanderen,f:40
-31eb:00c00000:045c:0035:2:0
-Radio 2 OLD
-p:TV Vlaanderen,f:40
-31eb:00c00000:045f:0035:2:0
-Radio 2
-p:TV Vlaanderen,f:40
-31ec:00c00000:045c:0035:2:0
-Donna OLD
-p:TV Vlaanderen,f:40
-31ec:00c00000:045f:0035:2:0
-Donna
-p:TV Vlaanderen,f:40
-31ed:00c00000:045c:0035:2:0
-Studio Brussel OLD
-p:TV Vlaanderen,f:40
-31ed:00c00000:045f:0035:2:0
-Studio Brussel
-p:TV Vlaanderen,f:40
-6eed:00c00000:04b1:0001:2:0
-MEHRKANALTEST
-p:ARD,f:40
-31ee:00c00000:045c:0035:2:0
-Klara OLD
-p:TV Vlaanderen,f:40
-31ee:00c00000:045f:0035:2:0
-Klara
-p:TV Vlaanderen,f:40
-6ef0:00c00000:0445:0001:2:0
-Bayern 1
-p:ARD BR,f:40
-6ef1:00c00000:0445:0001:2:0
-Bayern 2
-p:ARD BR,f:40
-31f2:00c00000:045c:0035:2:0
-Q-music
-p:TV Vlaanderen,f:40
-31f2:00c00000:045f:0035:2:0
-Q-music
-p:TV Vlaanderen,f:40
-6ef2:00c00000:0445:0001:2:0
-Bayern 3
-p:ARD BR,f:40
-31f3:00c00000:045c:0035:2:0
-4FM OLD
-p:TV Vlaanderen,f:40
-31f3:00c00000:045f:0035:2:0
-4FM
-p:TV Vlaanderen,f:40
-6ef3:00c00000:0445:0001:2:0
-Bayern 4 Klassik
-p:ARD BR,f:40
-6ef4:00c00000:0445:0001:2:0
-B5 aktuell
-p:ARD BR,f:40
-6ef5:00c00000:0445:0001:2:0
-Bayern Mobil
-p:ARD BR,f:40
-6ef6:00c00000:0445:0001:2:0
-on3radio
-p:ARD BR,f:40
-6ef7:00c00000:0445:0001:2:0
-BR Verkehr
-p:ARD BR,f:40
-6ef8:00c00000:0445:0001:2:0
-B5 plus
-p:ARD BR,f:40
-1afe:00c00000:03fe:0001:2:0
-Radio Aragon
-p:OVERON,f:40
-0c13:00c00000:0457:0001:12:0
-MMS02C
-p:SES ASTRA,f:40
-1c20:00c00000:0457:0001:12:0
-Proxy GAC 1.111
-p:SES ASTRA,f:40
-1c24:00c00000:0457:0001:12:0
-Icomera
-p:SES ASTRA,f:40
-1c27:00c00000:0457:0001:12:0
-MFTS Services
-p:SES ASTRA,f:40
-1c29:00c00000:0457:0001:12:0
-AN PTU
-p:SES ASTRA,f:40
-1c2c:00c00000:0457:0001:12:0
-tvtv premium
-p:SES ASTRA,f:40
-1c2e:00c00000:0457:0001:12:0
-STB Globalteq
-p:SES ASTRA,f:40
-1c35:00c00000:0457:0001:12:0
-STB Arion
-p:SES ASTRA,f:40
-1c36:00c00000:0457:0001:12:0
-Orbit Movies FP
-p:SES ASTRA,f:40
-1c39:00c00000:0457:0001:12:0
-STB Technisat
-p:,f:40
-1c3d:00c00000:0457:0001:12:0
-ASTON DOWNLOAD
-p:ASTON,f:40
-1c42:00c00000:0457:0001:12:0
-STB Loewe
-p:SES ASTRA,f:40
-3145:00c00000:0459:0001:12:0
-RAPS
-p:T-Systems,f:40
-1c47:00c00000:0457:0001:12:0
-ProArzt
-p:SES ASTRA,f:40
-1c50:00c00000:0457:0001:12:0
-tvtv Digital
-p:SES ASTRA,f:40
-1c51:00c00000:0457:0001:12:0
-STB Bang-Olufsen
-p:SES ASTRA,f:40
-1c53:00c00000:0457:0001:12:0
-STB Pesi
-p:SES ASTRA,f:40
-1c54:00c00000:0457:0001:12:0
-FP URMET
-p:SES ASTRA,f:40
-1c56:00c00000:0457:0001:12:0
-STB Siemens
-p:SES ASTRA,f:40
-6e5a:00c00000:0431:0001:12:0
-ARD-MHP-Data
-p:ARD,f:40
-185c:00c00000:0457:0001:12:0
-Proxy_txp2
-p:ses astra,f:40
-185d:00c00000:0457:0001:12:0
-VPN TXP-2
-p:ses astra,f:40
-1c60:00c00000:0457:0001:12:0
-STB Comag1
-p:SES ASTRA,f:40
-1c63:00c00000:0457:0001:12:0
-STB Panasonic
-p:SES ASTRA,f:40
-1c66:00c00000:0457:0001:12:0
-Datendienst T1M
-p:,f:40
-1c67:00c00000:0457:0001:12:0
-STB2 Globalteq
-p:SES ASTRA,f:40
-1c69:00c00000:0457:0001:12:0
-tvtv RP
-p:SES ASTRA,f:40
-1c6f:00c00000:0457:0001:12:0
-tvtv DIGITAL
-p:SES ASTRA,f:40
-1c70:00c00000:0457:0001:12:0
-KaCTFL
-p:,f:40
-1c73:00c00000:0457:0001:12:0
-VS Unique Promo
-p:SES ASTRA,f:40
-2773:00c00000:0402:0001:12:0
-Data System
-p:ASTRA,f:40
-0f77:00c00000:0005:0085:12:0
-BData6
-p:BetaDigital,f:40
-0f79:00c00000:0005:0085:12:0
-moreTV
-p:BetaDigital,f:40
-0f80:00c00000:0002:0085:12:0
-
-p:betaresearch,f:40
-0f82:00c00000:0021:0085:12:0
-BData1
-p:BetaDigital,f:40
-0f83:00c00000:0021:0085:12:0
-BData2
-p:BetaDigital,f:40
-0f86:00c00000:0001:0085:12:0
-BData3
-p:BetaDigital,f:40
-0f87:00c00000:0007:0085:12:0
-BData4
-p:BetaDigital,f:40
-3390:00c00000:045d:0001:12:0
-AlphaCrypt
-p:ORF,f:40
-2fa4:00c00000:0454:0001:12:0
-PVR service
-p:GIST,f:40
-0fa5:00c00000:0011:0085:12:0
-Samsung CAB IPDL
-p:,f:40
-0fa6:00c00000:0011:0085:12:0
-Philips dic 2221 IPDL
-p:,f:40
-0fa7:00c00000:0011:0085:12:0
-Thomson SAT IPDL
-p:,f:40
-0dac:00c00000:0002:0085:12:0
-CPT_TP69
-p:PREMIERE,f:40
-0dad:00c00000:0001:0085:12:0
-CPT_TP83
-p:PREMIERE,f:40
-0dae:00c00000:0003:0085:12:0
-CPT_TP65
-p:PREMIERE,f:40
-0daf:00c00000:0004:0085:12:0
-CPT_TP81
-p:PREMIERE,f:40
-0db0:00c00000:0011:0085:12:0
-CPT_TP67
-p:PREMIERE,f:40
-0fb5:00c00000:0004:0085:12:0
-Thomson CAB IPDL
-p:,f:40
-0fb6:00c00000:0004:0085:12:0
-Philips DIS2221 IPDL
-p:,f:40
-33b8:00c00000:045b:0001:12:0
-KAONMEDIA DOWNLOAD
-p:KAON,f:40
-33c2:00c00000:045b:0001:12:0
-OnL OTA
-p:ORF,f:40
-27c4:00c00000:0444:0001:12:0
-moreTV
-p:BetaDigital,f:40
-27c5:00c00000:0444:0001:12:0
-more TV 01
-p:,f:40
-27c6:00c00000:0444:0001:12:0
-more TV 02
-p:,f:40
-27c7:00c00000:0444:0001:12:0
-more TV 03
-p:,f:40
-27c8:00c00000:0444:0001:12:0
-more TV 04
-p:,f:40
-27cb:00c00000:0444:0001:12:0
-more TV 07
-p:,f:40
-79e1:00c00000:0443:0001:12:0
-Guide Plus+
-p:Gemstar-TV Guide Europe,f:40
-1ee6:00c00000:0457:0001:12:0
-SGI_1111
-p:SES ASTRA,f:40
-0ffa:00c00000:0451:0035:12:0
-Downl Philips
-p:CANALDIGITAAL,f:40
-0081:00c00000:0006:0085:25:0
-\86PREM\87IERE\86 HD\87
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-0082:00c00000:0006:0085:25:0
-\86DISC\87OVERY\86 HD\87
-p:PREMIERE,C:1833,C:1831,C:1830,f:40
-0083:00c00000:0006:0085:25:0
-ASTRA HD+
-p:BetaDigital,f:40
-0084:00c00000:0006:0085:25:0
-ANIXE HD
-p:BetaDigital,f:40
-258c:00c00000:0458:0001:25:0
-
-p:CSAT,f:40
-74cc:00c00000:03f8:0001:25:0
-CANAL+ HD
-p:DIGITAL+,f:40
-f1e0:00c00000:0421:0001:25:0
-ORF 1 HD
-p:ORF,f:40
-1c23:00c00000:0457:0001:128:0
-STB Setone
-p:SES ASTRA,f:40
-1c2a:00c00000:0457:0001:128:0
-STB Handan
-p:SES ASTRA,f:40
-1c2b:00c00000:0457:0001:128:0
-STB Hyundai
-p:SES ASTRA,f:40
-1c38:00c00000:0457:0001:128:0
-STB Skardin
-p:SES ASTRA,f:40
-1c3a:00c00000:0457:0001:128:0
-STB Philips
-p:SES ASTRA,f:40
-1c3b:00c00000:0457:0001:128:0
-STB Opentech
-p:SES ASTRA,f:40
-1c49:00c00000:0457:0001:128:0
-STB GSS
-p:SES ASTRA,f:40
-1c4b:00c00000:0457:0001:128:0
-STB Inverto
-p:SES ASTRA,f:40
-1c4f:00c00000:0457:0001:128:0
-Topfield
-p:SES ASTRA,f:40
-1c57:00c00000:0457:0001:128:0
-STB Adimo
-p:SES ASTRA,f:40
-1c58:00c00000:0457:0001:128:0
-GRUNDIG DVB
-p:SES ASTRA,f:40
-1c59:00c00000:0457:0001:128:0
-Nokia SW Update2
-p:SES ASTRA,f:40
-1c5b:00c00000:0457:0001:128:0
-Opentech
-p:SES ASTRA,f:40
-1c5c:00c00000:0457:0001:128:0
-SKYMASTER1
-p:SES ASTRA,f:40
-1c5d:00c00000:0457:0001:128:0
-STB DMT
-p:SES ASTRA,f:40
-1c5f:00c00000:0457:0001:128:0
-SKYMASTER2
-p:SES ASTRA,f:40
-1c65:00c00000:0457:0001:128:0
-STB Homecast
-p:SES ASTRA,f:40
-1c6d:00c00000:0457:0001:128:0
-STB Sandmartin
-p:SES ASTRA,f:40
-0bba:00c00000:0457:0001:128:0
-MMS1111A
-p:SES ASTRA,f:40
-000c:00c00000:0454:0001:129:0
-ASTRA SDT
-p:SES ASTRA,f:40
-000d:00c00000:0457:0001:129:0
-ASTRA SDT
-p:SES ASTRA,f:40
-1c34:00c00000:0457:0001:129:0
-Samsung2
-p:SES ASTRA,f:40
-33a4:00c00000:045d:0001:129:0
-VESTEL OAD2
-p:ORF,f:40
-33ae:00c00000:045d:0001:129:0
-VESTEL DOWNLOAD
-p:ORF,f:40
-74d3:00c00000:03f8:0001:129:0
-
-p:DIGITAL+,f:40
-00e1:00c00000:0447:0001:129:0
-PHILIPS DOWNLOAD 1.1
-p:WIZJA 1,f:40
-00e2:00c00000:0447:0001:129:0
-PHILIPS DOWNLOAD 1.2
-p:UPC DIRECT,f:40
-00e3:00c00000:0447:0001:129:0
-NAGRA DOWNLOAD
-p:UPC Direct,f:40
-00e4:00c00000:0447:0001:129:0
-HUMAX DOWNLOAD
-p:UPC Direct,f:40
-13eb:00c00000:0455:0035:129:0
-Downl
-p:CANALDIGITAAL,f:40
-1c30:00c00000:0457:0001:130:0
-HUMAX DOWNLOAD SVC
-p:SES ASTRA,f:40
-0066:00c00000:045c:0035:130:0
-HUMAX DOWNLOAD SVC
-p:,f:40
-0066:00c00000:045f:0035:130:0
-HUMAX DOWNLOAD SVC
-p:,f:40
-1932:00c00000:03fa:0001:132:0
-01 03 01 47
-p:CSAT,f:40
-193c:00c00000:03fa:0001:132:0
-01 03 04 51
-p:CSAT,f:40
-2067:00c00000:0430:0001:132:0
-01 04 04 51
-p:CSAT,f:40
-2068:00c00000:0430:0001:132:0
-01 04 01 47
-p:CSAT,f:40
-21cc:00c00000:0448:0001:132:0
-01 06 01 47
-p:CSAT,f:40
-21cd:00c00000:0448:0001:132:0
-01 07 01 47
-p:CSAT,f:40
-21ce:00c00000:0448:0001:132:0
-01 08 01 47
-p:CSAT,f:40
-21d6:00c00000:0448:0001:132:0
-01 06 04 51
-p:CSAT,f:40
-21d7:00c00000:0448:0001:132:0
-01 07 04 51
-p:CSAT,f:40
-21d8:00c00000:0448:0001:132:0
-01 08 04 51
-p:CSAT,f:40
-206a:00c00000:0430:0001:135:0
-CDSA
-p:CSAT,f:40
-2185:00c00000:0442:0001:135:0
-RADIO 1
-p:CSAT,f:40
-2186:00c00000:0442:0001:135:0
-RADIO 2
-p:CSAT,f:40
-2187:00c00000:0442:0001:135:0
-RADIO 3
-p:CSAT,f:40
-2188:00c00000:0442:0001:135:0
-RADIO FRANCE
-p:CSAT,f:40
-239d:00c00000:044a:0001:135:0
-BIENVENUE SUR ASTRA
-p:CSAT,f:40
-239f:00c00000:044a:0001:135:0
-EPG
-p:CSAT,f:40
-21c2:00c00000:0448:0001:135:0
-MOSA 2
-p:CSAT,f:40
-21c3:00c00000:0448:0001:135:0
-MOSA 3
-p:CSAT,f:40
-21c4:00c00000:0448:0001:135:0
-MOSA 4
-p:CSAT,f:40
-21c5:00c00000:0448:0001:135:0
-MOSA 5
-p:CSAT,f:40
-21c6:00c00000:0448:0001:135:0
-BIENVENUE SUR ASTRA
-p:CSAT,f:40
-2142:00c00000:0442:0001:138:0
-CANALSAT RADIOS
-p:CSAT,f:40
-2274:00c00000:0438:0001:138:0
-A LA CARTE
-p:CSAT,f:40
-239e:00c00000:044a:0001:138:0
-ESPACE CLIENT
-p:CSAT,f:40
-23a7:00c00000:044a:0001:138:0
-SITE 16/9
-p:IMEDIA,f:40
-21cf:00c00000:0448:0001:139:0
-02 01 01 83
-p:CSAT,f:40
-21d0:00c00000:0448:0001:139:0
-02 02 01 83
-p:CSAT,f:40
-21d1:00c00000:0448:0001:139:0
-02 04 01 83
-p:CSAT,f:40
-21d2:00c00000:0448:0001:139:0
-02 05 01 83
-p:IMEDIA,f:40
-21d3:00c00000:0448:0001:139:0
-02 06 01 83
-p:CSAT,f:40
-21d9:00c00000:0448:0001:139:0
-02 01 04 87
-p:CSAT,f:40
-21da:00c00000:0448:0001:139:0
-02 02 04 87
-p:CSAT,f:40
-21db:00c00000:0448:0001:139:0
-02 04 04 87
-p:CSAT,f:40
-21dc:00c00000:0448:0001:139:0
-02 05 04 87
-p:CSAT,f:40
-21dd:00c00000:0448:0001:139:0
-02 06 04 87
-p:CSAT,f:40
-1c83:00c00000:0457:0001:170:0
-Kathrein Download
-p:SES ASTRA,f:40
-1c33:00c00000:0457:0001:171:0
-SEMCO Download
-p:SES ASTRA,f:40
-1c3c:00c00000:0457:0001:171:0
-STB Radix
-p:RADIXdownload,f:40
-1c40:00c00000:0457:0001:171:0
-STB SMEL
-p:SES ASTRA,f:40
-1c4e:00c00000:0457:0001:171:0
-STB Aston2
-p:ASTON,f:40
-1c5a:00c00000:0457:0001:171:0
-STB Radix 128kbps
-p:RADIXdownload,f:40
-1c6c:00c00000:0457:0001:171:0
-HDS Europe
-p:SES ASTRA,f:40
-1c6e:00c00000:0457:0001:171:0
-STB Strong
-p:SES ASTRA,f:40
-0070:00c00000:045c:0035:171:0
-STB Technisat
-p:SES ASTRA,f:40
-0070:00c00000:045f:0035:171:0
-STB Technisat
-p:SES ASTRA,f:40
-1c76:00c00000:0457:0001:171:0
-STB SRADIX
-p:SES ASTRA,f:40
-0a82:00c00000:0004:0085:178:0
-Videotext
-p:BetaResearch,f:40
-0a94:00c00000:0011:0085:178:0
-TM V1.0
-p:Premiere World,f:40
-23b5:00c00000:044a:0001:192:0
-CODE DOWN
-p:CSAT,f:40
-23b6:00c00000:044a:0001:192:0
-DOWNLOAD MMAX SAGEM
-p:CSAT,f:40
-23b7:00c00000:044a:0001:192:0
-DOWNLOAD MMAX PHILIPS
-p:CSAT,f:40
-23b8:00c00000:044a:0001:192:0
-DOWNLOAD DUALS PHILIPS
-p:CSAT,f:40
-2007:00c00000:0434:0001:193:0
-DATA SYSTEM\8676\87
-p:CSAT,f:40
-251b:00c00000:043c:0001:193:0
-DATASYSTEM 84
-p:CSAT,f:40
-2327:00c00000:045a:0001:193:0
-DATASYSTEM \86114\87
-p:CSAT,f:40
-2133:00c00000:043e:0001:193:0
-DATA SYSTEM[86]
-p:CSAT,f:40
-233c:00c00000:0400:0001:193:0
-DATASYSTEMS TR 24
-p:CANALSATELLITE,f:40
-2647:00c00000:045e:0001:193:0
-DATA SYSTEM \86118\87
-p:CSAT,f:40
-1b58:00c00000:03fc:0001:193:0
-DATA SYSTEM
-p:CSAT,f:40
-1b58:00c00000:03fe:0001:193:0
-DATA SYSTEM
-p:CSAT,f:40
-225f:00c00000:044c:0001:193:0
-DATA SYSTEM[100]
-p:CSAT,f:40
-1963:00c00000:03fa:0001:193:0
-DATA SYSTEM \8618\87
-p:CSAT,f:40
-206b:00c00000:0430:0001:193:0
-DATA SYSTEM[72]
-p:CSAT,f:40
-6f71:00c00000:042c:0001:193:0
-DATA_SYS_68
-p:DT CSAT,f:40
-257f:00c00000:0440:0001:193:0
-DATASYSTEM 88
-p:CSAT,f:40
-0a83:00c00000:0004:0085:193:0
-NDS Applikation
-p:PREMIERE,f:40
-2197:00c00000:0442:0001:193:0
-DATA SYSTEM[90]
-p:CSAT,f:40
-1fa3:00c00000:042e:0001:193:0
-DATA SYSTEM[70]
-p:CSAT,f:40
-26ab:00c00000:0460:0001:193:0
-DATA SYSTEM \86120\87
-p:CSAT,f:40
-22c3:00c00000:0438:0001:193:0
-DATA SYSTEM\8680\87
-p:CSAT,f:40
-42cb:00c00000:0446:0001:193:0
-DATA SYSTEM TR94
-p:ABSAT,f:40
-20cf:00c00000:0432:0001:193:0
-DATA SYSTEM\8674\87
-p:CSAT,f:40
-25e3:00c00000:0458:0001:193:0
-DATA SYSTEM \86112\87
-p:CSAT,f:40
-6fea:00c00000:042a:0001:193:0
-Data_System_TR_66
-p:MTV Networks Europe,f:40
-23ef:00c00000:044a:0001:193:0
-DATA SYSTEM[98]
-p:CSAT,f:40
-21fb:00c00000:0448:0001:193:0
-DATA SYSTEM[96]
-p:CSAT,f:40
-6ffe:00c00000:0436:0001:193:0
-DATA SYSTEM TR 78
-p:MTV Networks Europe,f:40
-2012:00c00000:0430:0001:197:0
-PMU sur Canal+
-p:CSAT,f:40
-219c:00c00000:0448:0001:197:0
-MOSA 2
-p:CSAT,f:40
-219d:00c00000:0448:0001:197:0
-MOSA 3
-p:CSAT,f:40
-21a2:00c00000:0448:0001:197:0
-MOSA 5
-p:CSAT,f:40
-21a6:00c00000:0448:0001:197:0
-MOSA 4
-p:CSAT,f:40
-23c0:00c00000:044a:0001:197:0
-DT3
-p:CSAT,f:40
-213d:00c00000:0442:0001:198:0
-CANALSAT RADIOS
-p:CSAT,f:40
-213e:00c00000:0442:0001:198:0
-RADIOS 2
-p:CSAT,f:40
-213f:00c00000:0442:0001:198:0
-RADIOS 3
-p:CSAT,f:40
-2146:00c00000:0442:0001:198:0
-RF
-p:CSAT,f:40
-end
-Have a lot of bugs!
+++ /dev/null
-<default>
- <prerequisites>
- <tag type="services" />
- <bcastsystem type="DVB-S" />
- <satellite type="130" />
- </prerequisites>
-
- <info>
- <author>tmbinc@elitedvb.net</author>
- <name>Hotbird (13.0E)</name>
- </info>
-
- <files type="directories">
- <file type="services" name="lamedb.130">
- </file>
- </files>
-</default>
+++ /dev/null
-<default>
- <prerequisites>
- <tag type="services" />
- <bcastsystem type="DVB-S" />
- <satellite type="192" />
- </prerequisites>
-
- <info>
- <author>tmbinc@elitedvb.net</author>
- <name>Astra (19.2E)</name>
- </info>
-
- <files type="directories">
- <file type="services" name="lamedb.192">
- </file>
- </files>
-</default>
+++ /dev/null
-DESCRIPTION = "Additional plugins for Enigma2"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-
-SRCDATE = "20090128"
-
-PACKAGES_DYNAMIC = "enigma2-plugin-*"
-
-# if you want experimental, use:
-REL_MAJOR="2"
-REL_MINOR="6"
-TAG = ""
-
-# if you want a 2.5-based release, use
-#REL_MAJOR="2"
-#REL_MINOR="5"
-#TAG = ";tag=${PN}_rel${REL_MAJOR}${REL_MINOR}"
-
-PV = "${REL_MAJOR}.${REL_MINOR}cvs${SRCDATE}"
-
-SRC_URI = "cvs://anonymous@cvs.schwerkraft.elitedvb.net/cvsroot/enigma2-plugins;module=enigma2-plugins;method=pserver${TAG};date=${SRCDATE}"
-FILES_${PN} += " /usr/share/enigma2 /usr/share/fonts "
-
-inherit autotools
-
-S = "${WORKDIR}/enigma2-plugins"
-
-DEPENDS = "${@get_version_depends(bb, d)} "
-DEPENDS += "enigma2 python-gdata "
-
-def get_version_depends(bb, d):
- if bb.data.getVar('REL_MINOR', d, 1) > '4':
- return "python-pyopenssl"
- return ""
-
-python populate_packages_prepend () {
- enigma2_plugindir = bb.data.expand('${libdir}/enigma2/python/Plugins', d)
-
- do_split_packages(d, enigma2_plugindir, '(.*?/.*?)/.*', 'enigma2-plugin-%s', 'Enigma2 Plugin: %s', recursive=True, match_path=True, prepend=True)
-
- def getControlLines(mydir, d, package):
- import os
- try:
- src = open(mydir + package + "/CONTROL/control").read()
- except IOError:
- return
- for line in src.split("\n"):
- if line.startswith('Package: '):
- full_package = line[9:]
- if line.startswith('Depends: '):
- depends = line[9:].split(', ')
- # HACK: until enigma2-plugins made the switch we re-route some dependencies here
- if 'twisted-web' in depends:
- depends.remove('twisted-web')
- depends.append('python-twisted-web')
- bb.data.setVar('RDEPENDS_' + full_package, ' '.join(depends), d)
- if line.startswith('Description: '):
- bb.data.setVar('DESCRIPTION_' + full_package, line[13:], d)
-
- mydir = bb.data.getVar('D', d, 1) + "/../enigma2-plugins/"
- for package in bb.data.getVar('PACKAGES', d, 1).split():
- getControlLines(mydir, d, package.split('-')[-1])
-}
+++ /dev/null
-DESCRIPTION = "Skins for Enigma2"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-
-SRCDATE = "20090127"
-
-# if you want experimental, use:
-REL_MAJOR="2"
-REL_MINOR="6"
-TAG = ""
-
-# if you want a 2.5-based release, use
-#REL_MAJOR="2"
-#REL_MINOR="5"
-#TAG = ";tag=${PN}_rel${REL_MAJOR}${REL_MINOR}"
-
-PV = "${REL_MAJOR}.${REL_MINOR}cvs${SRCDATE}"
-
-SRC_URI = "cvs://anonymous@cvs.schwerkraft.elitedvb.net/cvsroot/enigma2-skins;module=enigma2-skins;method=pserver${TAG};date=${SRCDATE}"
-FILES_${PN} += " /usr/share/enigma2 /usr/share/fonts "
-PACKAGE_ARCH = "all"
-
-inherit autotools
-
-S = "${WORKDIR}/enigma2-skins"
-
-python populate_packages_prepend () {
- if bb.data.expand('${REL_MINOR}', d) != "4":
- enigma2_skindir = bb.data.expand('${datadir}/enigma2', d)
- do_split_packages(d, enigma2_skindir, '(.*?)/.*', 'enigma2-skin-%s', 'Enigma2 Skin: %s', recursive=True, match_path=True, prepend=True)
-}
+++ /dev/null
-DESCRIPTION = "streamproxy manages streaming data to a PC using enigma2"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-
-SRCDATE = "20080728"
-PV = "1.0cvs${SRCDATE}"
-
-SRC_URI = "cvs://anonymous@cvs.schwerkraft.elitedvb.net/cvsroot/streamproxy;module=enigma2-streamproxy;method=pserver"
-
-inherit autotools
-
-S = "${WORKDIR}/enigma2-streamproxy"
+++ /dev/null
-DESCRIPTION = "Enigma2 is an experimental, but useful framebuffer-based frontend for DVB functions"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-DEPENDS = "jpeg libungif libmad libpng libsigc++-1.2 gettext-native \
- dreambox-dvbincludes freetype libdvbsi++ python swig-native \
- gstreamer gst-plugins-good gst-plugins-bad gst-plugins-ugly \
- gst-plugin-dvbmediasink gst-plugin-fluendo-mpegdemux \
- libfribidi libxmlccwrap libdreamdvd tuxbox-tuxtxt-32bpp"
-RDEPENDS = "python-codecs python-core python-datetime python-elementtree \
- python-fcntl python-io python-math python-lang python-re \
- python-stringold python-threading python-xml gst-plugin-decodebin \
- gst-plugin-id3demux gst-plugin-mad gst-plugin-ogg gst-plugin-playbin \
- gst-plugin-typefindfunctions gst-plugin-ivorbis gst-plugin-audioconvert \
- gst-plugin-wavparse python-netclient gst-plugin-mpegstream gst-plugin-selector \
- gst-plugin-flac gst-plugin-dvbmediasink gst-plugin-fluendo-mpegdemux \
- gst-plugin-neonhttpsrc gst-plugin-mpegaudioparse gst-plugin-subparse \
- eglibc-gconv-iso8859-15 \
- ${@base_contains("MACHINE_FEATURES", "alsa", \
- "gst-plugin-alsa alsa-conf", "gst-plugin-ossaudio", d)}"
-
-RDEPENDS_append_dm8000 = " gst-plugin-avi gst-plugin-matroska gst-plugin-qtdemux \
- gst-plugin-cdxaparse gst-plugin-cdxaparse gst-plugin-cdio gst-plugin-vcdsrc"
-RDEPENDS_append_dm800 = " gst-plugin-matroska gst-plugin-qtdemux"
-
-DESCRIPTION_append_enigma2-plugin-extensions-cutlisteditor = "enables you to cut your movies."
-RDEPENDS_enigma2-plugin-extensions-cutlisteditor = "aio-grab"
-DESCRIPTION_append_enigma2-plugin-extensions-graphmultiepg = "shows a graphical timeline EPG."
-DESCRIPTION_append_enigma2-plugin-extensions-pictureplayer = "displays photos on the TV."
-DESCRIPTION_append_enigma2-plugin-systemplugins-frontprocessorupdate = "keeps your frontprocessor up to date."
-DESCRIPTION_append_enigma2-plugin-systemplugins-positionersetup = "helps you installing a motorized dish."
-DESCRIPTION_append_enigma2-plugin-systemplugins-satelliteequipmentcontrol = "allows you to fine-tune DiSEqC-settings."
-DESCRIPTION_append_enigma2-plugin-systemplugins-satfinder = "helps you to align your dish."
-DESCRIPTION_append_enigma2-plugin-systemplugins-skinselector = "shows a menu with selectable skins."
-DESCRIPTION_append_enigma2-plugin-systemplugins-videomode = "selects advanced video modes"
-RDEPENDS_enigma2-plugin-systemplugins-hotplug = "python-pkgutil"
-RDEPENDS_enigma2-plugin-extensions-dvdplayer = "libdreamdvd0"
-RDEPENDS_enigma2-plugin-extensions-dvdburn = "cdrkit dvdauthor dvd+rw-tools mjpegtools projectx python-imaging"
-RDEPENDS_enigma2-plugin-systemplugins-nfiflash = "python-twisted-web"
-
-export LD="${CXX}"
-
-PN = "enigma2"
-PR = "r0"
-SRCDATE = "20090214"
-SRCREV = "935c5f9abeb0d6189c57f8406855d8437db8b0db"
-
-# if you want experimental, use:
-REL_MAJOR="2"
-REL_MINOR="6"
-BRANCH = "master"
-
-# if you want a 2.5-based release, use
-#REL_MAJOR="2"
-#REL_MINOR="5"
-#BRANCH = "enigma2_rel${REL_MAJOR}${REL_MINOR}"
-
-PV = "${REL_MAJOR}.${REL_MINOR}git${SRCDATE}"
-
-SRC_URI = "git://git.opendreambox.org/git/enigma2.git;protocol=git;branch=${BRANCH} \
- file://enigma2.sh \
- file://tuxtxt_caching.patch;patch=1;pnum=1"
-
-SRC_URI_append_dm7025 = " file://enigma2-disable-iframesearch.patch;patch=1;pnum=1 \
- file://enigma2-disable-hardware-mp3-decode.patch;patch=1;pnum=1"
-
-S = "${WORKDIR}/git"
-
-FILES_${PN} += "${datadir}/fonts"
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-inherit autotools pkgconfig
-
-bindir = "/usr/bin"
-sbindir = "/usr/sbin"
-
-EXTRA_OECONF = "--enable-maintainer-mode --with-target=native --with-libsdl=no"
-
-do_install_append() {
- install -m 0755 ${WORKDIR}/enigma2.sh ${D}/usr/bin/
-}
-
-python populate_packages_prepend () {
- enigma2_plugindir = bb.data.expand('${libdir}/enigma2/python/Plugins', d)
-
- do_split_packages(d, enigma2_plugindir, '(.*?/.*?)/.*', 'enigma2-plugin-%s', '%s ', recursive=True, match_path=True, prepend=True)
-}
-
-do_stage_append() {
- install -d ${STAGING_INCDIR}/enigma2
- install -m 0644 ${S}/include/*.h ${STAGING_INCDIR}/enigma2
- for dir in actions base components driver dvb dvb/lowlevel dvb_ci gdi gui mmi nav python service; do
- install -d ${STAGING_INCDIR}/enigma2/lib/$dir;
- install -m 0644 ${S}/lib/$dir/*.h ${STAGING_INCDIR}/enigma2/lib/$dir;
- done
-}
+++ /dev/null
-diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp
-index d395701..8b8ab31 100644
---- a/lib/service/servicemp3.cpp
-+++ b/lib/service/servicemp3.cpp
-@@ -372,6 +372,7 @@ eServiceMP3::eServiceMP3(const char *filename): m_filename(filename), m_pump(eAp
- }
- switch ( sourceinfo.audiotype )
- {
-+#if 0
- case atMP3:
- {
- id3demux = gst_element_factory_make("id3demux", "id3demux");
-@@ -393,6 +394,7 @@ eServiceMP3::eServiceMP3(const char *filename): m_filename(filename), m_pump(eAp
- all_ok = 1;
- break;
- }
-+#endif
- case atAAC:
- {
- if ( !audiodemux )
+++ /dev/null
-Index: enigma2/lib/dvb/dvb.cpp
-===================================================================
---- enigma2.orig/lib/dvb/dvb.cpp 2008-04-11 19:01:56.000000000 +0200
-+++ enigma2/lib/dvb/dvb.cpp 2008-04-11 19:02:15.000000000 +0200
-@@ -845,7 +845,7 @@
- }
- #endif
-
--#if 1 /* not yet */
-+#if 0 /* not yet */
- if (!m_iframe_search)
- return len;
-
+++ /dev/null
-#!/bin/sh
-
-/usr/bin/showiframe /boot/backdrop.mvi
-
-cd /home/root
-LD_PRELOAD=/usr/lib/libopen.so.0.0 /usr/bin/enigma2
-
-# enigma2 exit codes:
-#
-# 0 - restart enigma
-# 1 - halt
-# 2 - reboot
-#
-# >128 signal
-
-ret=$?
-case $ret in
- 1)
- /sbin/halt
- ;;
- 2)
- /sbin/reboot
- ;;
- 4)
- /sbin/rmmod lcd
- /usr/sbin/fpupgrade --upgrade 2>&1 | tee /home/root/fpupgrade.log
- sleep 1;
- /sbin/rmmod fp
- /sbin/modprobe fp
- /sbin/reboot
- ;;
- *)
- ;;
-esac
+++ /dev/null
-diff --git a/data/setup.xml b/data/setup.xml
-index e2ab09b..823fa6f 100644
---- a/data/setup.xml
-+++ b/data/setup.xml
-@@ -23,6 +23,7 @@
- <item level="0" text="Margin after record">config.recording.margin_after</item>
- <item level="0" text="Show blinking clock in display during recording">config.usage.blinking_display_clock_during_recording</item>
- <item level="2" text="Load Length of Movies in Movielist">config.usage.load_length_of_movies_in_moviellist</item>
-+ <item level="1" text="Enable teletext caching">config.usage.enable_tt_caching</item>
- <item level="1" text="Show positioner movement">config.usage.showdish</item>
- <item level="1" text="Enable multiple bouquets">config.usage.multibouquet</item>
- <item level="1" text="Change bouquets in quickzap">config.usage.quickzap_bouquet_change</item>
-diff --git a/lib/components/Makefile.am b/lib/components/Makefile.am
-index e377ab8..e45ae56 100644
---- a/lib/components/Makefile.am
-+++ b/lib/components/Makefile.am
-@@ -3,4 +3,4 @@ INCLUDES = \
-
- noinst_LIBRARIES = libenigma_components.a
-
--libenigma_components_a_SOURCES = scan.cpp file_eraser.cpp
-+libenigma_components_a_SOURCES = scan.cpp file_eraser.cpp tuxtxtapp.cpp
-diff --git a/lib/components/tuxtxtapp.cpp b/lib/components/tuxtxtapp.cpp
-new file mode 100644
-index 0000000..b08694b
---- /dev/null
-+++ b/lib/components/tuxtxtapp.cpp
-@@ -0,0 +1,113 @@
-+#include <lib/components/tuxtxtapp.h>
-+#include <lib/base/init.h>
-+#include <lib/base/init_num.h>
-+#include <lib/driver/rc.h>
-+#include <lib/gdi/lcd.h>
-+#include <lib/gdi/fb.h>
-+
-+extern "C" int tuxtxt_run_ui(int pid, int demux);
-+extern "C" int tuxtxt_init();
-+extern "C" void tuxtxt_start(int tpid, int demux);
-+extern "C" int tuxtxt_stop();
-+extern "C" void tuxtxt_close();
-+
-+eAutoInitP0<eTuxtxtApp> init_eTuxtxtApp(eAutoInitNumbers::lowlevel, "Tuxtxt");
-+eTuxtxtApp *eTuxtxtApp::instance;
-+
-+eTuxtxtApp::eTuxtxtApp() : pid(0), enableTtCaching(false), uiRunning(false)
-+{
-+ pthread_mutex_init( &cacheChangeLock, 0 );
-+ if (!instance)
-+ instance=this;
-+}
-+
-+eTuxtxtApp::~eTuxtxtApp()
-+{
-+ if (instance==this)
-+ instance=0;
-+ kill();
-+ pthread_mutex_destroy( &cacheChangeLock );
-+}
-+
-+int eTuxtxtApp::startUi()
-+{
-+ if (pid && fbClass::getInstance()->lock() >= 0)
-+ {
-+ eDBoxLCD::getInstance()->lock();
-+ eRCInput::getInstance()->lock();
-+ pthread_mutex_lock( &cacheChangeLock );
-+ uiRunning = true;
-+ pthread_mutex_unlock( &cacheChangeLock );
-+ run();
-+ }
-+ return 0;
-+}
-+
-+void eTuxtxtApp::thread()
-+{
-+ hasStarted();
-+ tuxtxt_run_ui(pid, demux);
-+}
-+
-+void eTuxtxtApp::thread_finished()
-+{
-+ uiRunning = false;
-+ eRCInput::getInstance()->unlock();
-+ eDBoxLCD::getInstance()->unlock();
-+ eDBoxLCD::getInstance()->update();
-+ fbClass::getInstance()->unlock();
-+}
-+
-+void eTuxtxtApp::initCache()
-+{
-+ if (enableTtCaching)
-+ tuxtxt_init();
-+}
-+
-+void eTuxtxtApp::freeCache()
-+{
-+ pthread_mutex_lock( &cacheChangeLock );
-+ if ( !uiRunning )
-+ {
-+ tuxtxt_close();
-+ pid = 0;
-+ }
-+ pthread_mutex_unlock( &cacheChangeLock );
-+}
-+
-+void eTuxtxtApp::startCaching( int tpid, int tdemux)
-+{
-+ pid = tpid;
-+ demux = tdemux;
-+ if (enableTtCaching)
-+ tuxtxt_start(pid, demux);
-+}
-+
-+void eTuxtxtApp::stopCaching()
-+{
-+ pthread_mutex_lock( &cacheChangeLock );
-+ if ( !uiRunning )
-+ tuxtxt_stop();
-+
-+ pthread_mutex_unlock( &cacheChangeLock );
-+}
-+
-+void eTuxtxtApp::setEnableTtCachingOnOff( int onoff )
-+{
-+ if (onoff && !enableTtCaching) // Switch caching on
-+ {
-+ enableTtCaching = true;
-+ if (pid)
-+ {
-+ initCache();
-+ startCaching(pid, demux);
-+ }
-+ }
-+ else if (!onoff && enableTtCaching) // Switch caching off
-+ {
-+ enableTtCaching = false;
-+ int savePid = pid;
-+ freeCache();
-+ pid = savePid;
-+ }
-+}
-diff --git a/lib/components/tuxtxtapp.h b/lib/components/tuxtxtapp.h
-new file mode 100644
-index 0000000..9cd8f0c
---- /dev/null
-+++ b/lib/components/tuxtxtapp.h
-@@ -0,0 +1,33 @@
-+#ifndef __LIB_COMPONENTS_TUXTXTAPP_H__
-+#define __LIB_COMPONENTS_TUXTXTAPP_H__
-+
-+#include <string>
-+#include <lib/base/ebase.h>
-+#include <lib/base/thread.h>
-+
-+class eTuxtxtApp: private eThread, public Object
-+{
-+#ifndef SWIG
-+ int pid;
-+ int demux;
-+ bool enableTtCaching, uiRunning;
-+ static eTuxtxtApp *instance;
-+ pthread_mutex_t cacheChangeLock;
-+
-+ void thread();
-+ void thread_finished();
-+#endif
-+public:
-+ eTuxtxtApp();
-+ ~eTuxtxtApp();
-+ static eTuxtxtApp *getInstance() { return instance; }
-+ int startUi();
-+ void initCache();
-+ void freeCache();
-+ void startCaching( int tpid, int tdemux );
-+ void stopCaching();
-+ void resetPid() { pid = 0; demux = 0; }
-+ void setEnableTtCachingOnOff( int onoff );
-+};
-+
-+#endif // __LIB_COMPONENTS_TUXTXTAPP_H__
-diff --git a/lib/dvb/decoder.cpp b/lib/dvb/decoder.cpp
-index 065a49c..173f009 100644
---- a/lib/dvb/decoder.cpp
-+++ b/lib/dvb/decoder.cpp
-@@ -1,6 +1,7 @@
- #include <lib/base/ebase.h>
- #include <lib/base/eerror.h>
- #include <lib/dvb/decoder.h>
-+#include <lib/components/tuxtxtapp.h>
- #if HAVE_DVB_API_VERSION < 3
- #define audioStatus audio_status
- #define videoStatus video_status
-@@ -974,7 +975,11 @@ int eTSMPEGDecoder::setState()
- if (m_changed & changeText)
- {
- if (m_text)
-+ {
- m_text->stop();
-+ if ( m_decoder == 0 ) // Tuxtxt caching actions only on primary decoder
-+ eTuxtxtApp::getInstance()->stopCaching();
-+ }
- m_text = 0;
- }
- if (m_changed & changePCR)
-@@ -1015,7 +1020,16 @@ int eTSMPEGDecoder::setState()
- m_text = new eDVBTText(m_demux);
- if (m_text->startPid(m_textpid))
- res = -1;
-+
-+ if ( m_decoder == 0 ) // Tuxtxt caching actions only on primary decoder
-+ {
-+ uint8_t demux = 0;
-+ m_demux->getCADemuxID(demux);
-+ eTuxtxtApp::getInstance()->startCaching(m_textpid, demux);
-+ }
- }
-+ else if ( m_decoder == 0 ) // Tuxtxt caching actions only on primary decoder
-+ eTuxtxtApp::getInstance()->resetPid();
- m_changed &= ~changeText;
- }
- #endif
-@@ -1066,10 +1080,16 @@ eTSMPEGDecoder::eTSMPEGDecoder(eDVBDemux *demux, int decoder)
- demux->connectEvent(slot(*this, &eTSMPEGDecoder::demux_event), m_demux_event_conn);
- CONNECT(m_showSinglePicTimer->timeout, eTSMPEGDecoder::finishShowSinglePic);
- m_is_ff = m_is_sm = m_is_trickmode = 0;
-+
-+ if ( m_decoder == 0 ) // Tuxtxt caching actions only on primary decoder
-+ eTuxtxtApp::getInstance()->initCache();
- }
-
- eTSMPEGDecoder::~eTSMPEGDecoder()
- {
-+ if ( m_decoder == 0 ) // Tuxtxt caching actions only on primary decoder
-+ eTuxtxtApp::getInstance()->freeCache();
-+
- finishShowSinglePic();
- m_vpid = m_apid = m_pcrpid = m_textpid = pidNone;
- m_changed = -1;
-diff --git a/lib/python/Components/UsageConfig.py b/lib/python/Components/UsageConfig.py
-index 21e057f..f2c864e 100644
---- a/lib/python/Components/UsageConfig.py
-+++ b/lib/python/Components/UsageConfig.py
-@@ -1,6 +1,6 @@
- from Components.Harddisk import harddiskmanager
- from config import ConfigSubsection, ConfigYesNo, config, ConfigSelection, ConfigText, ConfigNumber, ConfigSet, ConfigLocations
--from enigma import Misc_Options, setTunerTypePriorityOrder;
-+from enigma import Misc_Options, setTunerTypePriorityOrder, setEnableTtCachingOnOff
- from SystemInfo import SystemInfo
- import os
-
-@@ -17,6 +17,7 @@ def InitUsageConfig():
- config.usage.show_infobar_on_zap = ConfigYesNo(default = True)
- config.usage.show_infobar_on_skip = ConfigYesNo(default = True)
- config.usage.show_infobar_on_event_change = ConfigYesNo(default = True)
-+ config.usage.enable_tt_caching = ConfigYesNo(default = True)
- config.usage.hdd_standby = ConfigSelection(default = "600", choices = [
- ("0", _("no standby")), ("10", "10 " + _("seconds")), ("30", "30 " + _("seconds")),
- ("60", "1 " + _("minute")), ("120", "2 " + _("minutes")),
-@@ -59,7 +60,11 @@ def InitUsageConfig():
-
- config.usage.blinking_display_clock_during_recording = ConfigYesNo(default = False)
- config.usage.load_length_of_movies_in_moviellist = ConfigYesNo(default = True)
--
-+
-+ def EnableTtCachingChanged(configElement):
-+ setEnableTtCachingOnOff(int(configElement.value))
-+ config.usage.enable_tt_caching.addNotifier(EnableTtCachingChanged)
-+
- def TunerTypePriorityOrderChanged(configElement):
- setTunerTypePriorityOrder(int(configElement.value))
- config.usage.alternatives_priority.addNotifier(TunerTypePriorityOrderChanged)
-diff --git a/lib/python/enigma_python.i b/lib/python/enigma_python.i
-index bdf1b14..358dcfb 100644
---- a/lib/python/enigma_python.i
-+++ b/lib/python/enigma_python.i
-@@ -86,6 +86,7 @@ is usually caused by not marking PSignals as immutable.
- #include <lib/dvb/pmt.h>
- #include <lib/components/scan.h>
- #include <lib/components/file_eraser.h>
-+#include <lib/components/tuxtxtapp.h>
- #include <lib/driver/avswitch.h>
- #include <lib/driver/rfmod.h>
- #include <lib/driver/misc_options.h>
-@@ -155,6 +156,9 @@ typedef long time_t;
- %immutable eAVSwitch::vcr_sb_notifier;
- %immutable ePythonMessagePump::recv_msg;
- %immutable eDVBLocalTimeHandler::m_timeUpdated;
-+%immutable eTuxtxtApp::appClosed;
-+%immutable eTuxtxtApp::dataAvail;
-+%immutable eTuxtxtApp::dataSent;
- %include <lib/base/message.h>
- %include <lib/base/nconfig.h>
- %include <lib/driver/rc.h>
-@@ -199,6 +203,7 @@ typedef long time_t;
- %include <lib/dvb/pmt.h>
- %include <lib/components/scan.h>
- %include <lib/components/file_eraser.h>
-+%include <lib/components/tuxtxtapp.h>
- %include <lib/driver/avswitch.h>
- %include <lib/driver/rfmod.h>
- %include <lib/driver/misc_options.h>
-@@ -303,6 +308,15 @@ void setTunerTypePriorityOrder(int order)
- }
- %}
-
-+void setEnableTtCachingOnOff(int);
-+%{
-+void setEnableTtCachingOnOff(int onoff)
-+{
-+ eTuxtxtApp *tt = eTuxtxtApp::getInstance();
-+ if (tt) tt->setEnableTtCachingOnOff(onoff);
-+}
-+%}
-+
- /************** temp *****************/
-
- /* need a better place for this, i agree. */
-diff --git a/main/Makefile.am b/main/Makefile.am
-index 891b646..fed03bf 100644
---- a/main/Makefile.am
-+++ b/main/Makefile.am
-@@ -53,7 +53,7 @@ enigma2_LDADD = \
- @LIBUNGIF_LIBS@ \
- @XML2_LIBS@ \
- @XMLCCWRAP_LIBS@ \
-- -ldl -lpthread -lcrypt -lresolv -lrt
-+ -ldl -lpthread -lcrypt -lresolv -lrt -ltuxtxt32bpp
-
- enigma2$(EXEEXT): $(enigma2_OBJECTS) $(enigma2_DEPENDENCIES) $(enigma2_LDADD_WHOLE)
- # @rm -f enigma2$(EXEEXT)
+++ /dev/null
-DESCRIPTION = "Fake locale support"
-SECTION = "base"
-PRIORITY = "required"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-PR = "r2"
-
-SRC_URI = "http://sources.dreamboxupdate.com/download/opendreambox/fakelocale.tar.gz file://locale.alias"
-
-S = "${WORKDIR}/fakelocale"
-
-LOCALEDIR = "${libdir}/locale"
-LOCALEDIR2 = "/usr/share/locale"
-
-LANGUAGES = "ar_AE cs_CZ da_DK de_DE el_GR es_ES et_EE fi_FI fr_FR fy_FY hr_HR \
- hu_HU is_IS it_IT lt_LT nl_NL no_NO pl_PL pt_PT ro_RO ru_RU sk_SK sl_SI \
- sr_YU sv_SE tr_TR ur_IN"
-
-RPROVIDES = "virtual-locale-ar virtual-locale-cs virtual-locale-da \
- virtual-locale-de virtual-locale-el virtual-locale-es virtual-locale-et \
- virtual-locale-fi virtual-locale-fr virtual-locale-fy virtual-locale-hr \
- virtual-locale-hu virtual-locale-is virtual-locale-it virtual-locale-lt \
- virtual-locale-nl virtual-locale-no virtual-locale-pl virtual-locale-pt \
- virtual-locale-ro virtual-locale-ru virtual-locale-sk virtual-locale-sl \
- virtual-locale-sr virtual-locale-sv virtual-locale-tr virtual-locale-ur"
-
-LOCALE_FILES = " LC_TIME LC_TELEPHONE LC_PAPER LC_NUMERIC LC_NAME LC_MONETARY LC_MESSAGES/SYS_LC_MESSAGES LC_MEASUREMENT \
- LC_IDENTIFICATION LC_CTYPE LC_COLLATE LC_ADDRESS"
-
-do_install() {
- install -d ${D}${LOCALEDIR}/fake/LC_MESSAGES
- install -d ${D}${LOCALEDIR2}
-
- for x in ${LOCALE_FILES}; do
- install ${S}/$x ${D}${LOCALEDIR}/fake/$x
- done
-
- for lang in ${LANGUAGES}; do
- ln -s fake ${D}${LOCALEDIR}/${lang}
- done
-
- install ${WORKDIR}/locale.alias ${D}${LOCALEDIR2}
-}
-
-FILES_${PN} = "${LOCALEDIR} ${LOCALEDIR2}"
-PACKAGE_ARCH = "all"
+++ /dev/null
-English C
-Arabic ar_AE
-Czech cs_CZ
-Danish da_DK
-Deutsch de_DE
-Ellinika el_GR
-Spanish es_ES
-Estonian et_EE
-Suomi fi_FI
-French fr_FR
-Frisian fy_FY
-Croatia hr_HR
-Hungarian hu_HU
-Icelandic is_IS
-Italian it_IT
-Lithuanian lt_LT
-Dutch nl_NL
-Norwegian no_NO
-Polish pl_PL
-Portugues pt_PT
-Romania ro_RO
-Russian ru_RU
-Slovakian sk_SK
-Slovenian sl_SI
-Serbian sr_YU
-Svenska sv_SE
-Turkish tr_TR
-Urdu ur_IN
\ No newline at end of file
+++ /dev/null
---- flac-1.1.4/src/Makefile.am.orig 2004-12-25 01:11:45.000000000 +0100
-+++ flac-1.1.4/src/Makefile.am 2004-12-25 01:12:10.000000000 +0100
-@@ -15,10 +15,6 @@
- # restrictive of those mentioned above. See the file COPYING.Xiph in this
- # distribution.
-
--if FLaC__HAS_XMMS
--XMMS_DIRS = plugin_common plugin_xmms
--endif
--
- SUBDIRS = \
- libFLAC \
- libFLAC++ \
-@@ -26,7 +22,6 @@
- flac \
- metaflac \
- monkeys_audio_utilities \
-- $(XMMS_DIRS) \
- plugin_winamp2 \
- test_grabbag \
- test_libs_common \
+++ /dev/null
-# CFLAGS and library paths for XMMS
-# written 15 December 1999 by Ben Gertzfield <che@debian.org>
-
-dnl Usage:
-dnl AM_PATH_XMMS([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
-dnl
-dnl Example:
-dnl AM_PATH_XMMS(0.9.5.1, , AC_MSG_ERROR([*** XMMS >= 0.9.5.1 not installed - please install first ***]))
-dnl
-dnl Defines XMMS_CFLAGS, XMMS_LIBS, XMMS_DATA_DIR, XMMS_PLUGIN_DIR,
-dnl XMMS_VISUALIZATION_PLUGIN_DIR, XMMS_INPUT_PLUGIN_DIR,
-dnl XMMS_OUTPUT_PLUGIN_DIR, XMMS_GENERAL_PLUGIN_DIR, XMMS_EFFECT_PLUGIN_DIR,
-dnl and XMMS_VERSION for your plugin pleasure.
-dnl
-
-dnl XMMS_TEST_VERSION(AVAILABLE-VERSION, NEEDED-VERSION [, ACTION-IF-OKAY [, ACTION-IF-NOT-OKAY]])
-AC_DEFUN(XMMS_TEST_VERSION, [
-
-# Determine which version number is greater. Prints 2 to stdout if
-# the second number is greater, 1 if the first number is greater,
-# 0 if the numbers are equal.
-
-# Written 15 December 1999 by Ben Gertzfield <che@debian.org>
-# Revised 15 December 1999 by Jim Monty <monty@primenet.com>
-
- AC_PROG_AWK
- xmms_got_version=[` $AWK ' \
-BEGIN { \
- print vercmp(ARGV[1], ARGV[2]); \
-} \
- \
-function vercmp(ver1, ver2, ver1arr, ver2arr, \
- ver1len, ver2len, \
- ver1int, ver2int, len, i, p) { \
- \
- ver1len = split(ver1, ver1arr, /\./); \
- ver2len = split(ver2, ver2arr, /\./); \
- \
- len = ver1len > ver2len ? ver1len : ver2len; \
- \
- for (i = 1; i <= len; i++) { \
- p = 1000 ^ (len - i); \
- ver1int += ver1arr[i] * p; \
- ver2int += ver2arr[i] * p; \
- } \
- \
- if (ver1int < ver2int) \
- return 2; \
- else if (ver1int > ver2int) \
- return 1; \
- else \
- return 0; \
-}' $1 $2`]
-
- if test $xmms_got_version -eq 2; then # failure
- ifelse([$4], , :, $4)
- else # success!
- ifelse([$3], , :, $3)
- fi
-])
-
-AC_DEFUN(AM_PATH_XMMS,
-[
-AC_ARG_WITH(xmms-prefix,[ --with-xmms-prefix=PFX Prefix where XMMS is installed (optional)],
- xmms_config_prefix="$withval", xmms_config_prefix="")
-AC_ARG_WITH(xmms-exec-prefix,[ --with-xmms-exec-prefix=PFX Exec prefix where XMMS is installed (optional)],
- xmms_config_exec_prefix="$withval", xmms_config_exec_prefix="")
-
-if test x$xmms_config_exec_prefix != x; then
- xmms_config_args="$xmms_config_args --exec-prefix=$xmms_config_exec_prefix"
- if test x${XMMS_CONFIG+set} != xset; then
- XMMS_CONFIG=$xmms_config_exec_prefix/bin/xmms-config
- fi
-fi
-
-if test x$xmms_config_prefix != x; then
- xmms_config_args="$xmms_config_args --prefix=$xmms_config_prefix"
- if test x${XMMS_CONFIG+set} != xset; then
- XMMS_CONFIG=$xmms_config_prefix/bin/xmms-config
- fi
-fi
-
-AC_PATH_PROG(XMMS_CONFIG, xmms-config, no)
-min_xmms_version=ifelse([$1], ,0.9.5.1, $1)
-
-if test "$XMMS_CONFIG" = "no"; then
- no_xmms=yes
-else
- XMMS_CFLAGS=`$XMMS_CONFIG $xmms_config_args --cflags`
- XMMS_LIBS=`$XMMS_CONFIG $xmms_config_args --libs`
- XMMS_VERSION=`$XMMS_CONFIG $xmms_config_args --version`
- XMMS_DATA_DIR=`$XMMS_CONFIG $xmms_config_args --data-dir`
- XMMS_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --plugin-dir`
- XMMS_VISUALIZATION_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args \
- --visualization-plugin-dir`
- XMMS_INPUT_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --input-plugin-dir`
- XMMS_OUTPUT_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --output-plugin-dir`
- XMMS_EFFECT_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --effect-plugin-dir`
- XMMS_GENERAL_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --general-plugin-dir`
-
- XMMS_TEST_VERSION($XMMS_VERSION, $min_xmms_version, ,no_xmms=version)
-fi
-
-AC_MSG_CHECKING(for XMMS - version >= $min_xmms_version)
-
-if test "x$no_xmms" = x; then
- AC_MSG_RESULT(yes)
- ifelse([$2], , :, [$2])
-else
- AC_MSG_RESULT(no)
-
- if test "$XMMS_CONFIG" = "no" ; then
- echo "*** The xmms-config script installed by XMMS could not be found."
- echo "*** If XMMS was installed in PREFIX, make sure PREFIX/bin is in"
- echo "*** your path, or set the XMMS_CONFIG environment variable to the"
- echo "*** full path to xmms-config."
- else
- if test "$no_xmms" = "version"; then
- echo "*** An old version of XMMS, $XMMS_VERSION, was found."
- echo "*** You need a version of XMMS newer than $min_xmms_version."
- echo "*** The latest version of XMMS is always available from"
- echo "*** http://www.xmms.org/"
- echo "***"
-
- echo "*** If you have already installed a sufficiently new version, this error"
- echo "*** probably means that the wrong copy of the xmms-config shell script is"
- echo "*** being found. The easiest way to fix this is to remove the old version"
- echo "*** of XMMS, but you can also set the XMMS_CONFIG environment to point to the"
- echo "*** correct copy of xmms-config. (In this case, you will have to"
- echo "*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf"
- echo "*** so that the correct libraries are found at run-time)"
- fi
- fi
- XMMS_CFLAGS=""
- XMMS_LIBS=""
- ifelse([$3], , :, [$3])
-fi
-AC_SUBST(XMMS_CFLAGS)
-AC_SUBST(XMMS_LIBS)
-AC_SUBST(XMMS_VERSION)
-AC_SUBST(XMMS_DATA_DIR)
-AC_SUBST(XMMS_PLUGIN_DIR)
-AC_SUBST(XMMS_VISUALIZATION_PLUGIN_DIR)
-AC_SUBST(XMMS_INPUT_PLUGIN_DIR)
-AC_SUBST(XMMS_OUTPUT_PLUGIN_DIR)
-AC_SUBST(XMMS_GENERAL_PLUGIN_DIR)
-AC_SUBST(XMMS_EFFECT_PLUGIN_DIR)
-])
+++ /dev/null
-require flac.inc
-PR = "r0"
-
-do_stage () {
- autotools_stage_all
-}
+++ /dev/null
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- freetype-2.0.9/builds/unix/install.mk 2004-11-11 20:18:08.000000000 +0100
-+++ freetype-2.0.9/builds/unix/install.mk 2004-11-11 20:17:32.000000000 +0100
-@@ -17,42 +17,42 @@
-
- # Unix installation and deinstallation targets.
- install: $(PROJECT_LIBRARY)
-- $(MKINSTALLDIRS) $(libdir) \
-- $(includedir)/freetype2/freetype/config \
-- $(includedir)/freetype2/freetype/internal \
-- $(includedir)/freetype2/freetype/cache \
-- $(bindir)
-- $(LIBTOOL) --mode=install $(INSTALL) $(PROJECT_LIBRARY) $(libdir)
-+ $(MKINSTALLDIRS) $(DESTDIR)$(libdir) \
-+ $(DESTDIR)$(includedir)/freetype2/freetype/config \
-+ $(DESTDIR)$(includedir)/freetype2/freetype/internal \
-+ $(DESTDIR)$(includedir)/freetype2/freetype/cache \
-+ $(DESTDIR)$(bindir)
-+ $(LIBTOOL) --mode=install $(INSTALL) $(PROJECT_LIBRARY) $(DESTDIR)$(libdir)
- -for P in $(PUBLIC_H) ; do \
-- $(INSTALL_DATA) $$P $(includedir)/freetype2/freetype ; \
-+ $(INSTALL_DATA) $$P $(DESTDIR)$(includedir)/freetype2/freetype ; \
- done
- -for P in $(BASE_H) ; do \
-- $(INSTALL_DATA) $$P $(includedir)/freetype2/freetype/internal ; \
-+ $(INSTALL_DATA) $$P $(DESTDIR)$(includedir)/freetype2/freetype/internal ; \
- done
- -for P in $(CONFIG_H) ; do \
-- $(INSTALL_DATA) $$P $(includedir)/freetype2/freetype/config ; \
-+ $(INSTALL_DATA) $$P $(DESTDIR)$(includedir)/freetype2/freetype/config ; \
- done
- -for P in $(CACHE_H) ; do \
-- $(INSTALL_DATA) $$P $(includedir)/freetype2/freetype/cache ; \
-+ $(INSTALL_DATA) $$P $(DESTDIR)$(includedir)/freetype2/freetype/cache ; \
- done
-- $(INSTALL_DATA) $(BUILD)/ft2unix.h $(includedir)/ft2build.h
-+ $(INSTALL_DATA) $(BUILD)/ft2unix.h $(DESTDIR)$(includedir)/ft2build.h
- $(INSTALL_SCRIPT) -m 755 $(BUILD)/freetype-config \
-- $(bindir)/freetype-config
-+ $(DESTDIR)$(bindir)/freetype-config
-
-
- uninstall:
-- -$(LIBTOOL) --mode=uninstall $(RM) $(libdir)/$(LIBRARY).$A
-- -$(DELETE) $(includedir)/freetype2/freetype/cache/*
-- -$(DELDIR) $(includedir)/freetype2/freetype/cache
-- -$(DELETE) $(includedir)/freetype2/freetype/config/*
-- -$(DELDIR) $(includedir)/freetype2/freetype/config
-- -$(DELETE) $(includedir)/freetype2/freetype/internal/*
-- -$(DELDIR) $(includedir)/freetype2/freetype/internal
-- -$(DELETE) $(includedir)/freetype2/freetype/*
-- -$(DELDIR) $(includedir)/freetype2/freetype
-- -$(DELDIR) $(includedir)/freetype2
-- -$(DELETE) $(includedir)/ft2build.h
-- -$(DELETE) $(bindir)/freetype-config
-+ -$(LIBTOOL) --mode=uninstall $(RM) $(DESTDIR)$(libdir)/$(LIBRARY).$A
-+ -$(DELETE) $(DESTDIR)$(includedir)/freetype2/freetype/cache/*
-+ -$(DELDIR) $(DESTDIR)$(includedir)/freetype2/freetype/cache
-+ -$(DELETE) $(DESTDIR)$(includedir)/freetype2/freetype/config/*
-+ -$(DELDIR) $(DESTDIR)$(includedir)/freetype2/freetype/config
-+ -$(DELETE) $(DESTDIR)$(includedir)/freetype2/freetype/internal/*
-+ -$(DELDIR) $(DESTDIR)$(includedir)/freetype2/freetype/internal
-+ -$(DELETE) $(DESTDIR)$(includedir)/freetype2/freetype/*
-+ -$(DELDIR) $(DESTDIR)$(includedir)/freetype2/freetype
-+ -$(DELDIR) $(DESTDIR)$(includedir)/freetype2
-+ -$(DELETE) $(DESTDIR)$(includedir)/ft2build.h
-+ -$(DELETE) $(DESTDIR)$(bindir)/freetype-config
-
-
- .PHONY: clean_project_unix distclean_project_unix
+++ /dev/null
-SECTION = "libs"
-LICENSE = "freetype"
-DESCRIPTION = "Freetype font rendering library"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/freetype/freetype-${PV}.tar.bz2 \
- file://install.mk.patch;patch=1"
-
-FILES_${PN} = "${libdir}/lib*.so.*"
-FILES_${PN}-dev += " ${bindir}"
-
-inherit autotools pkgconfig
-
-LIBTOOL = "${S}/builds/unix/${HOST_SYS}-libtool"
-EXTRA_OEMAKE = "'LIBTOOL=${LIBTOOL}'"
-
-do_configure () {
- cd builds/unix
- libtoolize --force
- gnu-configize
- aclocal -I .
- autoconf
- cd ${S}
- oe_runconf
-}
-
-do_stage () {
- oe_libinstall -so -a -C objs libfreetype ${STAGING_LIBDIR}
-
- cp -a ${S}/include/*.h ${STAGING_INCDIR}
- install -d ${STAGING_INCDIR}/freetype2
- cp -a ${S}/include/freetype ${STAGING_INCDIR}/freetype2/
-
- sed -e 's,${prefix},${STAGING_LIBDIR}/..,' < builds/unix/freetype-config > ${STAGING_BINDIR_CROSS}/freetype-config
- chmod u+x ${STAGING_BINDIR_CROSS}/freetype-config
-}
+++ /dev/null
-#diff -u -r1.89 fusermount.c
---- /util/fusermount.c 27 Apr 2007 18:08:15 -0000 1.89
-+++ /util/fusermount.c 3 Jun 2007 14:26:50 -0000
-@@ -30,7 +30,7 @@
- #define FUSE_COMMFD_ENV "_FUSE_COMMFD"
-
- #define FUSE_DEV_OLD "/proc/fs/fuse/dev"
--#define FUSE_DEV_NEW "/dev/fuse"
-+#define FUSE_DEV_NEW "/dev/misc/fuse"
- #define FUSE_VERSION_FILE_OLD "/proc/fs/fuse/version"
- #define FUSE_CONF "/etc/fuse.conf"
-
---- /lib/mount.c.orig 2008-03-27 11:25:33.000000000 +0100
-+++ /lib/mount.c 2008-03-27 11:25:44.000000000 +0100
-@@ -389,7 +389,7 @@
- const char *mnt_opts)
- {
- char tmp[128];
-- const char *devname = "/dev/fuse";
-+ const char *devname = "/dev/misc/fuse";
- char *source = NULL;
- char *type = NULL;
- struct stat stbuf;
+++ /dev/null
-diff -auNr fuse-2.7.3.orig/util/Makefile.am fuse-2.7.3/util/Makefile.am
---- fuse-2.7.3.orig/util/Makefile.am 2008-12-30 01:43:44.000000000 +0100
-+++ fuse-2.7.3/util/Makefile.am 2008-12-30 01:44:17.000000000 +0100
-@@ -33,10 +33,6 @@
- $(INSTALL_PROGRAM) $(srcdir)/mount.fuse $(DESTDIR)$(MOUNT_FUSE_PATH)/mount.fuse
- $(mkdir_p) $(DESTDIR)$(INIT_D_PATH)
- $(INSTALL_PROGRAM) $(srcdir)/init_script $(DESTDIR)$(INIT_D_PATH)/fuse
-- @if test -x /usr/sbin/update-rc.d; then \
-- echo "/usr/sbin/update-rc.d fuse start 34 S . start 41 0 6 . || true"; \
-- /usr/sbin/update-rc.d fuse start 34 S . start 41 0 6 . || true; \
-- fi
-
- install-data-local:
- $(mkdir_p) $(DESTDIR)$(UDEV_RULES_PATH)
-@@ -46,7 +42,3 @@
- rm -f $(DESTDIR)$(MOUNT_FUSE_PATH)/mount.fuse
- rm -f $(DESTDIR)$(UDEV_RULES_PATH)/99-fuse.rules
- rm -f $(DESTDIR)$(INIT_D_PATH)/fuse
-- @if test -x /usr/sbin/update-rc.d; then \
-- echo "/usr/sbin/update-rc.d fuse remove || true"; \
-- /usr/sbin/update-rc.d fuse remove || true; \
-- fi
+++ /dev/null
-require fuse.inc
-
-RRECOMMENDS = "fuse"
-PR = "r0"
-
-S = "${WORKDIR}/fuse-${PV}"
-FILES_${PN} = "/dev ${base_libdir}/modules ${sysconfdir}"
-EXTRA_OECONF = " --enable-kernel-module --with-kernel=${STAGING_KERNEL_DIR}"
-
-inherit module
-
-do_configure() {
- cd ${S} ; oe_runconf
-}
-
-do_compile(){
- LDFLAGS=""
- cd ${S}/kernel
- oe_runmake
-}
-
-fakeroot do_install() {
- LDFLAGS=""
- install -d ${D}${sysconfdir}/udev/rules.d/
- install -m 644 util/udev.rules ${D}${sysconfdir}/udev/rules.d/
- cd ${S}/kernel
- oe_runmake install DESTDIR=${D}
-}
-
+++ /dev/null
-require fuse.inc
-
-PR = "r0"
-
-SRC_URI += "file://not-run-updaterc.d-on-host.patch;patch=1"
-SRC_URI_append_opendreambox = " file://dev_misc_fuse.patch;patch=1"
-
-EXTRA_OECONF = " --disable-kernel-module"
-
-#package utils in a sperate package and stop debian.bbclass renaming it to libfuse-utils, we want it to be fuse-utils
-PACKAGES =+ "fuse-utils-dbg fuse-utils libulockmgr libulockmgr-dev libulockmgr-dbg"
-FILES_${PN} += "${libdir}/libfuse.so.*"
-FILES_${PN}-dev += "${libdir}/libfuse*.la"
-
-FILES_libulockmgr = "${libdir}/libulockmgr.so.*"
-FILES_libulockmgr-dev += "${libdir}/libulock*.la"
-FILES_libulockmgr-dbg += "${libdir}/.debug/libulock*"
-
-FILES_fuse-utils = "${bindir} ${base_sbindir}"
-FILES_fuse-utils-dbg = "${bindir}/.debug ${base_sbindir}/.debug"
-DEBIAN_NOAUTONAME_fuse-utils = "1"
-DEBIAN_NOAUTONAME_fuse-utils-dbg = "1"
-
-fakeroot do_stage() {
- autotools_stage_all
-}
-
-
+++ /dev/null
-DESCRIPTION = "Plugin for gstreamer: dvbmediasink"
-SECTION = "multimedia"
-PRIORITY = "optional"
-MAINTAINER = "Felix Domke <tmbinc@openembedded.org>"
-DEPENDS = "gstreamer"
-PV = "0.10+cvs${SRCDATE}"
-PR = "r0"
-PR_dm7025 = "r1"
-
-inherit autotools pkgconfig
-
-SRCDATE = "20090208"
-SRCDATE_dm7025 = "20080907"
-
-SRC_URI = "cvs://anonymous@cvs.schwerkraft.elitedvb.net/cvsroot/dvbmediasink;module=dvbmediasink;method=pserver"
-
-S = "${WORKDIR}/dvbmediasink"
-
-FILES_${PN} = "${libdir}/gstreamer-0.10/*.so*"
-FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la \
- ${libdir}/gstreamer-0.10/*.a"
-FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-do_stage() {
- autotools_stage_all
-}
+++ /dev/null
-DESCRIPTION = "Plugin for gstreamer: fluendo-mpegdemux"
-SECTION = "multimedia"
-PRIORITY = "optional"
-MAINTAINER = "Felix Domke <tmbinc@openembedded.org>"
-DEPENDS = "gstreamer"
-PR = "r0"
-
-inherit autotools pkgconfig
-
-SRC_URI = "http://core.fluendo.com/gstreamer/src/gst-fluendo-mpegdemux/gst-fluendo-mpegdemux-${PV}.tar.gz"
-S = "${WORKDIR}/gst-fluendo-mpegdemux-${PV}"
-
-FILES_${PN} = "${libdir}/gstreamer-0.10/*.so*"
-FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la \
- ${libdir}/gstreamer-0.10/*.a"
-FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug"
-
-acpaths = "-I ${S}/common/m4 -I ${S}/m4"
-
-do_stage() {
- autotools_stage_all
-}
+++ /dev/null
-Index: gst/selector/gstinputselector.c
-===================================================================
-RCS file: /cvs/gstreamer/gst-plugins-bad/gst/selector/gstinputselector.c,v
-retrieving revision 1.15
-diff -u -B -b -p -r1.15 gstinputselector.c
---- gst/selector/gstinputselector.c 15 Oct 2008 17:45:37 -0000 1.15
-+++ gst/selector/gstinputselector.c 30 Oct 2008 11:54:05 -0000
-@@ -98,7 +98,7 @@ static GstPad *gst_input_selector_activa
- GstPad * pad);
- static GstPad *gst_input_selector_get_linked_pad (GstPad * pad,
- gboolean strict);
--static gboolean gst_input_selector_check_eos (GstElement * selector);
-+static gboolean gst_input_selector_check_eos (GstInputSelector * selector);
-
- #define GST_TYPE_SELECTOR_PAD \
- (gst_selector_pad_get_type())
-@@ -154,6 +154,9 @@ static GstFlowReturn gst_selector_pad_ch
- static GstFlowReturn gst_selector_pad_bufferalloc (GstPad * pad,
- guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf);
-
-+static gboolean gst_input_selector_set_active_pad (GstInputSelector * self,
-+ GstPad * pad, gint64 stop_time, gint64 start_time);
-+
- static GType
- gst_selector_pad_get_type (void)
- {
-@@ -346,13 +349,14 @@ gst_selector_pad_event (GstPad * pad, Gs
- sel = GST_INPUT_SELECTOR (gst_pad_get_parent (pad));
- selpad = GST_SELECTOR_PAD_CAST (pad);
-
-- /* only forward if we are dealing with the active sinkpad */
-- forward = gst_input_selector_is_active_sinkpad (sel, pad);
--
-- /* forward all events in select_all mode by default */
- if (sel->select_all) {
-+ /* forward all events in select_all mode by default */
- forward = TRUE;
- }
-+ else {
-+ /* only forward if we are dealing with the active sinkpad */
-+ forward = gst_input_selector_is_active_sinkpad (sel, pad);
-+ }
-
- switch (GST_EVENT_TYPE (event)) {
- case GST_EVENT_FLUSH_START:
-@@ -361,7 +365,9 @@ gst_selector_pad_event (GstPad * pad, Gs
- case GST_EVENT_FLUSH_STOP:
- GST_INPUT_SELECTOR_LOCK (sel);
- gst_selector_pad_reset (selpad);
-+ gst_segment_init (&sel->segment, GST_FORMAT_UNDEFINED);
- sel->pending_close = FALSE;
-+ sel->running_time = -1;
- GST_INPUT_SELECTOR_UNLOCK (sel);
- break;
- case GST_EVENT_NEWSEGMENT:
-@@ -370,6 +376,7 @@ gst_selector_pad_event (GstPad * pad, Gs
- GstFormat format;
- gdouble rate, arate;
- gint64 start, stop, time;
-+ gint64 sink_running;
-
- gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format,
- &start, &stop, &time);
-@@ -381,14 +388,40 @@ gst_selector_pad_event (GstPad * pad, Gs
- G_GINT64_FORMAT, update, rate, arate, format, start, stop, time);
-
- GST_INPUT_SELECTOR_LOCK (sel);
-+ /* we take the object lock so that we can also take the running_time
-+ * without taking the SELECTOR_LOCK */
- GST_OBJECT_LOCK (selpad);
- gst_segment_set_newsegment_full (&selpad->segment, update,
- rate, arate, format, start, stop, time);
- GST_OBJECT_UNLOCK (selpad);
-- /* we are not going to forward the segment, mark the segment as
-- * pending */
-- forward = FALSE;
-+
-+ sink_running = gst_segment_to_running_time (&selpad->segment,
-+ selpad->segment.format, selpad->segment.last_stop);
-+
-+ GST_DEBUG_OBJECT (pad, "sink running_time %"GST_TIME_FORMAT,
-+ GST_TIME_ARGS (sink_running));
-+
-+ if (sel->active_sinkpad == NULL) {
-+ /* no active pad, see if we have a running time that is bigger than what
-+ * we have on the srcpad. */
-+ if (sink_running > sel->running_time) {
-+ /* activate this pad */
-+ GST_DEBUG_OBJECT (pad, "activating pad");
-+
-+ sel->active_sinkpad = gst_object_ref (pad);
-+ forward = TRUE;
-+ }
-+ }
-+ if (forward) {
-+ gst_segment_set_newsegment_full (&sel->segment, update, rate,
-+ arate, format, start, stop, time);
-+ sel->running_time = gst_segment_to_running_time (&sel->segment,
-+ sel->segment.format, sel->segment.last_stop);
-+ selpad->segment_pending = FALSE;
-+ }
-+ else {
- selpad->segment_pending = TRUE;
-+ }
- GST_INPUT_SELECTOR_UNLOCK (sel);
-
- break;
-@@ -412,7 +445,7 @@ gst_selector_pad_event (GstPad * pad, Gs
- selpad->eos = TRUE;
- GST_DEBUG_OBJECT (pad, "received EOS");
- /* don't forward eos in select_all mode until all sink pads have eos */
-- if (sel->select_all && !gst_input_selector_check_eos (GST_ELEMENT (sel))) {
-+ if (sel->select_all && !gst_input_selector_check_eos (sel)) {
- forward = FALSE;
- }
- break;
-@@ -558,7 +591,7 @@ gst_selector_pad_chain (GstPad * pad, Gs
- GstSegment *cseg = &sel->segment;
-
- GST_DEBUG_OBJECT (sel,
-- "pushing NEWSEGMENT update %d, rate %lf, applied rate %lf, "
-+ "pushing close NEWSEGMENT update %d, rate %lf, applied rate %lf, "
- "format %d, "
- "%" G_GINT64_FORMAT " -- %" G_GINT64_FORMAT ", time %"
- G_GINT64_FORMAT, TRUE, cseg->rate, cseg->applied_rate, cseg->format,
-@@ -573,7 +606,7 @@ gst_selector_pad_chain (GstPad * pad, Gs
- /* if we have a pending segment, push it out now */
- if (G_UNLIKELY (selpad->segment_pending)) {
- GST_DEBUG_OBJECT (pad,
-- "pushing NEWSEGMENT update %d, rate %lf, applied rate %lf, "
-+ "pushing pending NEWSEGMENT update %d, rate %lf, applied rate %lf, "
- "format %d, "
- "%" G_GINT64_FORMAT " -- %" G_GINT64_FORMAT ", time %"
- G_GINT64_FORMAT, FALSE, seg->rate, seg->applied_rate, seg->format,
-@@ -820,6 +853,7 @@ gst_input_selector_init (GstInputSelecto
- sel->active_sinkpad = NULL;
- sel->padcount = 0;
- gst_segment_init (&sel->segment, GST_FORMAT_UNDEFINED);
-+ sel->running_time = -1;
-
- sel->lock = g_mutex_new ();
- sel->cond = g_cond_new ();
-@@ -1262,6 +1296,7 @@ gst_input_selector_reset (GstInputSelect
- /* reset segment */
- gst_segment_init (&sel->segment, GST_FORMAT_UNDEFINED);
- sel->pending_close = FALSE;
-+ sel->running_time = -1;
- /* reset each of our sinkpads state */
- for (walk = GST_ELEMENT_CAST (sel)->sinkpads; walk; walk = g_list_next (walk)) {
- GstSelectorPad *selpad = GST_SELECTOR_PAD_CAST (walk->data);
-@@ -1362,14 +1397,16 @@ gst_input_selector_switch (GstInputSelec
- }
-
- static gboolean
--gst_input_selector_check_eos (GstElement * selector)
-+gst_input_selector_check_eos (GstInputSelector * selector)
- {
-- GstIterator *it = gst_element_iterate_sink_pads (selector);
-+ GstIterator *it;
- GstIteratorResult ires;
- gpointer item;
- gboolean done = FALSE, is_eos = FALSE;
- GstSelectorPad *pad;
-
-+ it = gst_element_iterate_sink_pads (GST_ELEMENT_CAST (selector));
-+
- while (!done) {
- ires = gst_iterator_next (it, &item);
- switch (ires) {
-Index: gst/selector/gstinputselector.h
-===================================================================
-RCS file: /cvs/gstreamer/gst-plugins-bad/gst/selector/gstinputselector.h,v
-retrieving revision 1.4
-diff -u -B -b -p -r1.4 gstinputselector.h
---- gst/selector/gstinputselector.h 20 Mar 2008 16:48:46 -0000 1.4
-+++ gst/selector/gstinputselector.h 30 Oct 2008 11:54:05 -0000
-@@ -58,6 +58,8 @@ struct _GstInputSelector {
- guint padcount;
-
- GstSegment segment; /* the output segment */
-+ gint64 running_time;
-+
- gboolean pending_close; /* if we should push a close first */
-
- GMutex *lock;
+++ /dev/null
-require gst-plugins.inc
-
-SRC_URI += "file://gst-plugins-directfb-fix.patch;patch=1;pnum=2"
-DEPENDS += "gst-plugins-base"
+++ /dev/null
-require gst-plugins.inc
-
-do_configure_prepend() {
- sed -i -e s:docs::g Makefile.am
-}
-
-SRC_URI += "file://gst-plugins-directfb-fix.patch;patch=1;pnum=2 \
- file://input-selector-segment.patch;patch=1;pnum=0"
-
-DEPENDS += "gst-plugins-base"
-
-EXTRA_OECONF_opendreambox += "--disable-apexsink "
-
+++ /dev/null
-diff -auNr gst-plugins-base-0.10.21/gst/subparse/Makefile.am gst-plugins-base-0.10.21_samihack/gst/subparse/Makefile.am
---- gst-plugins-base-0.10.21/gst/subparse/Makefile.am 2008-09-10 10:02:38.000000000 +0000
-+++ gst-plugins-base-0.10.21_samihack/gst/subparse/Makefile.am 2008-12-09 07:48:49.000000000 +0000
-@@ -1,10 +1,6 @@
- plugin_LTLIBRARIES = libgstsubparse.la
-
--if USE_XML
- SAMIPARSE_SOURCES = samiparse.c samiparse.h
--else
--SAMIPARSE_SOURCES =
--endif
-
- libgstsubparse_la_SOURCES = \
- gstssaparse.c \
-diff -auNr gst-plugins-base-0.10.21/gst/subparse/samiparse.c gst-plugins-base-0.10.21_samihack/gst/subparse/samiparse.c
---- gst-plugins-base-0.10.21/gst/subparse/samiparse.c 2008-09-10 10:02:39.000000000 +0000
-+++ gst-plugins-base-0.10.21_samihack/gst/subparse/samiparse.c 2008-12-09 07:50:06.000000000 +0000
-@@ -19,6 +19,7 @@
-
- #include "samiparse.h"
-
-+#ifndef GST_DISABLE_XML
- #include <libxml/HTMLparser.h>
- #include <string.h>
-
-@@ -464,3 +465,33 @@
- }
- return NULL;
- }
-+
-+#else /* GST_DISABLE_XML */
-+
-+gchar *
-+parse_sami (ParserState * state, const gchar * line)
-+{
-+ /* our template caps should not include sami in this case */
-+ g_assert_not_reached ();
-+}
-+
-+void
-+sami_context_init (ParserState * state)
-+{
-+ return;
-+}
-+
-+void
-+sami_context_deinit (ParserState * state)
-+{
-+ return;
-+}
-+
-+void
-+sami_context_reset (ParserState * state)
-+{
-+ return;
-+}
-+
-+#endif /* GST_DISABLE_XML */
-+
+++ /dev/null
-require gst-plugins.inc
-
-PROVIDES += "gst-plugins"
-
-# gst-plugins-base only builds the alsa plugin
-# if alsa has been built and is present. You will
-# not get an error if this is not present, just
-# a missing alsa plugin
-DEPENDS += "alsa-lib"
-
-PR = "r0"
-
+++ /dev/null
-require gst-plugins.inc
-
-do_configure_prepend() {
- sed -i -e s:docs::g Makefile.am
-}
-
-SRC_URI += "file://samihack.patch;patch=1"
-
-PROVIDES += "gst-plugins"
-
-# gst-plugins-base only builds the alsa plugin
-# if alsa has been built and is present. You will
-# not get an error if this is not present, just
-# a missing alsa plugin
-DEPENDS += "alsa-lib"
-
-PR = "r0"
-
+++ /dev/null
---- sys/v4l2/v4l2src_calls.c 2008/08/26 12:27:11 1.89
-+++ sys/v4l2/v4l2src_calls.c 2008/10/31 10:08:50 1.90
-@@ -469,16 +469,24 @@
- case V4L2_PIX_FMT_WNVA: /* Winnov hw compres */
- return 0;
-
-+#ifdef V4L2_PIX_FMT_SBGGR8
- case V4L2_PIX_FMT_SBGGR8:
- return BAYER_BASE_RANK;
-+#endif
-
-+#ifdef V4L2_PIX_FMT_SN9C10X
- case V4L2_PIX_FMT_SN9C10X:
- return S910_BASE_RANK;
-+#endif
-
-+#ifdef V4L2_PIX_FMT_PWC1
- case V4L2_PIX_FMT_PWC1:
- return PWC_BASE_RANK;
-+#endif
-+#ifdef V4L2_PIX_FMT_PWC2
- case V4L2_PIX_FMT_PWC2:
- return PWC_BASE_RANK;
-+#endif
-
- default:
- break;
+++ /dev/null
-require gst-plugins.inc
-PR = "r0"
-
-EXTRA_OECONF += "--with-check=no"
-DEPENDS += "gst-plugins-base"
+++ /dev/null
-require gst-plugins.inc
-PR = "r0"
-
-do_configure_prepend() {
- sed -i -e s:docs::g Makefile.am
-}
-
-SRC_URI += "file://v4l2src_fixformats.patch;patch=1;pnum=0"
-
-EXTRA_OECONF += "--with-check=no "
-DEPENDS += "gst-plugins-base"
+++ /dev/null
-diff -auNr gst-plugins-ugly-0.10.10/ext/mad/gstmad.c gst-plugins-ugly-0.10.10-gstmad_16bit/ext/mad/gstmad.c
---- gst-plugins-ugly-0.10.10/ext/mad/gstmad.c 2008-11-08 15:48:46.000000000 +0100
-+++ gst-plugins-ugly-0.10.10-gstmad_16bit/ext/mad/gstmad.c 2008-12-09 13:03:48.000000000 +0100
-@@ -65,8 +65,8 @@
- GST_STATIC_CAPS ("audio/x-raw-int, "
- "endianness = (int) " G_STRINGIFY (G_BYTE_ORDER) ", "
- "signed = (boolean) true, "
-- "width = (int) 32, "
-- "depth = (int) 32, "
-+ "width = (int) 16, "
-+ "depth = (int) 16, "
- "rate = (int) { 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, "
- "channels = (int) [ 1, 2 ]")
- );
-@@ -407,7 +407,7 @@
-
- mad = GST_MAD (GST_PAD_PARENT (pad));
-
-- bytes_per_sample = mad->channels * 4;
-+ bytes_per_sample = mad->channels << 1;
-
- switch (src_format) {
- case GST_FORMAT_BYTES:
-@@ -832,13 +832,11 @@
- return res;
- }
-
--static inline gint32
-+static inline gint16
- scale (mad_fixed_t sample)
- {
--#if MAD_F_FRACBITS < 28
- /* round */
-- sample += (1L << (28 - MAD_F_FRACBITS - 1));
--#endif
-+ sample += (1L << (MAD_F_FRACBITS - 16));
-
- /* clip */
- if (sample >= MAD_F_ONE)
-@@ -846,13 +844,8 @@
- else if (sample < -MAD_F_ONE)
- sample = -MAD_F_ONE;
-
--#if MAD_F_FRACBITS < 28
- /* quantize */
-- sample >>= (28 - MAD_F_FRACBITS);
--#endif
--
-- /* convert from 29 bits to 32 bits */
-- return (gint32) (sample << 3);
-+ return sample >> (MAD_F_FRACBITS + 1 - 16);
- }
-
- /* do we need this function? */
-@@ -1263,8 +1256,8 @@
- caps = gst_caps_new_simple ("audio/x-raw-int",
- "endianness", G_TYPE_INT, G_BYTE_ORDER,
- "signed", G_TYPE_BOOLEAN, TRUE,
-- "width", G_TYPE_INT, 32,
-- "depth", G_TYPE_INT, 32,
-+ "width", G_TYPE_INT, 16,
-+ "depth", G_TYPE_INT, 16,
- "rate", G_TYPE_INT, rate, "channels", G_TYPE_INT, nchannels, NULL);
-
- gst_pad_set_caps (mad->srcpad, caps);
-@@ -1581,7 +1574,7 @@
- to skip and send the remaining pcm samples */
-
- GstBuffer *outbuffer = NULL;
-- gint32 *outdata;
-+ gint16 *outdata;
- mad_fixed_t const *left_ch, *right_ch;
-
- if (mad->need_newsegment) {
-@@ -1612,7 +1605,7 @@
- /* will attach the caps to the buffer */
- result =
- gst_pad_alloc_buffer_and_set_caps (mad->srcpad, 0,
-- nsamples * mad->channels * 4, GST_PAD_CAPS (mad->srcpad),
-+ nsamples * mad->channels * 2, GST_PAD_CAPS (mad->srcpad),
- &outbuffer);
- if (result != GST_FLOW_OK) {
- /* Head for the exit, dropping samples as we go */
-@@ -1625,7 +1618,7 @@
- left_ch = mad->synth.pcm.samples[0];
- right_ch = mad->synth.pcm.samples[1];
-
-- outdata = (gint32 *) GST_BUFFER_DATA (outbuffer);
-+ outdata = (gint16 *) GST_BUFFER_DATA (outbuffer);
-
- GST_DEBUG ("mad out timestamp %" GST_TIME_FORMAT,
- GST_TIME_ARGS (time_offset));
-@@ -1640,14 +1633,14 @@
- gint count = nsamples;
-
- while (count--) {
-- *outdata++ = scale (*left_ch++) & 0xffffffff;
-+ *outdata++ = scale (*left_ch++) & 0xffff;
- }
- } else {
- gint count = nsamples;
-
- while (count--) {
-- *outdata++ = scale (*left_ch++) & 0xffffffff;
-- *outdata++ = scale (*right_ch++) & 0xffffffff;
-+ *outdata++ = scale (*left_ch++) & 0xffff;
-+ *outdata++ = scale (*right_ch++) & 0xffff;
- }
- }
-
+++ /dev/null
-require gst-plugins.inc
-PR = "r0"
-
-DEPENDS += "gst-plugins-base ${@get_depends(bb, d)}"
-SRC_URI += "${@get_src_uri(bb, d)}"
-
-def get_src_uri(bb, d):
- if bb.data.getVar('DISTRO', d, 1) in [ 'opendreambox' ]:
- return ""
- return "file://gstmad_16bit.patch;patch=1 " \
- "file://gstsid_autofoo_HACK.patch;patch=1"
-
-def get_depends(bb, d):
- if bb.data.getVar('DISTRO', d, 1) in [ 'opendreambox' ]:
- return ""
- return "libsidplay"
+++ /dev/null
-DEPENDS = "gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad"
-PACKAGES_DYNAMIC = "gst-plugin-*"
+++ /dev/null
-require gstreamer.inc
-
-PR = "r0"
-
-SRC_URI += "file://po-makefile-fix.patch;patch=1"
-
+++ /dev/null
-DESCRIPTION = "This collection of code replaces the existing linux-hotplug \
-package with very tiny, compiled executable programs, instead of the \
-existing bash scripts."
-LICENSE = "GPL"
-RPROVIDES_${PN} = "hotplug"
-RCONFLICTS_${PN} = "hotplug"
-RREPLACES_${PN} = "hotplug"
-
-SRC_URI = "svn://svn.schwerkraft.elitedvb.net/svnroot;module=hotplug-ng"
-SRCDATE = "20080527"
-PV = "002+svn${SRCDATE}"
-
-S = "${WORKDIR}/hotplug-ng/trunk"
-
-LD = "${CC}"
-export HOSTCC = "${BUILD_CC}"
-CFLAGS = " -I${S}/libsysfs/sysfs"
-# Stripping should be done when _packaging_, not building
-EXTRA_OEMAKE += "'STRIP=/bin/true'"
-
-export etcdir = "${sysconfdir}"
-export sbindir = "${base_sbindir}"
-export bindir = "${base_bindir}"
-
-do_install () {
- oe_runmake 'DESTDIR=${D}' install
-}
+++ /dev/null
-export IMAGE_BASENAME = "dreambox-image"
-
-OPENDREAMBOX_COMMON = "\
- task-boot \
- task-opendreambox-base \
- task-opendreambox-dvbapi \
- task-opendreambox-ui \
-"
-
-# add bootstrap stuff
-DEPENDS = "${OPENDREAMBOX_COMMON}"
-IMAGE_INSTALL = "${OPENDREAMBOX_COMMON}"
-
-# we don't want any locales, at least not in the common way.
-IMAGE_LINGUAS = " "
-
-inherit image
-
-opendreambox_rootfs_postprocess() {
- curdir=$PWD
- cd ${IMAGE_ROOTFS}
-
- # generate /etc/image-version
- IMAGE_VERSION=`echo ${DISTRO_VERSION} | sed 's/\(.\)\.\(.\).\(.\)/\1\2\3/' `
- IMAGE_DATE="$(date +%Y%m%d%H%M)"
- IMAGE_TYPE="0"
- echo "version=${IMAGE_TYPE}${IMAGE_VERSION}${IMAGE_DATE}" > etc/image-version
- echo "comment=${DISTRO_NAME}" >> etc/image-version
- echo "target=9" >> etc/image-version
- echo "creator=OpenEmbedded <oe@dreamboxupdate.com>" >> etc/image-version
- echo "url=http://www.dreamboxupdate.com/" >> etc/image-version
- echo "catalog=http://www.dreamboxupdate.com/" >> etc/image-version
-
- # because we're so used to it
- ln -s opkg usr/bin/ipkg || true
- ln -s opkg-cl usr/bin/ipkg-cl || true
-
- cd $curdir
-}
-
-ROOTFS_POSTPROCESS_COMMAND += "opendreambox_rootfs_postprocess; "
-
-export NFO = '${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfo'
-
-generate_nfo() {
- VER=`grep Version: "${IMAGE_ROOTFS}/usr/lib/ipkg/info/enigma2.control" | cut -b 10-12`
- echo "Enigma2: Experimental ${VER}" > ${NFO}
- echo "Machine: Dreambox ${MACHINE}" >> ${NFO}
- DATE=`date +%Y-%m-%d' '%H':'%M`
- echo "Date: ${DATE}" >> ${NFO}
- echo "Issuer: Dream Multimedia TV" >> ${NFO}
- echo "Link: ${DISTRO_FEED_URI}" >> ${NFO}
- if [ "${DESC}" != "" ]; then
- echo "Description: ${DESC}" >> ${NFO}
- echo "${DESC}" >> ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.desc
- fi
- MD5SUM=`md5sum ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfi | cut -b 1-32`
- echo "MD5: ${MD5SUM}" >> ${NFO}
-}
-
-do_rootfs_append_dm8000() {
- generate_nfo
-}
-
+++ /dev/null
-modprobe lcd
-mount -t proc proc /proc
-mount -t sysfs sysfs /sys
-depmod -Ae
-mount -at nonfs,nosmbfs,noncpfs,nocifs 2>/dev/null
-swapon -a
-tar xzf /etc/var.tar.gz -C /
-modprobe head
-modprobe dreambox_keyboard
-[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
-hostname -F /etc/hostname
-/usr/bin/wdog /usr/bin/dccamd -
-ifup -a
-mount -at nfs,smbfs,cpfs,cifs 2>/dev/null
-[ -e "/etc/sysctl.conf" ] && /sbin/sysctl -p "/etc/sysctl.conf"
-ldconfig
-ln -s demux0 /dev/dvb/card0/demux1
-ln -s dvr0 /dev/dvb/card0/dvr1
-ln -s fb/0 /dev/fb0
+++ /dev/null
-modprobe lcd
-mount -t proc proc /proc
-mount -t sysfs sysfs /sys
-depmod -Ae
-mount -at nonfs,nosmbfs,noncpfs,nocifs 2>/dev/null
-swapon -a
-tar xzf /etc/var.tar.gz -C /
-# sleep after 10min
-hdparm -S120 /dev/ide/host0/bus0/target0/lun0/disc
-# CHECKME: mode to set, no UDMA on vulcan!
-# hdparm -X66 /dev/ide/host0/bus0/target0/lun0/disc
-# accustic management
-hdparm -M128 /dev/ide/host0/bus0/target0/lun0/disc
-modprobe head
-modprobe dreambox_keyboard
-[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
-hostname -F /etc/hostname
-/usr/bin/wdog /usr/bin/dccamd -
-ifup -a
-mount -at nfs,smbfs,cpfs,cifs 2>/dev/null
-[ -e "/etc/sysctl.conf" ] && /sbin/sysctl -p "/etc/sysctl.conf"
-ldconfig
-ln -s demux0 /dev/dvb/card0/demux1
-ln -s dvr0 /dev/dvb/card0/dvr1
-ln -s fb/0 /dev/fb0
+++ /dev/null
-modprobe lcd
-echo 4 > /proc/progress
-
-mount -t proc proc /proc
-echo 8 > /proc/progress
-
-mount -t sysfs sysfs /sys
-echo 12 > /proc/progress
-
-depmod -Ae
-echo 16 > /proc/progress
-
-mount -at nonfs,nosmbfs,noncpfs,nocifs 2>/dev/null
-echo 20 > /proc/progress
-
-swapon -a
-echo 24 > /proc/progress
-
-tar xzf /etc/var.tar.gz -C /
-echo 28 > /proc/progress
-
-# sleep after 10min
-hdparm -S120 /dev/ide/host0/bus0/target0/lun0/disc
-echo 32 > /proc/progress
-# set UDMA66
-hdparm -X66 /dev/ide/host0/bus0/target0/lun0/disc
-echo 34 > /proc/progress
-# accustic management
-hdparm -M128 /dev/ide/host0/bus0/target0/lun0/disc
-
-echo 38 > /proc/progress
-modprobe head
-
-echo 42 > /proc/progress
-modprobe dreambox_keyboard
-
-echo 46 > /proc/progress
-modprobe fp
-
-echo 50 > /proc/progress
-modprobe rfmod
-
-echo 54 > /proc/progress
-[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe
-
-echo 58 > /proc/progress
-/boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
-
-echo 62 > /proc/progress
-hostname -F /etc/hostname
-
-echo 66 > /proc/progress
-/usr/bin/wdog /usr/bin/dccamd -
-
-echo 70 > /proc/progress
-ifup -a
-
-echo 78 > /proc/progress
-mount -at nfs,smbfs,cpfs,cifs 2>/dev/null
-
-echo 82 > /proc/progress
-[ -e "/etc/sysctl.conf" ] && /sbin/sysctl -p "/etc/sysctl.conf"
-
-echo 86 > /proc/progress
-ldconfig
-
-echo 90 > /proc/progress
-
-echo 94 > /proc/progress
+++ /dev/null
-echo 4 > /proc/progress
-[ -e /dev/dbox/oled0 ] && ln -s /dev/dbox/oled0 /dev/dbox/lcd0
-
-mount -t sysfs sysfs /sys
-echo 12 > /proc/progress
-
-depmod -Ae
-echo 16 > /proc/progress
-
-for mod in cifs autofs4 vfat; do
- modprobe $mod
-done
-echo 18 > /proc/progress
-
-mount -at nonfs,nosmbfs,noncpfs,nocifs
-echo 22 > /proc/progress
-
-swapon -a
-echo 24 > /proc/progress
-
-tar xzf /etc/var.tar.gz -C /
-echo 28 > /proc/progress
-
-# sleep after 10min
-hdparm -S120 /dev/discs/disc0/disc
-echo 32 > /proc/progress
-# set UDMA66
-hdparm -X66 /dev/discs/disc0/disc
-echo 34 > /proc/progress
-# accustic management
-hdparm -M128 /dev/discs/disc0/disc
-
-echo 44 > /proc/progress
-for mod in xilleon dreambox_keyboard fp rt73 zd1211b rfmod; do
- modprobe $mod
-done
-
-echo 50 > /proc/progress
-
-echo 54 > /proc/progress
-[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
-
-echo 62 > /proc/progress
-hostname -F /etc/hostname
-
-echo 66 > /proc/progress
-/usr/bin/wdog /usr/bin/dccamd -
-
-echo 70 > /proc/progress
-
-echo 78 > /proc/progress
-
-echo 82 > /proc/progress
-[ -e "/etc/sysctl.conf" ] && /sbin/sysctl -p "/etc/sysctl.conf"
-
-echo 86 > /proc/progress
-ldconfig
-
-echo 90 > /proc/progress
-
-echo 94 > /proc/progress
+++ /dev/null
-echo 10 > /proc/progress
-[ -e /dev/dbox/oled0 ] && ln -s /dev/dbox/oled0 /dev/dbox/lcd0
-
-mount -t sysfs sysfs /sys
-echo 12 > /proc/progress
-
-depmod -Ae
-echo 13 > /proc/progress
-
-for mod in cifs usb-storage sd_mod autofs4 vfat; do
- modprobe $mod
-done
-
-mount -at nonfs,nosmbfs,noncpfs,nocifs
-echo 14 > /proc/progress
-
-swapon -a
-echo 15 > /proc/progress
-
-tar xzf /etc/var.tar.gz -C /
-echo 16 > /proc/progress
-
-# sleep after 10min
-hdparm -S120 /dev/discs/disc0/disc
-
-echo 17 > /proc/progress
-
-# set UDMA66, enable dma
-hdparm -d1 /dev/discs/disc0/disc
-hdparm -X66 /dev/discs/disc0/disc
-
-# accustic management
-hdparm -M128 /dev/discs/disc0/disc
-
-echo 18 > /proc/progress
-for mod in dreambox_keyboard fp bcm7401; do
- modprobe $mod
-done
-
-echo 19 > /proc/progress
-
-cat /etc/videomode > /proc/stb/video/videomode
-
-echo 20 > /proc/progress
-
-for mod in rt73 zd1211b; do
- modprobe $mod
-done
-
-echo 21 > /proc/progress
-
-[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
-
-hostname -F /etc/hostname
-
-echo 22 > /proc/progress
-/usr/bin/wdog /usr/bin/dccamd -
-
-echo 23 > /proc/progress
-
-[ -e "/etc/sysctl.conf" ] && /sbin/sysctl -p "/etc/sysctl.conf"
-
-echo 24 > /proc/progress
-
-ldconfig
-
-echo 25 > /proc/progress
-
-opkg-cl configure
+++ /dev/null
-#! /bin/sh
-#
-# halt Execute the halt command.
-#
-# Version: @(#)halt 2.84-2 07-Jan-2002 miquels@cistron.nl
-#
-
-PATH=/sbin:/bin:/usr/sbin:/usr/bin
-
-# See if we need to cut the power.
-if test -x /etc/init.d/ups-monitor
-then
- /etc/init.d/ups-monitor poweroff
-fi
-
-# Don't shut down drives if we're using RAID.
-hddown="-h"
-if grep -qs '^md.*active' /proc/mdstat
-then
- hddown=""
-fi
-
-showiframe /usr/share/switchoff.mvi
-
-halt -d -f -i -p $hddown
-
-: exit 0
+++ /dev/null
-echo 10 > /proc/progress
-[ -e /dev/dbox/oled0 ] && ln -s /dev/dbox/oled0 /dev/dbox/lcd0
-
-mount -t sysfs sysfs /sys
-echo 11 > /proc/progress
-
-depmod -Ae
-echo 12 > /proc/progress
-
-for mod in isofs cifs usb-storage sd_mod autofs4 vfat ide-cd cdfs; do
- modprobe $mod
-done
-
-echo 13 > /proc/progress
-
-(sleep 10; cat /etc/fscking.raw > /dev/dbox/oled0; sleep 1d) &
-pid=$!
-mount -at nonfs,nosmbfs,noncpfs,nocifs
-kill $pid
-
-echo 14 > /proc/progress
-
-swapon -a
-echo 15 > /proc/progress
-
-tar xzf /etc/var.tar.gz -C /
-echo 16 > /proc/progress
-
-# sleep after 10min
-hdparm -S120 /dev/discs/disc0/disc
-
-echo 17 > /proc/progress
-
-# set UDMA66, enable dma
-hdparm -d1 /dev/discs/disc0/disc
-hdparm -X66 /dev/discs/disc0/disc
-
-# accustic management
-hdparm -M128 /dev/discs/disc0/disc
-
-# disable dma for cd drive ...
-# we remove this when the dma timeout problem is fixed!
-hdparm -d0 /dev/ide/host0/bus0/target0/lun0/cd
-
-echo 18 > /proc/progress
-for mod in dreambox_keyboard fp bcm7400; do
- modprobe $mod
-done
-
-echo 19 > /proc/progress
-
-cat /etc/videomode > /proc/stb/video/videomode
-
-echo 20 > /proc/progress
-
-for mod in rt73 zd1211b; do
- modprobe $mod
-done
-
-echo "loading madwifi modules"
-for x in wlan ath_rate; do
- for mod in `ls /lib/modules/$(uname -r)/net | grep $x | cut -d . -f 0`; do
- modprobe $mod
- done
-done
-modprobe ath_pci
-
-echo 21 > /proc/progress
-
-[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
-
-hostname -F /etc/hostname
-
-echo 22 > /proc/progress
-
-/usr/bin/wdog /usr/bin/dccamd -
-
-echo 23 > /proc/progress
-
-[ -e "/etc/sysctl.conf" ] && /sbin/sysctl -p "/etc/sysctl.conf"
-
-echo 24 > /proc/progress
-
-ldconfig
-
-echo 25 > /proc/progress
-
-opkg-cl configure
+++ /dev/null
-#!/bin/sh
-mount -at cifs,nfs,smbfs
+++ /dev/null
-DESCRIPTION = "SysV init scripts (stripped) for opendreambox"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-SECTION = "base"
-PRIORITY = "required"
-DEPENDS = "makedevs"
-RDEPENDS = "makedevs"
-PROVIDES = "initscripts"
-RPROVIDES_${PN} = "initscripts"
-LICENSE = "GPL"
-PR = "r19"
-
-FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/${P}', '${FILE_DIRNAME}/initscripts-${PV}', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-SRC_URI = "file://halt \
- file://umountfs \
- file://reboot \
- file://single \
- file://sendsigs \
- file://rmnologin \
- file://umountnfs.sh \
- file://netmount.sh \
- file://var.tar.gz.default \
- file://bootup"
-
-SRC_URI_append_dm8000 = " file://fscking.raw"
-
-do_install () {
-#
-# Create directories and install device independent scripts
-#
- install -d ${D}${sysconfdir}/init.d \
- ${D}${sysconfdir}/rcS.d \
- ${D}${sysconfdir}/rc0.d \
- ${D}${sysconfdir}/rc1.d \
- ${D}${sysconfdir}/rc2.d \
- ${D}${sysconfdir}/rc3.d \
- ${D}${sysconfdir}/rc4.d \
- ${D}${sysconfdir}/rc5.d \
- ${D}${sysconfdir}/rc6.d \
- ${D}${sysconfdir}/default
-
- install -m 0755 ${WORKDIR}/halt ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/reboot ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/rmnologin ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/sendsigs ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/single ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/bootup ${D}${sysconfdir}/init.d
-
- install -m 0755 ${WORKDIR}/var.tar.gz.default ${D}${sysconfdir}/var.tar.gz
-
-#
-# Install device dependent scripts
-#
- if [ "${MACHINE}" = "dm600pvr" -o "${MACHINE}" = "dm500plus" ]; then
- head -n 4 ${WORKDIR}/umountfs > ${D}${sysconfdir}/init.d/umountfs
- echo "cd /tmp" >> ${D}${sysconfdir}/init.d/umountfs
- tail -n 14 ${WORKDIR}/umountfs >> ${D}${sysconfdir}/init.d/umountfs
- chmod 0755 ${D}${sysconfdir}/init.d/umountfs
- ln -sf /usr/bin/showshutdownpic ${D}${sysconfdir}/rc0.d/S89showshutdownpic
- else
- install -m 0755 ${WORKDIR}/umountfs ${D}${sysconfdir}/init.d/umountfs
- install -d ${D}${sysconfdir}/network/if-up.d
- install -m 0755 ${WORKDIR}/netmount.sh ${D}${sysconfdir}/network/if-up.d/02netmount
- install -d ${D}${sysconfdir}/network/if-down.d
- install -m 0755 ${WORKDIR}/umountnfs.sh ${D}${sysconfdir}/network/if-down.d/02umountnfs
- fi
-
- if [ "${MACHINE}" = "dm8000" ]; then
- install -m 0755 ${WORKDIR}/fscking.raw ${D}${sysconfdir}/
- fi
-
- ln -sf ../init.d/rmnologin ${D}${sysconfdir}/rc2.d/S99rmnologin
- ln -sf ../init.d/rmnologin ${D}${sysconfdir}/rc3.d/S99rmnologin
- ln -sf ../init.d/rmnologin ${D}${sysconfdir}/rc4.d/S99rmnologin
- ln -sf ../init.d/rmnologin ${D}${sysconfdir}/rc5.d/S99rmnologin
- ln -sf ../init.d/sendsigs ${D}${sysconfdir}/rc6.d/S20sendsigs
- ln -sf ../init.d/umountfs ${D}${sysconfdir}/rc6.d/S40umountfs
- ln -sf ../init.d/reboot ${D}${sysconfdir}/rc6.d/S90reboot
- ln -sf ../init.d/sendsigs ${D}${sysconfdir}/rc0.d/S20sendsigs
- ln -sf ../init.d/umountfs ${D}${sysconfdir}/rc0.d/S40umountfs
- ln -sf ../init.d/halt ${D}${sysconfdir}/rc0.d/S90halt
- ln -sf ../init.d/bootup ${D}${sysconfdir}/rcS.d/S00bootup
-}
+++ /dev/null
-dest root /
-dest cf /media/cf/
-dest ram /media/ram/
+++ /dev/null
-dest root /
-dest cf /media/cf/
-dest ram /media/ram/
-dest hdd /media/hdd/
-dest usb /media/usb/
+++ /dev/null
-dest root /
-dest cf /media/cf/
-dest ram /media/ram/
-dest hdd /media/hdd/
-dest usb /media/usb/
+++ /dev/null
-dest root /
-dest cf /media/cf/
-dest ram /media/ram/
-dest hdd /media/hdd/
-dest usb /media/usb/
+++ /dev/null
-dest root /
-dest ram /media/ram/
-dest hdd /media/hdd/
-dest usb /media/usb/
+++ /dev/null
-dest root /
-dest cf /media/cf/
-dest ram /media/ram/
-dest hdd /media/hdd/
-dest usb /media/usb/
+++ /dev/null
-LICENSE = "GPL"
-
-DESCRIPTION = "Library for reading some sort of media format."
-SECTION = "libs"
-PRIORITY = "optional"
-DEPENDS = ""
-
-SRCDATE = "20081101"
-PV = "0.7.5+cvs${SRCDATE}"
-PR = "r0"
-
-inherit autotools
-
-SRC_URI = "cvs://anonymous@liba52.cvs.sourceforge.net/cvsroot/liba52;module=a52dec;date=${SRCDATE}"
-
-S="${WORKDIR}/a52dec"
-
-EXTRA_OECONF = " --enable-shared --enable-fixed"
-
-PACKAGES = "${PN} ${PN}-dev a52dec a52dec-doc"
-
-FILES_${PN} = " ${libdir}/liba52.so.0 ${libdir}/liba52.so.0.0.0 "
-FILES_${PN}-dev = " ${includedir}/a52dec/*.h ${libdir}/liba52.so ${libdir}/liba52.la ${libdir}/liba52.a "
-FILES_a52dec = " ${bindir}/* "
-FILES_a52dec-doc = " ${mandir}/man1/* "
-
-do_stage() {
- oe_libinstall -a -so -C liba52 liba52 ${STAGING_LIBDIR}
-
- install -d ${STAGING_INCDIR}/a52dec
- install -m 0644 ${S}/include/a52.h ${STAGING_INCDIR}/a52dec/a52.h
- install -m 0644 ${S}/include/attributes.h ${STAGING_INCDIR}/a52dec/attributes.h
- install -m 0644 ${S}/include/audio_out.h ${STAGING_INCDIR}/a52dec/audio_out.h
- install -m 0644 ${S}/include/mm_accel.h ${STAGING_INCDIR}/a52dec/mm_accel.h
-}
+++ /dev/null
---- libcddb-1.3.0/lib/Makefile.am.old 2007-11-13 08:09:20 +0000
-+++ libcddb-1.3.0/lib/Makefile.am 2007-11-13 08:09:41 +0000
-@@ -5,4 +5,5 @@
- libcddb_la_SOURCES = cddb_track.c cddb_disc.c cddb_regex.c cddb_error.c \
- cddb_conn.c cddb_cmd.c cddb_net.c cddb_log.c cddb_util.c \
- cddb.c cddb_site.c ll.c
--libcddb_la_LDFLAGS = -no-undefined -version-info 4:3:2 $(LIBICONV)
-+libcddb_la_LDFLAGS = -no-undefined -version-info 4:3:2
-+libcddb_la_LIBADD = $(LIBICONV)
+++ /dev/null
-Index: libcddb-1.3.0/configure.ac
-===================================================================
---- libcddb-1.3.0/configure.ac 2006-10-15 09:04:53.000000000 +0000
-+++ libcddb-1.3.0/configure.ac 2008-07-26 00:01:38.000000000 +0000
-@@ -100,11 +100,10 @@
-
- dnl Checks for library functions.
- AC_FUNC_MALLOC
--AC_FUNC_REALLOC
- AC_FUNC_STAT
- AC_FUNC_VPRINTF
- AC_FUNC_SELECT_ARGTYPES
--AC_CHECK_FUNCS([mkdir regcomp socket strdup strtol strchr memset alarm select realloc])
-+AC_CHECK_FUNCS([mkdir regcomp socket strdup strtol strchr memset alarm select])
- AC_CHECK_FUNC([gethostbyname], , AC_CHECK_LIB([nsl], [gethostbyname]))
-
- dnl Check for libcdio
+++ /dev/null
-DESCRIPTION = "A library for accessing a CDDB server"
-HOMEPAGE = "http://libcddb.sourceforge.net"
-SECTION = "libs"
-PRIORITY = "optional"
-LICENSE = "LGPL-2"
-MAINTAINER = "Andreas Frisch <andreas.frisch@multimedia-labs.de>"
-
-SRC_URI = "http://downloads.sourceforge.net/${PN}/${PN}-${PV}.tar.bz2\
- file://${P}-asneeded-nonglibc.patch;patch=1"
-
-inherit autotools
-
-DEPEND="doc? ( app-doc/doxygen )"
+++ /dev/null
-DESCRIPTION = "A library for accessing a CDDB server"
-HOMEPAGE = "http://libcddb.sourceforge.net"
-SECTION = "libs"
-PRIORITY = "optional"
-LICENSE = "LGPL-2"
-MAINTAINER = "Andreas Frisch <andreas.frisch@multimedia-labs.de>"
-
-SRC_URI = "http://downloads.sourceforge.net/${PN}/${PN}-${PV}.tar.bz2\
- file://${P}-configure-realloc.patch;patch=1\
- file://${P}-asneeded-nonglibc.patch;patch=1"
-
-#EXTRA_OECONF = "--without-cdio --without-iconv"
-
-inherit autotools pkgconfig
-
-DEPEND="doc? ( app-doc/doxygen )"
-
-do_stage () {
- oe_libinstall -so -C lib libcddb ${STAGING_LIBDIR}
- install -d ${STAGING_INCDIR}/cddb
- install -m 0644 ${S}/include/cddb/*.h ${STAGING_INCDIR}/cddb
-}
\ No newline at end of file
+++ /dev/null
-Index: libcdio-0.80/src/cdtextinfo.c
-===================================================================
---- libcdio-0.80/src/cdtextinfo.c
-+++ libcdio-0.80/src/cdtextinfo.c
-@@ -0,0 +1,372 @@
-+/*
-+ This program is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU General Public License as published by
-+ the Free Software Foundation; either version 2 of the License, or
-+ (at your option) any later version.
-+
-+ This program is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ GNU General Public License for more details.
-+
-+ You should have received a copy of the GNU General Public License
-+ along with this program; if not, write to the Free Software
-+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+
-+ cdtextinfo, 2008-07-25 by fraxinas <andreas.frisch@multimedia-labs.de>
-+*/
-+
-+#include "config.h"
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <cddb/cddb.h>
-+#include <cdio/cdio.h>
-+#include <cdio/cdtext.h>
-+#include "cddb.h"
-+#include "getopt.h"
-+
-+struct opts_s
-+{
-+ bool album;
-+ bool listing;
-+ bool cddb;
-+ bool cdtext;
-+ bool xml;
-+} options;
-+
-+/* Configuration option codes */
-+enum {
-+ OP_HANDLED = 0,
-+
-+ OP_CDDB_SERVER,
-+ OP_CDDB_CACHE,
-+ OP_CDDB_EMAIL,
-+ OP_CDDB_NOCACHE,
-+ OP_CDDB_TIMEOUT,
-+
-+ OP_USAGE,
-+
-+ /* These are the remaining configuration options */
-+ OP_VERSION,
-+
-+};
-+
-+static bool parse_options (int argc, char *argv[])
-+{
-+ int opt; /* used for argument parsing */
-+
-+ const char* helpText =
-+ "Usage: %s [OPTION...]\n"
-+ " -a, --album Print audio CD album info\n"
-+ " -l, --listing Print title info for all tracks\n"
-+ " -T, --cdtext Use CD-Text\n"
-+ " -D, --cddb Use CDDB\n"
-+ " -x, --xml XML output\n"
-+ "\n"
-+ "CDDB options:\n"
-+ " -P, --cddb-port=INT CDDB port number to use (default 8880)\n"
-+ " --cddb-server=STRING CDDB server to contact for information\n"
-+ " (default: freedb.freedb.org)\n"
-+ " --cddb-cache=STRING Location of CDDB cache directory\n"
-+ " (default ~/.cddbclient)\n"
-+ " --cddb-email=STRING Email address to give CDDB server\n"
-+ " (default me@dreambox)\n"
-+ " --no-cddb-cache Disable caching of CDDB entries\n"
-+ " locally (default caches)\n"
-+ " --cddb-timeout=INT CDDB timeout value in seconds\n"
-+ " (default 10 seconds)\n"
-+ "\n"
-+ "Help options:\n"
-+ " -?, --help Show this help message\n"
-+ " --usage Display brief usage message\n"
-+ "\n"
-+ "Example: %s -xalDT\n"
-+ " Will query album info and track listing from both CD-Text and CDDB and display as XML\n";
-+
-+ const char* usageText =
-+ "Usage: %s [-a|--album] [-l|--listing]\n"
-+ " [-T|--cdtext] [-D|--cddb] [-x|--xml]\n"
-+ " [-P|--cddb-port INT] [--cddb-server=STRING]\n"
-+ " [--cddb-cache=STRING] [--cddb-email=STRING]\n"
-+ " [--no-cddb-cache] [--cddb-timeout=INT]\n"
-+ " [-?|--help] [--usage]\n";
-+
-+ const char* optionsString = "alTDP:x?";
-+ struct option optionsTable[] = {
-+ {"album", no_argument, NULL, 'a' },
-+ {"listing", no_argument, NULL, 'l' },
-+ {"cdtext", no_argument, NULL, 'T' },
-+ {"cddb", no_argument, NULL, 'D' },
-+ {"cddb-port", required_argument, NULL, 'P' },
-+ {"cddb-server", required_argument, NULL, OP_CDDB_SERVER },
-+ {"cddb-cache", required_argument, NULL, OP_CDDB_CACHE },
-+ {"cddb-email", required_argument, NULL, OP_CDDB_EMAIL },
-+ {"no-cddb-cache", no_argument, NULL, OP_CDDB_NOCACHE },
-+ {"cddb-timeout", required_argument, NULL, OP_CDDB_TIMEOUT },
-+ {"help", no_argument, NULL, '?' },
-+ {"usage", no_argument, NULL, OP_USAGE },
-+ { NULL, 0, NULL, 0 }
-+ };
-+
-+ while ((opt = getopt_long(argc, argv, optionsString, optionsTable, NULL)) >= 0) {
-+ switch (opt) {
-+ case 'a': options.album = true; break;
-+ case 'l': options.listing = true; break;
-+ case 'T': options.cdtext = true; break;
-+ case 'D': options.cddb = true; break;
-+ case 'x': options.xml = true; break;
-+ case 'P': cddb_opts.port = atoi(optarg); break;
-+ case OP_CDDB_SERVER: cddb_opts.server = strdup(optarg); break;
-+ case OP_CDDB_CACHE: cddb_opts.cachedir = strdup(optarg); break;
-+ case OP_CDDB_EMAIL: cddb_opts.email = strdup(optarg); break;
-+ case OP_CDDB_NOCACHE: cddb_opts.disable_cache = 1; break;
-+ case OP_CDDB_TIMEOUT: cddb_opts.timeout = atoi(optarg); break;
-+ case '?':
-+ fprintf(stdout, helpText, argv[0], argv[0]);
-+ exit(0);
-+ break;
-+ case OP_USAGE:
-+ fprintf(stderr, usageText, argv[0]);
-+ exit(1);
-+ break;
-+ case 0:
-+ break;
-+ }
-+ }
-+ return true;
-+}
-+
-+static void cddb_errmsg(const char *msg)
-+{
-+ if ( options.xml )
-+ printf("<error msg=\"%s\" />\n", msg);
-+ else
-+ printf("%s\n", msg);
-+}
-+
-+int print_cddb_info(CdIo_t *p_cdio, track_t i_tracks, track_t i_first_track)
-+{
-+ int i_cddb_matches = 0, i_cddb_currentmatch = 1;
-+
-+ cddb_conn_t *p_conn = NULL;
-+ cddb_disc_t *p_cddb_disc = NULL;
-+
-+ if ( init_cddb(p_cdio, &p_conn, &p_cddb_disc, cddb_errmsg, i_first_track, i_tracks, &i_cddb_matches) )
-+ {
-+ while ( i_cddb_currentmatch <= i_cddb_matches )
-+ {
-+ cddb_read(p_conn, p_cddb_disc);
-+
-+ if ( options.xml )
-+ printf("\t<query source=\"CDDB\" match=\"%i\" num_matches=\"%i\">\n",i_cddb_currentmatch,i_cddb_matches);
-+
-+ if (options.album)
-+ {
-+ if ( options.xml )
-+ printf("\t\t<albuminfo>\n");
-+
-+ if ( cddb_disc_get_title(p_cddb_disc) )
-+ {
-+ if ( options.xml )
-+ printf("\t\t\t\t<title>%s</title>\n",cddb_disc_get_title(p_cddb_disc));
-+ else
-+ printf("TITLE:%s\n",cddb_disc_get_title(p_cddb_disc));
-+ }
-+ if ( cddb_disc_get_artist(p_cddb_disc) )
-+ {
-+ if ( options.xml )
-+ printf("\t\t\t\t<artist>%s</artist>\n",cddb_disc_get_artist(p_cddb_disc));
-+ else
-+ printf("ARTIST:%s\n",cddb_disc_get_artist(p_cddb_disc));
-+ }
-+ if ( cddb_disc_get_genre(p_cddb_disc) )
-+ {
-+ if ( options.xml )
-+ printf("\t\t\t\t<genre>%s</genre>\n",cddb_disc_get_genre(p_cddb_disc));
-+ else
-+ printf("GENRE:%s\n",cddb_disc_get_genre(p_cddb_disc));
-+ }
-+ if ( cddb_disc_get_category_str(p_cddb_disc) )
-+ {
-+ if ( options.xml )
-+ printf("\t\t\t\t<category>%s</category>\n",cddb_disc_get_category_str(p_cddb_disc));
-+ else
-+ printf("CATEGORY:%s\n",cddb_disc_get_category_str(p_cddb_disc));
-+ }
-+ if ( cddb_disc_get_year(p_cddb_disc) )
-+ {
-+ if ( options.xml )
-+ printf("\t\t\t\t<year>%i</year>\n",cddb_disc_get_year(p_cddb_disc));
-+ else
-+ printf("YEAR:%i\n",cddb_disc_get_year(p_cddb_disc));
-+ }
-+ if ( cddb_disc_get_ext_data(p_cddb_disc) )
-+ {
-+ if ( options.xml )
-+ printf("\t\t\t\t<extra_data>%s</extra_data>\n",cddb_disc_get_ext_data(p_cddb_disc));
-+ else
-+ printf("EXTDATA:%s\n",cddb_disc_get_ext_data(p_cddb_disc));
-+ }
-+ if ( options.xml )
-+ printf("\t\t</albuminfo>\n");
-+ }
-+ if (options.listing)
-+ {
-+ if ( options.xml )
-+ printf("\t\t<tracklisting>\n");
-+
-+ cddb_track_t *p_cddb_track = cddb_disc_get_track_first(p_cddb_disc);
-+ while ( p_cddb_track != NULL )
-+ {
-+ if ( options.xml )
-+ {
-+ printf("\t\t\t\t<track number=\"%i\">\n",cddb_track_get_number(p_cddb_track));
-+ if (cddb_track_get_length(p_cddb_track))
-+ printf("\t\t\t\t\t\t<length>%i</length>\n",cddb_track_get_length(p_cddb_track));
-+ if (cddb_track_get_title(p_cddb_track))
-+ printf("\t\t\t\t\t\t<title>%s</title>\n",cddb_track_get_title(p_cddb_track));
-+ if (cddb_track_get_artist(p_cddb_track))
-+ printf("\t\t\t\t\t\t<artist>%s</artist>\n",cddb_track_get_artist(p_cddb_track));
-+ if (cddb_track_get_ext_data(p_cddb_track))
-+ printf("\t\t\t\t\t\t<extra_data>%s</extra_data>\n",cddb_track_get_ext_data(p_cddb_track));
-+ printf("\t\t\t\t</track>\n");
-+ }
-+ else
-+ printf("%i:%s\n",cddb_track_get_number(p_cddb_track),cddb_track_get_title(p_cddb_track));
-+
-+ p_cddb_track = cddb_disc_get_track_next(p_cddb_disc);
-+ }
-+
-+ if ( options.xml )
-+ printf("\t\t</tracklisting>\n");
-+ }
-+ if ( options.xml )
-+ printf("\t</query>\n");
-+
-+ cddb_query_next(p_conn, p_cddb_disc);
-+ i_cddb_currentmatch++;
-+ }
-+ if ( i_cddb_currentmatch < 1 && options.xml )
-+ printf("\t<query source=\"CDDB\" num_matches=\"%i\" />\n",i_cddb_matches);
-+ }
-+ cddb_disc_destroy(p_cddb_disc);
-+ cddb_destroy(p_conn);
-+ libcddb_shutdown();
-+ return 0;
-+}
-+
-+int print_cdtext_info(CdIo_t *p_cdio, track_t i_tracks, track_t i_track)
-+{
-+ const cdtext_t *cdtext = cdio_get_cdtext(p_cdio, 0);
-+
-+ if ( cdtext == NULL || cdtext && !cdtext->field[9] )
-+ {
-+ if ( options.xml )
-+ printf("\t<query source=\"CD-TEXT\" num_matches=\"0\" />\n");
-+ return -1;
-+ }
-+
-+ if ( options.xml )
-+ printf("\t<query source=\"CD-TEXT\" match=\"1\" num_matches=\"1\">\n");
-+
-+ if ( options.album )
-+ {
-+ if ( options.xml )
-+ printf("\t\t<albuminfo>\n");
-+ cdtext_field_t i;
-+ for (i=0; i < MAX_CDTEXT_FIELDS; i++)
-+ {
-+ if (cdtext->field[i])
-+ {
-+ if ( options.xml )
-+ printf("\t\t\t\t<%s>%s</%s>\n",cdtext_field2str(i),cdtext->field[i],cdtext_field2str(i));
-+ else
-+ printf("%s:%s\n", cdtext_field2str(i), cdtext->field[i]);
-+ }
-+ }
-+ if ( options.xml )
-+ printf("\t\t</albuminfo>\n");
-+ }
-+
-+ if ( options.listing )
-+ {
-+ if ( options.xml )
-+ printf("\t\t<tracklisting>\n");
-+
-+ for ( ; i_track < i_tracks; i_track++ )
-+ {
-+ const cdtext_t *cdtext = cdio_get_cdtext(p_cdio, i_track);
-+ if (!cdtext)
-+ continue;
-+
-+ if ( options.xml )
-+ {
-+ printf("\t\t\t\t<track number=\"%i\">\n",i_track);
-+
-+ cdtext_field_t i;
-+ for (i=0; i < MAX_CDTEXT_FIELDS; i++)
-+ {
-+ if (cdtext->field[i])
-+ {
-+ if ( options.xml )
-+ printf("\t\t\t\t\t\t<%s>%s</%s>\n",cdtext_field2str(i),cdtext->field[i],cdtext_field2str(i));
-+ }
-+ }
-+ printf("\t\t\t\t</track>\n");
-+ }
-+
-+ else if (cdtext->field[9])
-+ printf("%d:%s\n", i_track, cdtext->field[9]);
-+ }
-+
-+ if ( options.xml )
-+ printf("\t\t</tracklisting>\n");
-+ }
-+
-+ if ( options.xml )
-+ printf("\t</query>\n");
-+
-+ return 0;
-+}
-+
-+int main(int argc, char *argv[])
-+{
-+ cddb_opts.port = 8880;
-+ cddb_opts.server = NULL;
-+ cddb_opts.timeout = 10;
-+ cddb_opts.disable_cache = false;
-+ cddb_opts.cachedir = NULL;
-+ cddb_opts.email = strdup("me@dreambox");
-+
-+ parse_options(argc, argv);
-+
-+ track_t i_track;
-+ track_t i_tracks;
-+ CdIo_t *p_cdio = cdio_open (NULL, DRIVER_DEVICE);
-+ i_tracks = cdio_get_num_tracks(p_cdio);
-+
-+ if ( options.xml )
-+ {
-+ printf("<?xml version=\"1.0\" ?>\n");
-+ printf("<cdinfo>\n");
-+ }
-+
-+ if (NULL == p_cdio)
-+ return -1;
-+
-+ i_track = cdio_get_first_track_num(p_cdio);
-+ if ( options.cdtext )
-+ print_cdtext_info(p_cdio, i_tracks, i_track);
-+
-+ i_track = cdio_get_first_track_num(p_cdio);
-+ if ( options.cddb )
-+ print_cddb_info(p_cdio, i_tracks, i_track);
-+
-+ cdio_destroy(p_cdio);
-+
-+ if ( options.xml )
-+ printf("</cdinfo>\n");
-+
-+ return 0;
-+}
-Index: libcdio-0.80/src/Makefile.am
-===================================================================
---- libcdio-0.80/src/Makefile.am
-+++ libcdio-0.80/src/Makefile.am 2008-07-29 09:56:06.000000000 +0000
-@@ -85,7 +85,12 @@
- #mmc_tool_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LIBICONV)
- #bin_mmc_tool = mmc-tool
-
--bin_PROGRAMS = $(bin_cd_drive) $(bin_cd_info) $(bin_cdinfo_linux) $(bin_cd_read) $(bin_iso_info) $(bin_iso_read) $(bin_cdda_player) $(bin_mmc_tool)
-+bin_cdtextinfo = cdtextinfo
-+cdtextinfo_SOURCES = cdtextinfo.c cddb.c cddb.h $(GETOPT_C)
-+cdtextinfo_LDADD = $(LIBCDIO_LIBS) $(LIBICONV) $(CDDB_LIBS)
-+cdtextinfo_DEPENDENCIES = $(LIBCDIO_DEPS)
-+
-+bin_PROGRAMS = $(bin_cd_drive) $(bin_cd_info) $(bin_cdinfo_linux) $(bin_cd_read) $(bin_iso_info) $(bin_iso_read) $(bin_cdda_player) $(bin_mmc_tool) $(bin_cdtextinfo)
-
- INCLUDES = -I$(top_srcdir) $(LIBCDIO_CFLAGS) $(VCDINFO_CFLAGS) $(CDDB_CFLAGS)
+++ /dev/null
-Index: libcdio-0.80/configure.ac
-===================================================================
---- libcdio-0.80.orig/configure.ac 2008-03-15 17:45:17.000000000 +0000
-+++ libcdio-0.80/configure.ac 2008-07-16 09:21:06.000000000 +0000
-@@ -271,33 +271,9 @@
-
- dnl bitfield order
- AC_MSG_CHECKING(bitfield ordering in structs)
--AC_TRY_RUN([
--int
-- main() {
-- struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
--#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
-- __attribute__((packed))
--#endif
-- bf = { 1,1,1,1 };
-- if (sizeof (bf) != 1) return 1;
-- return *((unsigned char*) &bf) != 0x4b; }
--], bf_lsbf=1, AC_TRY_RUN([
--int
--main() {
-- struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
--#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
-- __attribute__((packed))
--#endif
-- bf = { 1,1,1,1 };
-- if (sizeof (bf) != 1) return 1;
-- return *((unsigned char*) &bf) != 0xa5; }
--], bf_lsbf=0, AC_MSG_ERROR([unsupported bitfield ordering])))
--if test "x$bf_lsbf" = "x1"; then
-- AC_MSG_RESULT(LSBF)
-- AC_DEFINE(BITFIELD_LSBF, [], [compiler does least-significant bit first in struct bitfields])
--else
-- AC_MSG_RESULT(MSBF)
--fi
-+bf_lsbf=1
-+AC_MSG_RESULT(LSBF)
-+AC_DEFINE(BITFIELD_LSBF, [], [compiler does least-significant bit first in struct bitfields])
- dnl
-
- dnl AM_PROG_LIBTOOL tests whether we have GNU ld
-@@ -466,24 +442,6 @@
- ;;
- esac
-
--AC_MSG_CHECKING(extern long timezone variable)
--AC_TRY_RUN([
--#ifdef NEED_TIMEZONEVAR
--#define timezonevar 1
--#endif
--
--#include <time.h>
--extern long timezone;
--int main(int argc, char **argv) {
-- long test_timezone = timezone;
-- return 0;
--}
--], [AC_MSG_RESULT(yes);
-- AC_DEFINE([HAVE_TIMEZONE_VAR], 1,
-- [Define if you have an extern long timenzone variable.])],
-- [AC_MSG_RESULT(no)])
--dnl
--
- AC_SUBST(LINUX_CDROM_TIMEOUT)
- AC_SUBST(DARWIN_PKG_LIB_HACK)
- AC_SUBST(HAVE_BSDI_CDROM)
-@@ -508,43 +466,6 @@
- ,
- [#include <time.h>])
-
--if test $ac_cv_member_struct_tm_tm_gmtoff = yes ; then
-- AC_MSG_CHECKING([whether time.h defines daylight and timezone variables])
-- AC_TRY_RUN([
--#include <time.h>
--
--
-- extern char *tzname[2];
-- extern long timezone;
-- extern int daylight;
--
--int
-- main() {
-- return (timezone != 0) + daylight;
--}
-- ],[AC_DEFINE(HAVE_DAYLIGHT, 1,
-- [Define if time.h defines extern long timezone and int daylight vars.])
-- has_daylight=yes
-- ],[has_daylight=no])
-- AC_MSG_RESULT($has_daylight)
-- AC_MSG_CHECKING([whether time.h defines tzname variable])
-- AC_TRY_RUN([
--#include <time.h>
--
--
-- extern char *tzname[2];
--
--int
-- main() {
-- return (tzname != NULL);
--}
-- ],[AC_DEFINE(HAVE_TZNAME, 1,
-- [Define if time.h defines extern extern char *tzname[2] variable])
-- has_tzname=yes
-- ],[has_tzname=no])
-- AC_MSG_RESULT($has_tzname)
--fi
--
- AC_ARG_ENABLE(joliet,
- AS_HELP_STRING([--disable-joliet], [don't include Joliet extension support (default enabled)]),
- [enable_joliet=$enableval],
+++ /dev/null
-Index: libcdio-0.80/Makefile.am
-===================================================================
---- libcdio-0.80.orig/Makefile.am
-+++ libcdio-0.80/Makefile.am
-@@ -45,12 +45,15 @@ endif
- # pkg-config(1) related rules
- pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = libcdio.pc \
-- libcdio++.pc \
- libiso9660.pc \
-- libiso9660++.pc \
-- libudf.pc
-+ libudf.pc \
- $(paranoiapcs)
-
-+#if ENABLE_CPP
-+#pkgconfig_DATA += \
-+# libcdio++.pc \
-+# libiso9660++.pc
-+#endif
-
- $(pkgconfig_DATA): config.status
-
+++ /dev/null
-Index: libcdio-0.80/cdtextinfo/Makefile.am
-===================================================================
---- libcdio-0.80/src/Makefile.am 2008-03-15 16:21:28.000000000 +0000
-+++ libcdio-0.80/src/Makefile.am 2008-07-25 17:16:18.000000000 +0000
-@@ -21,11 +21,6 @@
-
- GETOPT_C = getopt.c getopt1.c
-
--man_MANS = cd-drive.1 cd-info.1 cd-read.1 iso-read.1 iso-info.1
--EXTRA_DIST = cd-drive.help2man cd-info.help2man cd-read.help2man \
-- iso-info.help2man iso-read.help2man $(GETOPT_C) getopt.h \
-- $(man_MANS)
--
- noinst_HEADERS = cddb.h getopt.h util.h
-
- ####################################################
-@@ -39,10 +34,6 @@
- CDDB_LIBS=@CDDB_LIBS@
- CDDA_PLAYER_LIBS=@CDDA_PLAYER_LIBS@
-
--$(man_MANS): %.1: % %.help2man
-- -$(HELP2MAN) --opt-include=$<.help2man --no-info --output=$@ ./$<
--MOSTLYCLEANFILES = $(man_MANS)
--
- if BUILD_CDDA_PLAYER
- cdda_player_SOURCES = cdda-player.c cddb.c cddb.h $(GETOPT_C)
- cdda_player_LDADD = $(LIBCDIO_LIBS) $(CDDB_LIBS) $(CDDA_PLAYER_LIBS)
-@@ -53,12 +44,14 @@
- cd_drive_SOURCES = cd-drive.c util.c util.h $(GETOPT_C)
- cd_drive_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LIBICONV)
- bin_cd_drive = cd-drive
-+man_cd_drive = cd-drive.1
- endif
-
- if BUILD_CDINFO
- cd_info_SOURCES = cd-info.c cddb.c cddb.h util.c util.h $(GETOPT_C)
- cd_info_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(CDDB_LIBS) $(VCDINFO_LIBS) $(LIBICONV)
- bin_cd_info = cd-info
-+man_cd_info = cd-info.1
- endif
-
- if BUILD_CDINFO_LINUX
-@@ -71,24 +64,36 @@
- cd_read_SOURCES = cd-read.c util.c util.h $(GETOPT_C)
- cd_read_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LIBICONV)
- bin_cd_read = cd-read
-+man_cd_read = cd-read.1
- endif
-
- if BUILD_ISO_INFO
- iso_info_SOURCES = iso-info.c util.c util.h $(GETOPT_C)
- iso_info_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LIBICONV)
- bin_iso_info = iso-info
-+man_iso_info = iso-info.1
- endif
-
- if BUILD_ISO_READ
- iso_read_SOURCES = iso-read.c util.c util.h $(GETOPT_C)
- iso_read_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LIBICONV)
- bin_iso_read = iso-read
-+man_iso_read = iso-read.1
- endif
-
--mmc_tool_SOURCES = mmc-tool.c util.c util.h $(GETOPT_C)
--mmc_tool_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LIBICONV)
--bin_mmc_tool = mmc-tool
-+#mmc_tool_SOURCES = mmc-tool.c util.c util.h $(GETOPT_C)
-+#mmc_tool_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LIBICONV)
-+#bin_mmc_tool = mmc-tool
-
- bin_PROGRAMS = $(bin_cd_drive) $(bin_cd_info) $(bin_cdinfo_linux) $(bin_cd_read) $(bin_iso_info) $(bin_iso_read) $(bin_cdda_player) $(bin_mmc_tool)
-
- INCLUDES = -I$(top_srcdir) $(LIBCDIO_CFLAGS) $(VCDINFO_CFLAGS) $(CDDB_CFLAGS)
-+
-+man_MANS = $(man_cd_drive) $(man_cd_info) $(man_cd_read) $(man_iso_read) $(man_iso_info)
-+EXTRA_DIST = cd-drive.help2man cd-info.help2man cd-read.help2man \
-+ iso-info.help2man iso-read.help2man $(GETOPT_C) getopt.h \
-+ $(man_MANS)
-+
-+$(man_MANS): %.1: % %.help2man
-+ -$(HELP2MAN) --opt-include=$<.help2man --no-info --output=$@ ./$<
-+MOSTLYCLEANFILES = $(man_MANS)
+++ /dev/null
-DESCRIPTION = "A library to encapsulate CD-ROM reading and control"
-HOMEPAGE = "http://www.gnu.org/software/libcdio/"
-SECTION = "libs"
-PRIORITY = "optional"
-LICENSE = "GPL"
-MAINTAINER = "Andreas Frisch <andreas.frisch@multimedia-labs.de>"
-PR="r1"
-DEPENDS = "libcddb"
-
-SRC_URI = "http://ftp.gnu.org/pub/gnu/libcdio/${PN}-${PV}.tar.gz\
- file://${PN}-${PV}-configure-crosscompile.patch;patch=1\
- file://${PN}-${PV}-minimal-new.patch;patch=1\
- file://${PN}-${PV}-fix-pkgconfig.patch;patch=1\
- file://${PN}-${PV}-add-cdtextinfo.patch;patch=1"
-
-inherit pkgconfig autotools
-
-EXTRA_OECONF="--enable-cddb --disable-cpp-progs --disable-vcd-info --disable-maintainer-mode --without-cd-paranoia --without-cdda-player --disable-cxx --disable-example-progs --disable-joliet --without-cd-drive --without-cd-read --without-iso-info --without-iso-read --without-cd-info"
-
-DEPENDS = "libcddb virtual/libintl"
-
-do_compile_append () {
- install -d ${D}${bindir}
- install -m 0755 ${S}/src/.libs/cdtextinfo ${D}${bindir}
-}
-
-do_stage () {
- oe_libinstall -so -C lib libcdio ${STAGING_LIBDIR}
- install -d ${STAGING_INCDIR}/cdio
- install -m 0644 ${S}/include/cdio/*.h ${STAGING_INCDIR}/cdio
-}
+++ /dev/null
-# libdreamdvd.bb build file
-DESCRIPTION="libdvdnav wrapper for dream multimedia stbs"
-LICENSE = "GPL"
-DEPENDS = "libdvdnav"
-RDEPENDS = "libdvdnav"
-
-PR = "r0"
-PV = "0.9+cvs${SRCDATE}"
-SRCDATE = "20090128"
-SRC_URI="cvs://anonymous@cvs.schwerkraft.elitedvb.net/cvsroot/libdreamdvd;module=libdreamdvd;method=pserver"
-
-CFLAGS_dm8000_append = " -DHARDWARE_SUPPORT_LPCM"
-CFLAGS_dm800_append = " -DHARDWARE_SUPPORT_LPCM"
-
-S = "${WORKDIR}/libdreamdvd"
-
-inherit autotools pkgconfig
-
-do_stage_append() {
- oe_runmake install prefix=${STAGING_DIR} \
- bindir=${STAGING_BINDIR} \
- includedir=${STAGING_INCDIR} \
- libdir=${STAGING_LIBDIR} \
- datadir=${STAGING_DATADIR}
-}
+++ /dev/null
---- libdvdnav-0.1.10/src/dvdnav.c.org 2008-08-13 16:48:39.000000000 +0200
-+++ libdvdnav-0.1.10/src/dvdnav.c 2008-12-29 13:27:03.000000000 +0100
-@@ -642,7 +642,7 @@
- fprintf(MSG_OUT, "libdvdnav: SPU_CLUT_CHANGE\n");
- #endif
- (*len) = 16 * sizeof(uint32_t);
-- memcpy(*buf, &(state->pgc->palette), 16 * sizeof(uint32_t));
-+ memcpy(*buf, (state->pgc->palette), 16 * sizeof(uint32_t));
- this->spu_clut_changed = 0;
- pthread_mutex_unlock(&this->vm_lock);
- return DVDNAV_STATUS_OK;
+++ /dev/null
---- libdvdnav-0.1.10-org/src/vm.c 2004-05-21 21:32:25.000000000 +0200
-+++ libdvdnav-0.1.10/src/vm/vm.c 2008-04-15 13:25:33.000000000 +0200
-@@ -43,6 +43,10 @@
-
- #include "dvdnav_internal.h"
-
-+#if defined(__linux__)
-+#include <mntent.h>
-+#endif
-+
- #ifdef _MSC_VER
- #include <io.h> /* read() */
- #endif /* _MSC_VER */
-@@ -131,7 +135,7 @@
- * all off_t are 64bit.
- */
- off_t off;
-- int fd, i;
-+ int fd = 0, i;
- uint8_t data[DVD_VIDEO_LB_LEN];
-
- /* Read DVD name */
-@@ -141,6 +145,29 @@
- if( off == ( 32 * (off_t) DVD_VIDEO_LB_LEN ) ) {
- off = read( fd, data, DVD_VIDEO_LB_LEN );
- close(fd);
-+#if defined(__linux__)
-+ if (off != ( (off_t) DVD_VIDEO_LB_LEN )) {
-+ FILE *mntfile;
-+ mntfile = fopen( MOUNTED, "r" );
-+ if ( mntfile ) {
-+ struct mntent *me;
-+ while( ( me = getmntent( mntfile ) ) ) {
-+ if( strstr( device, me->mnt_dir ) ) {
-+ fprintf( stderr, "libdvdnav: Attempting to read dvd label from device %s mounted on %s \n", me->mnt_fsname, me->mnt_dir );
-+ fd = open(me->mnt_fsname, O_RDONLY);
-+ }
-+ }
-+ fclose( mntfile );
-+ }
-+ if (fd > 0) {
-+ off = lseek( fd, 32 * (off_t) DVD_VIDEO_LB_LEN, SEEK_SET );
-+ if( off == ( 32 * (off_t) DVD_VIDEO_LB_LEN ) ) {
-+ off = read( fd, data, DVD_VIDEO_LB_LEN );
-+ close(fd);
-+ }
-+ }
-+ }
-+#endif
- if (off == ( (off_t) DVD_VIDEO_LB_LEN )) {
- fprintf(MSG_OUT, "libdvdnav: DVD Title: ");
- for(i=25; i < 73; i++ ) {
+++ /dev/null
-diff -Naur libdvdnav-0.1.10-org/src/dvdnav.c libdvdnav-0.1.10/src/dvdnav.c
---- libdvdnav-0.1.10-org/src/dvdnav.c 2004-01-31 18:12:58.000000000 +0100
-+++ libdvdnav-0.1.10/src/dvdnav.c 2008-03-28 15:24:50.000000000 +0100
-@@ -16,9 +16,6 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: dvdnav.c,v 1.63 2004/01/31 17:12:58 jcdutton Exp $
-- *
- */
-
- #ifdef HAVE_CONFIG_H
-@@ -67,7 +64,7 @@
- struct timeval time;
-
- /* Create a new structure */
-- fprintf(MSG_OUT, "libdvdnav: Using dvdnav version %s from http://dvd.sf.net\n", VERSION);
-+ fprintf(MSG_OUT, "libdvdnav: Using dvdnav version %s from http://xine.sf.net\n", VERSION);
-
- (*dest) = NULL;
- this = (dvdnav_t*)malloc(sizeof(dvdnav_t));
-@@ -203,7 +200,7 @@
- }
-
- /* converts a dvd_time_t to PTS ticks */
--static int64_t dvdnav_convert_time(dvd_time_t *time) {
-+int64_t dvdnav_convert_time(dvd_time_t *time) {
- int64_t result;
- int64_t frames;
-
-@@ -403,7 +400,10 @@
-
- if(!this->started) {
- /* Start the VM */
-- vm_start(this->vm);
-+ if (!vm_start(this->vm)) {
-+ printerr("Encrypted or faulty DVD");
-+ return DVDNAV_STATUS_ERR;
-+ }
- this->started = 1;
- }
-
-@@ -665,16 +665,10 @@
- fprintf(MSG_OUT, "libdvdnav: SPU_STREAM_CHANGE stream_id_wide=%d\n",stream_change->physical_wide);
- fprintf(MSG_OUT, "libdvdnav: SPU_STREAM_CHANGE stream_id_letterbox=%d\n",stream_change->physical_letterbox);
- fprintf(MSG_OUT, "libdvdnav: SPU_STREAM_CHANGE stream_id_pan_scan=%d\n",stream_change->physical_pan_scan);
-+ fprintf(MSG_OUT, "libdvdnav: SPU_STREAM_CHANGE returning DVDNAV_STATUS_OK\n");
- #endif
-- if (stream_change->physical_wide != -1 &&
-- stream_change->physical_letterbox != -1 &&
-- stream_change->physical_pan_scan != -1) {
--#ifdef LOG_DEBUG
-- fprintf(MSG_OUT, "libdvdnav: SPU_STREAM_CHANGE returning DVDNAV_STATUS_OK\n");
--#endif
-- pthread_mutex_unlock(&this->vm_lock);
-- return DVDNAV_STATUS_OK;
-- }
-+ pthread_mutex_unlock(&this->vm_lock);
-+ return DVDNAV_STATUS_OK;
- }
-
- /* has the audio channel changed? */
-diff -Naur libdvdnav-0.1.10-org/src/dvdnav_events.h libdvdnav-0.1.10/src/dvdnav_events.h
---- libdvdnav-0.1.10-org/src/dvdnav_events.h 2003-04-27 03:26:18.000000000 +0200
-+++ libdvdnav-0.1.10/src/dvdnav_events.h 2008-01-23 06:11:52.000000000 +0100
-@@ -16,9 +16,6 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: dvdnav_events.h,v 1.12 2003/04/27 01:26:18 jcdutton Exp $
-- *
- */
-
- /*
-diff -Naur libdvdnav-0.1.10-org/src/dvdnav.h libdvdnav-0.1.10/src/dvdnav.h
---- libdvdnav-0.1.10-org/src/dvdnav.h 2003-06-09 17:17:44.000000000 +0200
-+++ libdvdnav-0.1.10/src/dvdnav.h 2008-01-23 06:11:52.000000000 +0100
-@@ -16,9 +16,6 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: dvdnav.h,v 1.31 2003/06/09 15:17:44 mroi Exp $
-- *
- */
-
- /*
-@@ -114,6 +111,8 @@
- */
- const char* dvdnav_err_to_string(dvdnav_t *self);
-
-+/* converts a dvd_time_t to PTS ticks */
-+int64_t dvdnav_convert_time(dvd_time_t *time);
-
- /*********************************************************************
- * changing and reading DVD player characteristics *
-diff -Naur libdvdnav-0.1.10-org/src/dvdnav_internal.h libdvdnav-0.1.10/src/dvdnav_internal.h
---- libdvdnav-0.1.10-org/src/dvdnav_internal.h 2004-02-13 20:16:17.000000000 +0100
-+++ libdvdnav-0.1.10/src/dvdnav_internal.h 2008-03-28 15:24:50.000000000 +0100
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 2001 Rich Wareham <richwareham@users.sourceforge.net>
-+ * Copyright (C) 2001-2004 Rich Wareham <richwareham@users.sourceforge.net>
- *
- * This file is part of libdvdnav, a DVD navigation library.
- *
-@@ -16,9 +16,6 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: dvdnav_internal.h,v 1.12 2004/02/13 19:16:17 mroi Exp $
-- *
- */
-
- #ifndef DVDNAV_INTERNAL_H_INCLUDED
-@@ -34,6 +31,34 @@
- #include <limits.h>
- #include <string.h>
-
-+#ifndef HAVE_GETTIMEOFDAY
-+# ifdef WIN32
-+# include <winsock.h>
-+struct timezone;
-+# else
-+# include <sys/time.h>
-+# endif
-+/* replacement gettimeofday implementation */
-+#include <sys/timeb.h>
-+static inline int dvdnav_private_gettimeofday( struct timeval *tv, void *tz )
-+{
-+ struct timeb t;
-+ ftime( &t );
-+ tv->tv_sec = t.time;
-+ tv->tv_usec = t.millitm * 1000;
-+ return 0;
-+}
-+#define gettimeofday(TV, TZ) dvdnav_private_gettimeofday((TV), (TZ))
-+#define HAVE_GETTIMEOFDAY 1
-+#endif
-+
-+#ifndef HAVE_SNPRINTF
-+# ifdef HAVE__SNPRINTF
-+# define snprintf _snprintf
-+# define HAVE_SNPRINTF 1
-+# endif
-+#endif
-+
- #ifdef WIN32
-
- /* pthread_mutex_* wrapper for win32 */
-@@ -45,16 +70,6 @@
- #define pthread_mutex_unlock(a) LeaveCriticalSection(a)
- #define pthread_mutex_destroy(a)
-
--/* replacement gettimeofday implementation */
--#include <sys/timeb.h>
--static inline int gettimeofday( struct timeval *tv, void *tz )
--{
-- struct timeb t;
-- ftime( &t );
-- tv->tv_sec = t.time;
-- tv->tv_usec = t.millitm * 1000;
-- return 0;
--}
- #include <io.h> /* read() */
- #define lseek64 _lseeki64
-
-@@ -184,15 +199,38 @@
-
- /** USEFUL MACROS **/
-
-+/* printerr*() are often called when this is NULL. Avoid segfaults by replacing these with
-+ * more common prints
-+ */
- #ifdef __GNUC__
--#define printerrf(format, args...) snprintf(this->err_str, MAX_ERR_LEN, format, ## args);
-+#define printerrf(format, args...) \
-+ do { \
-+ if ( ! this ) fprintf(stderr, "Missing 'this' pointer while erroring:" format "\n", ## args); \
-+ else snprintf(this->err_str, MAX_ERR_LEN, format, ## args); \
-+ } while(0);
- #else
- #ifdef _MSC_VER
- #define printerrf(str) snprintf(this->err_str, MAX_ERR_LEN, str);
- #else
--#define printerrf(...) snprintf(this->err_str, MAX_ERR_LEN, __VA_ARGS__);
-+#define printerrf(...) \
-+ do { \
-+ if ( ! this ) { \
-+ fprintf(stderr, "Missing 'this' pointer while erroring:"); \
-+ fprintf(stderr, __VA_ARGS__); \
-+ fprintf(stderr, "\n"); \
-+ } else { \
-+ snprintf(this->err_str, MAX_ERR_LEN, __VA_ARGS__); \
-+ } \
-+ } while(0);
- #endif /* WIN32 */
- #endif
--#define printerr(str) strncpy(this->err_str, str, MAX_ERR_LEN);
-+#define printerr(str) \
-+ do { \
-+ if ( ! this ) { \
-+ fprintf(stderr, "Missing 'this' pointer while erroring: %s\n", str); \
-+ } else { \
-+ strncpy(this->err_str, str, MAX_ERR_LEN); \
-+ } \
-+ } while(0);
-
- #endif /* DVDNAV_INTERNAL_H_INCLUDED */
-diff -Naur libdvdnav-0.1.10-org/src/dvdread/bswap.h libdvdnav-0.1.10/src/dvdread/bswap.h
---- libdvdnav-0.1.10-org/src/dvdread/bswap.h 2004-01-11 22:43:13.000000000 +0100
-+++ libdvdnav-0.1.10/src/dvdread/bswap.h 2008-01-23 06:11:52.000000000 +0100
-@@ -3,7 +3,7 @@
-
- /*
- * Copyright (C) 2000, 2001 Billy Biggs <vektor@dumbterm.net>,
-- * Håkan Hjort <d95hjort@dtek.chalmers.se>
-+ * Håkan Hjort <d95hjort@dtek.chalmers.se>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
-@@ -35,12 +35,24 @@
- #include <sys/param.h>
- #endif
-
--#if defined(__linux__)
-+#if defined(__linux__) || defined(__GLIBC__)
- #include <byteswap.h>
- #define B2N_16(x) x = bswap_16(x)
- #define B2N_32(x) x = bswap_32(x)
- #define B2N_64(x) x = bswap_64(x)
-
-+#elif defined(__SVR4) && defined(__sun)
-+#include <sys/byteorder.h>
-+#define B2N_16(x) x = BSWAP_16(x)
-+#define B2N_32(x) x = BSWAP_32(x)
-+#define B2N_64(x) x = BSWAP_64(x)
-+
-+#elif defined(__APPLE__)
-+#include <libkern/OSByteOrder.h>
-+#define B2N_16(x) x = OSSwapBigToHostInt16(x)
-+#define B2N_32(x) x = OSSwapBigToHostInt32(x)
-+#define B2N_64(x) x = OSSwapBigToHostInt64(x)
-+
- #elif defined(__NetBSD__)
- #include <sys/endian.h>
- #define B2N_16(x) BE16TOH(x)
-@@ -61,11 +73,11 @@
-
- /* This is a slow but portable implementation, it has multiple evaluation
- * problems so beware.
-- * Old FreeBSD's and Solaris don't have <byteswap.h> or any other such
-+ * Old FreeBSD and Windows don't have <byteswap.h> or any other such
- * functionality!
- */
-
--#elif defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32) || defined(__CYGWIN__)
-+#elif defined(__FreeBSD__) || defined(__bsdi__) || defined(WIN32) || defined(__CYGWIN__)
- #define B2N_16(x) \
- x = ((((x) & 0xff00) >> 8) | \
- (((x) & 0x00ff) << 8))
-diff -Naur libdvdnav-0.1.10-org/src/dvdread/dvd_input.c libdvdnav-0.1.10/src/dvdread/dvd_input.c
---- libdvdnav-0.1.10-org/src/dvdread/dvd_input.c 2004-04-09 14:15:26.000000000 +0200
-+++ libdvdnav-0.1.10/src/dvdread/dvd_input.c 2008-01-23 06:11:52.000000000 +0100
-@@ -1,6 +1,6 @@
- /*
- * Copyright (C) 2002 Samuel Hocevar <sam@zoy.org>,
-- * Håkan Hjort <d95hjort@dtek.chalmers.se>
-+ * Håkan Hjort <d95hjort@dtek.chalmers.se>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
-@@ -35,6 +35,7 @@
- int (*dvdinput_title) (dvd_input_t, int);
- int (*dvdinput_read) (dvd_input_t, void *, int, int);
- char * (*dvdinput_error) (dvd_input_t);
-+int (*dvdinput_is_encrypted) (dvd_input_t);
-
- #ifdef HAVE_DVDCSS_DVDCSS_H
- /* linking to libdvdcss */
-@@ -55,6 +56,73 @@
- #include "../../msvc/contrib/dlfcn.c"
- #endif
-
-+/* Copied from css.h */
-+#define KEY_SIZE 5
-+
-+typedef uint8_t dvd_key_t[KEY_SIZE];
-+
-+typedef struct dvd_title_s
-+{
-+ int i_startlb;
-+ dvd_key_t p_key;
-+ struct dvd_title_s *p_next;
-+} dvd_title_t;
-+
-+typedef struct css_s
-+{
-+ int i_agid; /* Current Authenication Grant ID. */
-+ dvd_key_t p_bus_key; /* Current session key. */
-+ dvd_key_t p_disc_key; /* This DVD disc's key. */
-+ dvd_key_t p_title_key; /* Current title key. */
-+} css_t;
-+
-+/* Copied from libdvdcss.h */
-+
-+#ifndef PATH_MAX
-+#define PATH_MAX 4096
-+#endif
-+
-+struct dvdcss_s
-+{
-+ /* File descriptor */
-+ char * psz_device;
-+ int i_fd;
-+ int i_read_fd;
-+ int i_pos;
-+
-+ /* File handling */
-+ void *pf_seek;
-+ void *pf_read;
-+ void *pf_readv;
-+
-+ /* Decryption stuff */
-+ int i_method;
-+ css_t css;
-+ int b_ioctls;
-+ int b_scrambled;
-+ dvd_title_t *p_titles;
-+
-+ /* Key cache directory and pointer to the filename */
-+ char psz_cachefile[PATH_MAX];
-+ char * psz_block;
-+
-+ /* Error management */
-+ char * psz_error;
-+ int b_errors;
-+ int b_debug;
-+
-+#ifdef WIN32
-+ int b_file;
-+ char * p_readv_buffer;
-+ int i_readv_buf_size;
-+#endif
-+
-+#ifndef WIN32
-+ int i_raw_fd;
-+#endif
-+};
-+
-+
- typedef struct dvdcss_s *dvdcss_handle;
- static dvdcss_handle (*DVDcss_open) (const char *);
- static int (*DVDcss_close) (dvdcss_handle);
-@@ -149,8 +217,13 @@
- return 0;
- }
-
--
--
-+static int css_is_encrypted (dvd_input_t dev)
-+{
-+ if (dev->dvdcss == NULL) {
-+ return 0;
-+ }
-+ return dev->dvdcss->b_scrambled;
-+}
-
-
-
-@@ -269,6 +342,10 @@
- return 0;
- }
-
-+static int file_is_encrypted (dvd_input_t dev)
-+{
-+ return 0;
-+}
-
- /**
- * Setup read functions with either libdvdcss or minimal DVD access.
-@@ -287,10 +364,12 @@
- #else
- /* dlopening libdvdcss */
-
--#ifndef WIN32
-- dvdcss_library = dlopen("libdvdcss.so.2", RTLD_LAZY);
--#else
-+#ifdef HOST_OS_DARWIN
-+ dvdcss_library = dlopen("libdvdcss.2.dylib", RTLD_LAZY);
-+#elif defined(WIN32)
- dvdcss_library = dlopen("libdvdcss.dll", RTLD_LAZY);
-+#else
-+ dvdcss_library = dlopen("libdvdcss.so.2", RTLD_LAZY);
- #endif
-
- if(dvdcss_library != NULL) {
-@@ -323,7 +402,7 @@
- dvdcss_library = NULL;
- } else if(!DVDcss_open || !DVDcss_close || !DVDcss_title || !DVDcss_seek
- || !DVDcss_read || !DVDcss_error || !dvdcss_version) {
-- fprintf(stderr, "libdvdread: Missing symbols in libdvdcss.so.2, "
-+ fprintf(stderr, "libdvdread: Missing symbols in libdvdcss, "
- "this shouldn't happen !\n");
- dlclose(dvdcss_library);
- }
-@@ -347,6 +426,7 @@
- dvdinput_title = css_title;
- dvdinput_read = css_read;
- dvdinput_error = css_error;
-+ dvdinput_is_encrypted = css_is_encrypted;
- return 1;
-
- } else {
-@@ -359,6 +439,7 @@
- dvdinput_title = file_title;
- dvdinput_read = file_read;
- dvdinput_error = file_error;
-+ dvdinput_is_encrypted = file_is_encrypted;
- return 0;
- }
- }
-diff -Naur libdvdnav-0.1.10-org/src/dvdread/dvd_input.h libdvdnav-0.1.10/src/dvdread/dvd_input.h
---- libdvdnav-0.1.10-org/src/dvdread/dvd_input.h 2004-01-11 22:43:13.000000000 +0100
-+++ libdvdnav-0.1.10/src/dvdread/dvd_input.h 2008-01-23 06:11:52.000000000 +0100
-@@ -3,7 +3,7 @@
-
- /*
- * Copyright (C) 2001, 2002 Samuel Hocevar <sam@zoy.org>,
-- * Håkan Hjort <d95hjort@dtek.chalmers.se>
-+ * Håkan Hjort <d95hjort@dtek.chalmers.se>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
-@@ -38,6 +38,7 @@
- extern int (*dvdinput_title) (dvd_input_t, int);
- extern int (*dvdinput_read) (dvd_input_t, void *, int, int);
- extern char * (*dvdinput_error) (dvd_input_t);
-+extern int (*dvdinput_is_encrypted) (dvd_input_t);
-
- /**
- * Setup function accessed by dvd_reader.c. Returns 1 if there is CSS support.
-diff -Naur libdvdnav-0.1.10-org/src/dvdread/dvd_reader.c libdvdnav-0.1.10/src/dvdread/dvd_reader.c
---- libdvdnav-0.1.10-org/src/dvdread/dvd_reader.c 2004-03-03 17:48:36.000000000 +0100
-+++ libdvdnav-0.1.10/src/dvdread/dvd_reader.c 2008-03-17 17:18:01.000000000 +0100
-@@ -1,7 +1,7 @@
- /*
-- * Copyright (C) 2001, 2002, 2003 Billy Biggs <vektor@dumbterm.net>,
-- * Håkan Hjort <d95hjort@dtek.chalmers.se>,
-- * Björn Englund <d4bjorn@dtek.chalmers.se>
-+ * Copyright (C) 2001-2004 Billy Biggs <vektor@dumbterm.net>,
-+ * Håkan Hjort <d95hjort@dtek.chalmers.se>,
-+ * Björn Englund <d4bjorn@dtek.chalmers.se>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
-@@ -32,11 +32,16 @@
- #include <limits.h>
- #include <dirent.h>
-
--/* misc win32 helpers */
--#ifdef WIN32
-+#ifndef HAVE_GETTIMEOFDAY
-+# ifdef WIN32
-+# include <winsock.h>
-+struct timezone;
-+# else
-+# include <sys/time.h>
-+# endif
- /* replacement gettimeofday implementation */
- #include <sys/timeb.h>
--static inline int gettimeofday( struct timeval *tv, void *tz )
-+static inline int _private_gettimeofday( struct timeval *tv, void *tz )
- {
- struct timeb t;
- ftime( &t );
-@@ -44,11 +49,16 @@
- tv->tv_usec = t.millitm * 1000;
- return 0;
- }
-+#define gettimeofday(TV, TZ) _private_gettimeofday((TV), (TZ))
-+#endif
-+
-+/* misc win32 helpers */
-+#ifdef WIN32
- #include <io.h> /* read() */
- #define lseek64 _lseeki64
- #endif
-
--#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__bsdi__)|| defined(__DARWIN__)
-+#if defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__bsdi__)|| defined(__DARWIN__)
- #define SYS_BSD 1
- #endif
-
-@@ -478,6 +489,13 @@
- me->mnt_fsname,
- me->mnt_dir );
- auth_drive = DVDOpenImageFile( me->mnt_fsname, have_css );
-+ /* If the device is not encrypted, don't access the device
-+ * directly as it would fail for non-UDF DVDs */
-+ if ( auth_drive && dvdinput_is_encrypted( auth_drive->dev ) == 0) {
-+ DVDClose( auth_drive );
-+ auth_drive = NULL;
-+ break;
-+ }
- dev_name = strdup(me->mnt_fsname);
- break;
- }
-@@ -585,10 +603,12 @@
- sprintf( filename, "%s%s%s", path,
- ( ( path[ strlen( path ) - 1 ] == '/' ) ? "" : "/" ),
- ent->d_name );
-+ closedir (dir);
- return 0;
- }
- }
-
-+ closedir (dir);
- return -1;
- }
-
-@@ -1017,6 +1037,28 @@
- return offset;
- }
-
-+int32_t DVDFileSeekForce( dvd_file_t *dvd_file, int offset, int force_size )
-+{
-+ /* Check arguments. */
-+ if( dvd_file == NULL || offset < 0 )
-+ return -1;
-+
-+ if( dvd_file->dvd->isImageFile ) {
-+ if( force_size < 0 )
-+ force_size = (offset - 1) / DVD_VIDEO_LB_LEN + 1;
-+ if( dvd_file->filesize < force_size) {
-+ dvd_file->filesize = force_size;
-+ fprintf(stderr, "libdvdread: Ignored UDF provided size of file.\n");
-+ }
-+ }
-+
-+ if( offset > dvd_file->filesize * DVD_VIDEO_LB_LEN ) {
-+ return -1;
-+ }
-+ dvd_file->seek_pos = (uint32_t) offset;
-+ return offset;
-+}
-+
- ssize_t DVDReadBytes( dvd_file_t *dvd_file, void *data, size_t byte_size )
- {
- unsigned char *secbuf_base, *secbuf;
-@@ -1057,7 +1099,7 @@
- memcpy( data, &(secbuf[ seek_byte ]), byte_size );
- free( secbuf_base );
-
-- dvd_file->seek_pos += byte_size;
-+ DVDFileSeekForce(dvd_file, dvd_file->seek_pos + byte_size, -1);
- return byte_size;
- }
-
-diff -Naur libdvdnav-0.1.10-org/src/dvdread/dvd_reader.h libdvdnav-0.1.10/src/dvdread/dvd_reader.h
---- libdvdnav-0.1.10-org/src/dvdread/dvd_reader.h 2004-02-01 18:55:19.000000000 +0100
-+++ libdvdnav-0.1.10/src/dvdread/dvd_reader.h 2008-03-28 15:24:50.000000000 +0100
-@@ -3,8 +3,8 @@
-
- /*
- * Copyright (C) 2001, 2002 Billy Biggs <vektor@dumbterm.net>,
-- * Håkan Hjort <d95hjort@dtek.chalmers.se>,
-- * Björn Englund <d4bjorn@dtek.chalmers.se>
-+ * Håkan Hjort <d95hjort@dtek.chalmers.se>,
-+ * Björn Englund <d4bjorn@dtek.chalmers.se>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
-@@ -21,9 +21,11 @@
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
--#ifdef _MSC_VER
-+#ifdef HAVE_CONFIG_H
- #include <config.h>
-+#endif
-
-+#ifdef _MSC_VER
- #include <stdio.h>
- #include <stdlib.h>
- #endif
-@@ -169,6 +171,8 @@
- */
- int32_t DVDFileSeek( dvd_file_t *, int32_t );
-
-+int32_t DVDFileSeekForce( dvd_file_t *, int, int );
-+
- /**
- * Reads the given number of bytes from the file. This call can only be used
- * on the information files, and may not be used for reading from a VOB. This
-diff -Naur libdvdnav-0.1.10-org/src/dvdread/dvd_udf.c libdvdnav-0.1.10/src/dvdread/dvd_udf.c
---- libdvdnav-0.1.10-org/src/dvdread/dvd_udf.c 2004-03-03 17:48:36.000000000 +0100
-+++ libdvdnav-0.1.10/src/dvdread/dvd_udf.c 2008-03-07 15:19:43.000000000 +0100
-@@ -4,7 +4,7 @@
- *
- * Modifications by:
- * Billy Biggs <vektor@dumbterm.net>.
-- * Björn Englund <d4bjorn@dtek.chalmers.se>.
-+ * Björn Englund <d4bjorn@dtek.chalmers.se>.
- *
- * dvdudf: parse and read the UDF volume information of a DVD Video
- * Copyright (C) 1999 Christian Wolff for convergence integrated media
-diff -Naur libdvdnav-0.1.10-org/src/dvdread/dvd_udf.h libdvdnav-0.1.10/src/dvdread/dvd_udf.h
---- libdvdnav-0.1.10-org/src/dvdread/dvd_udf.h 2004-01-11 22:43:13.000000000 +0100
-+++ libdvdnav-0.1.10/src/dvdread/dvd_udf.h 2008-01-23 06:11:52.000000000 +0100
-@@ -7,7 +7,7 @@
- *
- * Modifications by:
- * Billy Biggs <vektor@dumbterm.net>.
-- * Björn Englund <d4bjorn@dtek.chalmers.se>.
-+ * Björn Englund <d4bjorn@dtek.chalmers.se>.
- *
- * dvdudf: parse and read the UDF volume information of a DVD Video
- * Copyright (C) 1999 Christian Wolff for convergence integrated media
-diff -Naur libdvdnav-0.1.10-org/src/dvdread/ifo_read.c libdvdnav-0.1.10/src/dvdread/ifo_read.c
---- libdvdnav-0.1.10-org/src/dvdread/ifo_read.c 2004-02-23 19:14:42.000000000 +0100
-+++ libdvdnav-0.1.10/src/dvdread/ifo_read.c 2008-03-17 17:18:01.000000000 +0100
-@@ -1,7 +1,7 @@
- /*
- * Copyright (C) 2000, 2001, 2002, 2003
-- * Björn Englund <d4bjorn@dtek.chalmers.se>,
-- * Håkan Hjort <d95hjort@dtek.chalmers.se>
-+ * Björn Englund <d4bjorn@dtek.chalmers.se>,
-+ * Håkan Hjort <d95hjort@dtek.chalmers.se>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
-@@ -93,6 +93,10 @@
- return (DVDFileSeek(dvd_file, (int)offset) == (int)offset);
- }
-
-+static inline int32_t DVDFileSeekForce_( dvd_file_t *dvd_file, uint32_t offset, int force_size ) {
-+ return (DVDFileSeekForce(dvd_file, (int)offset, force_size) == (int)offset);
-+}
-+
-
- ifo_handle_t *ifoOpen(dvd_reader_t *dvd, int title) {
- ifo_handle_t *ifofile;
-@@ -683,7 +687,7 @@
- pgc->command_tbl = NULL;
- }
-
-- if(pgc->program_map_offset != 0) {
-+ if(pgc->program_map_offset != 0 && pgc->nr_of_programs>0) {
- pgc->program_map = malloc(pgc->nr_of_programs * sizeof(pgc_program_map_t));
- if(!pgc->program_map) {
- ifoFree_PGC_COMMAND_TBL(pgc->command_tbl);
-@@ -699,7 +703,7 @@
- pgc->program_map = NULL;
- }
-
-- if(pgc->cell_playback_offset != 0) {
-+ if(pgc->cell_playback_offset != 0 && pgc->nr_of_cells>0) {
- pgc->cell_playback = malloc(pgc->nr_of_cells * sizeof(cell_playback_t));
- if(!pgc->cell_playback) {
- ifoFree_PGC_COMMAND_TBL(pgc->command_tbl);
-@@ -720,7 +724,7 @@
- pgc->cell_playback = NULL;
- }
-
-- if(pgc->cell_position_offset != 0) {
-+ if(pgc->cell_position_offset != 0 && pgc->nr_of_cells>0) {
- pgc->cell_position = malloc(pgc->nr_of_cells * sizeof(cell_position_t));
- if(!pgc->cell_position) {
- ifoFree_PGC(pgc);
-@@ -1507,7 +1511,7 @@
- unsigned int i;
- int info_length;
-
-- if(!DVDFileSeek_(ifofile->file, sector * DVD_BLOCK_LEN))
-+ if(!DVDFileSeekForce_(ifofile->file, sector * DVD_BLOCK_LEN, sector))
- return 0;
-
- if(!(DVDReadBytes(ifofile->file, vobu_admap, VOBU_ADMAP_SIZE)))
-diff -Naur libdvdnav-0.1.10-org/src/dvdread/ifo_read.h libdvdnav-0.1.10/src/dvdread/ifo_read.h
---- libdvdnav-0.1.10-org/src/dvdread/ifo_read.h 2004-01-11 22:43:13.000000000 +0100
-+++ libdvdnav-0.1.10/src/dvdread/ifo_read.h 2008-01-23 06:11:52.000000000 +0100
-@@ -2,8 +2,8 @@
- #define IFO_READ_H_INCLUDED
-
- /*
-- * Copyright (C) 2000, 2001, 2002 Björn Englund <d4bjorn@dtek.chalmers.se>,
-- * Håkan Hjort <d95hjort@dtek.chalmers.se>
-+ * Copyright (C) 2000, 2001, 2002 Björn Englund <d4bjorn@dtek.chalmers.se>,
-+ * Håkan Hjort <d95hjort@dtek.chalmers.se>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
-diff -Naur libdvdnav-0.1.10-org/src/dvdread/ifo_types.h libdvdnav-0.1.10/src/dvdread/ifo_types.h
---- libdvdnav-0.1.10-org/src/dvdread/ifo_types.h 2004-01-11 22:43:13.000000000 +0100
-+++ libdvdnav-0.1.10/src/dvdread/ifo_types.h 2008-01-23 06:11:52.000000000 +0100
-@@ -2,8 +2,8 @@
- #define IFO_TYPES_H_INCLUDED
-
- /*
-- * Copyright (C) 2000, 2001 Björn Englund <d4bjorn@dtek.chalmers.se>,
-- * Håkan Hjort <d95hjort@dtek.chalmers.se>
-+ * Copyright (C) 2000, 2001 Björn Englund <d4bjorn@dtek.chalmers.se>,
-+ * Håkan Hjort <d95hjort@dtek.chalmers.se>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
-diff -Naur libdvdnav-0.1.10-org/src/dvdread/md5.c libdvdnav-0.1.10/src/dvdread/md5.c
---- libdvdnav-0.1.10-org/src/dvdread/md5.c 2004-01-11 22:43:13.000000000 +0100
-+++ libdvdnav-0.1.10/src/dvdread/md5.c 2008-03-28 15:24:50.000000000 +0100
-@@ -26,14 +26,8 @@
-
- #include <sys/types.h>
-
--#if STDC_HEADERS || defined _LIBC
--# include <stdlib.h>
--# include <string.h>
--#else
--# ifndef HAVE_MEMCPY
--# define memcpy(d, s, n) bcopy ((s), (d), (n))
--# endif
--#endif
-+#include <stdlib.h>
-+#include <string.h>
-
- #include "md5.h"
- /* #include "unlocked-io.h" */
-diff -Naur libdvdnav-0.1.10-org/src/dvdread/nav_print.c libdvdnav-0.1.10/src/dvdread/nav_print.c
---- libdvdnav-0.1.10-org/src/dvdread/nav_print.c 2004-01-11 22:43:13.000000000 +0100
-+++ libdvdnav-0.1.10/src/dvdread/nav_print.c 2008-01-23 06:11:52.000000000 +0100
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 2000, 2001, 2002, 2003 Håkan Hjort <d95hjort@dtek.chalmers.se>
-+ * Copyright (C) 2000, 2001, 2002, 2003 Håkan Hjort <d95hjort@dtek.chalmers.se>
- *
- * Much of the contents in this file is based on VOBDUMP.
- *
-@@ -65,7 +65,8 @@
- printf("pci_gi:\n");
- printf("nv_pck_lbn 0x%08x\n", pci_gi->nv_pck_lbn);
- printf("vobu_cat 0x%04x\n", pci_gi->vobu_cat);
-- printf("vobu_uop_ctl 0x%08x\n", *(uint32_t*)&pci_gi->vobu_uop_ctl);
-+/* This will break strict aliasing, better avoid as this seems to be useless
-+ printf("vobu_uop_ctl 0x%08x\n", *(uint32_t*)&pci_gi->vobu_uop_ctl); */
- printf("vobu_s_ptm 0x%08x\n", pci_gi->vobu_s_ptm);
- printf("vobu_e_ptm 0x%08x\n", pci_gi->vobu_e_ptm);
- printf("vobu_se_e_ptm 0x%08x\n", pci_gi->vobu_se_e_ptm);
-diff -Naur libdvdnav-0.1.10-org/src/dvdread/nav_print.h libdvdnav-0.1.10/src/dvdread/nav_print.h
---- libdvdnav-0.1.10-org/src/dvdread/nav_print.h 2004-01-11 22:43:13.000000000 +0100
-+++ libdvdnav-0.1.10/src/dvdread/nav_print.h 2008-01-23 06:11:52.000000000 +0100
-@@ -3,7 +3,7 @@
-
- /*
- * Copyright (C) 2001, 2002 Billy Biggs <vektor@dumbterm.net>,
-- * Håkan Hjort <d95hjort@dtek.chalmers.se>
-+ * Håkan Hjort <d95hjort@dtek.chalmers.se>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
-diff -Naur libdvdnav-0.1.10-org/src/dvdread/nav_read.c libdvdnav-0.1.10/src/dvdread/nav_read.c
---- libdvdnav-0.1.10-org/src/dvdread/nav_read.c 2004-03-03 17:50:41.000000000 +0100
-+++ libdvdnav-0.1.10/src/dvdread/nav_read.c 2008-01-23 06:11:52.000000000 +0100
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 2000, 2001, 2002, 2003 Håkan Hjort <d95hjort@dtek.chalmers.se>
-+ * Copyright (C) 2000, 2001, 2002, 2003 Håkan Hjort <d95hjort@dtek.chalmers.se>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
-diff -Naur libdvdnav-0.1.10-org/src/dvdread/nav_read.h libdvdnav-0.1.10/src/dvdread/nav_read.h
---- libdvdnav-0.1.10-org/src/dvdread/nav_read.h 2004-01-11 22:43:13.000000000 +0100
-+++ libdvdnav-0.1.10/src/dvdread/nav_read.h 2008-01-23 06:11:52.000000000 +0100
-@@ -2,7 +2,7 @@
- #define NAV_READ_H_INCLUDED
-
- /*
-- * Copyright (C) 2000, 2001, 2002 Håkan Hjort <d95hjort@dtek.chalmers.se>.
-+ * Copyright (C) 2000, 2001, 2002 Håkan Hjort <d95hjort@dtek.chalmers.se>.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
-diff -Naur libdvdnav-0.1.10-org/src/dvdread/nav_types.h libdvdnav-0.1.10/src/dvdread/nav_types.h
---- libdvdnav-0.1.10-org/src/dvdread/nav_types.h 2004-01-11 22:43:13.000000000 +0100
-+++ libdvdnav-0.1.10/src/dvdread/nav_types.h 2008-01-23 06:11:52.000000000 +0100
-@@ -2,7 +2,7 @@
- #define NAV_TYPES_H_INCLUDED
-
- /*
-- * Copyright (C) 2000, 2001, 2002 Håkan Hjort <d95hjort@dtek.chalmers.se>
-+ * Copyright (C) 2000, 2001, 2002 Håkan Hjort <d95hjort@dtek.chalmers.se>
- *
- * The data structures in this file should represent the layout of the
- * pci and dsi packets as they are stored in the stream. Information
-diff -Naur libdvdnav-0.1.10-org/src/dvd_types.h libdvdnav-0.1.10/src/dvd_types.h
---- libdvdnav-0.1.10-org/src/dvd_types.h 2003-04-21 15:18:06.000000000 +0200
-+++ libdvdnav-0.1.10/src/dvd_types.h 2008-01-23 06:11:52.000000000 +0100
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 2000, 2001 Björn Englund, Håkan Hjort
-+ * Copyright (C) 2000, 2001 Björn Englund, Håkan Hjort
- *
- * This file is part of libdvdnav, a DVD navigation library. It is a modified
- * file originally part of the Ogle DVD player project.
-@@ -17,9 +17,6 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: dvd_types.h,v 1.7 2003/04/21 13:18:06 mroi Exp $
-- *
- */
-
- /*
-diff -Naur libdvdnav-0.1.10-org/src/highlight.c libdvdnav-0.1.10/src/highlight.c
---- libdvdnav-0.1.10-org/src/highlight.c 2004-01-20 02:22:24.000000000 +0100
-+++ libdvdnav-0.1.10/src/highlight.c 2008-03-28 15:24:50.000000000 +0100
-@@ -16,9 +16,6 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: highlight.c,v 1.32 2004/01/20 01:22:24 jcdutton Exp $
-- *
- */
-
- #ifdef HAVE_CONFIG_H
-diff -Naur libdvdnav-0.1.10-org/src/navigation.c libdvdnav-0.1.10/src/navigation.c
---- libdvdnav-0.1.10-org/src/navigation.c 2004-01-07 20:34:28.000000000 +0100
-+++ libdvdnav-0.1.10/src/navigation.c 2008-03-28 15:24:50.000000000 +0100
-@@ -16,9 +16,6 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: navigation.c,v 1.21 2004/01/07 19:34:28 mroi Exp $
-- *
- */
-
- #ifdef HAVE_CONFIG_H
-@@ -60,8 +57,8 @@
- printerr("Passed a NULL pointer.");
- return DVDNAV_STATUS_ERR;
- }
-- if(!this->started) {
-- printerr("Virtual DVD machine not started.");
-+ if (!this->vm->vmgi) {
-+ printerr("Bad VM state.");
- return DVDNAV_STATUS_ERR;
- }
-
-@@ -75,8 +72,8 @@
- printerr("Passed a NULL pointer.");
- return DVDNAV_STATUS_ERR;
- }
-- if(!this->started) {
-- printerr("Virtual DVD machine not started.");
-+ if (!this->vm->vmgi) {
-+ printerr("Bad VM state.");
- return DVDNAV_STATUS_ERR;
- }
- if ((title < 1) || (title > vm_get_vmgi(this->vm)->tt_srpt->nr_of_srpts) ) {
-@@ -103,6 +100,11 @@
- pthread_mutex_unlock(&this->vm_lock);
- return DVDNAV_STATUS_ERR;
- }
-+ if (!this->started) {
-+ printerr("Virtual DVD machine not started.");
-+ pthread_mutex_unlock(&this->vm_lock);
-+ return DVDNAV_STATUS_ERR;
-+ }
- if (!this->vm->state.pgc) {
- printerr("No current PGC.");
- pthread_mutex_unlock(&this->vm_lock);
-@@ -150,6 +152,11 @@
- pthread_mutex_unlock(&this->vm_lock);
- return DVDNAV_STATUS_ERR;
- }
-+ if (!this->started) {
-+ /* don't report an error but be nice */
-+ vm_start(this->vm);
-+ this->started = 1;
-+ }
- if (!this->vm->state.pgc) {
- printerr("No current PGC.");
- pthread_mutex_unlock(&this->vm_lock);
-diff -Naur libdvdnav-0.1.10-org/src/read_cache.c libdvdnav-0.1.10/src/read_cache.c
---- libdvdnav-0.1.10-org/src/read_cache.c 2004-03-03 17:48:36.000000000 +0100
-+++ libdvdnav-0.1.10/src/read_cache.c 2008-03-28 15:24:50.000000000 +0100
-@@ -17,9 +17,6 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: read_cache.c,v 1.30 2004/03/03 16:48:36 mroi Exp $
-- *
- */
- /*
- * There was a multithreaded read ahead cache in here for some time, but
-diff -Naur libdvdnav-0.1.10-org/src/read_cache.h libdvdnav-0.1.10/src/read_cache.h
---- libdvdnav-0.1.10-org/src/read_cache.h 2002-07-12 17:46:44.000000000 +0200
-+++ libdvdnav-0.1.10/src/read_cache.h 2008-01-23 06:11:52.000000000 +0100
-@@ -16,9 +16,6 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: read_cache.h,v 1.4 2002/07/12 15:46:44 mroi Exp $
-- *
- */
-
- #ifndef __DVDNAV_READ_CACHE_H
-diff -Naur libdvdnav-0.1.10-org/src/remap.c libdvdnav-0.1.10/src/remap.c
---- libdvdnav-0.1.10-org/src/remap.c 2003-08-27 15:54:19.000000000 +0200
-+++ libdvdnav-0.1.10/src/remap.c 2008-03-07 15:19:43.000000000 +0100
-@@ -14,22 +14,23 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: remap.c,v 1.4 2003/08/27 13:54:19 mroi Exp $
- */
-
- #include <stdlib.h>
- #include <string.h>
- #include <stdio.h>
-
--#ifndef _MSC_VER
-+#ifdef HAVE_SYS_PARAM_H
- #include <sys/param.h>
-+#endif
-+
-+#ifdef HAVE_SYS_FCNTL_H
- #include <sys/fcntl.h>
- #else
- #ifndef MAXPATHLEN
- #define MAXPATHLEN 255
- #endif
--#endif /* _MSC_VER */
-+#endif /* HAVE fcntl.h */
-
- #include <assert.h>
- #include "remap.h"
-@@ -190,10 +191,7 @@
-
- /* Build the map filename */
- home = getenv("HOME"); assert(home);
-- strncpy(fname, home, sizeof(fname));
-- strncat(fname, "/.dvdnav/", sizeof(fname));
-- strncat(fname, title, sizeof(fname));
-- strncat(fname, ".map", sizeof(fname));
-+ snprintf (fname, sizeof(fname), "%s/.dvdnav/%s.map", home, title);
-
- /* Open the map file */
- fp = fopen( fname, "r");
-diff -Naur libdvdnav-0.1.10-org/src/remap.h libdvdnav-0.1.10/src/remap.h
---- libdvdnav-0.1.10-org/src/remap.h 2003-02-20 16:32:19.000000000 +0100
-+++ libdvdnav-0.1.10/src/remap.h 2008-01-23 06:11:52.000000000 +0100
-@@ -14,8 +14,6 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: remap.h,v 1.2 2003/02/20 15:32:19 mroi Exp $
- */
-
- #ifndef __REMAP__H
-diff -Naur libdvdnav-0.1.10-org/src/searching.c libdvdnav-0.1.10/src/searching.c
---- libdvdnav-0.1.10-org/src/searching.c 2004-01-07 20:35:12.000000000 +0100
-+++ libdvdnav-0.1.10/src/searching.c 2008-03-28 15:24:50.000000000 +0100
-@@ -16,9 +16,6 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: searching.c,v 1.35 2004/01/07 19:35:12 mroi Exp $
-- *
- */
-
- #ifdef HAVE_CONFIG_H
-@@ -27,6 +24,7 @@
-
- #include <assert.h>
- #include "dvdnav_internal.h"
-+#include "dvdnav.h"
-
- /*
- #define LOG_DEBUG
-@@ -34,12 +32,6 @@
-
- /* Searching API calls */
-
--dvdnav_status_t dvdnav_time_search(dvdnav_t *this,
-- uint64_t time) {
-- /* FIXME: Time search the current PGC based on the xxx table */
-- return DVDNAV_STATUS_OK;
--}
--
- /* Scan the ADMAP for a particular block number. */
- /* Return placed in vobu. */
- /* Returns error status */
-@@ -101,6 +93,86 @@
- return DVDNAV_STATUS_ERR;
- }
-
-+dvdnav_status_t dvdnav_time_search(dvdnav_t *this,
-+ uint64_t time) {
-+
-+ uint64_t target = time;
-+ uint64_t length = 0;
-+ uint32_t first_cell_nr, last_cell_nr, cell_nr;
-+ int32_t found;
-+ cell_playback_t *cell;
-+ dvd_state_t *state;
-+
-+ if(this->position_current.still != 0) {
-+ printerr("Cannot seek in a still frame.");
-+ return DVDNAV_STATUS_ERR;
-+ }
-+
-+ pthread_mutex_lock(&this->vm_lock);
-+ state = &(this->vm->state);
-+ if(!state->pgc) {
-+ printerr("No current PGC.");
-+ pthread_mutex_unlock(&this->vm_lock);
-+ return DVDNAV_STATUS_ERR;
-+ }
-+
-+
-+ if (this->pgc_based) {
-+ first_cell_nr = 1;
-+ last_cell_nr = state->pgc->nr_of_cells;
-+ } else {
-+ /* Find start cell of program. */
-+ first_cell_nr = state->pgc->program_map[state->pgN-1];
-+ /* Find end cell of program */
-+ if(state->pgN < state->pgc->nr_of_programs)
-+ last_cell_nr = state->pgc->program_map[state->pgN] - 1;
-+ else
-+ last_cell_nr = state->pgc->nr_of_cells;
-+ }
-+
-+ found = 0;
-+ for(cell_nr = first_cell_nr; (cell_nr <= last_cell_nr) && !found; cell_nr ++) {
-+ cell = &(state->pgc->cell_playback[cell_nr-1]);
-+ length = dvdnav_convert_time(&cell->playback_time);
-+ if (target >= length) {
-+ target -= length;
-+ } else {
-+ /* FIXME: there must be a better way than interpolation */
-+ target = target * (cell->last_sector - cell->first_sector + 1) / length;
-+ target += cell->first_sector;
-+
-+ found = 1;
-+ break;
-+ }
-+ }
-+
-+ if(found) {
-+ int32_t vobu;
-+#ifdef LOG_DEBUG
-+ fprintf(MSG_OUT, "libdvdnav: Seeking to cell %i from choice of %i to %i\n",
-+ cell_nr, first_cell_nr, last_cell_nr);
-+#endif
-+ if (dvdnav_scan_admap(this, state->domain, target, &vobu) == DVDNAV_STATUS_OK) {
-+ int32_t start = state->pgc->cell_playback[cell_nr-1].first_sector;
-+
-+ if (vm_jump_cell_block(this->vm, cell_nr, vobu - start)) {
-+#ifdef LOG_DEBUG
-+ fprintf(MSG_OUT, "libdvdnav: After cellN=%u blockN=%u target=%x vobu=%x start=%x\n" ,
-+ state->cellN, state->blockN, target, vobu, start);
-+#endif
-+ this->vm->hop_channel += HOP_SEEK;
-+ pthread_mutex_unlock(&this->vm_lock);
-+ return DVDNAV_STATUS_OK;
-+ }
-+ }
-+ }
-+
-+ fprintf(MSG_OUT, "libdvdnav: Error when seeking\n");
-+ printerr("Error when seeking.");
-+ pthread_mutex_unlock(&this->vm_lock);
-+ return DVDNAV_STATUS_ERR;
-+}
-+
- dvdnav_status_t dvdnav_sector_search(dvdnav_t *this,
- uint64_t offset, int32_t origin) {
- uint32_t target = 0;
-diff -Naur libdvdnav-0.1.10-org/src/settings.c libdvdnav-0.1.10/src/settings.c
---- libdvdnav-0.1.10-org/src/settings.c 2003-12-31 22:37:16.000000000 +0100
-+++ libdvdnav-0.1.10/src/settings.c 2008-03-28 15:24:50.000000000 +0100
-@@ -16,9 +16,6 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: settings.c,v 1.9 2003/12/31 21:37:16 jcdutton Exp $
-- *
- */
-
- #ifdef HAVE_CONFIG_H
-diff -Naur libdvdnav-0.1.10-org/src/vm/decoder.c libdvdnav-0.1.10/src/vm/decoder.c
---- libdvdnav-0.1.10-org/src/vm/decoder.c 2004-03-03 17:50:42.000000000 +0100
-+++ libdvdnav-0.1.10/src/vm/decoder.c 2008-03-28 15:24:50.000000000 +0100
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 2000, 2001 Martin Norbäck, Håkan Hjort
-+ * Copyright (C) 2000, 2001 Martin Norbäck, Håkan Hjort
- * 2002-2004 the dvdnav project
- *
- * This file is part of libdvdnav, a DVD navigation library. It is modified
-@@ -18,9 +18,6 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: decoder.c,v 1.2 2004/03/03 16:50:42 mroi Exp $
-- *
- */
-
- #ifdef HAVE_CONFIG_H
-diff -Naur libdvdnav-0.1.10-org/src/vm/decoder.h libdvdnav-0.1.10/src/vm/decoder.h
---- libdvdnav-0.1.10-org/src/vm/decoder.h 2004-01-11 22:43:13.000000000 +0100
-+++ libdvdnav-0.1.10/src/vm/decoder.h 2008-01-23 06:11:52.000000000 +0100
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 2000, 2001 Martin Norbäck, Håkan Hjort
-+ * Copyright (C) 2000, 2001 Martin Norbäck, Håkan Hjort
- *
- * This file is part of libdvdnav, a DVD navigation library. It is modified
- * from a file originally part of the Ogle DVD player.
-@@ -17,9 +17,6 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: decoder.h,v 1.1 2004/01/11 21:43:13 mroi Exp $
-- *
- */
-
- #ifndef DECODER_H_INCLUDED
-diff -Naur libdvdnav-0.1.10-org/src/vm/vm.c libdvdnav-0.1.10/src/vm/vm.c
---- libdvdnav-0.1.10-org/src/vm/vm.c 2004-05-21 21:32:25.000000000 +0200
-+++ libdvdnav-0.1.10/src/vm/vm.c 2008-03-28 15:24:50.000000000 +0100
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 2000, 2001 Håkan Hjort
-+ * Copyright (C) 2000, 2001 Håkan Hjort
- * Copyright (C) 2001 Rich Wareham <richwareham@users.sourceforge.net>
- * 2002-2004 the dvdnav project
- *
-@@ -19,9 +19,6 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: vm.c,v 1.6 2004/05/21 19:32:25 mroi Exp $
-- *
- */
-
- #ifdef HAVE_CONFIG_H
-@@ -184,9 +181,9 @@
- }
- }
-
--static void ifoOpenNewVTSI(vm_t *vm, dvd_reader_t *dvd, int vtsN) {
-+static int ifoOpenNewVTSI(vm_t *vm, dvd_reader_t *dvd, int vtsN) {
- if((vm->state).vtsN == vtsN) {
-- return; /* We alread have it */
-+ return 1; /* We alread have it */
- }
-
- if(vm->vtsi != NULL)
-@@ -194,30 +191,32 @@
-
- vm->vtsi = ifoOpenVTSI(dvd, vtsN);
- if(vm->vtsi == NULL) {
-- fprintf(MSG_OUT, "libdvdnav: ifoOpenVTSI failed - CRASHING!!!\n");
-- assert(0);
-+ fprintf(MSG_OUT, "libdvdnav: ifoOpenVTSI failed\n");
-+ return 0;
- }
- if(!ifoRead_VTS_PTT_SRPT(vm->vtsi)) {
-- fprintf(MSG_OUT, "libdvdnav: ifoRead_VTS_PTT_SRPT failed - CRASHING!!!\n");
-- assert(0);
-+ fprintf(MSG_OUT, "libdvdnav: ifoRead_VTS_PTT_SRPT failed\n");
-+ return 0;
- }
- if(!ifoRead_PGCIT(vm->vtsi)) {
-- fprintf(MSG_OUT, "libdvdnav: ifoRead_PGCIT failed - CRASHING!!!\n");
-- assert(0);
-+ fprintf(MSG_OUT, "libdvdnav: ifoRead_PGCIT failed\n");
-+ return 0;
- }
- if(!ifoRead_PGCI_UT(vm->vtsi)) {
-- fprintf(MSG_OUT, "libdvdnav: ifoRead_PGCI_UT failed - CRASHING!!!\n");
-- assert(0);
-+ fprintf(MSG_OUT, "libdvdnav: ifoRead_PGCI_UT failed\n");
-+ return 0;
- }
- if(!ifoRead_VOBU_ADMAP(vm->vtsi)) {
-- fprintf(MSG_OUT, "libdvdnav: ifoRead_VOBU_ADMAP vtsi failed - CRASHING\n");
-- assert(0);
-+ fprintf(MSG_OUT, "libdvdnav: ifoRead_VOBU_ADMAP vtsi failed\n");
-+ return 0;
- }
- if(!ifoRead_TITLE_VOBU_ADMAP(vm->vtsi)) {
-- fprintf(MSG_OUT, "libdvdnav: ifoRead_TITLE_VOBU_ADMAP vtsi failed - CRASHING\n");
-- assert(0);
-+ fprintf(MSG_OUT, "libdvdnav: ifoRead_TITLE_VOBU_ADMAP vtsi failed\n");
-+ return 0;
- }
- (vm->state).vtsN = vtsN;
-+
-+ return 1;
- }
-
-
-@@ -253,10 +252,11 @@
-
- /* Basic Handling */
-
--void vm_start(vm_t *vm) {
-+int vm_start(vm_t *vm) {
- /* Set pgc to FP (First Play) pgc */
- set_FP_PGC(vm);
- process_command(vm, play_PGC(vm));
-+ return !vm->stopped;
- }
-
- void vm_stop(vm_t *vm) {
-@@ -382,7 +382,8 @@
- vtsN = (target->state).vtsN;
- if (vtsN > 0) {
- (target->state).vtsN = 0;
-- ifoOpenNewVTSI(target, target->dvd, vtsN);
-+ if (!ifoOpenNewVTSI(target, target->dvd, vtsN))
-+ assert(0);
-
- /* restore pgc pointer into the new vtsi */
- if (!set_PGCN(target, pgcN))
-@@ -712,8 +713,8 @@
- }
- }
-
-- if((vm->state).domain != VTS_DOMAIN && streamN == -1)
-- streamN = 0;
-+ if((vm->state).domain != VTS_DOMAIN && streamN == -1)
-+ streamN = 0;
-
- /* FIXME: Should also check in vtsi/vmgi status what kind of stream it is. */
- return streamN;
-@@ -1280,9 +1281,10 @@
- if(link_values.data1 != 0)
- (vm->state).HL_BTNN_REG = link_values.data1 << 10;
- assert((vm->state).pgc->next_pgc_nr != 0);
-- if(!set_PGCN(vm, (vm->state).pgc->next_pgc_nr))
-- assert(0);
-- link_values = play_PGC(vm);
-+ if(set_PGCN(vm, (vm->state).pgc->next_pgc_nr))
-+ link_values = play_PGC(vm);
-+ else
-+ link_values.command = Exit;
- break;
- case LinkPrevPGC:
- /* Link to Previous Program Chain */
-@@ -1290,9 +1292,10 @@
- if(link_values.data1 != 0)
- (vm->state).HL_BTNN_REG = link_values.data1 << 10;
- assert((vm->state).pgc->prev_pgc_nr != 0);
-- if(!set_PGCN(vm, (vm->state).pgc->prev_pgc_nr))
-- assert(0);
-- link_values = play_PGC(vm);
-+ if(set_PGCN(vm, (vm->state).pgc->prev_pgc_nr))
-+ link_values = play_PGC(vm);
-+ else
-+ link_values.command = Exit;
- break;
- case LinkGoUpPGC:
- /* Link to GoUp Program Chain */
-@@ -1300,9 +1303,10 @@
- if(link_values.data1 != 0)
- (vm->state).HL_BTNN_REG = link_values.data1 << 10;
- assert((vm->state).pgc->goup_pgc_nr != 0);
-- if(!set_PGCN(vm, (vm->state).pgc->goup_pgc_nr))
-- assert(0);
-- link_values = play_PGC(vm);
-+ if(set_PGCN(vm, (vm->state).pgc->goup_pgc_nr))
-+ link_values = play_PGC(vm);
-+ else
-+ link_values.command = Exit;
- break;
- case LinkTailPGC:
- /* Link to Tail of Program Chain */
-@@ -1325,7 +1329,8 @@
- }
-
- (vm->state).domain = VTS_DOMAIN;
-- ifoOpenNewVTSI(vm, vm->dvd, (vm->state).rsm_vtsN);
-+ if (!ifoOpenNewVTSI(vm, vm->dvd, (vm->state).rsm_vtsN))
-+ assert(0);
- set_PGCN(vm, (vm->state).rsm_pgcN);
-
- /* These should never be set in SystemSpace and/or MenuSpace */
-@@ -1343,10 +1348,11 @@
- (vm->state).pgN = 1;
- link_values = play_PG(vm);
- } else {
-- /* (vm->state).pgN = ?? this gets the righ value in set_PGN() below */
-+ /* (vm->state).pgN = ?? this gets the right value in set_PGN() below */
- (vm->state).cellN = (vm->state).rsm_cellN;
- link_values.command = PlayThis;
-- link_values.data1 = (vm->state).rsm_blockN;
-+ link_values.data1 = (vm->state).rsm_blockN & 0xffff;
-+ link_values.data2 = (vm->state).rsm_blockN >> 16;
- if(!set_PGN(vm)) {
- /* Were at the end of the PGC, should not happen for a RSM */
- assert(0);
-@@ -1403,9 +1409,10 @@
- /* Stop SPRM9 Timer */
- /* Set SPRM1 and SPRM2 */
- assert((vm->state).domain == VMGM_DOMAIN || (vm->state).domain == FP_DOMAIN); /* ?? */
-- if(!set_TT(vm, link_values.data1))
-- assert(0);
-- link_values = play_PGC(vm);
-+ if(set_TT(vm, link_values.data1))
-+ link_values = play_PGC(vm);
-+ else
-+ link_values.command = Exit;
- break;
- case JumpVTS_TT:
- /* Jump to Title:data1 in same VTS Title Domain */
-@@ -1462,7 +1469,8 @@
- /* the normal case */
- assert((vm->state).domain == VMGM_DOMAIN || (vm->state).domain == FP_DOMAIN); /* ?? */
- (vm->state).domain = VTSM_DOMAIN;
-- ifoOpenNewVTSI(vm, vm->dvd, link_values.data1); /* Also sets (vm->state).vtsN */
-+ if (!ifoOpenNewVTSI(vm, vm->dvd, link_values.data1)) /* Also sets (vm->state).vtsN */
-+ assert(0);
- } else {
- /* This happens on some discs like "Captain Scarlet & the Mysterons" or
- * the German RC2 of "Anatomie" in VTSM. */
-@@ -1549,7 +1557,7 @@
- #endif
-
- }
-- (vm->state).blockN = link_values.data1;
-+ (vm->state).blockN = link_values.data1 | (link_values.data2 << 16);
- return 1;
- }
-
-@@ -1575,8 +1583,9 @@
-
- (vm->state).domain = VTS_DOMAIN;
-
-- if(vtsN != (vm->state).vtsN)
-- ifoOpenNewVTSI(vm, vm->dvd, vtsN); /* Also sets (vm->state).vtsN */
-+ if (vtsN != (vm->state).vtsN)
-+ if (!ifoOpenNewVTSI(vm, vm->dvd, vtsN)) /* Also sets (vm->state).vtsN */
-+ return 0;
-
- if ((vts_ttn < 1) || (vts_ttn > vm->vtsi->vts_ptt_srpt->nr_of_srpts) ||
- (part < 1) || (part > vm->vtsi->vts_ptt_srpt->title[vts_ttn - 1].nr_of_ptts) ) {
-@@ -1601,6 +1610,9 @@
-
- static int set_FP_PGC(vm_t *vm) {
- (vm->state).domain = FP_DOMAIN;
-+ if (!vm->vmgi->first_play_pgc) {
-+ return set_PGCN(vm, 1);
-+ }
- (vm->state).pgc = vm->vmgi->first_play_pgc;
- (vm->state).pgcN = vm->vmgi->vmgi_mat->first_play_pgc;
- return 1;
-diff -Naur libdvdnav-0.1.10-org/src/vm/vmcmd.c libdvdnav-0.1.10/src/vm/vmcmd.c
---- libdvdnav-0.1.10-org/src/vm/vmcmd.c 2004-03-03 17:50:42.000000000 +0100
-+++ libdvdnav-0.1.10/src/vm/vmcmd.c 2008-03-28 15:24:50.000000000 +0100
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 2000, 2001 Martin Norbäck, Håkan Hjort
-+ * Copyright (C) 2000, 2001 Martin Norbäck, Håkan Hjort
- * 2002-2004 the dvdnav project
- *
- * This file is part of libdvdnav, a DVD navigation library. It is modified
-@@ -18,9 +18,6 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: vmcmd.c,v 1.2 2004/03/03 16:50:42 mroi Exp $
-- *
- */
-
- #ifdef HAVE_CONFIG_H
-diff -Naur libdvdnav-0.1.10-org/src/vm/vmcmd.h libdvdnav-0.1.10/src/vm/vmcmd.h
---- libdvdnav-0.1.10-org/src/vm/vmcmd.h 2004-01-11 22:43:13.000000000 +0100
-+++ libdvdnav-0.1.10/src/vm/vmcmd.h 2008-01-23 06:11:52.000000000 +0100
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 2000, 2001 Martin Norbäck, Håkan Hjort
-+ * Copyright (C) 2000, 2001 Martin Norbäck, Håkan Hjort
- *
- * This file is part of libdvdnav, a DVD navigation library. It is modified
- * from a file originally part of the Ogle DVD player.
-@@ -17,9 +17,6 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: vmcmd.h,v 1.1 2004/01/11 21:43:13 mroi Exp $
-- *
- */
-
- #ifndef VMCMD_H_INCLUDED
-diff -Naur libdvdnav-0.1.10-org/src/vm/vm.h libdvdnav-0.1.10/src/vm/vm.h
---- libdvdnav-0.1.10-org/src/vm/vm.h 2004-01-11 22:43:13.000000000 +0100
-+++ libdvdnav-0.1.10/src/vm/vm.h 2008-01-23 06:11:52.000000000 +0100
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 2000, 2001 Håkan Hjort
-+ * Copyright (C) 2000, 2001 Håkan Hjort
- * Copyright (C) 2001 Rich Wareham <richwareham@users.sourceforge.net>
- *
- * This file is part of libdvdnav, a DVD navigation library. It is modified
-@@ -18,9 +18,6 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-- *
-- * $Id: vm.h,v 1.1 2004/01/11 21:43:13 mroi Exp $
-- *
- */
-
- #ifndef VM_H_INCLUDED
-@@ -127,7 +124,7 @@
- dvd_reader_t *vm_get_dvd_reader(vm_t *vm);
-
- /* Basic Handling */
--void vm_start(vm_t *vm);
-+int vm_start(vm_t *vm);
- void vm_stop(vm_t *vm);
- int vm_reset(vm_t *vm, const char *dvdroot);
-
-diff -Naur libdvdnav-0.1.10-org/configure.ac libdvdnav-0.1.10/configure.ac
---- libdvdnav-0.1.10-org/configure.ac 2004-06-10 23:13:02.000000000 +0200
-+++ libdvdnav-0.1.10/configure.ac 2008-04-19 21:29:04.000000000 +0200
-@@ -13,9 +13,9 @@
- dnl --------------------------------------------------------------
- dnl Making releases: DVDNAV_SUB += 1; change LT_* accordingly
- dnl --------------------------------------------------------------
--DVDNAV_MAJOR=0
-+DVDNAV_MAJOR=1
- DVDNAV_MINOR=1
--DVDNAV_SUB=10
-+DVDNAV_SUB=12
- DVDNAV_PRE=""
-
- AC_SUBST(DVDNAV_MAJOR)
+++ /dev/null
-# libdvdnav .bb build file
-# Copyright (C) 2006, Advanced Micro Devices, Inc. All Rights Reserved
-# Released under the MIT license (see /COPYING)
-
-HOMEPAGE="http://xinehq.de/"
-DESCRIPTION="DVD navigation multimeda library"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-LICENSE = "GPL"
-
-S = "${WORKDIR}/libdvdnav-0.1.10"
-
-SRC_URI="${SOURCEFORGE_MIRROR}/dvd/libdvdnav-0.1.10.tar.gz \
- file://dvdnav-xine-lib-1.1.12.patch;patch=1;pnum=1 \
- file://dvdnav-fix-read-dvdlabel.patch;patch=1;pnum=1 \
- file://dvdnav-fix-clut-copy.patch;patch=1;pnum=1"
-
-inherit autotools
-
-do_stage() {
- autotools_stage_all
-}
+++ /dev/null
-DESCRIPTION = "Extensible binary format library (kinda like XML)"
-HOMEPAGE = "http://www.matroska.org/"
-SECTION = "libs"
-PRIORITY = "optional"
-
-LICENSE="LGPL-2.1"
-
-inherit pkgconfig
-
-SRC_URI = "http://www.bunkus.org/videotools/mkvtoolnix/sources/${PN}-${PV}.tar.bz2"
-
-#S="${S}/make/linux"
-
-do_compile() {
- cd ${S}/make/linux
- oe_runmake CC="${CC}" CXX="${CXX}" AR="${AR} rcvu"
-}
-
-do_stage () {
- oe_libinstall -a -so -C make/linux libebml ${STAGING_LIBDIR}
-}
-
-do_install() {
- install -m 0644 ebml/*.h ${STAGING_INCDIR}
- install -d ${STAGING_INCDIR}/ebml
- (cd ${S}/ebml; cp *.h ${STAGING_INCDIR}/ebml/; mkdir -p ${STAGING_INCDIR}/ebml/c; cp c/libebml_t.h ${STAGING_INCDIR}/ebml/c;)
-}
+++ /dev/null
-# libmatroska core Makefile (used in cygwin)
-# $Id: Makefile 1254 2006-06-02 14:32:52Z mosu $
-# Author: Steve Lhomme <robux4 @ users.sf.net>
-# Author: Moritz Bunkus <moritz @ bunkus.org>
-
-#
-# The library is built without debug information. If you want
-# debug information to be included then compile with
-# 'make DEBUG=yes'.
-#
-
-# Paths
-libdir=$(LIBDIR)
-includedir=$(INCDIR)/matroska
-
-# Programs
-CXX=g++
-LD=$(CXX)
-AR = ar rcvu
-RANLIB = ranlib
-INSTALL = install
-INSTALL_OPTS = -m 644
-INSTALL_OPTS_LIB = -m 644
-INSTALL_DIR_OPTS = -m 755
-
-ifneq (,$(shell $(CXX) -v 2>&1 | tail -n 1 | grep -i mingw))
-$(error Please use the Makefile in ../mingw32)
-endif
-
-CWD=$(shell pwd)
-
-# Options
-LIBEBML_INCLUDE_DIR=$(INCDIR)/ebml
-LIBEBML_LIB_DIR=$(LIBDIR)
-EXTENSION=.cpp
-
-
-ifeq (yes,$(DEBUG))
-DEBUGFLAGS=-g -DDEBUG
-endif
-
-SRC_DIR=$(CWD)/src/
-INCLUDE_DIR=$(CWD)/matroska
-MUX_SRC_DIR=$(CWD)/test/mux/
-TAG_SRC_DIR=$(CWD)/test/tags/
-
-# Librarires
-INCLUDE=-I$(CWD)/. -I$(LIBEBML_INCLUDE_DIR)
-LIBS=
-MUX_LIBS=-lmatroska -lebml $(LIBICONV)
-
-# Names
-LIBRARY=libmatroska.a
-LIBRARY_SO=libmatroska.so
-LIBRARY_SO_VER=libmatroska.so.0
-
-# source-files
-sources:=$(wildcard ${SRC_DIR}*$(EXTENSION))
-
-# header files; replace .cxx extension with .h
-headers:=$(patsubst %$(EXTENSION),%.h,$(sources))
-
-# object files; replace .cxx extension with .o
-objects:=$(patsubst %$(EXTENSION),%.o,$(sources))
-
-objects_so:=$(patsubst %$(EXTENSION),%.lo,$(sources))
-
-WARNINGFLAGS=-Wall -Wno-unknown-pragmas -ansi -fno-gnu-keywords -D_GNU_SOURCE \
- -Wshadow
-COMPILEFLAGS=$(DEBUGFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(WARNINGFLAGS) $(INCLUDE)
-LINKFLAGS=-L. -L$(LIBEBML_LIB_DIR) $(LDFLAGS)
-DEPENDFLAGS = $(CXXFLAGS) $(INCLUDE)
-
-ifeq (Darwin,$(shell uname -s))
-all: staticlib
-else
-all: staticlib sharedlib
-endif
-
-staticlib: $(LIBRARY)
-
-sharedlib: $(LIBRARY_SO)
-
-lib:
- @echo "Use the 'staticlib', 'sharedlib' or 'all' targets."
- @false
-
-# Build rules
-%.o: %$(EXTENSION)
- $(CXX) -c $(COMPILEFLAGS) -o $@ $<
-
-%.lo: %$(EXTENSION)
- $(CXX) -c $(COMPILEFLAGS) -fPIC -o $@ $<
-
-$(LIBRARY): $(objects)
- $(AR) $@ $(objects)
- $(RANLIB) $@
-
-$(LIBRARY_SO): $(objects_so)
- $(CXX) -shared -Wl,-soname,$(LIBRARY_SO_VER) -o $(LIBRARY_SO_VER) $(objects_so) -L$(LIBEBML_LIB_DIR) -lebml
- rm -f $(LIBRARY_SO)
- ln -s $(LIBRARY_SO_VER) $(LIBRARY_SO)
-
-clean: cleantest
- rm -f $(objects) $(objects_so)
- rm -f $(LIBRARY)
- rm -f $(LIBRARY_SO)
- rm -f $(LIBRARY_SO_VER)
- rm -f CORE
-
-cleantest:
- rm -f test6 test8 test9 test6.o test8.o test9.o
-
-distclean dist-clean: clean
- rm -f .depend
-
-depend:
- @echo Calculating dependecies:
- @rm -f .depend
- @touch .depend
- @for i in $(sources); do \
- o="`echo $$i | sed -e 's/\.c$$/.o/' -e 's/\.cpp$$/.o/'`" ; \
- echo ' ' $$i: $$o ; \
- $(CXX) $(DEPENDFLAGS) -MM -MT $$o $$i >> .depend ; \
- done
-
-test: test6 test9
-
-test6: test6.o $(LIBRARY) $(LIBRARY_SO)
- $(LD) -o $@ $(LINKFLAGS) $< $(MUX_LIBS)
-
-test6.o: $(MUX_SRC_DIR)test6.cpp
- $(CXX) -c $(COMPILEFLAGS) -o $@ $<
-
-test8: test8.o $(LIBRARY) $(LIBRARY_SO)
- $(LD) -o $@ $(LINKFLAGS) $< $(MUX_LIBS)
-
-test8.o: $(MUX_SRC_DIR)test8.cpp
- $(CXX) -c $(COMPILEFLAGS) -o $@ $<
-
-test9: test9.o $(LIBRARY) $(LIBRARY_SO)
- $(LD) -o $@ $(LINKFLAGS) $< $(MUX_LIBS)
-
-test9.o: $(TAG_SRC_DIR)test9.cpp
- $(CXX) -c $(COMPILEFLAGS) -o $@ $<
-
-ifeq (Darwin,$(shell uname -s))
-install: install_staticlib install_headers
-else
-install: install_staticlib install_sharedlib install_headers
-endif
-
-install_headers:
- $(INSTALL) $(INSTALL_DIR_OPTS) -d $(includedir)
- for i in $(INCLUDE_DIR)/*.h; do \
- $(INSTALL) $(INSTALL_OPTS) $$i $(includedir) ; \
- done
- $(INSTALL) $(INSTALL_DIR_OPTS) -d $(includedir)/c
- for i in $(INCLUDE_DIR)/c/*.h; do \
- $(INSTALL) $(INSTALL_OPTS) $$i $(includedir)/c ; \
- done
-
-install_staticlib: $(LIBRARY)
- $(INSTALL) $(INSTALL_DIR_OPTS) -d $(libdir)
- $(INSTALL) $(INSTALL_OPTS_LIB) $(LIBRARY) $(libdir)
-
-install_sharedlib: $(LIBRARY_SO)
- $(INSTALL) $(INSTALL_DIR_OPTS) -d $(libdir)
- $(INSTALL) $(INSTALL_OPTS_LIB) $(LIBRARY_SO_VER) $(libdir)
- ln -fs $(LIBRARY_SO_VER) $(libdir)/$(LIBRARY_SO)
-
-ifneq ($(wildcard .depend),)
-include .depend
-endif
-
-# DO NOT DELETE
+++ /dev/null
-DESCRIPTION = "Extensible multimedia container format based on EBML"
-HOMEPAGE = "http://www.matroska.org/"
-SECTION = "libs"
-PRIORITY = "optional"
-MAINTAINER = "Andreas Frisch <andreas.frisch@multimedia-labs.de>"
-
-LICENSE = "GPL-2"
-
-DEPENDS = "libebml"
-
-inherit pkgconfig autotools module-base
-
-#EXTRA_OEMAKE += "CFLAGS='${CFLAGS} -I${STAGING_INCDIR}' LDFLAGS='${LDFLAGS} -L${STAGING_LIBDIR}"
-#LDFLAGS += " -L${STAGING_LIBDIR}"
-#EXTRA_OEMAKE += " LDFLAGS='${LDFLAGS}"
-
-EXTRA_OECONF = " --enable-shared "
-
-SRC_URI = "http://www.bunkus.org/videotools/mkvtoolnix/sources/${PN}-${PV}.tar.bz2\
- file://Makefile"
-
-do_compile() {
- cp ${WORKDIR}/Makefile ${WORKDIR}/${PN}-${PV}
- oe_runmake CC="${CC}" CXX="${CXX}" AR="${AR} rcvu" INCDIR="${STAGING_INCDIR}" LIBDIR="${STAGING_LIBDIR}"
-}
-
-do_stage() {
- oe_libinstall -a -so -C ./ libmatroska ${STAGING_LIBDIR}
-# cd make/linux
-# oe_libinstall -so ${STAGING_LIBDIR}
-}
-
-do_install() {
- oe_runmake install_headers CC="${CC}" CXX="${CXX}" AR="${AR} rcvu" INCDIR="${STAGING_INCDIR}" LIBDIR="${STAGING_LIBDIR}"
-}
+++ /dev/null
-HOMEPAGE="http://puzzle.dl.sourceforge.net/sourceforge/libmms/"
-DESCRIPTION="libmms"
-MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
-LICENSE = "GPL"
-
-SRC_URI="${SOURCEFORGE_MIRROR}/libmms/libmms-${PV}.tar.gz"
-
-inherit autotools pkgconfig
-
-do_stage() {
- autotools_stage_all
-}
+++ /dev/null
-diff -Naur liboil-0.3.14-org/liboil/liboilcpu-powerpc.c liboil-0.3.14/liboil/liboilcpu-powerpc.c
---- liboil-0.3.14-org/liboil/liboilcpu-powerpc.c 2008-03-13 08:22:52.000000000 +0100
-+++ liboil-0.3.14/liboil/liboilcpu-powerpc.c 2008-07-14 11:50:17.000000000 +0200
-@@ -35,7 +35,10 @@
- #include <liboil/liboilutils.h>
-
- #if defined(__linux__)
-+#include <linux/version.h>
-+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
- #include <linux/auxvec.h>
-+#endif
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
-@@ -101,7 +104,7 @@
- }
- #endif
-
--#if defined(__linux__)
-+#if defined(__linux__) && LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
- static void
- oil_check_altivec_proc_auxv (void)
- {
-@@ -169,7 +172,7 @@
- oil_check_altivec_sysctl_freebsd();
- #elif defined(__APPLE__)
- oil_check_altivec_sysctl_darwin();
--#elif defined(__linux__)
-+#elif defined(__linux__) && LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
- oil_check_altivec_proc_auxv();
- #else
- oil_check_altivec_fault();
+++ /dev/null
-diff -Naur liboil-0.3.9.org/configure.ac liboil-0.3.9/configure.ac
---- liboil-0.3.9.org/configure.ac 2006-05-23 02:19:31.000000000 +0200
-+++ liboil-0.3.9/configure.ac 2007-02-26 20:01:38.000000000 +0100
-@@ -167,7 +167,7 @@
- AS_SSE3_INTRINSICS(SSE3_CFLAGS, HAVE_SSE3_INTRINSICS=yes, HAVE_SSE3_INTRINSICS=no)
- AS_3DNOW_INTRINSICS(_3DNOW_CFLAGS, HAVE_3DNOW_INTRINSICS=yes, HAVE_3DNOW_INTRINSICS=no)
- AS_3DNOWEXT_INTRINSICS(_3DNOWEXT_CFLAGS, HAVE_3DNOWEXT_INTRINSICS=yes, HAVE_3DNOWEXT_INTRINSICS=no)
--AS_ALTIVEC_INTRINSICS(ALTIVEC_CFLAGS, HAVE_ALTIVEC_INTRINSICS=yes, HAVE_ALTIVEC_INTRINSICS=no)
-+ALTIVEC_CFLAGS=""
-
- AM_CONDITIONAL(HAVE_MMX_INTRINSICS, test "x$HAVE_MMX_INTRINSICS" = "xyes")
- AM_CONDITIONAL(HAVE_SSE_INTRINSICS, test "x$HAVE_SSE_INTRINSICS" = "xyes")
-@@ -175,7 +175,7 @@
- AM_CONDITIONAL(HAVE_SSE3_INTRINSICS, test "x$HAVE_SSE3_INTRINSICS" = "xyes")
- AM_CONDITIONAL(HAVE_3DNOW_INTRINSICS, test "x$HAVE_3DNOW_INTRINSICS" = "xyes")
- AM_CONDITIONAL(HAVE_3DNOWEXT_INTRINSICS, test "x$HAVE_3DNOWEXT_INTRINSICS" = "xyes")
--AM_CONDITIONAL(HAVE_ALTIVEC_INTRINSICS, test "x$HAVE_ALTIVEC_INTRINSICS" = "xyes")
-+HAVE_ALTIVEC_INTRINSICS="xno"
-
- AC_SUBST(MMX_CFLAGS)
- AC_SUBST(SSE_CFLAGS)
+++ /dev/null
-diff -Naur liboil-0.3.9-org/configure.ac liboil-0.3.9/configure.ac
---- liboil-0.3.9-org/configure.ac 2007-02-26 20:06:52.000000000 +0100
-+++ liboil-0.3.9/configure.ac 2007-02-26 20:16:35.000000000 +0100
-@@ -99,14 +99,6 @@
-
- AS_HOST_DEFINES()
-
--AS_GCC_ASM_POWERPC_FPU([HAVE_GCC_ASM_POWERPC_FPU=yes],
-- [HAVE_GCC_ASM_POWERPC_FPU=no])
--if test x$HAVE_GCC_ASM_POWERPC_FPU = xyes ; then
-- AC_DEFINE(HAVE_GCC_ASM_POWERPC_FPU, 1,
-- [Define if compiler supports PowerPC FPU instructions])
--fi
--AM_CONDITIONAL(HAVE_GCC_ASM_POWERPC_FPU,
-- test "x$HAVE_GCC_ASM_POWERPC" = "xyes")
-
- AC_C_BIGENDIAN
- AS_UNALIGNED_ACCESS
+++ /dev/null
-diff -Naur liboil-0.3.15-org/liboil/liboilcpu-powerpc.c liboil-0.3.15/liboil/liboilcpu-powerpc.c
---- liboil-0.3.15-org/liboil/liboilcpu-powerpc.c 2009-01-15 23:52:42.000000000 +0100
-+++ liboil-0.3.15/liboil/liboilcpu-powerpc-fixed.c 2009-01-15 23:56:05.000000000 +0100
-@@ -35,7 +35,10 @@
- #include <liboil/liboilutils.h>
-
- #if defined(__linux__)
-+#include <linux/version.h>
-+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
- #include <linux/auxvec.h>
-+#endif
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
-@@ -70,7 +73,7 @@
- return ts;
- }
-
--#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && !defined(__APPLE__) && !defined(__linux__)
-+#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && !defined(__APPLE__) && !(defined(__linux__) && LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13))
- static void
- test_altivec (void * ignored)
- {
-@@ -108,7 +111,7 @@
- }
- #endif
-
--#if defined(__linux__)
-+#if defined(__linux__) && LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
- static void
- oil_check_altivec_proc_auxv (void)
- {
-@@ -158,7 +161,7 @@
- }
- #endif
-
--#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && !defined(__APPLE__) && !defined(__linux__)
-+#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && !defined(__APPLE__) && !(defined(__linux__) && LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13))
- static void
- oil_check_altivec_fault (void)
- {
-@@ -178,7 +181,7 @@
- oil_check_altivec_sysctl_freebsd();
- #elif defined(__APPLE__)
- oil_check_altivec_sysctl_darwin();
--#elif defined(__linux__)
-+#elif defined(__linux__) && LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
- oil_check_altivec_proc_auxv();
- #else
- oil_check_altivec_fault();
+++ /dev/null
-diff -Naur libxmlccwrap-0.0.12_org/configure.ac libxmlccwrap-0.0.12/configure.ac
---- libxmlccwrap-0.0.12_org/configure.ac 2005-07-28 21:27:58.000000000 +0200
-+++ libxmlccwrap-0.0.12/configure.ac 2007-10-29 15:36:49.000000000 +0100
-@@ -15,7 +15,7 @@
- AM_PROG_LIBTOOL
-
- AC_CHECK_LIB(xml2,main)
--AC_CHECK_LIB(xslt,main)
-+#AC_CHECK_LIB(xslt,main)
-
- AC_OUTPUT([Makefile \
- xmlccwrap/Makefile \
-diff -Naur libxmlccwrap-0.0.12_org/xmlccwrap/xmlccwrap.cc libxmlccwrap-0.0.12/xmlccwrap/xmlccwrap.cc
---- libxmlccwrap-0.0.12_org/xmlccwrap/xmlccwrap.cc 2003-12-18 23:48:08.000000000 +0100
-+++ libxmlccwrap-0.0.12/xmlccwrap/xmlccwrap.cc 2007-10-24 22:54:15.000000000 +0200
-@@ -23,8 +23,10 @@
- #include <libxml/tree.h>
- #include <libxml/HTMLparser.h>
- #include <libxml/encoding.h>
-+/*
- #include <libxslt/xsltutils.h>
- #include <libxslt/transform.h>
-+*/
- #include "xmlccwrap.h"
- #include "libxmlexport.h"
-
-@@ -47,7 +49,7 @@
- Element *readnode(xmlNodePtr);
- void writenode(xmlDocPtr, Element *, xmlNodePtr, int = 0);
-
--
-+/*
- XSLTTree::XSLTTree()
- {
- xsltP = 0;
-@@ -83,7 +85,7 @@
- {
- return xsltP;
- }
--
-+*/
-
- XMLTree::XMLTree() : _filename(), _root(), _compression(0)
- { }
-@@ -380,7 +382,7 @@
- return retval;
- }
-
--
-+/*
- bool XMLTree::xslt(const XSLTTree & xsltTree, const std::string & outputfile, ParameterMap & parameterMap)
- {
- bool ret = false;
-@@ -425,7 +427,7 @@
- ParameterMap parameterMap;
- return xslt(xsltTree, outputfile, parameterMap);
- }
--
-+*/
-
- const std::string & XMLTree::getErrorString()
- {
-diff -Naur libxmlccwrap-0.0.12_org/xmlccwrap/xmlccwrap.h libxmlccwrap-0.0.12/xmlccwrap/xmlccwrap.h
---- libxmlccwrap-0.0.12_org/xmlccwrap/xmlccwrap.h 2003-12-18 23:42:37.000000000 +0100
-+++ libxmlccwrap-0.0.12/xmlccwrap/xmlccwrap.h 2007-10-24 22:54:15.000000000 +0200
-@@ -43,7 +41,7 @@
- typedef std::multimap<std::string, std::string> ParameterMap;
- typedef ParameterMap::value_type ValuePair;
-
--
-+/*
- class XSLTTree
- {
- private:
-@@ -60,7 +58,7 @@
- bool read(const std::string &fn);
- const void * exportxsltStylesheetPtr() const;
- };
--
-+*/
-
- class XMLTree
- {
-@@ -102,10 +100,10 @@
- bool write(const std::string &fn);
- const std::string & writeBuffer() const;
-
--
-+/*
- bool xslt(const XSLTTree & xsltTree, const std::string & outputfile, ParameterMap & parameterMap);
- bool xslt(const XSLTTree & xsltTree, const std::string & outputfile);
--
-+*/
- const std::string & getErrorString();
- };
-
+++ /dev/null
-diff -Naur libxmlccwrap-0.0.12_org/Makefile.am libxmlccwrap-0.0.12/Makefile.am
---- libxmlccwrap-0.0.12_org/Makefile.am 2002-12-11 23:18:41.000000000 +0100
-+++ libxmlccwrap-0.0.12/Makefile.am 2007-10-29 15:35:11.000000000 +0100
-@@ -1 +1 @@
--SUBDIRS = xmlccwrap html testlib
-+SUBDIRS = xmlccwrap
+++ /dev/null
---- libxmlccwrap-0.0.12_org/xmlccwrap/xmlccwrap.cc 2003-12-18 23:48:08.000000000 +0100
-+++ libxmlccwrap-0.0.12/xmlccwrap/xmlccwrap.cc 2007-10-24 22:54:15.000000000 +0200
-@@ -498,6 +500,7 @@
- for (ElementIterator curnode = nodes.begin(); curnode != nodes.end(); curnode++)
- add
- (**curnode);
-+ return *this;
- }
-
-
+++ /dev/null
-DESCRIPTION = "A small libxml2 c++ wrapper"
-SECTION = "libs"
-PRIORITY = "optional"
-LICENSE = "LGPL"
-PR = "r0"
-DEPENDS = "libxml2"
-RDEPENDS = "libxml2"
-
-SRC_URI = "http://www.ant.uni-bremen.de/whomes/rinas/libxmlccwrap/download/libxmlccwrap-${PV}.tar.gz \
- file://dont_build_unneeded.patch;patch=1;pnum=1 \
- file://disable_libxslt.patch;patch=1;pnum=1 \
- file://fix_assignment_operator.patch;patch=1;pnum=1"
-
-inherit autotools
-
-FILES_${PN} = "/usr/lib/*.so*"
-FILES_${PN}-dev = "/usr/include/*.h /usr/include/xmlccwrap/*.h"
-
-do_stage () {
- install -d ${STAGING_INCDIR}/xmlccwrap
- install ${S}/xmlccwrap/*.h ${STAGING_INCDIR}/xmlccwrap
- install ${S}/xmlccwrap/.libs/libxmlccwrap-${PV}.so ${STAGING_LIBDIR}
- ln -sf ${STAGING_LIBDIR}/libxmlccwrap-${PV}.so ${STAGING_LIBDIR}/libxmlccwrap.so
-}
+++ /dev/null
-LICENSE = GPL
-SECTION = "console/network"
-DEPENDS = "jpeg libpng zlib tuxbox-plugins"
-DESCRIPTION = "Dreambox plugin version of Links: Links is graphics and text mode WWW \
-browser, similar to Lynx."
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-
-SRC_URI = "http://dreamboxupdate.com/sources-mirror/links-2.1pre15.tar.bz2 \
- http://sources.dreamboxupdate.com/download/opendreambox/links-dream-2.1pre15/links-dream-plugin.diff;patch=1"
-
-PACKAGES = "links-dream-plugin"
-
-FILES_links-dream-plugin = "/usr/lib/tuxbox/plugins/links.* /etc/links/screen.config /etc/links/tables.tar.gz"
-
-S = "${WORKDIR}/links-2.1pre15"
-
-inherit autotools pkgconfig
-
-do_configure_prepend() {
- sed -i -e s:-L$\(prefix\)/lib:-L${STAGING_LIBDIR}:g Makefile.am
-}
-
-bindir = "/usr/bin"
-sbindir = "/usr/sbin"
+++ /dev/null
-Submitted By: Jim Gifford (patches at jg555 dot com)
-Date: 2005-10-01
-Initial Package Version: 2.6.12.0
-Origin: Jim Gifford
-Upstream Status: Sent
-Description: Fixes Compile Issue with Sysklogd
-
-diff -Naur linux-libc-headers-2.6.12.0.orig/include/asm-mips/atomic.h linux-libc-headers-2.6.12.0/include/asm-mips/atomic.h
---- linux-libc-headers-2.6.12.0.orig/include/asm-mips/atomic.h 2005-07-06 00:17:30.000000000 +0000
-+++ linux-libc-headers-2.6.12.0/include/asm-mips/atomic.h 2005-10-01 22:04:26.000000000 +0000
-@@ -18,7 +18,7 @@
- typedef struct { volatile int counter; } atomic_t;
-
- #ifdef __mips64
--typedef struct { volatile __s64 counter; } atomic64_t;
-+typedef struct { volatile long counter; } atomic64_t;
- #endif
-
- #endif /* _ASM_ATOMIC_H */
+++ /dev/null
-Submitted By: Jim Gifford (patches at jg555 dot com)
-Date: 2005-09-12
-Initial Package Version: 2.6.12.0
-Origin: http://www.uclibc.org/cgi-bin/viewcvs.cgi/trunk/buildroot/toolchain/kernel-headers/linux-libc-headers-2.6.12.0-mips-nptl.patch?rev=11104&view=auto
-Upstream Status: Unknown
-Description: Adds TLS Support to Kernel Headers for MIPS
-
-diff -Naur linux-libc-headers-2.6.12.0.orig/include/asm-mips/inst.h linux-libc-headers-2.6.12.0/include/asm-mips/inst.h
---- linux-libc-headers-2.6.12.0.orig/include/asm-mips/inst.h 2004-10-31 19:54:20.000000000 +0000
-+++ linux-libc-headers-2.6.12.0/include/asm-mips/inst.h 2005-09-12 23:57:11.000000000 +0000
-@@ -28,7 +28,7 @@
- sdl_op, sdr_op, swr_op, cache_op,
- ll_op, lwc1_op, lwc2_op, pref_op,
- lld_op, ldc1_op, ldc2_op, ld_op,
-- sc_op, swc1_op, swc2_op, major_3b_op, /* Opcode 0x3b is unused */
-+ sc_op, swc1_op, swc2_op, rdhwr_op,
- scd_op, sdc1_op, sdc2_op, sd_op
- };
-
-@@ -62,10 +62,10 @@
- spimi_op, unused_rt_op_0x05, unused_rt_op_0x06, unused_rt_op_0x07,
- tgei_op, tgeiu_op, tlti_op, tltiu_op,
- teqi_op, unused_0x0d_rt_op, tnei_op, unused_0x0f_rt_op,
-- bltzal_op, bgezal_op, bltzall_op, bgezall_op
-- /*
-- * The others (0x14 - 0x1f) are unused.
-- */
-+ bltzal_op, bgezal_op, bltzall_op, bgezall_op,
-+ rt_op_0x14, rt_op_0x15, rt_op_0x16, rt_op_0x17,
-+ rt_op_0x18, rt_op_0x19, rt_op_0x1a, rt_op_0x1b,
-+ bposge32_op, rt_op_0x1d, rt_op_0x1e, rt_op_0x1f
- };
-
- /*
-diff -Naur linux-libc-headers-2.6.12.0.orig/include/asm-mips/unistd.h linux-libc-headers-2.6.12.0/include/asm-mips/unistd.h
---- linux-libc-headers-2.6.12.0.orig/include/asm-mips/unistd.h 2005-07-06 00:17:29.000000000 +0000
-+++ linux-libc-headers-2.6.12.0/include/asm-mips/unistd.h 2005-09-12 23:57:11.000000000 +0000
-@@ -303,16 +303,17 @@
- #define __NR_add_key (__NR_Linux + 280)
- #define __NR_request_key (__NR_Linux + 281)
- #define __NR_keyctl (__NR_Linux + 282)
-+#define __NR_set_thread_area (__NR_Linux + 283)
-
- /*
- * Offset of the last Linux o32 flavoured syscall
- */
--#define __NR_Linux_syscalls 282
-+#define __NR_Linux_syscalls 283
-
- #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
-
- #define __NR_O32_Linux 4000
--#define __NR_O32_Linux_syscalls 282
-+#define __NR_O32_Linux_syscalls 283
-
- #if _MIPS_SIM == _MIPS_SIM_ABI64
-
-@@ -562,16 +563,17 @@
- #define __NR_add_key (__NR_Linux + 239)
- #define __NR_request_key (__NR_Linux + 240)
- #define __NR_keyctl (__NR_Linux + 241)
-+#define __NR_set_thread_area (__NR_Linux + 242)
-
- /*
- * Offset of the last Linux 64-bit flavoured syscall
- */
--#define __NR_Linux_syscalls 241
-+#define __NR_Linux_syscalls 242
-
- #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
-
- #define __NR_64_Linux 5000
--#define __NR_64_Linux_syscalls 241
-+#define __NR_64_Linux_syscalls 242
-
- #if _MIPS_SIM == _MIPS_SIM_NABI32
-
-@@ -825,16 +827,17 @@
- #define __NR_add_key (__NR_Linux + 243)
- #define __NR_request_key (__NR_Linux + 244)
- #define __NR_keyctl (__NR_Linux + 245)
-+#define __NR_set_thread_area (__NR_Linux + 246)
-
- /*
- * Offset of the last N32 flavoured syscall
- */
--#define __NR_Linux_syscalls 245
-+#define __NR_Linux_syscalls 246
-
- #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
-
- #define __NR_N32_Linux 6000
--#define __NR_N32_Linux_syscalls 245
-+#define __NR_N32_Linux_syscalls 246
-
- #ifndef __ASSEMBLY__
-
+++ /dev/null
-SECTION = "devel"
-DESCRIPTION = "Sanitized set of 2.6 kernel headers for the C library's use."
-HOMEPAGE = "http://ep09.pld-linux.org/~mmazur/linux-libc-headers/"
-# license note from the package:
-# Linux-libc-headers are derived from linux kernel headers. For license of a
-# particular header, check it's content, and if copyright notice isn't present,
-# standard linux kernel license applies.
-# since we assume GPL for linux i think we can also assume it here
-LICENSE = "GPL"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-INHIBIT_DEFAULT_DEPS = "1"
-PR = "r1"
-
-SRC_URI = "http://ep09.pld-linux.org/~mmazur/linux-libc-headers/linux-libc-headers-${PV}.tar.bz2 \
- file://keyboard.patch;patch=1"
-
-def get_nptl_patches(bb, d):
- if 'nptl' in bb.data.getVar('GLIBC_ADDONS', d, 1).split(','):
- return "file://linux-libc-headers-2.6.12.0-mips_tls-1.patch;patch=1;pnum=1"
- return ""
-
-SRC_URI_append_mipsel = " file://linux-libc-headers-2.6.12.0-mips_atomic_fix-1.patch;patch=1;pnum=1 \
- ${@get_nptl_patches(bb, d)}"
-
-S = "${WORKDIR}/linux-libc-headers-${PV}"
-
-do_configure () {
- case ${TARGET_ARCH} in
- alpha*) ARCH=alpha ;;
- arm*) ARCH=arm ;;
- cris*) ARCH=cris ;;
- hppa*) ARCH=parisc ;;
- i*86*) ARCH=i386 ;;
- ia64*) ARCH=ia64 ;;
- mips*) ARCH=mips ;;
- m68k*) ARCH=m68k ;;
- powerpc*) ARCH=ppc ;;
- s390*) ARCH=s390 ;;
- sh*) ARCH=sh ;;
- sparc64*) ARCH=sparc64 ;;
- sparc*) ARCH=sparc ;;
- x86_64*) ARCH=x86_64 ;;
- esac
- if test ! -e include/asm-$ARCH; then
- oefatal unable to create asm symlink in kernel headers
- fi
- cp -pPR "include/asm-$ARCH" "include/asm"
- if test "$ARCH" = "arm"; then
- cp -pPR include/asm/arch-ebsa285 include/asm/arch
- elif test "$ARCH" = "sh"; then
- cp -pPR include/asm/cpu-${TARGET_ARCH} include/asm/cpu || die "unable to create include/asm/cpu"
- fi
-}
-
-do_stage () {
- install -d ${STAGING_INCDIR}
- rm -rf ${STAGING_INCDIR}/linux ${STAGING_INCDIR}/asm
- cp -pfLR include/linux ${STAGING_INCDIR}/
- cp -pfLR include/asm ${STAGING_INCDIR}/
- rm -rf ${CROSS_DIR}/${TARGET_SYS}/include/linux
- rm -rf ${CROSS_DIR}/${TARGET_SYS}/include/asm
- install -d ${CROSS_DIR}/${TARGET_SYS}/include
- cp -pfLR include/linux ${CROSS_DIR}/${TARGET_SYS}/include/
- cp -pfLR include/asm ${CROSS_DIR}/${TARGET_SYS}/include/
-}
-
-do_install() {
- install -d ${D}${includedir}
- cp -pfLR include/linux ${D}${includedir}/
- cp -pfLR include/asm ${D}${includedir}/
-}
-
+++ /dev/null
-DESCRIPTION = "Linux kernel for Dreambox DM500PLUS"
-LICENSE = "GPL"
-PN = "linux-dm500plus"
-PV = "2.6.12"
-PR = "r2"
-
-# -rX is the patch revision - it's not related to this package's PR
-SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.12.tar.bz2 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dream-ppc-r5.patch.bz2;patch=1;pnum=1"
-
-S = "${WORKDIR}/linux-2.6.12"
-
-inherit kernel
-
-FILES_kernel-image = "/boot/zImage.elf /boot/autoexec.bat"
-
-export OS = "Linux"
-ARCH = "ppc"
-KERNEL_IMAGETYPE = "zImage"
-KERNEL_OUTPUT = "arch/ppc/boot/images/zImage.elf"
-
-do_configure_prepend() {
- oe_machinstall -m 0644 ${S}/arch/ppc/configs/dm500plus_defconfig ${S}/.config || die "no default configuration for ${MACHINE} available."
- oe_runmake oldconfig
-}
-
-do_install_append () {
- install -d ${D}/boot
- install -m 0755 arch/ppc/boot/images/zImage.elf ${D}/boot/zImage.elf
- echo "/flash/bootlogo.elf" > ${D}/boot/autoexec.bat
- echo "/flash/zImage.elf" >> ${D}/boot/autoexec.bat
-}
-
-pkg_preinst_kernel-image () {
- [ -d /proc/stb ] && mount -o rw,remount /boot
- true
-}
-
-pkg_postinst_kernel-image () {
- [ -d /proc/stb ] && mount -o ro,remount /boot
- true
-}
-
-pkg_prerm_kernel-image () {
- [ -d /proc/stb ] && mount -o rw,remount /boot
- true
-}
-
-pkg_postrm_kernel-image () {
- [ -d /proc/stb ] && mount -o ro,remount /boot
- true
-}
+++ /dev/null
-DESCRIPTION = "Linux kernel for Dreambox DM7020"
-LICENSE = "GPL"
-PN = "linux-dm600pvr"
-PV = "2.6.12"
-PR = "r5"
-
-# -rX is the patch revision - it's not related to this package's PR
-SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.12.tar.bz2 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dream-ppc-r5.patch.bz2;patch=1;pnum=1"
-
-S = "${WORKDIR}/linux-2.6.12"
-
-inherit kernel
-
-FILES_kernel-image = "/boot/zImage.elf /boot/autoexec.bat"
-
-export OS = "Linux"
-ARCH = "ppc"
-KERNEL_IMAGETYPE = "zImage"
-KERNEL_OUTPUT = "arch/ppc/boot/images/zImage.elf"
-
-do_configure_prepend() {
- oe_machinstall -m 0644 ${S}/arch/ppc/configs/dm600pvr_defconfig ${S}/.config || die "no default configuration for ${MACHINE} available."
- oe_runmake oldconfig
-}
-
-do_install_append () {
- install -d ${D}/boot
- install -m 0755 arch/ppc/boot/images/zImage.elf ${D}/boot/zImage.elf
- echo "/flash/bootlogo.elf" > ${D}/boot/autoexec.bat
- echo "/flash/zImage.elf" >> ${D}/boot/autoexec.bat
-}
-
-pkg_preinst_kernel-image () {
- [ -d /proc/stb ] && mount -o rw,remount /boot
- true
-}
-
-pkg_postinst_kernel-image () {
- [ -d /proc/stb ] && mount -o ro,remount /boot
- true
-}
-
-pkg_prerm_kernel-image () {
- [ -d /proc/stb ] && mount -o rw,remount /boot
- true
-}
-
-pkg_postrm_kernel-image () {
- [ -d /proc/stb ] && mount -o ro,remount /boot
- true
-}
+++ /dev/null
-DESCRIPTION = "Linux kernel for Dreambox DM7020"
-LICENSE = "GPL"
-PN = "linux-dm7020"
-PV = "2.6.9"
-PR = "r5"
-
-# -r1 is the patch revision - it's not related to this package's PR
-SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.9.tar.bz2 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linuxppc-2.6.9-r1.diff.bz2;patch=1;pnum=1 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linuxppc-2.6.9-dream-s8.diff.bz2;patch=1;pnum=1 \
- file://allow_gcc4.patch;patch=1"
-
-S = "${WORKDIR}/linux-2.6.9"
-
-inherit kernel
-
-FILES_kernel-image = "/boot/zImage.elf /boot/autoexec.bat"
-
-export OS = "Linux"
-ARCH = "ppc"
-KERNEL_IMAGETYPE = "zImage"
-KERNEL_OUTPUT = "arch/ppc/boot/images/zImage.elf"
-
-do_configure_prepend() {
- oe_machinstall -m 0644 ${S}/arch/ppc/configs/dm7020_defconfig ${S}/.config || die "no default configuration for ${MACHINE} available."
- oe_runmake oldconfig
-}
-
-do_install_append () {
- install -d ${D}/boot
- install -m 0755 arch/ppc/boot/images/zImage.elf ${D}/boot/zImage.elf
- echo "/flash/bootlogo.elf" > ${D}/boot/autoexec.bat
- echo "/flash/zImage.elf" >> ${D}/boot/autoexec.bat
-}
-
-pkg_preinst_kernel-image () {
- [ -d /proc/stb ] && mount -o rw,remount /boot
- true
-}
-
-pkg_postinst_kernel-image () {
- [ -d /proc/stb ] && mount -o ro,remount /boot
- true
-}
-
-pkg_prerm_kernel-image () {
- [ -d /proc/stb ] && mount -o rw,remount /boot
- true
-}
-
-pkg_postrm_kernel-image () {
- [ -d /proc/stb ] && mount -o ro,remount /boot
- true
-}
+++ /dev/null
-diff -auNr linux-2.6.9/arch/ppc/kernel/time.c linux-2.6.9-gcc4/arch/ppc/kernel/time.c
---- linux-2.6.9/arch/ppc/kernel/time.c 2004-10-18 23:54:54.000000000 +0200
-+++ linux-2.6.9-gcc4/arch/ppc/kernel/time.c 2008-12-15 13:51:25.000000000 +0100
-@@ -89,7 +89,7 @@
-
- extern unsigned long wall_jiffies;
-
--static long time_offset;
-+static long timezone_offset;
-
- spinlock_t rtc_lock = SPIN_LOCK_UNLOCKED;
-
-@@ -171,7 +171,7 @@
- xtime.tv_sec - last_rtc_update >= 659 &&
- abs((xtime.tv_nsec / 1000) - (1000000-1000000/HZ)) < 500000/HZ &&
- jiffies - wall_jiffies == 1) {
-- if (ppc_md.set_rtc_time(xtime.tv_sec+1 + time_offset) == 0)
-+ if (ppc_md.set_rtc_time(xtime.tv_sec+1 + timezone_offset) == 0)
- last_rtc_update = xtime.tv_sec+1;
- else
- /* Try again one minute later */
-@@ -292,7 +292,7 @@
- unsigned old_stamp, stamp, elapsed;
-
- if (ppc_md.time_init != NULL)
-- time_offset = ppc_md.time_init();
-+ timezone_offset = ppc_md.time_init();
-
- if (__USE_RTC()) {
- /* 601 processor: dec counts down by 128 every 128ns */
-@@ -337,10 +337,10 @@
- set_dec(tb_ticks_per_jiffy);
-
- /* If platform provided a timezone (pmac), we correct the time */
-- if (time_offset) {
-- sys_tz.tz_minuteswest = -time_offset / 60;
-+ if (timezone_offset) {
-+ sys_tz.tz_minuteswest = -timezone_offset / 60;
- sys_tz.tz_dsttime = 0;
-- xtime.tv_sec -= time_offset;
-+ xtime.tv_sec -= timezone_offset;
- }
- set_normalized_timespec(&wall_to_monotonic,
- -xtime.tv_sec, -xtime.tv_nsec);
-diff -auNr linux-2.6.9/include/asm-m68k/setup.h linux-2.6.9-gcc4/include/asm-m68k/setup.h
---- linux-2.6.9/include/asm-m68k/setup.h 2004-10-18 23:54:37.000000000 +0200
-+++ linux-2.6.9-gcc4/include/asm-m68k/setup.h 2008-12-15 13:52:40.000000000 +0100
-@@ -362,12 +362,13 @@
- #ifndef __ASSEMBLY__
- extern int m68k_num_memory; /* # of memory blocks found (and used) */
- extern int m68k_realnum_memory; /* real # of memory blocks found */
--extern struct mem_info m68k_memory[NUM_MEMINFO];/* memory description */
-
- struct mem_info {
- unsigned long addr; /* physical address of memory chunk */
- unsigned long size; /* length of memory chunk (in bytes) */
- };
-+
-+extern struct mem_info m68k_memory[NUM_MEMINFO];/* memory description */
- #endif
-
- #endif /* __KERNEL__ */
-diff -auNr linux-2.6.9/include/linux/fb.h linux-2.6.9-gcc4/include/linux/fb.h
---- linux-2.6.9/include/linux/fb.h 2004-10-18 23:53:45.000000000 +0200
-+++ linux-2.6.9-gcc4/include/linux/fb.h 2008-12-15 13:56:47.000000000 +0100
-@@ -374,6 +374,23 @@
- __u32 whitey;
- };
-
-+struct fb_videomode {
-+ const char *name; /* optional */
-+ u32 refresh; /* optional */
-+ u32 xres;
-+ u32 yres;
-+ u32 pixclock;
-+ u32 left_margin;
-+ u32 right_margin;
-+ u32 upper_margin;
-+ u32 lower_margin;
-+ u32 hsync_len;
-+ u32 vsync_len;
-+ u32 sync;
-+ u32 vmode;
-+ u32 flag;
-+};
-+
- struct fb_monspecs {
- struct fb_chroma chroma;
- struct fb_videomode *modedb; /* mode database */
-@@ -776,23 +793,6 @@
- extern struct fb_cmap *fb_default_cmap(int len);
- extern void fb_invert_cmaps(void);
-
--struct fb_videomode {
-- const char *name; /* optional */
-- u32 refresh; /* optional */
-- u32 xres;
-- u32 yres;
-- u32 pixclock;
-- u32 left_margin;
-- u32 right_margin;
-- u32 upper_margin;
-- u32 lower_margin;
-- u32 hsync_len;
-- u32 vsync_len;
-- u32 sync;
-- u32 vmode;
-- u32 flag;
--};
--
- struct fb_modelist {
- struct list_head list;
- struct fb_videomode mode;
-diff -auNr linux-2.6.9/include/linux/i2c.h linux-2.6.9-gcc4/include/linux/i2c.h
---- linux-2.6.9/include/linux/i2c.h 2004-10-18 23:53:26.000000000 +0200
-+++ linux-2.6.9-gcc4/include/linux/i2c.h 2008-12-15 13:54:25.000000000 +0100
-@@ -36,7 +36,6 @@
-
- /* --- General options ------------------------------------------------ */
-
--struct i2c_msg;
- struct i2c_algorithm;
- struct i2c_adapter;
- struct i2c_client;
-@@ -45,6 +44,22 @@
- union i2c_smbus_data;
-
- /*
-+ * I2C Message - used for pure i2c transaction, also from /dev interface
-+ */
-+struct i2c_msg {
-+ __u16 addr; /* slave address */
-+ __u16 flags;
-+#define I2C_M_TEN 0x10 /* we have a ten bit chip address */
-+#define I2C_M_RD 0x01
-+#define I2C_M_NOSTART 0x4000
-+#define I2C_M_REV_DIR_ADDR 0x2000
-+#define I2C_M_IGNORE_NAK 0x1000
-+#define I2C_M_NO_RD_ACK 0x0800
-+ __u16 len; /* msg length */
-+ __u8 *buf; /* pointer to msg data */
-+};
-+
-+/*
- * The master routines are the ones normally used to transmit data to devices
- * on a bus (or read from them). Apart from two basic transfer functions to
- * transmit one message at a time, a more complex version can be used to
-@@ -387,22 +402,6 @@
- /* Return 1 if adapter supports everything we need, 0 if not. */
- extern int i2c_check_functionality (struct i2c_adapter *adap, u32 func);
-
--/*
-- * I2C Message - used for pure i2c transaction, also from /dev interface
-- */
--struct i2c_msg {
-- __u16 addr; /* slave address */
-- __u16 flags;
--#define I2C_M_TEN 0x10 /* we have a ten bit chip address */
--#define I2C_M_RD 0x01
--#define I2C_M_NOSTART 0x4000
--#define I2C_M_REV_DIR_ADDR 0x2000
--#define I2C_M_IGNORE_NAK 0x1000
--#define I2C_M_NO_RD_ACK 0x0800
-- __u16 len; /* msg length */
-- __u8 *buf; /* pointer to msg data */
--};
--
- /* To determine what functionality is present */
-
- #define I2C_FUNC_I2C 0x00000001
+++ /dev/null
-DESCRIPTION = "Linux kernel for Dreambox DM7025"
-LICENSE = "GPL"
-PN = "linux-dm7025"
-KV = "2.6.12"
-PV = "2.6.12.6"
-PR = "s6"
-
-DEPENDS = "zlib-native"
-
-# note, the rX in the filename is *NOT* the packet revision - it's the patch revision.
-SRC_URI += "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
- file://dm7025_defconfig \
- http://sources.dreamboxupdate.com/download/kernel-patches/linuxmips-${KV}-dream-r6.patch.bz2;patch=1;pnum=1 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-${KV}-update_dvbapi-r1.patch.bz2;patch=1;pnum=1 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvb-multipid-r4.patch.bz2;patch=1;pnum=1 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvb-core-fix-several-locking-problems.patch.bz2;patch=1;pnum=1 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvbapi-pilot-rolloff-extension-r0.patch.bz2;patch=1;pnum=1 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-update-wireless.patch.bz2;patch=1;pnum=1 \
-#squashfs-lzma stuff
- http://squashfs-lzma.org/dl/sqlzma3.2-r2b.tar.bz2 \
- http://dreamboxupdate.com/download/kernel-patches/sqlzma2k-3.2-r2-2.6.12.6.patch.bz2 \
- http://dreamboxupdate.com/download/patches/fix_lzma_squashfs_makefiles_for_oe-r2.patch.bz2 \
- ${SOURCEFORGE_MIRROR}/squashfs/squashfs3.2-r2.tar.gz \
- ${SOURCEFORGE_MIRROR}/sevenzip/lzma443.tar.bz2 \
- file://${WORKDIR}/squashfs-lzma/kernel-patches/linux-2.6.12/squashfs3.2-patch;pnum=1;patch=1 "
-
-S = "${WORKDIR}/linux-${PV}"
-
-inherit kernel
-
-FILES_kernel-image = "/boot/vmlinux.gz /boot/autoexec.bat"
-
-export OS = "Linux"
-KERNEL_IMAGETYPE = "vmlinux"
-KERNEL_OUTPUT = "vmlinux"
-KERNEL_OBJECT_SUFFIX = "ko"
-
-addtask munge after do_unpack before do_patch
-
-do_munge () {
- if [ -d ${WORKDIR}/squashfs3.2-r2 ]; then
- mv ${WORKDIR}/squashfs3.2-r2/* ${WORKDIR}
- rm -R ${WORKDIR}/squashfs3.2-r2
- for i in sqlzma1-443.patch sqlzma2u-3.2-r2.patch fix_lzma_squashfs_makefiles_for_oe-r2.patch;
- do
- echo "Applying $i"
- patch -d ${WORKDIR} -p1 < ${WORKDIR}/$i
- done
- fi
- CUR=`pwd`
- cd ${WORKDIR}
- install -d ${WORKDIR}/squashfs-lzma
- for i in `find -maxdepth 1 | grep -v linux | xargs`;
- do
- case $i in
- ".");;
- "./squashfs-lzma");;
- "./temp");;
- "./image");;
- "./install");;
- "./dm7025_defconfig");;
- *)mv $i ${WORKDIR}/squashfs-lzma;;
- esac
- done
- cd $CUR
-}
-
-do_compile_prepend () {
- if [ -f ${S}/.patched ];
- then
- patch -R -d ${S} -p1 < ${WORKDIR}/squashfs-lzma/sqlzma2k-3.2-r2-2.6.12.6.patch
- rm ${S}/.patched
- fi
-}
-
-do_compile_append () {
- patch -d ${S} -p1 < ${WORKDIR}/squashfs-lzma/sqlzma2k-3.2-r2-2.6.12.6.patch
- touch ${S}/.patched
- oe_runmake -C ${WORKDIR}/squashfs-lzma KDir=${S} BUILD_CC="${CC}" BUILD_CXX="${CXX}" BUILD_LD="${LD}" BUILD_AR="${AR}" BUILD_LDFLAGS="${TARGET_LDFLAGS}" BUILD_CFLAGS="${TARGET_CFLAGS}" BUILD_CXXFLAGS="${TARGET_CXXFLAGS}"
- for i in mksquashfs unsquashfs;
- do
- mv ${WORKDIR}/squashfs-lzma/squashfs-tools/$i ${WORKDIR}/squashfs-lzma/squashfs-tools/$i-${ARCH}
- done
- oe_runmake -C ${WORKDIR}/squashfs-lzma KDir=${S} clean
- oe_runmake -C ${WORKDIR}/squashfs-lzma KDir=${S}
- patch -R -d ${S} -p1 < ${WORKDIR}/squashfs-lzma/sqlzma2k-3.2-r2-2.6.12.6.patch
- rm ${S}/.patched
-}
-
-do_configure_prepend () {
- if [ "${@bb.data.getVar('DISTRO_VERSION', d, 1)}" == "1.4.0" ];
- then
- cat ${WORKDIR}/dm7025_defconfig | grep -v "CONFIG_CMDLINE" > ${S}/.config
- echo "CONFIG_CMDLINE=\"console=null root=/dev/mtdblock3 rootfstype=jffs2 rw\"" >> ${S}/.config
- else
- oe_machinstall -m 0644 ${WORKDIR}/dm7025_defconfig ${S}/.config
- fi;
- oe_runmake oldconfig
-}
-
-do_install_append () {
- install -d ${D}/boot
- install -m 0755 vmlinux ${D}/boot/vmlinux
- echo "/flash/bootlogo.elf" > ${D}/boot/autoexec.bat
- gzip ${D}/boot/vmlinux
- echo "/flash/vmlinux.gz" >> ${D}/boot/autoexec.bat
- for i in sqlzma.ko unlzma.ko;
- do
- install -m 0644 ${WORKDIR}/squashfs-lzma/C/7zip/Compress/LZMA_C/kmod/$i ${D}/lib/modules/2.6.12.6/kernel/fs/squashfs
- done;
- install -d ${D}/usr/bin
- for i in mksquashfs unsquashfs;
- do
- install ${WORKDIR}/squashfs-lzma/squashfs-tools/$i-${ARCH} ${D}/usr/bin/$i
- done;
-}
-
-PACKAGES_append = " unsquashfs mksquashfs"
-FILES_mksquashfs = "/usr/bin/mksquashfs"
-FILES_unsquashfs = "/usr/bin/unsquashfs"
-
-do_stage_append() {
- install ${WORKDIR}/squashfs-lzma/C/7zip/Compress/LZMA_Alone/lzma ${STAGING_BINDIR}
- install ${WORKDIR}/squashfs-lzma/C/7zip/Compress/LZMA_C/lzmadec ${STAGING_BINDIR}
- install ${WORKDIR}/squashfs-lzma/squashfs-tools/mksquashfs ${STAGING_BINDIR}
- install ${WORKDIR}/squashfs-lzma/squashfs-tools/unsquashfs ${STAGING_BINDIR}
-}
-
-pkg_preinst_kernel-image () {
- [ -d /proc/stb ] && mount -o rw,remount /boot
- true
-}
-
-pkg_postinst_kernel-image () {
- [ -d /proc/stb ] && mount -o ro,remount /boot
- true
-}
-
-pkg_prerm_kernel-image () {
- [ -d /proc/stb ] && mount -o rw,remount /boot
- true
-}
-
-pkg_postrm_kernel-image () {
- [ -d /proc/stb ] && mount -o ro,remount /boot
- true
-}
+++ /dev/null
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.12.6
-# Wed Jun 27 13:58:38 2007
-#
-CONFIG_MIPS=y
-# CONFIG_MIPS64 is not set
-# CONFIG_64BIT is not set
-CONFIG_MIPS32=y
-
-#
-# Code maturity level options
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_CLEAN_COMPILE=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-
-#
-# General setup
-#
-CONFIG_LOCALVERSION=""
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-# CONFIG_AUDIT is not set
-CONFIG_HOTPLUG=y
-CONFIG_KOBJECT_UEVENT=y
-# CONFIG_IKCONFIG is not set
-CONFIG_EMBEDDED=y
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SHMEM=y
-CONFIG_CC_ALIGN_FUNCTIONS=0
-CONFIG_CC_ALIGN_LABELS=0
-CONFIG_CC_ALIGN_LOOPS=0
-CONFIG_CC_ALIGN_JUMPS=0
-# CONFIG_TINY_SHMEM is not set
-CONFIG_BASE_SMALL=0
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_OBSOLETE_MODPARM=y
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-
-#
-# Machine selection
-#
-# CONFIG_MACH_JAZZ is not set
-# CONFIG_MACH_VR41XX is not set
-# CONFIG_TOSHIBA_JMR3927 is not set
-# CONFIG_MIPS_COBALT is not set
-# CONFIG_MACH_DECSTATION is not set
-# CONFIG_MIPS_EV64120 is not set
-# CONFIG_MIPS_EV96100 is not set
-# CONFIG_MIPS_IVR is not set
-# CONFIG_LASAT is not set
-# CONFIG_MIPS_ITE8172 is not set
-# CONFIG_MIPS_ATLAS is not set
-# CONFIG_MIPS_MALTA is not set
-# CONFIG_MIPS_SEAD is not set
-# CONFIG_MOMENCO_OCELOT is not set
-# CONFIG_MOMENCO_OCELOT_G is not set
-# CONFIG_MOMENCO_OCELOT_C is not set
-# CONFIG_MOMENCO_OCELOT_3 is not set
-# CONFIG_MOMENCO_JAGUAR_ATX is not set
-# CONFIG_PMC_YOSEMITE is not set
-# CONFIG_DDB5074 is not set
-# CONFIG_DDB5476 is not set
-# CONFIG_DDB5477 is not set
-# CONFIG_NEC_OSPREY is not set
-# CONFIG_SGI_IP22 is not set
-CONFIG_ATI_XILLEON=y
-CONFIG_STW5X226=y
-# CONFIG_SOC_AU1X00 is not set
-# CONFIG_SIBYTE_SB1xxx_SOC is not set
-# CONFIG_SNI_RM200_PCI is not set
-# CONFIG_TOSHIBA_RBTX4927 is not set
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_HAVE_DEC_LOCK=y
-CONFIG_DMA_NONCOHERENT=y
-CONFIG_CPU_LITTLE_ENDIAN=y
-CONFIG_SWAP_IO_SPACE=y
-CONFIG_MIPS_L1_CACHE_SHIFT=5
-CONFIG_FB=y
-
-#
-# CPU selection
-#
-CONFIG_CPU_MIPS32=y
-# CONFIG_CPU_MIPS64 is not set
-# CONFIG_CPU_R3000 is not set
-# CONFIG_CPU_TX39XX is not set
-# CONFIG_CPU_VR41XX is not set
-# CONFIG_CPU_R4300 is not set
-# CONFIG_CPU_R4X00 is not set
-# CONFIG_CPU_TX49XX is not set
-# CONFIG_CPU_R5000 is not set
-# CONFIG_CPU_R5432 is not set
-# CONFIG_CPU_R6000 is not set
-# CONFIG_CPU_NEVADA is not set
-# CONFIG_CPU_R8000 is not set
-# CONFIG_CPU_R10000 is not set
-# CONFIG_CPU_RM7000 is not set
-# CONFIG_CPU_RM9000 is not set
-# CONFIG_CPU_SB1 is not set
-CONFIG_PAGE_SIZE_4KB=y
-# CONFIG_PAGE_SIZE_8KB is not set
-# CONFIG_PAGE_SIZE_16KB is not set
-# CONFIG_PAGE_SIZE_64KB is not set
-CONFIG_CPU_HAS_PREFETCH=y
-# CONFIG_VTAG_ICACHE is not set
-# CONFIG_64BIT_PHYS_ADDR is not set
-CONFIG_CPU_ADVANCED=y
-CONFIG_CPU_HAS_LLSC=y
-# CONFIG_CPU_HAS_LLDSCD is not set
-CONFIG_CPU_HAS_WB=y
-CONFIG_CPU_HAS_SYNC=y
-# CONFIG_PREEMPT is not set
-
-#
-# Bus options (PCI, PCMCIA, EISA, ISA, TC)
-#
-CONFIG_HW_HAS_PCI=y
-CONFIG_PCI=y
-# CONFIG_PCI_LEGACY_PROC is not set
-CONFIG_PCI_NAMES=y
-CONFIG_MMU=y
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
-# CONFIG_PCCARD is not set
-
-#
-# PCI Hotplug Support
-#
-# CONFIG_HOTPLUG_PCI is not set
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_BINFMT_MISC=m
-CONFIG_TRAD_SIGNALS=y
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_STANDALONE=y
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-CONFIG_FW_LOADER=y
-
-#
-# Memory Technology Devices (MTD)
-#
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_CONCAT is not set
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=y
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-# CONFIG_MTD_CFI_INTELEXT is not set
-# CONFIG_MTD_CFI_AMDSTD is not set
-# CONFIG_MTD_CFI_STAA is not set
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-# CONFIG_MTD_PHYSMAP is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLKMTD is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-
-#
-# NAND Flash Device Drivers
-#
-CONFIG_MTD_NAND=y
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-CONFIG_MTD_NAND_IDS=y
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
-CONFIG_MTD_NAND_DM7025=y
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Plug and Play support
-#
-
-#
-# Block devices
-#
-# CONFIG_BLK_DEV_FD is not set
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_UMEM is not set
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=m
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_SX8 is not set
-# CONFIG_BLK_DEV_UB is not set
-CONFIG_BLK_DEV_RAM=m
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=4096
-CONFIG_INITRAMFS_SOURCE=""
-# CONFIG_LBD is not set
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_AS is not set
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-# CONFIG_ATA_OVER_ETH is not set
-
-#
-# ATA/ATAPI/MFM/RLL support
-#
-CONFIG_IDE=y
-CONFIG_BLK_DEV_IDE=y
-
-#
-# Please see Documentation/ide.txt for help/info on IDE drives
-#
-# CONFIG_BLK_DEV_IDE_SATA is not set
-CONFIG_BLK_DEV_IDEDISK=y
-# CONFIG_IDEDISK_MULTI_MODE is not set
-CONFIG_BLK_DEV_IDECD=m
-# CONFIG_BLK_DEV_IDETAPE is not set
-# CONFIG_BLK_DEV_IDEFLOPPY is not set
-CONFIG_BLK_DEV_IDESCSI=m
-# CONFIG_IDE_TASK_IOCTL is not set
-
-#
-# IDE chipset support/bugfixes
-#
-CONFIG_IDE_GENERIC=y
-CONFIG_BLK_DEV_IDEPCI=y
-# CONFIG_IDEPCI_SHARE_IRQ is not set
-# CONFIG_BLK_DEV_OFFBOARD is not set
-CONFIG_BLK_DEV_GENERIC=y
-# CONFIG_BLK_DEV_OPTI621 is not set
-CONFIG_BLK_DEV_IDEDMA_PCI=y
-# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
-CONFIG_IDEDMA_PCI_AUTO=y
-# CONFIG_IDEDMA_ONLYDISK is not set
-# CONFIG_BLK_DEV_AEC62XX is not set
-# CONFIG_BLK_DEV_ALI15X3 is not set
-# CONFIG_BLK_DEV_AMD74XX is not set
-# CONFIG_BLK_DEV_CMD64X is not set
-# CONFIG_BLK_DEV_TRIFLEX is not set
-# CONFIG_BLK_DEV_CY82C693 is not set
-# CONFIG_BLK_DEV_CS5520 is not set
-# CONFIG_BLK_DEV_CS5530 is not set
-# CONFIG_BLK_DEV_HPT34X is not set
-# CONFIG_BLK_DEV_HPT366 is not set
-# CONFIG_BLK_DEV_SC1200 is not set
-# CONFIG_BLK_DEV_PIIX is not set
-# CONFIG_BLK_DEV_NS87415 is not set
-# CONFIG_BLK_DEV_PDC202XX_OLD is not set
-# CONFIG_BLK_DEV_PDC202XX_NEW is not set
-# CONFIG_BLK_DEV_SVWKS is not set
-# CONFIG_BLK_DEV_SIIMAGE is not set
-# CONFIG_BLK_DEV_SLC90E66 is not set
-# CONFIG_BLK_DEV_TRM290 is not set
-# CONFIG_BLK_DEV_VIA82CXXX is not set
-CONFIG_BLK_DEV_XILLEON=y
-# CONFIG_IDE_ARM is not set
-CONFIG_BLK_DEV_IDEDMA=y
-# CONFIG_IDEDMA_IVB is not set
-CONFIG_IDEDMA_AUTO=y
-# CONFIG_BLK_DEV_HD is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI=y
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-CONFIG_BLK_DEV_SR=m
-# CONFIG_BLK_DEV_SR_VENDOR is not set
-CONFIG_CHR_DEV_SG=m
-
-#
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-#
-CONFIG_SCSI_MULTI_LUN=y
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-
-#
-# SCSI Transport Attributes
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-
-#
-# SCSI low-level drivers
-#
-# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
-# CONFIG_SCSI_3W_9XXX is not set
-# CONFIG_SCSI_ACARD is not set
-# CONFIG_SCSI_AACRAID is not set
-# CONFIG_SCSI_AIC7XXX is not set
-# CONFIG_SCSI_AIC7XXX_OLD is not set
-# CONFIG_SCSI_AIC79XX is not set
-# CONFIG_SCSI_DPT_I2O is not set
-# CONFIG_MEGARAID_NEWGEN is not set
-# CONFIG_MEGARAID_LEGACY is not set
-# CONFIG_SCSI_SATA is not set
-# CONFIG_SCSI_BUSLOGIC is not set
-# CONFIG_SCSI_DMX3191D is not set
-# CONFIG_SCSI_EATA is not set
-# CONFIG_SCSI_FUTURE_DOMAIN is not set
-# CONFIG_SCSI_GDTH is not set
-# CONFIG_SCSI_IPS is not set
-# CONFIG_SCSI_INITIO is not set
-# CONFIG_SCSI_INIA100 is not set
-# CONFIG_SCSI_SYM53C8XX_2 is not set
-# CONFIG_SCSI_IPR is not set
-# CONFIG_SCSI_QLOGIC_FC is not set
-# CONFIG_SCSI_QLOGIC_1280 is not set
-CONFIG_SCSI_QLA2XXX=m
-# CONFIG_SCSI_QLA21XX is not set
-# CONFIG_SCSI_QLA22XX is not set
-# CONFIG_SCSI_QLA2300 is not set
-# CONFIG_SCSI_QLA2322 is not set
-# CONFIG_SCSI_QLA6312 is not set
-# CONFIG_SCSI_LPFC is not set
-# CONFIG_SCSI_DC395x is not set
-# CONFIG_SCSI_DC390T is not set
-# CONFIG_SCSI_NSP32 is not set
-# CONFIG_SCSI_DEBUG is not set
-
-#
-# Multi-device support (RAID and LVM)
-#
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=m
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID5=m
-CONFIG_MD_RAID6=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-CONFIG_BLK_DEV_DM=m
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_MIRROR=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_EMC=m
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-# CONFIG_I2O is not set
-
-#
-# Networking support
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-# CONFIG_PACKET_MMAP is not set
-CONFIG_UNIX=y
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IP_PNP_RARP=y
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-CONFIG_ARPD=y
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_TUNNEL=m
-CONFIG_IP_TCPDIAG=y
-# CONFIG_IP_TCPDIAG_IPV6 is not set
-
-#
-# IP: Virtual Server Configuration
-#
-# CONFIG_IP_VS is not set
-CONFIG_IPV6=m
-CONFIG_IPV6_PRIVACY=y
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_IPV6_TUNNEL=m
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_BRIDGE_NETFILTER=y
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_IP_NF_CONNTRACK=m
-# CONFIG_IP_NF_CT_ACCT is not set
-CONFIG_IP_NF_CONNTRACK_MARK=y
-CONFIG_IP_NF_CT_PROTO_SCTP=m
-CONFIG_IP_NF_FTP=m
-CONFIG_IP_NF_IRC=m
-CONFIG_IP_NF_TFTP=m
-CONFIG_IP_NF_AMANDA=m
-CONFIG_IP_NF_QUEUE=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_LIMIT=m
-CONFIG_IP_NF_MATCH_IPRANGE=m
-CONFIG_IP_NF_MATCH_MAC=m
-CONFIG_IP_NF_MATCH_PKTTYPE=m
-CONFIG_IP_NF_MATCH_MARK=m
-CONFIG_IP_NF_MATCH_MULTIPORT=m
-CONFIG_IP_NF_MATCH_TOS=m
-CONFIG_IP_NF_MATCH_RECENT=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_DSCP=m
-CONFIG_IP_NF_MATCH_AH_ESP=m
-CONFIG_IP_NF_MATCH_LENGTH=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_MATCH_TCPMSS=m
-CONFIG_IP_NF_MATCH_HELPER=m
-CONFIG_IP_NF_MATCH_STATE=m
-CONFIG_IP_NF_MATCH_CONNTRACK=m
-CONFIG_IP_NF_MATCH_OWNER=m
-# CONFIG_IP_NF_MATCH_PHYSDEV is not set
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
-CONFIG_IP_NF_MATCH_REALM=m
-CONFIG_IP_NF_MATCH_SCTP=m
-CONFIG_IP_NF_MATCH_COMMENT=m
-CONFIG_IP_NF_MATCH_CONNMARK=m
-CONFIG_IP_NF_MATCH_HASHLIMIT=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_LOG=m
-CONFIG_IP_NF_TARGET_ULOG=m
-CONFIG_IP_NF_TARGET_TCPMSS=m
-CONFIG_IP_NF_NAT=m
-CONFIG_IP_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_SAME=m
-CONFIG_IP_NF_NAT_SNMP_BASIC=m
-CONFIG_IP_NF_NAT_IRC=m
-CONFIG_IP_NF_NAT_FTP=m
-CONFIG_IP_NF_NAT_TFTP=m
-CONFIG_IP_NF_NAT_AMANDA=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_TOS=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_DSCP=m
-CONFIG_IP_NF_TARGET_MARK=m
-CONFIG_IP_NF_TARGET_CLASSIFY=m
-CONFIG_IP_NF_TARGET_CONNMARK=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_TARGET_NOTRACK=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-
-#
-# IPv6: Netfilter Configuration (EXPERIMENTAL)
-#
-CONFIG_IP6_NF_QUEUE=m
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_LIMIT=m
-CONFIG_IP6_NF_MATCH_MAC=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_MULTIPORT=m
-CONFIG_IP6_NF_MATCH_OWNER=m
-CONFIG_IP6_NF_MATCH_MARK=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_AHESP=m
-CONFIG_IP6_NF_MATCH_LENGTH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-# CONFIG_IP6_NF_MATCH_PHYSDEV is not set
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_LOG=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_TARGET_MARK=m
-CONFIG_IP6_NF_RAW=m
-
-#
-# Bridge: Netfilter Configuration
-#
-# CONFIG_BRIDGE_NF_EBTABLES is not set
-CONFIG_XFRM=y
-CONFIG_XFRM_USER=m
-
-#
-# SCTP Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP_SCTP is not set
-# CONFIG_ATM is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_NET_DIVERT is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-
-#
-# QoS and/or fair queueing
-#
-CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_CLK_JIFFIES=y
-# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
-# CONFIG_NET_SCH_CLK_CPU is not set
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_PRIO=m
-CONFIG_NET_SCH_RED=m
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_NETEM=m
-CONFIG_NET_SCH_INGRESS=m
-CONFIG_NET_QOS=y
-CONFIG_NET_ESTIMATOR=y
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_ROUTE=y
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-CONFIG_CLS_U32_PERF=y
-CONFIG_NET_CLS_IND=y
-CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_STACK=32
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_NBYTE=m
-CONFIG_NET_EMATCH_U32=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-CONFIG_NETPOLL=y
-CONFIG_NETPOLL_RX=y
-CONFIG_NETPOLL_TRAP=y
-CONFIG_NET_POLL_CONTROLLER=y
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIUSB=m
-CONFIG_BT_HCIUSB_SCO=y
-# CONFIG_BT_HCIUART is not set
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-# CONFIG_BT_HCIVHCI is not set
-CONFIG_NETDEVICES=y
-CONFIG_NETIF_DMA=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-CONFIG_TUN=m
-
-#
-# ARCnet devices
-#
-# CONFIG_ARCNET is not set
-
-#
-# Ethernet (10 or 100Mbit)
-#
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=y
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_SUNGEM is not set
-# CONFIG_NET_VENDOR_3COM is not set
-
-#
-# Tulip family network device support
-#
-# CONFIG_NET_TULIP is not set
-# CONFIG_HP100 is not set
-CONFIG_NET_PCI=y
-# CONFIG_PCNET32 is not set
-# CONFIG_AMD8111_ETH is not set
-# CONFIG_ADAPTEC_STARFIRE is not set
-# CONFIG_B44 is not set
-# CONFIG_FORCEDETH is not set
-# CONFIG_DGRS is not set
-# CONFIG_EEPRO100 is not set
-# CONFIG_E100 is not set
-# CONFIG_FEALNX is not set
-# CONFIG_NATSEMI is not set
-# CONFIG_NE2K_PCI is not set
-# CONFIG_8139CP is not set
-CONFIG_8139TOO=y
-CONFIG_8139TOO_PIO=y
-# CONFIG_8139TOO_TUNE_TWISTER is not set
-# CONFIG_8139TOO_8129 is not set
-# CONFIG_8139_OLD_RX_RESET is not set
-# CONFIG_SIS900 is not set
-# CONFIG_EPIC100 is not set
-# CONFIG_SUNDANCE is not set
-# CONFIG_TLAN is not set
-# CONFIG_VIA_RHINE is not set
-# CONFIG_LAN_SAA9730 is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-# CONFIG_E1000 is not set
-# CONFIG_NS83820 is not set
-# CONFIG_HAMACHI is not set
-# CONFIG_YELLOWFIN is not set
-# CONFIG_R8169 is not set
-# CONFIG_SK98LIN is not set
-# CONFIG_VIA_VELOCITY is not set
-# CONFIG_TIGON3 is not set
-# CONFIG_BNX2 is not set
-
-#
-# Ethernet (10000 Mbit)
-#
-# CONFIG_IXGB is not set
-# CONFIG_S2IO is not set
-
-#
-# Token Ring devices
-#
-# CONFIG_TR is not set
-
-#
-# Wireless LAN (non-hamradio)
-#
-CONFIG_NET_RADIO=y
-
-#
-# Obsolete Wireless cards support (pre-802.11)
-#
-# CONFIG_STRIP is not set
-
-#
-# Wireless 802.11b ISA/PCI cards support
-#
-# CONFIG_HERMES is not set
-# CONFIG_ATMEL is not set
-
-#
-# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
-#
-# CONFIG_PRISM54 is not set
-CONFIG_NET_WIRELESS=y
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPPOE=m
-# CONFIG_SLIP is not set
-# CONFIG_NET_FC is not set
-CONFIG_SHAPER=m
-CONFIG_NETCONSOLE=m
-
-#
-# ISDN subsystem
-#
-# CONFIG_ISDN is not set
-
-#
-# Telephony Support
-#
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=m
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-CONFIG_INPUT_JOYDEV=m
-# CONFIG_INPUT_TSDEV is not set
-CONFIG_INPUT_EVDEV=y
-CONFIG_INPUT_EVBUG=m
-
-#
-# Input Device Drivers
-#
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-# CONFIG_INPUT_MISC is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
-CONFIG_SERIO_SERPORT=y
-# CONFIG_SERIO_PCIPS2 is not set
-# CONFIG_SERIO_LIBPS2 is not set
-# CONFIG_SERIO_RAW is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=4
-# CONFIG_SERIAL_8250_EXTENDED is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=256
-
-#
-# IPMI
-#
-# CONFIG_IPMI_HANDLER is not set
-
-#
-# Watchdog Cards
-#
-# CONFIG_WATCHDOG is not set
-CONFIG_RTC=m
-# CONFIG_GEN_RTC is not set
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-
-#
-# Ftape, the floppy tape device driver
-#
-# CONFIG_DRM is not set
-# CONFIG_RAW_DRIVER is not set
-
-#
-# TPM devices
-#
-# CONFIG_TCG_TPM is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=y
-CONFIG_I2C_CHARDEV=y
-
-#
-# I2C Algorithms
-#
-# CONFIG_I2C_ALGOBIT is not set
-# CONFIG_I2C_ALGOPCF is not set
-# CONFIG_I2C_ALGOPCA is not set
-
-#
-# I2C Hardware Bus support
-#
-# CONFIG_I2C_ALI1535 is not set
-# CONFIG_I2C_ALI1563 is not set
-# CONFIG_I2C_ALI15X3 is not set
-# CONFIG_I2C_AMD756 is not set
-# CONFIG_I2C_AMD8111 is not set
-# CONFIG_I2C_I801 is not set
-# CONFIG_I2C_I810 is not set
-# CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_ISA is not set
-# CONFIG_I2C_NFORCE2 is not set
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_PROSAVAGE is not set
-# CONFIG_I2C_SAVAGE4 is not set
-# CONFIG_SCx200_ACB is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-# CONFIG_I2C_VOODOO3 is not set
-# CONFIG_I2C_PCA_ISA is not set
-
-#
-# Hardware Sensors Chip support
-#
-# CONFIG_I2C_SENSOR is not set
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ASB100 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_FSCHER is not set
-# CONFIG_SENSORS_FSCPOS is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83627HF is not set
-
-#
-# Other I2C Chip support
-#
-# CONFIG_SENSORS_DS1337 is not set
-# CONFIG_SENSORS_EEPROM is not set
-# CONFIG_SENSORS_PCF8574 is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_SENSORS_RTC8564 is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
-
-#
-# Dallas's 1-wire bus
-#
-# CONFIG_W1 is not set
-
-#
-# Misc devices
-#
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
-# Digital Video Broadcasting Devices
-#
-CONFIG_DVB=y
-CONFIG_DVB_CORE=y
-
-#
-# Supported SAA7146 based PCI Adapters
-#
-# CONFIG_DVB_AV7110 is not set
-# CONFIG_DVB_BUDGET is not set
-# CONFIG_DVB_BUDGET_CI is not set
-# CONFIG_DVB_BUDGET_AV is not set
-
-#
-# Supported USB Adapters
-#
-# CONFIG_DVB_TTUSB_BUDGET is not set
-# CONFIG_DVB_TTUSB_DEC is not set
-# CONFIG_DVB_DIBUSB is not set
-# CONFIG_DVB_CINERGYT2 is not set
-
-#
-# Supported FlexCopII (B2C2) Adapters
-#
-# CONFIG_DVB_B2C2_FLEXCOP is not set
-# CONFIG_DVB_B2C2_SKYSTAR is not set
-
-#
-# Supported BT878 Adapters
-#
-
-#
-# Supported DVB Frontends
-#
-
-#
-# Customise DVB Frontends
-#
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_STV0299=m
-# CONFIG_DVB_CX24110 is not set
-CONFIG_DVB_TDA8083=m
-# CONFIG_DVB_TDA80XX is not set
-CONFIG_DVB_MT312=m
-CONFIG_DVB_VES1X93=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-# CONFIG_DVB_SP8870 is not set
-# CONFIG_DVB_SP887X is not set
-# CONFIG_DVB_CX22700 is not set
-# CONFIG_DVB_CX22702 is not set
-CONFIG_DVB_L64781=m
-# CONFIG_DVB_TDA1004X is not set
-# CONFIG_DVB_NXT6000 is not set
-# CONFIG_DVB_MT352 is not set
-# CONFIG_DVB_DIB3000MB is not set
-# CONFIG_DVB_DIB3000MC is not set
-
-#
-# DVB-C (cable) frontends
-#
-# CONFIG_DVB_ATMEL_AT76C651 is not set
-CONFIG_DVB_VES1820=m
-CONFIG_DVB_TDA10021=m
-# CONFIG_DVB_STV0297 is not set
-
-#
-# ATSC (North American/Korean Terresterial DTV) frontends
-#
-# CONFIG_DVB_NXT2002 is not set
-# CONFIG_DVB_OR51211 is not set
-# CONFIG_DVB_OR51132 is not set
-
-#
-# Graphics support
-#
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-CONFIG_FB_SOFT_CURSOR=y
-# CONFIG_FB_MACMODES is not set
-# CONFIG_FB_MODE_HELPERS is not set
-# CONFIG_FB_TILEBLITTING is not set
-# CONFIG_FB_CIRRUS is not set
-# CONFIG_FB_PM2 is not set
-# CONFIG_FB_CYBER2000 is not set
-# CONFIG_FB_ASILIANT is not set
-# CONFIG_FB_IMSTT is not set
-# CONFIG_FB_NVIDIA is not set
-# CONFIG_FB_RIVA is not set
-# CONFIG_FB_MATROX is not set
-# CONFIG_FB_RADEON_OLD is not set
-# CONFIG_FB_RADEON is not set
-# CONFIG_FB_ATY128 is not set
-# CONFIG_FB_ATY is not set
-# CONFIG_FB_SAVAGE is not set
-# CONFIG_FB_SIS is not set
-# CONFIG_FB_NEOMAGIC is not set
-# CONFIG_FB_KYRO is not set
-# CONFIG_FB_3DFX is not set
-# CONFIG_FB_VOODOO1 is not set
-# CONFIG_FB_TRIDENT is not set
-# CONFIG_FB_E1356 is not set
-# CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_VIRTUAL is not set
-
-#
-# Console display driver support
-#
-# CONFIG_VGA_CONSOLE is not set
-CONFIG_DUMMY_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE is not set
-
-#
-# Logo configuration
-#
-# CONFIG_LOGO is not set
-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-
-#
-# Sound
-#
-CONFIG_SOUND=y
-
-#
-# Advanced Linux Sound Architecture
-#
-CONFIG_SND=y
-CONFIG_SND_TIMER=y
-CONFIG_SND_PCM=y
-# CONFIG_SND_SEQUENCER is not set
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=y
-CONFIG_SND_PCM_OSS=y
-CONFIG_SND_RTCTIMER=m
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-
-#
-# Generic devices
-#
-# CONFIG_SND_DUMMY is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-
-#
-# PCI devices
-#
-# CONFIG_SND_ALI5451 is not set
-# CONFIG_SND_ATIIXP is not set
-# CONFIG_SND_ATIIXP_MODEM is not set
-# CONFIG_SND_AU8810 is not set
-# CONFIG_SND_AU8820 is not set
-# CONFIG_SND_AU8830 is not set
-# CONFIG_SND_AZT3328 is not set
-# CONFIG_SND_BT87X is not set
-# CONFIG_SND_CS46XX is not set
-# CONFIG_SND_CS4281 is not set
-# CONFIG_SND_EMU10K1 is not set
-# CONFIG_SND_EMU10K1X is not set
-# CONFIG_SND_CA0106 is not set
-# CONFIG_SND_KORG1212 is not set
-# CONFIG_SND_MIXART is not set
-# CONFIG_SND_NM256 is not set
-# CONFIG_SND_RME32 is not set
-# CONFIG_SND_RME96 is not set
-# CONFIG_SND_RME9652 is not set
-# CONFIG_SND_HDSP is not set
-# CONFIG_SND_TRIDENT is not set
-# CONFIG_SND_YMFPCI is not set
-# CONFIG_SND_ALS4000 is not set
-# CONFIG_SND_CMIPCI is not set
-# CONFIG_SND_ENS1370 is not set
-# CONFIG_SND_ENS1371 is not set
-# CONFIG_SND_ES1938 is not set
-# CONFIG_SND_ES1968 is not set
-# CONFIG_SND_MAESTRO3 is not set
-# CONFIG_SND_FM801 is not set
-# CONFIG_SND_ICE1712 is not set
-# CONFIG_SND_ICE1724 is not set
-# CONFIG_SND_INTEL8X0 is not set
-# CONFIG_SND_INTEL8X0M is not set
-# CONFIG_SND_SONICVIBES is not set
-# CONFIG_SND_VIA82XX is not set
-# CONFIG_SND_VIA82XX_MODEM is not set
-# CONFIG_SND_VX222 is not set
-# CONFIG_SND_HDA_INTEL is not set
-
-#
-# ALSA MIPS devices
-#
-
-#
-# USB devices
-#
-# CONFIG_SND_USB_AUDIO is not set
-
-#
-# Open Sound System
-#
-# CONFIG_SOUND_PRIME is not set
-
-#
-# USB support
-#
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB=y
-CONFIG_USB_DEBUG=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_BANDWIDTH is not set
-# CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_OTG is not set
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_EHCI_HCD is not set
-CONFIG_USB_OHCI_HCD=y
-# CONFIG_USB_OHCI_BIG_ENDIAN is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-# CONFIG_USB_UHCI_HCD is not set
-# CONFIG_USB_SL811_HCD is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_AUDIO=m
-
-#
-# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem
-#
-CONFIG_USB_MIDI=m
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-
-#
-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
-#
-CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_DATAFAB=y
-CONFIG_USB_STORAGE_FREECOM=y
-CONFIG_USB_STORAGE_ISD200=y
-CONFIG_USB_STORAGE_DPCM=y
-CONFIG_USB_STORAGE_USBAT=y
-CONFIG_USB_STORAGE_SDDR09=y
-CONFIG_USB_STORAGE_SDDR55=y
-CONFIG_USB_STORAGE_JUMPSHOT=y
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=y
-CONFIG_USB_HIDINPUT=y
-# CONFIG_HID_FF is not set
-# CONFIG_USB_HIDDEV is not set
-
-#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-CONFIG_USB_AIPTEK=m
-CONFIG_USB_WACOM=m
-CONFIG_USB_KBTAB=m
-CONFIG_USB_POWERMATE=m
-CONFIG_USB_MTOUCH=m
-CONFIG_USB_EGALAX=m
-CONFIG_USB_XPAD=m
-CONFIG_USB_ATI_REMOTE=m
-
-#
-# USB Imaging devices
-#
-CONFIG_USB_MDC800=m
-CONFIG_USB_MICROTEK=m
-
-#
-# USB Multimedia devices
-#
-CONFIG_USB_DABUSB=m
-
-#
-# Video4Linux support is needed for USB Multimedia device support
-#
-
-#
-# USB Network Adapters
-#
-# CONFIG_USB_CATC is not set
-# CONFIG_USB_KAWETH is not set
-# CONFIG_USB_PEGASUS is not set
-# CONFIG_USB_RTL8150 is not set
-# CONFIG_USB_USBNET is not set
-# CONFIG_USB_ZD1201 is not set
-CONFIG_USB_MON=y
-
-#
-# USB port drivers
-#
-
-#
-# USB Serial Converter support
-#
-# CONFIG_USB_SERIAL is not set
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
-# CONFIG_USB_AUERSWALD is not set
-# CONFIG_USB_RIO500 is not set
-# CONFIG_USB_LEGOTOWER is not set
-# CONFIG_USB_LCD is not set
-# CONFIG_USB_LED is not set
-# CONFIG_USB_CYTHERM is not set
-# CONFIG_USB_PHIDGETKIT is not set
-# CONFIG_USB_PHIDGETSERVO is not set
-# CONFIG_USB_IDMOUSE is not set
-
-#
-# USB ATM/DSL drivers
-#
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# MMC/SD Card support
-#
-# CONFIG_MMC is not set
-
-#
-# InfiniBand support
-#
-# CONFIG_INFINIBAND is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=y
-# CONFIG_EXT2_FS_XATTR is not set
-CONFIG_EXT3_FS=y
-CONFIG_EXT3_FS_XATTR=y
-# CONFIG_EXT3_FS_POSIX_ACL is not set
-# CONFIG_EXT3_FS_SECURITY is not set
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-# CONFIG_REISERFS_FS_XATTR is not set
-# CONFIG_JFS_FS is not set
-CONFIG_FS_POSIX_ACL=y
-
-#
-# XFS support
-#
-CONFIG_XFS_FS=m
-CONFIG_XFS_EXPORT=y
-# CONFIG_XFS_RT is not set
-# CONFIG_XFS_QUOTA is not set
-# CONFIG_XFS_SECURITY is not set
-# CONFIG_XFS_POSIX_ACL is not set
-CONFIG_MINIX_FS=m
-# CONFIG_ROMFS_FS is not set
-# CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
-CONFIG_AUTOFS_FS=m
-CONFIG_AUTOFS4_FS=m
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=y
-CONFIG_JOLIET=y
-# CONFIG_ZISOFS is not set
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-CONFIG_NTFS_FS=m
-CONFIG_NTFS_DEBUG=y
-CONFIG_NTFS_RW=y
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-CONFIG_SYSFS=y
-CONFIG_DEVFS_FS=y
-CONFIG_DEVFS_MOUNT=y
-# CONFIG_DEVFS_DEBUG is not set
-# CONFIG_DEVPTS_FS_XATTR is not set
-CONFIG_TMPFS=y
-# CONFIG_TMPFS_XATTR is not set
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_JFFS_FS is not set
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_NAND=y
-# CONFIG_JFFS2_FS_NOR_ECC is not set
-# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_CRAMFS is not set
-CONFIG_SQUASHFS=m
-# CONFIG_SQUASHFS_EMBEDDED is not set
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-# CONFIG_SQUASHFS_VMALLOC is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-
-#
-# Network File Systems
-#
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-CONFIG_NFS_V4=y
-# CONFIG_NFS_DIRECTIO is not set
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V4=y
-CONFIG_NFSD_TCP=y
-CONFIG_ROOT_NFS=y
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
-CONFIG_SUNRPC=y
-CONFIG_SUNRPC_GSS=y
-CONFIG_RPCSEC_GSS_KRB5=y
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS is not set
-# CONFIG_CIFS_XATTR is not set
-# CONFIG_CIFS_EXPERIMENTAL is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-
-#
-# Native Language Support
-#
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_UTF8=y
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-# CONFIG_DEBUG_KERNEL is not set
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_CROSSCOMPILE=y
-CONFIG_CMDLINE="console=null root=/dev/mtdblock2 rootfstype=jffs2 ro"
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-
-#
-# Cryptographic options
-#
-CONFIG_CRYPTO=y
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_WP512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_DES=y
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_AES=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_CRC32C=m
-CONFIG_CRYPTO_TEST=m
-
-#
-# Hardware crypto devices
-#
-
-#
-# Library routines
-#
-CONFIG_CRC_CCITT=m
-CONFIG_CRC32=y
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_ISA_DMA_API=y
-# CONFIG_SERIAL_CONSOLE is not set
+++ /dev/null
-DESCRIPTION = "Linux kernel for Dreambox DM8000"
-LICENSE = "GPL"
-PN = "linux-dm800"
-KV = "2.6.12"
-PV = "2.6.12"
-PR = "r9"
-
-# note, the rX in the filename is *NOT* the packet revision - it's the patch revision.
-SRC_URI += "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${KV}.tar.bz2 \
- file://dm800_defconfig \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-brcm-5.1.patch.bz2;patch=1;pnum=1 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-update_dvbapi-r1.patch.bz2;patch=1;pnum=1 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvb-multipid-r4.patch.bz2;patch=1;pnum=1 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvb-core-fix-several-locking-problems.patch.bz2;patch=1;pnum=1 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvbapi-pilot-rolloff-extension-r0.patch.bz2;patch=1;pnum=1\
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-update-wireless.patch.bz2;patch=1;pnum=1\
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-add-ioprio.patch.bz2;patch=1;pnum=1 \
- file://linux-2.6.12-dream-misc.patch;patch=1;pnum=1 \
- file://linux-2.6.12-fix-serial.patch;patch=1;pnum=1 \
- file://linux-2.6.12-dm800-flash-layout.patch;patch=1;pnum=1 \
- file://linux-2.6.12-dream-temp.patch;patch=1;pnum=1 \
- file://linux-2.6.12-brcm-mtd-blkdevfs-fix.diff;patch=1;pnum=1 \
- file://linux-2.6.12-set-custom-extraversion.patch;patch=1;pnum=1 \
- file://linux-2.6.12-7401C0-enable-llsc.patch;patch=1;pnum=1 \
- file://linux-2.6.12-fixup-prom-args.patch;patch=1;pnum=1 \
- file://linux-2.6.12-fixup-memsize.patch;patch=1;pnum=1 \
- file://linuxmips-2.6.12-fix-fadvise.patch;patch=1;pnum=1 \
- file://linuxmips-2.6.12-fix-futex.patch;patch=1;pnum=1 \
- file://linuxmips-2.6.12-gcc4-compile-fix.patch;patch=1;pnum=1 \
- file://linuxmips-2.6.12-gdb-fix.patch;patch=1;pnum=1"
-
-S = "${WORKDIR}/stblinux-2.6.12"
-
-inherit kernel
-
-FILES_kernel-image = "/boot/vmlinux.gz /boot/autoexec.bat"
-
-export OS = "Linux"
-KERNEL_IMAGETYPE = "vmlinux"
-KERNEL_OUTPUT = "vmlinux"
-KERNEL_OBJECT_SUFFIX = "ko"
-
-do_munge() {
- mv ${WORKDIR}/linux-2.6.12 ${WORKDIR}/stblinux-2.6.12
- if [ -d ${S}/drivers/sound ]; then
- rm -R ${S}/drivers/sound;
- fi;
-}
-
-addtask munge before do_patch after do_unpack
-
-do_configure_prepend() {
- oe_machinstall -m 0644 ${WORKDIR}/dm800_defconfig ${S}/.config
- oe_runmake oldconfig
-}
-
-do_install_append () {
- install -d ${D}/boot
- install -m 0755 vmlinux ${D}/boot/vmlinux
- echo "/flash/bootlogo.elf" > ${D}/boot/autoexec.bat
- gzip ${D}/boot/vmlinux
- echo "/flash/vmlinux.gz" >> ${D}/boot/autoexec.bat
-}
-
-pkg_preinst_kernel-image () {
- [ -d /proc/stb ] && mount -o rw,remount /boot
- true
-}
-
-pkg_postinst_kernel-image () {
- [ -d /proc/stb ] && mount -o ro,remount /boot
- true
-}
-
-pkg_prerm_kernel-image () {
- [ -d /proc/stb ] && mount -o rw,remount /boot
- true
-}
-
-pkg_postrm_kernel-image () {
- [ -d /proc/stb ] && mount -o ro,remount /boot
- true
-}
+++ /dev/null
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.12-5.1-brcmstb-dm800
-# Thu Feb 28 19:09:49 2008
-#
-CONFIG_MIPS=y
-
-#
-# Code maturity level options
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_CLEAN_COMPILE=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-
-#
-# General setup
-#
-CONFIG_LOCALVERSION=""
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-# CONFIG_AUDIT is not set
-CONFIG_HOTPLUG=y
-CONFIG_KOBJECT_UEVENT=y
-# CONFIG_IKCONFIG is not set
-CONFIG_EMBEDDED=y
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SHMEM=y
-CONFIG_CC_ALIGN_FUNCTIONS=0
-CONFIG_CC_ALIGN_LABELS=0
-CONFIG_CC_ALIGN_LOOPS=0
-CONFIG_CC_ALIGN_JUMPS=0
-# CONFIG_TINY_SHMEM is not set
-CONFIG_BASE_SMALL=0
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_OBSOLETE_MODPARM=y
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-
-#
-# Machine selection
-#
-# CONFIG_MIPS_BCM3560A0 is not set
-# CONFIG_MIPS_BCM3560B0 is not set
-# CONFIG_MIPS_BCM3563 is not set
-# CONFIG_MIPS_BCM3563C0 is not set
-# CONFIG_MIPS_BCM7038B0 is not set
-# CONFIG_MIPS_BCM7038CX is not set
-# CONFIG_MIPS_BCM97398 is not set
-# CONFIG_MIPS_BCM7110 is not set
-# CONFIG_MIPS_BCM7111 is not set
-# CONFIG_MIPS_BCM7112 is not set
-# CONFIG_MIPS_BCM7115 is not set
-# CONFIG_MIPS_BCM7118AX is not set
-# CONFIG_MIPS_BCM7118A0_NAND is not set
-# CONFIG_MIPS_BCM7312 is not set
-# CONFIG_MIPS_BCM7315 is not set
-# CONFIG_MIPS_BCM7317 is not set
-# CONFIG_MIPS_BCM7318 is not set
-# CONFIG_MIPS_BCM7319 is not set
-# CONFIG_MIPS_BCM7320 is not set
-# CONFIG_MIPS_BCM7328 is not set
-# CONFIG_MIPS_BCM7329 is not set
-# CONFIG_MIPS_BCM97456 is not set
-# CONFIG_MIPS_BCM97456BX is not set
-# CONFIG_MIPS_BCM97456BX_NAND is not set
-# CONFIG_MIPS_BCM7400AX is not set
-# CONFIG_MIPS_BCM7400BX is not set
-# CONFIG_MIPS_BCM7400BX_NAND is not set
-# CONFIG_MIPS_BCM7400AX_NAND is not set
-# CONFIG_MIPS_BCM7405AX is not set
-# CONFIG_MIPS_BCM97455 is not set
-# CONFIG_MIPS_BCM7401AX is not set
-# CONFIG_MIPS_BCM7401BX is not set
-# CONFIG_MIPS_BCM7401BX_NAND is not set
-# CONFIG_MIPS_BCM97455B0 is not set
-CONFIG_MIPS_BCM7401CX=y
-# CONFIG_MIPS_BCM7401CX_NAND is not set
-# CONFIG_MIPS_BCM97455CX is not set
-# CONFIG_MIPS_BCM97455CX_NAND is not set
-# CONFIG_MIPS_BCM97458AX is not set
-# CONFIG_MIPS_BCM97458AX_NAND is not set
-# CONFIG_MIPS_BCM7402S is not set
-# CONFIG_MIPS_BCM7402B0S is not set
-# CONFIG_MIPS_BCM7402A0 is not set
-# CONFIG_MIPS_BCM7402CX is not set
-# CONFIG_MIPS_BCM7402CX_NAND is not set
-# CONFIG_MIPS_BCM7403AX is not set
-# CONFIG_MIPS_BCM7451AX_SMB is not set
-# CONFIG_MIPS_BCM7403AX_NAND is not set
-# CONFIG_MIPS_BCM7452AX is not set
-# CONFIG_MIPS_BCM7452AX_NAND is not set
-# CONFIG_MIPS_BCM7440AX is not set
-# CONFIG_MIPS_BCM7440BX is not set
-# CONFIG_MIPS_BCM7440BX_NAND is not set
-# CONFIG_MIPS_BCM93730 is not set
-# CONFIG_MIPS_MTX1 is not set
-# CONFIG_MIPS_BOSPORUS is not set
-# CONFIG_MIPS_PB1000 is not set
-# CONFIG_MIPS_PB1100 is not set
-# CONFIG_MIPS_PB1500 is not set
-# CONFIG_MIPS_PB1550 is not set
-# CONFIG_MIPS_PB1200 is not set
-# CONFIG_MIPS_DB1000 is not set
-# CONFIG_MIPS_DB1100 is not set
-# CONFIG_MIPS_DB1500 is not set
-# CONFIG_MIPS_DB1550 is not set
-# CONFIG_MIPS_DB1200 is not set
-# CONFIG_MIPS_MIRAGE is not set
-# CONFIG_MIPS_COBALT is not set
-# CONFIG_MACH_DECSTATION is not set
-# CONFIG_MIPS_EV64120 is not set
-# CONFIG_MIPS_EV96100 is not set
-# CONFIG_MIPS_IVR is not set
-# CONFIG_MIPS_ITE8172 is not set
-# CONFIG_MACH_JAZZ is not set
-# CONFIG_LASAT is not set
-# CONFIG_MIPS_ATLAS is not set
-# CONFIG_MIPS_MALTA is not set
-# CONFIG_MIPS_SEAD is not set
-# CONFIG_MOMENCO_JAGUAR_ATX is not set
-# CONFIG_MOMENCO_OCELOT is not set
-# CONFIG_MOMENCO_OCELOT_3 is not set
-# CONFIG_MOMENCO_OCELOT_C is not set
-# CONFIG_MOMENCO_OCELOT_G is not set
-# CONFIG_MIPS_XXS1500 is not set
-# CONFIG_DDB5074 is not set
-# CONFIG_DDB5476 is not set
-# CONFIG_DDB5477 is not set
-# CONFIG_MACH_VR41XX is not set
-# CONFIG_PMC_YOSEMITE is not set
-# CONFIG_QEMU is not set
-# CONFIG_SGI_IP22 is not set
-# CONFIG_SGI_IP27 is not set
-# CONFIG_SGI_IP32 is not set
-# CONFIG_SIBYTE_SWARM is not set
-# CONFIG_SIBYTE_SENTOSA is not set
-# CONFIG_SIBYTE_RHONE is not set
-# CONFIG_SIBYTE_CARMEL is not set
-# CONFIG_SIBYTE_PTSWARM is not set
-# CONFIG_SIBYTE_LITTLESUR is not set
-# CONFIG_SIBYTE_CRHINE is not set
-# CONFIG_SIBYTE_CRHONE is not set
-# CONFIG_SNI_RM200_PCI is not set
-# CONFIG_TOSHIBA_JMR3927 is not set
-# CONFIG_TOSHIBA_RBTX4927 is not set
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_HAVE_DEC_LOCK=y
-CONFIG_DMA_NONCOHERENT=y
-# CONFIG_CPU_BIG_ENDIAN is not set
-CONFIG_CPU_LITTLE_ENDIAN=y
-CONFIG_SYS_SUPPORTS_CPUFREQ=y
-CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
-CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
-CONFIG_IRQ_CPU=y
-CONFIG_MIPS_BRCM97XXX=y
-CONFIG_MIPS_BCM7401C0=y
-CONFIG_MIPS_BCM7401=y
-CONFIG_MIPS_BRCM=y
-CONFIG_BRCM_7XXX_SERIAL=y
-# CONFIG_LONG_LONG_SUPPORT is not set
-CONFIG_SERIAL=y
-CONFIG_MIPS_L1_CACHE_SHIFT=5
-
-#
-# Power management
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_TABLE=y
-# CONFIG_CPU_FREQ_DEBUG is not set
-CONFIG_CPU_FREQ_STAT=y
-CONFIG_CPU_FREQ_STAT_DETAILS=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=m
-CONFIG_CPU_FREQ_GOV_USERSPACE=m
-CONFIG_CPU_FREQ_GOV_ONDEMAND=m
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
-CONFIG_CPU_FREQ_BRCM=y
-
-#
-# CPU selection
-#
-# CONFIG_CPU_MIPS32_R2 is not set
-CONFIG_CPU_MIPS32_R1=y
-# CONFIG_CPU_MIPS64_R1 is not set
-# CONFIG_CPU_R3000 is not set
-# CONFIG_CPU_TX39XX is not set
-# CONFIG_CPU_VR41XX is not set
-# CONFIG_CPU_R4300 is not set
-# CONFIG_CPU_R4X00 is not set
-# CONFIG_CPU_TX49XX is not set
-# CONFIG_CPU_R5000 is not set
-# CONFIG_CPU_R5432 is not set
-# CONFIG_CPU_R6000 is not set
-# CONFIG_CPU_NEVADA is not set
-# CONFIG_CPU_R8000 is not set
-# CONFIG_CPU_R10000 is not set
-# CONFIG_CPU_RM7000 is not set
-# CONFIG_CPU_RM9000 is not set
-# CONFIG_CPU_SB1 is not set
-CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
-CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
-
-#
-# Kernel type
-#
-CONFIG_MIPS32=y
-# CONFIG_MIPS64 is not set
-# CONFIG_64BIT is not set
-CONFIG_PAGE_SIZE_4KB=y
-# CONFIG_PAGE_SIZE_8KB is not set
-# CONFIG_PAGE_SIZE_16KB is not set
-# CONFIG_PAGE_SIZE_64KB is not set
-CONFIG_CPU_HAS_PREFETCH=y
-# CONFIG_64BIT_PHYS_ADDR is not set
-# CONFIG_CPU_ADVANCED is not set
-CONFIG_CPU_HAS_LLSC=y
-CONFIG_CPU_HAS_SYNC=y
-# CONFIG_PREEMPT is not set
-
-#
-# Bus options (PCI, PCMCIA, EISA, ISA, TC)
-#
-CONFIG_HW_HAS_PCI=y
-CONFIG_PCI=y
-CONFIG_PCI_LEGACY_PROC=y
-# CONFIG_PCI_NAMES is not set
-CONFIG_MMU=y
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
-# CONFIG_PCCARD is not set
-
-#
-# PCI Hotplug Support
-#
-# CONFIG_HOTPLUG_PCI is not set
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
-CONFIG_TRAD_SIGNALS=y
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_STANDALONE=y
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-CONFIG_FW_LOADER=y
-
-#
-# Memory Technology Devices (MTD)
-#
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_CONCAT is not set
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_MTD_BLOCK_ROMBLOCK is not set
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-# CONFIG_RFD_FTL is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=y
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
-CONFIG_MTD_CFI_ADV_OPTIONS=y
-CONFIG_MTD_CFI_NOSWAP=y
-# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
-# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
-CONFIG_MTD_CFI_GEOMETRY=y
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-# CONFIG_MTD_OTP is not set
-# CONFIG_MTD_CFI_INTELEXT is not set
-CONFIG_MTD_CFI_AMDSTD=y
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=y
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-# CONFIG_MTD_PHYSMAP is not set
-CONFIG_MTD_BCM7XXX=y
-# CONFIG_MTD_MULTI_PHYSMAP is not set
-# CONFIG_MTD_PLATRAM is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_RAMTD is not set
-# CONFIG_MTD_BLKMTD is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-
-#
-# NAND Flash Device Drivers
-#
-CONFIG_MTD_NAND=y
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-CONFIG_MTD_NAND_IDS=y
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
-
-#
-# OneNAND Flash Device Drivers
-#
-# CONFIG_MTD_ONENAND is not set
-
-#
-# Broadcom NAND Flash Device Drivers
-#
-CONFIG_MTD_BRCMNAND=y
-CONFIG_MTD_BRCMNAND_VERIFY_WRITE=y
-CONFIG_MTD_BRCMNAND_VERSION=1
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Plug and Play support
-#
-
-#
-# Block devices
-#
-# CONFIG_BLK_DEV_FD is not set
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_UMEM is not set
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_CRYPTOLOOP=m
-CONFIG_BLK_DEV_NBD=m
-# CONFIG_BLK_DEV_SX8 is not set
-# CONFIG_BLK_DEV_UB is not set
-# CONFIG_BLK_DEV_RAM is not set
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_INITRAMFS_SOURCE=""
-# CONFIG_LBD is not set
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_AS is not set
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-CONFIG_ATA_OVER_ETH=m
-
-#
-# ATA/ATAPI/MFM/RLL support
-#
-CONFIG_IDE=y
-CONFIG_BLK_DEV_IDE=y
-
-#
-# Please see Documentation/ide.txt for help/info on IDE drives
-#
-CONFIG_BLK_DEV_IDE_SATA=y
-CONFIG_BLK_DEV_IDEDISK=y
-CONFIG_IDEDISK_MULTI_MODE=y
-CONFIG_BLK_DEV_IDECD=y
-# CONFIG_BLK_DEV_IDETAPE is not set
-# CONFIG_BLK_DEV_IDEFLOPPY is not set
-# CONFIG_BLK_DEV_IDESCSI is not set
-# CONFIG_IDE_TASK_IOCTL is not set
-
-#
-# IDE chipset support/bugfixes
-#
-CONFIG_IDE_GENERIC=y
-CONFIG_BLK_DEV_IDEPCI=y
-# CONFIG_IDEPCI_SHARE_IRQ is not set
-# CONFIG_BLK_DEV_OFFBOARD is not set
-CONFIG_BLK_DEV_GENERIC=y
-# CONFIG_BLK_DEV_OPTI621 is not set
-CONFIG_BLK_DEV_IDEDMA_PCI=y
-# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
-CONFIG_IDEDMA_PCI_AUTO=y
-# CONFIG_IDEDMA_ONLYDISK is not set
-# CONFIG_BLK_DEV_AEC62XX is not set
-# CONFIG_BLK_DEV_ALI15X3 is not set
-# CONFIG_BLK_DEV_AMD74XX is not set
-# CONFIG_BLK_DEV_CMD64X is not set
-# CONFIG_BLK_DEV_TRIFLEX is not set
-# CONFIG_BLK_DEV_CY82C693 is not set
-# CONFIG_BLK_DEV_CS5520 is not set
-# CONFIG_BLK_DEV_CS5530 is not set
-# CONFIG_BLK_DEV_HPT34X is not set
-# CONFIG_BLK_DEV_HPT366 is not set
-# CONFIG_BLK_DEV_SC1200 is not set
-# CONFIG_BLK_DEV_PIIX is not set
-# CONFIG_BLK_DEV_NS87415 is not set
-# CONFIG_BLK_DEV_PDC202XX_OLD is not set
-# CONFIG_BLK_DEV_PDC202XX_NEW is not set
-CONFIG_BLK_DEV_SVWKS=y
-# CONFIG_BLK_DEV_SIIMAGE is not set
-# CONFIG_BLK_DEV_SLC90E66 is not set
-# CONFIG_BLK_DEV_TRM290 is not set
-# CONFIG_BLK_DEV_VIA82CXXX is not set
-# CONFIG_IDE_ARM is not set
-CONFIG_BLK_DEV_IDEDMA=y
-# CONFIG_IDEDMA_IVB is not set
-CONFIG_IDEDMA_AUTO=y
-# CONFIG_BLK_DEV_HD is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI=m
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=m
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-CONFIG_BLK_DEV_SR=m
-# CONFIG_BLK_DEV_SR_VENDOR is not set
-CONFIG_CHR_DEV_SG=m
-
-#
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-#
-CONFIG_SCSI_MULTI_LUN=y
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-
-#
-# SCSI Transport Attributes
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-
-#
-# SCSI low-level drivers
-#
-# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
-# CONFIG_SCSI_3W_9XXX is not set
-# CONFIG_SCSI_ACARD is not set
-# CONFIG_SCSI_AACRAID is not set
-# CONFIG_SCSI_AIC7XXX is not set
-# CONFIG_SCSI_AIC7XXX_OLD is not set
-# CONFIG_SCSI_AIC79XX is not set
-# CONFIG_SCSI_DPT_I2O is not set
-# CONFIG_MEGARAID_NEWGEN is not set
-# CONFIG_MEGARAID_LEGACY is not set
-# CONFIG_SCSI_SATA is not set
-# CONFIG_SCSI_DMX3191D is not set
-# CONFIG_SCSI_FUTURE_DOMAIN is not set
-# CONFIG_SCSI_IPS is not set
-# CONFIG_SCSI_INITIO is not set
-# CONFIG_SCSI_INIA100 is not set
-# CONFIG_SCSI_SYM53C8XX_2 is not set
-# CONFIG_SCSI_IPR is not set
-# CONFIG_SCSI_QLOGIC_FC is not set
-# CONFIG_SCSI_QLOGIC_1280 is not set
-CONFIG_SCSI_QLA2XXX=m
-# CONFIG_SCSI_QLA21XX is not set
-# CONFIG_SCSI_QLA22XX is not set
-# CONFIG_SCSI_QLA2300 is not set
-# CONFIG_SCSI_QLA2322 is not set
-# CONFIG_SCSI_QLA6312 is not set
-# CONFIG_SCSI_LPFC is not set
-# CONFIG_SCSI_DC395x is not set
-# CONFIG_SCSI_DC390T is not set
-# CONFIG_SCSI_NSP32 is not set
-CONFIG_SCSI_DEBUG=m
-
-#
-# Multi-device support (RAID and LVM)
-#
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=m
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID5=m
-CONFIG_MD_RAID6=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-CONFIG_BLK_DEV_DM=m
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_MIRROR=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_EMC=m
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-# CONFIG_I2O is not set
-
-#
-# Networking support
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-# CONFIG_PACKET_MMAP is not set
-CONFIG_UNIX=y
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IP_PNP_RARP=y
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-CONFIG_ARPD=y
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_TUNNEL=m
-CONFIG_IP_TCPDIAG=y
-# CONFIG_IP_TCPDIAG_IPV6 is not set
-
-#
-# IP: Virtual Server Configuration
-#
-# CONFIG_IP_VS is not set
-CONFIG_IPV6=m
-CONFIG_IPV6_PRIVACY=y
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_IPV6_TUNNEL=m
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_BRIDGE_NETFILTER=y
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_IP_NF_CONNTRACK=m
-# CONFIG_IP_NF_CT_ACCT is not set
-CONFIG_IP_NF_CONNTRACK_MARK=y
-CONFIG_IP_NF_CT_PROTO_SCTP=m
-CONFIG_IP_NF_FTP=m
-CONFIG_IP_NF_IRC=m
-CONFIG_IP_NF_TFTP=m
-CONFIG_IP_NF_AMANDA=m
-CONFIG_IP_NF_QUEUE=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_LIMIT=m
-CONFIG_IP_NF_MATCH_IPRANGE=m
-CONFIG_IP_NF_MATCH_MAC=m
-CONFIG_IP_NF_MATCH_PKTTYPE=m
-CONFIG_IP_NF_MATCH_MARK=m
-CONFIG_IP_NF_MATCH_MULTIPORT=m
-CONFIG_IP_NF_MATCH_TOS=m
-CONFIG_IP_NF_MATCH_RECENT=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_DSCP=m
-CONFIG_IP_NF_MATCH_AH_ESP=m
-CONFIG_IP_NF_MATCH_LENGTH=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_MATCH_TCPMSS=m
-CONFIG_IP_NF_MATCH_HELPER=m
-CONFIG_IP_NF_MATCH_STATE=m
-CONFIG_IP_NF_MATCH_CONNTRACK=m
-CONFIG_IP_NF_MATCH_OWNER=m
-# CONFIG_IP_NF_MATCH_PHYSDEV is not set
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
-CONFIG_IP_NF_MATCH_REALM=m
-CONFIG_IP_NF_MATCH_SCTP=m
-CONFIG_IP_NF_MATCH_COMMENT=m
-CONFIG_IP_NF_MATCH_CONNMARK=m
-CONFIG_IP_NF_MATCH_HASHLIMIT=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_LOG=m
-CONFIG_IP_NF_TARGET_ULOG=m
-CONFIG_IP_NF_TARGET_TCPMSS=m
-CONFIG_IP_NF_NAT=m
-CONFIG_IP_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_SAME=m
-CONFIG_IP_NF_NAT_SNMP_BASIC=m
-CONFIG_IP_NF_NAT_IRC=m
-CONFIG_IP_NF_NAT_FTP=m
-CONFIG_IP_NF_NAT_TFTP=m
-CONFIG_IP_NF_NAT_AMANDA=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_TOS=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_DSCP=m
-CONFIG_IP_NF_TARGET_MARK=m
-CONFIG_IP_NF_TARGET_CLASSIFY=m
-CONFIG_IP_NF_TARGET_CONNMARK=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_TARGET_NOTRACK=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-
-#
-# IPv6: Netfilter Configuration (EXPERIMENTAL)
-#
-CONFIG_IP6_NF_QUEUE=m
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_LIMIT=m
-CONFIG_IP6_NF_MATCH_MAC=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_MULTIPORT=m
-CONFIG_IP6_NF_MATCH_OWNER=m
-CONFIG_IP6_NF_MATCH_MARK=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_AHESP=m
-CONFIG_IP6_NF_MATCH_LENGTH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-# CONFIG_IP6_NF_MATCH_PHYSDEV is not set
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_LOG=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_TARGET_MARK=m
-CONFIG_IP6_NF_RAW=m
-
-#
-# Bridge: Netfilter Configuration
-#
-# CONFIG_BRIDGE_NF_EBTABLES is not set
-CONFIG_XFRM=y
-CONFIG_XFRM_USER=m
-
-#
-# SCTP Configuration (EXPERIMENTAL)
-#
-CONFIG_IP_SCTP=m
-# CONFIG_SCTP_DBG_MSG is not set
-# CONFIG_SCTP_DBG_OBJCNT is not set
-# CONFIG_SCTP_HMAC_NONE is not set
-# CONFIG_SCTP_HMAC_SHA1 is not set
-CONFIG_SCTP_HMAC_MD5=y
-# CONFIG_ATM is not set
-CONFIG_BRIDGE=m
-CONFIG_VLAN_8021Q=m
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_NET_DIVERT is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-
-#
-# QoS and/or fair queueing
-#
-CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_CLK_JIFFIES=y
-# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
-# CONFIG_NET_SCH_CLK_CPU is not set
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_PRIO=m
-CONFIG_NET_SCH_RED=m
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_NETEM=m
-CONFIG_NET_SCH_INGRESS=m
-CONFIG_NET_QOS=y
-CONFIG_NET_ESTIMATOR=y
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_ROUTE=y
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-CONFIG_CLS_U32_PERF=y
-CONFIG_NET_CLS_IND=y
-CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_STACK=32
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_NBYTE=m
-CONFIG_NET_EMATCH_U32=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-CONFIG_NETPOLL=y
-CONFIG_NETPOLL_RX=y
-CONFIG_NETPOLL_TRAP=y
-CONFIG_NET_POLL_CONTROLLER=y
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIUSB=m
-CONFIG_BT_HCIUSB_SCO=y
-# CONFIG_BT_HCIUART is not set
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-# CONFIG_BT_HCIVHCI is not set
-CONFIG_NETDEVICES=y
-CONFIG_NETIF_DMA=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-CONFIG_TUN=m
-
-#
-# ARCnet devices
-#
-# CONFIG_ARCNET is not set
-
-#
-# Ethernet (10 or 100Mbit)
-#
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=y
-CONFIG_BCMINTEMAC_7038=y
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_SUNGEM is not set
-# CONFIG_NET_VENDOR_3COM is not set
-
-#
-# Tulip family network device support
-#
-# CONFIG_NET_TULIP is not set
-# CONFIG_HP100 is not set
-# CONFIG_NET_PCI is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-# CONFIG_E1000 is not set
-# CONFIG_NS83820 is not set
-# CONFIG_HAMACHI is not set
-# CONFIG_YELLOWFIN is not set
-# CONFIG_R8169 is not set
-# CONFIG_SK98LIN is not set
-# CONFIG_TIGON3 is not set
-# CONFIG_BNX2 is not set
-
-#
-# Ethernet (10000 Mbit)
-#
-# CONFIG_IXGB is not set
-# CONFIG_S2IO is not set
-
-#
-# Token Ring devices
-#
-# CONFIG_TR is not set
-
-#
-# Wireless LAN (non-hamradio)
-#
-CONFIG_NET_RADIO=y
-
-#
-# Obsolete Wireless cards support (pre-802.11)
-#
-# CONFIG_STRIP is not set
-
-#
-# Wireless 802.11b ISA/PCI cards support
-#
-# CONFIG_HERMES is not set
-# CONFIG_ATMEL is not set
-
-#
-# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
-#
-# CONFIG_PRISM54 is not set
-CONFIG_NET_WIRELESS=y
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPPOE=m
-# CONFIG_SLIP is not set
-# CONFIG_NET_FC is not set
-# CONFIG_SHAPER is not set
-CONFIG_NETCONSOLE=m
-
-#
-# ISDN subsystem
-#
-# CONFIG_ISDN is not set
-
-#
-# Telephony Support
-#
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=m
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-CONFIG_INPUT_JOYDEV=m
-# CONFIG_INPUT_TSDEV is not set
-CONFIG_INPUT_EVDEV=y
-CONFIG_INPUT_EVBUG=m
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=y
-# CONFIG_MOUSE_SERIAL is not set
-# CONFIG_MOUSE_VSXXXAA is not set
-CONFIG_INPUT_JOYSTICK=y
-# CONFIG_JOYSTICK_ANALOG is not set
-# CONFIG_JOYSTICK_A3D is not set
-# CONFIG_JOYSTICK_ADI is not set
-# CONFIG_JOYSTICK_COBRA is not set
-# CONFIG_JOYSTICK_GF2K is not set
-# CONFIG_JOYSTICK_GRIP is not set
-# CONFIG_JOYSTICK_GRIP_MP is not set
-# CONFIG_JOYSTICK_GUILLEMOT is not set
-# CONFIG_JOYSTICK_INTERACT is not set
-# CONFIG_JOYSTICK_SIDEWINDER is not set
-# CONFIG_JOYSTICK_TMDC is not set
-# CONFIG_JOYSTICK_IFORCE is not set
-# CONFIG_JOYSTICK_WARRIOR is not set
-# CONFIG_JOYSTICK_MAGELLAN is not set
-# CONFIG_JOYSTICK_SPACEORB is not set
-# CONFIG_JOYSTICK_SPACEBALL is not set
-# CONFIG_JOYSTICK_STINGER is not set
-# CONFIG_JOYSTICK_TWIDJOY is not set
-# CONFIG_JOYSTICK_JOYDUMP is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-# CONFIG_TOUCHSCREEN_GUNZE is not set
-# CONFIG_TOUCHSCREEN_ELO is not set
-# CONFIG_TOUCHSCREEN_MTOUCH is not set
-# CONFIG_TOUCHSCREEN_MK712 is not set
-CONFIG_INPUT_MISC=y
-# CONFIG_INPUT_PCSPKR is not set
-# CONFIG_INPUT_UINPUT is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
-# CONFIG_SERIO_SERPORT is not set
-# CONFIG_SERIO_PCIPS2 is not set
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-# CONFIG_VT is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-CONFIG_SERIAL_CONSOLE=y
-
-#
-# Serial drivers
-#
-# CONFIG_SERIAL_8250 is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_LEGACY_PTYS is not set
-
-#
-# IPMI
-#
-# CONFIG_IPMI_HANDLER is not set
-
-#
-# Watchdog Cards
-#
-# CONFIG_WATCHDOG is not set
-# CONFIG_RTC is not set
-# CONFIG_GEN_RTC is not set
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-
-#
-# Ftape, the floppy tape device driver
-#
-# CONFIG_DRM is not set
-# CONFIG_RAW_DRIVER is not set
-
-#
-# TPM devices
-#
-# CONFIG_TCG_TPM is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=y
-CONFIG_I2C_CHARDEV=y
-
-#
-# I2C Algorithms
-#
-# CONFIG_I2C_ALGOBIT is not set
-# CONFIG_I2C_ALGOPCF is not set
-# CONFIG_I2C_ALGOPCA is not set
-
-#
-# I2C Hardware Bus support
-#
-# CONFIG_I2C_ALI1535 is not set
-# CONFIG_I2C_ALI1563 is not set
-# CONFIG_I2C_ALI15X3 is not set
-# CONFIG_I2C_AMD756 is not set
-# CONFIG_I2C_AMD8111 is not set
-# CONFIG_I2C_I801 is not set
-# CONFIG_I2C_I810 is not set
-# CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_ISA is not set
-# CONFIG_I2C_NFORCE2 is not set
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_PROSAVAGE is not set
-# CONFIG_I2C_SAVAGE4 is not set
-# CONFIG_SCx200_ACB is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-# CONFIG_I2C_VOODOO3 is not set
-# CONFIG_I2C_PCA_ISA is not set
-
-#
-# Hardware Sensors Chip support
-#
-# CONFIG_I2C_SENSOR is not set
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ASB100 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_FSCHER is not set
-# CONFIG_SENSORS_FSCPOS is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83627HF is not set
-
-#
-# Other I2C Chip support
-#
-# CONFIG_SENSORS_DS1337 is not set
-# CONFIG_SENSORS_EEPROM is not set
-# CONFIG_SENSORS_PCF8574 is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_SENSORS_RTC8564 is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
-
-#
-# Dallas's 1-wire bus
-#
-# CONFIG_W1 is not set
-
-#
-# Misc devices
-#
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
-# Digital Video Broadcasting Devices
-#
-CONFIG_DVB=y
-CONFIG_DVB_CORE=y
-
-#
-# Supported SAA7146 based PCI Adapters
-#
-# CONFIG_DVB_AV7110 is not set
-# CONFIG_DVB_BUDGET is not set
-# CONFIG_DVB_BUDGET_CI is not set
-# CONFIG_DVB_BUDGET_AV is not set
-
-#
-# Supported USB Adapters
-#
-# CONFIG_DVB_TTUSB_BUDGET is not set
-# CONFIG_DVB_TTUSB_DEC is not set
-# CONFIG_DVB_DIBUSB is not set
-# CONFIG_DVB_CINERGYT2 is not set
-
-#
-# Supported FlexCopII (B2C2) Adapters
-#
-# CONFIG_DVB_B2C2_FLEXCOP is not set
-# CONFIG_DVB_B2C2_SKYSTAR is not set
-
-#
-# Supported BT878 Adapters
-#
-
-#
-# Supported DVB Frontends
-#
-
-#
-# Customise DVB Frontends
-#
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_STV0299=m
-# CONFIG_DVB_CX24110 is not set
-CONFIG_DVB_TDA8083=m
-# CONFIG_DVB_TDA80XX is not set
-CONFIG_DVB_MT312=m
-CONFIG_DVB_VES1X93=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-# CONFIG_DVB_SP8870 is not set
-# CONFIG_DVB_SP887X is not set
-# CONFIG_DVB_CX22700 is not set
-# CONFIG_DVB_CX22702 is not set
-CONFIG_DVB_L64781=m
-# CONFIG_DVB_TDA1004X is not set
-# CONFIG_DVB_NXT6000 is not set
-# CONFIG_DVB_MT352 is not set
-# CONFIG_DVB_DIB3000MB is not set
-# CONFIG_DVB_DIB3000MC is not set
-
-#
-# DVB-C (cable) frontends
-#
-# CONFIG_DVB_ATMEL_AT76C651 is not set
-CONFIG_DVB_VES1820=m
-CONFIG_DVB_TDA10021=m
-# CONFIG_DVB_STV0297 is not set
-
-#
-# ATSC (North American/Korean Terresterial DTV) frontends
-#
-# CONFIG_DVB_NXT2002 is not set
-# CONFIG_DVB_OR51211 is not set
-# CONFIG_DVB_OR51132 is not set
-
-#
-# Graphics support
-#
-CONFIG_FB=y
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-CONFIG_FB_SOFT_CURSOR=y
-# CONFIG_FB_MACMODES is not set
-# CONFIG_FB_MODE_HELPERS is not set
-# CONFIG_FB_TILEBLITTING is not set
-# CONFIG_FB_CIRRUS is not set
-# CONFIG_FB_PM2 is not set
-# CONFIG_FB_CYBER2000 is not set
-# CONFIG_FB_ASILIANT is not set
-# CONFIG_FB_IMSTT is not set
-# CONFIG_FB_NVIDIA is not set
-# CONFIG_FB_RIVA is not set
-# CONFIG_FB_MATROX is not set
-# CONFIG_FB_RADEON_OLD is not set
-# CONFIG_FB_RADEON is not set
-# CONFIG_FB_ATY128 is not set
-# CONFIG_FB_ATY is not set
-# CONFIG_FB_SAVAGE is not set
-# CONFIG_FB_SIS is not set
-# CONFIG_FB_NEOMAGIC is not set
-# CONFIG_FB_KYRO is not set
-# CONFIG_FB_3DFX is not set
-# CONFIG_FB_VOODOO1 is not set
-# CONFIG_FB_SMIVGX is not set
-# CONFIG_FB_TRIDENT is not set
-# CONFIG_FB_E1356 is not set
-# CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_VIRTUAL is not set
-
-#
-# Logo configuration
-#
-# CONFIG_LOGO is not set
-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-
-#
-# Sound
-#
-CONFIG_SOUND=y
-
-#
-# Advanced Linux Sound Architecture
-#
-CONFIG_SND=y
-CONFIG_SND_TIMER=y
-CONFIG_SND_PCM=y
-# CONFIG_SND_SEQUENCER is not set
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=y
-CONFIG_SND_PCM_OSS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-
-#
-# Generic devices
-#
-# CONFIG_SND_DUMMY is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-
-#
-# PCI devices
-#
-# CONFIG_SND_ALI5451 is not set
-# CONFIG_SND_ATIIXP is not set
-# CONFIG_SND_ATIIXP_MODEM is not set
-# CONFIG_SND_AU8810 is not set
-# CONFIG_SND_AU8820 is not set
-# CONFIG_SND_AU8830 is not set
-# CONFIG_SND_AZT3328 is not set
-# CONFIG_SND_BT87X is not set
-# CONFIG_SND_CS46XX is not set
-# CONFIG_SND_CS4281 is not set
-# CONFIG_SND_EMU10K1 is not set
-# CONFIG_SND_EMU10K1X is not set
-# CONFIG_SND_CA0106 is not set
-# CONFIG_SND_KORG1212 is not set
-# CONFIG_SND_MIXART is not set
-# CONFIG_SND_NM256 is not set
-# CONFIG_SND_RME32 is not set
-# CONFIG_SND_RME96 is not set
-# CONFIG_SND_RME9652 is not set
-# CONFIG_SND_HDSP is not set
-# CONFIG_SND_TRIDENT is not set
-# CONFIG_SND_YMFPCI is not set
-# CONFIG_SND_ALS4000 is not set
-# CONFIG_SND_CMIPCI is not set
-# CONFIG_SND_ENS1370 is not set
-# CONFIG_SND_ENS1371 is not set
-# CONFIG_SND_ES1938 is not set
-# CONFIG_SND_ES1968 is not set
-# CONFIG_SND_MAESTRO3 is not set
-# CONFIG_SND_FM801 is not set
-# CONFIG_SND_ICE1712 is not set
-# CONFIG_SND_ICE1724 is not set
-# CONFIG_SND_INTEL8X0 is not set
-# CONFIG_SND_INTEL8X0M is not set
-# CONFIG_SND_SONICVIBES is not set
-# CONFIG_SND_VIA82XX is not set
-# CONFIG_SND_VIA82XX_MODEM is not set
-# CONFIG_SND_VX222 is not set
-# CONFIG_SND_HDA_INTEL is not set
-
-#
-# ALSA MIPS devices
-#
-
-#
-# USB devices
-#
-# CONFIG_SND_USB_AUDIO is not set
-
-#
-# Open Sound System
-#
-# CONFIG_SOUND_PRIME is not set
-
-#
-# USB support
-#
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB=y
-CONFIG_USB_DEBUG=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_BANDWIDTH is not set
-# CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_OTG is not set
-
-#
-# USB Host Controller Drivers
-#
-CONFIG_USB_EHCI_HCD=y
-# CONFIG_USB_EHCI_SPLIT_ISO is not set
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-CONFIG_USB_OHCI_HCD=y
-# CONFIG_USB_OHCI_BIG_ENDIAN is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-# CONFIG_USB_UHCI_HCD is not set
-# CONFIG_USB_SL811_HCD is not set
-CONFIG_USB_BRCM=y
-# CONFIG_USB_BRCM_PWR_CTL is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_AUDIO=m
-
-#
-# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem
-#
-CONFIG_USB_MIDI=m
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-
-#
-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
-#
-CONFIG_USB_STORAGE=m
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_DATAFAB=y
-CONFIG_USB_STORAGE_FREECOM=y
-CONFIG_USB_STORAGE_ISD200=y
-CONFIG_USB_STORAGE_DPCM=y
-CONFIG_USB_STORAGE_USBAT=y
-CONFIG_USB_STORAGE_SDDR09=y
-CONFIG_USB_STORAGE_SDDR55=y
-CONFIG_USB_STORAGE_JUMPSHOT=y
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=m
-CONFIG_USB_HIDINPUT=y
-# CONFIG_HID_FF is not set
-# CONFIG_USB_HIDDEV is not set
-
-#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-CONFIG_USB_AIPTEK=m
-CONFIG_USB_WACOM=m
-CONFIG_USB_KBTAB=m
-CONFIG_USB_POWERMATE=m
-CONFIG_USB_MTOUCH=m
-CONFIG_USB_EGALAX=m
-CONFIG_USB_XPAD=m
-CONFIG_USB_ATI_REMOTE=m
-
-#
-# USB Imaging devices
-#
-CONFIG_USB_MDC800=m
-CONFIG_USB_MICROTEK=m
-
-#
-# USB Multimedia devices
-#
-CONFIG_USB_DABUSB=m
-
-#
-# Video4Linux support is needed for USB Multimedia device support
-#
-
-#
-# USB Network Adapters
-#
-# CONFIG_USB_CATC is not set
-# CONFIG_USB_KAWETH is not set
-# CONFIG_USB_PEGASUS is not set
-# CONFIG_USB_RTL8150 is not set
-# CONFIG_USB_USBNET is not set
-# CONFIG_USB_ZD1201 is not set
-CONFIG_USB_MON=m
-
-#
-# USB port drivers
-#
-
-#
-# USB Serial Converter support
-#
-# CONFIG_USB_SERIAL is not set
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-CONFIG_USB_AUERSWALD=m
-CONFIG_USB_RIO500=m
-CONFIG_USB_LEGOTOWER=m
-CONFIG_USB_LCD=m
-CONFIG_USB_LED=m
-CONFIG_USB_CYTHERM=m
-CONFIG_USB_PHIDGETKIT=m
-CONFIG_USB_PHIDGETSERVO=m
-CONFIG_USB_IDMOUSE=m
-CONFIG_USB_SISUSBVGA=m
-# CONFIG_USB_TEST is not set
-
-#
-# USB ATM/DSL drivers
-#
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# MMC/SD Card support
-#
-# CONFIG_MMC is not set
-
-#
-# InfiniBand support
-#
-# CONFIG_INFINIBAND is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=m
-# CONFIG_EXT2_FS_XATTR is not set
-CONFIG_EXT3_FS=y
-CONFIG_EXT3_FS_XATTR=y
-# CONFIG_EXT3_FS_POSIX_ACL is not set
-# CONFIG_EXT3_FS_SECURITY is not set
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-# CONFIG_REISERFS_FS_XATTR is not set
-# CONFIG_JFS_FS is not set
-CONFIG_FS_POSIX_ACL=y
-
-#
-# XFS support
-#
-CONFIG_XFS_FS=m
-CONFIG_XFS_EXPORT=y
-# CONFIG_XFS_RT is not set
-# CONFIG_XFS_QUOTA is not set
-# CONFIG_XFS_SECURITY is not set
-# CONFIG_XFS_POSIX_ACL is not set
-CONFIG_MINIX_FS=m
-# CONFIG_ROMFS_FS is not set
-# CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
-CONFIG_AUTOFS_FS=m
-CONFIG_AUTOFS4_FS=m
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-# CONFIG_ZISOFS is not set
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-CONFIG_NTFS_FS=m
-CONFIG_NTFS_DEBUG=y
-CONFIG_NTFS_RW=y
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-CONFIG_SYSFS=y
-CONFIG_DEVFS_FS=y
-CONFIG_DEVFS_MOUNT=y
-# CONFIG_DEVFS_DEBUG is not set
-# CONFIG_DEVPTS_FS_XATTR is not set
-CONFIG_TMPFS=y
-# CONFIG_TMPFS_XATTR is not set
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_YAFFS_FS is not set
-# CONFIG_JFFS_FS is not set
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-CONFIG_JFFS2_SUMMARY=y
-# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-CONFIG_CRAMFS=m
-CONFIG_SQUASHFS=y
-# CONFIG_SQUASHFS_EMBEDDED is not set
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-# CONFIG_SQUASHFS_VMALLOC is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-CONFIG_UFS_FS=m
-CONFIG_UFS_FS_WRITE=y
-
-#
-# Network File Systems
-#
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-CONFIG_NFS_V4=y
-# CONFIG_NFS_DIRECTIO is not set
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V4=y
-CONFIG_NFSD_TCP=y
-CONFIG_ROOT_NFS=y
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
-CONFIG_SUNRPC=y
-CONFIG_SUNRPC_GSS=y
-CONFIG_RPCSEC_GSS_KRB5=y
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS is not set
-# CONFIG_CIFS_XATTR is not set
-# CONFIG_CIFS_EXPERIMENTAL is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-
-#
-# Native Language Support
-#
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_UTF8=y
-
-#
-# Profiling support
-#
-# CONFIG_PROFILING is not set
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-# CONFIG_DEBUG_KERNEL is not set
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_CROSSCOMPILE=y
-CONFIG_CMDLINE="root=/dev/mtdblock3 rootfstype=jffs2 rw mem=128M console=null"
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-
-#
-# Cryptographic options
-#
-CONFIG_CRYPTO=y
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_WP512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_DES=y
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_AES=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_CRC32C=m
-CONFIG_CRYPTO_TEST=m
-
-#
-# Hardware crypto devices
-#
-
-#
-# Library routines
-#
-CONFIG_CRC_CCITT=m
-CONFIG_CRC32=y
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_IRQ_PROBE=y
+++ /dev/null
-diff -Naur 2.6.12-5.0-org/arch/mips/Makefile 2.6.12-5.0-patched/arch/mips/Makefile
---- 2.6.12-5.0-org/arch/mips/Makefile 2007-07-26 00:50:51.000000000 +0200
-+++ 2.6.12-5.0-patched/arch/mips/Makefile 2007-12-11 15:27:14.000000000 +0100
-@@ -947,6 +947,7 @@
- load-$(CONFIG_MIPS_BCM97455C0) := 0x80001000
-
- else
-+ cflags-$(CONFIG_MIPS_BCM7401C0) += -Iinclude/asm-mips/mach-brcmstb
- # THT: Changed to 7401C0 from 7401CX to also pick up the NAND version
- core-$(CONFIG_MIPS_BCM7401C0) += arch/mips/brcmstb/common/
- core-$(CONFIG_MIPS_BCM7401C0) += arch/mips/brcmstb/brcm97401c0/
+++ /dev/null
-Index: stblinux-2.6.12/drivers/mtd/mtd_blkdevs.c
-===================================================================
---- stblinux-2.6.12.orig/drivers/mtd/mtd_blkdevs.c 2007-07-26 00:55:00.000000000 +0200
-+++ stblinux-2.6.12/drivers/mtd/mtd_blkdevs.c 2008-01-16 23:58:30.000000000 +0100
-@@ -21,6 +21,7 @@
- #include <linux/init.h>
- #include <asm/semaphore.h>
- #include <asm/uaccess.h>
-+#include <linux/devfs_fs_kernel.h>
-
- static LIST_HEAD(blktrans_majors);
-
-@@ -302,6 +303,9 @@
- snprintf(gd->disk_name, sizeof(gd->disk_name),
- "%s%d", tr->name, new->devnum);
-
-+ snprintf(gd->devfs_name, sizeof(gd->devfs_name),
-+ "%s/%c", tr->name, (tr->part_bits?'a':'0') + new->devnum);
-+
- /* 2.5 has capacity in units of 512 bytes while still
- having BLOCK_SIZE_BITS set to 10. Just to keep us amused. */
- set_capacity(gd, (new->size * new->blksize) >> 9);
-@@ -418,6 +422,8 @@
- return ret;
- }
-
-+ devfs_mk_dir(tr->name);
-+
- INIT_LIST_HEAD(&tr->devs);
- list_add(&tr->list, &blktrans_majors);
-
-@@ -450,6 +456,7 @@
- tr->remove_dev(dev);
- }
-
-+ devfs_remove(tr->name);
- blk_cleanup_queue(tr->blkcore_priv->rq);
- unregister_blkdev(tr->major, tr->name);
-
-Index: stblinux-2.6.12/drivers/mtd/mtdchar.c
-===================================================================
---- stblinux-2.6.12.orig/drivers/mtd/mtdchar.c 2008-01-21 01:37:38.000000000 +0100
-+++ stblinux-2.6.12/drivers/mtd/mtdchar.c 2008-01-21 01:37:40.000000000 +0100
-@@ -26,6 +26,8 @@
-
- static struct class *mtd_class;
-
-+#include <linux/devfs_fs_kernel.h>
-+
- static void mtd_notify_add(struct mtd_info* mtd)
- {
- if (!mtd)
-@@ -50,6 +52,12 @@
- MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1),
- NULL, "mtd%dro", mtd->index);
- #endif
-+
-+ devfs_mk_cdev(MKDEV(MTD_CHAR_MAJOR, mtd->index*2),
-+ S_IFCHR | S_IRUGO | S_IWUGO, "mtd/%d", mtd->index);
-+
-+ devfs_mk_cdev(MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1),
-+ S_IFCHR | S_IRUGO, "mtd/%dro", mtd->index);
- }
-
- static void mtd_notify_remove(struct mtd_info* mtd)
-@@ -59,6 +67,9 @@
-
- class_device_destroy(mtd_class, MKDEV(MTD_CHAR_MAJOR, mtd->index*2));
- class_device_destroy(mtd_class, MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1));
-+
-+ devfs_remove("mtd/%d", mtd->index);
-+ devfs_remove("mtd/%dro", mtd->index);
- }
-
- static struct mtd_notifier notifier = {
-@@ -66,6 +77,17 @@
- .remove = mtd_notify_remove,
- };
-
-+static inline void mtdchar_devfs_init(void)
-+{
-+ devfs_mk_dir("mtd");
-+}
-+
-+static inline void mtdchar_devfs_exit(void)
-+{
-+ devfs_remove("mtd");
-+}
-+
-+
- /*
- * We use file->private_data to store a pointer to the MTDdevice.
- * Since alighment is at least 32 bits, we have 2 bits free for OTP
-@@ -807,6 +829,7 @@
- return PTR_ERR(mtd_class);
- }
-
-+ mtdchar_devfs_init();
- register_mtd_user(¬ifier);
- return 0;
- }
-@@ -815,6 +838,7 @@
- {
- unregister_mtd_user(¬ifier);
- class_destroy(mtd_class);
-+ mtdchar_devfs_exit();
- unregister_chrdev(MTD_CHAR_MAJOR, "mtd");
- }
-
+++ /dev/null
-diff -Naur stblinux-2.6.12-org/drivers/mtd/brcmnand/bcm7xxx-nand.c stblinux-2.6.12/drivers/mtd/brcmnand/bcm7xxx-nand.c
---- stblinux-2.6.12-org/drivers/mtd/brcmnand/bcm7xxx-nand.c 2008-02-28 18:40:17.000000000 +0100
-+++ stblinux-2.6.12/drivers/mtd/brcmnand/bcm7xxx-nand.c 2008-02-28 18:45:03.000000000 +0100
-@@ -78,19 +78,28 @@
-
- static struct mtd_partition bcm7XXX_nand_parts[] =
- {
-- { name: "rootfs", offset: 0, size: DEFAULT_ROOTFS_SIZE },
--#ifdef CONFIG_MTD_ECM_PARTITION
--#define AVAIL1_PART (1)
--#define OCAP_PART (2)
-- { name: "avail1", offset: DEFAULT_ROOTFS_SIZE, size: DEFAULT_AVAIL1_SIZE },
-- { name: "ocap", offset: DEFAULT_ROOTFS_SIZE+DEFAULT_AVAIL1_SIZE, size: DEFAULT_OCAP_SIZE },
--#endif
-- { name: "kernel", offset: 0x00800000, size: 4<<20 },
-- { name: "cfe", offset: 0x00C00000, size: 2<<20 },
-- { name: "nvm", offset: 0x00E00000, size: 1<<20 },
-- /* BBT 1MB not mountable by anyone */
-- { name: "data", offset: 0x400000000, size: 0 },
--};
-+ /* modified for Dreambox DM800 */
-+ {
-+ .name = "complete",
-+ .offset = 0,
-+ .size = 64*1024*1024
-+ },
-+ {
-+ .name = "loader",
-+ .offset = 0,
-+ .size = 256*1024
-+ },
-+ {
-+ .name = "boot partition",
-+ .offset = 256*1024,
-+ .size = (4*1024-256)*1024
-+ },
-+ {
-+ .name = "root partition",
-+ .offset = 4*1024*1024,
-+ .size = 60*1024*1024
-+ },
-+ };
-
- struct brcmnand_info {
- struct mtd_info mtd;
-@@ -106,100 +115,6 @@
- }
- //EXPORT_SYMBOL(get_brcmnand_handle);
-
--
--/*
-- * Size and offset are variable, depending on the size of the chip, but
-- * cfe_kernel always starts at 1FC0_0000 and is 4MB size.
-- * The entire reserved area (kernel + CFE + BBT) occupies the last 8 MB of the flash.
-- */
--static void __devinit
--brcmnanddrv_setup_mtd_partitions(struct brcmnand_info* nandinfo, int* numParts)
--{
-- struct mtd_info* mtd = &nandinfo->mtd;
-- unsigned long size;
-- int i = 0;
-- unsigned int ecm_size = DEFAULT_ECM_SIZE;
-- unsigned int ocap_size = DEFAULT_OCAP_SIZE;
-- unsigned int avail1_size = DEFAULT_AVAIL1_SIZE;
--
-- if (mtd->size <= (512<<20)) {
-- size = mtd->size; // mtd->size may be different than nandinfo->size
-- // Relies on this being called after brcmnand_scan
-- *numParts = ARRAY_SIZE(bcm7XXX_nand_parts) - 1;
-- }
-- else {
-- size = 512 << 20;
-- *numParts = ARRAY_SIZE(bcm7XXX_nand_parts);
-- }
--
--#ifdef CONFIG_MTD_ECM_PARTITION
-- /* Do not generate AVAIL1 partition if usable flash size is less than 64MB */
-- if (size < (64<<20)) {
-- ecm_size = DEFAULT_OCAP_SIZE;
-- bcm7XXX_nand_parts[AVAIL1_PART].size = avail1_size = 0;
-- (*numParts)--;
-- }
-- else {
-- int factor = size / (64 << 20); // Remember size is capped at 512MB
--
-- bcm7XXX_nand_parts[OCAP_PART].size = ocap_size = factor*DEFAULT_OCAP_SIZE;
-- bcm7XXX_nand_parts[AVAIL1_PART].size = avail1_size = factor*DEFAULT_AVAIL1_SIZE;
-- ecm_size = ocap_size + avail1_size;
-- }
--
--#endif
-- nandinfo->parts = bcm7XXX_nand_parts;
-- bcm7XXX_nand_parts[0].size = size - DEFAULT_RESERVED_SIZE - ecm_size;
-- bcm7XXX_nand_parts[0].oobsel = &mtd->oobinfo;
--printk("Part[%d] name=%s, size=%x, offset=%x\n", i, bcm7XXX_nand_parts[0].name,
--bcm7XXX_nand_parts[0].size, bcm7XXX_nand_parts[0].offset);
--
-- for (i=1; i< ARRAY_SIZE(bcm7XXX_nand_parts) - 1; i++) {
--#ifdef CONFIG_MTD_ECM_PARTITION
-- //if (0 == bcm7XXX_nand_parts[i].size)
-- // continue;
-- /* Skip avail1 if size is less than 64 MB) */
-- if (0 == avail1_size && AVAIL1_PART == i) {
-- bcm7XXX_nand_parts[i].offset = bcm7XXX_nand_parts[i-1].size + bcm7XXX_nand_parts[i-1].offset;
-- continue;
-- }
--#endif
-- bcm7XXX_nand_parts[i].offset = bcm7XXX_nand_parts[i-1].size + bcm7XXX_nand_parts[i-1].offset;
-- // For now every partition uses the same oobinfo
-- bcm7XXX_nand_parts[i].oobsel = &mtd->oobinfo;
--printk("Part[%d] name=%s, size=%x, offset=%x\n", i, bcm7XXX_nand_parts[i].name,
--bcm7XXX_nand_parts[i].size, bcm7XXX_nand_parts[i].offset);
-- }
--
--
-- if (mtd->size > (512 << 20)) { // For total flash size > 512MB, we must split the rootfs into 2 partitions
-- i = *numParts - 1;
-- bcm7XXX_nand_parts[i].offset = 512 << 20;
-- bcm7XXX_nand_parts[i].size = mtd->size - (513 << 20);
-- bcm7XXX_nand_parts[i].oobsel = &mtd->oobinfo;
--#ifdef CONFIG_MTD_ECM_PARTITION
--printk("Part[%d] name=%s, size=%x, offset=%x\n", avail1_size? i: i-1, bcm7XXX_nand_parts[i].name,
--bcm7XXX_nand_parts[i].size, bcm7XXX_nand_parts[i].offset);
--#else
--printk("Part[%d] name=%s, size=%x, offset=%x\n", i, bcm7XXX_nand_parts[i].name,
--bcm7XXX_nand_parts[i].size, bcm7XXX_nand_parts[i].offset);
--#endif
--
-- }
--
--#ifdef CONFIG_MTD_ECM_PARTITION
-- /* Shift partitions 1 up if avail1_size is 0 */
-- if (0 == avail1_size) {
-- for (i=AVAIL1_PART; i < *numParts; i++) {
-- bcm7XXX_nand_parts[i].offset = bcm7XXX_nand_parts[i+1].offset;
-- bcm7XXX_nand_parts[i].size = bcm7XXX_nand_parts[i+1].size;
-- }
-- bcm7XXX_nand_parts[*numParts].offset = 0;
-- bcm7XXX_nand_parts[*numParts].size = 0;
-- }
--#endif
--}
--
- static int __devinit brcmnanddrv_probe(struct device *dev)
- {
- struct platform_device *pdev = to_platform_device(dev);
-@@ -234,14 +149,12 @@
- if (brcmnand_scan(&info->mtd, MAX_NAND_CS)) {
- err = -ENXIO;
- goto out_free_info;
-- }
--
-- printk(" numchips=%d, size=%08x\n", info->brcmnand.numchips, info->mtd.size);
-- brcmnanddrv_setup_mtd_partitions(info, &numParts);
--//printk(" add_mtd_partitions\n");
-- add_mtd_partitions(&info->mtd, info->parts, numParts);
--//printk(" dev_set_drvdata\n");
-- dev_set_drvdata(&pdev->dev, info);
-+ }
-+
-+ printk(" numchips=%d, size=%08x\n", info->brcmnand.numchips, info->mtd.size);
-+ add_mtd_partitions(&info->mtd, bcm7XXX_nand_parts, 4);
-+//printk(" dev_set_drvdata\n");
-+ dev_set_drvdata(&pdev->dev, info);
- //printk("<-- brcmnanddrv_probe\n");
- return 0;
-
-diff -Naur stblinux-2.6.12-org/drivers/mtd/brcmnand/brcmnand_base.c stblinux-2.6.12/drivers/mtd/brcmnand/brcmnand_base.c
---- stblinux-2.6.12-org/drivers/mtd/brcmnand/brcmnand_base.c 2008-02-28 18:40:17.000000000 +0100
-+++ stblinux-2.6.12/drivers/mtd/brcmnand/brcmnand_base.c 2008-02-28 18:46:02.000000000 +0100
-@@ -296,7 +296,15 @@
- .options = NAND_USE_FLASH_BBT,
- .timing1 = 0, .timing2 = 0,
- },
--
-+
-+ { /* 20 */
-+ .chipId = HYNIX_HY27US08121A,
-+ .mafId = FLASHTYPE_HYNIX,
-+ .chipIdStr = "Hynix HY27US08121A (dream)",
-+ .options = NAND_USE_FLASH_BBT,
-+ .timing1 = 0, .timing2 = 0,
-+ },
-+
- { /* LAST DUMMY ENTRY */
- .chipId = 0,
- .mafId = 0,
+++ /dev/null
-diff -Naur 2.6.12-5.0-org/arch/mips/kernel/reset.c 2.6.12-5.0-patched/arch/mips/kernel/reset.c
---- 2.6.12-5.0-org/arch/mips/kernel/reset.c 2007-07-26 00:51:08.000000000 +0200
-+++ 2.6.12-5.0-patched/arch/mips/kernel/reset.c 2007-12-11 12:34:52.000000000 +0100
-@@ -27,6 +27,7 @@
- }
-
- EXPORT_SYMBOL(machine_restart);
-+EXPORT_SYMBOL(_machine_restart);
-
- void machine_halt(void)
- {
-@@ -34,6 +35,7 @@
- }
-
- EXPORT_SYMBOL(machine_halt);
-+EXPORT_SYMBOL(_machine_halt);
-
- void machine_power_off(void)
- {
-@@ -41,3 +43,4 @@
- }
-
- EXPORT_SYMBOL(machine_power_off);
-+EXPORT_SYMBOL(_machine_power_off);
-diff -Naur 2.6.12-5.0-org/drivers/video/Kconfig 2.6.12-5.0-patched/drivers/video/Kconfig
---- 2.6.12-5.0-org/drivers/video/Kconfig 2007-07-26 00:54:49.000000000 +0200
-+++ 2.6.12-5.0-patched/drivers/video/Kconfig 2007-12-11 12:34:52.000000000 +0100
-@@ -39,7 +39,7 @@
- device-aware may cause unexpected results. If unsure, say N.
-
- config FB_CFB_FILLRECT
-- tristate
-+ tristate "FB_CFB_FILLRECT"
- depends on FB
- default n
- ---help---
-@@ -48,7 +48,7 @@
- (accelerated) version.
-
- config FB_CFB_COPYAREA
-- tristate
-+ tristate "FB_CFB_COPYAREA"
- depends on FB
- default n
- ---help---
-@@ -57,7 +57,7 @@
- version.
-
- config FB_CFB_IMAGEBLIT
-- tristate
-+ tristate "FB_CFB_IMAGEBLIT"
- depends on FB
- default n
- ---help---
-@@ -66,7 +66,7 @@
- (accelerated) version.
-
- config FB_SOFT_CURSOR
-- tristate
-+ tristate "FB_SOFT_CURSOR"
- depends on FB
- default n
- ---help---
-diff -Naur 2.6.12-5.0-org/drivers/char/keyboard.c 2.6.12-5.0-patched/drivers/char/keyboard.c
---- 2.6.12-5.0-org/drivers/char/keyboard.c 2007-07-26 00:53:29.000000000 +0200
-+++ 2.6.12-5.0-patched/drivers/char/keyboard.c 2007-12-11 12:34:52.000000000 +0100
-@@ -1186,6 +1186,9 @@
- for (i = KEY_RESERVED; i < BTN_MISC; i++)
- if (test_bit(i, dev->keybit)) break;
-
-+ if ( test_bit(EV_NO_CONSOLE, dev->evbit) )
-+ return NULL;
-+
- if ((i == BTN_MISC) && !test_bit(EV_SND, dev->evbit))
- return NULL;
-
-diff -Naur 2.6.12-5.0-org/include/linux/input.h 2.6.12-5.0-patched/include/linux/input.h
---- 2.6.12-5.0-org/include/linux/input.h 2007-07-26 00:56:59.000000000 +0200
-+++ 2.6.12-5.0-patched/include/linux/input.h 2007-12-11 12:34:52.000000000 +0100
-@@ -92,6 +92,7 @@
- #define EV_FF 0x15
- #define EV_PWR 0x16
- #define EV_FF_STATUS 0x17
-+#define EV_NO_CONSOLE 0x1e
- #define EV_MAX 0x1f
-
- /*
+++ /dev/null
-Index: stblinux-2.6.12/arch/mips/kernel/vmlinux.lds.S
-===================================================================
---- stblinux-2.6.12.orig/arch/mips/kernel/vmlinux.lds.S 2008-01-16 23:52:20.000000000 +0100
-+++ stblinux-2.6.12/arch/mips/kernel/vmlinux.lds.S 2008-01-16 23:52:22.000000000 +0100
-@@ -145,8 +145,8 @@
- . = ALIGN(4096);
- __initramfs_start = .;
- .init.ramfs : { *(.init.ramfs) }
-- . = ALIGN(4096);
- __initramfs_end = .;
-+ . = ALIGN(4096);
-
- __bss_start = .; /* BSS */
- .sbss : {
-Index: stblinux-2.6.12/drivers/net/brcmint7038/bcmemac.c
-===================================================================
---- stblinux-2.6.12.orig/drivers/net/brcmint7038/bcmemac.c 2008-01-16 23:52:20.000000000 +0100
-+++ stblinux-2.6.12/drivers/net/brcmint7038/bcmemac.c 2008-01-16 23:52:13.000000000 +0100
-@@ -2978,99 +2978,10 @@
-
- static void bcmemac_getMacAddr(struct net_device* dev)
- {
-- uint8 flash_eaddr[ETH_ALEN];
-- void *virtAddr;
-- uint16 word;
-- int i;
--
--#if !defined( CONFIG_BRCM_PCI_SLAVE) && !defined( CONFIG_MTD_BRCMNAND )
--#if 1
-- virtAddr = (void*)FLASH_MACADDR_ADDR;
--#else
-- //virtAddr = (void*) 0xBDFFF824; /* BCM97110 in-flash Ethernet MAC address */
-- virtAddr = (void*) KSEG1ADDR(getPhysFlashBase() + FLASH_MACADDR_OFFSET);
--#endif
--
-- /* It is a common problem that the flash and/or Chip Select are
-- * not initialized properly, so leave this printk on
-- */
-- printk("%s: Reading MAC address from %08lX, FLASH_BASE=%08lx\n",
-- dev->name,(uint32) virtAddr, (unsigned long) 0xA0000000L|getPhysFlashBase());
--
-- word=0;
-- word=readw(virtAddr);
-- flash_eaddr[0]=(uint8) (word & 0x00FF);
-- flash_eaddr[1]=(uint8) ((word & 0xFF00) >> 8);
-- word=readw(virtAddr+2);
-- flash_eaddr[2]=(uint8) (word & 0x00FF);
-- flash_eaddr[3]=(uint8) ((word & 0xFF00) >> 8);
-- word=readw(virtAddr+4);
-- flash_eaddr[4]=(uint8) (word & 0x00FF);
-- flash_eaddr[5]=(uint8) ((word & 0xFF00) >> 8);
--
-- printk("%s: MAC address %02X:%02X:%02X:%02X:%02X:%02X fetched from addr %lX\n",
-- dev->name,
-- flash_eaddr[0],flash_eaddr[1],flash_eaddr[2],
-- flash_eaddr[3],flash_eaddr[4],flash_eaddr[5],
-- (uint32) virtAddr);
--
--#elif defined( CONFIG_MTD_BRCMNAND )
--{
-- extern int gNumHwAddrs;
-- extern unsigned char* gHwAddrs[];
--
-- if (gNumHwAddrs >= 1) {
-- for (i=0; i < 6; i++) {
-- flash_eaddr[i] = (uint8) gHwAddrs[0][i];
-- }
--
-- printk("%s: MAC address %02X:%02X:%02X:%02X:%02X:%02X fetched from bootloader\n",
-- dev->name,
-- flash_eaddr[0],flash_eaddr[1],flash_eaddr[2],
-- flash_eaddr[3],flash_eaddr[4],flash_eaddr[5]
-- );
-- }
-- else {
-- printk(KERN_ERR "%s: No MAC addresses defined\n", __FUNCTION__);
-- }
--}
-+ /* we rip the address set by the bootloader */
-+ unsigned long addr[2] = { be32_to_cpu(*(unsigned int*)0xB008005C), be32_to_cpu(*(unsigned int*)0xB0080058)};
-
--#else
--/* PCI slave cannot access the EBI bus,
-- * and for now, same for NAND flash, until CFE supports it
-- */
--/* Use hard coded value if Flash not properly initialized */
-- //if ((*flash_eaddr & 0xff) == 0xff)
-- {
--//#ifdef USE_HARDCODED_MACADDR
-- flash_eaddr[0] = 0x00;
-- flash_eaddr[1] = 0xc0;
-- flash_eaddr[2] = 0xa8;
-- flash_eaddr[3] = 0x74;
-- flash_eaddr[4] = 0x3b;
-- flash_eaddr[5] = 0x51;
-- printk("%s: Default MAC address %02X:%02X:%02X:%02X:%02X:%02X used\n",
-- dev->name,
-- flash_eaddr[0],flash_eaddr[1],flash_eaddr[2],
-- flash_eaddr[3],flash_eaddr[4],flash_eaddr[5]);
--//#else
--// printk("%s: Cannot read EMAC address from flash. Please run EVAL codes\n", CARDNAME);
--// return -ENODEV;
--//#endif
-- }
--#endif
--
-- /* fill in the MAC address */
-- for (i = 0; i < 6; i++) {
-- dev->dev_addr[i] = flash_eaddr[i];
-- }
--
-- /* print the Ethenet address */
-- printk("%s: MAC Address: ", dev->name);
-- for (i = 0; i < 5; i++) {
-- printk("%2.2X:", dev->dev_addr[i]);
-- }
-- printk("%2.2X\n", dev->dev_addr[i]);
-+ memcpy(dev->dev_addr, ((unsigned char*)addr)+2, 6);
- }
-
-
-Index: stblinux-2.6.12/arch/mips/brcmstb/common/setup.c
-===================================================================
---- stblinux-2.6.12.orig/arch/mips/brcmstb/common/setup.c 2008-01-16 23:53:24.000000000 +0100
-+++ stblinux-2.6.12/arch/mips/brcmstb/common/setup.c 2008-01-16 23:54:06.000000000 +0100
-@@ -136,13 +136,13 @@
-
- static void brcm_machine_halt(void)
- {
-- printk("Broadcom eval board halted.\n");
-+ printk("Halted.\n");
- while (1);
- }
-
- static void brcm_machine_power_off(void)
- {
-- printk("Broadcom eval board halted. Please turn off power.\n");
-+ printk("Halted. Please turn off power.\n");
- while (1);
- }
-
+++ /dev/null
-Index: stblinux-2.6.12/drivers/char/brcmserial.c
-===================================================================
---- stblinux-2.6.12.orig/drivers/char/brcmserial.c 2007-12-16 22:49:40.000000000 +0100
-+++ stblinux-2.6.12/drivers/char/brcmserial.c 2007-12-16 22:56:00.000000000 +0100
-@@ -1208,6 +1208,6 @@
- 600, 1200, 1800, 2400, 4800, 9600, 19200,
- 38400, 57600, 115200, 230400, 460800, 0 };
-
--static int tty_get_baud_rate(struct tty_struct *tty)
-+int tty_get_baud_rate(struct tty_struct *tty)
- {
- struct async_struct * info = (struct async_struct *)tty->driver_data;
- unsigned int cflag, i;
-diff -Naur 2.6.12-5.0-org/drivers/char/tty_io.c 2.6.12-5.0-patched/drivers/char/tty_io.c
---- 2.6.12-5.0-org/drivers/char/tty_io.c 2007-07-26 00:53:30.000000000 +0200
-+++ 2.6.12-5.0-patched/drivers/char/tty_io.c 2007-12-11 12:34:52.000000000 +0100
-@@ -2592,6 +2592,7 @@
- * flags may be updated.
- */
-
-+#if 0
- int tty_get_baud_rate(struct tty_struct *tty)
- {
- int baud = tty_termios_baud_rate(tty->termios);
-@@ -2607,6 +2608,7 @@
-
- return baud;
- }
-+#endif
-
- EXPORT_SYMBOL(tty_get_baud_rate);
-
+++ /dev/null
-Index: stblinux-2.6.12/arch/mips/kernel/setup.c
-===================================================================
---- stblinux-2.6.12.orig/arch/mips/kernel/setup.c 2008-04-15 02:13:42.000000000 +0200
-+++ stblinux-2.6.12/arch/mips/kernel/setup.c 2008-04-15 02:25:13.000000000 +0200
-@@ -472,11 +472,29 @@
- */
- unsigned long get_RAM_size(void);
-
-+extern int *_prom_envp;
-+#define prom_envp(index) ((char *)(long)_prom_envp[(index)])
-+static char *prom_getenv(char *envname)
-+{
-+ int i, index=0;
-+
-+ i = strlen(envname);
-+
-+ while (prom_envp(index)) {
-+ if ((strncmp(envname, prom_envp(index), i) == 0) && (prom_envp(index)[i] == '='))
-+ return(prom_envp(index) + i + 1);
-+ index++;
-+ }
-+
-+ return NULL;
-+}
-+
- static inline void brcm_default_boot_mem(void)
- {
- int ramSizeMB = get_RAM_size() >> 20;
- int size;
- char msg[40];
-+ const char *memsize_str;
-
- if (ramSizeMB <= 32)
- {
-@@ -502,11 +520,20 @@
- size = 32;
- #endif
- }
-- sprintf(msg, "Using %dMB for memory, overwrite by passing mem=xx\n",
-- size);
-- uart_puts(msg);
-- brcm_insert_ram_node(0, size<<20, BOOT_MEM_RAM, &brcm_bm);
-
-+ memsize_str = prom_getenv("memsize");
-+ if (memsize_str)
-+ {
-+ int memsize = simple_strtol(memsize_str, NULL, 0);
-+ brcm_insert_ram_node(0, memsize<<20, BOOT_MEM_RAM, &brcm_bm);
-+ printk("---> memsize from bootloader: %d\n", memsize);
-+ } else
-+ {
-+ sprintf(msg, "Using %dMB for memory, overwrite by passing mem=xx\n",
-+ size);
-+ uart_puts(msg);
-+ brcm_insert_ram_node(0, size<<20, BOOT_MEM_RAM, &brcm_bm);
-+ }
- }
-
-
+++ /dev/null
-Index: stblinux-2.6.12/arch/mips/brcmstb/common/prom.c
-===================================================================
---- stblinux-2.6.12.orig/arch/mips/brcmstb/common/prom.c 2008-01-16 00:14:31.000000000 +0100
-+++ stblinux-2.6.12/arch/mips/brcmstb/common/prom.c 2008-01-16 00:23:08.000000000 +0100
-@@ -216,6 +216,29 @@
- }
-
-
-+int prom_argc;
-+int *_prom_argv, *_prom_envp;
-+
-+void __init prom_init_cmdline(void)
-+{
-+ char *cp;
-+ int actr;
-+
-+ actr = 1; /* Always ignore argv[0] */
-+
-+ cp = &(arcs_cmdline[0]);
-+ while(actr < prom_argc) {
-+ strcpy(cp, _prom_argv[actr]);
-+ cp += strlen(_prom_argv[actr]);
-+ *cp++ = ' ';
-+ actr++;
-+ }
-+ if (cp != &(arcs_cmdline[0])) {
-+ /* get rid of trailing space */
-+ --cp;
-+ *cp = '\0';
-+ }
-+}
-
- void __init prom_init(void)
- {
-@@ -731,23 +754,14 @@
- uart_puts("Default command line = \n");
- uart_puts(CONFIG_CMDLINE);
- uart_puts("\n");
-- p = &arcs_cmdline[0];
-- while (p != NULL && *p != '\0') {
-- if (!isspace(*p))
-- break;
-- p++;
-- }
-- if (p == NULL || *p == '\0') {
-- uart_puts("Defaulting to boot from HD\n");
-- /* Default is to boot from HD */
-- strcpy(arcs_cmdline,
-- "root=/dev/hda1" DEFAULT_KARGS);
-- }
-- else if (appendConsoleNeeded) {
-- /* Make sure that the boot params specify a console */
-- appendConsoleArg(arcs_cmdline);
-- }
-
-+ prom_argc = fw_arg0;
-+ _prom_argv = (int *) fw_arg1;
-+ _prom_envp = (int *) fw_arg2;
-+ printk("%d %p %p\n", prom_argc, _prom_argv, _prom_envp);
-+ prom_init_cmdline();
-+
-+
- #else /* No CONFIG_CMDLINE, and not Initrd */
- /* Default is to boot from HD */
- strcpy(arcs_cmdline,
+++ /dev/null
-Index: stblinux-2.6.12/Makefile
-===================================================================
---- stblinux-2.6.12.orig/Makefile 2007-12-17 20:09:55.000000000 +0100
-+++ stblinux-2.6.12/Makefile 2007-12-17 22:37:51.000000000 +0100
-@@ -2,7 +2,7 @@
- PATCHLEVEL = 6
- SUBLEVEL = 12
- # STABLE_VERSION = .2
--EXTRAVERSION =-5.1-brcmstb
-+EXTRAVERSION =-5.1-brcmstb-dm800
- NAME=Woozy Numbat
-
- # *DOCUMENTATION*
+++ /dev/null
-diff -Naur 2.6.12-5.0-org/arch/mips/kernel/syscall.c 2.6.12-5.0-patched/arch/mips/kernel/syscall.c
---- 2.6.12-5.0-org/arch/mips/kernel/syscall.c 2007-07-26 00:51:09.000000000 +0200
-+++ 2.6.12-5.0-patched/arch/mips/kernel/syscall.c 2007-12-11 12:34:52.000000000 +0100
-@@ -405,6 +405,13 @@
- }
- }
-
-+asmlinkage long mips_fadvise64(int fd,
-+ unsigned int low_off, unsigned int high_off,
-+ unsigned int len, int advice, unsigned int dummy)
-+{
-+ return sys_fadvise64_64(fd, (((u64)high_off) << 32) | low_off, (u64)len, advice);
-+}
-+
- /*
- * No implemented yet ...
- */
-diff -Naur 2.6.12-5.0-org/arch/mips/kernel/scall32-o32.S 2.6.12-5.0-patched/arch/mips/kernel/scall32-o32.S
---- 2.6.12-5.0-org/arch/mips/kernel/scall32-o32.S 2007-07-26 00:51:08.000000000 +0200
-+++ 2.6.12-5.0-patched/arch/mips/kernel/scall32-o32.S 2007-12-11 12:34:52.000000000 +0100
-@@ -594,7 +594,7 @@
- sys sys_remap_file_pages 5
- sys sys_set_tid_address 1
- sys sys_restart_syscall 0
-- sys sys_fadvise64_64 7
-+ sys mips_fadvise64 7
- sys sys_statfs64 3 /* 4255 */
- sys sys_fstatfs64 2
- sys sys_timer_create 3
+++ /dev/null
-diff -Naur 2.6.12-5.0-org/include/asm-mips/futex.h 2.6.12-5.0-patched/include/asm-mips/futex.h
---- 2.6.12-5.0-org/include/asm-mips/futex.h 1970-01-01 01:00:00.000000000 +0100
-+++ 2.6.12-5.0-patched/include/asm-mips/futex.h 2007-12-11 12:34:52.000000000 +0100
-@@ -0,0 +1,134 @@
-+#ifndef _ASM_FUTEX_H
-+#define _ASM_FUTEX_H
-+
-+#ifdef __KERNEL__
-+
-+#include <linux/config.h>
-+#include <linux/futex.h>
-+#include <asm/errno.h>
-+#include <asm/uaccess.h>
-+#include <asm/war.h>
-+
-+#ifdef CONFIG_SMP
-+#define __FUTEX_SMP_SYNC " sync \n"
-+#else
-+#define __FUTEX_SMP_SYNC
-+#endif
-+
-+#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \
-+{ \
-+ if (cpu_has_llsc && R10000_LLSC_WAR) { \
-+ __asm__ __volatile__( \
-+ " .set push \n" \
-+ " .set noat \n" \
-+ " .set mips3 \n" \
-+ "1: ll %1, %4 # __futex_atomic_op \n" \
-+ " .set mips0 \n" \
-+ " " insn " \n" \
-+ " .set mips3 \n" \
-+ "2: sc $1, %2 \n" \
-+ " beqzl $1, 1b \n" \
-+ __FUTEX_SMP_SYNC \
-+ "3: \n" \
-+ " .set pop \n" \
-+ " .set mips0 \n" \
-+ " .section .fixup,\"ax\" \n" \
-+ "4: li %0, %6 \n" \
-+ " j 2b \n" \
-+ " .previous \n" \
-+ " .section __ex_table,\"a\" \n" \
-+ " "__UA_ADDR "\t1b, 4b \n" \
-+ " "__UA_ADDR "\t2b, 4b \n" \
-+ " .previous \n" \
-+ : "=r" (ret), "=&r" (oldval), "=R" (*uaddr) \
-+ : "0" (0), "R" (*uaddr), "Jr" (oparg), "i" (-EFAULT) \
-+ : "memory"); \
-+ } else if (cpu_has_llsc) { \
-+ __asm__ __volatile__( \
-+ " .set push \n" \
-+ " .set noat \n" \
-+ " .set mips3 \n" \
-+ "1: ll %1, %4 # __futex_atomic_op \n" \
-+ " .set mips0 \n" \
-+ " " insn " \n" \
-+ " .set mips3 \n" \
-+ "2: sc $1, %2 \n" \
-+ " beqz $1, 1b \n" \
-+ __FUTEX_SMP_SYNC \
-+ "3: \n" \
-+ " .set pop \n" \
-+ " .set mips0 \n" \
-+ " .section .fixup,\"ax\" \n" \
-+ "4: li %0, %6 \n" \
-+ " j 2b \n" \
-+ " .previous \n" \
-+ " .section __ex_table,\"a\" \n" \
-+ " "__UA_ADDR "\t1b, 4b \n" \
-+ " "__UA_ADDR "\t2b, 4b \n" \
-+ " .previous \n" \
-+ : "=r" (ret), "=&r" (oldval), "=R" (*uaddr) \
-+ : "0" (0), "R" (*uaddr), "Jr" (oparg), "i" (-EFAULT) \
-+ : "memory"); \
-+ } else \
-+ ret = -ENOSYS; \
-+}
-+
-+static inline int
-+futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
-+{
-+ int op = (encoded_op >> 28) & 7;
-+ int cmp = (encoded_op >> 24) & 15;
-+ int oparg = (encoded_op << 8) >> 20;
-+ int cmparg = (encoded_op << 20) >> 20;
-+ int oldval = 0, ret;
-+ if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
-+ oparg = 1 << oparg;
-+
-+ if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int)))
-+ return -EFAULT;
-+
-+ inc_preempt_count();
-+
-+ switch (op) {
-+ case FUTEX_OP_SET:
-+ __futex_atomic_op("move $1, %z5", ret, oldval, uaddr, oparg);
-+ break;
-+
-+ case FUTEX_OP_ADD:
-+ __futex_atomic_op("addu $1, %1, %z5",
-+ ret, oldval, uaddr, oparg);
-+ break;
-+ case FUTEX_OP_OR:
-+ __futex_atomic_op("or $1, %1, %z5",
-+ ret, oldval, uaddr, oparg);
-+ break;
-+ case FUTEX_OP_ANDN:
-+ __futex_atomic_op("and $1, %1, %z5",
-+ ret, oldval, uaddr, ~oparg);
-+ break;
-+ case FUTEX_OP_XOR:
-+ __futex_atomic_op("xor $1, %1, %z5",
-+ ret, oldval, uaddr, oparg);
-+ break;
-+ default:
-+ ret = -ENOSYS;
-+ }
-+
-+ dec_preempt_count();
-+
-+ if (!ret) {
-+ switch (cmp) {
-+ case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break;
-+ case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break;
-+ case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break;
-+ case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break;
-+ case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break;
-+ case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break;
-+ default: ret = -ENOSYS;
-+ }
-+ }
-+ return ret;
-+}
-+
-+#endif
-+#endif
-diff -Naur 2.6.12-5.0-org/include/linux/futex.h 2.6.12-5.0-patched/include/linux/futex.h
---- 2.6.12-5.0-org/include/linux/futex.h 2007-07-26 00:57:03.000000000 +0200
-+++ 2.6.12-5.0-patched/include/linux/futex.h 2007-12-11 12:34:52.000000000 +0100
-@@ -4,14 +4,40 @@
- /* Second argument to futex syscall */
-
-
--#define FUTEX_WAIT (0)
--#define FUTEX_WAKE (1)
--#define FUTEX_FD (2)
--#define FUTEX_REQUEUE (3)
--#define FUTEX_CMP_REQUEUE (4)
-+#define FUTEX_WAIT 0
-+#define FUTEX_WAKE 1
-+#define FUTEX_FD 2
-+#define FUTEX_REQUEUE 3
-+#define FUTEX_CMP_REQUEUE 4
-+#define FUTEX_WAKE_OP 5
-
- long do_futex(unsigned long uaddr, int op, int val,
- unsigned long timeout, unsigned long uaddr2, int val2,
- int val3);
-
-+#define FUTEX_OP_SET 0 /* *(int *)UADDR2 = OPARG; */
-+#define FUTEX_OP_ADD 1 /* *(int *)UADDR2 += OPARG; */
-+#define FUTEX_OP_OR 2 /* *(int *)UADDR2 |= OPARG; */
-+#define FUTEX_OP_ANDN 3 /* *(int *)UADDR2 &= ~OPARG; */
-+#define FUTEX_OP_XOR 4 /* *(int *)UADDR2 ^= OPARG; */
-+
-+#define FUTEX_OP_OPARG_SHIFT 8 /* Use (1 << OPARG) instead of OPARG. */
-+
-+#define FUTEX_OP_CMP_EQ 0 /* if (oldval == CMPARG) wake */
-+#define FUTEX_OP_CMP_NE 1 /* if (oldval != CMPARG) wake */
-+#define FUTEX_OP_CMP_LT 2 /* if (oldval < CMPARG) wake */
-+#define FUTEX_OP_CMP_LE 3 /* if (oldval <= CMPARG) wake */
-+#define FUTEX_OP_CMP_GT 4 /* if (oldval > CMPARG) wake */
-+#define FUTEX_OP_CMP_GE 5 /* if (oldval >= CMPARG) wake */
-+
-+/* FUTEX_WAKE_OP will perform atomically
-+ int oldval = *(int *)UADDR2;
-+ *(int *)UADDR2 = oldval OP OPARG;
-+ if (oldval CMP CMPARG)
-+ wake UADDR2; */
-+
-+#define FUTEX_OP(op, oparg, cmp, cmparg) \
-+ (((op & 0xf) << 28) | ((cmp & 0xf) << 24) \
-+ | ((oparg & 0xfff) << 12) | (cmparg & 0xfff))
-+
- #endif
-diff -Naur 2.6.12-5.0-org/kernel/futex.c 2.6.12-5.0-patched/kernel/futex.c
---- 2.6.12-5.0-org/kernel/futex.c 2007-07-26 00:57:20.000000000 +0200
-+++ 2.6.12-5.0-patched/kernel/futex.c 2007-12-11 12:34:52.000000000 +0100
-@@ -40,6 +40,7 @@
- #include <linux/pagemap.h>
- #include <linux/syscalls.h>
- #include <linux/signal.h>
-+#include <asm/futex.h>
-
- #define FUTEX_HASHBITS (CONFIG_BASE_SMALL ? 4 : 8)
-
-@@ -201,22 +202,6 @@
- * for a rare case, so we simply fetch the page.
- */
-
-- /*
-- * Do a quick atomic lookup first - this is the fastpath.
-- */
-- spin_lock(¤t->mm->page_table_lock);
-- page = follow_page(mm, uaddr, 0);
-- if (likely(page != NULL)) {
-- key->shared.pgoff =
-- page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT);
-- spin_unlock(¤t->mm->page_table_lock);
-- return 0;
-- }
-- spin_unlock(¤t->mm->page_table_lock);
--
-- /*
-- * Do it the general way.
-- */
- err = get_user_pages(current, mm, uaddr, 1, 0, 0, &page, NULL);
- if (err >= 0) {
- key->shared.pgoff =
-@@ -327,6 +312,123 @@
- }
-
- /*
-+ * Wake up all waiters hashed on the physical page that is mapped
-+ * to this virtual address:
-+ */
-+static int futex_wake_op(unsigned long uaddr1, unsigned long uaddr2, int nr_wake, int nr_wake2, int op)
-+{
-+ union futex_key key1, key2;
-+ struct futex_hash_bucket *bh1, *bh2;
-+ struct list_head *head;
-+ struct futex_q *this, *next;
-+ int ret, op_ret, attempt = 0;
-+
-+retryfull:
-+ down_read(¤t->mm->mmap_sem);
-+
-+ ret = get_futex_key(uaddr1, &key1);
-+ if (unlikely(ret != 0))
-+ goto out;
-+ ret = get_futex_key(uaddr2, &key2);
-+ if (unlikely(ret != 0))
-+ goto out;
-+
-+ bh1 = hash_futex(&key1);
-+ bh2 = hash_futex(&key2);
-+
-+retry:
-+ if (bh1 < bh2)
-+ spin_lock(&bh1->lock);
-+ spin_lock(&bh2->lock);
-+ if (bh1 > bh2)
-+ spin_lock(&bh1->lock);
-+
-+ op_ret = futex_atomic_op_inuser(op, (int __user *)uaddr2);
-+ if (unlikely(op_ret < 0)) {
-+ int dummy;
-+
-+ spin_unlock(&bh1->lock);
-+ if (bh1 != bh2)
-+ spin_unlock(&bh2->lock);
-+
-+ if (unlikely(op_ret != -EFAULT)) {
-+ ret = op_ret;
-+ goto out;
-+ }
-+
-+ /* futex_atomic_op_inuser needs to both read and write
-+ * *(int __user *)uaddr2, but we can't modify it
-+ * non-atomically. Therefore, if get_user below is not
-+ * enough, we need to handle the fault ourselves, while
-+ * still holding the mmap_sem. */
-+ if (attempt++) {
-+ struct vm_area_struct * vma;
-+ struct mm_struct *mm = current->mm;
-+
-+ ret = -EFAULT;
-+ if (attempt >= 2 ||
-+ !(vma = find_vma(mm, uaddr2)) ||
-+ vma->vm_start > uaddr2 ||
-+ !(vma->vm_flags & VM_WRITE))
-+ goto out;
-+
-+ switch (handle_mm_fault(mm, vma, uaddr2, 1)) {
-+ case VM_FAULT_MINOR:
-+ current->min_flt++;
-+ break;
-+ case VM_FAULT_MAJOR:
-+ current->maj_flt++;
-+ break;
-+ default:
-+ goto out;
-+ }
-+ goto retry;
-+ }
-+
-+ /* If we would have faulted, release mmap_sem,
-+ * fault it in and start all over again. */
-+ up_read(¤t->mm->mmap_sem);
-+
-+ ret = get_user(dummy, (int __user *)uaddr2);
-+ if (ret)
-+ return ret;
-+
-+ goto retryfull;
-+ }
-+
-+ head = &bh1->chain;
-+
-+ list_for_each_entry_safe(this, next, head, list) {
-+ if (match_futex (&this->key, &key1)) {
-+ wake_futex(this);
-+ if (++ret >= nr_wake)
-+ break;
-+ }
-+ }
-+
-+ if (op_ret > 0) {
-+ head = &bh2->chain;
-+
-+ op_ret = 0;
-+ list_for_each_entry_safe(this, next, head, list) {
-+ if (match_futex (&this->key, &key2)) {
-+ wake_futex(this);
-+ if (++op_ret >= nr_wake2)
-+ break;
-+ }
-+ }
-+ ret += op_ret;
-+ }
-+
-+ spin_unlock(&bh1->lock);
-+ if (bh1 != bh2)
-+ spin_unlock(&bh2->lock);
-+out:
-+ up_read(¤t->mm->mmap_sem);
-+ return ret;
-+}
-+
-+/*
- * Requeue all waiters hashed on one physical page to another
- * physical page.
- */
-@@ -740,6 +842,9 @@
- case FUTEX_CMP_REQUEUE:
- ret = futex_requeue(uaddr, uaddr2, val, val2, &val3);
- break;
-+ case FUTEX_WAKE_OP:
-+ ret = futex_wake_op(uaddr, uaddr2, val, val2, val3);
-+ break;
- default:
- ret = -ENOSYS;
- }
-@@ -755,9 +860,11 @@
- unsigned long timeout = MAX_SCHEDULE_TIMEOUT;
- int val2 = 0;
-
-- if ((op == FUTEX_WAIT) && utime) {
-+ if (utime && (op == FUTEX_WAIT)) {
- if (copy_from_user(&t, utime, sizeof(t)) != 0)
- return -EFAULT;
-+ if (!timespec_valid(&t))
-+ return -EINVAL;
- timeout = timespec_to_jiffies(&t) + 1;
- }
- /*
+++ /dev/null
-diff -Naur 2.6.12-5.0-org/include/asm-mips/uaccess.h 2.6.12-5.0-patched/include/asm-mips/uaccess.h
---- 2.6.12-5.0-org/include/asm-mips/uaccess.h 2007-07-26 00:56:08.000000000 +0200
-+++ 2.6.12-5.0-patched/include/asm-mips/uaccess.h 2007-12-11 12:34:52.000000000 +0100
-@@ -234,39 +234,72 @@
-
- #define __get_user_nocheck(x,ptr,size) \
- ({ \
-- __typeof(*(ptr)) __gu_val = (__typeof(*(ptr))) 0; \
- long __gu_err = 0; \
-- \
- might_sleep(); \
- switch (size) { \
-- case 1: __get_user_asm("lb", ptr); break; \
-- case 2: __get_user_asm("lh", ptr); break; \
-- case 4: __get_user_asm("lw", ptr); break; \
-- case 8: __GET_USER_DW(ptr); break; \
-+ case 1: { \
-+ s8 __gu_val = (s8) 0; \
-+ __get_user_asm("lb", ptr); \
-+ (x) = (__typeof__(*(ptr))) __gu_val; \
-+ break; \
-+ } \
-+ case 2: { \
-+ s16 __gu_val = (s16) 0; \
-+ __get_user_asm("lh", ptr); \
-+ (x) = (__typeof__(*(ptr))) __gu_val; \
-+ break; \
-+ } \
-+ case 4: { \
-+ s32 __gu_val = (s32) 0; \
-+ __get_user_asm("lw", ptr); \
-+ (x) = (__typeof__(*(ptr))) __gu_val; \
-+ break; \
-+ } \
-+ case 8: { \
-+ s64 __gu_val = (s64) 0; \
-+ __GET_USER_DW(ptr); \
-+ (x) = (__typeof__(*(ptr))) __gu_val; \
-+ break; \
-+ } \
- default: __get_user_unknown(); break; \
- } \
-- (x) = (__typeof__(*(ptr))) __gu_val; \
- __gu_err; \
- })
-
- #define __get_user_check(x,ptr,size) \
- ({ \
- const __typeof__(*(ptr)) __user * __gu_addr = (ptr); \
-- __typeof__(*(ptr)) __gu_val = 0; \
- long __gu_err = -EFAULT; \
-- \
- might_sleep(); \
-- \
- if (likely(access_ok(VERIFY_READ, __gu_addr, size))) { \
- switch (size) { \
-- case 1: __get_user_asm("lb", __gu_addr); break; \
-- case 2: __get_user_asm("lh", __gu_addr); break; \
-- case 4: __get_user_asm("lw", __gu_addr); break; \
-- case 8: __GET_USER_DW(__gu_addr); break; \
-+ case 1: { \
-+ s8 __gu_val = (s8) 0; \
-+ __get_user_asm("lb", ptr); \
-+ (x) = (__typeof__(*(ptr))) __gu_val; \
-+ break; \
-+ } \
-+ case 2: { \
-+ s16 __gu_val = (s16) 0; \
-+ __get_user_asm("lh", ptr); \
-+ (x) = (__typeof__(*(ptr))) __gu_val; \
-+ break; \
-+ } \
-+ case 4: { \
-+ s32 __gu_val = (s32) 0; \
-+ __get_user_asm("lw", ptr); \
-+ (x) = (__typeof__(*(ptr))) __gu_val; \
-+ break; \
-+ } \
-+ case 8: { \
-+ s64 __gu_val = (s64) 0; \
-+ __GET_USER_DW(ptr); \
-+ (x) = (__typeof__(*(ptr))) __gu_val; \
-+ break; \
-+ } \
- default: __get_user_unknown(); break; \
- } \
- } \
-- (x) = (__typeof__(*(ptr))) __gu_val; \
- __gu_err; \
- })
-
+++ /dev/null
-diff -Naur 2.6.12-5.0-org/arch/mips/kernel/gdb-low.S 2.6.12-5.0-patched/arch/mips/kernel/gdb-low.S
---- 2.6.12-5.0-org/arch/mips/kernel/gdb-low.S 2007-07-26 00:51:07.000000000 +0200
-+++ 2.6.12-5.0-patched/arch/mips/kernel/gdb-low.S 2007-12-11 12:34:52.000000000 +0100
-@@ -52,12 +52,14 @@
- /*
- * Called from user mode, go somewhere else.
- */
-- lui k1, %hi(saved_vectors)
- mfc0 k0, CP0_CAUSE
- andi k0, k0, 0x7c
-- add k1, k1, k0
-- lw k0, %lo(saved_vectors)(k1)
-- jr k0
-+
-+#ifdef CONFIG_MIPS64
-+ dsll k0, k0, 1
-+#endif
-+ lw k1, %lo(saved_vectors)(k0)
-+ jr k1
- nop
- 1:
- move k0, sp
+++ /dev/null
-DESCRIPTION = "Linux kernel for Dreambox DM8000"
-LICENSE = "GPL"
-PN = "linux-dm8000"
-KV = "2.6.12"
-PV = "2.6.12"
-PR = "r7"
-
-# note, the rX in the filename is *NOT* the packet revision - it's the patch revision.
-SRC_URI += "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${KV}.tar.bz2 \
- file://dm8000_defconfig \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-brcm-5.1.patch.bz2;patch=1;pnum=1 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-update_dvbapi-r1.patch.bz2;patch=1;pnum=1 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvb-multipid-r4.patch.bz2;patch=1;pnum=1 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvb-core-fix-several-locking-problems.patch.bz2;patch=1;pnum=1 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvbapi-pilot-rolloff-extension-r0.patch.bz2;patch=1;pnum=1 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-update-wireless.patch.bz2;patch=1;pnum=1 \
- http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-add-ioprio.patch.bz2;patch=1;pnum=1 \
- file://linux-2.6.12-dvbapi-support-more-demux.patch;patch=1;pnum=1 \
- file://linux-2.6.12-dream-misc.patch;patch=1;pnum=1 \
- file://linux-2.6.12-dm8000-nand.patch;patch=1;pnum=1 \
- file://linux-2.6.12-dream-temp.patch;patch=1;pnum=1 \
- file://linux-2.6.12-brcm-mtd-blkdevfs-fix.diff;patch=1;pnum=1 \
- file://linux-2.6.12-brcm-fix-usb-for-revb0.diff;patch=1;pnum=1 \
- file://linux-2.6.12-set-custom-extraversion.patch;patch=1;pnum=1 \
- file://linux-2.6.12-fixup-prom-args.patch;patch=1;pnum=1 \
- file://linux-2.6.12-7400AB-enable-llsc.patch;patch=1;pnum=1 \
- file://linuxmips-2.6.12-fix-fadvise.patch;patch=1;pnum=1 \
- file://linuxmips-2.6.12-fix-futex.patch;patch=1;pnum=1 \
- file://linuxmips-2.6.12-gcc4-compile-fix.patch;patch=1;pnum=1 \
- file://linuxmips-2.6.12-gdb-fix.patch;patch=1;pnum=1 \
- file://linux-2.6.12-brcm-fix-minipci.patch;patch=1;pnum=1 \
- file://linux-2.6.12-fixup-memsize.patch;patch=1;pnum=1 \
- http://trappist.elis.ugent.be/~mronsse/cdfs/download/cdfs-2.6.12.tar.bz2"
-
-S = "${WORKDIR}/stblinux-2.6.12"
-
-inherit kernel
-
-FILES_kernel-image = "/boot/vmlinux.gz /boot/autoexec.bat"
-
-export OS = "Linux"
-KERNEL_IMAGETYPE = "vmlinux"
-KERNEL_OUTPUT = "vmlinux"
-KERNEL_OBJECT_SUFFIX = "ko"
-
-do_munge() {
- mv ${WORKDIR}/linux-2.6.12 ${WORKDIR}/stblinux-2.6.12
- if [ -d ${S}/drivers/sound ]; then
- rm -R ${S}/drivers/sound;
- fi;
-}
-
-addtask munge before do_patch after do_unpack
-
-do_configure_prepend() {
- oe_machinstall -m 0644 ${WORKDIR}/dm8000_defconfig ${S}/.config
- if [ -d ${WORKDIR}/cdfs-${PV} ]; then
- mv ${WORKDIR}/cdfs-${PV} ${S}/fs/cdfs
- cd ${S} & patch -p0 < ${S}/fs/cdfs/patch.cdfs
- fi;
- oe_runmake oldconfig
-}
-
-do_install_append () {
- install -d ${D}/boot
- install -m 0755 vmlinux ${D}/boot/vmlinux
- echo "/flash/bootlogo.elf" > ${D}/boot/autoexec.bat
- gzip ${D}/boot/vmlinux
- echo "/flash/vmlinux.gz" >> ${D}/boot/autoexec.bat
-}
-
-pkg_preinst_kernel-image () {
- [ -d /proc/stb ] && mount -o rw,remount /boot
- true
-}
-
-pkg_postinst_kernel-image () {
- [ -d /proc/stb ] && mount -o ro,remount /boot
- true
-}
-
-pkg_prerm_kernel-image () {
- [ -d /proc/stb ] && mount -o rw,remount /boot
- true
-}
-
-pkg_postrm_kernel-image () {
- [ -d /proc/stb ] && mount -o ro,remount /boot
- true
-}
+++ /dev/null
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.12-5.1-brcmstb-dm8000
-# Mon Oct 20 18:29:26 2008
-#
-CONFIG_MIPS=y
-
-#
-# Code maturity level options
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_CLEAN_COMPILE=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-
-#
-# General setup
-#
-CONFIG_LOCALVERSION=""
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-# CONFIG_AUDIT is not set
-CONFIG_HOTPLUG=y
-CONFIG_KOBJECT_UEVENT=y
-# CONFIG_IKCONFIG is not set
-CONFIG_EMBEDDED=y
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SHMEM=y
-CONFIG_CC_ALIGN_FUNCTIONS=0
-CONFIG_CC_ALIGN_LABELS=0
-CONFIG_CC_ALIGN_LOOPS=0
-CONFIG_CC_ALIGN_JUMPS=0
-# CONFIG_TINY_SHMEM is not set
-CONFIG_BASE_SMALL=0
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_OBSOLETE_MODPARM=y
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-
-#
-# Machine selection
-#
-# CONFIG_MIPS_BCM3560A0 is not set
-# CONFIG_MIPS_BCM3560B0 is not set
-# CONFIG_MIPS_BCM3563 is not set
-# CONFIG_MIPS_BCM3563C0 is not set
-# CONFIG_MIPS_BCM7038B0 is not set
-# CONFIG_MIPS_BCM7038CX is not set
-# CONFIG_MIPS_BCM97398 is not set
-# CONFIG_MIPS_BCM7110 is not set
-# CONFIG_MIPS_BCM7111 is not set
-# CONFIG_MIPS_BCM7112 is not set
-# CONFIG_MIPS_BCM7115 is not set
-# CONFIG_MIPS_BCM7118AX is not set
-# CONFIG_MIPS_BCM7118A0_NAND is not set
-# CONFIG_MIPS_BCM7312 is not set
-# CONFIG_MIPS_BCM7315 is not set
-# CONFIG_MIPS_BCM7317 is not set
-# CONFIG_MIPS_BCM7318 is not set
-# CONFIG_MIPS_BCM7319 is not set
-# CONFIG_MIPS_BCM7320 is not set
-# CONFIG_MIPS_BCM7328 is not set
-# CONFIG_MIPS_BCM7329 is not set
-# CONFIG_MIPS_BCM97456 is not set
-# CONFIG_MIPS_BCM97456BX is not set
-# CONFIG_MIPS_BCM97456BX_NAND is not set
-# CONFIG_MIPS_BCM7400AX is not set
-CONFIG_MIPS_BCM7400BX=y
-# CONFIG_MIPS_BCM7400BX_NAND is not set
-# CONFIG_MIPS_BCM7400AX_NAND is not set
-# CONFIG_MIPS_BCM7405AX is not set
-# CONFIG_MIPS_BCM97455 is not set
-# CONFIG_MIPS_BCM7401AX is not set
-# CONFIG_MIPS_BCM7401BX is not set
-# CONFIG_MIPS_BCM7401BX_NAND is not set
-# CONFIG_MIPS_BCM97455B0 is not set
-# CONFIG_MIPS_BCM7401CX is not set
-# CONFIG_MIPS_BCM7401CX_NAND is not set
-# CONFIG_MIPS_BCM97455CX is not set
-# CONFIG_MIPS_BCM97455CX_NAND is not set
-# CONFIG_MIPS_BCM97458AX is not set
-# CONFIG_MIPS_BCM97458AX_NAND is not set
-# CONFIG_MIPS_BCM7402S is not set
-# CONFIG_MIPS_BCM7402B0S is not set
-# CONFIG_MIPS_BCM7402A0 is not set
-# CONFIG_MIPS_BCM7402CX is not set
-# CONFIG_MIPS_BCM7402CX_NAND is not set
-# CONFIG_MIPS_BCM7403AX is not set
-# CONFIG_MIPS_BCM7451AX_SMB is not set
-# CONFIG_MIPS_BCM7403AX_NAND is not set
-# CONFIG_MIPS_BCM7452AX is not set
-# CONFIG_MIPS_BCM7452AX_NAND is not set
-# CONFIG_MIPS_BCM7440AX is not set
-# CONFIG_MIPS_BCM7440BX is not set
-# CONFIG_MIPS_BCM7440BX_NAND is not set
-# CONFIG_MIPS_BCM93730 is not set
-# CONFIG_MIPS_MTX1 is not set
-# CONFIG_MIPS_BOSPORUS is not set
-# CONFIG_MIPS_PB1000 is not set
-# CONFIG_MIPS_PB1100 is not set
-# CONFIG_MIPS_PB1500 is not set
-# CONFIG_MIPS_PB1550 is not set
-# CONFIG_MIPS_PB1200 is not set
-# CONFIG_MIPS_DB1000 is not set
-# CONFIG_MIPS_DB1100 is not set
-# CONFIG_MIPS_DB1500 is not set
-# CONFIG_MIPS_DB1550 is not set
-# CONFIG_MIPS_DB1200 is not set
-# CONFIG_MIPS_MIRAGE is not set
-# CONFIG_MIPS_COBALT is not set
-# CONFIG_MACH_DECSTATION is not set
-# CONFIG_MIPS_EV64120 is not set
-# CONFIG_MIPS_EV96100 is not set
-# CONFIG_MIPS_IVR is not set
-# CONFIG_MIPS_ITE8172 is not set
-# CONFIG_MACH_JAZZ is not set
-# CONFIG_LASAT is not set
-# CONFIG_MIPS_ATLAS is not set
-# CONFIG_MIPS_MALTA is not set
-# CONFIG_MIPS_SEAD is not set
-# CONFIG_MOMENCO_JAGUAR_ATX is not set
-# CONFIG_MOMENCO_OCELOT is not set
-# CONFIG_MOMENCO_OCELOT_3 is not set
-# CONFIG_MOMENCO_OCELOT_C is not set
-# CONFIG_MOMENCO_OCELOT_G is not set
-# CONFIG_MIPS_XXS1500 is not set
-# CONFIG_DDB5074 is not set
-# CONFIG_DDB5476 is not set
-# CONFIG_DDB5477 is not set
-# CONFIG_MACH_VR41XX is not set
-# CONFIG_PMC_YOSEMITE is not set
-# CONFIG_QEMU is not set
-# CONFIG_SGI_IP22 is not set
-# CONFIG_SGI_IP27 is not set
-# CONFIG_SGI_IP32 is not set
-# CONFIG_SIBYTE_SWARM is not set
-# CONFIG_SIBYTE_SENTOSA is not set
-# CONFIG_SIBYTE_RHONE is not set
-# CONFIG_SIBYTE_CARMEL is not set
-# CONFIG_SIBYTE_PTSWARM is not set
-# CONFIG_SIBYTE_LITTLESUR is not set
-# CONFIG_SIBYTE_CRHINE is not set
-# CONFIG_SIBYTE_CRHONE is not set
-# CONFIG_SNI_RM200_PCI is not set
-# CONFIG_TOSHIBA_JMR3927 is not set
-# CONFIG_TOSHIBA_RBTX4927 is not set
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_HAVE_DEC_LOCK=y
-CONFIG_DMA_NONCOHERENT=y
-# CONFIG_CPU_BIG_ENDIAN is not set
-CONFIG_CPU_LITTLE_ENDIAN=y
-CONFIG_SYS_SUPPORTS_CPUFREQ=y
-CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
-CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
-CONFIG_IRQ_CPU=y
-CONFIG_MIPS_BRCM97XXX=y
-CONFIG_MIPS_BCM7400B0=y
-CONFIG_MIPS_BCM7400=y
-CONFIG_MIPS_BRCM=y
-# CONFIG_BRCM_7XXX_SERIAL is not set
-# CONFIG_LONG_LONG_SUPPORT is not set
-CONFIG_SERIAL=y
-CONFIG_MIPS_L1_CACHE_SHIFT=6
-
-#
-# Power management
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_TABLE=y
-# CONFIG_CPU_FREQ_DEBUG is not set
-CONFIG_CPU_FREQ_STAT=y
-CONFIG_CPU_FREQ_STAT_DETAILS=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=m
-CONFIG_CPU_FREQ_GOV_USERSPACE=m
-CONFIG_CPU_FREQ_GOV_ONDEMAND=m
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
-CONFIG_CPU_FREQ_BRCM=y
-
-#
-# CPU selection
-#
-# CONFIG_CPU_MIPS32_R2 is not set
-CONFIG_CPU_MIPS32_R1=y
-# CONFIG_CPU_MIPS64_R1 is not set
-# CONFIG_CPU_R3000 is not set
-# CONFIG_CPU_TX39XX is not set
-# CONFIG_CPU_VR41XX is not set
-# CONFIG_CPU_R4300 is not set
-# CONFIG_CPU_R4X00 is not set
-# CONFIG_CPU_TX49XX is not set
-# CONFIG_CPU_R5000 is not set
-# CONFIG_CPU_R5432 is not set
-# CONFIG_CPU_R6000 is not set
-# CONFIG_CPU_NEVADA is not set
-# CONFIG_CPU_R8000 is not set
-# CONFIG_CPU_R10000 is not set
-# CONFIG_CPU_RM7000 is not set
-# CONFIG_CPU_RM9000 is not set
-# CONFIG_CPU_SB1 is not set
-CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
-CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
-
-#
-# Kernel type
-#
-CONFIG_MIPS32=y
-# CONFIG_MIPS64 is not set
-# CONFIG_64BIT is not set
-CONFIG_PAGE_SIZE_4KB=y
-# CONFIG_PAGE_SIZE_8KB is not set
-# CONFIG_PAGE_SIZE_16KB is not set
-# CONFIG_PAGE_SIZE_64KB is not set
-CONFIG_CPU_HAS_PREFETCH=y
-# CONFIG_64BIT_PHYS_ADDR is not set
-# CONFIG_CPU_ADVANCED is not set
-CONFIG_CPU_HAS_LLSC=y
-CONFIG_CPU_HAS_SYNC=y
-# CONFIG_SMP is not set
-# CONFIG_PREEMPT is not set
-
-#
-# Bus options (PCI, PCMCIA, EISA, ISA, TC)
-#
-CONFIG_HW_HAS_PCI=y
-CONFIG_PCI=y
-CONFIG_PCI_LEGACY_PROC=y
-# CONFIG_PCI_NAMES is not set
-CONFIG_MMU=y
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
-# CONFIG_PCCARD is not set
-
-#
-# PCI Hotplug Support
-#
-# CONFIG_HOTPLUG_PCI is not set
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
-CONFIG_TRAD_SIGNALS=y
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_STANDALONE=y
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-CONFIG_FW_LOADER=y
-
-#
-# Memory Technology Devices (MTD)
-#
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_CONCAT is not set
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_MTD_BLOCK_ROMBLOCK is not set
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-# CONFIG_RFD_FTL is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=y
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
-CONFIG_MTD_CFI_ADV_OPTIONS=y
-CONFIG_MTD_CFI_NOSWAP=y
-# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
-# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
-CONFIG_MTD_CFI_GEOMETRY=y
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-# CONFIG_MTD_OTP is not set
-# CONFIG_MTD_CFI_INTELEXT is not set
-CONFIG_MTD_CFI_AMDSTD=y
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=y
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-# CONFIG_MTD_PHYSMAP is not set
-CONFIG_MTD_BCM7XXX=y
-# CONFIG_MTD_MULTI_PHYSMAP is not set
-# CONFIG_MTD_PLATRAM is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_RAMTD is not set
-# CONFIG_MTD_BLKMTD is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-
-#
-# NAND Flash Device Drivers
-#
-CONFIG_MTD_NAND=y
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-CONFIG_MTD_NAND_IDS=y
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-CONFIG_MTD_NAND_DM8000=y
-# CONFIG_MTD_NAND_NANDSIM is not set
-
-#
-# OneNAND Flash Device Drivers
-#
-# CONFIG_MTD_ONENAND is not set
-
-#
-# Broadcom NAND Flash Device Drivers
-#
-# CONFIG_MTD_BRCMNAND is not set
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Plug and Play support
-#
-
-#
-# Block devices
-#
-# CONFIG_BLK_DEV_FD is not set
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_UMEM is not set
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_CRYPTOLOOP=m
-CONFIG_BLK_DEV_NBD=m
-# CONFIG_BLK_DEV_SX8 is not set
-# CONFIG_BLK_DEV_UB is not set
-# CONFIG_BLK_DEV_RAM is not set
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_INITRAMFS_SOURCE=""
-# CONFIG_LBD is not set
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_AS is not set
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-CONFIG_ATA_OVER_ETH=m
-
-#
-# ATA/ATAPI/MFM/RLL support
-#
-CONFIG_IDE=y
-CONFIG_BLK_DEV_IDE=y
-
-#
-# Please see Documentation/ide.txt for help/info on IDE drives
-#
-CONFIG_BLK_DEV_IDE_SATA=y
-CONFIG_BLK_DEV_IDEDISK=y
-CONFIG_IDEDISK_MULTI_MODE=y
-CONFIG_BLK_DEV_IDECD=y
-# CONFIG_BLK_DEV_IDETAPE is not set
-# CONFIG_BLK_DEV_IDEFLOPPY is not set
-# CONFIG_BLK_DEV_IDESCSI is not set
-# CONFIG_IDE_TASK_IOCTL is not set
-
-#
-# IDE chipset support/bugfixes
-#
-CONFIG_IDE_GENERIC=y
-CONFIG_BLK_DEV_IDEPCI=y
-# CONFIG_IDEPCI_SHARE_IRQ is not set
-# CONFIG_BLK_DEV_OFFBOARD is not set
-CONFIG_BLK_DEV_GENERIC=y
-# CONFIG_BLK_DEV_OPTI621 is not set
-CONFIG_BLK_DEV_IDEDMA_PCI=y
-# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
-CONFIG_IDEDMA_PCI_AUTO=y
-# CONFIG_IDEDMA_ONLYDISK is not set
-# CONFIG_BLK_DEV_AEC62XX is not set
-# CONFIG_BLK_DEV_ALI15X3 is not set
-# CONFIG_BLK_DEV_AMD74XX is not set
-# CONFIG_BLK_DEV_CMD64X is not set
-# CONFIG_BLK_DEV_TRIFLEX is not set
-# CONFIG_BLK_DEV_CY82C693 is not set
-# CONFIG_BLK_DEV_CS5520 is not set
-# CONFIG_BLK_DEV_CS5530 is not set
-# CONFIG_BLK_DEV_HPT34X is not set
-# CONFIG_BLK_DEV_HPT366 is not set
-# CONFIG_BLK_DEV_SC1200 is not set
-# CONFIG_BLK_DEV_PIIX is not set
-# CONFIG_BLK_DEV_NS87415 is not set
-# CONFIG_BLK_DEV_PDC202XX_OLD is not set
-# CONFIG_BLK_DEV_PDC202XX_NEW is not set
-CONFIG_BLK_DEV_SVWKS=y
-# CONFIG_BLK_DEV_SIIMAGE is not set
-# CONFIG_BLK_DEV_SLC90E66 is not set
-# CONFIG_BLK_DEV_TRM290 is not set
-# CONFIG_BLK_DEV_VIA82CXXX is not set
-# CONFIG_IDE_ARM is not set
-CONFIG_BLK_DEV_IDEDMA=y
-# CONFIG_IDEDMA_IVB is not set
-CONFIG_IDEDMA_AUTO=y
-# CONFIG_BLK_DEV_HD is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI=y
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=m
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-CONFIG_BLK_DEV_SR=m
-# CONFIG_BLK_DEV_SR_VENDOR is not set
-CONFIG_CHR_DEV_SG=m
-
-#
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-#
-CONFIG_SCSI_MULTI_LUN=y
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-
-#
-# SCSI Transport Attributes
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-
-#
-# SCSI low-level drivers
-#
-# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
-# CONFIG_SCSI_3W_9XXX is not set
-# CONFIG_SCSI_ACARD is not set
-# CONFIG_SCSI_AACRAID is not set
-# CONFIG_SCSI_AIC7XXX is not set
-# CONFIG_SCSI_AIC7XXX_OLD is not set
-# CONFIG_SCSI_AIC79XX is not set
-# CONFIG_SCSI_DPT_I2O is not set
-# CONFIG_MEGARAID_NEWGEN is not set
-# CONFIG_MEGARAID_LEGACY is not set
-# CONFIG_SCSI_SATA is not set
-# CONFIG_SCSI_DMX3191D is not set
-# CONFIG_SCSI_FUTURE_DOMAIN is not set
-# CONFIG_SCSI_IPS is not set
-# CONFIG_SCSI_INITIO is not set
-# CONFIG_SCSI_INIA100 is not set
-# CONFIG_SCSI_SYM53C8XX_2 is not set
-# CONFIG_SCSI_IPR is not set
-# CONFIG_SCSI_QLOGIC_FC is not set
-# CONFIG_SCSI_QLOGIC_1280 is not set
-CONFIG_SCSI_QLA2XXX=y
-# CONFIG_SCSI_QLA21XX is not set
-# CONFIG_SCSI_QLA22XX is not set
-# CONFIG_SCSI_QLA2300 is not set
-# CONFIG_SCSI_QLA2322 is not set
-# CONFIG_SCSI_QLA6312 is not set
-# CONFIG_SCSI_LPFC is not set
-# CONFIG_SCSI_DC395x is not set
-# CONFIG_SCSI_DC390T is not set
-# CONFIG_SCSI_NSP32 is not set
-CONFIG_SCSI_DEBUG=m
-
-#
-# Multi-device support (RAID and LVM)
-#
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=m
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID5=m
-CONFIG_MD_RAID6=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-CONFIG_BLK_DEV_DM=m
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_MIRROR=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_EMC=m
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-# CONFIG_I2O is not set
-
-#
-# Networking support
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-# CONFIG_PACKET_MMAP is not set
-CONFIG_UNIX=y
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IP_PNP_RARP=y
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-CONFIG_ARPD=y
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_TUNNEL=m
-CONFIG_IP_TCPDIAG=y
-# CONFIG_IP_TCPDIAG_IPV6 is not set
-
-#
-# IP: Virtual Server Configuration
-#
-# CONFIG_IP_VS is not set
-CONFIG_IPV6=m
-CONFIG_IPV6_PRIVACY=y
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_IPV6_TUNNEL=m
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_BRIDGE_NETFILTER=y
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_IP_NF_CONNTRACK=m
-# CONFIG_IP_NF_CT_ACCT is not set
-CONFIG_IP_NF_CONNTRACK_MARK=y
-CONFIG_IP_NF_CT_PROTO_SCTP=m
-CONFIG_IP_NF_FTP=m
-CONFIG_IP_NF_IRC=m
-CONFIG_IP_NF_TFTP=m
-CONFIG_IP_NF_AMANDA=m
-CONFIG_IP_NF_QUEUE=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_LIMIT=m
-CONFIG_IP_NF_MATCH_IPRANGE=m
-CONFIG_IP_NF_MATCH_MAC=m
-CONFIG_IP_NF_MATCH_PKTTYPE=m
-CONFIG_IP_NF_MATCH_MARK=m
-CONFIG_IP_NF_MATCH_MULTIPORT=m
-CONFIG_IP_NF_MATCH_TOS=m
-CONFIG_IP_NF_MATCH_RECENT=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_DSCP=m
-CONFIG_IP_NF_MATCH_AH_ESP=m
-CONFIG_IP_NF_MATCH_LENGTH=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_MATCH_TCPMSS=m
-CONFIG_IP_NF_MATCH_HELPER=m
-CONFIG_IP_NF_MATCH_STATE=m
-CONFIG_IP_NF_MATCH_CONNTRACK=m
-CONFIG_IP_NF_MATCH_OWNER=m
-# CONFIG_IP_NF_MATCH_PHYSDEV is not set
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
-CONFIG_IP_NF_MATCH_REALM=m
-CONFIG_IP_NF_MATCH_SCTP=m
-CONFIG_IP_NF_MATCH_COMMENT=m
-CONFIG_IP_NF_MATCH_CONNMARK=m
-CONFIG_IP_NF_MATCH_HASHLIMIT=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_LOG=m
-CONFIG_IP_NF_TARGET_ULOG=m
-CONFIG_IP_NF_TARGET_TCPMSS=m
-CONFIG_IP_NF_NAT=m
-CONFIG_IP_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_SAME=m
-CONFIG_IP_NF_NAT_SNMP_BASIC=m
-CONFIG_IP_NF_NAT_IRC=m
-CONFIG_IP_NF_NAT_FTP=m
-CONFIG_IP_NF_NAT_TFTP=m
-CONFIG_IP_NF_NAT_AMANDA=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_TOS=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_DSCP=m
-CONFIG_IP_NF_TARGET_MARK=m
-CONFIG_IP_NF_TARGET_CLASSIFY=m
-CONFIG_IP_NF_TARGET_CONNMARK=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_TARGET_NOTRACK=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-
-#
-# IPv6: Netfilter Configuration (EXPERIMENTAL)
-#
-CONFIG_IP6_NF_QUEUE=m
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_LIMIT=m
-CONFIG_IP6_NF_MATCH_MAC=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_MULTIPORT=m
-CONFIG_IP6_NF_MATCH_OWNER=m
-CONFIG_IP6_NF_MATCH_MARK=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_AHESP=m
-CONFIG_IP6_NF_MATCH_LENGTH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-# CONFIG_IP6_NF_MATCH_PHYSDEV is not set
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_LOG=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_TARGET_MARK=m
-CONFIG_IP6_NF_RAW=m
-
-#
-# Bridge: Netfilter Configuration
-#
-# CONFIG_BRIDGE_NF_EBTABLES is not set
-CONFIG_XFRM=y
-CONFIG_XFRM_USER=m
-
-#
-# SCTP Configuration (EXPERIMENTAL)
-#
-CONFIG_IP_SCTP=m
-# CONFIG_SCTP_DBG_MSG is not set
-# CONFIG_SCTP_DBG_OBJCNT is not set
-# CONFIG_SCTP_HMAC_NONE is not set
-# CONFIG_SCTP_HMAC_SHA1 is not set
-CONFIG_SCTP_HMAC_MD5=y
-# CONFIG_ATM is not set
-CONFIG_BRIDGE=m
-CONFIG_VLAN_8021Q=m
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_NET_DIVERT is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-
-#
-# QoS and/or fair queueing
-#
-CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_CLK_JIFFIES=y
-# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
-# CONFIG_NET_SCH_CLK_CPU is not set
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_PRIO=m
-CONFIG_NET_SCH_RED=m
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_NETEM=m
-CONFIG_NET_SCH_INGRESS=m
-CONFIG_NET_QOS=y
-CONFIG_NET_ESTIMATOR=y
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_ROUTE=y
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-CONFIG_CLS_U32_PERF=y
-CONFIG_NET_CLS_IND=y
-CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_STACK=32
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_NBYTE=m
-CONFIG_NET_EMATCH_U32=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-CONFIG_NETPOLL=y
-CONFIG_NETPOLL_RX=y
-CONFIG_NETPOLL_TRAP=y
-CONFIG_NET_POLL_CONTROLLER=y
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIUSB=m
-CONFIG_BT_HCIUSB_SCO=y
-# CONFIG_BT_HCIUART is not set
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-# CONFIG_BT_HCIVHCI is not set
-CONFIG_NETDEVICES=y
-CONFIG_NETIF_DMA=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-CONFIG_TUN=m
-
-#
-# ARCnet devices
-#
-# CONFIG_ARCNET is not set
-
-#
-# Ethernet (10 or 100Mbit)
-#
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=y
-CONFIG_BCMINTEMAC_7038=y
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_SUNGEM is not set
-# CONFIG_NET_VENDOR_3COM is not set
-
-#
-# Tulip family network device support
-#
-# CONFIG_NET_TULIP is not set
-# CONFIG_HP100 is not set
-# CONFIG_NET_PCI is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-# CONFIG_E1000 is not set
-# CONFIG_NS83820 is not set
-# CONFIG_HAMACHI is not set
-# CONFIG_YELLOWFIN is not set
-# CONFIG_R8169 is not set
-# CONFIG_SK98LIN is not set
-# CONFIG_TIGON3 is not set
-# CONFIG_BNX2 is not set
-
-#
-# Ethernet (10000 Mbit)
-#
-# CONFIG_IXGB is not set
-# CONFIG_S2IO is not set
-
-#
-# Token Ring devices
-#
-# CONFIG_TR is not set
-
-#
-# Wireless LAN (non-hamradio)
-#
-CONFIG_NET_RADIO=y
-
-#
-# Obsolete Wireless cards support (pre-802.11)
-#
-# CONFIG_STRIP is not set
-
-#
-# Wireless 802.11b ISA/PCI cards support
-#
-# CONFIG_HERMES is not set
-# CONFIG_ATMEL is not set
-
-#
-# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
-#
-# CONFIG_PRISM54 is not set
-CONFIG_NET_WIRELESS=y
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPPOE=m
-# CONFIG_SLIP is not set
-# CONFIG_NET_FC is not set
-# CONFIG_SHAPER is not set
-CONFIG_NETCONSOLE=m
-
-#
-# ISDN subsystem
-#
-# CONFIG_ISDN is not set
-
-#
-# Telephony Support
-#
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=m
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-CONFIG_INPUT_JOYDEV=m
-# CONFIG_INPUT_TSDEV is not set
-CONFIG_INPUT_EVDEV=y
-CONFIG_INPUT_EVBUG=m
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=y
-# CONFIG_MOUSE_SERIAL is not set
-# CONFIG_MOUSE_VSXXXAA is not set
-CONFIG_INPUT_JOYSTICK=y
-# CONFIG_JOYSTICK_ANALOG is not set
-# CONFIG_JOYSTICK_A3D is not set
-# CONFIG_JOYSTICK_ADI is not set
-# CONFIG_JOYSTICK_COBRA is not set
-# CONFIG_JOYSTICK_GF2K is not set
-# CONFIG_JOYSTICK_GRIP is not set
-# CONFIG_JOYSTICK_GRIP_MP is not set
-# CONFIG_JOYSTICK_GUILLEMOT is not set
-# CONFIG_JOYSTICK_INTERACT is not set
-# CONFIG_JOYSTICK_SIDEWINDER is not set
-# CONFIG_JOYSTICK_TMDC is not set
-# CONFIG_JOYSTICK_IFORCE is not set
-# CONFIG_JOYSTICK_WARRIOR is not set
-# CONFIG_JOYSTICK_MAGELLAN is not set
-# CONFIG_JOYSTICK_SPACEORB is not set
-# CONFIG_JOYSTICK_SPACEBALL is not set
-# CONFIG_JOYSTICK_STINGER is not set
-# CONFIG_JOYSTICK_TWIDJOY is not set
-# CONFIG_JOYSTICK_JOYDUMP is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-# CONFIG_TOUCHSCREEN_GUNZE is not set
-# CONFIG_TOUCHSCREEN_ELO is not set
-# CONFIG_TOUCHSCREEN_MTOUCH is not set
-# CONFIG_TOUCHSCREEN_MK712 is not set
-CONFIG_INPUT_MISC=y
-# CONFIG_INPUT_PCSPKR is not set
-# CONFIG_INPUT_UINPUT is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
-# CONFIG_SERIO_SERPORT is not set
-# CONFIG_SERIO_PCIPS2 is not set
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=0
-# CONFIG_SERIAL_8250_EXTENDED is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_LEGACY_PTYS is not set
-
-#
-# IPMI
-#
-# CONFIG_IPMI_HANDLER is not set
-
-#
-# Watchdog Cards
-#
-# CONFIG_WATCHDOG is not set
-# CONFIG_RTC is not set
-# CONFIG_GEN_RTC is not set
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-
-#
-# Ftape, the floppy tape device driver
-#
-# CONFIG_DRM is not set
-# CONFIG_RAW_DRIVER is not set
-
-#
-# TPM devices
-#
-# CONFIG_TCG_TPM is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=y
-CONFIG_I2C_CHARDEV=y
-
-#
-# I2C Algorithms
-#
-# CONFIG_I2C_ALGOBIT is not set
-# CONFIG_I2C_ALGOPCF is not set
-# CONFIG_I2C_ALGOPCA is not set
-
-#
-# I2C Hardware Bus support
-#
-# CONFIG_I2C_ALI1535 is not set
-# CONFIG_I2C_ALI1563 is not set
-# CONFIG_I2C_ALI15X3 is not set
-# CONFIG_I2C_AMD756 is not set
-# CONFIG_I2C_AMD8111 is not set
-# CONFIG_I2C_I801 is not set
-# CONFIG_I2C_I810 is not set
-# CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_ISA is not set
-# CONFIG_I2C_NFORCE2 is not set
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_PROSAVAGE is not set
-# CONFIG_I2C_SAVAGE4 is not set
-# CONFIG_SCx200_ACB is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-# CONFIG_I2C_VOODOO3 is not set
-# CONFIG_I2C_PCA_ISA is not set
-
-#
-# Hardware Sensors Chip support
-#
-# CONFIG_I2C_SENSOR is not set
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ASB100 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_FSCHER is not set
-# CONFIG_SENSORS_FSCPOS is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83627HF is not set
-
-#
-# Other I2C Chip support
-#
-# CONFIG_SENSORS_DS1337 is not set
-# CONFIG_SENSORS_EEPROM is not set
-# CONFIG_SENSORS_PCF8574 is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_SENSORS_RTC8564 is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
-
-#
-# Dallas's 1-wire bus
-#
-# CONFIG_W1 is not set
-
-#
-# Misc devices
-#
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
-# Digital Video Broadcasting Devices
-#
-CONFIG_DVB=y
-CONFIG_DVB_CORE=y
-
-#
-# Supported SAA7146 based PCI Adapters
-#
-# CONFIG_DVB_AV7110 is not set
-# CONFIG_DVB_BUDGET is not set
-# CONFIG_DVB_BUDGET_CI is not set
-# CONFIG_DVB_BUDGET_AV is not set
-
-#
-# Supported USB Adapters
-#
-# CONFIG_DVB_TTUSB_BUDGET is not set
-# CONFIG_DVB_TTUSB_DEC is not set
-# CONFIG_DVB_DIBUSB is not set
-# CONFIG_DVB_CINERGYT2 is not set
-
-#
-# Supported FlexCopII (B2C2) Adapters
-#
-# CONFIG_DVB_B2C2_FLEXCOP is not set
-# CONFIG_DVB_B2C2_SKYSTAR is not set
-
-#
-# Supported BT878 Adapters
-#
-
-#
-# Supported DVB Frontends
-#
-
-#
-# Customise DVB Frontends
-#
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_STV0299=y
-# CONFIG_DVB_CX24110 is not set
-CONFIG_DVB_TDA8083=m
-# CONFIG_DVB_TDA80XX is not set
-CONFIG_DVB_MT312=m
-CONFIG_DVB_VES1X93=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-# CONFIG_DVB_SP8870 is not set
-# CONFIG_DVB_SP887X is not set
-# CONFIG_DVB_CX22700 is not set
-# CONFIG_DVB_CX22702 is not set
-CONFIG_DVB_L64781=m
-# CONFIG_DVB_TDA1004X is not set
-# CONFIG_DVB_NXT6000 is not set
-# CONFIG_DVB_MT352 is not set
-# CONFIG_DVB_DIB3000MB is not set
-# CONFIG_DVB_DIB3000MC is not set
-
-#
-# DVB-C (cable) frontends
-#
-# CONFIG_DVB_ATMEL_AT76C651 is not set
-CONFIG_DVB_VES1820=m
-CONFIG_DVB_TDA10021=m
-# CONFIG_DVB_STV0297 is not set
-
-#
-# ATSC (North American/Korean Terresterial DTV) frontends
-#
-# CONFIG_DVB_NXT2002 is not set
-# CONFIG_DVB_OR51211 is not set
-# CONFIG_DVB_OR51132 is not set
-
-#
-# Graphics support
-#
-CONFIG_FB=y
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-CONFIG_FB_SOFT_CURSOR=y
-# CONFIG_FB_MACMODES is not set
-# CONFIG_FB_MODE_HELPERS is not set
-# CONFIG_FB_TILEBLITTING is not set
-# CONFIG_FB_CIRRUS is not set
-# CONFIG_FB_PM2 is not set
-# CONFIG_FB_CYBER2000 is not set
-# CONFIG_FB_ASILIANT is not set
-# CONFIG_FB_IMSTT is not set
-# CONFIG_FB_NVIDIA is not set
-# CONFIG_FB_RIVA is not set
-# CONFIG_FB_MATROX is not set
-# CONFIG_FB_RADEON_OLD is not set
-# CONFIG_FB_RADEON is not set
-# CONFIG_FB_ATY128 is not set
-# CONFIG_FB_ATY is not set
-# CONFIG_FB_SAVAGE is not set
-# CONFIG_FB_SIS is not set
-# CONFIG_FB_NEOMAGIC is not set
-# CONFIG_FB_KYRO is not set
-# CONFIG_FB_3DFX is not set
-# CONFIG_FB_VOODOO1 is not set
-# CONFIG_FB_SMIVGX is not set
-# CONFIG_FB_TRIDENT is not set
-# CONFIG_FB_E1356 is not set
-# CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_VIRTUAL is not set
-
-#
-# Console display driver support
-#
-# CONFIG_VGA_CONSOLE is not set
-CONFIG_DUMMY_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE is not set
-
-#
-# Logo configuration
-#
-# CONFIG_LOGO is not set
-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-
-#
-# Sound
-#
-CONFIG_SOUND=y
-
-#
-# Advanced Linux Sound Architecture
-#
-CONFIG_SND=y
-CONFIG_SND_TIMER=y
-CONFIG_SND_PCM=y
-# CONFIG_SND_SEQUENCER is not set
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=y
-CONFIG_SND_PCM_OSS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-
-#
-# Generic devices
-#
-# CONFIG_SND_DUMMY is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-
-#
-# PCI devices
-#
-# CONFIG_SND_ALI5451 is not set
-# CONFIG_SND_ATIIXP is not set
-# CONFIG_SND_ATIIXP_MODEM is not set
-# CONFIG_SND_AU8810 is not set
-# CONFIG_SND_AU8820 is not set
-# CONFIG_SND_AU8830 is not set
-# CONFIG_SND_AZT3328 is not set
-# CONFIG_SND_BT87X is not set
-# CONFIG_SND_CS46XX is not set
-# CONFIG_SND_CS4281 is not set
-# CONFIG_SND_EMU10K1 is not set
-# CONFIG_SND_EMU10K1X is not set
-# CONFIG_SND_CA0106 is not set
-# CONFIG_SND_KORG1212 is not set
-# CONFIG_SND_MIXART is not set
-# CONFIG_SND_NM256 is not set
-# CONFIG_SND_RME32 is not set
-# CONFIG_SND_RME96 is not set
-# CONFIG_SND_RME9652 is not set
-# CONFIG_SND_HDSP is not set
-# CONFIG_SND_TRIDENT is not set
-# CONFIG_SND_YMFPCI is not set
-# CONFIG_SND_ALS4000 is not set
-# CONFIG_SND_CMIPCI is not set
-# CONFIG_SND_ENS1370 is not set
-# CONFIG_SND_ENS1371 is not set
-# CONFIG_SND_ES1938 is not set
-# CONFIG_SND_ES1968 is not set
-# CONFIG_SND_MAESTRO3 is not set
-# CONFIG_SND_FM801 is not set
-# CONFIG_SND_ICE1712 is not set
-# CONFIG_SND_ICE1724 is not set
-# CONFIG_SND_INTEL8X0 is not set
-# CONFIG_SND_INTEL8X0M is not set
-# CONFIG_SND_SONICVIBES is not set
-# CONFIG_SND_VIA82XX is not set
-# CONFIG_SND_VIA82XX_MODEM is not set
-# CONFIG_SND_VX222 is not set
-# CONFIG_SND_HDA_INTEL is not set
-
-#
-# ALSA MIPS devices
-#
-
-#
-# USB devices
-#
-# CONFIG_SND_USB_AUDIO is not set
-
-#
-# Open Sound System
-#
-# CONFIG_SOUND_PRIME is not set
-
-#
-# USB support
-#
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB=y
-CONFIG_USB_DEBUG=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_BANDWIDTH is not set
-# CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_OTG is not set
-
-#
-# USB Host Controller Drivers
-#
-CONFIG_USB_EHCI_HCD=y
-# CONFIG_USB_EHCI_SPLIT_ISO is not set
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-CONFIG_USB_OHCI_HCD=y
-# CONFIG_USB_OHCI_BIG_ENDIAN is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-# CONFIG_USB_UHCI_HCD is not set
-# CONFIG_USB_SL811_HCD is not set
-CONFIG_USB_BRCM=y
-# CONFIG_USB_BRCM_PWR_CTL is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_AUDIO=m
-
-#
-# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem
-#
-CONFIG_USB_MIDI=m
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-
-#
-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
-#
-CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_DATAFAB=y
-CONFIG_USB_STORAGE_FREECOM=y
-CONFIG_USB_STORAGE_ISD200=y
-CONFIG_USB_STORAGE_DPCM=y
-CONFIG_USB_STORAGE_USBAT=y
-CONFIG_USB_STORAGE_SDDR09=y
-CONFIG_USB_STORAGE_SDDR55=y
-CONFIG_USB_STORAGE_JUMPSHOT=y
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=m
-CONFIG_USB_HIDINPUT=y
-# CONFIG_HID_FF is not set
-# CONFIG_USB_HIDDEV is not set
-
-#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-CONFIG_USB_AIPTEK=m
-CONFIG_USB_WACOM=m
-CONFIG_USB_KBTAB=m
-CONFIG_USB_POWERMATE=m
-CONFIG_USB_MTOUCH=m
-CONFIG_USB_EGALAX=m
-CONFIG_USB_XPAD=m
-CONFIG_USB_ATI_REMOTE=m
-
-#
-# USB Imaging devices
-#
-CONFIG_USB_MDC800=m
-CONFIG_USB_MICROTEK=m
-
-#
-# USB Multimedia devices
-#
-CONFIG_USB_DABUSB=m
-
-#
-# Video4Linux support is needed for USB Multimedia device support
-#
-
-#
-# USB Network Adapters
-#
-# CONFIG_USB_CATC is not set
-# CONFIG_USB_KAWETH is not set
-# CONFIG_USB_PEGASUS is not set
-# CONFIG_USB_RTL8150 is not set
-# CONFIG_USB_USBNET is not set
-# CONFIG_USB_ZD1201 is not set
-CONFIG_USB_MON=m
-
-#
-# USB port drivers
-#
-
-#
-# USB Serial Converter support
-#
-# CONFIG_USB_SERIAL is not set
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-CONFIG_USB_AUERSWALD=m
-CONFIG_USB_RIO500=m
-CONFIG_USB_LEGOTOWER=m
-CONFIG_USB_LCD=m
-CONFIG_USB_LED=m
-CONFIG_USB_CYTHERM=m
-CONFIG_USB_PHIDGETKIT=m
-CONFIG_USB_PHIDGETSERVO=m
-CONFIG_USB_IDMOUSE=m
-CONFIG_USB_SISUSBVGA=m
-# CONFIG_USB_TEST is not set
-
-#
-# USB ATM/DSL drivers
-#
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# MMC/SD Card support
-#
-# CONFIG_MMC is not set
-
-#
-# InfiniBand support
-#
-# CONFIG_INFINIBAND is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=m
-# CONFIG_EXT2_FS_XATTR is not set
-CONFIG_EXT3_FS=y
-CONFIG_EXT3_FS_XATTR=y
-# CONFIG_EXT3_FS_POSIX_ACL is not set
-# CONFIG_EXT3_FS_SECURITY is not set
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-# CONFIG_REISERFS_FS_XATTR is not set
-# CONFIG_JFS_FS is not set
-CONFIG_FS_POSIX_ACL=y
-
-#
-# XFS support
-#
-CONFIG_XFS_FS=m
-CONFIG_XFS_EXPORT=y
-# CONFIG_XFS_RT is not set
-# CONFIG_XFS_QUOTA is not set
-# CONFIG_XFS_SECURITY is not set
-# CONFIG_XFS_POSIX_ACL is not set
-CONFIG_MINIX_FS=m
-# CONFIG_ROMFS_FS is not set
-# CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
-CONFIG_AUTOFS_FS=m
-CONFIG_AUTOFS4_FS=y
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=y
-CONFIG_JOLIET=y
-# CONFIG_ZISOFS is not set
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-CONFIG_CDFS_FS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-CONFIG_NTFS_FS=m
-CONFIG_NTFS_DEBUG=y
-CONFIG_NTFS_RW=y
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-CONFIG_SYSFS=y
-CONFIG_DEVFS_FS=y
-CONFIG_DEVFS_MOUNT=y
-# CONFIG_DEVFS_DEBUG is not set
-# CONFIG_DEVPTS_FS_XATTR is not set
-CONFIG_TMPFS=y
-# CONFIG_TMPFS_XATTR is not set
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_JFFS_FS is not set
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-CONFIG_JFFS2_SUMMARY=y
-# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-CONFIG_CRAMFS=m
-CONFIG_SQUASHFS=y
-# CONFIG_SQUASHFS_EMBEDDED is not set
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-# CONFIG_SQUASHFS_VMALLOC is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-CONFIG_UFS_FS=m
-CONFIG_UFS_FS_WRITE=y
-
-#
-# Network File Systems
-#
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-CONFIG_NFS_V4=y
-# CONFIG_NFS_DIRECTIO is not set
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V4=y
-CONFIG_NFSD_TCP=y
-CONFIG_ROOT_NFS=y
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
-CONFIG_SUNRPC=y
-CONFIG_SUNRPC_GSS=y
-CONFIG_RPCSEC_GSS_KRB5=y
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
-CONFIG_CIFS=y
-# CONFIG_CIFS_STATS is not set
-# CONFIG_CIFS_XATTR is not set
-# CONFIG_CIFS_EXPERIMENTAL is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-
-#
-# Native Language Support
-#
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_UTF8=y
-
-#
-# Profiling support
-#
-# CONFIG_PROFILING is not set
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-# CONFIG_DEBUG_KERNEL is not set
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_CROSSCOMPILE=y
-CONFIG_CMDLINE="root=/dev/mtdblock3 rootfstype=jffs2 rw mem=128M console=null"
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-
-#
-# Cryptographic options
-#
-CONFIG_CRYPTO=y
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_WP512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_DES=y
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_AES=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_CRC32C=m
-CONFIG_CRYPTO_TEST=m
-
-#
-# Hardware crypto devices
-#
-
-#
-# Library routines
-#
-CONFIG_CRC_CCITT=m
-CONFIG_CRC32=y
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_IRQ_PROBE=y
+++ /dev/null
---- 2.6.12-5.1-org/arch/mips/Makefile 2008-03-19 16:22:29.000000000 +0100
-+++ 2.6.12-5.1-patched/arch/mips/Makefile 2008-03-24 14:06:32.000000000 +0100
-@@ -876,10 +876,9 @@
- core-$(CONFIG_MIPS_BCM7400A0) += arch/mips/brcmstb/common/
- core-$(CONFIG_MIPS_BCM7400B0) += arch/mips/brcmstb/common/
-
--ifdef CONFIG_SMP
- cflags-$(CONFIG_MIPS_BCM7400A0) += -Iinclude/asm-mips/mach-brcmstb
- cflags-$(CONFIG_MIPS_BCM7400B0) += -Iinclude/asm-mips/mach-brcmstb
--endif
-+
- load-$(CONFIG_MIPS_BCM7400A0) := 0x80001000
- load-$(CONFIG_MIPS_BCM7400B0) := 0x80001000
-
+++ /dev/null
---- stblinux-2.6.12.org/include/asm-mips/brcmstb/brcm97400b0/boardmap.h 2008-07-03 23:48:25.000000000 +0200
-+++ stblinux-2.6.12/include/asm-mips/brcmstb/brcm97400b0/boardmap.h 2008-07-03 21:23:22.000000000 +0200
-@@ -69,7 +69,7 @@
-
- #define PCI_1394_PHYS_MEM_WIN0_BASE 0xd0000000
-
--#define PCI_DEVICE_ID_EXT 0x0d
-+#define PCI_DEVICE_ID_EXT 1 /* 0x0d */
- #define PCI_DEVICE_ID_1394 0x0e
- #define PCI_DEVICE_ID_MINI 0x04
- #define PCI_DEVICE_ID_SATA 0 /* On 2ndary PCI bus */
+++ /dev/null
---- stblinux-2.6.12/include/asm-mips/brcmstb/brcm97400b0/bcmintrnum.h 2008-07-25 13:55:08.000000000 +0200
-+++ stblinux-2.6.12/include/asm-mips/brcmstb/brcm97400b0/bcmintrnum.h 2008-09-11 18:00:03.000000000 +0200
-@@ -106,7 +106,7 @@
-
- #define BCM_LINUX_EXPANSION_SLOT (BCM_LINUX_EXT_PCI_IRQ)
-
--#if 1
-+#if 0
- // IRQ lines for EHCI-1 and OHCI-0 are swapped on the 7400A0 chip.
- #define BCM_LINUX_USB_EHCI_CPU_INTR (1+32+BCHP_HIF_CPU_INTR1_INTR_W1_STATUS_USB_EHCI_CPU_INTR_SHIFT)
- #define BCM_LINUX_USB_EHCI_1_CPU_INTR (1+32+BCHP_HIF_CPU_INTR1_INTR_W1_STATUS_USB_OHCI_0_CPU_INTR_SHIFT)
+++ /dev/null
-Index: stblinux-2.6.12/drivers/mtd/mtd_blkdevs.c
-===================================================================
---- stblinux-2.6.12.orig/drivers/mtd/mtd_blkdevs.c 2007-07-26 00:55:00.000000000 +0200
-+++ stblinux-2.6.12/drivers/mtd/mtd_blkdevs.c 2008-01-16 23:58:30.000000000 +0100
-@@ -21,6 +21,7 @@
- #include <linux/init.h>
- #include <asm/semaphore.h>
- #include <asm/uaccess.h>
-+#include <linux/devfs_fs_kernel.h>
-
- static LIST_HEAD(blktrans_majors);
-
-@@ -302,6 +303,9 @@
- snprintf(gd->disk_name, sizeof(gd->disk_name),
- "%s%d", tr->name, new->devnum);
-
-+ snprintf(gd->devfs_name, sizeof(gd->devfs_name),
-+ "%s/%c", tr->name, (tr->part_bits?'a':'0') + new->devnum);
-+
- /* 2.5 has capacity in units of 512 bytes while still
- having BLOCK_SIZE_BITS set to 10. Just to keep us amused. */
- set_capacity(gd, (new->size * new->blksize) >> 9);
-@@ -418,6 +422,8 @@
- return ret;
- }
-
-+ devfs_mk_dir(tr->name);
-+
- INIT_LIST_HEAD(&tr->devs);
- list_add(&tr->list, &blktrans_majors);
-
-@@ -450,6 +456,7 @@
- tr->remove_dev(dev);
- }
-
-+ devfs_remove(tr->name);
- blk_cleanup_queue(tr->blkcore_priv->rq);
- unregister_blkdev(tr->major, tr->name);
-
-Index: stblinux-2.6.12/drivers/mtd/mtdchar.c
-===================================================================
---- stblinux-2.6.12.orig/drivers/mtd/mtdchar.c 2008-01-21 01:37:38.000000000 +0100
-+++ stblinux-2.6.12/drivers/mtd/mtdchar.c 2008-01-21 01:37:40.000000000 +0100
-@@ -26,6 +26,8 @@
-
- static struct class *mtd_class;
-
-+#include <linux/devfs_fs_kernel.h>
-+
- static void mtd_notify_add(struct mtd_info* mtd)
- {
- if (!mtd)
-@@ -50,6 +52,12 @@
- MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1),
- NULL, "mtd%dro", mtd->index);
- #endif
-+
-+ devfs_mk_cdev(MKDEV(MTD_CHAR_MAJOR, mtd->index*2),
-+ S_IFCHR | S_IRUGO | S_IWUGO, "mtd/%d", mtd->index);
-+
-+ devfs_mk_cdev(MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1),
-+ S_IFCHR | S_IRUGO, "mtd/%dro", mtd->index);
- }
-
- static void mtd_notify_remove(struct mtd_info* mtd)
-@@ -59,6 +67,9 @@
-
- class_device_destroy(mtd_class, MKDEV(MTD_CHAR_MAJOR, mtd->index*2));
- class_device_destroy(mtd_class, MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1));
-+
-+ devfs_remove("mtd/%d", mtd->index);
-+ devfs_remove("mtd/%dro", mtd->index);
- }
-
- static struct mtd_notifier notifier = {
-@@ -66,6 +77,17 @@
- .remove = mtd_notify_remove,
- };
-
-+static inline void mtdchar_devfs_init(void)
-+{
-+ devfs_mk_dir("mtd");
-+}
-+
-+static inline void mtdchar_devfs_exit(void)
-+{
-+ devfs_remove("mtd");
-+}
-+
-+
- /*
- * We use file->private_data to store a pointer to the MTDdevice.
- * Since alighment is at least 32 bits, we have 2 bits free for OTP
-@@ -807,6 +829,7 @@
- return PTR_ERR(mtd_class);
- }
-
-+ mtdchar_devfs_init();
- register_mtd_user(¬ifier);
- return 0;
- }
-@@ -815,6 +838,7 @@
- {
- unregister_mtd_user(¬ifier);
- class_destroy(mtd_class);
-+ mtdchar_devfs_exit();
- unregister_chrdev(MTD_CHAR_MAJOR, "mtd");
- }
-
+++ /dev/null
-Index: stblinux-2.6.12/drivers/mtd/nand/Kconfig
-===================================================================
---- stblinux-2.6.12.orig/drivers/mtd/nand/Kconfig 2006-10-10 20:27:00.000000000 +0200
-+++ stblinux-2.6.12/drivers/mtd/nand/Kconfig 2007-04-25 02:36:25.000000000 +0200
-@@ -199,6 +199,10 @@
- help
- Enables access to the Smart Media card interface on the AT91RM9200.
-
-+config MTD_NAND_DM8000
-+ bool "DM8000 NAND support"
-+ depends on MTD_NAND
-+
- config MTD_NAND_NANDSIM
- tristate "Support for NAND Flash Simulator"
- depends on m && MTD_NAND && MTD_PARTITIONS
-Index: stblinux-2.6.12/drivers/mtd/nand/Makefile
-===================================================================
---- stblinux-2.6.12.orig/drivers/mtd/nand/Makefile 2006-10-10 20:27:00.000000000 +0200
-+++ stblinux-2.6.12/drivers/mtd/nand/Makefile 2007-04-25 02:36:25.000000000 +0200
-@@ -16,6 +16,7 @@
- obj-$(CONFIG_MTD_NAND_AU1550) += au1550nd.o
- obj-$(CONFIG_MTD_NAND_PPCHAMELEONEVB) += ppchameleonevb.o
- obj-$(CONFIG_MTD_NAND_S3C2410) += s3c2410.o
-+obj-$(CONFIG_MTD_NAND_DM8000) += dm8000.o
- obj-$(CONFIG_MTD_NAND_DISKONCHIP) += diskonchip.o
- obj-$(CONFIG_MTD_NAND_H1900) += h1910.o
- obj-$(CONFIG_MTD_NAND_RTC_FROM4) += rtc_from4.o
-Index: stblinux-2.6.12/drivers/mtd/nand/dm8000.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ stblinux-2.6.12/drivers/mtd/nand/dm8000.c 2007-04-25 16:09:12.000000000 +0200
-@@ -0,0 +1,217 @@
-+/*
-+ * drivers/mtd/nand/dm8000.c
-+ *
-+ * Copyright (C) 2000 Steven J. Hill (sjhill@realitydiluted.com)
-+ *
-+ * Modified for Dreambox DM8000 by Felix Domke <tmbinc@elitedvb.net>
-+ *
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ * Overview:
-+ * This is a device driver for the NAND flash device found on the
-+ * DM8000 board.
-+ *
-+ */
-+
-+#include <linux/slab.h>
-+#include <linux/module.h>
-+#include <linux/mtd/mtd.h>
-+#include <linux/mtd/nand.h>
-+#include <linux/mtd/partitions.h>
-+#include <asm/io.h>
-+
-+static struct mtd_info *dm8000_mtd = NULL;
-+/*
-+ * Define partitions for flash device
-+ */
-+const static struct mtd_partition partition_info[] = {
-+ {
-+ .name = "complete",
-+ .offset = 0,
-+ .size = 256*1024*1024
-+ },
-+ {
-+ .name = "loader",
-+ .offset = 0,
-+ .size = 1024*1024
-+ },
-+ {
-+ .name = "boot partition",
-+ .offset = 1024*1024,
-+ .size = 3*1024*1024
-+ },
-+ {
-+ .name = "root partition",
-+ .offset = 4*1024*1024,
-+ .size = 60*1024*1024
-+ },
-+ {
-+ .name = "home partition",
-+ .offset = 64*1024*1024,
-+ .size = 64*1024*1024
-+ },
-+ {
-+ .name = "unused partition",
-+ .offset = 128*1024*1024,
-+ .size = 120*1024*1024
-+ },
-+ {
-+ .name = "preset partition",
-+ .offset = 248*1024*1024,
-+ .size = 8*1024*1024
-+ }
-+};
-+#define NUM_PARTITIONS 7
-+
-+/*
-+ * hardware specific access to control-lines
-+ * our hardware logic handles the line according to the addresses.
-+ */
-+static void dm8000_hwcontrol(struct mtd_info *mtd, int cmd)
-+{
-+ struct nand_chip *this = mtd->priv;
-+
-+ switch(cmd){
-+
-+ case NAND_CTL_SETCLE: this->IO_ADDR_W = (void*)0xBF030000; break; // COMMAND
-+ case NAND_CTL_CLRCLE: this->IO_ADDR_W = (void*)0xBF030004; break; // DATA
-+
-+ case NAND_CTL_SETALE: this->IO_ADDR_W = (void*)0xBF030002; break; // ADDRESS
-+ case NAND_CTL_CLRALE: this->IO_ADDR_W = (void*)0xBF030004; break; // DATA
-+
-+ case NAND_CTL_SETNCE: break; // CE will automatically set on command
-+ case NAND_CTL_CLRNCE: *(volatile unsigned char*)0xBF030003 = 0; break; // TERM
-+ default:
-+ BUG();
-+ }
-+}
-+
-+static void dm8000_nand_read_buf(struct mtd_info *mtd, u_char *buf, int len)
-+{
-+// struct nand_chip *this = mtd->priv;
-+
-+ *(volatile unsigned char*)0xBF030002;
-+
-+ while (len > 16)
-+ {
-+ *(long*)buf = *(volatile long*)(0xBF030004);
-+ *(long*)(buf+4) = *(volatile long*)(0xBF030004);
-+ *(long*)(buf+8) = *(volatile long*)(0xBF030004);
-+ *(long*)(buf+12) = *(volatile long*)(0xBF030004);
-+ buf += 16;
-+ len -= 16;
-+ }
-+
-+ while (len--)
-+ *buf++ = *(volatile unsigned char*)(0xBF030004);
-+}
-+
-+static int dm8000_dev_ready(struct mtd_info *mtd)
-+{
-+ *(volatile unsigned char*)0xBF030002;
-+ return 1;
-+}
-+
-+/*
-+ * Main initialization routine
-+ */
-+int __init dm8000_init (void)
-+{
-+ struct nand_chip *this;
-+ unsigned char probe[4];
-+ int i, j;
-+
-+ /* Allocate memory for MTD device structure and private data */
-+ dm8000_mtd = kmalloc (sizeof(struct mtd_info) + sizeof (struct nand_chip),
-+ GFP_KERNEL);
-+ if (!dm8000_mtd) {
-+ printk ("Unable to allocate DM8000 NAND MTD device structure.\n");
-+ return -ENOMEM;
-+ }
-+
-+ /* Get pointer to private data */
-+ this = (struct nand_chip *) (&dm8000_mtd[1]);
-+
-+ *(volatile unsigned char*)(0xBF030000) = 0x90;
-+ *(volatile unsigned char*)(0xBF030002) = 0;
-+ probe[0] = *(volatile unsigned char*)(0xBF030004);
-+ probe[1] = *(volatile unsigned char*)(0xBF030004);
-+ probe[2] = *(volatile unsigned char*)(0xBF030004);
-+ probe[3] = *(volatile unsigned char*)(0xBF030004);
-+ *(volatile unsigned char*)(0xBF030003) = 0; // term
-+
-+ j = jiffies;
-+ for (i=0; i<1000*1000/4; ++i)
-+ *(volatile unsigned long*)(0xBF030004);
-+ printk("%ld kb/s\n", 1000 * HZ / (jiffies-j));
-+
-+ printk(" - NAND PROBE: %02x %02x %02x %02x\n",
-+ probe[0], probe[1], probe[2], probe[3]);
-+
-+ /* Initialize structures */
-+ memset((char *) dm8000_mtd, 0, sizeof(struct mtd_info));
-+ memset((char *) this, 0, sizeof(struct nand_chip));
-+
-+ /* Link the private data with the MTD structure */
-+ dm8000_mtd->priv = this;
-+
-+ /* Set address of NAND IO lines */
-+ this->IO_ADDR_R = (void*)0xBF030004;
-+ this->IO_ADDR_W = (void*)0xBF030004;
-+
-+ /* Set address of hardware control function */
-+ this->hwcontrol = dm8000_hwcontrol;
-+ this->read_buf = dm8000_nand_read_buf;
-+ this->dev_ready = 0; // don't use dm8000_dev_ready
-+ /* 15 us command delay time */
-+ this->chip_delay = 15;
-+ this->eccmode = NAND_ECC_SOFT;
-+
-+ /* Scan to find existence of the device */
-+ if (nand_scan (dm8000_mtd, 1)) {
-+ kfree (dm8000_mtd);
-+ return -ENXIO;
-+ }
-+
-+ /* Allocate memory for internal data buffer */
-+ this->data_buf = kmalloc (sizeof(u_char) * (dm8000_mtd->oobblock + dm8000_mtd->oobsize), GFP_KERNEL);
-+ if (!this->data_buf) {
-+ printk ("Unable to allocate NAND data buffer for Dreambox.\n");
-+ kfree (dm8000_mtd);
-+ return -ENOMEM;
-+ }
-+
-+ /* Register the partitions */
-+ add_mtd_partitions(dm8000_mtd, partition_info, NUM_PARTITIONS);
-+
-+ /* Return happy */
-+ return 0;
-+}
-+module_init(dm8000_init);
-+
-+/*
-+ * Clean up routine
-+ */
-+#ifdef MODULE
-+static void __exit dm8000_cleanup (void)
-+{
-+ struct nand_chip *this = (struct nand_chip *) &dm8000_mtd[1];
-+
-+ /* Unregister the device */
-+ del_mtd_device (dm8000_mtd);
-+
-+ /* Free internal data buffer */
-+ kfree (this->data_buf);
-+
-+ /* Free the MTD device structure */
-+ kfree (dm8000_mtd);
-+}
-+module_exit(dm8000_cleanup);
-+#endif
-+
-+MODULE_LICENSE("GPL");
-+MODULE_AUTHOR("Felix Domke <tmbinc@elitedvb.net>");
-+MODULE_DESCRIPTION("Dream-Multimedia DM8000 NAND flash board glue");
+++ /dev/null
-diff -Naur 2.6.12-5.0-org/arch/mips/kernel/reset.c 2.6.12-5.0-patched/arch/mips/kernel/reset.c
---- 2.6.12-5.0-org/arch/mips/kernel/reset.c 2007-07-26 00:51:08.000000000 +0200
-+++ 2.6.12-5.0-patched/arch/mips/kernel/reset.c 2007-12-11 12:34:52.000000000 +0100
-@@ -27,6 +27,7 @@
- }
-
- EXPORT_SYMBOL(machine_restart);
-+EXPORT_SYMBOL(_machine_restart);
-
- void machine_halt(void)
- {
-@@ -34,6 +35,7 @@
- }
-
- EXPORT_SYMBOL(machine_halt);
-+EXPORT_SYMBOL(_machine_halt);
-
- void machine_power_off(void)
- {
-@@ -41,3 +43,4 @@
- }
-
- EXPORT_SYMBOL(machine_power_off);
-+EXPORT_SYMBOL(_machine_power_off);
-diff -Naur 2.6.12-5.0-org/drivers/video/Kconfig 2.6.12-5.0-patched/drivers/video/Kconfig
---- 2.6.12-5.0-org/drivers/video/Kconfig 2007-07-26 00:54:49.000000000 +0200
-+++ 2.6.12-5.0-patched/drivers/video/Kconfig 2007-12-11 12:34:52.000000000 +0100
-@@ -39,7 +39,7 @@
- device-aware may cause unexpected results. If unsure, say N.
-
- config FB_CFB_FILLRECT
-- tristate
-+ tristate "FB_CFB_FILLRECT"
- depends on FB
- default n
- ---help---
-@@ -48,7 +48,7 @@
- (accelerated) version.
-
- config FB_CFB_COPYAREA
-- tristate
-+ tristate "FB_CFB_COPYAREA"
- depends on FB
- default n
- ---help---
-@@ -57,7 +57,7 @@
- version.
-
- config FB_CFB_IMAGEBLIT
-- tristate
-+ tristate "FB_CFB_IMAGEBLIT"
- depends on FB
- default n
- ---help---
-@@ -66,7 +66,7 @@
- (accelerated) version.
-
- config FB_SOFT_CURSOR
-- tristate
-+ tristate "FB_SOFT_CURSOR"
- depends on FB
- default n
- ---help---
-diff -Naur 2.6.12-5.0-org/drivers/char/keyboard.c 2.6.12-5.0-patched/drivers/char/keyboard.c
---- 2.6.12-5.0-org/drivers/char/keyboard.c 2007-07-26 00:53:29.000000000 +0200
-+++ 2.6.12-5.0-patched/drivers/char/keyboard.c 2007-12-11 12:34:52.000000000 +0100
-@@ -1186,6 +1186,9 @@
- for (i = KEY_RESERVED; i < BTN_MISC; i++)
- if (test_bit(i, dev->keybit)) break;
-
-+ if ( test_bit(EV_NO_CONSOLE, dev->evbit) )
-+ return NULL;
-+
- if ((i == BTN_MISC) && !test_bit(EV_SND, dev->evbit))
- return NULL;
-
-diff -Naur 2.6.12-5.0-org/include/linux/input.h 2.6.12-5.0-patched/include/linux/input.h
---- 2.6.12-5.0-org/include/linux/input.h 2007-07-26 00:56:59.000000000 +0200
-+++ 2.6.12-5.0-patched/include/linux/input.h 2007-12-11 12:34:52.000000000 +0100
-@@ -92,6 +92,7 @@
- #define EV_FF 0x15
- #define EV_PWR 0x16
- #define EV_FF_STATUS 0x17
-+#define EV_NO_CONSOLE 0x1e
- #define EV_MAX 0x1f
-
- /*
+++ /dev/null
-Index: stblinux-2.6.12/arch/mips/kernel/vmlinux.lds.S
-===================================================================
---- stblinux-2.6.12.orig/arch/mips/kernel/vmlinux.lds.S 2008-01-16 23:52:20.000000000 +0100
-+++ stblinux-2.6.12/arch/mips/kernel/vmlinux.lds.S 2008-01-16 23:52:22.000000000 +0100
-@@ -145,8 +145,8 @@
- . = ALIGN(4096);
- __initramfs_start = .;
- .init.ramfs : { *(.init.ramfs) }
-- . = ALIGN(4096);
- __initramfs_end = .;
-+ . = ALIGN(4096);
-
- __bss_start = .; /* BSS */
- .sbss : {
-Index: stblinux-2.6.12/drivers/net/brcmint7038/bcmemac.c
-===================================================================
---- stblinux-2.6.12.orig/drivers/net/brcmint7038/bcmemac.c 2008-01-16 23:52:20.000000000 +0100
-+++ stblinux-2.6.12/drivers/net/brcmint7038/bcmemac.c 2008-01-16 23:52:13.000000000 +0100
-@@ -2978,99 +2978,10 @@
-
- static void bcmemac_getMacAddr(struct net_device* dev)
- {
-- uint8 flash_eaddr[ETH_ALEN];
-- void *virtAddr;
-- uint16 word;
-- int i;
--
--#if !defined( CONFIG_BRCM_PCI_SLAVE) && !defined( CONFIG_MTD_BRCMNAND )
--#if 1
-- virtAddr = (void*)FLASH_MACADDR_ADDR;
--#else
-- //virtAddr = (void*) 0xBDFFF824; /* BCM97110 in-flash Ethernet MAC address */
-- virtAddr = (void*) KSEG1ADDR(getPhysFlashBase() + FLASH_MACADDR_OFFSET);
--#endif
--
-- /* It is a common problem that the flash and/or Chip Select are
-- * not initialized properly, so leave this printk on
-- */
-- printk("%s: Reading MAC address from %08lX, FLASH_BASE=%08lx\n",
-- dev->name,(uint32) virtAddr, (unsigned long) 0xA0000000L|getPhysFlashBase());
--
-- word=0;
-- word=readw(virtAddr);
-- flash_eaddr[0]=(uint8) (word & 0x00FF);
-- flash_eaddr[1]=(uint8) ((word & 0xFF00) >> 8);
-- word=readw(virtAddr+2);
-- flash_eaddr[2]=(uint8) (word & 0x00FF);
-- flash_eaddr[3]=(uint8) ((word & 0xFF00) >> 8);
-- word=readw(virtAddr+4);
-- flash_eaddr[4]=(uint8) (word & 0x00FF);
-- flash_eaddr[5]=(uint8) ((word & 0xFF00) >> 8);
--
-- printk("%s: MAC address %02X:%02X:%02X:%02X:%02X:%02X fetched from addr %lX\n",
-- dev->name,
-- flash_eaddr[0],flash_eaddr[1],flash_eaddr[2],
-- flash_eaddr[3],flash_eaddr[4],flash_eaddr[5],
-- (uint32) virtAddr);
--
--#elif defined( CONFIG_MTD_BRCMNAND )
--{
-- extern int gNumHwAddrs;
-- extern unsigned char* gHwAddrs[];
--
-- if (gNumHwAddrs >= 1) {
-- for (i=0; i < 6; i++) {
-- flash_eaddr[i] = (uint8) gHwAddrs[0][i];
-- }
--
-- printk("%s: MAC address %02X:%02X:%02X:%02X:%02X:%02X fetched from bootloader\n",
-- dev->name,
-- flash_eaddr[0],flash_eaddr[1],flash_eaddr[2],
-- flash_eaddr[3],flash_eaddr[4],flash_eaddr[5]
-- );
-- }
-- else {
-- printk(KERN_ERR "%s: No MAC addresses defined\n", __FUNCTION__);
-- }
--}
-+ /* we rip the address set by the bootloader */
-+ unsigned long addr[2] = { be32_to_cpu(*(unsigned int*)0xB008005C), be32_to_cpu(*(unsigned int*)0xB0080058)};
-
--#else
--/* PCI slave cannot access the EBI bus,
-- * and for now, same for NAND flash, until CFE supports it
-- */
--/* Use hard coded value if Flash not properly initialized */
-- //if ((*flash_eaddr & 0xff) == 0xff)
-- {
--//#ifdef USE_HARDCODED_MACADDR
-- flash_eaddr[0] = 0x00;
-- flash_eaddr[1] = 0xc0;
-- flash_eaddr[2] = 0xa8;
-- flash_eaddr[3] = 0x74;
-- flash_eaddr[4] = 0x3b;
-- flash_eaddr[5] = 0x51;
-- printk("%s: Default MAC address %02X:%02X:%02X:%02X:%02X:%02X used\n",
-- dev->name,
-- flash_eaddr[0],flash_eaddr[1],flash_eaddr[2],
-- flash_eaddr[3],flash_eaddr[4],flash_eaddr[5]);
--//#else
--// printk("%s: Cannot read EMAC address from flash. Please run EVAL codes\n", CARDNAME);
--// return -ENODEV;
--//#endif
-- }
--#endif
--
-- /* fill in the MAC address */
-- for (i = 0; i < 6; i++) {
-- dev->dev_addr[i] = flash_eaddr[i];
-- }
--
-- /* print the Ethenet address */
-- printk("%s: MAC Address: ", dev->name);
-- for (i = 0; i < 5; i++) {
-- printk("%2.2X:", dev->dev_addr[i]);
-- }
-- printk("%2.2X\n", dev->dev_addr[i]);
-+ memcpy(dev->dev_addr, ((unsigned char*)addr)+2, 6);
- }
-
-
-Index: stblinux-2.6.12/arch/mips/brcmstb/common/setup.c
-===================================================================
---- stblinux-2.6.12.orig/arch/mips/brcmstb/common/setup.c 2008-01-16 23:53:24.000000000 +0100
-+++ stblinux-2.6.12/arch/mips/brcmstb/common/setup.c 2008-01-16 23:54:06.000000000 +0100
-@@ -136,13 +136,13 @@
-
- static void brcm_machine_halt(void)
- {
-- printk("Broadcom eval board halted.\n");
-+ printk("Halted.\n");
- while (1);
- }
-
- static void brcm_machine_power_off(void)
- {
-- printk("Broadcom eval board halted. Please turn off power.\n");
-+ printk("Halted. Please turn off power.\n");
- while (1);
- }
-
+++ /dev/null
-diff -Naur stblinux-2.6.12-org/drivers/media/dvb/dvb-core/dvbdev.c stblinux-2.6.12/drivers/media/dvb/dvb-core/dvbdev.c
---- stblinux-2.6.12-org/drivers/media/dvb/dvb-core/dvbdev.c 2008-07-17 23:14:00.000000000 +0200
-+++ stblinux-2.6.12/drivers/media/dvb/dvb-core/dvbdev.c 2008-07-17 22:34:33.000000000 +0200
-@@ -52,9 +52,9 @@
- };
-
- #define DVB_MAX_ADAPTERS 8
--#define DVB_MAX_IDS 4
--#define nums2minor(num,type,id) ((num << 6) | (id << 4) | type)
--#define MAX_DVB_MINORS (DVB_MAX_ADAPTERS*64)
-+#define DVB_MAX_IDS 8
-+#define nums2minor(num,type,id) ((num << 7) | (id << 4) | type)
-+#define MAX_DVB_MINORS (DVB_MAX_ADAPTERS*128)
-
- static struct class *dvb_class;
-
+++ /dev/null
-Index: stblinux-2.6.12/arch/mips/kernel/setup.c
-===================================================================
---- stblinux-2.6.12.orig/arch/mips/kernel/setup.c 2008-04-15 02:13:42.000000000 +0200
-+++ stblinux-2.6.12/arch/mips/kernel/setup.c 2008-04-15 02:25:13.000000000 +0200
-@@ -472,11 +472,29 @@
- */
- unsigned long get_RAM_size(void);
-
-+extern int *_prom_envp;
-+#define prom_envp(index) ((char *)(long)_prom_envp[(index)])
-+static char *prom_getenv(char *envname)
-+{
-+ int i, index=0;
-+
-+ i = strlen(envname);
-+
-+ while (prom_envp(index)) {
-+ if ((strncmp(envname, prom_envp(index), i) == 0) && (prom_envp(index)[i] == '='))
-+ return(prom_envp(index) + i + 1);
-+ index++;
-+ }
-+
-+ return NULL;
-+}
-+
- static inline void brcm_default_boot_mem(void)
- {
- int ramSizeMB = get_RAM_size() >> 20;
- int size;
- char msg[40];
-+ const char *memsize_str;
-
- if (ramSizeMB <= 32)
- {
-@@ -502,11 +520,20 @@
- size = 32;
- #endif
- }
-- sprintf(msg, "Using %dMB for memory, overwrite by passing mem=xx\n",
-- size);
-- uart_puts(msg);
-- brcm_insert_ram_node(0, size<<20, BOOT_MEM_RAM, &brcm_bm);
-
-+ memsize_str = prom_getenv("memsize");
-+ if (memsize_str)
-+ {
-+ int memsize = simple_strtol(memsize_str, NULL, 0);
-+ brcm_insert_ram_node(0, memsize<<20, BOOT_MEM_RAM, &brcm_bm);
-+ printk("---> memsize from bootloader: %d\n", memsize);
-+ } else
-+ {
-+ sprintf(msg, "Using %dMB for memory, overwrite by passing mem=xx\n",
-+ size);
-+ uart_puts(msg);
-+ brcm_insert_ram_node(0, size<<20, BOOT_MEM_RAM, &brcm_bm);
-+ }
- }
-
-
+++ /dev/null
-Index: stblinux-2.6.12/arch/mips/brcmstb/common/prom.c
-===================================================================
---- stblinux-2.6.12.orig/arch/mips/brcmstb/common/prom.c 2008-01-16 00:14:31.000000000 +0100
-+++ stblinux-2.6.12/arch/mips/brcmstb/common/prom.c 2008-01-16 00:23:08.000000000 +0100
-@@ -216,6 +216,29 @@
- }
-
-
-+int prom_argc;
-+int *_prom_argv, *_prom_envp;
-+
-+void __init prom_init_cmdline(void)
-+{
-+ char *cp;
-+ int actr;
-+
-+ actr = 1; /* Always ignore argv[0] */
-+
-+ cp = &(arcs_cmdline[0]);
-+ while(actr < prom_argc) {
-+ strcpy(cp, _prom_argv[actr]);
-+ cp += strlen(_prom_argv[actr]);
-+ *cp++ = ' ';
-+ actr++;
-+ }
-+ if (cp != &(arcs_cmdline[0])) {
-+ /* get rid of trailing space */
-+ --cp;
-+ *cp = '\0';
-+ }
-+}
-
- void __init prom_init(void)
- {
-@@ -731,23 +754,14 @@
- uart_puts("Default command line = \n");
- uart_puts(CONFIG_CMDLINE);
- uart_puts("\n");
-- p = &arcs_cmdline[0];
-- while (p != NULL && *p != '\0') {
-- if (!isspace(*p))
-- break;
-- p++;
-- }
-- if (p == NULL || *p == '\0') {
-- uart_puts("Defaulting to boot from HD\n");
-- /* Default is to boot from HD */
-- strcpy(arcs_cmdline,
-- "root=/dev/hda1" DEFAULT_KARGS);
-- }
-- else if (appendConsoleNeeded) {
-- /* Make sure that the boot params specify a console */
-- appendConsoleArg(arcs_cmdline);
-- }
-
-+ prom_argc = fw_arg0;
-+ _prom_argv = (int *) fw_arg1;
-+ _prom_envp = (int *) fw_arg2;
-+ printk("%d %p %p\n", prom_argc, _prom_argv, _prom_envp);
-+ prom_init_cmdline();
-+
-+
- #else /* No CONFIG_CMDLINE, and not Initrd */
- /* Default is to boot from HD */
- strcpy(arcs_cmdline,
+++ /dev/null
-Index: stblinux-2.6.12/Makefile
-===================================================================
---- stblinux-2.6.12.orig/Makefile 2007-12-17 20:09:55.000000000 +0100
-+++ stblinux-2.6.12/Makefile 2007-12-17 22:37:51.000000000 +0100
-@@ -2,7 +2,7 @@
- PATCHLEVEL = 6
- SUBLEVEL = 12
- # STABLE_VERSION = .2
--EXTRAVERSION =-5.1-brcmstb
-+EXTRAVERSION =-5.1-brcmstb-dm8000
- NAME=Woozy Numbat
-
- # *DOCUMENTATION*
+++ /dev/null
-diff -Naur 2.6.12-5.0-org/arch/mips/kernel/syscall.c 2.6.12-5.0-patched/arch/mips/kernel/syscall.c
---- 2.6.12-5.0-org/arch/mips/kernel/syscall.c 2007-07-26 00:51:09.000000000 +0200
-+++ 2.6.12-5.0-patched/arch/mips/kernel/syscall.c 2007-12-11 12:34:52.000000000 +0100
-@@ -405,6 +405,13 @@
- }
- }
-
-+asmlinkage long mips_fadvise64(int fd,
-+ unsigned int low_off, unsigned int high_off,
-+ unsigned int len, int advice, unsigned int dummy)
-+{
-+ return sys_fadvise64_64(fd, (((u64)high_off) << 32) | low_off, (u64)len, advice);
-+}
-+
- /*
- * No implemented yet ...
- */
-diff -Naur 2.6.12-5.0-org/arch/mips/kernel/scall32-o32.S 2.6.12-5.0-patched/arch/mips/kernel/scall32-o32.S
---- 2.6.12-5.0-org/arch/mips/kernel/scall32-o32.S 2007-07-26 00:51:08.000000000 +0200
-+++ 2.6.12-5.0-patched/arch/mips/kernel/scall32-o32.S 2007-12-11 12:34:52.000000000 +0100
-@@ -594,7 +594,7 @@
- sys sys_remap_file_pages 5
- sys sys_set_tid_address 1
- sys sys_restart_syscall 0
-- sys sys_fadvise64_64 7
-+ sys mips_fadvise64 7
- sys sys_statfs64 3 /* 4255 */
- sys sys_fstatfs64 2
- sys sys_timer_create 3
+++ /dev/null
-diff -Naur 2.6.12-5.0-org/include/asm-mips/futex.h 2.6.12-5.0-patched/include/asm-mips/futex.h
---- 2.6.12-5.0-org/include/asm-mips/futex.h 1970-01-01 01:00:00.000000000 +0100
-+++ 2.6.12-5.0-patched/include/asm-mips/futex.h 2007-12-11 12:34:52.000000000 +0100
-@@ -0,0 +1,134 @@
-+#ifndef _ASM_FUTEX_H
-+#define _ASM_FUTEX_H
-+
-+#ifdef __KERNEL__
-+
-+#include <linux/config.h>
-+#include <linux/futex.h>
-+#include <asm/errno.h>
-+#include <asm/uaccess.h>
-+#include <asm/war.h>
-+
-+#ifdef CONFIG_SMP
-+#define __FUTEX_SMP_SYNC " sync \n"
-+#else
-+#define __FUTEX_SMP_SYNC
-+#endif
-+
-+#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \
-+{ \
-+ if (cpu_has_llsc && R10000_LLSC_WAR) { \
-+ __asm__ __volatile__( \
-+ " .set push \n" \
-+ " .set noat \n" \
-+ " .set mips3 \n" \
-+ "1: ll %1, %4 # __futex_atomic_op \n" \
-+ " .set mips0 \n" \
-+ " " insn " \n" \
-+ " .set mips3 \n" \
-+ "2: sc $1, %2 \n" \
-+ " beqzl $1, 1b \n" \
-+ __FUTEX_SMP_SYNC \
-+ "3: \n" \
-+ " .set pop \n" \
-+ " .set mips0 \n" \
-+ " .section .fixup,\"ax\" \n" \
-+ "4: li %0, %6 \n" \
-+ " j 2b \n" \
-+ " .previous \n" \
-+ " .section __ex_table,\"a\" \n" \
-+ " "__UA_ADDR "\t1b, 4b \n" \
-+ " "__UA_ADDR "\t2b, 4b \n" \
-+ " .previous \n" \
-+ : "=r" (ret), "=&r" (oldval), "=R" (*uaddr) \
-+ : "0" (0), "R" (*uaddr), "Jr" (oparg), "i" (-EFAULT) \
-+ : "memory"); \
-+ } else if (cpu_has_llsc) { \
-+ __asm__ __volatile__( \
-+ " .set push \n" \
-+ " .set noat \n" \
-+ " .set mips3 \n" \
-+ "1: ll %1, %4 # __futex_atomic_op \n" \
-+ " .set mips0 \n" \
-+ " " insn " \n" \
-+ " .set mips3 \n" \
-+ "2: sc $1, %2 \n" \
-+ " beqz $1, 1b \n" \
-+ __FUTEX_SMP_SYNC \
-+ "3: \n" \
-+ " .set pop \n" \
-+ " .set mips0 \n" \
-+ " .section .fixup,\"ax\" \n" \
-+ "4: li %0, %6 \n" \
-+ " j 2b \n" \
-+ " .previous \n" \
-+ " .section __ex_table,\"a\" \n" \
-+ " "__UA_ADDR "\t1b, 4b \n" \
-+ " "__UA_ADDR "\t2b, 4b \n" \
-+ " .previous \n" \
-+ : "=r" (ret), "=&r" (oldval), "=R" (*uaddr) \
-+ : "0" (0), "R" (*uaddr), "Jr" (oparg), "i" (-EFAULT) \
-+ : "memory"); \
-+ } else \
-+ ret = -ENOSYS; \
-+}
-+
-+static inline int
-+futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
-+{
-+ int op = (encoded_op >> 28) & 7;
-+ int cmp = (encoded_op >> 24) & 15;
-+ int oparg = (encoded_op << 8) >> 20;
-+ int cmparg = (encoded_op << 20) >> 20;
-+ int oldval = 0, ret;
-+ if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
-+ oparg = 1 << oparg;
-+
-+ if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int)))
-+ return -EFAULT;
-+
-+ inc_preempt_count();
-+
-+ switch (op) {
-+ case FUTEX_OP_SET:
-+ __futex_atomic_op("move $1, %z5", ret, oldval, uaddr, oparg);
-+ break;
-+
-+ case FUTEX_OP_ADD:
-+ __futex_atomic_op("addu $1, %1, %z5",
-+ ret, oldval, uaddr, oparg);
-+ break;
-+ case FUTEX_OP_OR:
-+ __futex_atomic_op("or $1, %1, %z5",
-+ ret, oldval, uaddr, oparg);
-+ break;
-+ case FUTEX_OP_ANDN:
-+ __futex_atomic_op("and $1, %1, %z5",
-+ ret, oldval, uaddr, ~oparg);
-+ break;
-+ case FUTEX_OP_XOR:
-+ __futex_atomic_op("xor $1, %1, %z5",
-+ ret, oldval, uaddr, oparg);
-+ break;
-+ default:
-+ ret = -ENOSYS;
-+ }
-+
-+ dec_preempt_count();
-+
-+ if (!ret) {
-+ switch (cmp) {
-+ case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break;
-+ case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break;
-+ case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break;
-+ case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break;
-+ case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break;
-+ case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break;
-+ default: ret = -ENOSYS;
-+ }
-+ }
-+ return ret;
-+}
-+
-+#endif
-+#endif
-diff -Naur 2.6.12-5.0-org/include/linux/futex.h 2.6.12-5.0-patched/include/linux/futex.h
---- 2.6.12-5.0-org/include/linux/futex.h 2007-07-26 00:57:03.000000000 +0200
-+++ 2.6.12-5.0-patched/include/linux/futex.h 2007-12-11 12:34:52.000000000 +0100
-@@ -4,14 +4,40 @@
- /* Second argument to futex syscall */
-
-
--#define FUTEX_WAIT (0)
--#define FUTEX_WAKE (1)
--#define FUTEX_FD (2)
--#define FUTEX_REQUEUE (3)
--#define FUTEX_CMP_REQUEUE (4)
-+#define FUTEX_WAIT 0
-+#define FUTEX_WAKE 1
-+#define FUTEX_FD 2
-+#define FUTEX_REQUEUE 3
-+#define FUTEX_CMP_REQUEUE 4
-+#define FUTEX_WAKE_OP 5
-
- long do_futex(unsigned long uaddr, int op, int val,
- unsigned long timeout, unsigned long uaddr2, int val2,
- int val3);
-
-+#define FUTEX_OP_SET 0 /* *(int *)UADDR2 = OPARG; */
-+#define FUTEX_OP_ADD 1 /* *(int *)UADDR2 += OPARG; */
-+#define FUTEX_OP_OR 2 /* *(int *)UADDR2 |= OPARG; */
-+#define FUTEX_OP_ANDN 3 /* *(int *)UADDR2 &= ~OPARG; */
-+#define FUTEX_OP_XOR 4 /* *(int *)UADDR2 ^= OPARG; */
-+
-+#define FUTEX_OP_OPARG_SHIFT 8 /* Use (1 << OPARG) instead of OPARG. */
-+
-+#define FUTEX_OP_CMP_EQ 0 /* if (oldval == CMPARG) wake */
-+#define FUTEX_OP_CMP_NE 1 /* if (oldval != CMPARG) wake */
-+#define FUTEX_OP_CMP_LT 2 /* if (oldval < CMPARG) wake */
-+#define FUTEX_OP_CMP_LE 3 /* if (oldval <= CMPARG) wake */
-+#define FUTEX_OP_CMP_GT 4 /* if (oldval > CMPARG) wake */
-+#define FUTEX_OP_CMP_GE 5 /* if (oldval >= CMPARG) wake */
-+
-+/* FUTEX_WAKE_OP will perform atomically
-+ int oldval = *(int *)UADDR2;
-+ *(int *)UADDR2 = oldval OP OPARG;
-+ if (oldval CMP CMPARG)
-+ wake UADDR2; */
-+
-+#define FUTEX_OP(op, oparg, cmp, cmparg) \
-+ (((op & 0xf) << 28) | ((cmp & 0xf) << 24) \
-+ | ((oparg & 0xfff) << 12) | (cmparg & 0xfff))
-+
- #endif
-diff -Naur 2.6.12-5.0-org/kernel/futex.c 2.6.12-5.0-patched/kernel/futex.c
---- 2.6.12-5.0-org/kernel/futex.c 2007-07-26 00:57:20.000000000 +0200
-+++ 2.6.12-5.0-patched/kernel/futex.c 2007-12-11 12:34:52.000000000 +0100
-@@ -40,6 +40,7 @@
- #include <linux/pagemap.h>
- #include <linux/syscalls.h>
- #include <linux/signal.h>
-+#include <asm/futex.h>
-
- #define FUTEX_HASHBITS (CONFIG_BASE_SMALL ? 4 : 8)
-
-@@ -201,22 +202,6 @@
- * for a rare case, so we simply fetch the page.
- */
-
-- /*
-- * Do a quick atomic lookup first - this is the fastpath.
-- */
-- spin_lock(¤t->mm->page_table_lock);
-- page = follow_page(mm, uaddr, 0);
-- if (likely(page != NULL)) {
-- key->shared.pgoff =
-- page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT);
-- spin_unlock(¤t->mm->page_table_lock);
-- return 0;
-- }
-- spin_unlock(¤t->mm->page_table_lock);
--
-- /*
-- * Do it the general way.
-- */
- err = get_user_pages(current, mm, uaddr, 1, 0, 0, &page, NULL);
- if (err >= 0) {
- key->shared.pgoff =
-@@ -327,6 +312,123 @@
- }
-
- /*
-+ * Wake up all waiters hashed on the physical page that is mapped
-+ * to this virtual address:
-+ */
-+static int futex_wake_op(unsigned long uaddr1, unsigned long uaddr2, int nr_wake, int nr_wake2, int op)
-+{
-+ union futex_key key1, key2;
-+ struct futex_hash_bucket *bh1, *bh2;
-+ struct list_head *head;
-+ struct futex_q *this, *next;
-+ int ret, op_ret, attempt = 0;
-+
-+retryfull:
-+ down_read(¤t->mm->mmap_sem);
-+
-+ ret = get_futex_key(uaddr1, &key1);
-+ if (unlikely(ret != 0))
-+ goto out;
-+ ret = get_futex_key(uaddr2, &key2);
-+ if (unlikely(ret != 0))
-+ goto out;
-+
-+ bh1 = hash_futex(&key1);
-+ bh2 = hash_futex(&key2);
-+
-+retry:
-+ if (bh1 < bh2)
-+ spin_lock(&bh1->lock);
-+ spin_lock(&bh2->lock);
-+ if (bh1 > bh2)
-+ spin_lock(&bh1->lock);
-+
-+ op_ret = futex_atomic_op_inuser(op, (int __user *)uaddr2);
-+ if (unlikely(op_ret < 0)) {
-+ int dummy;
-+
-+ spin_unlock(&bh1->lock);
-+ if (bh1 != bh2)
-+ spin_unlock(&bh2->lock);
-+
-+ if (unlikely(op_ret != -EFAULT)) {
-+ ret = op_ret;
-+ goto out;
-+ }
-+
-+ /* futex_atomic_op_inuser needs to both read and write
-+ * *(int __user *)uaddr2, but we can't modify it
-+ * non-atomically. Therefore, if get_user below is not
-+ * enough, we need to handle the fault ourselves, while
-+ * still holding the mmap_sem. */
-+ if (attempt++) {
-+ struct vm_area_struct * vma;
-+ struct mm_struct *mm = current->mm;
-+
-+ ret = -EFAULT;
-+ if (attempt >= 2 ||
-+ !(vma = find_vma(mm, uaddr2)) ||
-+ vma->vm_start > uaddr2 ||
-+ !(vma->vm_flags & VM_WRITE))
-+ goto out;
-+
-+ switch (handle_mm_fault(mm, vma, uaddr2, 1)) {
-+ case VM_FAULT_MINOR:
-+ current->min_flt++;
-+ break;
-+ case VM_FAULT_MAJOR:
-+ current->maj_flt++;
-+ break;
-+ default:
-+ goto out;
-+ }
-+ goto retry;
-+ }
-+
-+ /* If we would have faulted, release mmap_sem,
-+ * fault it in and start all over again. */
-+ up_read(¤t->mm->mmap_sem);
-+
-+ ret = get_user(dummy, (int __user *)uaddr2);
-+ if (ret)
-+ return ret;
-+
-+ goto retryfull;
-+ }
-+
-+ head = &bh1->chain;
-+
-+ list_for_each_entry_safe(this, next, head, list) {
-+ if (match_futex (&this->key, &key1)) {
-+ wake_futex(this);
-+ if (++ret >= nr_wake)
-+ break;
-+ }
-+ }
-+
-+ if (op_ret > 0) {
-+ head = &bh2->chain;
-+
-+ op_ret = 0;
-+ list_for_each_entry_safe(this, next, head, list) {
-+ if (match_futex (&this->key, &key2)) {
-+ wake_futex(this);
-+ if (++op_ret >= nr_wake2)
-+ break;
-+ }
-+ }
-+ ret += op_ret;
-+ }
-+
-+ spin_unlock(&bh1->lock);
-+ if (bh1 != bh2)
-+ spin_unlock(&bh2->lock);
-+out:
-+ up_read(¤t->mm->mmap_sem);
-+ return ret;
-+}
-+
-+/*
- * Requeue all waiters hashed on one physical page to another
- * physical page.
- */
-@@ -740,6 +842,9 @@
- case FUTEX_CMP_REQUEUE:
- ret = futex_requeue(uaddr, uaddr2, val, val2, &val3);
- break;
-+ case FUTEX_WAKE_OP:
-+ ret = futex_wake_op(uaddr, uaddr2, val, val2, val3);
-+ break;
- default:
- ret = -ENOSYS;
- }
-@@ -755,9 +860,11 @@
- unsigned long timeout = MAX_SCHEDULE_TIMEOUT;
- int val2 = 0;
-
-- if ((op == FUTEX_WAIT) && utime) {
-+ if (utime && (op == FUTEX_WAIT)) {
- if (copy_from_user(&t, utime, sizeof(t)) != 0)
- return -EFAULT;
-+ if (!timespec_valid(&t))
-+ return -EINVAL;
- timeout = timespec_to_jiffies(&t) + 1;
- }
- /*
+++ /dev/null
-diff -Naur 2.6.12-5.0-org/include/asm-mips/uaccess.h 2.6.12-5.0-patched/include/asm-mips/uaccess.h
---- 2.6.12-5.0-org/include/asm-mips/uaccess.h 2007-07-26 00:56:08.000000000 +0200
-+++ 2.6.12-5.0-patched/include/asm-mips/uaccess.h 2007-12-11 12:34:52.000000000 +0100
-@@ -234,39 +234,72 @@
-
- #define __get_user_nocheck(x,ptr,size) \
- ({ \
-- __typeof(*(ptr)) __gu_val = (__typeof(*(ptr))) 0; \
- long __gu_err = 0; \
-- \
- might_sleep(); \
- switch (size) { \
-- case 1: __get_user_asm("lb", ptr); break; \
-- case 2: __get_user_asm("lh", ptr); break; \
-- case 4: __get_user_asm("lw", ptr); break; \
-- case 8: __GET_USER_DW(ptr); break; \
-+ case 1: { \
-+ s8 __gu_val = (s8) 0; \
-+ __get_user_asm("lb", ptr); \
-+ (x) = (__typeof__(*(ptr))) __gu_val; \
-+ break; \
-+ } \
-+ case 2: { \
-+ s16 __gu_val = (s16) 0; \
-+ __get_user_asm("lh", ptr); \
-+ (x) = (__typeof__(*(ptr))) __gu_val; \
-+ break; \
-+ } \
-+ case 4: { \
-+ s32 __gu_val = (s32) 0; \
-+ __get_user_asm("lw", ptr); \
-+ (x) = (__typeof__(*(ptr))) __gu_val; \
-+ break; \
-+ } \
-+ case 8: { \
-+ s64 __gu_val = (s64) 0; \
-+ __GET_USER_DW(ptr); \
-+ (x) = (__typeof__(*(ptr))) __gu_val; \
-+ break; \
-+ } \
- default: __get_user_unknown(); break; \
- } \
-- (x) = (__typeof__(*(ptr))) __gu_val; \
- __gu_err; \
- })
-
- #define __get_user_check(x,ptr,size) \
- ({ \
- const __typeof__(*(ptr)) __user * __gu_addr = (ptr); \
-- __typeof__(*(ptr)) __gu_val = 0; \
- long __gu_err = -EFAULT; \
-- \
- might_sleep(); \
-- \
- if (likely(access_ok(VERIFY_READ, __gu_addr, size))) { \
- switch (size) { \
-- case 1: __get_user_asm("lb", __gu_addr); break; \
-- case 2: __get_user_asm("lh", __gu_addr); break; \
-- case 4: __get_user_asm("lw", __gu_addr); break; \
-- case 8: __GET_USER_DW(__gu_addr); break; \
-+ case 1: { \
-+ s8 __gu_val = (s8) 0; \
-+ __get_user_asm("lb", ptr); \
-+ (x) = (__typeof__(*(ptr))) __gu_val; \
-+ break; \
-+ } \
-+ case 2: { \
-+ s16 __gu_val = (s16) 0; \
-+ __get_user_asm("lh", ptr); \
-+ (x) = (__typeof__(*(ptr))) __gu_val; \
-+ break; \
-+ } \
-+ case 4: { \
-+ s32 __gu_val = (s32) 0; \
-+ __get_user_asm("lw", ptr); \
-+ (x) = (__typeof__(*(ptr))) __gu_val; \
-+ break; \
-+ } \
-+ case 8: { \
-+ s64 __gu_val = (s64) 0; \
-+ __GET_USER_DW(ptr); \
-+ (x) = (__typeof__(*(ptr))) __gu_val; \
-+ break; \
-+ } \
- default: __get_user_unknown(); break; \
- } \
- } \
-- (x) = (__typeof__(*(ptr))) __gu_val; \
- __gu_err; \
- })
-
+++ /dev/null
-diff -Naur 2.6.12-5.0-org/arch/mips/kernel/gdb-low.S 2.6.12-5.0-patched/arch/mips/kernel/gdb-low.S
---- 2.6.12-5.0-org/arch/mips/kernel/gdb-low.S 2007-07-26 00:51:07.000000000 +0200
-+++ 2.6.12-5.0-patched/arch/mips/kernel/gdb-low.S 2007-12-11 12:34:52.000000000 +0100
-@@ -52,12 +52,14 @@
- /*
- * Called from user mode, go somewhere else.
- */
-- lui k1, %hi(saved_vectors)
- mfc0 k0, CP0_CAUSE
- andi k0, k0, 0x7c
-- add k1, k1, k0
-- lw k0, %lo(saved_vectors)(k1)
-- jr k0
-+
-+#ifdef CONFIG_MIPS64
-+ dsll k0, k0, 1
-+#endif
-+ lw k1, %lo(saved_vectors)(k0)
-+ jr k1
- nop
- 1:
- move k0, sp
+++ /dev/null
-Index: madwifi-ng-r3314-20080131/ath/if_athvar.h
-===================================================================
---- madwifi-ng-r3314-20080131.orig/ath/if_athvar.h 2008-06-12 03:19:30.000000000 +0200
-+++ madwifi-ng-r3314-20080131/ath/if_athvar.h 2008-06-12 03:19:41.000000000 +0200
-@@ -522,7 +522,7 @@
- atomic_t av_beacon_alloc; /* set to 1 when the next beacon needs
- to be recomputed */
- #else
-- unsigned int av_beacon_alloc;
-+ unsigned long av_beacon_alloc;
- #endif
- };
- #define ATH_VAP(_v) ((struct ath_vap *)(_v))
+++ /dev/null
-Index: mjpegtools-1.9.0rc3/lavtools/Makefile.am
-===================================================================
---- mjpegtools-1.9.0rc3.orig/lavtools/Makefile.am 2008-04-09 00:44:57.000000000 +0200
-+++ mjpegtools-1.9.0rc3/lavtools/Makefile.am 2008-04-09 01:03:10.000000000 +0200
-@@ -2,7 +2,7 @@
-
- MAINTAINERCLEANFILES = Makefile.in
-
--AM_CPPFLAGS = -I$(top_srcdir) -I$(includedir) -I$(top_srcdir)/utils $(LIBQUICKTIME_CFLAGS)
-+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/utils $(LIBQUICKTIME_CFLAGS)
-
- LIBMJPEGUTILS = $(top_builddir)/utils/libmjpegutils.la
- if HAVE_ALTIVEC
-Index: mjpegtools-1.9.0rc3/yuvcorrect/Makefile.am
-===================================================================
---- mjpegtools-1.9.0rc3.orig/yuvcorrect/Makefile.am 2008-04-09 01:01:15.000000000 +0200
-+++ mjpegtools-1.9.0rc3/yuvcorrect/Makefile.am 2008-04-09 01:01:21.000000000 +0200
-@@ -2,7 +2,7 @@
-
- MAINTAINERCLEANFILES = Makefile.in
-
--AM_CPPFLAGS = -I$(top_srcdir) -I$(includedir) -I$(top_srcdir)/utils
-+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/utils
-
- LIBMJPEGUTILS = $(top_builddir)/utils/libmjpegutils.la
- if HAVE_ALTIVEC
-Index: mjpegtools-1.9.0rc3/yuvscaler/Makefile.am
-===================================================================
---- mjpegtools-1.9.0rc3.orig/yuvscaler/Makefile.am 2008-04-09 01:01:43.000000000 +0200
-+++ mjpegtools-1.9.0rc3/yuvscaler/Makefile.am 2008-04-09 01:01:50.000000000 +0200
-@@ -2,7 +2,7 @@
-
- MAINTAINERCLEANFILES = Makefile.in
-
--AM_CPPFLAGS = -I$(top_srcdir) -I$(includedir) -I$(top_srcdir)/utils
-+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/utils
-
-
- LIBMJPEGUTILS = $(top_builddir)/utils/libmjpegutils.la
-Index: mjpegtools-1.9.0rc3/y4mdenoise/Makefile.am
-===================================================================
---- mjpegtools-1.9.0rc3.orig/y4mdenoise/Makefile.am 2008-04-09 01:03:16.000000000 +0200
-+++ mjpegtools-1.9.0rc3/y4mdenoise/Makefile.am 2008-04-09 01:03:25.000000000 +0200
-@@ -7,7 +7,7 @@
- AM_CFLAGS = -DNDEBUG -finline-functions @PROGRAM_NOPIC@
- AM_CXXFLAGS = -DNDEBUG -finline-functions @PROGRAM_NOPIC@
-
--INCLUDES = -I$(top_srcdir) -I$(includedir) -I$(top_srcdir)/utils
-+INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/utils
-
- LIBMJPEGUTILS = $(top_builddir)/utils/libmjpegutils.la
- if HAVE_ALTIVEC
-Index: mjpegtools-1.9.0rc3/y4mutils/Makefile.am
-===================================================================
---- mjpegtools-1.9.0rc3.orig/y4mutils/Makefile.am 2008-04-09 01:03:43.000000000 +0200
-+++ mjpegtools-1.9.0rc3/y4mutils/Makefile.am 2008-04-09 01:03:48.000000000 +0200
-@@ -3,7 +3,7 @@
- MAINTAINERCLEANFILES = Makefile.in
-
- AM_CFLAGS = @PROGRAM_NOPIC@
--AM_CPPFLAGS = -I$(top_srcdir) -I$(includedir) -I$(top_srcdir)/utils
-+AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/utils
-
- LIBMJPEGUTILS = $(top_builddir)/utils/libmjpegutils.la
- if HAVE_ALTIVEC
+++ /dev/null
-Index: mjpegtools-1.9.0rc3/configure.ac
-===================================================================
---- mjpegtools-1.9.0rc3.orig/configure.ac 2008-04-09 00:35:08.000000000 +0200
-+++ mjpegtools-1.9.0rc3/configure.ac 2008-04-09 00:35:18.000000000 +0200
-@@ -275,10 +275,6 @@
- dnl Check for the SDL library (for software playback)
- dnl (defines SDL_CFLAGS and SDL_LIBS)
- dnl ********************************************************************
--AM_PATH_SDL(1.1.3,
-- [have_sdl=true
-- AC_DEFINE(HAVE_SDL, 1, [SDL library present]) ],
-- [have_sdl=false])
- AM_CONDITIONAL(HAVE_SDL, test x$have_sdl = xtrue)
-
- dnl ***
+++ /dev/null
-Index: mjpegtools-1.9.0rc3/lavtools/Makefile.am
-===================================================================
---- mjpegtools-1.9.0rc3.orig/lavtools/Makefile.am 2008-04-09 00:49:47.000000000 +0200
-+++ mjpegtools-1.9.0rc3/lavtools/Makefile.am 2008-04-09 00:52:21.000000000 +0200
-@@ -59,9 +59,9 @@
- liblavplay_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBDV_CFLAGS) $(X_CFLAGS)
- liblavplay_la_LDFLAGS = $(LAV_ALL_LIB_OPTS)
- liblavplay_la_LIBADD = liblavfile.la $(SDL_LIBS) liblavjpeg.la
--if HAVE_V4L
-- liblavplay_la_LIBADD += ${X_LIBS} -lX11
--endif
-+#if !X_DISPLAY_MISSING
-+# liblavplay_la_LIBADD += ${X_LIBS} -lX11
-+#endif
- liblavplay_la_DEPENDENCIES = liblavfile.la liblavjpeg.la
-
- # *********************************************************************
+++ /dev/null
-mjpegtools-remove-sdl-dependency.patch -p1
-mjpegtools-fix-include.patch
-mjpegtools-v4l-doesn-mean-x11.patch
+++ /dev/null
-DESCRIPTION = "Mjpeg tools is a suite of programs which support video capture, editting, playback, and compression to MPEG of MJPEG video."
-LICENSE = "GPL"
-SECTION = "optional"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/mjpeg/mjpegtools-${PV}.tar.gz \
- file://mjpegtools-fix-include.patch;patch=1;pnum=1 \
- file://mjpegtools-remove-sdl-dependency.patch;patch=1;pnum=1 \
- file://mjpegtools-v4l-doesnt-mean-x11.patch;patch=1;pnum=1"
-
-inherit autotools
-
-EXTRA_OECONF = "--without-x"
+++ /dev/null
-diff -Naur mrouted-3.9-beta3.orig/Makefile mrouted-3.9-beta3.neu/Makefile
---- mrouted-3.9-beta3.orig/Makefile 1998-03-01 04:09:11.000000000 +0100
-+++ mrouted-3.9-beta3.neu/Makefile 2005-04-09 12:49:39.000000000 +0200
-@@ -24,22 +24,22 @@
- #
- # Uncomment the following three lines if you want to use RSRR (Routing
- # Support for Resource Reservations), currently used by RSVP.
--#RSRRDEF= -DRSRR
--#RSRRC= rsrr.c
--#RSRRO= rsrr.o
-+RSRRDEF= -DRSRR
-+RSRRC= rsrr.c
-+RSRRO= rsrr.o
- #
- LDFLAGS=
--CFLAGS= -O ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} ## SunOS, OSF1, FreeBSD, IRIX
-+#CFLAGS= -O ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} ## SunOS, OSF1, FreeBSD, IRIX
- #CFLAGS= -O ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} -DSYSV -DSUNOS5 ## Solaris 2.x
- #LIB2=-lsocket -lnsl ## Solaris 2.x
--#CFLAGS= -O ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} -D__BSD_SOURCE -DRAW_INPUT_IS_RAW -DRAW_OUTPUT_IS_RAW -DIOCTL_OK_ON_RAW_SOCKET ## Linux
-+CFLAGS= -O ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} -D__BSD_SOURCE -DRAW_INPUT_IS_RAW -DRAW_OUTPUT_IS_RAW -DIOCTL_OK_ON_RAW_SOCKET ## Linux
- LIBS= ${SNMPLIBDIR} ${SNMPLIBS} ${LIB2}
- LINTFLAGS= ${MCAST_INCLUDE}
- IGMP_SRCS= igmp.c inet.c kern.c
- IGMP_OBJS= igmp.o inet.o kern.o
--ROUTER_SRCS= config.c cfparse.y main.c route.c vif.c prune.c callout.c \
-+ROUTER_SRCS= config.c y.y main.c route.c vif.c prune.c callout.c \
- icmp.c ipip.c ${SNMPC} ${RSRRC}
--ROUTER_OBJS= config.o cfparse.o main.o route.o vif.o prune.o callout.o \
-+ROUTER_OBJS= config.o y.o main.o route.o vif.o prune.o callout.o \
- icmp.o ipip.o ${SNMPO} ${RSRRO}
- MAPPER_SRCS= mapper.c
- MAPPER_OBJS= mapper.o
-@@ -58,6 +58,8 @@
-
- all: mrouted map-mbone mrinfo ${MSTAT}
-
-+install:
-+
- mrouted: ${IGMP_OBJS} ${ROUTER_OBJS} vers.o ${CMULIBS}
- rm -f $@
- ${CC} ${LDFLAGS} -o $@ ${CFLAGS} ${IGMP_OBJS} ${ROUTER_OBJS} vers.o ${LIBS}
-@@ -79,7 +81,7 @@
- ${CC} ${LDFLAGS} -o $@ ${CFLAGS} ${MSTAT_OBJS} -Lsnmplib -lsnmp
-
- clean: FRC ${SNMPCLEAN}
-- rm -f ${OBJS} core mrouted map-mbone mrinfo mstat tags TAGS
-+ rm -f ${OBJS} vers.o core mrouted map-mbone mrinfo mstat tags TAGS
-
- snmpclean: FRC
- -(cd snmpd; make clean)
-diff -Naur mrouted-3.9-beta3.orig/defs.h mrouted-3.9-beta3.neu/defs.h
---- mrouted-3.9-beta3.orig/defs.h 1998-03-01 03:51:42.000000000 +0100
-+++ mrouted-3.9-beta3.neu/defs.h 2005-04-09 11:52:46.000000000 +0200
-@@ -45,7 +45,7 @@
- #undef rtentry
- #endif
- #endif
--#include <netinet/ip_mroute.h>
-+#include "netinet/ip_mroute.h"
- #ifdef RSRR
- #include <sys/un.h>
- #endif /* RSRR */
-@@ -180,7 +180,7 @@
- #if !(defined(BSD) && (BSD >= 199103))
- extern int errno;
- extern int sys_nerr;
--extern char * sys_errlist[];
-+/*extern char * sys_errlist[];*/
- #endif
-
- #ifdef OLD_KERNEL
-diff -Naur mrouted-3.9-beta3.orig/main.c mrouted-3.9-beta3.neu/main.c
---- mrouted-3.9-beta3.orig/main.c 1998-03-01 02:49:00.000000000 +0100
-+++ mrouted-3.9-beta3.neu/main.c 2005-04-09 11:52:46.000000000 +0200
-@@ -32,6 +32,8 @@
- #include "snmp.h"
- #endif
-
-+#include <time.h>
-+
- #ifndef lint
- static char rcsid[] = "@(#) $Id: \
- main.c,v 3.8.4.29 1998/03/01 01:49:00 fenner Exp $";
-diff -Naur mrouted-3.9-beta3.orig/mrouted.conf mrouted-3.9-beta3.neu/mrouted.conf
---- mrouted-3.9-beta3.orig/mrouted.conf 1995-11-29 23:40:47.000000000 +0100
-+++ mrouted-3.9-beta3.neu/mrouted.conf 2005-04-09 11:52:46.000000000 +0200
-@@ -30,7 +30,7 @@
- #
- #
- # Template tunnel for mcast_install
--tunnel 128.4.0.77 128.4.0.8 metric 1 threshold 64 rate_limit 500 # <-- REPLACE
-+#tunnel 128.4.0.77 128.4.0.8 metric 1 threshold 64 rate_limit 500 # <-- REPLACE
- # boundary LOCAL
- #
- # You might want to specify a boundary on your tunnel to the outside world,
-diff -Naur mrouted-3.9-beta3.orig/netinet/ip_mroute.h mrouted-3.9-beta3.neu/netinet/ip_mroute.h
---- mrouted-3.9-beta3.orig/netinet/ip_mroute.h 1970-01-01 01:00:00.000000000 +0100
-+++ mrouted-3.9-beta3.neu/netinet/ip_mroute.h 2005-04-09 13:09:11.905210112 +0200
-@@ -0,0 +1,12 @@
-+#ifndef __NETINET_IP_MROUTE_H
-+#define __NETINET_IP_MROUTE_H
-+
-+#define _LINUX_IN_H
-+
-+#ifndef __u32
-+#define __u32 unsigned long
-+#endif
-+
-+#include <linux/mroute.h>
-+
-+#endif
-diff -Naur mrouted-3.9-beta3.orig/pathnames.h mrouted-3.9-beta3.neu/pathnames.h
---- mrouted-3.9-beta3.orig/pathnames.h 1995-11-29 23:36:57.000000000 +0100
-+++ mrouted-3.9-beta3.neu/pathnames.h 2005-04-09 11:52:46.000000000 +0200
-@@ -12,14 +12,14 @@
-
- #define _PATH_MROUTED_CONF "/etc/mrouted.conf"
-
--#if (defined(BSD) && (BSD >= 199103))
-+/*#if (defined(BSD) && (BSD >= 199103))*/
- #define _PATH_MROUTED_PID "/var/run/mrouted.pid"
- #define _PATH_MROUTED_GENID "/var/run/mrouted.genid"
- #define _PATH_MROUTED_DUMP "/var/tmp/mrouted.dump"
- #define _PATH_MROUTED_CACHE "/var/tmp/mrouted.cache"
--#else
-+/*#else
- #define _PATH_MROUTED_PID "/etc/mrouted.pid"
- #define _PATH_MROUTED_GENID "/etc/mrouted.genid"
- #define _PATH_MROUTED_DUMP "/usr/tmp/mrouted.dump"
- #define _PATH_MROUTED_CACHE "/usr/tmp/mrouted.cache"
--#endif
-+#endif*/
-diff -Naur mrouted-3.9-beta3.orig/vers.c mrouted-3.9-beta3.neu/vers.c
---- mrouted-3.9-beta3.orig/vers.c 1970-01-01 01:00:00.000000000 +0100
-+++ mrouted-3.9-beta3.neu/vers.c 2005-04-09 11:52:46.000000000 +0200
-@@ -0,0 +1 @@
-+char todaysversion[]="3.9-beta3";
+++ /dev/null
-DESCRIPTION = "Mrouted daemon"
-PV = "3.9-beta3"
-PR = "r0"
-PN = "mrouted"
-PACKAGES = "mrouted"
-SRC_URI = "ftp://archive.debian.org/debian-archive/pool/non-free/m/mrouted/mrouted_${PV}.orig.tar.gz \
- file://mrouted-3.9.diff;patch=1"
-
-S = "${WORKDIR}/mrouted-${PV}.orig"
-
-inherit autotools pkgconfig
-
-bindir = "/usr/bin"
-sbindir = "/usr/sbin"
-
-do_compile_prepend() {
- if ! test -f ${S}/y.y; then \
- mv ${S}/cfparse.y y.y; \
- fi;
-}
-
-do_install_append() {
- install -d ${D}/usr/bin
- for i in mrinfo map-mbone mrouted; do \
- install ${S}/$i ${D}/usr/bin; \
- done;
-}
+++ /dev/null
-DESCRIPTION = "neon is an HTTP and WebDAV client library, with a C interface."
-SECTION = "libs"
-LICENSE = "LGPL"
-DEPENDS = "zlib libxml2 expat time gnutls"
-PR = "r0"
-
-SRC_URI = "http://www.webdav.org/${PN}/${P}.tar.gz"
-
-inherit autotools binconfig lib_package pkgconfig
-
-EXTRA_OECONF = "--with-ssl=gnutls --with-libxml2 --with-expat --enable-shared"
-
-do_stage () {
- autotools_stage_all
-}
+++ /dev/null
-# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
-
-# The loopback interface
-auto lo
-iface lo inet loopback
-
-# Ethernet
-auto eth0
-iface eth0 inet dhcp
-
+++ /dev/null
-# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
-
-# The loopback interface
-auto lo
-iface lo inet loopback
-
-# Ethernet
-auto eth0
-iface eth0 inet dhcp
-
+++ /dev/null
-# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
-
-# The loopback interface
-auto lo
-iface lo inet loopback
-
-# Ethernet
-auto eth0
-iface eth0 inet dhcp
-
+++ /dev/null
-# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
-
-# The loopback interface
-auto lo
-iface lo inet loopback
-
-# Ethernet
-auto eth0
-iface eth0 inet dhcp
-
+++ /dev/null
-# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
-
-# The loopback interface
-auto lo
-iface lo inet loopback
-
-# Ethernet
-auto eth0
-iface eth0 inet dhcp
-
+++ /dev/null
-# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
-
-# The loopback interface
-auto lo
-iface lo inet loopback
-
-# Ethernet
-auto eth0
-iface eth0 inet dhcp
-
+++ /dev/null
---- bla/inetd/servtab.c 2000-07-22 22:20:50.000000000 +0200
-+++ bla/inetd/servtab.c 2006-03-01 15:26:46.000000000 +0100
-@@ -771,7 +771,7 @@
- return;
- }
-
--#define SWAP(type, a, b) {type c=(type)a; (type)a=(type)b; (type)b=(type)c;}
-+#define SWAP(type, a, b) {type c=(type)a; a=(type)b; b=(type)c;}
-
- /*
- * sep->se_wait may be holding the pid of a daemon
+++ /dev/null
-# /etc/inetd.conf: see inetd(8) for further informations.
-#
-# Internet server configuration database
-#
-# If you want to disable an entry so it isn't touched during
-# package updates just comment it out with a single '#' character.
-#
-# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
-#
-#:INTERNAL: Internal services
-#echo stream tcp nowait root internal
-#echo dgram udp wait root internal
-#chargen stream tcp nowait root internal
-#chargen dgram udp wait root internal
-#discard stream tcp nowait root internal
-#discard dgram udp wait root internal
-#daytime stream tcp nowait root internal
-#daytime dgram udp wait root internal
-#time stream tcp nowait root internal
-#time dgram udp wait root internal
-ftp stream tcp nowait root /usr/sbin/vsftpd vsftpd
-telnet stream tcp nowait root /usr/sbin/telnetd telnetd
-31335 stream tcp nowait root /usr/sbin/streamsec streamsec
-31337 stream tcp nowait root /usr/sbin/streamts streamts -ps
-31338 stream tcp nowait root /usr/sbin/streampes streampes
-31339 stream tcp nowait root /usr/sbin/streamts streamts -ts
-31340 stream tcp nowait root /usr/sbin/udpstreampes udpstreampes
-31341 stream udp nowait root /usr/sbin/udpstreampes udpstreampes
-31342 stream tcp nowait root /usr/sbin/streamts streamts -tsfile
-31343 stream tcp nowait root /usr/sbin/streampes streames
-8001 stream tcp nowait root /usr/bin/streamproxy streamproxy
+++ /dev/null
-diff -auNr opkg-r180/libopkg/opkg_conf.c opkg-r180+r196/libopkg/opkg_conf.c
---- opkg-r180/libopkg/opkg_conf.c 2009-01-17 12:29:50.000000000 +0100
-+++ opkg-r180+r196/libopkg/opkg_conf.c 2009-01-17 14:03:57.000000000 +0100
-@@ -646,22 +646,20 @@
-
- int opkg_conf_write_status_files(opkg_conf_t *conf)
- {
-- pkg_dest_list_elt_t *iter;
- pkg_dest_t *dest;
- pkg_vec_t *all;
- pkg_t *pkg;
- register int i;
- int err;
-+ FILE * status_file = NULL;
-
- if (conf->noaction)
- return 0;
-- for (iter = conf->pkg_dest_list.head; iter; iter = iter->next) {
-- dest = iter->data;
-- dest->status_file = fopen(dest->status_file_tmp_name, "w");
-- if (dest->status_file == NULL) {
-- fprintf(stderr, "%s: Can't open status file: %s for writing: %s\n",
-- __FUNCTION__, dest->status_file_name, strerror(errno));
-- }
-+ dest = (pkg_dest_t *)(conf->pkg_dest_list.head)->data;
-+ status_file = fopen(dest->status_file_tmp_name, "w");
-+ if (status_file == NULL) {
-+ fprintf(stderr, "%s: Can't open status file: %s for writing: %s\n",
-+ __FUNCTION__, dest->status_file_tmp_name, strerror(errno));
- }
-
- all = pkg_vec_alloc();
-@@ -685,29 +683,25 @@
- __FUNCTION__, pkg->name);
- continue;
- }
-- if (pkg->dest->status_file) {
-- pkg_print_status(pkg, pkg->dest->status_file);
-+ if (status_file) {
-+ pkg_print_status(pkg, status_file);
- }
- }
-
- pkg_vec_free(all);
-
-- for (iter = conf->pkg_dest_list.head; iter; iter = iter->next) {
-- dest = iter->data;
-- if (dest->status_file) {
-- err = ferror(dest->status_file);
-- fclose(dest->status_file);
-- dest->status_file = NULL;
-- if (!err) {
-- file_move(dest->status_file_tmp_name, dest->status_file_name);
-- } else {
-- fprintf(stderr, "%s: ERROR: An error has occurred writing %s, "
-- "retaining old %s\n", __FUNCTION__,
-- dest->status_file_tmp_name, dest->status_file_name);
-- }
-- }
-+ if (status_file) {
-+ err = ferror(status_file);
-+ fclose(status_file);
-+ if (!err) {
-+ file_move(dest->status_file_tmp_name, dest->status_file_name);
-+ } else {
-+ fprintf(stderr, "%s: ERROR: An error has occurred writing %s, "
-+ "retaining old %s\n", __FUNCTION__,
-+ dest->status_file_tmp_name, dest->status_file_name);
-+ }
-+ status_file = NULL;
- }
--
- return 0;
- }
-
+++ /dev/null
-
-OBJS = ./net/sourceforge/dvb/projectx/xinput/FileType.o \
- ./net/sourceforge/dvb/projectx/xinput/XInputDirectoryIF.o \
- ./net/sourceforge/dvb/projectx/xinput/DirType.o \
- ./net/sourceforge/dvb/projectx/xinput/XInputFile.o \
- ./net/sourceforge/dvb/projectx/xinput/StreamInfo.o \
- ./net/sourceforge/dvb/projectx/xinput/XInputFileIF.o \
- ./net/sourceforge/dvb/projectx/xinput/XInputDirectory.o \
- ./net/sourceforge/dvb/projectx/xinput/file/XInputDirectoryImpl.o \
- ./net/sourceforge/dvb/projectx/xinput/file/XInputFileImpl.o \
- ./net/sourceforge/dvb/projectx/xinput/XInputStream.o \
- ./net/sourceforge/dvb/projectx/xinput/topfield_raw/RawReadIF.o \
- ./net/sourceforge/dvb/projectx/xinput/topfield_raw/RawInterface.o \
- ./net/sourceforge/dvb/projectx/xinput/topfield_raw/XInputDirectoryImpl.o \
- ./net/sourceforge/dvb/projectx/xinput/topfield_raw/RawFileInputStream.o \
- ./net/sourceforge/dvb/projectx/xinput/topfield_raw/XInputFileImpl.o \
- ./net/sourceforge/dvb/projectx/net/WebInterface.o \
- ./net/sourceforge/dvb/projectx/subtitle/Bitmap.o \
- ./net/sourceforge/dvb/projectx/subtitle/Subpicture.o \
- ./net/sourceforge/dvb/projectx/subtitle/DVBSubpicture.o \
- ./net/sourceforge/dvb/projectx/subtitle/CharSet.o \
- ./net/sourceforge/dvb/projectx/subtitle/BMP.o \
- ./net/sourceforge/dvb/projectx/subtitle/UnicodeWriter.o \
- ./net/sourceforge/dvb/projectx/subtitle/Teletext.o \
- ./net/sourceforge/dvb/projectx/video/WSS.o \
- ./net/sourceforge/dvb/projectx/video/PreviewObject.o \
- ./net/sourceforge/dvb/projectx/video/Video.o \
- ./net/sourceforge/dvb/projectx/video/Preview.o \
- ./net/sourceforge/dvb/projectx/video/MpvDecoder.o \
- ./net/sourceforge/dvb/projectx/audio/AudioFormatDTS.o \
- ./net/sourceforge/dvb/projectx/audio/AudioFormat.o \
- ./net/sourceforge/dvb/projectx/audio/AudioFormatWAV.o \
- ./net/sourceforge/dvb/projectx/audio/MpaConverter.o \
- ./net/sourceforge/dvb/projectx/audio/RIFFHeader.o \
- ./net/sourceforge/dvb/projectx/audio/AudioFormatMPA.o \
- ./net/sourceforge/dvb/projectx/audio/AudioFormatLPCM.o \
- ./net/sourceforge/dvb/projectx/audio/MpaDecoder.o \
- ./net/sourceforge/dvb/projectx/audio/AudioFormatAC3.o \
- ./net/sourceforge/dvb/projectx/io/IDDBufferedOutputStream.o \
- ./net/sourceforge/dvb/projectx/io/BitWalker.o \
- ./net/sourceforge/dvb/projectx/io/StandardBuffer.o \
- ./net/sourceforge/dvb/projectx/io/RawFile.o \
- ./net/sourceforge/dvb/projectx/common/Settings.o \
- ./net/sourceforge/dvb/projectx/common/GuiInterfaceIF.o \
- ./net/sourceforge/dvb/projectx/common/GuiInterface.o \
- ./net/sourceforge/dvb/projectx/common/Start.o \
- ./net/sourceforge/dvb/projectx/common/Resource.o \
- ./net/sourceforge/dvb/projectx/common/Common.o \
- ./net/sourceforge/dvb/projectx/common/Keys.o \
- ./net/sourceforge/dvb/projectx/common/JobProcessing.o \
- ./net/sourceforge/dvb/projectx/common/JobCollection.o \
- ./net/sourceforge/dvb/projectx/thirdparty/TS.o \
- ./net/sourceforge/dvb/projectx/thirdparty/D2V.o \
- ./net/sourceforge/dvb/projectx/thirdparty/Chapters.o \
- ./net/sourceforge/dvb/projectx/thirdparty/Ifo.o \
- ./net/sourceforge/dvb/projectx/parser/CommonParsing.o \
- ./net/sourceforge/dvb/projectx/parser/Gop.o \
- ./net/sourceforge/dvb/projectx/parser/GopArray.o \
- ./net/sourceforge/dvb/projectx/parser/HpFix.o \
- ./net/sourceforge/dvb/projectx/parser/MainProcess.o \
- ./net/sourceforge/dvb/projectx/parser/Scan.o \
- ./net/sourceforge/dvb/projectx/parser/StreamBuffer.o \
- ./net/sourceforge/dvb/projectx/parser/StreamConverter.o \
- ./net/sourceforge/dvb/projectx/parser/StreamDemultiplexer.o \
- ./net/sourceforge/dvb/projectx/parser/StreamParser.o \
- ./net/sourceforge/dvb/projectx/parser/StreamParserBase.o \
- ./net/sourceforge/dvb/projectx/parser/StreamParserESAudio.o \
- ./net/sourceforge/dvb/projectx/parser/StreamParserESSubpicture.o \
- ./net/sourceforge/dvb/projectx/parser/StreamParserESVideo.o \
- ./net/sourceforge/dvb/projectx/parser/StreamParserPESPrimary.o \
- ./net/sourceforge/dvb/projectx/parser/StreamParserPESSecondary.o \
- ./net/sourceforge/dvb/projectx/parser/StreamParserPVA.o \
- ./net/sourceforge/dvb/projectx/parser/StreamParserTS.o \
- ./net/sourceforge/dvb/projectx/parser/StreamProcess.o \
- ./net/sourceforge/dvb/projectx/parser/StreamProcessAudio.o \
- ./net/sourceforge/dvb/projectx/parser/StreamProcessBase.o \
- ./net/sourceforge/dvb/projectx/parser/StreamProcessLPCMAudio.o \
- ./net/sourceforge/dvb/projectx/parser/StreamProcessSubpicture.o \
- ./net/sourceforge/dvb/projectx/parser/StreamProcessTeletext.o \
- ./net/sourceforge/dvb/projectx/parser/StripAudio.o \
- ./net/sourceforge/dvb/projectx/parser/StripRelook.o \
- ./net/sourceforge/dvb/projectx/parser/VBI.o
-all: projectx
-
-projectx: $(OBJS)
- $(CROSS_COMPILE)gcj $(JFLAGS) -c -o ac3.o --resource ac3.bin ../resources/ac3.bin
- $(CROSS_COMPILE)gcj $(JFLAGS) -c -o pjxresources_en.o --resource pjxresources_en.properties ../resources/pjxresources_en.properties
- $(CROSS_COMPILE)gcj $(JFLAGS) $(OBJS) pjxresources_en.o ac3.o -o projectx \
- --main=net.sourceforge.dvb.projectx.common.Start \
- -Djava.awt.headless=true $(LDFLAGS) $(GCJ_ARCHIVES)
- $(CROSS_COMPILE)strip --strip-all projectx
-
-projectx-static: $(OBJS)
- $(CROSS_COMPILE)gcj $(JFLAGS) -c -o ac3.o --resource ac3.bin ../resources/ac3.bin
- $(CROSS_COMPILE)gcj $(JFLAGS) -c -o pjxresources_en.o --resource pjxresources_en.properties ../resources/pjxresources_en.properties
- $(CROSS_COMPILE)gcj $(JFLAGS) $(OBJS) pjxresources_en.o ac3.o -Djava.awt.headless=true --main=net.sourceforge.dvb.projectx.common.Start -save-temps
- $(CROSS_COMPILE)gcc -o projectx $(OBJS) pjxresources_en.o ac3.o ./net.sourceforge.dvb.projectx.common.Startmain.i \
- -shared-libgcc -Wl,-non_shared -lgcj -Wl,-call_shared -lsupc++ -Wl,--as-needed -lgcc_s -lpthread -lc -lm -ldl -Wl,--no-as-needed
- $(CROSS_COMPILE)strip --strip-all projectx
-
-clean:
- rm -rf $(OBJS)
- rm *.o *.i *.s
- rm projectx
-
-%.o: %.java
- $(CROSS_COMPILE)gcj $(JFLAGS) -c $< -o $@
+++ /dev/null
-diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/common/Common.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/common/Common.java
---- src/net/sourceforge/dvb/projectx/common/Common.java 2006-03-30 18:04:34.000000000 +0200
-+++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/common/Common.java 2008-09-08 13:02:38.000000000 +0200
-@@ -233,9 +233,13 @@
- {
- StatusString = Resource.getString("run.status");
-
-+ System.out.println("scan");
- scan = new Scan();
-- subpicture = new Subpicture();
-+ System.out.println("subtitle");
-+// subpicture = new Subpicture();
-+ System.out.println("mpv decoder");
- mpvdecoder = new MpvDecoder();
-+ System.out.println("color models");
- subpicture_colormodels = loadColorModels();
- }
-
-@@ -285,8 +289,8 @@
- guiInterface = new GuiInterface(showGUI);
-
- //load gui
-- if (showGUI())
-- getGuiInterface().loadGui();
-+// if (showGUI())
-+// getGuiInterface().loadGui();
- }
-
- /**
-@@ -1363,7 +1367,7 @@
- {
- List list = new ArrayList();
-
-- list.add("Java Environment");
-+/* list.add("Java Environment");
- list.add(getDateAndTime());
- list.add(Resource.getString("javaev.java.version") + "\t" + System.getProperty("java.version"));
- list.add(Resource.getString("javaev.java.vendor") + "\t" + System.getProperty("java.vendor"));
-@@ -1390,7 +1394,7 @@
- list.add(Resource.getString("javaev.java.user.lang") + "\t" + Resource.getChosenLanguage());
- list.add(Resource.getString("javaev.java.user.name") + "\t" + System.getProperty("user.name"));
- list.add(Resource.getString("javaev.java.user.home") + "\t" + System.getProperty("user.home"));
--
-+*/
- return list.toArray();
- }
-
-@@ -1482,7 +1486,9 @@
-
- ProcessedPercent = percent;
-
-- getGuiInterface().updateProgressBar(ProcessedPercent);
-+ System.out.println("[PROGRESS] " + ProcessedPercent);
-+
-+// getGuiInterface().updateProgressBar(ProcessedPercent);
- }
-
- /**
-@@ -1493,7 +1499,8 @@
- public static void updateProgressBar(String str)
- {
- setStatusString(str);
-- getGuiInterface().updateProgressBar(str);
-+ System.out.println("[PROGRESS] " + str);
-+// getGuiInterface().updateProgressBar(str);
- }
-
- /**
-diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/common/JobCollection.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/common/JobCollection.java
---- src/net/sourceforge/dvb/projectx/common/JobCollection.java 2006-01-29 21:36:04.000000000 +0100
-+++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/common/JobCollection.java 2006-12-16 14:28:58.000000000 +0100
-@@ -730,7 +730,7 @@
- setDebugLogStream(getOutputDirectory() + getFileSeparator() + str + "_biglog.txt");
- }
-
-- //settings übergeben!!
-+ //settings bergeben!!
- if (Common.getSettings().getBooleanProperty(Keys.KEY_NormalLog))
- {
- if (Common.getSettings().getBooleanProperty(Keys.KEY_ExternPanel_createVdrIndex) && Common.getSettings().getIntProperty(Keys.KEY_ConversionMode) == 1)
-diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/common/Keys.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/common/Keys.java
---- src/net/sourceforge/dvb/projectx/common/Keys.java 2006-03-28 19:53:12.000000000 +0200
-+++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/common/Keys.java 2006-12-16 14:30:19.000000000 +0100
-@@ -287,14 +287,14 @@
- public final static String[] KEY_AudioPanel_replaceAc3withSilence = { "AudioPanel.replaceAc3withSilence", "0" }; //cbox[10]
- public final static String[] KEY_AudioPanel_allowSpaces = { "AudioPanel.allowSpaces", "0" }; //cbox[69]
- public final static String[] KEY_AudioPanel_addRiffToAc3 = { "AudioPanel.addRiffToAc3", "0" }; //cbox[12]
-- public final static String[] KEY_AudioPanel_addRiffToMpgAudio = { "AudioPanel.addRiffToMpgAudioL12", "0" }; //cbox[4] + rbutton[14] riff für layer1+2
-+ public final static String[] KEY_AudioPanel_addRiffToMpgAudio = { "AudioPanel.addRiffToMpgAudioL12", "0" }; //cbox[4] + rbutton[14] riff fr layer1+2
- public final static String[] KEY_AudioPanel_pitchAudio = { "AudioPanel.pitchAudio", "0" }; //cbox[51]
- public final static String[] KEY_AudioPanel_Normalize = { "AudioPanel.decodeMpgAudio.Normalize", "0" }; //rbutton[2] + exefield[8] normalize
- public final static String[] KEY_AudioPanel_Downmix = { "AudioPanel.decodeMpgAudio.Downmix", "0" }; //rbutton[3]
- public final static String[] KEY_AudioPanel_changeByteorder = { "AudioPanel.decodeMpgAudio.changeByteorder", "0" }; //rbutton[4]
- public final static String[] KEY_AudioPanel_addRiffHeader = { "AudioPanel.decodeMpgAudio.addRiffHeader", "1" }; //rbutton[5]
- public final static String[] KEY_AudioPanel_addAiffHeader = { "AudioPanel.decodeMpgAudio.addAiffHeader", "0" }; //rbutton[9]
-- public final static String[] KEY_AudioPanel_addRiffToMpgAudioL3 = { "AudioPanel.addRiffToMpgAudioL3", "0" }; //cbox[4] + rbutton[15] riff für layer3
-+ public final static String[] KEY_AudioPanel_addRiffToMpgAudioL3 = { "AudioPanel.addRiffToMpgAudioL3", "0" }; //cbox[4] + rbutton[15] riff fr layer3
- public final static String[] KEY_AudioPanel_PitchValue = { "AudioPanel.PitchValue", "0" };
- public final static String[] KEY_AudioPanel_NormalizeValue = { "AudioPanel.NormalizeValue", "98" };
- public final static String[] KEY_AudioPanel_createDDWave = { "AudioPanel.createDDWave", "0" };
-@@ -446,7 +446,7 @@
- "PES (incl. MPEG Video)",
- "MPEG-1 PS/SS (PES Container)",
- "MPEG-2 PS/SS (PES Container)",
-- "PVA (PES Container of TT®)",
-+ "PVA (PES Container of TT)",
- "TS (generic PES Container)",
- "PES (MPEG Audio first)",
- "PES (private stream 1 first)",
-diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/common/Start.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/common/Start.java
---- src/net/sourceforge/dvb/projectx/common/Start.java 2005-12-30 15:32:52.000000000 +0100
-+++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/common/Start.java 2008-08-21 11:23:56.000000000 +0200
-@@ -207,8 +207,10 @@
- /**
- * environment
- */
-+ System.out.println("getJAVAEv");
- environment = Common.getJavaEV(Common.getSettings().getInifile());
-
-+ System.out.println("print");
- for (int i = 0; i < environment.length; i++)
- System.out.println(environment[i].toString());
-
-@@ -251,11 +253,12 @@
- /**
- * planned to disable ftp only, if commons-net is missing
- */
-- if ((str = Common.checkLibraryAccess()) != null)
-+/* if ((str = Common.checkLibraryAccess()) != null)
- {
- throw new Exception(str);
- //System.out.println(ret);
- }
-+*/
-
- System.out.println("Loading AC3 frames...");
-
-@@ -296,10 +299,7 @@
-
- else
- {
-- if (!Common.getGuiInterface().isAvailable())
-- System.out.println("Stopped! Can't start GUI, Classes not available...");
--
-- else if (!Common.isCollectionListEmpty())
-+ if (!Common.isCollectionListEmpty())
- {
- Common.getGuiInterface().addCollectionAtEnd();
- Common.getGuiInterface().showActiveCollection(0);
-diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/io/IDDBufferedOutputStream.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/io/IDDBufferedOutputStream.java
---- src/net/sourceforge/dvb/projectx/io/IDDBufferedOutputStream.java 2006-03-25 16:40:42.000000000 +0100
-+++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/io/IDDBufferedOutputStream.java 2006-12-16 14:28:39.000000000 +0100
-@@ -526,7 +526,7 @@
-
- Common.renameTo(new File(aInfoName), nname);
-
-- // 2 Minuten - 120000ms (?) für CM dazuschummeln ;-)
-+ // 2 Minuten - 120000ms (?) fr CM dazuschummeln ;-)
- nname.setLastModified(nname.lastModified() + 120000);
- }
-
-diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/parser/MainProcess.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/parser/MainProcess.java
---- src/net/sourceforge/dvb/projectx/parser/MainProcess.java 2006-03-25 16:16:26.000000000 +0100
-+++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/parser/MainProcess.java 2007-06-15 17:56:27.000000000 +0200
-@@ -1076,7 +1076,7 @@
-
- job_processing.setSplitSize(splitsize);
-
-- Toolkit.getDefaultToolkit().beep();
-+// Toolkit.getDefaultToolkit().beep();
- }
-
- }
-diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/parser/StreamConverter.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/parser/StreamConverter.java
---- src/net/sourceforge/dvb/projectx/parser/StreamConverter.java 2006-01-22 16:59:24.000000000 +0100
-+++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/parser/StreamConverter.java 2006-12-16 14:29:15.000000000 +0100
-@@ -829,7 +829,7 @@
-
- switch (newID)
- {
-- case 0xC0: //ändern
-+ case 0xC0: //ndern
- CommonParsing.setValue(PvaPacketHeader, 2, 1, !CommonParsing.BYTEREORDERING, PVA_MAINAUDIO);
- CommonParsing.setValue(PvaPacketHeader, 3, 1, !CommonParsing.BYTEREORDERING, 0xFF & PacketCounter[PVA_MAINAUDIO]);
- CommonParsing.setValue(PvaPacketHeader, 5, 1, !CommonParsing.BYTEREORDERING, 0x10);
-@@ -842,10 +842,10 @@
-
- return;
-
-- default: //ändern
-+ default: //ndern
- switch (0xF0 & newID)
- {
-- case 0x90: //ttx ändern
-+ case 0x90: //ttx ndern
- countID = newID - 0x8C;
- break;
-
-@@ -1070,7 +1070,7 @@
- time[0] = time[1];
- }
-
-- switch (0xF0 & newID) //ändern
-+ switch (0xF0 & newID) //ndern
- {
- case 0x80:
- countID = newID - 0x6C;
-diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/parser/StreamProcessAudio.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/parser/StreamProcessAudio.java
---- src/net/sourceforge/dvb/projectx/parser/StreamProcessAudio.java 2006-03-28 19:45:26.000000000 +0200
-+++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/parser/StreamProcessAudio.java 2006-12-16 14:31:32.000000000 +0100
-@@ -744,7 +744,7 @@
- double ms3 = precount - vptsval[v], ms4 = time_counter - vtime[v];
-
- if (Debug)
-- System.out.println(" ö" + ms3 + "/" + ms4 + "/" + (ms4 - ms3));
-+ System.out.println(" " + ms3 + "/" + ms4 + "/" + (ms4 - ms3));
-
- if (!awrite && (double) Math.abs((time_counter - vtime[v]) - (precount - vptsval[v])) <= (double) audio.getFrameTimeLength() / 2.0 )
- {
-@@ -756,7 +756,7 @@
- Common.getGuiInterface().showAVOffset("" + (int)(ms1 / 90) + "/" + (int)(ms2 / 90) + "/" + (int)((ms2 - ms1) / 90));
-
- if (Debug)
-- System.out.println(" ä" + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
-+ System.out.println(" " + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
- }
- }
-
-@@ -775,7 +775,7 @@
- Common.getGuiInterface().showAVOffset("" + (int)(ms1 / 90) + "/" + (int)(ms2 / 90) + "/" + (int)((ms2 - ms1) / 90));
-
- if (Debug)
-- System.out.println(" ü" + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
-+ System.out.println(" " + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
- }
-
- /**
-@@ -1073,7 +1073,7 @@
- Common.getGuiInterface().showAVOffset("" + (int)(ms1 / 90) + "/" + (int)(ms2 / 90) + "/" + (int)((ms2 - ms1) / 90));
-
- if (Debug)
-- System.out.println(" §" + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
-+ System.out.println(" " + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
-
- awrite = true;
- v += 2;
-@@ -1090,7 +1090,7 @@
- Common.getGuiInterface().showAVOffset("" + (int)(ms1 / 90) + "/" + (int)(ms2 / 90) + "/" + (int)((ms2 - ms1) / 90));
-
- if (Debug)
-- System.out.println(" ß" + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
-+ System.out.println(" " + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
-
- awrite = true;
- v += 2;
-@@ -1508,7 +1508,7 @@
- double ms4 = time_counter - vtime[v];
-
- if (Debug)
-- System.out.println(" ö" + ms3 + "/" + ms4 + "/" + (ms4 - ms3));
-+ System.out.println(" " + ms3 + "/" + ms4 + "/" + (ms4 - ms3));
-
- if (!awrite && (double) Math.abs((time_counter - vtime[v]) -
- (precount - vptsval[v]) ) <= (double)audio.getFrameTimeLength() / 2.0 )
-@@ -1522,7 +1522,7 @@
- Common.getGuiInterface().showAVOffset("" + (int)(ms1 / 90) + "/" + (int)(ms2 / 90) + "/" + (int)((ms2 - ms1) / 90));
-
- if (Debug)
-- System.out.println(" ä" + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
-+ System.out.println(" " + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
- }
- }
-
-@@ -1542,7 +1542,7 @@
- Common.getGuiInterface().showAVOffset("" + (int)(ms1 / 90) + "/" + (int)(ms2 / 90) + "/" + (int)((ms2 - ms1) / 90));
-
- if (Debug)
-- System.out.println(" ü" + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
-+ System.out.println(" " + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
- }
-
- /**
-@@ -1928,7 +1928,6 @@
- int padding_counter = 1; //count padding
- long[] ins = { (long)time_counter, 0 };
-
-- // solange nächster ptsval minus nächster framebeginn ist größer der halben framezeit, füge stille ein
- while (ptsval[x + 1] > (timeline - (audio.getFrameTimeLength() / 2.0)))
- {
- if (vptsdata && w < vptsval.length)
-@@ -1959,7 +1958,7 @@
- Common.getGuiInterface().showAVOffset("" + (int)(ms1 / 90) + "/" + (int)(ms2 / 90) + "/" + (int)((ms2 - ms1) / 90));
-
- if (Debug)
-- System.out.println(" §" + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
-+ System.out.println(" " + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
-
- awrite = true;
- v += 2;
-@@ -1976,7 +1975,7 @@
- Common.getGuiInterface().showAVOffset("" + (int)(ms1 / 90) + "/" + (int)(ms2 / 90) + "/" + (int)((ms2 - ms1) / 90));
-
- if (Debug)
-- System.out.println(" ß" + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
-+ System.out.println(" " + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
-
- awrite = true;
- v += 2;
-diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/subtitle/Teletext.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/subtitle/Teletext.java
---- src/net/sourceforge/dvb/projectx/subtitle/Teletext.java 2006-03-26 12:03:26.000000000 +0200
-+++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/subtitle/Teletext.java 2006-12-16 14:29:26.000000000 +0100
-@@ -472,7 +472,7 @@
- for (int s = 0; s < chars.length; s++)
- test += (char)(chars[s]>>>8);
-
-- // ab 3 paritätsfehlern zeile droppen
-+ // ab 3 parittsfehlern zeile droppen
- if (checkParity && parity_error > 0)
- {
- String msg = "!> line " + row + ", parity check failed at " + parity_error + " of " + len + " characters: '" + test + "'";
-@@ -652,7 +652,7 @@
- continue loopi;
- }
-
-- // ab 3 paritätsfehlern zeile droppen
-+ // ab 3 parittsfehlern zeile droppen
- if (checkParity && parity_error > 0)
- {
- String msg = "!> line " + row + ", parity check failed at " + parity_error + " of " + len + " characters: '" + text + "'";
-diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/video/MpvDecoder.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/video/MpvDecoder.java
---- src/net/sourceforge/dvb/projectx/video/MpvDecoder.java 2006-03-03 20:35:06.000000000 +0100
-+++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/video/MpvDecoder.java 2006-12-20 23:45:39.000000000 +0100
-@@ -71,8 +71,8 @@
-
- public class MpvDecoder extends Object {
-
-- private IDCTRefNative idct;
-- private IDCTSseNative idctsse;
-+// private IDCTRefNative idct;
-+// private IDCTSseNative idctsse;
-
- private int[] pixels2 = new int[512 * 288];
- private int[] pixels = new int[250]; //full pixel data
-@@ -107,14 +107,14 @@
- {
- Arrays.fill(pixels2, 0xFF505050);
-
-- idct = new IDCTRefNative();
-- idctsse = new IDCTSseNative();
-+// idct = new IDCTRefNative();
-+// idctsse = new IDCTSseNative();
-
-- if (IDCTRefNative.isLibraryLoaded())
-- idct.init();
-+// if (IDCTRefNative.isLibraryLoaded())
-+// idct.init();
-
-- if (IDCTRefNative.isLibraryLoaded() || IDCTSseNative.isLibraryLoaded())
-- acceleration = true;
-+// if (IDCTRefNative.isLibraryLoaded() || IDCTSseNative.isLibraryLoaded())
-+// acceleration = true;
- }
-
- /**
-@@ -149,35 +149,35 @@
- private int ERROR_CODE1=0;
-
- /* extension start code IDs */
--final int SEQUENCE_EXTENSION_ID=1;
--final int SEQUENCE_DISPLAY_EXTENSION_ID=2;
--final int QUANT_MATRIX_EXTENSION_ID=3;
--final int COPYRIGHT_EXTENSION_ID=4;
--final int PICTURE_DISPLAY_EXTENSION_ID=7;
--final int PICTURE_CODING_EXTENSION_ID=8;
--final int ZIG_ZAG=0;
--final int MB_WEIGHT=32;
--final int MB_CLASS4=64;
--final int MC_FIELD=1;
--final int MC_FRAME=2;
--final int MC_16X8=2;
--final int MC_DMV=3;
--final int MV_FIELD=0;
--final int MV_FRAME=1;
--final int I_TYPE=1;
--final int P_TYPE=2;
--final int B_TYPE=3;
--final int TOP_FIELD=1;
--final int BOTTOM_FIELD=2;
--final int FRAME_PICTURE=3;
--final int MACROBLOCK_INTRA=1;
--final int MACROBLOCK_PATTERN=2;
--final int MACROBLOCK_MOTION_BACKWARD=4;
--final int MACROBLOCK_MOTION_FORWARD=8;
--final int MACROBLOCK_QUANT=16;
--final int CHROMA420=1;
--final int CHROMA422=2;
--final int CHROMA444=3;
-+final byte SEQUENCE_EXTENSION_ID=1;
-+final byte SEQUENCE_DISPLAY_EXTENSION_ID=2;
-+final byte QUANT_MATRIX_EXTENSION_ID=3;
-+final byte COPYRIGHT_EXTENSION_ID=4;
-+final byte PICTURE_DISPLAY_EXTENSION_ID=7;
-+final byte PICTURE_CODING_EXTENSION_ID=8;
-+final byte ZIG_ZAG=0;
-+final byte MB_WEIGHT=32;
-+final byte MB_CLASS4=64;
-+final byte MC_FIELD=1;
-+final byte MC_FRAME=2;
-+final byte MC_16X8=2;
-+final byte MC_DMV=3;
-+final byte MV_FIELD=0;
-+final byte MV_FRAME=1;
-+final byte I_TYPE=1;
-+final byte P_TYPE=2;
-+final byte B_TYPE=3;
-+final byte TOP_FIELD=1;
-+final byte BOTTOM_FIELD=2;
-+final byte FRAME_PICTURE=3;
-+final byte MACROBLOCK_INTRA=1;
-+final byte MACROBLOCK_PATTERN=2;
-+final byte MACROBLOCK_MOTION_BACKWARD=4;
-+final byte MACROBLOCK_MOTION_FORWARD=8;
-+final byte MACROBLOCK_QUANT=16;
-+final byte CHROMA420=1;
-+final byte CHROMA422=2;
-+final byte CHROMA444=3;
- final int IDCT_CLIP_TABLE_OFFSET=512;
-
- private int q_scale_type=0; //1
-@@ -742,18 +742,18 @@
- {-1,0},
- {MACROBLOCK_MOTION_FORWARD,3},
- {MACROBLOCK_PATTERN,2}, {MACROBLOCK_PATTERN,2},
-- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,1},
-- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,1},
-- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,1},
-- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,1}
-+ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),1},
-+ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),1},
-+ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),1},
-+ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),1}
- };
-
- /* Table B-3, macroblock_type in P-pictures, codes 000001..00011x */
- final byte PMBtab1[][] = {
- {-1,0},
-- {MACROBLOCK_QUANT|MACROBLOCK_INTRA,6},
-- {MACROBLOCK_QUANT|MACROBLOCK_PATTERN,5}, {MACROBLOCK_QUANT|MACROBLOCK_PATTERN,5},
-- {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,5}, {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,5},
-+ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_INTRA),6},
-+ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_PATTERN),5}, {(byte)(MACROBLOCK_QUANT|MACROBLOCK_PATTERN),5},
-+ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),5}, {(byte)(MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),5},
- {MACROBLOCK_INTRA,5}, {MACROBLOCK_INTRA,5}
- };
-
-@@ -761,32 +761,32 @@
- final byte BMBtab0[][] = {
- {-1,0},
- {-1,0},
-- {MACROBLOCK_MOTION_FORWARD,4},
-- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,4},
-- {MACROBLOCK_MOTION_BACKWARD,3},
-- {MACROBLOCK_MOTION_BACKWARD,3},
-- {MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,3},
-- {MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,3},
-- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
-- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
-- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
-- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
-- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2},
-- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2},
-- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2},
-- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2}
-+ {(byte)(MACROBLOCK_MOTION_FORWARD),4},
-+ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),4},
-+ {(byte)(MACROBLOCK_MOTION_BACKWARD),3},
-+ {(byte)(MACROBLOCK_MOTION_BACKWARD),3},
-+ {(byte)(MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),3},
-+ {(byte)(MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),3},
-+ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD),2},
-+ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD),2},
-+ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD),2},
-+ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD),2},
-+ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),2},
-+ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),2},
-+ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),2},
-+ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),2}
- };
-
- /* Table B-4, macroblock_type in B-pictures, codes 000001..00011x */
- final byte BMBtab1[][] = {
- {-1,0},
-- {MACROBLOCK_QUANT|MACROBLOCK_INTRA,6},
-- {MACROBLOCK_QUANT|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,6},
-- {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,6},
-- {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,5},
-- {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,5},
-- {MACROBLOCK_INTRA,5},
-- {MACROBLOCK_INTRA,5}
-+ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_INTRA),6},
-+ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),6},
-+ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),6},
-+ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),5},
-+ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),5},
-+ {(byte)(MACROBLOCK_INTRA),5},
-+ {(byte)(MACROBLOCK_INTRA),5}
- };
-
- final double frame_rate_Table[] = {
-@@ -2202,33 +2202,33 @@
- //form_predictions(bx, by, macroblock_type, motion_type, PMV, motion_vertical_field_select, dmvector);
-
-
-- if (IDCTSseNative.isLibraryLoaded())
-- {
-- /* copy or add block data into picture */
-- for (comp=0; comp<block_count; comp++)
-- {
-- /* ISO/IEC 13818-2 section Annex A: inverse DCT */
-- idctsse.referenceIDCT(block[comp]);
--
-- /* ISO/IEC 13818-2 section 7.6.8: Adding prediction and coefficient data */
-- Add_Block(comp, bx, by, dct_type, (macroblock_type[0] & MACROBLOCK_INTRA)==0);
-- }
-- }
--
-- else if (IDCTRefNative.isLibraryLoaded())
-- {
-- /* copy or add block data into picture */
-- for (comp=0; comp<block_count; comp++)
-- {
-- /* ISO/IEC 13818-2 section Annex A: inverse DCT */
-- idct.referenceIDCT(block[comp]);
--
-- /* ISO/IEC 13818-2 section 7.6.8: Adding prediction and coefficient data */
-- Add_Block(comp, bx, by, dct_type, (macroblock_type[0] & MACROBLOCK_INTRA)==0);
-- }
-- }
--
-- else
-+// if (IDCTSseNative.isLibraryLoaded())
-+// {
-+// /* copy or add block data into picture */
-+// for (comp=0; comp<block_count; comp++)
-+// {
-+// /* ISO/IEC 13818-2 section Annex A: inverse DCT */
-+// idctsse.referenceIDCT(block[comp]);
-+//
-+// /* ISO/IEC 13818-2 section 7.6.8: Adding prediction and coefficient data */
-+// Add_Block(comp, bx, by, dct_type, (macroblock_type[0] & MACROBLOCK_INTRA)==0);
-+// }
-+// }
-+//
-+// else if (IDCTRefNative.isLibraryLoaded())
-+// {
-+// /* copy or add block data into picture */
-+// for (comp=0; comp<block_count; comp++)
-+// {
-+// /* ISO/IEC 13818-2 section Annex A: inverse DCT */
-+// idct.referenceIDCT(block[comp]);
-+//
-+// /* ISO/IEC 13818-2 section 7.6.8: Adding prediction and coefficient data */
-+// Add_Block(comp, bx, by, dct_type, (macroblock_type[0] & MACROBLOCK_INTRA)==0);
-+// }
-+// }
-+//
-+// else
- {
- /* copy or add block data into picture */
- for (comp=0; comp<block_count; comp++)
-diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/xinput/DirType.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/xinput/DirType.java
---- src/net/sourceforge/dvb/projectx/xinput/DirType.java 2005-12-17 16:14:56.000000000 +0100
-+++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/xinput/DirType.java 2006-12-16 14:54:49.000000000 +0100
-@@ -45,8 +45,8 @@
- /**
- * Directory on a ftp server
- */
-- public final static DirType FTP_DIR = new DirType(1, "FTP_DIR",
-- net.sourceforge.dvb.projectx.xinput.ftp.XInputDirectoryImpl.class);
-+// public final static DirType FTP_DIR = new DirType(1, "FTP_DIR",
-+// net.sourceforge.dvb.projectx.xinput.ftp.XInputDirectoryImpl.class);
-
- /**
- * Directory on a harddisk of a topfield receiver in raw format
-diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/xinput/FileType.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/xinput/FileType.java
---- src/net/sourceforge/dvb/projectx/xinput/FileType.java 2005-12-17 16:15:02.000000000 +0100
-+++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/xinput/FileType.java 2006-12-16 14:54:38.000000000 +0100
-@@ -45,8 +45,8 @@
- /**
- * File on a ftp server
- */
-- public final static FileType FTP = new FileType(1, "FTP",
-- net.sourceforge.dvb.projectx.xinput.ftp.XInputFileImpl.class);
-+// public final static FileType FTP = new FileType(1, "FTP",
-+// net.sourceforge.dvb.projectx.xinput.ftp.XInputFileImpl.class);
-
- /**
- * File on a harddisk of a topfield receiver in raw format
-diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/xinput/XInputStream.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/xinput/XInputStream.java
---- src/net/sourceforge/dvb/projectx/xinput/XInputStream.java 2006-03-19 12:13:54.000000000 +0100
-+++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/xinput/XInputStream.java 2006-12-16 14:56:11.000000000 +0100
-@@ -31,8 +31,6 @@
- import java.io.InputStream;
- import java.io.BufferedInputStream;
-
--import net.sourceforge.dvb.projectx.xinput.ftp.XInputFileImpl;
--
- import net.sourceforge.dvb.projectx.common.Common;
- import net.sourceforge.dvb.projectx.common.Keys;
-
-@@ -42,7 +40,6 @@
-
- private byte[] buffer = new byte[1];
-
-- private XInputFileImpl xInputFile = null;
-
- /**
- * Create stream, which is able to handle special needs of the xinput package.
-@@ -55,9 +52,6 @@
- super(Common.getSettings().getBooleanProperty(Keys.KEY_additionalInputBuffer) ? new BufferedInputStream(aIs, 1048576) : aIs);
- }
-
-- public void setFtpFile(XInputFileImpl aIf) {
-- xInputFile = aIf;
-- }
-
- /**
- * Takes care, that always the full amount of data is read (if possible).
-@@ -143,12 +137,6 @@
- public final void close() throws IOException {
- if (debug) System.out.println("Enter XInputStream.close()");
-
-- if (xInputFile != null)
-- {
-- xInputFile.randomAccessClose();
-- xInputFile = null;
-- }
--
- super.close();
- if (debug) System.out.println("Leave XInputStream.close()");
- }
+++ /dev/null
-DESCRIPTION = "Handle & repair many DVB radio & television stream types."
-MAINTAINER = "Andreas Frisch <andreas.frisch@multimedia-labs.de>"
-LICENSE="GPL-2"
-SECTION = "optional"
-DEPENDS = ""
-RDEPENDS = ""
-PN = "projectx"
-PV = "0.90.4.00"
-PR = "r5"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/project-x/ProjectX_Source_eng_${PV}.zip \
- file://headless.patch;patch=1;pnum=0 \
- file://Makefile"
-
-PRECOMPILED_N = "${PN}-mipsel-bin-20080908-${PV}.tar.bz2"
-PRECOMPILED_URI = "http://dreamboxupdate.com/download/opendreambox/${PRECOMPILED_N}"
-
-do_unpack_extra() {
- mv ${WORKDIR}/ProjectX_Source_0.90.4 ${S}
- for dir in ${S}/src/net/sourceforge/dvb/projectx/*; do
- cd $dir
- for x in *.java; do
- echo "Converting DOS CR/LF to UNIX CR in $x"
- tr -d '\015' < "$x" > "tmp.$x"
- mv "tmp.$x" "$x"
- done
- done
- mv ${WORKDIR}/Makefile ${S}/src
-}
-addtask unpack_extra after do_unpack before do_patch
-
-do_compile_prepend() {
- export CROSS_LIBDIR="${CROSS_DIR}/${TARGET_SYS}/lib"
- export GCJ_ARCH=""
- for gcjarchives in libgcj.a libgij.a; do
- if test -e ${CROSS_LIBDIR}/$gcjarchives; then
- export GCJ_ARCHIVES="${GCJ_ARCHIVES} ${CROSS_LIBDIR}/$gcjarchives"
- fi
- done
- if [ "${GCJ_ARCHIVES}" = "" ]; then
- echo gcj not found, downloading statically linked binary
- exit
- else
- echo ${GCJ_ARCHIVES} found, compiling...
- fi
-}
-
-do_compile() {
- export JFLAGS="-g0 -O3 -march=mips32"
- export CROSS_COMPILE=${TARGET_PREFIX}
- cd ${S}/src
- make projectx
-}
-
-do_download_precompiled_binary() {
- if ! test -e ${S}/src/projectx; then
- cd ${S}/src
- wget ${PRECOMPILED_URI}
- tar -xjf ${PRECOMPILED_N}
- fi
-}
-addtask download_precompiled_binary after do_compile before do_install
-
-do_install() {
- install -d ${D}/${bindir}
- install -m 755 ${S}/src/projectx ${D}/${bindir}/
-}
+++ /dev/null
---- configure.in.org 2008-05-01 12:40:58.000000000 +0200
-+++ configure.in 2008-05-01 12:39:39.000000000 +0200
-@@ -998,7 +999,7 @@
- # so we need to run a program to see whether it really made the
- # function available.
- AC_MSG_CHECKING(whether $CC accepts -pthread)
--AC_CACHE_VAL(ac_cv_thread,
-+AC_CACHE_VAL(ac_cv_pthread,
- [ac_save_cc="$CC"
- CC="$CC -pthread"
- AC_TRY_RUN([
-@@ -1023,11 +1024,11 @@
-
- # If we have set a CC compiler flag for thread support then
- # check if it works for CXX, too.
--ac_cv_cxx_thread=no
- if test ! -z "$CXX"
- then
- AC_MSG_CHECKING(whether $CXX also accepts flags for thread support)
--ac_save_cxx="$CXX"
-+AC_CACHE_VAL(ac_cv_cxx_thread,
-+[ac_save_cxx="$CXX"
-
- if test "$ac_cv_kpthread" = "yes"
- then
-@@ -1056,9 +1057,11 @@
- fi
- rm -fr conftest*
- fi
-+CXX="$ac_save_cxx"])
- AC_MSG_RESULT($ac_cv_cxx_thread)
-+else
-+ ac_cv_cxx_thread=no
- fi
--CXX="$ac_save_cxx"
-
- dnl # check for ANSI or K&R ("traditional") preprocessor
- dnl AC_MSG_CHECKING(for C preprocessor type)
+++ /dev/null
-diff -Naur Python-2.5.1-org/configure Python-2.5.1/configure
---- Python-2.5.1-org/configure 2007-03-12 11:50:51.000000000 +0100
-+++ Python-2.5.1/configure 2007-07-14 01:30:20.000000000 +0200
-@@ -10569,7 +10569,7 @@
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- if test "$cross_compiling" = yes; then
-- ac_cv_sizeof_off_t=4
-+ ac_cv_sizeof_off_t=8
- else
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
-diff -Naur Python-2.5.1-org/configure.in Python-2.5.1/configure.in
---- Python-2.5.1-org/configure.in 2007-03-12 11:50:51.000000000 +0100
-+++ Python-2.5.1/configure.in 2007-07-14 01:29:32.000000000 +0200
-@@ -1223,7 +1223,7 @@
- }],
- ac_cv_sizeof_off_t=`cat conftestval`,
- ac_cv_sizeof_off_t=0,
--ac_cv_sizeof_off_t=4)
-+ac_cv_sizeof_off_t=8)
- ])
- AC_MSG_RESULT($ac_cv_sizeof_off_t)
- AC_DEFINE_UNQUOTED(SIZEOF_OFF_T, $ac_cv_sizeof_off_t,
+++ /dev/null
---- configure.in 2008-02-13 20:17:17.000000000 +0100
-+++ configure.in 2008-10-21 22:45:31.000000000 +0200
-@@ -3369,27 +3369,9 @@
- AC_MSG_RESULT(no)
- )
-
--AC_MSG_CHECKING(for /dev/ptmx)
-+AC_CHECK_FILE(/dev/ptmx, AC_DEFINE(HAVE_DEV_PTMX, 1, [Define if we have /dev/ptmx.]))
-
--if test -r /dev/ptmx
--then
-- AC_MSG_RESULT(yes)
-- AC_DEFINE(HAVE_DEV_PTMX, 1,
-- [Define if we have /dev/ptmx.])
--else
-- AC_MSG_RESULT(no)
--fi
--
--AC_MSG_CHECKING(for /dev/ptc)
--
--if test -r /dev/ptc
--then
-- AC_MSG_RESULT(yes)
-- AC_DEFINE(HAVE_DEV_PTC, 1,
-- [Define if we have /dev/ptc.])
--else
-- AC_MSG_RESULT(no)
--fi
-+AC_CHECK_FILE(/dev/ptc, AC_DEFINE(HAVE_DEV_PTC, 1, [Define if we have /dev/ptc.]))
-
- case $MACHDEP in
- darwin)
+++ /dev/null
---- configure.in.org 2008-05-01 12:40:58.000000000 +0200
-+++ configure.in 2008-05-01 12:39:39.000000000 +0200
-@@ -796,13 +796,14 @@
- # pointer types. GCC may generate bad code as a result of that,
- # so use -fno-strict-aliasing if supported.
- AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing)
-- ac_save_cc="$CC"
-+ AC_CACHE_VAL(ac_cv_no_strict_aliasing_ok,
-+ [ac_save_cc="$CC"
- CC="$CC -fno-strict-aliasing"
- AC_TRY_RUN([int main() { return 0; }],
- ac_cv_no_strict_aliasing_ok=yes,
- ac_cv_no_strict_aliasing_ok=no,
- ac_cv_no_strict_aliasing_ok=no)
-- CC="$ac_save_cc"
-+ CC="$ac_save_cc"])
- AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok)
- if test $ac_cv_no_strict_aliasing_ok = yes
- then
+++ /dev/null
-DESCRIPTION = "Google Data API"
-AUTHOR = "Jeffrey Scudder"
-HOMEPAGE = "http://code.google.com/p/gdata-python-client/"
-SECTION = "network"
-PRIORITY = "optional"
-LICENSE = "Apache 2.0"
-PROVIDES = "python-gdata"
-DEPENDS = "python-native"
-
-inherit distutils
-
-PR = "r0"
-
-SRC_URI = "http://gdata-python-client.googlecode.com/files/gdata.py-${PV}.tar.gz;md5sum=8addbac38dabdc7e00701d7b60685d4d"
-
-S = "${WORKDIR}/gdata.py-${PV}"
-
-PACKAGES = "python-gdata"
-
-do_stage() {
- distutils_stage_all
-}
+++ /dev/null
-#!/bin/sh
-killall -9 smbd
-rm -rf /var/log/log.smbd
-killall -9 nmbd
-rm -rf /var/log/log.nmbd
+++ /dev/null
-#!/bin/sh
-nmbd -D
-smbd -D
+++ /dev/null
-[global]
- load printers = no
- guest account = root
- log file = /tmp/smb.log
- log level = 1
- security = share
- server string = DreamBOX %h network services
- workgroup = Dream
- netbios name = %h
- case sensitive=yes
- preserve case=yes
- short preserve case=yes
- socket options = TCP_NODELAY
- preferred master = no ;(These stop the machine being master browser, which means that it doesn't waste time there.)
-
-[Configuration]
- comment = Configuration files - take care!
- path = /var
- read only = no
- public = yes
- guest ok = yes
-
-[Harddisk]
- comment = The harddisk
- path = /hdd
- read only = no
- public = yes
- guest ok = yes
+++ /dev/null
-require samba.inc
-inherit update-rc.d
-
-PR = "r8"
-
-SRC_URI += "file://config-lfs.patch;patch=1 \
- file://quota.patch;patch=1;pnum=0 \
- file://init \
- file://smb.conf \
- "
-
-# file://cifs.patch;patch=1 \
-
-INITSCRIPT_NAME = "samba"
-# No dependencies, goes in at level 20 (NOTE: take care with the
-# level, later levels put the shutdown later too - see the links
-# in rc6.d, the shutdown must precede network shutdown).
-INITSCRIPT_PARAMS = "defaults"
-CONFFILES_${PN} = "${sysconfdir}/samba/smb.conf"
-CONFFILES_${PN}_opendreambox = ""
-
-# The file system settings --foodir=dirfoo and overridden unconditionally
-# in the samba config by --with-foodir=dirfoo - even if the --with is not
-# specified! Fix that here. Set the privatedir to /etc/samba/private.
-EXTRA_OECONF += "\
- SMB_BUILD_CC_NEGATIVE_ENUM_VALUES=yes \
- samba_cv_struct_timespec=yes \
- --with-configdir=${sysconfdir}/samba \
- --with-privatedir=${sysconfdir}/samba/private \
- --with-lockdir=${localstatedir}/lock \
- --with-piddir=${localstatedir}/run \
- --with-logfilebase=${localstatedir}/log \
- --with-libdir=${libdir} \
- --with-mandir=${mandir} \
- --with-swatdir=${datadir}/swat \
- "
-
-do_install_append() {
- install -d "${D}/var/log/samba"
- install -d "${D}${sysconfdir}/init.d"
- install -c -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/samba
- install -d "${D}${sysconfdir}/samba"
- install -c -m 644 ${WORKDIR}/smb.conf ${D}${sysconfdir}/samba/smb.conf
- install -d ${D}/var/spool/samba
-}
-
-PACKAGES =+ "swat"
-
-FILES_swat = "${sbindir}/swat ${datadir}/swat ${libdir}/*.msg"
-FILES_${PN} += "${libdir}/vfs/*.so ${libdir}/charset/*.so ${libdir}/*.dat \
- ${libdir}/auth/*.so ${libdir}/security/*.so"
-FILES_${PN}-dbg += "${libdir}/vfs/.debug/*.so ${libdir}/charset/.debug/*.so \
- ${libdir}/auth/.debug/*.so ${libdir}/security/.debug/*.so"
-
-#
-# bug fix for samba.inc:
-FILES_cifs-doc += "${mandir}/man8/mount.cifs.8"
+++ /dev/null
-require samba.inc
-inherit update-rc.d
-
-PR = "r8"
-
-SRC_URI += "file://config-lfs.patch;patch=1 \
- file://quota.patch;patch=1;pnum=0 \
- file://config-h.patch;patch=1 \
- file://init \
- file://smb.conf \
- "
-
-# file://cifs.patch;patch=1 \
-
-INITSCRIPT_NAME = "samba"
-# No dependencies, goes in at level 20 (NOTE: take care with the
-# level, later levels put the shutdown later too - see the links
-# in rc6.d, the shutdown must precede network shutdown).
-INITSCRIPT_PARAMS = "defaults"
-CONFFILES_${PN} = "${sysconfdir}/samba/smb.conf"
-CONFFILES_${PN}_opendreambox = ""
-
-# The file system settings --foodir=dirfoo and overridden unconditionally
-# in the samba config by --with-foodir=dirfoo - even if the --with is not
-# specified! Fix that here. Set the privatedir to /etc/samba/private.
-EXTRA_OECONF += "\
- SMB_BUILD_CC_NEGATIVE_ENUM_VALUES=yes \
- samba_cv_CC_NEGATIVE_ENUM_VALUES=yes \
- samba_cv_struct_timespec=yes \
- linux_getgrouplist_ok=no \
- samba_cv_HAVE_BROKEN_GETGROUPS=no \
- samba_cv_HAVE_FTRUNCATE_EXTEND=yes \
- ac_cv_path_KRB5CONFIG=no \
- samba_cv_have_setresuid=yes \
- samba_cv_have_setresgid=yes \
- --with-configdir=${sysconfdir}/samba \
- --with-privatedir=${sysconfdir}/samba/private \
- --with-lockdir=${localstatedir}/lock \
- --with-piddir=${localstatedir}/run \
- --with-logfilebase=${localstatedir}/log \
- --with-libdir=${libdir} \
- --with-mandir=${mandir} \
- --with-swatdir=${datadir}/swat \
- "
-
-do_configure() {
- oe_runconf
-}
-
-do_install_append() {
- install -d "${D}/var/log/samba"
- install -d "${D}${sysconfdir}/init.d"
- install -c -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/samba
- install -d "${D}${sysconfdir}/samba"
- install -c -m 644 ${WORKDIR}/smb.conf ${D}${sysconfdir}/samba/smb.conf
- install -d ${D}/var/spool/samba
-}
-
-PACKAGES =+ "swat"
-
-FILES_swat = "${sbindir}/swat ${datadir}/swat ${libdir}/*.msg"
-FILES_${PN} += "${libdir}/vfs/*.so ${libdir}/charset/*.so ${libdir}/*.dat \
- ${libdir}/auth/*.so ${libdir}/security/*.so"
-FILES_${PN}-dbg += "${libdir}/vfs/.debug/*.so ${libdir}/charset/.debug/*.so \
- ${libdir}/auth/.debug/*.so ${libdir}/security/.debug/*.so"
-
-#
-# bug fix for samba.inc:
-FILES_cifs-doc += "${mandir}/man8/mount.cifs.8"
+++ /dev/null
-DESCRIPTION = "GEMBIRD SiS-PM control utility"
-AUTHOR = "Mondrian Nuessle <nuessle@uni-mannheim.de>"
-HOMEPAGE = "http://sispmctl.sourceforge.net/"
-LICENSE = "GPLv2"
-PRIORITY = "optional"
-
-PV = "2.7"
-PR = "r0"
-
-DEPENDS = "libusb"
-
-SRC_URI = "http://downloads.sourceforge.net/${PN}/${PN}-${PV}.tar.gz"
-
-FILES_${PN} = "/usr/bin "
-
-EXTRA_OECONF = " --enable-webless"
-inherit autotools
+++ /dev/null
-# /etc/inittab: init(8) configuration.
-# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
-
-# The default runlevel.
-id:2:initdefault:
-
-# Boot-time system configuration/initialization script.
-# This is run first except when booting in emergency (-b) mode.
-si::sysinit:/etc/init.d/rcS
-
-# What to do in single-user mode.
-~~:S:wait:/sbin/sulogin
-
-# /etc/init.d executes the S and K scripts upon change
-# of runlevel.
-#
-# Runlevel 0 is halt.
-# Runlevel 1 is single-user.
-# Runlevels 2-5 are multi-user.
-# Runlevel 6 is reboot.
-
-l0:0:wait:/etc/init.d/rc 0
-l1:1:wait:/etc/init.d/rc 1
-l2:2:wait:/etc/init.d/rc 2
-l3:3:wait:/etc/init.d/rc 3
-l4:4:wait:/etc/init.d/rc 4
-l5:5:wait:/etc/init.d/rc 5
-l6:6:wait:/etc/init.d/rc 6
-# Normally not reached, but fallthrough in case of emergency.
-z6:6:respawn:/sbin/sulogin
-
-S:5:respawn:/sbin/getty tts/0 115200
+++ /dev/null
-# /etc/inittab: init(8) configuration.
-# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
-
-# The default runlevel.
-id:2:initdefault:
-
-# Boot-time system configuration/initialization script.
-# This is run first except when booting in emergency (-b) mode.
-si::sysinit:/etc/init.d/rcS
-
-# What to do in single-user mode.
-~~:S:wait:/sbin/sulogin
-
-# /etc/init.d executes the S and K scripts upon change
-# of runlevel.
-#
-# Runlevel 0 is halt.
-# Runlevel 1 is single-user.
-# Runlevels 2-5 are multi-user.
-# Runlevel 6 is reboot.
-
-l0:0:wait:/etc/init.d/rc 0
-l1:1:wait:/etc/init.d/rc 1
-l2:2:wait:/etc/init.d/rc 2
-l3:3:wait:/etc/init.d/rc 3
-l4:4:wait:/etc/init.d/rc 4
-l5:5:wait:/etc/init.d/rc 5
-l6:6:wait:/etc/init.d/rc 6
-# Normally not reached, but fallthrough in case of emergency.
-z6:6:respawn:/sbin/sulogin
-
-S:5:respawn:/sbin/getty tts/0 115200
+++ /dev/null
-# /etc/inittab: init(8) configuration.
-# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
-
-# The default runlevel.
-id:2:initdefault:
-
-# Boot-time system configuration/initialization script.
-# This is run first except when booting in emergency (-b) mode.
-si::sysinit:/etc/init.d/rcS
-
-# What to do in single-user mode.
-~~:S:wait:/sbin/sulogin
-
-# /etc/init.d executes the S and K scripts upon change
-# of runlevel.
-#
-# Runlevel 0 is halt.
-# Runlevel 1 is single-user.
-# Runlevels 2-5 are multi-user.
-# Runlevel 6 is reboot.
-
-l0:0:wait:/etc/init.d/rc 0
-l1:1:wait:/etc/init.d/rc 1
-l2:2:wait:/etc/init.d/rc 2
-l3:3:wait:/etc/init.d/rc 3
-l4:4:wait:/etc/init.d/rc 4
-l5:5:wait:/etc/init.d/rc 5
-l6:6:wait:/etc/init.d/rc 6
-# Normally not reached, but fallthrough in case of emergency.
-z6:6:respawn:/sbin/sulogin
-
-S:5:respawn:/sbin/getty tts/0 115200
+++ /dev/null
-# /etc/inittab: init(8) configuration.
-# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
-
-# The default runlevel.
-id:3:initdefault:
-
-# Boot-time system configuration/initialization script.
-# This is run first except when booting in emergency (-b) mode.
-si::sysinit:/etc/init.d/rcS
-
-# What to do in single-user mode.
-~~:S:wait:/sbin/sulogin
-
-# /etc/init.d executes the S and K scripts upon change
-# of runlevel.
-#
-# Runlevel 0 is halt.
-# Runlevel 1 is single-user.
-# Runlevels 2-5 are multi-user.
-# Runlevel 6 is reboot.
-
-l0:0:wait:/etc/init.d/rc 0
-l1:1:wait:/etc/init.d/rc 1
-l2:2:wait:/etc/init.d/rc 2
-l3:3:wait:/etc/init.d/rc 3
-l4:4:wait:/etc/init.d/rc 4
-l5:5:wait:/etc/init.d/rc 5
-l6:6:wait:/etc/init.d/rc 6
-# Normally not reached, but fallthrough in case of emergency.
-z6:6:respawn:/sbin/sulogin
-
-S:5:respawn:/sbin/getty tts/0 115200
+++ /dev/null
-# /etc/inittab: init(8) configuration.
-# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
-
-# The default runlevel.
-id:3:initdefault:
-
-# Boot-time system configuration/initialization script.
-# This is run first except when booting in emergency (-b) mode.
-si::sysinit:/etc/init.d/rcS
-
-# What to do in single-user mode.
-~~:S:wait:/sbin/sulogin
-
-# /etc/init.d executes the S and K scripts upon change
-# of runlevel.
-#
-# Runlevel 0 is halt.
-# Runlevel 1 is single-user.
-# Runlevels 2-5 are multi-user.
-# Runlevel 6 is reboot.
-
-l0:0:wait:/etc/init.d/rc 0
-l1:1:wait:/etc/init.d/rc 1
-l2:2:wait:/etc/init.d/rc 2
-l3:3:wait:/etc/init.d/rc 3
-l4:4:wait:/etc/init.d/rc 4
-l5:5:wait:/etc/init.d/rc 5
-l6:6:wait:/etc/init.d/rc 6
-# Normally not reached, but fallthrough in case of emergency.
-z6:6:respawn:/sbin/sulogin
-
-S:5:respawn:/sbin/getty tts/0 115200
+++ /dev/null
-# /etc/inittab: init(8) configuration.
-# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
-
-# The default runlevel.
-id:3:initdefault:
-
-# Boot-time system configuration/initialization script.
-# This is run first except when booting in emergency (-b) mode.
-si::sysinit:/etc/init.d/rcS
-
-# What to do in single-user mode.
-~~:S:wait:/sbin/sulogin
-
-# /etc/init.d executes the S and K scripts upon change
-# of runlevel.
-#
-# Runlevel 0 is halt.
-# Runlevel 1 is single-user.
-# Runlevels 2-5 are multi-user.
-# Runlevel 6 is reboot.
-
-l0:0:wait:/etc/init.d/rc 0
-l1:1:wait:/etc/init.d/rc 1
-l2:2:wait:/etc/init.d/rc 2
-l3:3:wait:/etc/init.d/rc 3
-l4:4:wait:/etc/init.d/rc 4
-l5:5:wait:/etc/init.d/rc 5
-l6:6:wait:/etc/init.d/rc 6
-# Normally not reached, but fallthrough in case of emergency.
-z6:6:respawn:/sbin/sulogin
-
-S:5:respawn:/sbin/getty ttyS0 115200
-
+++ /dev/null
-#!/bin/sh
-#
-# rcS Call all S??* scripts in /etc/rcS.d in
-# numerical/alphabetical order.
-#
-# Version: @(#)/etc/init.d/rcS 2.76 19-Apr-1999 miquels@cistron.nl
-#
-
-PATH=/sbin:/bin:/usr/sbin:/usr/bin
-runlevel=S
-prevlevel=N
-umask 022
-export PATH runlevel prevlevel
-
-# Make sure proc is mounted
-#
-[ -d "/proc/1" ] || mount /proc
-
-#
-# See if system needs to be setup. This is ONLY meant to
-# be used for the initial setup after a fresh installation!
-#
-if [ -x /sbin/unconfigured.sh ]
-then
- /sbin/unconfigured.sh
-fi
-
-#
-# Source defaults.
-#
-. /etc/default/rcS
-
-#
-# Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
-#
-trap ":" INT QUIT TSTP
-
-#
-# Do we have /proc/progress and set VERBOSE to "no" ?
-# If so, calculate the number of scripts and the incremental step
-#
-
-# HACK: progress needs LCD to create /proc device entry
-modprobe lcd
-
-if [ "$VERBOSE" = no ]; then
- if [ -e /proc/progress ]; then
- set `ls -1 /etc/rc$runlevel.d/S* | wc`
- numscripts=$1
- # bootup, the first script, increments until 25.
- # the userspace then picks up at 50
- PROGRESS_incstep=`expr 25 / $1`
- PROGRESS_value=25
- PROGRESS=yes
- export PROGRESS_value PROGRESS_incstep
- fi
-fi
-export VERBOSE PROGRESS
-
-#
-# Call all parts in order.
-#
-for i in /etc/rcS.d/S??*
-do
- # Ignore dangling symlinks for now.
- [ ! -f "$i" ] && continue
-
- # Handle verbosity
- [ "$VERBOSE" = very ] && echo "INIT: Running $i..."
- if [ "$PROGRESS" = yes ]; then
- export PROGRESS_value=`expr $PROGRESS_value + $PROGRESS_incstep`
- echo "$PROGRESS_value Starting $i..." >/proc/progress
- fi
-
- case "$i" in
- *.sh)
- # Source shell script for speed.
- (
- trap - INT QUIT TSTP
- set start
- . $i
- )
- ;;
- *)
- # No sh extension, so fork subprocess.
- $i start
- ;;
- esac
-
- #
- # Report status based on result code
- #
- result=$?
- if [ "$PROGRESS" = yes ]; then
- if [ "$result" = 0 ]; then
- echo "=s" >/proc/progress
- else
- echo "=f" >/proc/progress
- fi
- fi
-done
-
-#
-# For compatibility, run the files in /etc/rc.boot too.
-#
-[ -d /etc/rc.boot ] && run-parts /etc/rc.boot
-
-#
-# Finish setup if needed. The comment above about
-# /sbin/unconfigured.sh applies here as well!
-#
-if [ -x /sbin/setup.sh ]
-then
- /sbin/setup.sh
-fi
-
+++ /dev/null
-DESCRIPTION = "OpenDreambox: Base Task for the OpenDreambox Distribution"
-SECTION = "opendreambox/base"
-LICENSE = "MIT"
-PR = "r0"
-
-inherit task
-
-#
-# task-opendreambox-base
-#
-DESCRIPTION_${PN} = "OpenDreambox: Basesystem utilities"
-RDEPENDS_${PN} = "\
- autofs \
- base-files-doc \
- dreambox-bootlogo \
- dreambox-compat \
- dreambox-dccamd \
- dreambox-feed-configs \
- dreambox-keymaps \
- dropbear \
- dvbsnoop \
- e2fsprogs-e2fsck \
- e2fsprogs-mke2fs \
- fakelocale \
- gdbserver \
- hddtemp \
- joe \
- mc \
- module-init-tools-depmod \
- mrouted \
- netkit-base \
- ncurses \
- opkg-nogpg \
- ppp \
- smartmontools \
- timezones-alternative \
- tuxbox-common \
- vsftpd \
- util-linux-fdisk \
- util-linux-sfdisk \
-"
-
+++ /dev/null
-DESCRIPTION = "OpenDreambox: CD-Player Task for the OpenDreambox Distribution"
-SECTION = "opendreambox/base"
-LICENSE = "MIT"
-PR = "r0"
-
-inherit task
-
-#
-# task-opendreambox-cdplayer
-#
-DESCRIPTION_${PN} = "OpenDreambox: CD-Player Support"
-DEPENDS_${PN} = "enigma2-plugins"
-RDEPENDS_${PN} = "\
- enigma2-plugin-extensions-cdinfo \
- kernel-module-cdfs \
- libcddb \
- libcdio \
-"
-
+++ /dev/null
-DESCRIPTION = "OpenDreambox: DVB API v2 Task for the OpenDreambox Distribution"
-SECTION = "opendreambox/base"
-LICENSE = "MIT"
-PR = "r0"
-
-inherit task
-
-PROVIDES = "\
- task-opendreambox-dvbapi \
- ${PACKAGES}\
-"
-
-#
-# task-opendreambox-dvbapi2
-#
-RPROVIDES_${PN} = "task-opendreambox-dvbapi"
-DESCRIPTION_${PN} = "OpenDreambox: DVB API v2 Dependencies"
-RDEPENDS_${PN} = "\
- dreambox-dvb-tools \
- tuxbox-stream \
-"
-
+++ /dev/null
-DESCRIPTION = "OpenDreambox: DVB API v3 Task for the OpenDreambox Distribution"
-SECTION = "opendreambox/base"
-LICENSE = "MIT"
-PR = "r0"
-
-inherit task
-
-PROVIDES = "\
- task-opendreambox-dvbapi \
- ${PACKAGES}\
-"
-
-#
-# task-opendreambox-dvbapi3
-#
-RPROVIDES_${PN} = "task-opendreambox-dvbapi"
-DESCRIPTION_${PN} = "OpenDreambox: DVB API v3 Dependencies"
-RDEPENDS_${PN} = "\
- dreambox-dvb-tools-v3 \
- dvbtraffic \
- sctzap \
-"
-
+++ /dev/null
-DESCRIPTION = "OpenDreambox: DVD-Burn Task for the OpenDreambox Distribution"
-SECTION = "opendreambox/base"
-LICENSE = "MIT"
-PR = "r0"
-
-inherit task
-
-#
-# task-opendreambox-dvdburn
-#
-DESCRIPTION_${PN} = "OpenDreambox: DVD-Burning Support"
-DEPENDS_${PN} = "enigma2"
-RDEPENDS_${PN} = "\
- cdrkit \
- dvd+rw-tools \
- dvdauthor \
- enigma2-plugin-extensions-dvdburn \
- mjpegtools \
- projectx \
- python-imaging \
-"
-
+++ /dev/null
-DESCRIPTION = "OpenDreambox: DVD-Player Task for the OpenDreambox Distribution"
-SECTION = "opendreambox/base"
-LICENSE = "MIT"
-PR = "r0"
-
-inherit task
-
-#
-# task-opendreambox-dvdplayer
-#
-DESCRIPTION_${PN} = "OpenDreambox: DVD-Player Support"
-DEPENDS_${PN} = "enigma2
-RDEPENDS_${PN} = "\
- enigma2-plugin-extensions-dvdplayer \
-"
-
+++ /dev/null
-DESCRIPTION = "OpenDreambox: Enigma Task for the OpenDreambox Distribution"
-SECTION = "opendreambox/base"
-LICENSE = "MIT"
-PR = "r0"
-
-inherit task
-
-PROVIDES = "\
- task-opendreambox-ui \
- ${PACKAGES} \
-"
-
-PACKAGES = "\
- task-opendreambox-enigma \
- task-opendreambox-modem \
-"
-
-#
-# task-opendreambox-enigma
-#
-RPROVIDES_task-opendreambox-enigma = "task-opendreambox-ui"
-DESCRIPTION_task-opendreambox-enigma = "OpenDreambox: Enigma Dependencies"
-DEPENDS_task-opendreambox-enigma = "\
- tuxbox-plugins \
- tuxbox-plugins-enigma \
- links-dream \
-"
-RDEPENDS_task-opendreambox-enigma = "\
- enigma \
- ipkgpl \
- links-dream-plugin \
- tuxbox-plugin-master \
- tuxbox-plugin-mines \
- tuxbox-plugin-pacman \
- tuxbox-plugin-snake \
- tuxbox-plugin-soko \
- tuxbox-plugin-sol \
- tuxbox-plugin-solitair \
- tuxbox-plugin-tank \
- tuxbox-plugin-tetris \
- tuxbox-plugin-tuxcom \
- tuxbox-plugin-tuxmail \
- tuxbox-plugin-tuxtxt \
- tuxbox-plugin-vierg \
- tuxbox-plugin-yahtzee \
- enigma-locale-cs enigma-locale-da \
- enigma-locale-de enigma-locale-el enigma-locale-es enigma-locale-et \
- enigma-locale-fi enigma-locale-fr enigma-locale-hr enigma-locale-hu \
- enigma-locale-is enigma-locale-it enigma-locale-lt enigma-locale-nl \
- enigma-locale-no enigma-locale-pl enigma-locale-pt enigma-locale-ro \
- enigma-locale-ru enigma-locale-sk enigma-locale-sl \
- enigma-locale-sv enigma-locale-tr \
- task-opendreambox-modem \
-"
-
-# disabled languages: enigma-locale-ar enigma-locale-sr enigma-locale-ur
-
-RDEPENDS_task-opendreambox-enigma_append_dm7020 = "\
- enigma-plugin-dreamdata \
- tuxbox-plugin-lcdcirc \
- tuxbox-plugin-satfind \
-"
-
-RDEPENDS_task-opendreambox-enigma_append_dm600pvr = "\
- enigma-blindscan \
- dreambox-blindscan-utils \
-"
-
-RDEPENDS_task-opendreambox-enigma_append_dm500plus = "\
- enigma-blindscan \
- dreambox-blindscan-utils \
-"
-
-PACKAGE_ARCH_task-opendreambox-enigma = "${MACHINE_ARCH}"
-
-#
-# task-opendreambox-modem
-#
-DESCRIPTION_task-opendreambox-modem = "OpenDreambox: Modem Support"
-RDEPENDS_task-opendreambox-modem = "\
- enigma-modem \
- kernel-module-crc-ccitt \
- kernel-module-ppp-async \
- kernel-module-ppp-generic \
- kernel-module-slhc \
- update-modules \
-"
-
+++ /dev/null
-DESCRIPTION = "OpenDreambox: Enigma2 Task for the OpenDreambox Distribution"
-SECTION = "opendreambox/base"
-LICENSE = "MIT"
-PR = "r1"
-
-inherit task
-
-PROVIDES = "\
- task-opendreambox-ui \
- ${PACKAGES} \
-"
-
-PACKAGES = "\
- task-opendreambox-enigma2 \
-"
-
-#
-# task-opendreambox-enigma2
-#
-RPROVIDES_task-opendreambox-enigma2 = "task-opendreambox-ui"
-DESCRIPTION_task-opendreambox-enigma2 = "OpenDreambox: Enigma2 Dependencies"
-RDEPENDS_task-opendreambox-enigma2 = "\
- aio-grab \
- dreambox-blindscan-utils \
- enigma2 \
- enigma2-defaultservices \
- enigma2-plugin-extensions-cutlisteditor \
- enigma2-plugin-extensions-graphmultiepg \
- enigma2-plugin-extensions-mediaplayer \
- enigma2-plugin-extensions-mediascanner \
- enigma2-plugin-extensions-pictureplayer \
- enigma2-plugin-systemplugins-frontprocessorupgrade \
- enigma2-plugin-systemplugins-hotplug \
- enigma2-plugin-systemplugins-networkwizard \
- enigma2-plugin-systemplugins-positionersetup \
- enigma2-plugin-systemplugins-satfinder \
- enigma2-plugin-systemplugins-skinselector \
- enigma2-plugin-systemplugins-softwaremanager \
- enigma2-plugin-systemplugins-videotune \
- enigma2-streamproxy \
- ethtool \
- hotplug-ng \
- python-crypt \
- python-netserver \
- python-pickle \
- python-pkgutil \
- python-pycrypto \
- python-twisted \
- python-twisted-core \
- python-twisted-protocols \
- python-twisted-web \
- ${@base_contains("MACHINE_FEATURES", "wifi", "task-opendreambox-wlan", "", d)} \
-"
-
-# enigma2-plugin-extensions-webinterface is disabled until we fixed it to use twisted-web instead of twisted-web2
-
-RDEPENDS_task-opendreambox-enigma2_append_dm800 = "\
- enigma2-plugin-systemplugins-videomode \
-"
-
-RDEPENDS_task-opendreambox-enigma2_append_dm8000 = "\
- enigma2-plugin-systemplugins-videomode \
- task-opendreambox-cdplayer \
- task-opendreambox-dvdplayer \
- task-opendreambox-dvdburn \
-"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
+++ /dev/null
-DESCRIPTION = "OpenDreambox: madwifi Task for the OpenDreambox Distribution"
-SECTION = "opendreambox/base"
-LICENSE = "MIT"
-PR = "r0"
-
-inherit task
-
-#
-# task-opendreambox-madwifi
-#
-DESCRIPTION_${PN} = "OpenDreambox: madwifi Support"
-DEPENDS_${PN} = "\
- madwifi-ng \
-"
-RDEPENDS_${PN} = "\
- madwifi-ng-modules \
- madwifi-ng-tools \
-"
-
+++ /dev/null
-DESCRIPTION = "OpenDreambox: W-LAN Task for the OpenDreambox Distribution"
-SECTION = "opendreambox/base"
-LICENSE = "MIT"
-PR = "r0"
-
-inherit task
-
-#
-# task-opendreambox-wlan
-#
-DESCRIPTION_${PN} = "OpenDreambox: W-LAN Support"
-DEPENDS_${PN} = "enigma2-plugins"
-RDEPENDS_${PN} = "\
- enigma2-plugin-systemplugins-wirelesslan \
- wireless-tools \
- wlan-rt73 \
- wpa-supplicant \
- zd1211b \
-"
-
-RDEPENDS_${PN}_append_dm8000 = "\
- task-opendreambox-madwifi \
-"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
+++ /dev/null
-DESCRIPTION = "Timezone data, alternative"
-SECTION = "base"
-PRIORITY = "optional"
-MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
-LICENSE = "GPL"
-
-PV = "2008i"
-PR = "r0"
-
-SRC_URI = "file://zoneinfo.tar.bz2"
-S = "${WORKDIR}/zoneinfo"
-
-FILES_${PN} = "usr/share/zoneinfo/[A-Z]*"
-PACKAGE_ARCH = "all"
-
-do_install() {
- install -d ${D}/usr/share/zoneinfo/
-
- for file in ${S}/*
- do
- [ -f $file ] && install -m 644 "$file" ${D}/usr/share/zoneinfo/
- done;
- true;
-}
+++ /dev/null
---- Tremor/configure.in 2006-09-03 01:19:30.000000000 +0200
-+++ Tremor-fixed/configure.in 2006-09-03 12:13:33.339593728 +0200
-@@ -106,4 +106,4 @@
- AC_SUBST(DEBUG)
- AC_SUBST(PROFILE)
-
--AC_OUTPUT(Makefile)
-+AC_OUTPUT([Makefile vorbisidec.pc])
---- Tremor/vorbisidec.pc.in 1970-01-01 01:00:00.000000000 +0100
-+++ Tremor-fixed/vorbisidec.pc.in 2006-09-03 12:16:38.313473424 +0200
-@@ -0,0 +1,11 @@
-+prefix=@prefix@
-+exec_prefix=@exec_prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: vorbisidec
-+Description: Vorbis audio decoder
-+Requires:
-+Version: 20041119
-+Libs: -L${libdir} -lvorbisidec
-+Cflags: -I${includedir}
+++ /dev/null
-DEPENDS = "dreambox-dvbincludes"
-DESCRIPTION = "DVBsnoop by rasc@users.sourceforge.net"
-MAINTAINER = "Felix Domke <tmbinc@elitdvb.net>"
-
-SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/dvb/dvbsnoop;method=ext \
- file://acinclude.m4"
-
-SRCDATE = "20081001"
-PR = "r0"
-PV = "0.0+cvs${SRCDATE}"
-S = "${WORKDIR}/dvbsnoop"
-
-inherit autotools pkgconfig
-
-bindir = "/usr/bin"
-sbindir = "/usr/sbin"
-
-EXTRA_OECONF = "--with-target=cdk"
+++ /dev/null
-Index: libs/libtuxtxt/libtuxtxt.c
-===================================================================
-RCS file: /cvs/tuxbox/apps/tuxbox/libs/libtuxtxt/libtuxtxt.c,v
-retrieving revision 1.11
-diff -u -r1.11 libtuxtxt.c
---- libs/libtuxtxt/libtuxtxt.c 7 Sep 2008 18:17:34 -0000 1.11
-+++ libs/libtuxtxt/libtuxtxt.c 29 Jan 2009 20:22:13 -0000
-@@ -7,6 +7,15 @@
- * Info entnommen aus videotext-0.6.19991029, *
- * Copyright (c) 1994-96 Martin Buck <martin-2.buck@student.uni-ulm.de> *
- * *
-+ * ported 2006 to Dreambox 7025 / 32Bit framebuffer *
-+ * by Seddi <seddi@i-have-a-dreambox.com> *
-+ * *
-+ * ported 32Bit framebuffer to Tuxtxt v1.99 (2008) *
-+ * by the PLi team (Sat-Turner) *
-+ * *
-+ * ported to 20090130 *
-+ * by the PLi team (pieterg) *
-+ * *
- ******************************************************************************/
-
- #ifdef DEBUG
-Index: libs/libtuxtxt/tuxtxt_common.h
-===================================================================
-RCS file: /cvs/tuxbox/apps/tuxbox/libs/libtuxtxt/tuxtxt_common.h,v
-retrieving revision 1.23
-diff -u -r1.23 tuxtxt_common.h
---- libs/libtuxtxt/tuxtxt_common.h 29 Jan 2009 20:12:59 -0000 1.23
-+++ libs/libtuxtxt/tuxtxt_common.h 29 Jan 2009 20:22:13 -0000
-@@ -627,6 +627,19 @@
- aG3_70, aG3_71, aG3_72, aG3_73, aG3_74, aG3_75, aG3_76, aG3_77, aG3_78, aG3_79, aG3_7a, aG3_7b, aG3_7c, aG3_7d, aG3_7e
- };
-
-+/* 32bit colortable */
-+unsigned char bgra[][4] = {
-+"\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF",
-+"\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF",
-+"\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF",
-+"\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF",
-+"\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF",
-+"\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF",
-+"\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF",
-+"\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF",
-+"\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xC0", "\0\0\0\x00",
-+"\0\0\0\x33" };
-+
- tuxtxt_cache_struct tuxtxt_cache;
- static pthread_mutex_t tuxtxt_cache_lock = PTHREAD_MUTEX_INITIALIZER;
- int tuxtxt_get_zipsize(int p,int sp)
-@@ -3294,12 +3307,16 @@
- void tuxtxt_FillRect(unsigned char *lfb, int xres, int x, int y, int w, int h, int color)
- {
- if (!lfb) return;
-- unsigned char *p = lfb + x + y * xres;
-+ unsigned char *p = lfb + x*4 + y * xres;
-+ int xtmp;
-
- if (w > 0)
- for ( ; h > 0 ; h--)
- {
-- memset(p, color, w);
-+ for (xtmp=0; xtmp<w; xtmp++)
-+ {
-+ memcpy(p+xtmp*4,bgra[color],4);
-+ }
- p += xres;
- }
- }
-@@ -3311,7 +3328,7 @@
- unsigned char fgcolor, unsigned char bgcolor)
- {
- if (d == NULL) return;
-- int bit, x, y;
-+ int bit, x, y, ltmp;
- unsigned char *ay = ax + 13; /* array[0..10] of y-offsets for each pixel */
-
- for (y = 0; y < 10; y++) /* 10*2 bytes a 6 pixels per char definition */
-@@ -3335,9 +3352,21 @@
- for (i = 0; i < h; i++)
- {
- if (ax[x+1] > ax[x])
-- memset(d + ax[x], f1, ax[x+1] - ax[x]);
-+ {
-+// memset(d + ax[x], f1, ax[x+1] - ax[x]);
-+ for (ltmp=0 ; ltmp < (ax[x+1]-ax[x]); ltmp++)
-+ {
-+ memcpy(d + ax[x]*4 +ltmp*4,bgra[f1],4);
-+ }
-+ }
- if (ax[x+7] > ax[x+6])
-- memset(d + ax[x+6], f2, ax[x+7] - ax[x+6]); /* 2nd byte 6 pixels to the right */
-+ {
-+// memset(d + ax[x+6], f2, ax[x+7] - ax[x+6]); /* 2nd byte 6 pixels to the right */
-+ for (ltmp=0 ; ltmp < (ax[x+7]-ax[x+6]); ltmp++)
-+ {
-+ memcpy(d + ax[x+6]*4 +ltmp*4,bgra[f2],4);
-+ }
-+ }
- d += xres;
- }
- d -= h * xres;
-@@ -3350,20 +3379,26 @@
- void tuxtxt_DrawVLine(unsigned char *lfb, int xres, int x, int y, int l, int color)
- {
- if (!lfb) return;
-- unsigned char *p = lfb + x + y * xres;
-+ unsigned char *p = lfb + 4*x + y * xres;
-
- for ( ; l > 0 ; l--)
- {
-- *p = color;
-+ memcpy(p,bgra[color],4);
- p += xres;
- }
- }
-
- void tuxtxt_DrawHLine(unsigned char* lfb,int xres,int x, int y, int l, int color)
- {
-+ int ltmp;
- if (!lfb) return;
- if (l > 0)
-- memset(lfb + x + y * xres, color, l);
-+ {
-+ for (ltmp=0; ltmp < l; ltmp++)
-+ {
-+ memcpy(lfb + x*4 + ltmp*4 + y * xres, bgra[color], 4);
-+ }
-+ }
- }
-
- void tuxtxt_FillRectMosaicSeparated(unsigned char *lfb, int xres,int x, int y, int w, int h, int fgcolor, int bgcolor, int set)
-@@ -3378,48 +3413,54 @@
-
- void tuxtxt_FillTrapez(unsigned char *lfb, int xres,int x0, int y0, int l0, int xoffset1, int h, int l1, int color)
- {
-- unsigned char *p = lfb + x0 + y0 * xres;
-+ unsigned char *p = lfb + x0*4 + y0 * xres;
- int xoffset, l;
- int yoffset;
-+ int ltmp;
-
- for (yoffset = 0; yoffset < h; yoffset++)
- {
- l = l0 + ((l1-l0) * yoffset + h/2) / h;
- xoffset = (xoffset1 * yoffset + h/2) / h;
- if (l > 0)
-- memset(p + xoffset, color, l);
-+ {
-+ for (ltmp=0; ltmp < l; ltmp++)
-+ {
-+ memcpy(p + xoffset*4 +ltmp*4, bgra[color], 4);
-+ }
-+ }
- p += xres;
- }
- }
- void tuxtxt_FlipHorz(unsigned char *lfb, int xres,int x, int y, int w, int h)
- {
-- unsigned char buf[w];
-- unsigned char *p = lfb + x + y * xres;
-+ unsigned char buf[w*4];
-+ unsigned char *p = lfb + x*4 + y * xres;
- int w1,h1;
-
- for (h1 = 0 ; h1 < h ; h1++)
- {
-- memcpy(buf,p,w);
-+ memcpy(buf,p,w*4);
- for (w1 = 0 ; w1 < w ; w1++)
- {
-- *(p+w1) = buf[w-(w1+1)];
-+ memcpy(p+w1*4,buf+((w-w1)*4)-4,4);
- }
- p += xres;
- }
- }
- void tuxtxt_FlipVert(unsigned char *lfb, int xres,int x, int y, int w, int h)
- {
-- unsigned char buf[w];
-- unsigned char *p = lfb + x + y * xres, *p1, *p2;
-+ unsigned char buf[w*4];
-+ unsigned char *p = lfb + x*4 + y * xres, *p1, *p2;
- int h1;
-
- for (h1 = 0 ; h1 < h/2 ; h1++)
- {
- p1 = (p+(h1*xres));
- p2 = (p+(h-(h1+1))*xres);
-- memcpy(buf,p1,w);
-- memcpy(p1,p2,w);
-- memcpy(p2,buf,w);
-+ memcpy(buf,p1,w*4);
-+ memcpy(p1,p2,w*4);
-+ memcpy(p2,buf,w*4);
- }
- }
-
-@@ -3683,7 +3724,7 @@
- if (lfb)
- {
- int x,y,f,c;
-- unsigned char* p = lfb + *pPosX + PosY* xres;
-+ unsigned char* p = lfb + (*pPosX)*4 + PosY* xres;
- for (y=0; y<fontheight;y++)
- {
- for (f=0; f<factor; f++)
-@@ -3691,7 +3732,7 @@
- for (x=0; x<curfontwidth*xfactor;x++)
- {
- c = (y&4 ? (x/3)&1 :((x+3)/3)&1);
-- *(p+x) = (c ? fgcolor : bgcolor);
-+ memcpy((p+x*4),bgra[(c ? fgcolor : bgcolor)],4);
- }
- p += xres;
- }
-@@ -3729,7 +3770,7 @@
- }
- axdrcs[12] = curfontwidth; /* adjust last x-offset according to position, FIXME: double width */
- tuxtxt_RenderDRCS(xres,p,
-- lfb + *pPosX + PosY * xres,
-+ lfb + (*pPosX)*4 + PosY * xres,
- axdrcs, fgcolor, bgcolor);
- }
- else
-@@ -3996,12 +4037,12 @@
- void tuxtxt_FillBorder(tstRenderInfo* renderinfo, int color)
- {
- int ys = renderinfo->var_screeninfo.yres-renderinfo->var_screeninfo.yoffset;
-- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,0 , ys ,renderinfo->StartX ,renderinfo->var_screeninfo.yres ,color);
-- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->StartX, ys ,renderinfo->displaywidth,renderinfo->StartY ,color);
-- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->StartX, ys+renderinfo->StartY+25*renderinfo->fontheight,renderinfo->displaywidth,renderinfo->var_screeninfo.yres-(renderinfo->StartY+25*renderinfo->fontheight),color);
-+ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,0 , ys ,renderinfo->StartX ,renderinfo->var_screeninfo.yres ,color);
-+ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->StartX, ys ,renderinfo->displaywidth,renderinfo->StartY ,color);
-+ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->StartX, ys+renderinfo->StartY+25*renderinfo->fontheight,renderinfo->displaywidth,renderinfo->var_screeninfo.yres-(renderinfo->StartY+25*renderinfo->fontheight),color);
-
- if (renderinfo->screenmode == 0 )
-- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->StartX+renderinfo->displaywidth, ys,renderinfo->var_screeninfo.xres-(renderinfo->StartX+renderinfo->displaywidth),renderinfo->var_screeninfo.yres ,color);
-+ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->StartX+renderinfo->displaywidth, ys,renderinfo->fix_screeninfo.line_length-(renderinfo->StartX+renderinfo->displaywidth),renderinfo->var_screeninfo.yres ,color);
- }
-
-
-@@ -4037,12 +4078,12 @@
- }
- void tuxtxt_ClearBB(tstRenderInfo* renderinfo,int color)
- {
-- memset(renderinfo->lfb + (renderinfo->var_screeninfo.yres-renderinfo->var_screeninfo.yoffset )*renderinfo->var_screeninfo.xres, color, renderinfo->var_screeninfo.xres*renderinfo->var_screeninfo.yres);
-+ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,0, renderinfo->var_screeninfo.yres - renderinfo->var_screeninfo.yoffset, renderinfo->fix_screeninfo.line_length, renderinfo->var_screeninfo.yres, color);
- }
-
- void tuxtxt_ClearFB(tstRenderInfo* renderinfo,int color)
- {
-- memset(renderinfo->lfb + renderinfo->var_screeninfo.xres*renderinfo->var_screeninfo.yoffset, color, renderinfo->var_screeninfo.xres*renderinfo->var_screeninfo.yres);
-+ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,0, renderinfo->var_screeninfo.yoffset, renderinfo->fix_screeninfo.line_length, renderinfo->var_screeninfo.yres, color);
- }
-
- int tuxtxt_GetCurFontWidth(tstRenderInfo* renderinfo)
-@@ -4079,7 +4120,7 @@
- renderinfo->PosX += t;
- int curfontwidth2 = tuxtxt_GetCurFontWidth(renderinfo);
- renderinfo->PosX -= t;
-- int alphachar = tuxtxt_RenderChar(renderinfo->lfb+(yoffset+renderinfo->StartY)*renderinfo->var_screeninfo.xres, renderinfo->var_screeninfo.xres,Char, &renderinfo->PosX, renderinfo->PosY-renderinfo->StartY, Attribute, zoom, curfontwidth, curfontwidth2, renderinfo->fontheight, renderinfo->transpmode,renderinfo->axdrcs, renderinfo->ascender);
-+ int alphachar = tuxtxt_RenderChar(renderinfo->lfb+(yoffset+renderinfo->StartY)*renderinfo->fix_screeninfo.line_length, renderinfo->fix_screeninfo.line_length, Char, &renderinfo->PosX, renderinfo->PosY-renderinfo->StartY, Attribute, zoom, curfontwidth, curfontwidth2, renderinfo->fontheight, renderinfo->transpmode,renderinfo->axdrcs, renderinfo->ascender);
- if (alphachar <= 0) return;
-
- if (zoom && Attribute->doubleh)
-@@ -4112,7 +4153,7 @@
- #if TUXTXT_DEBUG
- printf("TuxTxt <FT_Get_Char_Index for Char %x \"%c\" failed\n", alphachar, alphachar);
- #endif
-- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->PosX, renderinfo->PosY + yoffset, curfontwidth, factor*renderinfo->fontheight, bgcolor);
-+ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->PosX, renderinfo->PosY + yoffset, curfontwidth, factor*renderinfo->fontheight, bgcolor);
- renderinfo->PosX += curfontwidth;
- return;
- }
-@@ -4127,7 +4168,7 @@
- printf("TuxTxt <FTC_SBitCache_Lookup: 0x%x> c%x a%x g%x w%d h%d x%d y%d\n",
- error, alphachar, Attribute, glyph, curfontwidth, renderinfo->fontheight, renderinfo->PosX, renderinfo->PosY);
- #endif
-- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->PosX, renderinfo->PosY + yoffset, curfontwidth, renderinfo->fontheight, bgcolor);
-+ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->PosX, renderinfo->PosY + yoffset, curfontwidth, renderinfo->fontheight, bgcolor);
- renderinfo->PosX += curfontwidth;
- return;
- }
-@@ -4188,13 +4229,13 @@
- Row = 0;
- }
- else
-- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->PosX, renderinfo->PosY + yoffset, curfontwidth, Row, bgcolor); /* fill upper margin */
-+ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->PosX, renderinfo->PosY + yoffset, curfontwidth, Row, bgcolor); /* fill upper margin */
-
- if (renderinfo->ascender - renderinfo->sbit->top + renderinfo->TTFShiftY + he > renderinfo->fontheight)
- he = renderinfo->fontheight - renderinfo->ascender + renderinfo->sbit->top - renderinfo->TTFShiftY; /* limit char height to defined/calculated fontheight */
- if (he < 0) he = renderinfo->fontheight;
-
-- p = renderinfo->lfb + renderinfo->PosX + (yoffset + renderinfo->PosY + Row) * renderinfo->var_screeninfo.xres; /* running pointer into framebuffer */
-+ p = renderinfo->lfb + renderinfo->PosX*4 + (yoffset + renderinfo->PosY + Row) * renderinfo->fix_screeninfo.line_length; /* running pointer into framebuffer */
- for (Row = he; Row; Row--) /* row counts up, but down may be a little faster :) */
- {
- int pixtodo = (renderinfo->usettf ? renderinfo->sbit->width : curfontwidth);
-@@ -4203,8 +4244,8 @@
- for (Bit = xfactor * (renderinfo->sbit->left + renderinfo->TTFShiftX); Bit > 0; Bit--) /* fill left margin */
- {
- for (f = factor-1; f >= 0; f--)
-- *(p + f*renderinfo->var_screeninfo.xres) = bgcolor;
-- p++;
-+ memcpy((p + f*renderinfo->fix_screeninfo.line_length),bgra[bgcolor],4);/*bgcolor*/
-+ p+=4;
- if (!renderinfo->usettf)
- pixtodo--;
- }
-@@ -4224,14 +4265,14 @@
- color = bgcolor;
-
- for (f = factor-1; f >= 0; f--)
-- *(p + f*renderinfo->var_screeninfo.xres) = color;
-- p++;
-+ memcpy((p + f*renderinfo->fix_screeninfo.line_length),bgra[color],4);
-+ p+=4;
-
- if (xfactor > 1) /* double width */
- {
- for (f = factor-1; f >= 0; f--)
-- *(p + f*renderinfo->var_screeninfo.xres) = color;
-- p++;
-+ memcpy((p + f*renderinfo->fix_screeninfo.line_length),bgra[color],4);
-+ p+=4;
- if (!renderinfo->usettf)
- pixtodo--;
- }
-@@ -4242,17 +4283,17 @@
- Bit > 0; Bit--) /* fill rest of char width */
- {
- for (f = factor-1; f >= 0; f--)
-- *(p + f*renderinfo->var_screeninfo.xres) = bgcolor;
-- p++;
-+ memcpy((p + f*renderinfo->fix_screeninfo.line_length),bgra[bgcolor],4);
-+ p+=4;
- }
-
-- p = pstart + factor*renderinfo->var_screeninfo.xres;
-+ p = pstart + factor*renderinfo->fix_screeninfo.line_length;
- }
-
- Row = renderinfo->ascender - renderinfo->sbit->top + he + renderinfo->TTFShiftY;
-- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->PosX, renderinfo->PosY + yoffset + Row*factor, curfontwidth, (renderinfo->fontheight - Row) * factor, bgcolor); /* fill lower margin */
-+ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->PosX, renderinfo->PosY + yoffset + Row*factor, curfontwidth, (renderinfo->fontheight - Row) * factor, bgcolor); /* fill lower margin */
- if (Attribute->underline)
-- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->PosX, renderinfo->PosY + yoffset + (renderinfo->fontheight-2)* factor, curfontwidth,2*factor, fgcolor); /* underline char */
-+ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->PosX, renderinfo->PosY + yoffset + (renderinfo->fontheight-2)* factor, curfontwidth,2*factor, fgcolor); /* underline char */
-
- renderinfo->PosX += curfontwidth;
- renderinfo->TTFShiftY = backupTTFshiftY; // restore TTFShiftY
-@@ -4300,9 +4341,8 @@
-
- void tuxtxt_SwitchScreenMode(tstRenderInfo* renderinfo,int newscreenmode)
- {
--#if HAVE_DVB_API_VERSION >= 3
- struct v4l2_format format;
--#endif
-+
- /* reset transparency mode */
- if (renderinfo->transpmode)
- renderinfo->transpmode = 0;
-@@ -4370,42 +4410,53 @@
-
- tuxtxt_setfontwidth(renderinfo,fw);
-
--#if HAVE_DVB_API_VERSION < 3
-- avia_pig_hide(renderinfo->pig);
-- avia_pig_set_pos(renderinfo->pig, tx, ty);
-- avia_pig_set_size(renderinfo->pig, tw, th);
-- avia_pig_set_stack(renderinfo->pig, 2);
-- avia_pig_show(renderinfo->pig);
--#else
-- int sm = 0;
-- ioctl(renderinfo->pig, VIDIOC_OVERLAY, &sm);
-- sm = 1;
-- ioctl(renderinfo->pig, VIDIOC_G_FMT, &format);
-- format.type = V4L2_BUF_TYPE_VIDEO_OVERLAY;
-- format.fmt.win.w.left = tx;
-- format.fmt.win.w.top = ty;
-- format.fmt.win.w.width = tw;
-- format.fmt.win.w.height = th;
-- ioctl(renderinfo->pig, VIDIOC_S_FMT, &format);
-- ioctl(renderinfo->pig, VIDIOC_OVERLAY, &sm);
--#endif
-- ioctl(renderinfo->avs, AVSIOSSCARTPIN8, &fncmodes[renderinfo->screen_mode2]);
-- ioctl(renderinfo->saa, SAAIOSWSS, &saamodes[renderinfo->screen_mode2]);
-+ // Video picture scale/pos for e2
-+ int i;
-+ for (i=0; i<4; ++i)
-+ {
-+ char *targets[]={"left", "top", "width", "height"};
-+ char filename[128];
-+ snprintf(filename, 128, "/proc/stb/vmpeg/%d/dst_%s", 0, targets[i]);
-+ FILE *f = fopen(filename, "w");
-+ if (!f)
-+ break;
-+ int val = 0;
-+ switch (i)
-+ {
-+ case 0: val = tx; break;
-+ case 1: val = ty; break;
-+ case 2: val = tw; break;
-+ case 3: val = th; break;
-+ }
-+ fprintf(f, "%08x\n", val);
-+ fclose(f);
-+ }
-+
-+ writeproc("/proc/stb/avs/0/sb", fncmodes[renderinfo->screen_mode2]);
-+ writeproc("/proc/stb/denc/0/wss", saamodes[renderinfo->screen_mode2]);
- }
- else /* not split */
- {
--#if HAVE_DVB_API_VERSION < 3
-- avia_pig_hide(renderinfo->pig);
--#else
-- ioctl(renderinfo->pig, VIDIOC_OVERLAY, &renderinfo->screenmode);
--#endif
-+ // Video picture scale/pos for e2
-+ int i;
-+ for (i=0; i<4; ++i)
-+ {
-+ char *targets[]={"left", "top", "width", "height"};
-+ char filename[128];
-+ snprintf(filename, 128, "/proc/stb/vmpeg/%d/dst_%s", 0, targets[i]);
-+ FILE *f = fopen(filename, "w");
-+ if (!f)
-+ break;
-+ fprintf(f, "%08x\n", 0);
-+ fclose(f);
-+ }
-
- tuxtxt_setfontwidth(renderinfo,renderinfo->fontwidth_normal);
- renderinfo->displaywidth= (renderinfo->ex-renderinfo->sx);
- renderinfo->StartX = renderinfo->sx; //+ (ex-sx - 40*fontwidth) / 2; /* center screen */
-
-- ioctl(renderinfo->avs, AVSIOSSCARTPIN8, &fncmodes[renderinfo->screen_mode1]);
-- ioctl(renderinfo->saa, SAAIOSWSS, &saamodes[renderinfo->screen_mode1]);
-+ writeproc("/proc/stb/avs/0/sb", fncmodes[renderinfo->screen_mode1]);
-+ writeproc("/proc/stb/denc/0/wss", saamodes[renderinfo->screen_mode1]);
- }
- }
-
-@@ -4431,7 +4482,7 @@
- if (renderinfo->boxed)
- {
- renderinfo->PosX = renderinfo->StartX + column*width;
-- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->PosX, renderinfo->PosY+yoffset, renderinfo->displaywidth, renderinfo->fontheight, tuxtxt_color_transp);
-+ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->PosX, renderinfo->PosY+yoffset, renderinfo->displaywidth, renderinfo->fontheight, tuxtxt_color_transp);
- return;
- }
-
-@@ -4442,7 +4493,7 @@
-
- if (l > 9) /* smaller font, if no space for one half space at front and end */
- tuxtxt_setfontwidth(renderinfo,oldfontwidth * 10 / (l+1));
-- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->PosX, renderinfo->PosY+yoffset, width+(renderinfo->displaywidth%4), renderinfo->fontheight, tuxtxt_atrtable[ATR_L250 + column].bg);
-+ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->PosX, renderinfo->PosY+yoffset, width+(renderinfo->displaywidth%4), renderinfo->fontheight, tuxtxt_atrtable[ATR_L250 + column].bg);
- renderinfo->PosX += ((width) - (l*renderinfo->fontwidth+l*renderinfo->fontwidth/abx))/2; /* center */
- for (p = tuxtxt_cache.adip[linkpage]; *p; p++)
- tuxtxt_RenderCharBB(renderinfo,*p, &tuxtxt_atrtable[ATR_L250 + column]);
-@@ -4451,7 +4502,7 @@
- else /* display number */
- {
- renderinfo->PosX = renderinfo->StartX + column*width;
-- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->PosX, renderinfo->PosY+yoffset, renderinfo->displaywidth+renderinfo->sx-renderinfo->PosX, renderinfo->fontheight, tuxtxt_atrtable[ATR_L250 + column].bg);
-+ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->PosX, renderinfo->PosY+yoffset, renderinfo->displaywidth+renderinfo->sx-renderinfo->PosX, renderinfo->fontheight, tuxtxt_atrtable[ATR_L250 + column].bg);
- if (linkpage < tuxtxt_cache.page)
- {
- line[6] = '<';
-@@ -4620,7 +4671,7 @@
- void tuxtxt_CopyBB2FB(tstRenderInfo* renderinfo)
- {
- unsigned char *src, *dst, *topsrc;
-- int fillcolor, i, screenwidth;
-+ int fillcolor, i, screenwidth, swtmp;
-
- /* line 25 */
- if (!renderinfo->pagecatching)
-@@ -4636,8 +4687,8 @@
- if (ioctl(renderinfo->fb, FBIOPAN_DISPLAY, &renderinfo->var_screeninfo) == -1)
- perror("TuxTxt <FBIOPAN_DISPLAY>");
-
-- if (renderinfo->StartX > 0 && *renderinfo->lfb != *(renderinfo->lfb + renderinfo->var_screeninfo.xres * renderinfo->var_screeninfo.yres)) /* adapt background of backbuffer if changed */
-- tuxtxt_FillBorder(renderinfo,*(renderinfo->lfb + renderinfo->var_screeninfo.xres * renderinfo->var_screeninfo.yoffset));
-+ if (renderinfo->StartX > 0 && *renderinfo->lfb != *(renderinfo->lfb + renderinfo->fix_screeninfo.line_length * renderinfo->var_screeninfo.yres)) /* adapt background of backbuffer if changed */
-+ tuxtxt_FillBorder(renderinfo,*(renderinfo->lfb + renderinfo->fix_screeninfo.line_length * renderinfo->var_screeninfo.yoffset));
- // ClearBB(*(lfb + renderinfo->var_screeninfo.xres * renderinfo->var_screeninfo.yoffset));
-
- if (renderinfo->clearbbcolor >= 0)
-@@ -4648,18 +4699,18 @@
- return;
- }
-
-- src = dst = topsrc = renderinfo->lfb + renderinfo->StartY*renderinfo->var_screeninfo.xres;
-+ src = dst = topsrc = renderinfo->lfb + renderinfo->StartY*renderinfo->fix_screeninfo.line_length;
-
-
- if (renderinfo->var_screeninfo.yoffset)
-- dst += renderinfo->var_screeninfo.xres * renderinfo->var_screeninfo.yres;
-+ dst += renderinfo->fix_screeninfo.line_length * renderinfo->var_screeninfo.yres;
- else
- {
-- src += renderinfo->var_screeninfo.xres * renderinfo->var_screeninfo.yres;
-- topsrc += renderinfo->var_screeninfo.xres * renderinfo->var_screeninfo.yres;
-+ src += renderinfo->fix_screeninfo.line_length * renderinfo->var_screeninfo.yres;
-+ topsrc += renderinfo->fix_screeninfo.line_length * renderinfo->var_screeninfo.yres;
- }
- if (!renderinfo->pagecatching )
-- memcpy(dst+(24*renderinfo->fontheight)*renderinfo->var_screeninfo.xres, src + (24*renderinfo->fontheight)*renderinfo->var_screeninfo.xres, renderinfo->var_screeninfo.xres*renderinfo->fontheight); /* copy line25 in normal height */
-+ memcpy(dst+(24*renderinfo->fontheight)*renderinfo->fix_screeninfo.line_length, src + (24*renderinfo->fontheight)*renderinfo->fix_screeninfo.line_length, renderinfo->fix_screeninfo.line_length*renderinfo->fontheight); /* copy line25 in normal height */
-
- if (renderinfo->transpmode)
- fillcolor = tuxtxt_color_transp;
-@@ -4667,94 +4718,82 @@
- fillcolor = tuxtxt_cache.FullScrColor;
-
- if (renderinfo->zoommode == 2)
-- src += 12*renderinfo->fontheight*renderinfo->var_screeninfo.xres;
-+ src += 12*renderinfo->fontheight*renderinfo->fix_screeninfo.line_length;
-
- if (renderinfo->screenmode == 1) /* copy topmenu in normal height (since PIG also keeps dimensions) */
- {
- unsigned char *topdst = dst;
-
-- screenwidth = TV43STARTX;
-+ screenwidth = (TV43STARTX) * 4;
-
- topsrc += screenwidth;
- topdst += screenwidth;
- for (i=0; i < 24*renderinfo->fontheight; i++)
- {
- memcpy(topdst, topsrc,renderinfo->ex-screenwidth);
-- topdst += renderinfo->var_screeninfo.xres;
-- topsrc += renderinfo->var_screeninfo.xres;
-+ topdst += renderinfo->fix_screeninfo.line_length;
-+ topsrc += renderinfo->fix_screeninfo.line_length;
- }
- }
- else if (renderinfo->screenmode == 2)
-- screenwidth = TV169FULLSTARTX;
-+ screenwidth = (TV169FULLSTARTX) * 4;
- else
-- screenwidth = renderinfo->var_screeninfo.xres;
-+ screenwidth = renderinfo->fix_screeninfo.line_length;
-
- for (i = renderinfo->StartY; i>0;i--)
- {
-- memset(dst - i*renderinfo->var_screeninfo.xres, fillcolor, screenwidth);
-+ for (swtmp=0; swtmp<screenwidth/4; swtmp++)
-+ {
-+ memcpy(dst - i*renderinfo->fix_screeninfo.line_length+swtmp*4, bgra[fillcolor], 4);
-+ }
- }
-
- for (i = 12*renderinfo->fontheight; i; i--)
- {
- memcpy(dst, src, screenwidth);
-- dst += renderinfo->var_screeninfo.xres;
-+ dst += renderinfo->fix_screeninfo.line_length;
- memcpy(dst, src, screenwidth);
-- dst += renderinfo->var_screeninfo.xres;
-- src += renderinfo->var_screeninfo.xres;
-+ dst += renderinfo->fix_screeninfo.line_length;
-+ src += renderinfo->fix_screeninfo.line_length;
- }
-
- // if (!pagecatching )
- // memcpy(dst, lfb + (StartY+24*fontheight)*renderinfo->var_screeninfo.xres, renderinfo->var_screeninfo.xres*fontheight); /* copy line25 in normal height */
-- for (i = renderinfo->var_screeninfo.yres - renderinfo->StartY - 25*renderinfo->fontheight; i >= 0;i--)
-+ dst -= renderinfo->fix_screeninfo.line_length;
-+ for (i = renderinfo->var_screeninfo.yres - renderinfo->StartY - 25 * renderinfo->fontheight; i >= 0;i--)
- {
-- memset(dst + renderinfo->var_screeninfo.xres*(renderinfo->fontheight+i), fillcolor, screenwidth);
-+ for (swtmp=0; swtmp < screenwidth/4;swtmp++)
-+ {
-+ memcpy(dst + renderinfo->fix_screeninfo.line_length*(renderinfo->fontheight+i)+swtmp*4, bgra[fillcolor], 4);
-+ }
- }
- }
-
- void tuxtxt_setcolors(tstRenderInfo* renderinfo,unsigned short *pcolormap, int offset, int number)
- {
-- struct fb_cmap colormap_0 = {0, tuxtxt_color_SIZECOLTABLE, renderinfo->rd0, renderinfo->gn0, renderinfo->bl0, renderinfo->tr0};
-- int i, changed=0;
-+ int i,trans_tmp;
- int j = offset; /* index in global color table */
-
-- unsigned short t = renderinfo->tr0[tuxtxt_color_transp2];
-- renderinfo->tr0[tuxtxt_color_transp2] = (renderinfo->trans_mode+7)<<11 | 0x7FF;
--#ifndef HAVE_DREAMBOX_HARDWARE
-- /* "correct" semi-transparent for Nokia (GTX only allows 2(?) levels of transparency) */
-- if (tuxbox_get_vendor() == TUXBOX_VENDOR_NOKIA)
-- renderinfo->tr0[tuxtxt_color_transp2] = 0xFFFF;
--#endif
-- if (t != renderinfo->tr0[tuxtxt_color_transp2]) changed = 1;
-+ trans_tmp=25-renderinfo->trans_mode;
-+
-+ bgra[tuxtxt_color_transp2][3]=((trans_tmp+7)<<11 | 0x7FF)>>8;
-+
- for (i = 0; i < number; i++)
- {
-- int r = (pcolormap[i] << 12) & 0xf000;
-- int g = (pcolormap[i] << 8) & 0xf000;
-- int b = (pcolormap[i] << 4) & 0xf000;
--
-+ int r = (pcolormap[i] << 12 & 0xF000) >> 8;
-+ int g = (pcolormap[i] << 8 & 0xF000) >> 8;
-+ int b = (pcolormap[i] << 4 & 0xF000) >> 8;
-
- r = (r * (0x3f+(renderinfo->color_mode<<3))) >> 8;
- g = (g * (0x3f+(renderinfo->color_mode<<3))) >> 8;
- b = (b * (0x3f+(renderinfo->color_mode<<3))) >> 8;
-- if (renderinfo->rd0[j] != r)
-- {
-- renderinfo->rd0[j] = r;
-- changed = 1;
-- }
-- if (renderinfo->gn0[j] != g)
-- {
-- renderinfo->gn0[j] = g;
-- changed = 1;
-- }
-- if (renderinfo->bl0[j] != b)
-- {
-- renderinfo->bl0[j] = b;
-- changed = 1;
-- }
-+
-+ bgra[j][2]=r;
-+ bgra[j][1]=g;
-+ bgra[j][0]=b;
-+
- j++;
- }
-- if (changed)
-- if (ioctl(renderinfo->fb, FBIOPUTCMAP, &colormap_0) == -1)
-- perror("TuxTxt <FBIOPUTCMAP>");
- }
-
- /******************************************************************************
-@@ -4968,11 +5007,11 @@
-
- for (row = 0; row < DRCSROWS; row++)
- for (col = 0; col < DRCSCOLS; col++)
-- tuxtxt_RenderDRCS(renderinfo->var_screeninfo.xres,
-+ tuxtxt_RenderDRCS(renderinfo->fix_screeninfo.line_length,
- renderinfo->page_char + 20 * (DRCSCOLS * row + col + 2),
- renderinfo->lfb
-- + (renderinfo->StartY + renderinfo->fontheight + DRCSYSPC * row + renderinfo->var_screeninfo.yres - renderinfo->var_screeninfo.yoffset) * renderinfo->var_screeninfo.xres
-- + renderinfo->StartX + DRCSXSPC * col,
-+ + (renderinfo->StartY + renderinfo->fontheight + DRCSYSPC * row + renderinfo->var_screeninfo.yres - renderinfo->var_screeninfo.yoffset) * renderinfo->fix_screeninfo.line_length
-+ + (renderinfo->StartX + DRCSXSPC * col)*4,
- ax, tuxtxt_color_white, tuxtxt_color_black);
-
- memset(renderinfo->page_char + 40, 0xff, 24*40); /* don't render any char below row 0 */
-@@ -5062,13 +5101,13 @@
- renderinfo->pageinfo = p;
- renderinfo->boxed = p->boxed;
- }
-+ if (tuxtxt_cache.colortable) /* as late as possible to shorten the time the old page is displayed with the new colors */
-+ tuxtxt_setcolors(renderinfo,tuxtxt_cache.colortable, 16, 16); /* set colors for CLUTs 2+3 */
- if (renderinfo->boxed || renderinfo->transpmode)
- // tuxtxt_cache.FullScrColor = tuxtxt_color_transp;
- tuxtxt_FillBorder(renderinfo,tuxtxt_color_transp);
- else
- tuxtxt_FillBorder(renderinfo,tuxtxt_cache.FullScrColor);
-- if (tuxtxt_cache.colortable) /* as late as possible to shorten the time the old page is displayed with the new colors */
-- tuxtxt_setcolors(renderinfo,tuxtxt_cache.colortable, 16, 16); /* set colors for CLUTs 2+3 */
- }
- else
- startrow = 1;
-@@ -5408,39 +5447,6 @@
- renderinfo->page_atrb[i].doublew = 0;
- renderinfo->page_atrb[i].IgnoreAtBlackBgSubst = 0;
- }
-- if (setTVFormat)
-- {
-- /* open avs */
-- if ((renderinfo->avs = open(AVS, O_RDWR)) == -1)
-- {
-- perror("TuxTxt <open AVS>");
-- FTC_Manager_Done(renderinfo->manager);
-- FT_Done_FreeType(renderinfo->library);
-- return 0;
-- }
--
-- ioctl(renderinfo->avs, AVSIOGSCARTPIN8, &renderinfo->fnc_old);
-- ioctl(renderinfo->avs, AVSIOSSCARTPIN8, &fncmodes[renderinfo->screen_mode1]);
-- /* open saa */
-- if ((renderinfo->saa = open(SAA, O_RDWR)) == -1)
-- {
-- perror("TuxTxt <open SAA>");
-- FTC_Manager_Done(renderinfo->manager);
-- FT_Done_FreeType(renderinfo->library);
-- return 0;
-- }
--
-- ioctl(renderinfo->saa, SAAIOGWSS, &renderinfo->saa_old);
-- ioctl(renderinfo->saa, SAAIOSWSS, &saamodes[renderinfo->screen_mode1]);
-- }
-- /* open pig */
-- if ((renderinfo->pig = open(PIG, O_RDWR)) == -1)
-- {
-- perror("TuxTxt <open PIG>");
-- FTC_Manager_Done(renderinfo->manager);
-- FT_Done_FreeType(renderinfo->library);
-- return 0;
-- }
- return 1;
- }
- /******************************************************************************
-Index: libs/libtuxtxt/tuxtxt_def.h
-===================================================================
-RCS file: /cvs/tuxbox/apps/tuxbox/libs/libtuxtxt/tuxtxt_def.h,v
-retrieving revision 1.13
-diff -u -r1.13 tuxtxt_def.h
---- libs/libtuxtxt/tuxtxt_def.h 29 Jan 2009 20:12:59 -0000 1.13
-+++ libs/libtuxtxt/tuxtxt_def.h 29 Jan 2009 20:22:13 -0000
-@@ -72,8 +72,10 @@
- #define hold_mosaic 0x1E
- #define release_mosaic 0x1F
-
--const int fncmodes[] = {AVS_FNCOUT_EXT43, AVS_FNCOUT_EXT169};
--const int saamodes[] = {SAA_WSS_43F, SAA_WSS_169F};
-+extern unsigned char bgra[][4];
-+
-+const char * fncmodes[] = {"12", "6"};
-+const char * saamodes[] = {"4:3_full_format", "16:9_full_format"};
-
- typedef enum /* object type */
- {
+++ /dev/null
-AC_DEFUN(TUXBOX_APPS,[
-AM_CONFIG_HEADER(config.h)
-AM_MAINTAINER_MODE
-
-INSTALL="$INSTALL -p"
-
-AC_GNU_SOURCE
-AC_SYS_LARGEFILE
-
-AC_ARG_WITH(target,
- [ --with-target=TARGET target for compilation [[native,cdk]]],
- [TARGET="$withval"],[TARGET="native"])
-
-AC_ARG_WITH(targetprefix,
- [ --with-targetprefix=PATH prefix relative to target root (only applicable in cdk mode)],
- [targetprefix="$withval"],[targetprefix="NONE"])
-
-AC_ARG_WITH(debug,
- [ --without-debug disable debugging code],
- [DEBUG="$withval"],[DEBUG="yes"])
-
-if test "$DEBUG" = "yes"; then
- DEBUG_CFLAGS="-g3 -ggdb"
- AC_DEFINE(DEBUG,1,[Enable debug messages])
-fi
-
-AC_MSG_CHECKING(target)
-
-if test "$TARGET" = "native"; then
- AC_MSG_RESULT(native)
-
- if test "$CFLAGS" = "" -a "$CXXFLAGS" = ""; then
- CFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS"
- CXXFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS"
- fi
- if test "$prefix" = "NONE"; then
- prefix=/usr/local
- fi
- targetprefix=$prefix
-elif test "$TARGET" = "cdk"; then
- AC_MSG_RESULT(cdk)
-
- if test "$CC" = "" -a "$CXX" = ""; then
- CC=powerpc-tuxbox-linux-gnu-gcc CXX=powerpc-tuxbox-linux-gnu-g++
- fi
- if test "$CFLAGS" = "" -a "$CXXFLAGS" = ""; then
- CFLAGS="-Wall -Os -mcpu=823 -pipe $DEBUG_CFLAGS"
- CXXFLAGS="-Wall -Os -mcpu=823 -pipe $DEBUG_CFLAGS"
- fi
- if test "$prefix" = "NONE"; then
- AC_MSG_ERROR(invalid prefix, you need to specify one in cdk mode)
- fi
- if test "$targetprefix" = "NONE"; then
- targetprefix=""
- fi
- if test "$host_alias" = ""; then
- cross_compiling=yes
- host_alias=powerpc-tuxbox-linux-gnu
- fi
-else
- AC_MSG_RESULT(none)
- AC_MSG_ERROR([invalid target $TARGET, choose on from native,cdk]);
-fi
-
-AC_CANONICAL_BUILD
-AC_CANONICAL_HOST
-
-check_path () {
- return $(perl -e "if(\"$1\"=~m#^/usr/(local/)?bin#){print \"0\"}else{print \"1\";}")
-}
-
-])
-
-AC_DEFUN(TUXBOX_APPS_DIRECTORY_ONE,[
-AC_ARG_WITH($1,[ $6$7 [[PREFIX$4$5]]],[
- _$2=$withval
- if test "$TARGET" = "cdk"; then
- $2=`eval echo "${targetprefix}$withval"`
- else
- $2=$withval
- fi
-],[
- $2="\${$3}$5"
- if test "$TARGET" = "cdk"; then
- _$2=`eval echo "${target$3}$5"`
- else
- _$2=`eval echo "${$3}$5"`
- fi
-])
-
-dnl automake <= 1.6 don't support this
-dnl AC_SUBST($2)
-AC_DEFINE_UNQUOTED($2,"$_$2",$7)
-])
-
-AC_DEFUN(TUXBOX_APPS_DIRECTORY,[
-AC_REQUIRE([TUXBOX_APPS])
-
-if test "$TARGET" = "cdk"; then
- datadir="\${prefix}/share"
- sysconfdir="\${prefix}/etc"
- localstatedir="\${prefix}/var"
- libdir="\${prefix}/lib"
- targetdatadir="\${targetprefix}/share"
- targetsysconfdir="\${targetprefix}/etc"
- targetlocalstatedir="\${targetprefix}/var"
- targetlibdir="\${targetprefix}/lib"
-fi
-
-TUXBOX_APPS_DIRECTORY_ONE(configdir,CONFIGDIR,sysconfdir,/etc,/tuxbox,
- [--with-configdir=PATH ],[where to find the config files])
-
-TUXBOX_APPS_DIRECTORY_ONE(datadir,DATADIR,datadir,/share,/tuxbox,
- [--with-datadir=PATH ],[where to find data])
-
-TUXBOX_APPS_DIRECTORY_ONE(fontdir,FONTDIR,datadir,/share,/fonts,
- [--with-fontdir=PATH ],[where to find the fonts])
-
-TUXBOX_APPS_DIRECTORY_ONE(gamesdir,GAMESDIR,localstatedir,/etc,/tuxbox/games,
- [--with-gamesdir=PATH ],[where games data is stored])
-
-TUXBOX_APPS_DIRECTORY_ONE(libdir,LIBDIR,libdir,/lib,/tuxbox,
- [--with-libdir=PATH ],[where to find the internal libs])
-
-TUXBOX_APPS_DIRECTORY_ONE(plugindir,PLUGINDIR,libdir,/lib,/tuxbox/plugins,
- [--with-plugindir=PATH ],[where to find the plugins])
-
-TUXBOX_APPS_DIRECTORY_ONE(ucodedir,UCODEDIR,localstatedir,/var,/tuxbox/ucodes,
- [--with-ucodedir=PATH ],[where to find the ucodes])
-])
-
-dnl automake <= 1.6 needs this specifications
-AC_SUBST(CONFIGDIR)
-AC_SUBST(DATADIR)
-AC_SUBST(FONTDIR)
-AC_SUBST(GAMESDIR)
-AC_SUBST(LIBDIR)
-AC_SUBST(PLUGINDIR)
-AC_SUBST(UCODEDIR)
-dnl end workaround
-
-AC_DEFUN(TUXBOX_APPS_ENDIAN,[
-AC_CHECK_HEADERS(endian.h)
-AC_C_BIGENDIAN
-])
-
-AC_DEFUN(TUXBOX_APPS_DRIVER,[
-AC_ARG_WITH(driver,
- [ --with-driver=PATH path for driver sources [[NONE]]],
- [DRIVER="$withval"],[DRIVER=""])
-
-if test -d "$DRIVER/include"; then
- AC_DEFINE(HAVE_DBOX2_DRIVER,1,[Define to 1 if you have the dbox2 driver sources])
-#else
-# AC_MSG_ERROR([can't find driver sources])
-fi
-
-AC_SUBST(DRIVER)
-
-CPPFLAGS="$CPPFLAGS -I$DRIVER/include"
-])
-
-AC_DEFUN([TUXBOX_APPS_DVB],[
-AC_ARG_WITH(dvbincludes,
- [ --with-dvbincludes=PATH path for dvb includes [[NONE]]],
- [DVBINCLUDES="$withval"],[DVBINCLUDES=""])
-
-if test "$DVBINCLUDES"; then
- CPPFLAGS="$CPPFLAGS -I$DVBINCLUDES"
-fi
-
-AC_CHECK_HEADERS(ost/dmx.h,[
- DVB_API_VERSION=1
- AC_MSG_NOTICE([found dvb version 1])
-])
-
-if test -z "$DVB_API_VERSION"; then
-AC_CHECK_HEADERS(linux/dvb/version.h,[
- AC_LANG_PREPROC_REQUIRE()
- AC_REQUIRE([AC_PROG_EGREP])
- AC_LANG_CONFTEST([AC_LANG_SOURCE([[
-#include <linux/dvb/version.h>
-version DVB_API_VERSION
- ]])])
- DVB_API_VERSION=`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | $EGREP "^version" | sed "s,version\ ,,"`
- rm -f conftest*
-
- AC_MSG_NOTICE([found dvb version $DVB_API_VERSION])
-])
-fi
-
-if test "$DVB_API_VERSION"; then
- AC_DEFINE(HAVE_DVB,1,[Define to 1 if you have the dvb includes])
- AC_DEFINE_UNQUOTED(HAVE_DVB_API_VERSION,$DVB_API_VERSION,[Define to the version of the dvb api])
-else
- AC_MSG_ERROR([can't find dvb headers])
-fi
-])
-
-AC_DEFUN(_TUXBOX_APPS_LIB_CONFIG,[
-AC_PATH_PROG($1_CONFIG,$2,no)
-if test "$$1_CONFIG" != "no"; then
- if test "$TARGET" = "cdk" && check_path "$$1_CONFIG"; then
- AC_MSG_$3([could not find a suitable version of $2]);
- else
- $1_CFLAGS=$($$1_CONFIG --cflags)
- $1_LIBS=$($$1_CONFIG --libs)
- fi
-fi
-
-AC_SUBST($1_CFLAGS)
-AC_SUBST($1_LIBS)
-])
-
-AC_DEFUN(TUXBOX_APPS_LIB_CONFIG,[
-_TUXBOX_APPS_LIB_CONFIG($1,$2,ERROR)
-if test "$$1_CONFIG" = "no"; then
- AC_MSG_ERROR([could not find $2]);
-fi
-])
-
-AC_DEFUN(TUXBOX_APPS_LIB_CONFIG_CHECK,[
-_TUXBOX_APPS_LIB_CONFIG($1,$2,WARN)
-])
-
-AC_DEFUN(TUXBOX_APPS_PKGCONFIG,[
-AC_PATH_PROG(PKG_CONFIG, pkg-config,no)
-if test "$PKG_CONFIG" = "no" ; then
- AC_MSG_ERROR([could not find pkg-config]);
-fi
-])
-
-AC_DEFUN(_TUXBOX_APPS_LIB_PKGCONFIG,[
-AC_REQUIRE([TUXBOX_APPS_PKGCONFIG])
-PKG_CHECK_MODULES($1,$2)
-AC_SUBST($1_CFLAGS)
-AC_SUBST($1_LIBS)
-])
-
-AC_DEFUN(TUXBOX_APPS_LIB_PKGCONFIG,[
-_TUXBOX_APPS_LIB_PKGCONFIG($1,$2)
-if test -z "$$1_CFLAGS" ; then
- AC_MSG_ERROR([could not find package $2]);
-fi
-])
-
-AC_DEFUN(TUXBOX_APPS_LIB_PKGCONFIG_CHECK,[
-_TUXBOX_APPS_LIB_PKGCONFIG($1,$2)
-])
-
-AC_DEFUN(_TUXBOX_APPS_LIB_SYMBOL,[
-AC_CHECK_LIB($2,$3,HAVE_$1="yes",HAVE_$1="no")
-if test "$HAVE_$1" = "yes"; then
- $1_LIBS=-l$2
-fi
-
-AC_SUBST($1_LIBS)
-])
-
-AC_DEFUN(TUXBOX_APPS_LIB_SYMBOL,[
-_TUXBOX_APPS_LIB_SYMBOL($1,$2,$3,ERROR)
-if test "$HAVE_$1" = "no"; then
- AC_MSG_ERROR([could not find $2]);
-fi
-])
-
-AC_DEFUN(TUXBOX_APPS_LIB_CONFIG_SYMBOL,[
-_TUXBOX_APPS_LIB_SYMBOL($1,$2,$3,WARN)
-])
-
-AC_DEFUN(TUXBOX_APPS_GETTEXT,[
-AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
- [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
- (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
- :)
-AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-
-AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [$ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
- (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
- :)
-
-AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,[$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1],:)
-
-AC_MSG_CHECKING([whether NLS is requested])
-AC_ARG_ENABLE(nls,
- [ --disable-nls do not use Native Language Support],
- USE_NLS=$enableval, USE_NLS=yes)
-AC_MSG_RESULT($USE_NLS)
-AC_SUBST(USE_NLS)
-
-if test "$USE_NLS" = "yes"; then
- AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,[
- AC_TRY_LINK([
- #include <libintl.h>
- #ifndef __GNU_GETTEXT_SUPPORTED_REVISION
- #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
- #endif
- extern int _nl_msg_cat_cntr;
- extern int *_nl_domain_bindings;
- ],[
- bindtextdomain ("", "");
- return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings;
- ], gt_cv_func_gnugettext_libc=yes, gt_cv_func_gnugettext_libc=no
- )]
- )
-
- if test "$gt_cv_func_gnugettext_libc" = "yes"; then
- AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.])
- gt_use_preinstalled_gnugettext=yes
- else
- USE_NLS=no
- fi
-fi
-
-if test -f "$srcdir/po/LINGUAS"; then
- ALL_LINGUAS=$(sed -e "/^#/d" "$srcdir/po/LINGUAS")
-fi
-
-POFILES=
-GMOFILES=
-UPDATEPOFILES=
-DUMMYPOFILES=
-for lang in $ALL_LINGUAS; do
- POFILES="$POFILES $srcdirpre$lang.po"
- GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
- UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
- DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
-done
-INST_LINGUAS=
-if test -n "$ALL_LINGUAS"; then
- for presentlang in $ALL_LINGUAS; do
- useit=no
- if test -n "$LINGUAS"; then
- desiredlanguages="$LINGUAS"
- else
- desiredlanguages="$ALL_LINGUAS"
- fi
- for desiredlang in $desiredlanguages; do
- case "$desiredlang" in
- "$presentlang"*) useit=yes;;
- esac
- done
- if test $useit = yes; then
- INST_LINGUAS="$INST_LINGUAS $presentlang"
- fi
- done
-fi
-CATALOGS=
-if test -n "$INST_LINGUAS"; then
- for lang in $INST_LINGUAS; do
- CATALOGS="$CATALOGS $lang.gmo"
- done
-fi
-AC_SUBST(POFILES)
-AC_SUBST(GMOFILES)
-AC_SUBST(UPDATEPOFILES)
-AC_SUBST(DUMMYPOFILES)
-AC_SUBST(CATALOGS)
-])
-
-dnl backward compatiblity
-AC_DEFUN([AC_GNU_SOURCE],
-[AH_VERBATIM([_GNU_SOURCE],
-[/* Enable GNU extensions on systems that have them. */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif])dnl
-AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
-AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
-AC_DEFINE([_GNU_SOURCE])
-])
-
-AC_DEFUN([AC_PROG_EGREP],
-[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
- [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
- then ac_cv_prog_egrep='grep -E'
- else ac_cv_prog_egrep='egrep'
- fi])
- EGREP=$ac_cv_prog_egrep
- AC_SUBST([EGREP])
-])
-
+++ /dev/null
-diff -u libs/libtuxtxt_orig/libtuxtxt.c libs/libtuxtxt/libtuxtxt.c
---- libs/libtuxtxt_orig/libtuxtxt.c 2009-01-29 21:21:08.000000000 +0100
-+++ libs/libtuxtxt/libtuxtxt.c 2009-01-29 21:26:49.000000000 +0100
-@@ -65,6 +65,13 @@
- tuxtxt_cache.thread_id = 0;
- tuxtxt_cache.dmx = -1;
- pthread_mutex_unlock(&tuxtxt_control_lock);
-+
-+#if HAVE_DVB_API_VERSION < 3
-+ strcpy(tuxtxt_cache.demux, "/dev/dvb/card0/demux0");
-+#else
-+ strcpy(tuxtxt_cache.demux, "/dev/dvb/adapter0/demux0");
-+#endif
-+
- return 1;//tuxtxt_init_demuxer();
- }
-
-@@ -82,7 +89,7 @@
- pthread_mutex_unlock(&tuxtxt_control_lock);
- return res;
- }
--int tuxtxt_start(int tpid)
-+int tuxtxt_start(int tpid, int demux)
- {
- int ret = 1;
- pthread_mutex_lock(&tuxtxt_control_lock);
-@@ -92,10 +99,26 @@
- tuxtxt_clear_cache();
- tuxtxt_cache.page = 0x100;
- tuxtxt_cache.vtxtpid = tpid;
-+ if (demux >= 0)
-+ {
-+#if HAVE_DVB_API_VERSION < 3
-+ snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/card0/demux%d", demux);
-+#else
-+ snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/adapter0/demux%d", demux);
-+#endif
-+ }
- ret = tuxtxt_start_thread();
- }
- else if (!tuxtxt_cache.thread_starting && !tuxtxt_cache.receiving)
- {
-+ if (demux >= 0)
-+ {
-+#if HAVE_DVB_API_VERSION < 3
-+ snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/card0/demux%d", demux);
-+#else
-+ snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/adapter0/demux%d", demux);
-+#endif
-+ }
- ret = tuxtxt_start_thread();
- }
- pthread_mutex_unlock(&tuxtxt_control_lock);
-diff -u libs/libtuxtxt_orig/tuxtxt_common.h libs/libtuxtxt/tuxtxt_common.h
---- libs/libtuxtxt_orig/tuxtxt_common.h 2009-01-29 21:24:32.000000000 +0100
-+++ libs/libtuxtxt/tuxtxt_common.h 2009-01-29 21:26:49.000000000 +0100
-@@ -1751,9 +1751,9 @@
- if (tuxtxt_cache.dmx != -1)
- {
- ioctl(tuxtxt_cache.dmx, DMX_STOP);
--// close(tuxtxt_cache.dmx);
-- }
--// tuxtxt_cache.dmx = -1;
-+ close(tuxtxt_cache.dmx);
-+ }
-+ tuxtxt_cache.dmx = -1;
- #if 1//DEBUG
- printf("TuxTxt stopped service %x\n", tuxtxt_cache.vtxtpid);
- #endif
-diff -u libs/libtuxtxt_orig/tuxtxt_def.h libs/libtuxtxt/tuxtxt_def.h
---- libs/libtuxtxt_orig/tuxtxt_def.h 2009-01-29 21:19:23.000000000 +0100
-+++ libs/libtuxtxt/tuxtxt_def.h 2009-01-29 21:26:49.000000000 +0100
-@@ -19,12 +19,12 @@
- #define pes_type pesType
- #define dmx_sct_filter_params dmxSctFilterParams
- #include <ost/dmx.h>
-- #define DMX "/dev/dvb/card0/demux0"
- #else
- #include <linux/dvb/dmx.h>
-- #define DMX "/dev/dvb/adapter0/demux0"
- #endif
-
-+#define DMX tuxtxt_cache.demux
-+
- #include <ft2build.h>
- #include FT_FREETYPE_H
- #include FT_CACHE_H
-@@ -325,6 +325,7 @@
- short flofpages[0x900][FLOFSIZE];
- unsigned char adip[0x900][13];
- unsigned char subpagetable[0x900];
-+ char demux[64];
- int dmx;
- int vtxtpid;
- int cached_pages, page, subpage, pageupdate,page_receiving, current_page[9], current_subpage[9];
+++ /dev/null
-diff -u libs/libtuxtxt_orig/tuxtxt_common.h libs/libtuxtxt/tuxtxt_common.h
---- libs/libtuxtxt_orig/tuxtxt_common.h 2009-01-29 21:26:49.000000000 +0100
-+++ libs/libtuxtxt/tuxtxt_common.h 2009-01-29 21:28:12.000000000 +0100
-@@ -5501,7 +5501,7 @@
- FT_Done_FreeType(renderinfo->library);
- renderinfo->manager = 0;
- renderinfo->library = 0;
-- tuxtxt_ClearFB(renderinfo,renderinfo->previousbackcolor);
-+ memset(renderinfo->lfb, 0, renderinfo->fix_screeninfo.smem_len);
- /* unmap framebuffer */
- munmap(renderinfo->lfb, renderinfo->fix_screeninfo.smem_len);
- printf("[TTX] Rendering ended\n");
+++ /dev/null
---- ~/Makefile.am~ 2005-06-26 17:19:00.000000000 +0200
-+++ ~/Makefile.am 2008-09-03 19:59:00.000000000 +0200
-@@ -1,8 +1,5 @@
- AUTOMAKE_OPTIONS = gnu
-
- SUBDIRS = \
-- libavs \
-- liblcddisplay \
-- liblircdclient \
- libtuxtxt
-
+++ /dev/null
---- libs/libtuxtxt/tuxbox-tuxtxt.pc.in.orig 2008-12-13 19:40:25.000000000 +0100
-+++ libs/libtuxtxt/tuxbox-tuxtxt.pc.in 2008-12-13 19:40:35.000000000 +0100
-@@ -6,5 +6,5 @@
- Name: tuxbox-tuxtxt
- Description: tuxtxt
- Version: @VERSION@
--Libs: -L${libdir} -ltuxtxt @LIBTUXBOX_LIBS@ @FREETYPE_LIBS@
-+Libs: -L${libdir} -ltuxtxt @FREETYPE_LIBS@
- Cflags: -I${includedir} -I@DRIVER@/include
+++ /dev/null
-diff -u libs/libtuxtxt_orig/tuxtxt_common.h libs/libtuxtxt/tuxtxt_common.h
---- libs/libtuxtxt_orig/tuxtxt_common.h 2009-01-29 21:19:23.000000000 +0100
-+++ libs/libtuxtxt/tuxtxt_common.h 2009-01-29 21:24:32.000000000 +0100
-@@ -5375,15 +5375,6 @@
- ymosaic[0], ymosaic[1], ymosaic[2], renderinfo->StartX, renderinfo->StartY, renderinfo->ascender);
- #endif
-
-- /* get fixed screeninfo */
-- if (ioctl(renderinfo->fb, FBIOGET_FSCREENINFO, &renderinfo->fix_screeninfo) == -1)
-- {
-- perror("TuxTxt <FBIOGET_FSCREENINFO>");
-- FTC_Manager_Done(renderinfo->manager);
-- FT_Done_FreeType(renderinfo->library);
-- return 0;
-- }
--
- /* get variable screeninfo */
- if (ioctl(renderinfo->fb, FBIOGET_VSCREENINFO, &renderinfo->var_screeninfo) == -1)
- {
-@@ -5393,6 +5384,12 @@
- return 0;
- }
-
-+ /* change to PAL resolution */
-+ if (renderinfo->var_screeninfo.xres != 720)
-+ {
-+ renderinfo->var_screeninfo.xres_virtual = renderinfo->var_screeninfo.xres = 720;
-+ renderinfo->var_screeninfo.yres_virtual = renderinfo->var_screeninfo.yres = 576;
-+ }
-
- /* set variable screeninfo for double buffering */
- renderinfo->var_screeninfo.yres_virtual = 2*renderinfo->var_screeninfo.yres;
-@@ -5407,6 +5404,15 @@
- return 0;
- }
-
-+ /* get fixed screeninfo */
-+ if (ioctl(renderinfo->fb, FBIOGET_FSCREENINFO, &renderinfo->fix_screeninfo) == -1)
-+ {
-+ perror("TuxTxt <FBIOGET_FSCREENINFO>");
-+ FTC_Manager_Done(renderinfo->manager);
-+ FT_Done_FreeType(renderinfo->library);
-+ return 0;
-+ }
-+
- #if TUXTXT_DEBUG
- if (ioctl(fb, FBIOGET_VSCREENINFO, &renderinfo->var_screeninfo) == -1)
- {
+++ /dev/null
-DESCRIPTION = "libdvbsi++ by obi@saftware.de"
-DEPENDS = "dreambox-dvbincludes"
-MAINTAINER = "Felix Domke <tmbinc@elitdvb.net>"
-
-SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/dvb/libdvbsi++;method=ext"
-
-SRCDATE = "20081118"
-PR = "r0"
-PV = "0.0+cvs${SRCDATE}"
-
-S = "${WORKDIR}/libdvbsi++"
-
-inherit autotools pkgconfig
-
-do_stage_append() {
- oe_runmake install prefix=${STAGING_DIR} \
- bindir=${STAGING_BINDIR} \
- includedir=${STAGING_INCDIR} \
- libdir=${STAGING_LIBDIR} \
- datadir=${STAGING_DATADIR}
-}
-
-EXTRA_OECONF = "--with-target=native"
+++ /dev/null
-DESCRIPTION = "Tuxbox common files"
-LICENSE = "GPL"
-MAINTAINER = "Felix Domke <tmbinc@elitdvb.net>"
-
-PN = "tuxbox-common"
-PR = "r1"
-SRCDATE = "20090130"
-PV = "0.0+cvs${SRCDATE}"
-
-SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox/;module=cdk/root/share/tuxbox;method=ext;tag=dreambox;date=${SRCDATE} \
- http://dreamboxupdate.com/download/opendreambox/tuxbox-common-r11.tar.gz"
-
-FILES_${PN} = "/"
-
-S = "${WORKDIR}/tuxbox-common-r11"
-
-TRANSPONDER_LISTS = "satellites.xml terrestrial.xml"
-
-#enigma1 need a cables.xml
-TRANSPONDER_LISTS_append_dm7020 = " cables.xml"
-TRANSPONDER_LISTS_append_dm500plus = " cables.xml"
-TRANSPONDER_LISTS_append_dm600pvr = " cables.xml"
-
-do_install() {
- install -d ${D}/etc/init.d
- install -d ${D}/etc/rcS.d
- install -d ${D}/etc/tuxbox/
- install -d ${D}/usr/share/tuxbox
- install -m 0644 ${S}/scart.conf ${D}/etc/tuxbox/scart.conf
-
- install -m 0644 ${S}/timezone.xml ${D}/etc/tuxbox/timezone.xml
- ln -sf /etc/tuxbox/timezone.xml ${D}/etc/
-
- ln -sf /usr/share ${D}/share
-
- for i in ${TRANSPONDER_LISTS}; do
- install -m 0644 ${WORKDIR}/tuxbox/$i ${D}/etc/tuxbox/$i
- ln -sf /etc/tuxbox/$i ${D}/etc/;
- ln -sf /etc/tuxbox/$i ${D}/usr/share/;
- ln -sf /etc/tuxbox/$i ${D}/usr/share/tuxbox/;
- done;
-}
+++ /dev/null
-DESCRIPTION = "tuxbox libs"
-DEPENDS = "zlib dreambox-dvbincludes"
-MAINTAINER = "Felix Domke <tmbinc@elitdvb.net>"
-SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/misc/libs;method=ext \
- file://acinclude.m4 \
- file://fix_includes_gcc4.patch;patch=1"
-SRCDATE = "20040928"
-
-PR = "r2"
-
-PACKAGES_DYNAMIC = "libtuxbox-*"
-
-S = "${WORKDIR}/libs"
-
-EXTRA_OECONF = "--with-target=native"
-
-inherit autotools pkgconfig
-
-ALLOW_EMPTY = 1
-FILES_${PN} = ""
-FILES_${PN}-dev = "/usr/include/tuxbox"
-
-do_configure_prepend() {
- install ${WORKDIR}/acinclude.m4 ${S}/acinclude.m4
-}
-
-python populate_packages_prepend () {
- tuxbox_libdir = bb.data.expand('${libdir}', d)
-
- do_split_packages(d, tuxbox_libdir, '^libtuxbox-(.*)\.so.*$', 'libtuxbox-%s', 'libtuxbox-%s')
-# do_split_packages(d, tuxbox_libdir, '^libtuxbox-(.*)\.l?a$', 'libtuxbox-%s-dev', 'libtuxbox-%s (development files)')
-}
-
-do_stage() {
- install -d ${STAGING_INCDIR}/tuxbox
- install -d ${STAGING_INCDIR}/tuxbox/connection
- install -d ${STAGING_INCDIR}/tuxbox/xmltree
- install -d ${STAGING_INCDIR}/tuxbox/mpegtools
- install -m 0644 ${S}/libconfigfile/configfile.h ${STAGING_INCDIR}/tuxbox/
- install -m 0644 ${S}/libconnection/basicclient.h ${STAGING_INCDIR}/tuxbox/connection/
- install -m 0644 ${S}/libconnection/basicmessage.h ${STAGING_INCDIR}/tuxbox/connection/
- install -m 0644 ${S}/libconnection/basicserver.h ${STAGING_INCDIR}/tuxbox/connection/
- install -m 0644 ${S}/libconnection/basicsocket.h ${STAGING_INCDIR}/tuxbox/connection/
- install -m 0644 ${S}/libconnection/messagetools.h ${STAGING_INCDIR}/tuxbox/connection/
- install -m 0644 ${S}/libcramfs/libcramfs.h ${STAGING_INCDIR}/tuxbox/
- install -m 0644 ${S}/libeventserver/eventserver.h ${STAGING_INCDIR}/tuxbox/
- install -m 0644 ${S}/libmd5sum/libmd5sum.h ${STAGING_INCDIR}/tuxbox/
- install -m 0644 ${S}/libmpegtools/ctools.h ${STAGING_INCDIR}/tuxbox/mpegtools/
- install -m 0644 ${S}/libmpegtools/remux.h ${STAGING_INCDIR}/tuxbox/mpegtools/
- install -m 0644 ${S}/libmpegtools/ringbuffy.h ${STAGING_INCDIR}/tuxbox/mpegtools/
- install -m 0644 ${S}/libmpegtools/transform.h ${STAGING_INCDIR}/tuxbox/mpegtools/
- install -m 0644 ${S}/libnet/libnet.h ${STAGING_INCDIR}/tuxbox/
- install -m 0644 ${S}/libnet/network_interfaces.h ${STAGING_INCDIR}/tuxbox/
- install -m 0644 ${S}/libucodes/libucodes.h ${STAGING_INCDIR}/tuxbox/
- install -m 0644 ${S}/libxmltree/hashtab.h ${STAGING_INCDIR}/tuxbox/xmltree/
- install -m 0644 ${S}/libxmltree/xmlparse.h ${STAGING_INCDIR}/tuxbox/xmltree/
- install -m 0644 ${S}/libxmltree/xmlrole.h ${STAGING_INCDIR}/tuxbox/xmltree/
- install -m 0644 ${S}/libxmltree/xmltimpl.h ${STAGING_INCDIR}/tuxbox/xmltree/
- install -m 0644 ${S}/libxmltree/xmltok.h ${STAGING_INCDIR}/tuxbox/xmltree/
- install -m 0644 ${S}/libxmltree/xmltree.h ${STAGING_INCDIR}/tuxbox/xmltree/
-
- for d in configfile connection cramfs eventserver md5sum mpegtools net ucodes xmltree; do
- oe_libinstall -C lib$d -so libtuxbox-$d ${STAGING_LIBDIR}
- done;
-}
-
+++ /dev/null
-diff -auNr libs/libconnection/basicsocket.h libs-gcc4/libconnection/basicsocket.h
---- libs/libconnection/basicsocket.h 2003-02-24 22:14:15.000000000 +0100
-+++ libs-gcc4/libconnection/basicsocket.h 2008-12-15 06:56:25.000000000 +0100
-@@ -27,6 +27,7 @@
- #define __basicsocket__
-
- #include <sys/time.h>
-+#include <cstddef>
-
- bool send_data(int fd, const void * data, const size_t size, const timeval timeout);
- bool receive_data(int fd, void * data, const size_t size, const timeval timeout);
+++ /dev/null
-DESCRIPTION = "tuxbox libtuxbox"
-DEPENDS = "dreambox-dvbincludes"
-MAINTAINER = "Felix Domke <tmbinc@elitdvb.net>"
-SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/tuxbox/libtuxbox;method=ext \
- file://acinclude.m4"
-
-SRCDATE = "20040928"
-PN = "libtuxbox"
-PR = "r1"
-S = "${WORKDIR}/libtuxbox"
-EXTRA_OECONF = "--with-target=native"
-
-inherit autotools pkgconfig
-
-FILES_libtuxbox_append = " /usr/lib/libtuxbox.so"
-
-FILES_${PN}-dev = "/usr/lib/libtuxbox.la /usr/lib/libtuxbox.a \
- /usr/lib/pkgconfig/tuxbox.pc /usr/include/tuxbox.h"
-
-python populate_packages_prepend () {
- tuxbox_libdir = bb.data.expand('${libdir}', d)
-}
-
-do_configure_prepend() {
- install ${WORKDIR}/acinclude.m4 ${S}/acinclude.m4
-}
-
-do_stage() {
- install -m 0644 ${S}/tuxbox.h ${STAGING_INCDIR}
- oe_libinstall -so libtuxbox ${STAGING_LIBDIR}
-}
+++ /dev/null
-DESCRIPTION = "tuxbox libtuxtxt"
-DEPENDS = "dreambox-dvbincludes libpng freetype"
-MAINTAINER = "Felix Domke <tmbinc@elitdvb.net>"
-
-SRCDATE = "20090130"
-
-PN = "libtuxtxt"
-PV = "0.0+cvs${SRCDATE}"
-PR = "r0"
-
-SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/tuxbox/libs;method=ext \
- file://acinclude.m4 \
- file://ignorelibs.patch;patch=1 \
- file://nolibtuxbox.diff;patch=1"
-
-SRC_URI_append_dm7025 = " \
- file://32bpp.diff;patch=1 \
- file://resize_framebuffer.diff;patch=1 \
- file://allow_different_demux.diff;patch=1 \
- file://fastclear.diff;patch=1"
-
-SRC_URI_append_dm800 = " \
- file://32bpp.diff;patch=1 \
- file://resize_framebuffer.diff;patch=1 \
- file://allow_different_demux.diff;patch=1 \
- file://fastclear.diff;patch=1"
-
-SRC_URI_append_dm8000 = " \
- file://32bpp.diff;patch=1 \
- file://resize_framebuffer.diff;patch=1 \
- file://allow_different_demux.diff;patch=1 \
- file://fastclear.diff;patch=1"
-
-S = "${WORKDIR}/libs"
-EXTRA_OECONF = "--with-target=native"
-
-CFLAGS_append = " -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
-
-inherit autotools pkgconfig
-
-FILES_libtuxtxt_append = " /usr/lib/libtuxtxt.so"
-
-FILES_${PN}-dev = "/usr/lib/libtuxtxt.la /usr/lib/pkgconfig/tuxbox-tuxtxt.pc"
-
-python populate_packages_prepend () {
- tuxbox_libdir = bb.data.expand('${libdir}', d)
-}
-
-do_configure_prepend() {
- install ${WORKDIR}/acinclude.m4 ${S}/acinclude.m4
-}
-
-do_stage() {
- install -m 0644 ${S}/libtuxtxt/tuxtxt_*.h ${STAGING_INCDIR}
- install -d ${STAGING_INCDIR}/tuxtxt
- install -m 0644 ${S}/libtuxtxt/tuxtxt_*.h ${STAGING_INCDIR}/tuxtxt
- cd libtuxtxt
- oe_libinstall -so libtuxtxt ${STAGING_LIBDIR}
- cd ..
-}
-
-do_install_prepend() {
- cd libtuxtxt
-}
+++ /dev/null
-DEPENDS = "enigma"
-DESCRIPTION = "tuxbox plugins (enigma)"
-MAINTAINER = "Felix Domke <tmbinc@elitdvb.net>"
-
-SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/tuxbox/plugins;method=ext \
- file://disable_nonworking.diff;patch=1;pnum=1 \
- file://fix_config_path.diff;patch=1;pnum=1 \
- file://fix_install_weather_pics.diff;patch=1;pnum=1"
-
-SRCDATE = "20060112"
-PV = "0.0+cvs${SRCDATE}"
-PR = "r0"
-
-CFLAGS_append = " -I${STAGING_INCDIR}/enigma -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
-CXXFLAGS_append = " -I${STAGING_INCDIR}/enigma -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
-
-PACKAGES = "enigma-plugin-dreamdata enigma-plugin-dbswitch \
- enigma-plugin-ngrabstart enigma-plugin-ngrabstop enigma-plugin-getset \
- enigma-plugin-movieplayer enigma-plugin-script enigma-plugin-rss \
- enigma-plugin-weather enigma-plugin-demo"
-
-FILES_enigma-plugin-dreamdata = "/usr/lib/tuxbox/plugins/dreamdata.so /usr/lib/tuxbox/plugins/dreamdata.cfg \
- /etc/tuxbox/dreamdata.xml"
-FILES_enigma-plugin-dbswitch = "/usr/lib/tuxbox/plugins/dbswitch.so /usr/lib/tuxbox/plugins/dbswitch.cfg"
-FILES_enigma-plugin-ngrabstart = "/usr/lib/tuxbox/plugins/ngrabstart.so /usr/lib/tuxbox/plugins/ngrabstart.cfg"
-FILES_enigma-plugin-ngrabstop = "/usr/lib/tuxbox/plugins/ngrabstop.so /usr/lib/tuxbox/plugins/ngrabstop.cfg"
-FILES_enigma-plugin-getset = "/usr/lib/tuxbox/plugins/enigma_getset.so /usr/lib/tuxbox/plugins/enigma_getset.cfg"
-FILES_enigma-plugin-movieplayer = "/usr/lib/tuxbox/plugins/movieplayer.so /usr/lib/tuxbox/plugins/movieplayer.cfg"
-FILES_enigma-plugin-script = "/usr/lib/tuxbox/plugins/script.so /usr/lib/tuxbox/plugins/script.cfg"
-FILES_enigma-plugin-rss = "/usr/lib/tuxbox/plugins/rss.so /usr/lib/tuxbox/plugins/rss.cfg \
- /etc/tuxbox/feeds.xml"
-FILES_enigma-plugin-weather = "/usr/lib/tuxbox/plugins/weather.so /usr/lib/tuxbox/plugins/weather.cfg \
- /etc/tuxbox/weather.xml /usr/share/tuxbox/weather/*.png"
-FILES_enigma-plugin-demo = "/usr/lib/tuxbox/plugins/enigma_demo.so /usr/lib/tuxbox/plugins/enigma_demo.cfg"
-
-S = "${WORKDIR}/plugins"
-
-inherit autotools pkgconfig
-
-bindir = "/usr/bin"
-sbindir = "/usr/sbin"
-
-EXTRA_OECONF = "--with-target=native --with-boxtype=dm7020"
+++ /dev/null
-diff -Naur plugins/configure.ac plugins_patched/configure.ac
---- plugins/configure.ac 2005-06-28 15:20:19.000000000 +0200
-+++ plugins_patched/configure.ac 2005-06-28 16:18:42.437757664 +0200
-@@ -23,7 +23,7 @@
- TUXBOX_APPS_LIB_CONFIG(FREETYPE,freetype-config)
- TUXBOX_APPS_LIB_PKGCONFIG(PNG,libpng)
- TUXBOX_APPS_LIB_PKGCONFIG(SIGC,sigc++-1.2)
--TUXBOX_APPS_LIB_PKGCONFIG(TUXBOX,tuxbox)
-+#TUXBOX_APPS_LIB_PKGCONFIG(TUXBOX,tuxbox)
- TUXBOX_APPS_LIB_PKGCONFIG(XMLTREE,tuxbox-xmltree)
- TUXBOX_APPS_LIB_PKGCONFIG(CONFIGFILE,tuxbox-configfile)
- #TUXBOX_APPS_LIB_PKGCONFIG(TUXTXT,tuxbox-tuxtxt)
+++ /dev/null
-diff -Naur plugins_org/Makefile.am plugins/Makefile.am
---- plugins_org/Makefile.am 2005-11-19 21:55:18.000000000 +0100
-+++ plugins/Makefile.am 2006-01-12 01:26:06.000000000 +0100
-@@ -1,7 +1,7 @@
- AUTOMAKE_OPTIONS = gnu
-
- SUBDIRS = \
-- include tuxmail tuxtxt tuxcom fx2 vncviewer enigma
-+ enigma
-
- pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = \
-diff -Naur plugins_org/enigma/Makefile.am plugins/enigma/Makefile.am
---- plugins_org/enigma/Makefile.am 2005-11-19 19:31:51.000000000 +0100
-+++ plugins/enigma/Makefile.am 2006-01-12 01:26:20.000000000 +0100
-@@ -1,2 +1,2 @@
--SUBDIRS = demo dreamdata ngrabstart ngrabstop dslconnect dsldisconnect rss script weather dbswitch getset dreamflash movieplayer
-+SUBDIRS = demo dreamdata ngrabstart ngrabstop dslconnect dsldisconnect rss script weather dbswitch getset movieplayer
-
+++ /dev/null
-diff -Naur plugins_org/enigma/rss/rss.cpp plugins/enigma/rss/rss.cpp
---- plugins/enigma/rss/rss.cpp 2006-01-11 16:59:35.000000000 +0100
-+++ plugins/enigma/rss/rss.cpp 2006-01-11 17:00:55.000000000 +0100
-@@ -82,8 +82,7 @@
-
- setFocus(theList);
-
-- if (!theConfigParser.parse("/var/tuxbox/config/feeds.xml"))
-- theConfigParser.parse(CONFIGDIR"/feeds.xml");
-+ theConfigParser.parse(CONFIGDIR"/feeds.xml");
-
- theRssFeed = new rssFeed();
- theRssFeed->hide();
+++ /dev/null
-diff -Naur plugins_org/enigma/weather/icons/Makefile.am plugins/enigma/weather/icons/Makefile.am
---- plugins_org/enigma/weather/icons/Makefile.am 2005-09-21 08:30:19.000000000 +0200
-+++ plugins/enigma/weather/icons/Makefile.am 2006-01-12 02:27:27.000000000 +0100
-@@ -1,6 +1,6 @@
--installdir = $(DESTDIR)$(DATADIR)/weather
-+install-exec-local:
-+ install -d $(DESTDIR)$(DATADIR)/weather
-+ install -m 0644 *.png $(DESTDIR)$(DATADIR)/weather
-
--install_DATA = \
-- 1.png 4.png 5.png 7.png 8.png 10.png 11.png 12.png 13.png 14.png 15.png \
-- 16.png 18.png 19.png 20.png 21.png 23.png 25.png 26.png 28.png 30.png \
-- 32.png 36.png 37.png 38.png 39.png 43.png unknown.png
-+uninstall-local:
-+ -rm -R $(DESTDIR)$(DATADIR)/weather
+++ /dev/null
-DEPENDS = "curl libpng freetype dreambox-dvbincludes libsigc++-1.2 libtuxtxt tuxbox-libs"
-DESCRIPTION = "tuxbox plugins"
-MAINTAINER = "Felix Domke <tmbinc@elitdvb.net>"
-
-SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/tuxbox/plugins;method=ext \
- file://disable_nonworking.diff;patch=1;pnum=1 \
- file://tuxtxt_include_fix.patch;patch=1;pnum=1 \
- file://game_names.diff;patch=1;pnum=1"
-
-SRCDATE = "20061009"
-PV = "0.0+cvs${SRCDATE}"
-PR = "r0"
-
-CFLAGS_append = " -DOE"
-CFLAGS_append_dm7020 = " -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
-CFLAGS_append_dm600pvr = " -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
-CFLAGS_append_dm500plus = " -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
-CXXFLAGS_append = " -DOE"
-CXXFLAGS_append_dm7020 = " -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
-CXXFLAGS_append_dm600pvr = " -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
-CXXFLAGS_append_dm500plus = " -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
-
-PACKAGES = "tuxbox-plugins-dev tuxbox-plugin-tuxtxt tuxbox-plugin-tuxmail \
- tuxbox-plugin-tuxcom tuxbox-plugin-mines tuxbox-plugin-pacman \
- tuxbox-plugin-tetris tuxbox-plugin-snake tuxbox-plugin-yahtzee \
- tuxbox-plugin-master tuxbox-plugin-tank tuxbox-plugin-lemmings \
- tuxbox-plugin-lcdcirc tuxbox-plugin-satfind tuxbox-plugin-vierg \
- tuxbox-plugin-soko tuxbox-plugin-solitair tuxbox-plugin-sol \
- tuxbox-plugin-fx2 tuxbox-plugin-vnc"
-
-FILES_tuxbox-plugin-tuxtxt = "/usr/lib/tuxbox/plugins/tuxtxt.so /usr/lib/tuxbox/plugins/tuxtxt.cfg \
- /usr/share/fonts/tuxtxt.ttf /usr/share/fonts/tuxtxt.otb /etc/tuxbox/tuxtxt"
-FILES_tuxbox-plugin-tuxmail = "/usr/lib/tuxbox/plugins/tuxmail.so /usr/lib/tuxbox/plugins/tuxmail.cfg \
- /etc/tuxbox/tuxmail/tuxmail.conf /usr/bin/tuxmaild /etc/init.d/tuxmail"
-FILES_tuxbox-plugin-tuxcom = "/usr/lib/tuxbox/plugins/tuxcom.so /usr/lib/tuxbox/plugins/tuxcom.cfg"
-FILES_tuxbox-plugin-mines = "/usr/lib/tuxbox/plugins/mines.so /usr/lib/tuxbox/plugins/mines.cfg"
-FILES_tuxbox-plugin-pacman = "/usr/lib/tuxbox/plugins/pacman.so /usr/lib/tuxbox/plugins/pacman.cfg"
-FILES_tuxbox-plugin-tetris = "/usr/lib/tuxbox/plugins/tetris.so /usr/lib/tuxbox/plugins/tetris.cfg"
-FILES_tuxbox-plugin-snake = "/usr/lib/tuxbox/plugins/snake.so /usr/lib/tuxbox/plugins/snake.cfg"
-FILES_tuxbox-plugin-yahtzee = "/usr/lib/tuxbox/plugins/yahtzee.so /usr/lib/tuxbox/plugins/yahtzee.cfg"
-FILES_tuxbox-plugin-master = "/usr/lib/tuxbox/plugins/master.so /usr/lib/tuxbox/plugins/master.cfg"
-FILES_tuxbox-plugin-tank = "/usr/lib/tuxbox/plugins/tank.so /usr/lib/tuxbox/plugins/tank.cfg"
-FILES_tuxbox-plugin-lemmings = "/usr/lib/tuxbox/plugins/lemmings.so /usr/lib/tuxbox/plugins/lemmings.cfg"
-FILES_tuxbox-plugin-lcdcirc = "/usr/lib/tuxbox/plugins/lcdcirc.so /usr/lib/tuxbox/plugins/lcdcirc.cfg"
-FILES_tuxbox-plugin-satfind = "/usr/lib/tuxbox/plugins/satfind.so /usr/lib/tuxbox/plugins/satfind.cfg"
-FILES_tuxbox-plugin-vierg = "/usr/lib/tuxbox/plugins/vierg.so /usr/lib/tuxbox/plugins/vierg.cfg"
-FILES_tuxbox-plugin-soko = "/usr/lib/tuxbox/plugins/soko.so /usr/lib/tuxbox/plugins/soko.cfg \
- /usr/share/tuxbox/sokoban/1.xsb /usr/share/tuxbox/sokoban/11.xsb /usr/share/tuxbox/sokoban/7.xsb \
- /usr/share/tuxbox/sokoban/8.xsb /usr/share/tuxbox/sokoban/albe-01.xsb /usr/share/tuxbox/sokoban/albe-02.xsb \
- /usr/share/tuxbox/sokoban/albe-03.xsb /usr/share/tuxbox/sokoban/albe-04.xsb /usr/share/tuxbox/sokoban/albe-05.xsb \
- /usr/share/tuxbox/sokoban/albe-06.xsb /usr/share/tuxbox/sokoban/albe-07.xsb /usr/share/tuxbox/sokoban/albe-08.xsb \
- /usr/share/tuxbox/sokoban/albe-09.xsb /usr/share/tuxbox/sokoban/albe-10.xsb /usr/share/tuxbox/sokoban/albe-12.xsb \
- /usr/share/tuxbox/sokoban/albe-13.xsb"
-FILES_tuxbox-plugin-solitair = "/usr/lib/tuxbox/plugins/solitair.so /usr/lib/tuxbox/plugins/solitair.cfg"
-FILES_tuxbox-plugin-sol = "/usr/lib/tuxbox/plugins/sol.so /usr/lib/tuxbox/plugins/sol.cfg"
-FILES_tuxbox-plugin-fx2 = "/usr/lib/tuxbox/plugins/libfx2.so"
-FILES_tuxbox-plugin-vnc = "/usr/lib/tuxbox/plugins/vnc.so /usr/lib/tuxbox/plugins/vnc.cfg /etc/tuxbox/vnc.conf"
-
-S = "${WORKDIR}/plugins"
-
-inherit autotools pkgconfig
-
-bindir = "/usr/bin"
-sbindir = "/usr/sbin"
-
-EXTRA_OECONF = "--with-target=native"
-EXTRA_OECONF_append_dm7020 = " --with-boxtype=dm7020"
-# checkme!
-EXTRA_OECONF_append_dm600pvr = " --with-boxtype=dm7020"
-EXTRA_OECONF_append_dm500plus = " --with-boxtype=dm7020"
-
-do_install_append() {
- install -d ${D}/etc/tuxbox/tuxtxt/
- install -d ${D}/etc/init.d/
- install ${S}/tuxmail/daemon/tuxmail ${D}/etc/init.d
-}
-
-do_stage() {
- install -d ${STAGING_INCDIR}/tuxbox
- install -m 0644 ${S}/include/plugin.h ${STAGING_INCDIR}/tuxbox/
-}
+++ /dev/null
-diff -Naur plugins/configure.ac plugins_patched/configure.ac
---- plugins/configure.ac 2005-06-28 15:20:19.000000000 +0200
-+++ plugins_patched/configure.ac 2005-06-28 16:18:42.437757664 +0200
-@@ -23,7 +23,7 @@
- TUXBOX_APPS_LIB_CONFIG(FREETYPE,freetype-config)
- TUXBOX_APPS_LIB_PKGCONFIG(PNG,libpng)
- TUXBOX_APPS_LIB_PKGCONFIG(SIGC,sigc++-1.2)
--TUXBOX_APPS_LIB_PKGCONFIG(TUXBOX,tuxbox)
-+#TUXBOX_APPS_LIB_PKGCONFIG(TUXBOX,tuxbox)
- TUXBOX_APPS_LIB_PKGCONFIG(XMLTREE,tuxbox-xmltree)
- TUXBOX_APPS_LIB_PKGCONFIG(CONFIGFILE,tuxbox-configfile)
- #TUXBOX_APPS_LIB_PKGCONFIG(TUXTXT,tuxbox-tuxtxt)
+++ /dev/null
-diff -Naur plugins_org/Makefile.am plugins/Makefile.am
---- plugins_org/Makefile.am 2005-11-19 21:55:18.000000000 +0100
-+++ plugins/Makefile.am 2006-01-12 01:24:26.000000000 +0100
-@@ -1,7 +1,7 @@
- AUTOMAKE_OPTIONS = gnu
-
- SUBDIRS = \
-- include tuxmail tuxtxt tuxcom tuxcal fx2 vncviewer enigma
-+ include tuxmail tuxtxt tuxcom tuxcal fx2 vncviewer
-
- pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = \
+++ /dev/null
-diff -Naur a/fx2/master/master.cfg b/fx2/master/master.cfg
---- a/fx2/master/master.cfg 2004-07-11 12:23:21.000000000 +0200
-+++ b/fx2/master/master.cfg 2005-01-17 13:08:39.000000000 +0100
-@@ -1,4 +1,4 @@
--name=Mastermind
-+name=Mindmaster
- desc=food for brain
- type=1
- needfb=1
-diff -Naur a/fx2/mines/mines.cfg b/fx2/mines/mines.cfg
---- a/fx2/mines/mines.cfg 2004-07-11 12:23:21.000000000 +0200
-+++ b/fx2/mines/mines.cfg 2005-01-17 13:09:35.000000000 +0100
-@@ -1,5 +1,5 @@
--name=Minesweeper
--desc=classic minesweeper
-+name=Sweepminer
-+desc=classic Sweepminer
- type=1
- needfb=1
- needrc=1
-diff -Naur a/fx2/pac/pacman.cfg b/fx2/pac/pacman.cfg
---- a/fx2/pac/pacman.cfg 2001-11-08 15:47:45.000000000 +0100
-+++ b/fx2/pac/pacman.cfg 2005-01-17 13:10:12.000000000 +0100
-@@ -1,6 +1,6 @@
- pluginversion=1
--name=Pacman
--desc=The good old pacman in new dboxII generation
-+name=Paccer
-+desc=The good old paccer
- depend=libfx2.so
- type=1
- needfb=1
-diff -Naur a/fx2/sokoban/soko.cfg b/fx2/sokoban/soko.cfg
---- a/fx2/sokoban/soko.cfg 2005-01-17 13:19:02.000000000 +0100
-+++ b/fx2/sokoban/soko.cfg 2005-01-17 13:19:16.000000000 +0100
-@@ -1,4 +1,4 @@
--name=Sokoban
-+name=Zokoban
- desc=Push it, baby!
- type=1
- needfb=1
-diff -Naur a/fx2/solitair/solitair.cfg b/fx2/solitair/solitair.cfg
---- a/fx2/solitair/solitair.cfg 2003-08-25 15:56:57.000000000 +0200
-+++ b/fx2/solitair/solitair.cfg 2005-01-17 13:12:16.000000000 +0100
-@@ -1,5 +1,5 @@
- pluginversion=1
--name=Solitair
-+name=Solitaer
- desc=a card game
- depend=libfx2.so
- type=1
-diff -Naur a/fx2/tank/tank.cfg b/fx2/tank/tank.cfg
---- a/fx2/tank/tank.cfg 2005-01-17 13:20:11.000000000 +0100
-+++ b/fx2/tank/tank.cfg 2005-01-17 13:20:46.000000000 +0100
-@@ -1,4 +1,4 @@
--name=TankWars
-+name=WarTank
- desc=stay cool
- depend=libfx2.so
- type=1
-diff -Naur a/fx2/tetris/tetris.cfg b/fx2/tetris/tetris.cfg
---- a/fx2/tetris/tetris.cfg 2004-07-11 12:23:22.000000000 +0200
-+++ b/fx2/tetris/tetris.cfg 2005-01-17 13:12:46.000000000 +0100
-@@ -1,6 +1,6 @@
- pluginversion=1
--name=Tetris
--desc=i break together - tetris :)
-+name=Blocktris
-+desc=i break together - blocktris :)
- type=1
- needfb=1
- needrc=1
-diff -Naur a/fx2/yahtzee/yahtzee.cfg b/fx2/yahtzee/yahtzee.cfg
---- a/fx2/yahtzee/yahtzee.cfg 2005-01-17 13:20:20.000000000 +0100
-+++ b/fx2/yahtzee/yahtzee.cfg 2005-01-17 13:20:37.000000000 +0100
-@@ -1,5 +1,5 @@
- pluginversion=1
--name=Yahtzee
-+name=Yahtzea
- desc=a game for 1-4 player
- depend=libfx2.so
- type=1
+++ /dev/null
-diff -Naur tuxtxt/Makefile.am tuxtxt_patched/Makefile.am
---- a/tuxtxt/Makefile.am 2006-10-05 13:17:15.000000000 +0200
-+++ b/tuxtxt/Makefile.am 2007-02-07 22:59:43.000000000 +0100
-@@ -4,7 +4,7 @@
- AM_CPPFLAGS = \
- @FREETYPE_CFLAGS@ \
- -I$(top_srcdir)/include \
-- -I$(includedir)/tuxbox/tuxtxt
-+ -I$(prefix)/$(includedir)/tuxbox/tuxtxt
-
- tuxtxt_la_LIBADD = \
- @FREETYPE_LIBS@ \
+++ /dev/null
-DEPENDS = "dreambox-dvbincludes tuxbox-libs"
-RDEPENDS = "libtuxbox-mpegtools0"
-DESCRIPTION = "tuxbox net streaming tools"
-MAINTAINER = "Felix Domke <tmbinc@elitdvb.net>"
-
-SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/dvb/tools/stream;method=ext \
- file://acinclude.m4 \
- file://enable_transform.diff;patch=1;pnum=1 \
- file://add_configfiles.diff;patch=1;pnum=1"
-
-SRCDATE = "20050802"
-S = "${WORKDIR}/stream"
-PV = "1.0+${SRCDATE}"
-PR = "r1"
-
-inherit autotools pkgconfig
-
-bindir = "/usr/bin"
-sbindir = "/usr/sbin"
-
-EXTRA_OECONF = "--with-target=native --with-boxtype=${MACHINE}"
-
-CFLAGS_append = " -DHAVE_DREAMBOX_HARDWARE"
-
-do_configure_prepend() {
- install ${WORKDIR}/acinclude.m4 ${S}/acinclude.m4
-}
-
-do_install_append() {
- ln -s streampes ${D}/usr/sbin/streames
-}
+++ /dev/null
-diff -Naur stream/AUTHORS stream_configure/AUTHORS
---- stream/AUTHORS 1970-01-01 01:00:00.000000000 +0100
-+++ stream_configure/AUTHORS 2004-09-17 17:47:12.000000000 +0200
-@@ -0,0 +1,22 @@
-+In order of appearance in cvs:
-+------------------------------------------------
-+Felix Domke <tmbinc@berlios.de>
-+Andreas Oberritter <obi@berlios.de>
-+Steffen Hehn <mcclean@berlios.de>
-+Andreas Monzner <ghostrider@berlios.de>
-+Florian Roks <trh@berlios.de>
-+Ronny Strutz <tripledes@berlios.de>
-+Bastian Blank <waldi@berlios.de>
-+Henning Heinold <woglinde@berlios.de>
-+Rainer Scherg <rasc@berlios.de>
-+Steffen Buehl <shadow@berlios.de>
-+Wolfram Joost <wjoost@berlios.de>
-+Thomas Herold <dertom@berlios.de>
-+Stefan Pluecken <thedoc@berlios.de>
-+Florian Schirmer <jolt@berlios.de>
-+Christoph Ketzler <chkdesign@berlios.de>
-+Bernhard Roth <bernroth@berlios.de>
-+
-+Also many thanks to everyone who supported development
-+without having cvs write access
-+
-diff -Naur stream/configure.ac stream_configure/configure.ac
---- stream/configure.ac 1970-01-01 01:00:00.000000000 +0100
-+++ stream_configure/configure.ac 2004-11-16 00:13:26.000000000 +0100
-@@ -0,0 +1,25 @@
-+AC_INIT([tuxbox-stream],[1.0.0],[obi@tuxbox.org])
-+AM_INIT_AUTOMAKE([dist-bzip2 no-define])
-+
-+TUXBOX_APPS
-+TUXBOX_APPS_DIRECTORYY
-+
-+AC_PROG_CC
-+AC_PROG_LIBTOOL
-+AC_PROG_RANLIB
-+
-+TUXBOX_APPS_DVB
-+TUXBOX_APPS_DRIVER
-+
-+TUXBOX_APPS_LIB_PKGCONFIG(MPEGTOOLS,tuxbox-mpegtools)
-+
-+AC_ARG_WITH(boxtype,
-+ [ --with-boxtype=NAME dreambox/dbox2 [[dbox2,dreambox]]],
-+ [BOXTYPE="$withval"],[BOXTYPE="dbox2"])
-+AC_SUBST(BOXTYPE)
-+AM_CONDITIONAL(BOXTYPE_DREAMBOX,test "$BOXTYPE" != "dbox2")
-+AM_CONDITIONAL(BOXTYPE_DBOX2,test "$BOXTYPE" = "dbox2")
-+
-+AC_OUTPUT([
-+Makefile
-+])
+++ /dev/null
-diff -Naur stream/Makefile.am stream_patched/Makefile.am
---- stream/Makefile.am 2005-06-01 17:20:04.000000000 +0200
-+++ stream_patched/Makefile.am 2005-08-08 14:03:02.000000000 +0200
-@@ -2,6 +2,8 @@
- sbin_PROGRAMS = streampes streamts streamsec udpstreamts udpstreampes
- udpstreampes_LDADD = -lpthread
- udpstreampes_SOURCES = udpstreampes.cpp
-+INCLUDES = @MPEGTOOLS_CFLAGS@
-+streamts_LDADD = @MPEGTOOLS_LIBS@
- else
- sbin_PROGRAMS = streampes streamts streamsec udpstreamts streamfile fserver
- INCLUDES = @MPEGTOOLS_CFLAGS@
-diff -Naur stream/streamts.c stream_patched/streamts.c
---- stream/streamts.c 2005-08-02 23:32:31.000000000 +0200
-+++ stream_patched/streamts.c 2005-08-08 17:02:14.000000000 +0200
-@@ -57,7 +57,7 @@
- #ifdef HAVE_DREAMBOX_HARDWARE
- #define DMXDEV "/dev/dvb/card0/demux1"
- #define DVRDEV "/dev/dvb/card0/dvr1"
-- #undef TRANSFORM
-+ #define TRANSFORM
- #else
- #define DMXDEV "/dev/dvb/card0/demux0"
- #define DMXDEV "/dev/dvb/card0/dvr0"
+++ /dev/null
-DEPENDS = "freetype"
-DESCRIPTION = "TuxCom for dreambox 8000/32bit framebuffer"
-MAINTAINER = "Sven Karschewski <seddi@i-have-a-dreambox.com>"
-
-SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/tuxbox/plugins/tuxcom;method=ext \
- file://makefiles.diff;patch=1;pnum=1 \
- file://add_font.diff;patch=1;pnum=1 \
- file://32bpp.diff;patch=1;pnum=1 \
- file://add_e2_plugin.diff;patch=1;pnum=1 \
- file://add_advanced_rc.diff;patch=1;pnum=1 \
- file://support_newer_freetype.patch;patch=1;pnum=1"
-
-SRCDATE = "20060123"
-PV = "0.0+cvs${SRCDATE}"
-PR = "r0"
-
-PACKAGES = "${PN}-dbg ${PN}"
-
-S = "${WORKDIR}/tuxcom"
-
-CFLAGS_append = " -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
-
-inherit autotools pkgconfig
-
-bindir = "/usr/bin"
-sbindir = "/usr/sbin"
-
-EXTRA_OECONF = "--with-target=native"
-
-do_configure_prepend() {
- touch ${S}/python/__init__.py
-}
-
-do_install() {
- install -d ${D}/etc/tuxcom
- install -d ${D}/usr/plugins
- install -d ${D}/usr/share/fonts
- install -d ${D}/usr/lib/enigma2/python/Plugins/Extensions/Tuxcom
-
- install -m 0755 ${S}/tuxcom ${D}/usr/plugins/tuxcom
- install -m 0644 ${S}/tuxcom.cfg ${D}/etc/tuxcom/tuxcom.cfg
- install -m 0644 ${S}/font/pakenham.ttf ${D}/usr/share/fonts/pakenham.ttf
- install -m 0644 ${S}/python/__init__.py ${D}/usr/lib/enigma2/python/Plugins/Extensions/Tuxcom/__init__.py
- install -m 0644 ${S}/python/plugin.py ${D}/usr/lib/enigma2/python/Plugins/Extensions/Tuxcom/plugin.py
-}
-
-FILES_${PN}-dbg ="/usr/plugins/.debug"
-FILES_${PN} = "/etc/tuxcom/tuxcom.cfg /usr/plugins/tuxcom /usr/share/fonts/pakenham.ttf /usr/lib/enigma2/python/Plugins/Extensions/Tuxcom/__init__.py \
- /usr/lib/enigma2/python/Plugins/Extensions/Tuxcom/plugin.py"
+++ /dev/null
-diff -u tuxcom_cvs/tuxcom.c tuxcom/tuxcom.c
---- tuxcom_cvs/tuxcom.c 2008-11-03 13:15:00.000000000 +0100
-+++ tuxcom/tuxcom.c 2006-06-29 23:44:21.000000000 +0200
-@@ -27,7 +27,7 @@
- * GetRCCode (Code from Tuxmail)
- ******************************************************************************/
-
--#ifndef HAVE_DREAMBOX_HARDWARE
-+
-
- int GetRCCode(int mode)
- {
-@@ -63,9 +63,9 @@
- case KEY_GREEN: rccode = RC_GREEN; break;
- case KEY_YELLOW: rccode = RC_YELLOW; break;
- case KEY_BLUE: rccode = RC_BLUE; break;
-- case KEY_HELP: rccode = RC_HELP; break;
-- case KEY_SETUP: rccode = RC_DBOX; break;
-- case KEY_HOME: rccode = RC_HOME; break;
-+ case KEY_INFO: rccode = RC_HELP; break;
-+ case KEY_MENU: rccode = RC_DBOX; break;
-+ case KEY_EXIT: rccode = RC_HOME; break;
- case KEY_POWER: rccode = RC_STANDBY; break;
- default:
- if( ev.code > 0x7F )
-@@ -118,176 +118,94 @@
- }
- }
-
-- rccode = -1;
-- usleep(1000000/100);
-- return 0;
--}
--
--#else
--
--int GetRCCode(int mode)
--{
-- static int count = 0;
-- //get code
-- static unsigned short LastKey = -1;
-- static char LastKBCode = 0x00;
-- rccode = -1;
-- int bytesavail = 0;
-- int bytesread = read(rc, &rccode, 2);
-- unsigned short tmprc;
-- kbcode = 0;
--
-- if (bytesread == 2)
-- {
-- if (read(rc, &tmprc, 2) == 2)
-- {
-- if (rccode == tmprc && count >= 0)
-- count++;
-- }
-- }
--
--
-- // Tastaturabfrage
-- ioctl(kb, FIONREAD, &bytesavail);
-- if (bytesavail>0)
-- {
-- char tch[100];
-- if (bytesavail > 99) bytesavail = 99;
-- read(kb,tch,bytesavail);
-- tch[bytesavail] = 0x00;
-- kbcode = tch[0];
-- LastKBCode = kbcode;
-- if (bytesavail == 1 && kbcode == 0x1b) { LastKey = RC_HOME ; rccode = -1 ; count = -1; return 1;} // ESC-Taste
-- if (bytesavail == 1 && kbcode == '\n') { LastKey = RC_OK ; rccode = -1 ; count = -1; return 1;} // Enter-Taste
-- if (bytesavail == 1 && kbcode == '+' ) { LastKey = RC_PLUS ; rccode = -1 ; count = -1; return 1;}
-- if (bytesavail == 1 && kbcode == '-' ) { LastKey = RC_MINUS; rccode = -1 ; count = -1; return 1;}
-- if (bytesavail >= 3 && tch[0] == 0x1b && tch[1] == 0x5b)
-- {
-- if (tch[2] == 0x41 ) { kbcode = LastKBCode = 0x00; rccode = RC_UP ; LastKey = rccode; count = -1; return 1; }// Cursortasten
-- if (tch[2] == 0x42 ) { kbcode = LastKBCode = 0x00; rccode = RC_DOWN ; LastKey = rccode; count = -1; return 1; }// Cursortasten
-- if (tch[2] == 0x43 ) { kbcode = LastKBCode = 0x00; rccode = RC_RIGHT ; LastKey = rccode; count = -1; return 1; }// Cursortasten
-- if (tch[2] == 0x44 ) { kbcode = LastKBCode = 0x00; rccode = RC_LEFT ; LastKey = rccode; count = -1; return 1; }// Cursortasten
-- if (tch[2] == 0x33 && tch[3] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_MINUS ; LastKey = rccode; count = -1; return 1; }// entf-Taste
-- if (tch[2] == 0x32 && tch[3] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_PLUS ; LastKey = rccode; count = -1; return 1; }// einf-Taste
-- if (tch[2] == 0x35 && tch[3] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_PLUS ; LastKey = rccode; count = -1; return 1; }// PgUp-Taste
-- if (tch[2] == 0x36 && tch[3] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_MINUS ; LastKey = rccode; count = -1; return 1; }// PgDn-Taste
-- if (tch[2] == 0x5b && tch[3] == 0x45) { kbcode = LastKBCode = 0x00; rccode = RC_RED ; LastKey = rccode; count = -1; return 1; }// F5-Taste
-- if (tch[2] == 0x31 && tch[3] == 0x37 && tch[4] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_GREEN ; LastKey = rccode; count = -1; return 1; }// F6-Taste
-- if (tch[2] == 0x31 && tch[3] == 0x38 && tch[4] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_YELLOW ; LastKey = rccode; count = -1; return 1; }// F7-Taste
-- if (tch[2] == 0x31 && tch[3] == 0x39 && tch[4] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_BLUE ; LastKey = rccode; count = -1; return 1; }// F8-Taste
-- if (tch[2] == 0x32 && tch[3] == 0x30 && tch[4] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_DBOX ; LastKey = rccode; count = -1; return 1; }// F9-Taste
-- if (tch[2] == 0x32 && tch[3] == 0x31 && tch[4] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_HELP ; LastKey = rccode; count = -1; return 1; }// F10-Taste
-- if (tch[2] == 0x32 && tch[3] == 0x33 && tch[4] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_MUTE ; LastKey = rccode; count = -1; return 1; }// F11-Taste
-- }
-- if (mode == RC_EDIT)
-- {
--/*
-- char tmsg[100];
-- int i;
-- sprintf(tmsg,"KeyboardCode:avail:%d, char:%c, rccode:%x ",bytesavail,(kbcode == 0x00 ? '*' : kbcode ),rccode);
-- for (i = 0; i < bytesavail; i++) sprintf(tmsg,"%s%x",tmsg,tch[i]);
-- MessageBox(tmsg,"",NOBUTTON);
--*/
-- LastKey = rccode;
-- count = -1;
-- switch (rccode)
-- {
-- case KEY_0:
-- case KEY_1:
-- case KEY_2:
-- case KEY_3:
-- case KEY_4:
-- case KEY_5:
-- case KEY_6:
-- case KEY_7:
-- case KEY_8:
-- case KEY_9:
-- // SMS-Style verhindern
-- rccode = -1;
-- break;
-- }
-- return 1;
-- }
-- else if (bytesread <= 0)
-- {
-- if (kbcode == '0') { kbcode = 0x00;rccode = RC_0 ; LastKey = rccode; return 1;}
-- if (kbcode == '1') { kbcode = 0x00;rccode = RC_1 ; LastKey = rccode; return 1;}
-- if (kbcode == '2') { kbcode = 0x00;rccode = RC_2 ; LastKey = rccode; return 1;}
-- if (kbcode == '3') { kbcode = 0x00;rccode = RC_3 ; LastKey = rccode; return 1;}
-- if (kbcode == '4') { kbcode = 0x00;rccode = RC_4 ; LastKey = rccode; return 1;}
-- if (kbcode == '5') { kbcode = 0x00;rccode = RC_5 ; LastKey = rccode; return 1;}
-- if (kbcode == '6') { kbcode = 0x00;rccode = RC_6 ; LastKey = rccode; return 1;}
-- if (kbcode == '7') { kbcode = 0x00;rccode = RC_7 ; LastKey = rccode; return 1;}
-- if (kbcode == '8') { kbcode = 0x00;rccode = RC_8 ; LastKey = rccode; return 1;}
-- if (kbcode == '9') { kbcode = 0x00;rccode = RC_9 ; LastKey = rccode; return 1;}
-- }
-- }
-- if (bytesread == 2)
-+ count=0;
-+ if(read(kb, &ev, sizeof(ev)) == sizeof(ev))
- {
-- if (rccode == LastKey && LastKBCode != 0x00 && LastKBCode == kbcode)
-- {
-- return 1;
-- }
-- LastKBCode = 0x00;
-- if (rccode == LastKey)
-+ if(ev.value)
- {
-- if (count < REPEAT_TIMER)
-+ if(ev.code == rc_last_key)
- {
-- if (count >= 0)
-+ if (count < REPEAT_TIMER)
-+ {
- count++;
-- rccode = -1;
-- return 1;
-+ rccode = -1;
-+ return 1;
-+ }
- }
-- }
-- else
-- count = 0;
-- LastKey = rccode;
-- if ((rccode & 0xFF00) == 0x5C00)
-- {
-- kbcode = 0;
-- switch(rccode)
-+ else
-+ count = 0;
-+ rc_last_key = ev.code;
-+ switch(ev.code)
- {
- case KEY_UP: rccode = RC_UP; break;
- case KEY_DOWN: rccode = RC_DOWN; break;
- case KEY_LEFT: rccode = RC_LEFT; break;
- case KEY_RIGHT: rccode = RC_RIGHT; break;
- case KEY_OK: rccode = RC_OK; break;
-- case KEY_0: rccode = RC_0; break;
-- case KEY_1: rccode = RC_1; break;
-- case KEY_2: rccode = RC_2; break;
-- case KEY_3: rccode = RC_3; break;
-- case KEY_4: rccode = RC_4; break;
-- case KEY_5: rccode = RC_5; break;
-- case KEY_6: rccode = RC_6; break;
-- case KEY_7: rccode = RC_7; break;
-- case KEY_8: rccode = RC_8; break;
-- case KEY_9: rccode = RC_9; break;
- case KEY_RED: rccode = RC_RED; break;
- case KEY_GREEN: rccode = RC_GREEN; break;
- case KEY_YELLOW: rccode = RC_YELLOW; break;
- case KEY_BLUE: rccode = RC_BLUE; break;
-- case KEY_VOLUMEUP: rccode = RC_PLUS; break;
-- case KEY_VOLUMEDOWN:rccode = RC_MINUS; break;
-- case KEY_MUTE: rccode = RC_MUTE; break;
-- case KEY_HELP: rccode = RC_HELP; break;
-- case KEY_SETUP: rccode = RC_DBOX; break;
-- case KEY_HOME: rccode = RC_HOME; break;
-+ case KEY_INFO: rccode = RC_HELP; break;
-+ case KEY_MENU: rccode = RC_DBOX; break;
-+ case KEY_EXIT: rccode = RC_HOME; break;
- case KEY_POWER: rccode = RC_STANDBY; break;
-+ default:
-+ if( ev.code > 0x7F )
-+ {
-+ rccode = 0;
-+ if( ev.code == 0x110 )
-+ {
-+ rccode = RC_ON;
-+ }
-+ }
-+ else
-+ {
-+ rccode = rctable[ev.code & 0x7F];
-+ }
-+ if( rc_last_code == RC_LSHIFT )
-+ {
-+ if( ev.code <= 0x56 ) //(sizeof(rcshifttable)/sizeof(int)-1)
-+ {
-+ rccode = rcshifttable[ev.code];
-+ }
-+ }
-+ else if( rc_last_code == RC_ALTGR )
-+ {
-+ if( ev.code <= 0x56 ) //(sizeof(rcaltgrtable)/sizeof(int)-1)
-+ {
-+ rccode = rcaltgrtable[ev.code];
-+ }
-+ }
-+ else if( rc_last_code == RC_ALT )
-+ {
-+ if((ev.code >=2) && ( ev.code <= 11 ))
-+ {
-+ rccode = (ev.code-1) | 0x0200;
-+ }
-+ }
-+// if( !rccode )
-+ {
-+// rccode = -1;
-+ }
-+
- }
-+ rc_last_code = rccode;
- return 1;
- }
- else
- {
-- rccode &= 0x003F;
-+ rccode = -1;
-+ rc_last_key = KEY_RESERVED;
-+ rc_last_code = KEY_RESERVED;
- }
-- return 0;
- }
-
- rccode = -1;
- usleep(1000000/100);
- return 0;
- }
--#endif
-+
-
- /******************************************************************************
- * MyFaceRequester
-@@ -316,6 +234,8 @@
- FT_Vector kerning;
- FT_Error error;
-
-+ currentchar=currentchar & 0xFF;
-+
- if (currentchar == '\r') // display \r in windows edited files
- {
- if(color != -1)
-@@ -331,19 +251,15 @@
- }
- //load char
-
-- if(!(glyphindex = FT_Get_Char_Index(face, currentchar)))
-+ if(!(glyphindex = FT_Get_Char_Index(face, (int)currentchar)))
- {
- printf("TuxCom <FT_Get_Char_Index for Char \"%c\" failed\n", (int)currentchar);
- return 0;
- }
-
-
--#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR == 0
-+
- if((error = FTC_SBit_Cache_Lookup(cache, &desc, glyphindex, &sbit)))
--#else
-- FTC_Node anode;
-- if((error = FTC_SBitCache_Lookup(cache, &desc, glyphindex, &sbit, &anode)))
--#endif
- {
- printf("TuxCom <FTC_SBitCache_Lookup for Char \"%c\" failed with Errorcode 0x%.2X>\n", (int)currentchar, error);
- return 0;
-@@ -376,7 +292,7 @@
- {
- if(pitch*8 + 7-bit >= sbit->width) break; /* render needed bits only */
-
-- if((sbit->buffer[row * sbit->pitch + pitch]) & 1<<bit) *(lbb + StartX + sx + sbit->left + kerning.x + x + var_screeninfo.xres*(StartY + sy - sbit->top + y)) = color;
-+ if((sbit->buffer[row * sbit->pitch + pitch]) & 1<<bit) memcpy(lbb + StartX*4 + sx*4 + (sbit->left + kerning.x + x)*4 + fix_screeninfo.line_length*(StartY + sy - sbit->top + y),bgra[color],4);
-
- x++;
- }
-@@ -481,38 +397,36 @@
- void RenderBox(int sx, int sy, int ex, int ey, int mode, int color)
- {
- int loop;
-+ int tx;
- if(mode == FILL)
- {
- for(; sy <= ey; sy++)
- {
-- memset(lbb + StartX + sx + var_screeninfo.xres*(StartY + sy), color, ex-sx + 1);
-+ for(tx=0; tx <= (ex-sx); tx++)
-+ {
-+ memcpy(lbb + StartX*4 + sx*4 + (tx*4) + fix_screeninfo.line_length*(StartY + sy),bgra[color],4);
-+ }
- }
- }
- else
- {
-- //hor lines
--
-- for(loop = sx; loop <= ex; loop++)
-- {
-- *(lbb + StartX+loop + var_screeninfo.xres*(sy+StartY)) = color;
-- *(lbb + StartX+loop + var_screeninfo.xres*(sy+1+StartY)) = color;
--
-- *(lbb + StartX+loop + var_screeninfo.xres*(ey-1+StartY)) = color;
-- *(lbb + StartX+loop + var_screeninfo.xres*(ey+StartY)) = color;
-- }
--
-- //ver lines
--
-- for(loop = sy; loop <= ey; loop++)
-- {
-- *(lbb + StartX+sx + var_screeninfo.xres*(loop+StartY)) = color;
-- *(lbb + StartX+sx+1 + var_screeninfo.xres*(loop+StartY)) = color;
--
-- *(lbb + StartX+ex-1 + var_screeninfo.xres*(loop+StartY)) = color;
-- *(lbb + StartX+ex + var_screeninfo.xres*(loop+StartY)) = color;
-- }
-+ for(loop = sx; loop <= ex; loop++)
-+ {
-+ memcpy(lbb + StartX*4+loop*4 + fix_screeninfo.line_length*(sy+StartY), bgra[color], 4);
-+ memcpy(lbb + StartX*4+loop*4 + fix_screeninfo.line_length*(sy+1+StartY), bgra[color], 4);
-+ memcpy(lbb + StartX*4+loop*4 + fix_screeninfo.line_length*(ey-1+StartY), bgra[color], 4);
-+ memcpy(lbb + StartX*4+loop*4 + fix_screeninfo.line_length*(ey+StartY), bgra[color], 4);
-+ }
-+ for(loop = sy; loop <= ey; loop++)
-+ {
-+ memcpy(lbb + StartX*4+sx*4 + fix_screeninfo.line_length*(loop+StartY), bgra[color], 4);
-+ memcpy(lbb + StartX*4+(sx+1)*4 + fix_screeninfo.line_length*(loop+StartY), bgra[color], 4);
-+ memcpy(lbb + StartX*4+(ex-1)*4 + fix_screeninfo.line_length*(loop+StartY), bgra[color], 4);
-+ memcpy(lbb + StartX*4+ex*4 + fix_screeninfo.line_length*(loop+StartY), bgra[color], 4);
-+ }
- }
- }
-+
- void SetLanguage()
- {
- if (langselect == BTN_AUTO)
-@@ -540,7 +454,7 @@
- * plugin_exec *
- ******************************************************************************/
-
--void plugin_exec(PluginParam *par)
-+int main()
- {
- FT_Error error;
-
-@@ -552,9 +466,67 @@
- //get params
-
-
-- fb = rc = sx = ex = sy = ey = -1;
-+ kb = fb = rc = sx = ex = sy = ey = -1;
-+
-+ /* open Framebuffer */
-+ fb=open("/dev/fb/0", O_RDWR);
-+
-+ /* open Remote Control */
-+ int cnt=0;
-+ while(1)
-+ {
-+ struct stat s;
-+ char tmp[128];
-+ sprintf(tmp, "/dev/input/event%d", cnt);
-+ if (stat(tmp, &s))
-+ break;
-+ /* open Remote Control */
-+ if ((rc=open(tmp, O_RDONLY)) == -1)
-+ {
-+ perror("TuxCom <open remote control>");
-+ return 0;
-+ }
-+ if (ioctl(rc, EVIOCGNAME(128), tmp) < 0)
-+ perror("EVIOCGNAME failed");
-+ if (strstr(tmp, "remote control"))
-+ break;
-+ close(rc);
-+ rc=-1;
-+ ++cnt;
-+ }
-+ fcntl(rc, F_SETFL, fcntl(rc, F_GETFL) | O_EXCL | O_NONBLOCK);
-+
-+ /* open dream ir keyboard */
-+ cnt=0;
-+ while(1)
-+ {
-+ struct stat s;
-+ char tmp[128];
-+ sprintf(tmp, "/dev/input/event%d", cnt);
-+ if (stat(tmp, &s))
-+ break;
-+ /* open keyboard */
-+ if ((kb=open(tmp, O_RDONLY)) == -1)
-+ {
-+ perror("TuxCom <open ir keyboard>");
-+ return 0;
-+ }
-+ if (ioctl(kb, EVIOCGNAME(128), tmp) < 0)
-+ perror("EVIOCGNAME failed");
-+ if (strstr(tmp, "dreambox ir keyboard"))
-+ break;
-+ close(kb);
-+ kb=-1;
-+ ++cnt;
-+ }
-+ fcntl(kb, F_SETFL, fcntl(kb, F_GETFL) | O_EXCL | O_NONBLOCK);
-+
-+ sx = 50;
-+ ex = 670;
-+ sy = 50;
-+ ey = 526;
-
-- for(; par; par = par->next)
-+/* for(; par; par = par->next)
- {
- if (!strcmp(par->id, P_ID_FBUFFER)) fb = atoi(par->val);
- else if (!strcmp(par->id, P_ID_RCINPUT)) rc = atoi(par->val);
-@@ -563,9 +535,7 @@
- else if (!strcmp(par->id, P_ID_OFF_Y)) sy = atoi(par->val);
- else if (!strcmp(par->id, P_ID_END_Y)) ey = atoi(par->val);
- }
--#ifdef HAVE_DREAMBOX_HARDWARE
-- kb=open("/dev/vc/0", O_RDONLY);
--#endif
-+*/
-
- if(fb == -1 || rc == -1 || sx == -1 || ex == -1 || sy == -1 || ey == -1)
- {
-@@ -643,17 +613,14 @@
-
- use_kerning = FT_HAS_KERNING(face);
-
--#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR == 0
-+
- desc.image_type = ftc_image_mono;
--#else
-- desc.flags = FT_LOAD_MONOCHROME;
--#endif
-
-
-
- //init backbuffer
-
-- if(!(lbb = malloc(var_screeninfo.xres*var_screeninfo.yres)))
-+ if(!(lbb = malloc(fix_screeninfo.line_length*var_screeninfo.yres)))
- {
- printf("TuxCom <allocating of Backbuffer failed>\n");
- FTC_Manager_Done(manager);
-@@ -661,11 +628,11 @@
- munmap(lfb, fix_screeninfo.smem_len);
- return;
- }
-- memset(lbb, 0, var_screeninfo.xres*var_screeninfo.yres);
-+ memset(lbb, 0, fix_screeninfo.line_length*var_screeninfo.yres);
- RenderBox(0,0,var_screeninfo.xres,var_screeninfo.yres,FILL,BLACK);
-
- //open avs
-- if((avs = open(AVS, O_RDWR)) == -1)
-+/* if((avs = open(AVS, O_RDWR)) == -1)
- {
- printf("TuxCom <open AVS>");
- return;
-@@ -678,7 +645,7 @@
- printf("TuxCom <open SAA>");
- return;
- }
--
-+*/
-
-
- //init data
-@@ -723,19 +690,15 @@
-
- SetLanguage();
-
-- ioctl(saa, SAAIOGWSS, &saa_old);
-- ioctl(saa, SAAIOSWSS, &saamodes[screenmode]);
-+// ioctl(saa, SAAIOGWSS, &saa_old);
-+// ioctl(saa, SAAIOSWSS, &saamodes[screenmode]);
- // setup screen
- RenderFrame(LEFTFRAME);
- RenderFrame(RIGHTFRAME);
-- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
-+ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
- printf("TuxCom init successful\n");
-
--#ifdef HAVE_DREAMBOX_HARDWARE
-- fcntl(rc, F_SETFL, O_NONBLOCK);
--#else
-- fcntl(rc, F_SETFL, fcntl(rc, F_GETFL) &~ O_NONBLOCK);
--#endif
-+// fcntl(rc, F_SETFL, fcntl(rc, F_GETFL) &~ O_NONBLOCK);
-
- int dosave = autosave;
- int firstentry = 1;
-@@ -762,20 +725,11 @@
- if (strcmp(szP,szPass) != 0) break;
- RenderFrame(LEFTFRAME);
- RenderFrame(RIGHTFRAME);
-- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
-+ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
- }
- }
- firstentry = 0;
-
--#ifdef HAVE_DREAMBOX_HARDWARE
-- if (kbcode != 0)
-- {
-- if (kbcode == 0x09) // tab
-- {
-- rccode = (curframe == 1 ? RC_LEFT : RC_RIGHT);
-- }
-- }
--#endif
- switch(rccode)
- {
- case RC_HELP:
-@@ -1332,7 +1286,7 @@
- finfo[curframe].first = finfo[curframe].selected - framerows+1;
- RenderFrame(LEFTFRAME);
- RenderFrame(RIGHTFRAME);
-- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
-+ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
-
- }while(rccode != RC_HOME);
-
-@@ -1348,12 +1302,14 @@
- munmap(lfb, fix_screeninfo.smem_len);
-
- //restore videoformat
-- ioctl(avs, AVSIOSSCARTPIN8, &fnc_old);
-- ioctl(saa, SAAIOSWSS, &saa_old);
-- close(avs);
-- close(saa);
--
-- fcntl(rc, F_SETFL, O_NONBLOCK);
-+// ioctl(avs, AVSIOSSCARTPIN8, &fnc_old);
-+// ioctl(saa, SAAIOSWSS, &saa_old);
-+// close(avs);
-+// close(saa);
-+
-+// fcntl(rc, F_SETFL, O_NONBLOCK);
-+ close(rc);
-+ close(kb);
-
- ClearEntries (LEFTFRAME );
- ClearEntries (RIGHTFRAME);
-@@ -1361,9 +1317,6 @@
- ClearMarker (RIGHTFRAME);
- ClearZipEntries(LEFTFRAME );
- ClearZipEntries(RIGHTFRAME);
--#ifdef HAVE_DREAMBOX_HARDWARE
-- if (kb != -1) close(kb);
--#endif
- return;
- }
-
-@@ -1415,7 +1368,7 @@
- RenderString(colorline[colortool[i]*NUM_LANG+language], (viewx/COLORBUTTONS) *i , viewy- FONT_OFFSET_BIG , viewx/COLORBUTTONS, CENTER, SMALL , (i == 2 ? BLACK : WHITE));
- }
- if (refresh == YES)
-- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
-+ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
-
- }
-
-@@ -1701,7 +1654,7 @@
-
- RenderBox(viewx/2 + 2* BORDERSIZE , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT , viewx/2 + 2* BORDERSIZE +BUTTONWIDTH ,viewy-(viewy-he)/2- 2* BORDERSIZE , GRID, (sel == 1 ? WHITE : GREEN));
- RenderBox(viewx/2 + 2* BORDERSIZE +1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 + 2* BORDERSIZE +BUTTONWIDTH -1,viewy-(viewy-he)/2- 2* BORDERSIZE-1, GRID, (sel == 1 ? WHITE : GREEN));
-- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
-+ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
- break;
- case 2:
- RenderBox(viewx/2 - 4* BORDERSIZE - BUTTONWIDTH - BUTTONWIDTH/2 , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT , viewx/2 - 4* BORDERSIZE - BUTTONWIDTH/2 ,viewy-(viewy-he)/2- 2* BORDERSIZE , GRID, (sel == 0 ? WHITE : RED ));
-@@ -1712,7 +1665,7 @@
-
- RenderBox(viewx/2 + 4* BORDERSIZE + BUTTONWIDTH/2 , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT , viewx/2 + 4* BORDERSIZE +BUTTONWIDTH + BUTTONWIDTH/2 ,viewy-(viewy-he)/2- 2* BORDERSIZE , GRID, (sel == 2 ? BLACK : YELLOW ));
- RenderBox(viewx/2 + 4* BORDERSIZE + BUTTONWIDTH/2 +1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 + 4* BORDERSIZE +BUTTONWIDTH + BUTTONWIDTH/2-1,viewy-(viewy-he)/2- 2* BORDERSIZE-1, GRID, (sel == 2 ? BLACK : YELLOW ));
-- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
-+ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
- break;
- case 4:
- RenderBox(viewx/2 - 4* BORDERSIZE - BUTTONWIDTH - BUTTONWIDTH/2 , viewy-(viewy-he)/2 - 4*BORDERSIZE - 2*BUTTONHEIGHT , viewx/2 - 4* BORDERSIZE - BUTTONWIDTH/2 ,viewy-(viewy-he)/2- 4* BORDERSIZE - BUTTONHEIGHT , GRID, (sel == 0 ? WHITE : RED ));
-@@ -1729,7 +1682,7 @@
-
- RenderBox(viewx/2 + 2* BORDERSIZE , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT , viewx/2 + 4* BORDERSIZE +BUTTONWIDTH + BUTTONWIDTH/2 ,viewy-(viewy-he)/2- 2* BORDERSIZE , GRID, (sel == 4 ? WHITE : BLUE2 ));
- RenderBox(viewx/2 + 2* BORDERSIZE +1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 + 4* BORDERSIZE +BUTTONWIDTH + BUTTONWIDTH/2-1,viewy-(viewy-he)/2- 2* BORDERSIZE -1, GRID, (sel == 4 ? WHITE : BLUE2 ));
-- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
-+ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
- break;
- }
- drawsel = 0;
-@@ -1812,7 +1765,7 @@
- RenderBox((viewx-BUTTONWIDTH)/2 , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT, viewx - (viewx-BUTTONWIDTH)/2,viewy-(viewy-he)/2 - 2*BORDERSIZE , GRID, WHITE);
- break;
- }
-- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
-+ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
- }
-
- /******************************************************************************
-@@ -1953,7 +1906,7 @@
- RenderBox(viewx/2 - 2* BORDERSIZE -BUTTONWIDTH+1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 - 2* BORDERSIZE -1,viewy-(viewy-he)/2- 2* BORDERSIZE-1, GRID, (sel == YES ? WHITE : RED ));
- RenderBox(viewx/2 + 2* BORDERSIZE , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT , viewx/2 + 2* BORDERSIZE +BUTTONWIDTH ,viewy-(viewy-he)/2- 2* BORDERSIZE , GRID, (sel == NO ? WHITE : GREEN));
- RenderBox(viewx/2 + 2* BORDERSIZE +1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 + 2* BORDERSIZE +BUTTONWIDTH-1,viewy-(viewy-he)/2- 2* BORDERSIZE-1, GRID, (sel == NO ? WHITE : GREEN));
-- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
-+ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
- drawsel = 0;
- }
-
-@@ -2097,7 +2050,7 @@
- RenderBox(viewx/2 - 2* BORDERSIZE -BUTTONWIDTH+1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 - 2* BORDERSIZE -1,viewy-(viewy-he)/2- 2* BORDERSIZE-1, GRID, (sel == YES ? WHITE : RED ));
- RenderBox(viewx/2 + 2* BORDERSIZE , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT , viewx/2 + 2* BORDERSIZE +BUTTONWIDTH ,viewy-(viewy-he)/2- 2* BORDERSIZE , GRID, (sel == NO ? WHITE : GREEN));
- RenderBox(viewx/2 + 2* BORDERSIZE +1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 + 2* BORDERSIZE +BUTTONWIDTH-1,viewy-(viewy-he)/2- 2* BORDERSIZE-1, GRID, (sel == NO ? WHITE : GREEN));
-- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
-+ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
- drawsel = 0;
- }
- if (end == YES)
-@@ -2156,7 +2109,7 @@
- }
- RenderString(szEntry,(viewx-wi)/2+ BORDERSIZE , (viewy-he)/2 + BORDERSIZE + (i+1)*FONTHEIGHT_BIG-FONT_OFFSET , wi, CENTER, BIG, WHITE);
- }
-- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
-+ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
- int drawsel = 0;
- do{
- GetRCCode(RC_NORMAL);
-@@ -2175,8 +2128,8 @@
- return;
- case 2:
- screenmode = 1-screenmode;
-- ioctl(avs, AVSIOSSCARTPIN8, &fncmodes[screenmode]);
-- ioctl(saa, SAAIOSWSS, &saamodes[screenmode]);
-+ //ioctl(avs, AVSIOSSCARTPIN8, &fncmodes[screenmode]);
-+ //ioctl(saa, SAAIOSWSS, &saamodes[screenmode]);
- return;
- case 3:
- SetPassword();
-@@ -2275,7 +2228,7 @@
- }
- RenderString(szEntry,(viewx-wi)/2+ BORDERSIZE , (viewy-he)/2 + BORDERSIZE + (i+1)*FONTHEIGHT_BIG-FONT_OFFSET , wi, CENTER, BIG, WHITE);
- }
-- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
-+ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
- drawsel = 0;
- }
- }while(1);
-@@ -2372,7 +2325,7 @@
- colortool[3] = (pass == NO ? ACTION_INSTEXT : ACTION_NOACTION);
- RenderMenuLine(-1, EDIT);
-
-- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
-+ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
-
- do{
- while (GetRCCode(RC_EDIT) == 0);
-@@ -2688,7 +2641,7 @@
- colortool[3] = ACTION_NOACTION;
- }
- RenderMenuLine(-1, EDIT);
-- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
-+ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
- }while(1);
-
- rccode = -1;
-@@ -3741,7 +3694,7 @@
- p = p1+1;
- }
- pStop = p;
-- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
-+ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
- while (GetRCCode(RC_NORMAL) == 0);
- switch (rccode)
- {
-@@ -4160,7 +4113,7 @@
- }
- RenderBox( viewx/6 +3*BORDERSIZE, BORDERSIZE+FONTHEIGHT_BIG , viewx/6 + 4*BORDERSIZE, viewy-MENUSIZE , FILL, WHITE);
- RenderBox( viewx/3 -2*BORDERSIZE, BORDERSIZE+FONTHEIGHT_BIG , viewx/3 - BORDERSIZE, viewy-MENUSIZE , FILL, WHITE);
-- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
-+ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
- while (GetRCCode(RC_NORMAL) == 0);
- switch (rccode)
- {
-@@ -4666,7 +4619,7 @@
-
- if (row > framerows - 2)
- {
-- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
-+ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
- while (1)
- {
- GetRCCode(RC_NORMAL);
-@@ -4687,7 +4640,7 @@
- }
- if (row>0)
- {
-- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
-+ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
- while (1)
- {
- GetRCCode(RC_NORMAL);
-@@ -4773,10 +4726,10 @@
- finfo[LEFTFRAME].sort = SORT_UP;
- finfo[RIGHTFRAME].sort = SORT_UP;
-
-- fp = fopen( CONFIGDIR "/tuxcom.conf", "r" );
-+ fp = fopen( "/etc/tuxbox/tuxcom.conf", "r" );
- if ( !fp )
- {
-- printf("tuxcom: could not open " CONFIGDIR "/tuxcom.conf !!!\n");
-+ printf("tuxcom: could not open /etc/tuxbox/tuxcom.conf !!!\n");
- }
- else
- {
-@@ -4890,10 +4843,10 @@
- FILE *fp;
-
-
-- fp = fopen( CONFIGDIR "/tuxcom.conf", "w" );
-+ fp = fopen( "/etc/tuxbox/tuxcom.conf", "w" );
- if ( !fp )
- {
-- printf("tuxcom: could not open " CONFIGDIR "/tuxcom.conf !!!\n");
-+ printf("tuxcom: could not open /etc/tuxbox/tuxcom.conf !!!\n");
- }
- else
- {
-diff -u tuxcom_cvs/tuxcom.h tuxcom/tuxcom.h
---- tuxcom_cvs/tuxcom.h 2008-11-03 13:15:00.000000000 +0100
-+++ tuxcom/tuxcom.h 2006-06-29 23:44:25.000000000 +0200
-@@ -22,7 +22,7 @@
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA
- */
-
--#include <config.h>
-+//#include <config.h>
- #include <errno.h>
- #include <locale.h>
- #include <fcntl.h>
-@@ -37,10 +37,10 @@
- #include <sys/mman.h>
- #include <sys/dir.h>
- #include <sys/stat.h>
--#include <plugin.h>
-+//#include <plugin.h>
-
--#include <dbox/avs_core.h>
--#include <dbox/saa7126_core.h>
-+//#include <dbox/avs_core.h>
-+//#include <dbox/saa7126_core.h>
-
- #include <netinet/in.h>
- #include <netdb.h>
-@@ -53,12 +53,10 @@
- #include FT_CACHE_SMALL_BITMAPS_H
-
-
--#ifndef HAVE_DREAMBOX_HARDWARE
- #include <linux/input.h>
--#endif
-
--#define AVS "/dev/dbox/avs0"
--#define SAA "/dev/dbox/saa0"
-+//#define AVS "/dev/dbox/avs0"
-+//#define SAA "/dev/dbox/saa0"
-
- #define MENUROWS 10
- #define MENUITEMS 10
-@@ -80,64 +78,6 @@
- #define MSG_VERSION "Tuxbox Commander Version 1.13\n"
- #define MSG_COPYRIGHT "© dbluelle 2004-2005"
-
--#ifdef HAVE_DREAMBOX_HARDWARE
--
--//rc codes
--#define KEY_0 0x5C00
--#define KEY_1 0x5C01
--#define KEY_2 0x5C02
--#define KEY_3 0x5C03
--#define KEY_4 0x5C04
--#define KEY_5 0x5C05
--#define KEY_6 0x5C06
--#define KEY_7 0x5C07
--#define KEY_8 0x5C08
--#define KEY_9 0x5C09
--#define KEY_POWER 0x5C0C
--#define KEY_UP 0x5C0E
--#define KEY_DOWN 0x5C0F
--#define KEY_VOLUMEUP 0x5C16
--#define KEY_VOLUMEDOWN 0x5C17
--#define KEY_HOME 0x5C20
--#define KEY_SETUP 0x5C27
--#define KEY_MUTE 0x5C28
--#define KEY_RED 0x5C2D
--#define KEY_RIGHT 0x5C2E
--#define KEY_LEFT 0x5C2F
--#define KEY_OK 0x5C30
--#define KEY_BLUE 0x5C3B
--#define KEY_YELLOW 0x5C52
--#define KEY_GREEN 0x5C55
--#define KEY_HELP 0x5C82
--
--#define RC_0 0x00
--#define RC_1 0x01
--#define RC_2 0x02
--#define RC_3 0x03
--#define RC_4 0x04
--#define RC_5 0x05
--#define RC_6 0x06
--#define RC_7 0x07
--#define RC_8 0x08
--#define RC_9 0x09
--#define RC_RIGHT 0x0A
--#define RC_LEFT 0x0B
--#define RC_UP 0x0C
--#define RC_DOWN 0x0D
--#define RC_OK 0x0E
--#define RC_MUTE 0x0F
--#define RC_STANDBY 0x10
--#define RC_GREEN 0x11
--#define RC_YELLOW 0x12
--#define RC_RED 0x13
--#define RC_BLUE 0x14
--#define RC_PLUS 0x15
--#define RC_MINUS 0x16
--#define RC_HELP 0x17
--#define RC_DBOX 0x18
--#define RC_HOME 0x1F
--
--#else
- // rc codes
- #define RC_0 '0'
- #define RC_1 '1'
-@@ -247,12 +187,13 @@
- #define KBC_PAGEDOWN 0x0C
- #define KBC_RETURN 0x0D
-
--#endif
-+
-
-
- //freetype stuff
-
--#define FONT FONTDIR "/pakenham.ttf"
-+//#define FONT "/usr/share/fonts/md_khmurabi_10.ttf"
-+#define FONT "/usr/share/fonts/pakenham.ttf"
- // if font is not in usual place, we look here:
- #define FONT2 "/var/tuxbox/config/enigma/fonts/pakenham.ttf"
-
-@@ -265,11 +206,7 @@
- FTC_Manager manager;
- FTC_SBitCache cache;
- FTC_SBit sbit;
--#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR == 0
- FTC_Image_Desc desc;
--#else
--FTC_ImageTypeRec desc;
--#endif
- FT_Face face;
- FT_UInt prev_glyphindex;
- FT_Bool use_kerning;
-@@ -296,6 +233,14 @@
- struct fb_fix_screeninfo fix_screeninfo;
- struct fb_var_screeninfo var_screeninfo;
-
-+unsigned char bgra[][4] = {
-+"\x00\x00\x00\x00", "\xFF\xFF\xFF\xFF", "\x00\x00\x00\xFF", "\x80\x00\x00\xFF",
-+"\xFF\x80\x00\xFF", "\x00\xC0\xFF\xFF", "\x00\xD0\x00\xFF", "\x00\xE8\xE8\xFF",
-+"\x00\x00\xFF\xFF", "\xB0\xB0\xB0\xFF", "\x00\xFF\x00\xFF", "\x50\x50\x50\xFF",
-+"\x80\x00\x00\xC0", "\x50\x50\x50\xC0", "\xFF\x40\x00\xFf" };
-+
-+
-+
- unsigned short rd[] = {0xFF<<8, 0x00<<8, 0x00<<8, 0x00<<8, 0xFF<<8, 0x00<<8, 0xE8<<8, 0xFF<<8, 0xb0<<8, 0x00<<8, 0x50<<8, 0x00<<8, 0x50<<8, 0x00<<8};
- unsigned short gn[] = {0xFF<<8, 0x00<<8, 0x00<<8, 0x80<<8, 0xC0<<8, 0xd0<<8, 0xE8<<8, 0x00<<8, 0xb0<<8, 0xff<<8, 0x50<<8, 0x00<<8, 0x50<<8, 0x40<<8};
- unsigned short bl[] = {0xFF<<8, 0x00<<8, 0x80<<8, 0xFF<<8, 0x00<<8, 0x00<<8, 0x00<<8, 0x00<<8, 0xb0<<8, 0x00<<8, 0x50<<8, 0x80<<8, 0x50<<8, 0xff<<8};
-@@ -306,9 +251,7 @@
- int trans_map [] = {BLUE1,BLUE_TRANSP,TRANSP};
- int trans_map_mark[] = {GRAY2,GRAY_TRANSP,GRAY_TRANSP};
-
--#ifndef HAVE_DREAMBOX_HARDWARE
- struct input_event ev;
--#endif
-
- unsigned short rccode;
- char kbcode;
-@@ -338,8 +281,8 @@
- char szPass[20];
- long commandsize;
-
--int fncmodes[] = {AVS_FNCOUT_EXT43, AVS_FNCOUT_EXT169};
--int saamodes[] = {SAA_WSS_43F, SAA_WSS_169F};
-+//int fncmodes[] = {AVS_FNCOUT_EXT43, AVS_FNCOUT_EXT169};
-+//int saamodes[] = {SAA_WSS_43F, SAA_WSS_169F};
-
- FILE *conf;
- int language, langselect, autosave;
+++ /dev/null
---- tuxcom/tuxcom.c 2006-06-29 23:44:21.000000000 +0200
-+++ tuxcom/tuxcom.c 2008-10-22 22:34:16.000000000 +0200
-@@ -36,7 +36,8 @@
- struct input_event ev;
- static __u16 rc_last_key = KEY_RESERVED;
- static __u16 rc_last_code = KEY_RESERVED;
-- if(read(rc, &ev, sizeof(ev)) == sizeof(ev))
-+ if ((read(rc[0], &ev, sizeof(ev)) == sizeof(ev)) ||
-+ (rc[1] != -1 && read(rc[1], &ev, sizeof(ev)) == sizeof(ev)))
- {
- if(ev.value)
- {
-@@ -466,14 +467,16 @@
- //get params
-
-
-- kb = fb = rc = sx = ex = sy = ey = -1;
-+ kb = fb = sx = ex = sy = ey = -1;
-
- /* open Framebuffer */
- fb=open("/dev/fb/0", O_RDWR);
-
- /* open Remote Control */
-- int cnt=0;
-- while(1)
-+ int cnt=0, rc_num=0;
-+ rc[0]=rc[1]=-1;
-+
-+ while(rc_num < 2)
- {
- struct stat s;
- char tmp[128];
-@@ -481,20 +484,20 @@
- if (stat(tmp, &s))
- break;
- /* open Remote Control */
-- if ((rc=open(tmp, O_RDONLY)) == -1)
-+ if ((rc[rc_num]=open(tmp, O_RDONLY | O_EXCL | O_NONBLOCK)) == -1)
- {
- perror("TuxCom <open remote control>");
- return 0;
- }
-- if (ioctl(rc, EVIOCGNAME(128), tmp) < 0)
-+ if (ioctl(rc[rc_num], EVIOCGNAME(128), tmp) < 0)
- perror("EVIOCGNAME failed");
-- if (strstr(tmp, "remote control"))
-- break;
-- close(rc);
-- rc=-1;
-+ if (!strstr(tmp, "remote control"))
-+ close(rc[rc_num]);
-+ else
-+ ++rc_num;
- ++cnt;
- }
-- fcntl(rc, F_SETFL, fcntl(rc, F_GETFL) | O_EXCL | O_NONBLOCK);
-+// fcntl(rc, F_SETFL, fcntl(rc, F_GETFL) | O_EXCL | O_NONBLOCK);
-
- /* open dream ir keyboard */
- cnt=0;
-@@ -1308,7 +1311,10 @@
- // close(saa);
-
- // fcntl(rc, F_SETFL, O_NONBLOCK);
-- close(rc);
-+ if (rc[0] != -1)
-+ close(rc[0]);
-+ if (rc[1] != -1)
-+ close(rc[1]);
- close(kb);
-
- ClearEntries (LEFTFRAME );
---- tuxcom/tuxcom.h 2006-06-29 23:44:25.000000000 +0200
-+++ tuxcom/tuxcom.h 2008-10-22 22:29:15.000000000 +0200
-@@ -259,7 +259,7 @@
- //some data
-
- int avs, saa, fnc_old, saa_old, screenmode;
--int rc, fb, kb;
-+int rc[2], fb, kb;
- int sx, ex, sy, ey;
- int PosX, PosY, StartX, StartY, FrameWidth, NameWidth, SizeWidth;
- int curframe, cursort, curvisibility;
+++ /dev/null
-diff -Naur tuxcom_cvs/configure.ac tuxcom/configure.ac
---- tuxcom/configure.ac 2008-11-03 14:19:50.000000000 +0100
-+++ tuxcom/configure.ac 2008-11-03 14:20:00.329914467 +0100
-@@ -16,3 +16,4 @@
-
- AC_OUTPUT(Makefile)
- AC_OUTPUT(font/Makefile)
-+AC_OUTPUT(python/Makefile)
---- tuxcom/Makefile.am 2008-11-03 14:18:28.000000000 +0100
-+++ tuxcom/Makefile.am 2008-11-03 14:18:52.353917804 +0100
-@@ -1,6 +1,6 @@
- INCLUDES = -I$(top_srcdir)/include
-
--SUBDIRS = font
-+SUBDIRS = font python
-
- bin_PROGRAMS = tuxcom
-
-diff -Naur tuxcom_cvs/python/Makefile.am tuxcom/python/Makefile.am
---- tuxcom_cvs/python/Makefile.am 1970-01-01 01:00:00.000000000 +0100
-+++ tuxcom/python/Makefile.am 2008-11-03 13:56:54.425916639 +0100
-@@ -0,0 +1,5 @@
-+installdir = $(LIBDIR)/enigma2/python/Plugins/Extensions/Tuxcom
-+
-+install_DATA = \
-+ plugin.py \
-+ __init__.py
-diff -Naur tuxcom_cvs/python/plugin.py tuxcom/python/plugin.py
---- tuxcom_cvs/python/plugin.py 1970-01-01 01:00:00.000000000 +0100
-+++ tuxcom/python/plugin.py 2008-11-03 14:22:15.705918505 +0100
-@@ -0,0 +1,35 @@
-+from enigma import *
-+from Screens.Screen import Screen
-+from Plugins.Plugin import PluginDescriptor
-+
-+class TuxComStarter(Screen):
-+ skin = """
-+ <screen position="1,1" size="1,1" title="TuxCom" >
-+ </screen>"""
-+
-+ def __init__(self, session, args = None):
-+ self.skin = TuxComStarter.skin
-+ Screen.__init__(self, session)
-+ self.container=eConsoleAppContainer()
-+ self.container.appClosed.append(self.finished)
-+ self.runapp()
-+
-+ def runapp(self):
-+ eDBoxLCD.getInstance().lock()
-+ eRCInput.getInstance().lock()
-+ fbClass.getInstance().lock()
-+ if self.container.execute("/usr/plugins/tuxcom"):
-+ self.finished(-1)
-+
-+ def finished(self,retval):
-+ fbClass.getInstance().unlock()
-+ eRCInput.getInstance().unlock()
-+ eDBoxLCD.getInstance().unlock()
-+ self.close()
-+
-+def main(session, **kwargs):
-+ session.open(TuxComStarter)
-+
-+def Plugins(**kwargs):
-+ return PluginDescriptor(name="TuxCom", description="TuxBox Commander", where = PluginDescriptor.WHERE_PLUGINMENU, fnc=main)
-+
+++ /dev/null
---- tuxcom_cvs/Makefile.am 2008-11-03 15:29:58.993914127 +0100
-+++ tuxcom/Makefile.am 2008-11-03 15:32:42.677915776 +0100
-@@ -1,22 +1,15 @@
-+INCLUDES = -I$(top_srcdir)/include
-
--AM_CPPFLAGS = \
-- @FREETYPE_CFLAGS@ \
-- -I$(top_srcdir)/include
-+SUBDIRS = font
-
--noinst_LTLIBRARIES = tuxcom.la
-+bin_PROGRAMS = tuxcom
-
--#tuxcom_la_CFLAGS = -DDREAMBOX
-+tuxcom_SOURCES = tuxcom.c
-
--tuxcom_la_SOURCES = tuxcom.c
-+tuxcom_LDADD = @FREETYPE_LIBS@
-
--tuxcom_la_LIBADD = \
-- @FREETYPE_LIBS@
--
-+install_DATA = tuxcom.cfg
-
--tuxcom_la_LDFLAGS = -rpath $(PLUGINDIR) -module -avoid-version
-+AM_CFLAGS=$(CFLAGS) @FREETYPE_CFLAGS@
-
--install-exec-local:
-- install -d $(DESTDIR)$(PLUGINDIR)
-- install -d $(DESTDIR)$(CONFIGDIR)
-- $(LIBTOOL) --mode=install install tuxcom.la $(DESTDIR)$(PLUGINDIR)
-- install -m 0644 $(srcdir)/tuxcom.cfg $(DESTDIR)$(PLUGINDIR)
-+installdir = $(CONFIGDIR)/tuxcom
---- tuxcom_cvs/acinclude.m4 1970-01-01 01:00:00.000000000 +0100
-+++ tuxcom/acinclude.m4 2006-03-04 02:45:15.000000000 +0100
-@@ -0,0 +1,434 @@
-+AC_DEFUN(TUXBOX_APPS,[
-+AM_CONFIG_HEADER(config.h)
-+AM_MAINTAINER_MODE
-+
-+INSTALL="$INSTALL -p"
-+
-+AC_GNU_SOURCE
-+AC_SYS_LARGEFILE
-+
-+AC_ARG_WITH(target,
-+ [ --with-target=TARGET target for compilation [[native,cdk]]],
-+ [TARGET="$withval"],[TARGET="native"])
-+
-+AC_ARG_WITH(targetprefix,
-+ [ --with-targetprefix=PATH prefix relative to target root (only applicable in cdk mode)],
-+ [targetprefix="$withval"],[targetprefix="NONE"])
-+
-+AC_ARG_WITH(debug,
-+ [ --without-debug disable debugging code],
-+ [DEBUG="$withval"],[DEBUG="yes"])
-+
-+if test "$DEBUG" = "yes"; then
-+ DEBUG_CFLAGS="-g3 -ggdb"
-+ AC_DEFINE(DEBUG,1,[Enable debug messages])
-+fi
-+
-+AC_MSG_CHECKING(target)
-+
-+if test "$TARGET" = "native"; then
-+ AC_MSG_RESULT(native)
-+
-+ if test "$CFLAGS" = "" -a "$CXXFLAGS" = ""; then
-+ CFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS"
-+ CXXFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS"
-+ fi
-+ if test "$prefix" = "NONE"; then
-+ prefix=/usr/local
-+ fi
-+ targetprefix=$prefix
-+elif test "$TARGET" = "cdk"; then
-+ AC_MSG_RESULT(cdk)
-+
-+ if test "$CC" = "" -a "$CXX" = ""; then
-+ CC=powerpc-tuxbox-linux-gnu-gcc CXX=powerpc-tuxbox-linux-gnu-g++
-+ fi
-+ if test "$CFLAGS" = "" -a "$CXXFLAGS" = ""; then
-+ CFLAGS="-Wall -Os -mcpu=823 -pipe $DEBUG_CFLAGS"
-+ CXXFLAGS="-Wall -Os -mcpu=823 -pipe $DEBUG_CFLAGS"
-+ fi
-+ if test "$prefix" = "NONE"; then
-+ AC_MSG_ERROR(invalid prefix, you need to specify one in cdk mode)
-+ fi
-+ if test "$targetprefix" = "NONE"; then
-+ targetprefix=""
-+ fi
-+ if test "$host_alias" = ""; then
-+ cross_compiling=yes
-+ host_alias=powerpc-tuxbox-linux-gnu
-+ fi
-+else
-+ AC_MSG_RESULT(none)
-+ AC_MSG_ERROR([invalid target $TARGET, choose on from native,cdk]);
-+fi
-+
-+AC_CANONICAL_BUILD
-+AC_CANONICAL_HOST
-+
-+check_path () {
-+ return $(perl -e "if(\"$1\"=~m#^/usr/(local/)?bin#){print \"0\"}else{print \"1\";}")
-+}
-+
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_DIRECTORY_ONE,[
-+AC_ARG_WITH($1,[ $6$7 [[PREFIX$4$5]]],[
-+ _$2=$withval
-+ if test "$TARGET" = "cdk"; then
-+ $2=`eval echo "${targetprefix}$withval"`
-+ else
-+ $2=$withval
-+ fi
-+],[
-+ $2="\${$3}$5"
-+ if test "$TARGET" = "cdk"; then
-+ _$2=`eval echo "${target$3}$5"`
-+ else
-+ _$2=`eval echo "${$3}$5"`
-+ fi
-+])
-+
-+dnl automake <= 1.6 don't support this
-+dnl AC_SUBST($2)
-+AC_DEFINE_UNQUOTED($2,"$_$2",$7)
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_DIRECTORY,[
-+AC_REQUIRE([TUXBOX_APPS])
-+
-+if test "$TARGET" = "cdk"; then
-+ datadir="\${prefix}/share"
-+ tuxboxdatadir="\${prefix}/share/tuxbox"
-+ zoneinfodir="\${datadir}/zoneinfo"
-+ sysconfdir="\${prefix}/etc"
-+ localstatedir="\${prefix}/var"
-+ localedir="\${prefix}/var"
-+ libdir="\${prefix}/lib"
-+ targetdatadir="\${targetprefix}/share"
-+ targetsysconfdir="\${targetprefix}/etc"
-+ targetlocalstatedir="\${targetprefix}/var"
-+ targetlibdir="\${targetprefix}/lib"
-+fi
-+
-+TUXBOX_APPS_DIRECTORY_ONE(configdir,CONFIGDIR,sysconfdir,/etc,,
-+ [--with-configdir=PATH ],[where to find the config files])
-+
-+TUXBOX_APPS_DIRECTORY_ONE(datadir,DATADIR,datadir,/share,,
-+ [--with-datadir=PATH ],[where to find data])
-+
-+TUXBOX_APPS_DIRECTORY_ONE(localedir,LOCALEDIR,datadir,/share,/locale,
-+ [--with-localedir=PATH ],[where to find locales])
-+
-+TUXBOX_APPS_DIRECTORY_ONE(fontdir,FONTDIR,datadir,/share,/fonts,
-+ [--with-fontdir=PATH ],[where to find the fonts])
-+
-+TUXBOX_APPS_DIRECTORY_ONE(gamesdir,GAMESDIR,localstatedir,/var,/tuxbox/games,
-+ [--with-gamesdir=PATH ],[where games data is stored])
-+
-+TUXBOX_APPS_DIRECTORY_ONE(libdir,LIBDIR,libdir,/lib,,
-+ [--with-libdir=PATH ],[where to find the internal libs])
-+
-+TUXBOX_APPS_DIRECTORY_ONE(plugindir,PLUGINDIR,libdir,/lib,/tuxbox/plugins,
-+ [--with-plugindir=PATH ],[where to find the plugins])
-+
-+TUXBOX_APPS_DIRECTORY_ONE(tuxboxdatadir,TUXBOXDATADIR,datadir,/share,,
-+ [--with-tuxboxdatadir=PATH],[where to find tuxbox data])
-+
-+TUXBOX_APPS_DIRECTORY_ONE(zoneinfodir,ZONEINFODIR,datadir,/share,/zoneinfo,
-+ [--with-zoneinfodir=PATH ],[where to find zoneinfo db])
-+])
-+
-+dnl automake <= 1.6 needs this specifications
-+AC_SUBST(CONFIGDIR)
-+AC_SUBST(DATADIR)
-+AC_SUBST(ZONEINFODIR)
-+AC_SUBST(FONTDIR)
-+AC_SUBST(GAMESDIR)
-+AC_SUBST(LIBDIR)
-+AC_SUBST(LOCALEDIR)
-+AC_SUBST(PLUGINDIR)
-+AC_SUBST(TUXBOXDATADIR)
-+dnl end workaround
-+
-+AC_DEFUN(TUXBOX_APPS_ENDIAN,[
-+AC_CHECK_HEADERS(endian.h)
-+AC_C_BIGENDIAN
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_DRIVER,[
-+#AC_ARG_WITH(driver,
-+# [ --with-driver=PATH path for driver sources [[NONE]]],
-+# [DRIVER="$withval"],[DRIVER=""])
-+#
-+#if test -d "$DRIVER/include"; then
-+# AC_DEFINE(HAVE_DBOX2_DRIVER,1,[Define to 1 if you have the dbox2 driver sources])
-+#else
-+# AC_MSG_ERROR([can't find driver sources])
-+#fi
-+
-+#AC_SUBST(DRIVER)
-+
-+#CPPFLAGS="$CPPFLAGS -I$DRIVER/include"
-+])
-+
-+AC_DEFUN([TUXBOX_APPS_DVB],[
-+AC_ARG_WITH(dvbincludes,
-+ [ --with-dvbincludes=PATH path for dvb includes [[NONE]]],
-+ [DVBINCLUDES="$withval"],[DVBINCLUDES=""])
-+
-+if test "$DVBINCLUDES"; then
-+ CPPFLAGS="$CPPFLAGS -I$DVBINCLUDES"
-+fi
-+
-+AC_CHECK_HEADERS(ost/dmx.h,[
-+ DVB_API_VERSION=1
-+ AC_MSG_NOTICE([found dvb version 1])
-+])
-+
-+if test -z "$DVB_API_VERSION"; then
-+AC_CHECK_HEADERS(linux/dvb/version.h,[
-+ AC_LANG_PREPROC_REQUIRE()
-+ AC_REQUIRE([AC_PROG_EGREP])
-+ AC_LANG_CONFTEST([AC_LANG_SOURCE([[
-+#include <linux/dvb/version.h>
-+version DVB_API_VERSION
-+ ]])])
-+ DVB_API_VERSION=`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | $EGREP "^version" | sed "s,version\ ,,"`
-+ rm -f conftest*
-+
-+ AC_MSG_NOTICE([found dvb version $DVB_API_VERSION])
-+])
-+fi
-+
-+if test "$DVB_API_VERSION"; then
-+ AC_DEFINE(HAVE_DVB,1,[Define to 1 if you have the dvb includes])
-+ AC_DEFINE_UNQUOTED(HAVE_DVB_API_VERSION,$DVB_API_VERSION,[Define to the version of the dvb api])
-+else
-+ AC_MSG_ERROR([can't find dvb headers])
-+fi
-+])
-+
-+AC_DEFUN(_TUXBOX_APPS_LIB_CONFIG,[
-+AC_PATH_PROG($1_CONFIG,$2,no)
-+if test "$$1_CONFIG" != "no"; then
-+ if test "$TARGET" = "cdk" && check_path "$$1_CONFIG"; then
-+ AC_MSG_$3([could not find a suitable version of $2]);
-+ else
-+ $1_CFLAGS=$($$1_CONFIG --cflags)
-+ $1_LIBS=$($$1_CONFIG --libs)
-+ fi
-+fi
-+
-+AC_SUBST($1_CFLAGS)
-+AC_SUBST($1_LIBS)
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_LIB_CONFIG,[
-+_TUXBOX_APPS_LIB_CONFIG($1,$2,ERROR)
-+if test "$$1_CONFIG" = "no"; then
-+ AC_MSG_ERROR([could not find $2]);
-+fi
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_LIB_CONFIG_CHECK,[
-+_TUXBOX_APPS_LIB_CONFIG($1,$2,WARN)
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_PKGCONFIG,[
-+AC_PATH_PROG(PKG_CONFIG, pkg-config,no)
-+if test "$PKG_CONFIG" = "no" ; then
-+ AC_MSG_ERROR([could not find pkg-config]);
-+fi
-+])
-+
-+AC_DEFUN(_TUXBOX_APPS_LIB_PKGCONFIG,[
-+PKG_CHECK_MODULES($1,$2)
-+AC_SUBST($1_CFLAGS)
-+AC_SUBST($1_LIBS)
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_LIB_PKGCONFIG,[
-+_TUXBOX_APPS_LIB_PKGCONFIG($1,$2)
-+if test -z "$$1_CFLAGS" ; then
-+ AC_MSG_ERROR([could not find package $2]);
-+fi
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_LIB_PKGCONFIG_CHECK,[
-+_TUXBOX_APPS_LIB_PKGCONFIG($1,$2)
-+])
-+
-+AC_DEFUN(_TUXBOX_APPS_LIB_SYMBOL,[
-+AC_CHECK_LIB($2,$3,HAVE_$1="yes",HAVE_$1="no")
-+if test "$HAVE_$1" = "yes"; then
-+ $1_LIBS=-l$2
-+fi
-+
-+AC_SUBST($1_LIBS)
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_LIB_SYMBOL,[
-+_TUXBOX_APPS_LIB_SYMBOL($1,$2,$3,ERROR)
-+if test "$HAVE_$1" = "no"; then
-+ AC_MSG_ERROR([could not find $2]);
-+fi
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_LIB_CONFIG_SYMBOL,[
-+_TUXBOX_APPS_LIB_SYMBOL($1,$2,$3,WARN)
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_GETTEXT,[
-+AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
-+ [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
-+ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
-+ :)
-+AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-+
-+AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-+ [$ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
-+ (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
-+ :)
-+
-+AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,[$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1],:)
-+
-+AC_MSG_CHECKING([whether NLS is requested])
-+AC_ARG_ENABLE(nls,
-+ [ --disable-nls do not use Native Language Support],
-+ USE_NLS=$enableval, USE_NLS=yes)
-+AC_MSG_RESULT($USE_NLS)
-+AC_SUBST(USE_NLS)
-+
-+if test "$USE_NLS" = "yes"; then
-+ AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,[
-+ AC_TRY_LINK([
-+ #include <libintl.h>
-+ #ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-+ #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-+ #endif
-+ extern int _nl_msg_cat_cntr;
-+ extern int *_nl_domain_bindings;
-+ ],[
-+ bindtextdomain ("", "");
-+ return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings;
-+ ], gt_cv_func_gnugettext_libc=yes, gt_cv_func_gnugettext_libc=no
-+ )]
-+ )
-+
-+ if test "$gt_cv_func_gnugettext_libc" = "yes"; then
-+ AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.])
-+ gt_use_preinstalled_gnugettext=yes
-+ else
-+ USE_NLS=no
-+ fi
-+fi
-+
-+if test -f "$srcdir/po/LINGUAS"; then
-+ ALL_LINGUAS=$(sed -e "/^#/d" "$srcdir/po/LINGUAS")
-+fi
-+
-+POFILES=
-+GMOFILES=
-+UPDATEPOFILES=
-+DUMMYPOFILES=
-+for lang in $ALL_LINGUAS; do
-+ POFILES="$POFILES $srcdirpre$lang.po"
-+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
-+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
-+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
-+done
-+INST_LINGUAS=
-+if test -n "$ALL_LINGUAS"; then
-+ for presentlang in $ALL_LINGUAS; do
-+ useit=no
-+ if test -n "$LINGUAS"; then
-+ desiredlanguages="$LINGUAS"
-+ else
-+ desiredlanguages="$ALL_LINGUAS"
-+ fi
-+ for desiredlang in $desiredlanguages; do
-+ case "$desiredlang" in
-+ "$presentlang"*) useit=yes;;
-+ esac
-+ done
-+ if test $useit = yes; then
-+ INST_LINGUAS="$INST_LINGUAS $presentlang"
-+ fi
-+ done
-+fi
-+CATALOGS=
-+if test -n "$INST_LINGUAS"; then
-+ for lang in $INST_LINGUAS; do
-+ CATALOGS="$CATALOGS $lang.gmo"
-+ done
-+fi
-+AC_SUBST(POFILES)
-+AC_SUBST(GMOFILES)
-+AC_SUBST(UPDATEPOFILES)
-+AC_SUBST(DUMMYPOFILES)
-+AC_SUBST(CATALOGS)
-+])
-+
-+dnl backward compatiblity
-+AC_DEFUN([AC_GNU_SOURCE],
-+[AH_VERBATIM([_GNU_SOURCE],
-+[/* Enable GNU extensions on systems that have them. */
-+#ifndef _GNU_SOURCE
-+# undef _GNU_SOURCE
-+#endif])dnl
-+AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
-+AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
-+AC_DEFINE([_GNU_SOURCE])
-+])
-+
-+AC_DEFUN([AC_PROG_EGREP],
-+[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
-+ [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-+ then ac_cv_prog_egrep='grep -E'
-+ else ac_cv_prog_egrep='egrep'
-+ fi])
-+ EGREP=$ac_cv_prog_egrep
-+ AC_SUBST([EGREP])
-+])
-+
-+AC_DEFUN([AC_PYTHON_DEVEL],[
-+ #
-+ # should allow for checking of python version here...
-+ #
-+ AC_REQUIRE([AM_PATH_PYTHON])
-+
-+ # Check for Python include path
-+ AC_MSG_CHECKING([for Python include path])
-+ python_path=`echo $PYTHON | sed "s,/bin.*$,,"`
-+ for i in "$python_path/include/python$PYTHON_VERSION/" "$python_path/include/python/" "$python_path/" ; do
-+ python_path=`find $i -type f -name Python.h -print | sed "1q"`
-+ if test -n "$python_path" ; then
-+ break
-+ fi
-+ done
-+ python_path=`echo $python_path | sed "s,/Python.h$,,"`
-+ AC_MSG_RESULT([$python_path])
-+ if test -z "$python_path" ; then
-+ AC_MSG_ERROR([cannot find Python include path])
-+ fi
-+ AC_SUBST([PYTHON_CPPFLAGS],[-I$python_path])
-+
-+ # Check for Python library path
-+ AC_MSG_CHECKING([for Python library path])
-+ python_path=`echo $PYTHON | sed "s,/bin.*$,,"`
-+ for i in "$python_path/lib/python$PYTHON_VERSION/config/" "$python_path/lib/python$PYTHON_VERSION/" "$python_path/lib/python/config/" "$python_path/lib/python/" "$python_path/" ; do
-+ python_path=`find $i -type f -name libpython$PYTHON_VERSION.* -print | sed "1q"`
-+ if test -n "$python_path" ; then
-+ break
-+ fi
-+ done
-+ python_path=`echo $python_path | sed "s,/libpython.*$,,"`
-+ AC_MSG_RESULT([$python_path])
-+ if test -z "$python_path" ; then
-+ AC_MSG_ERROR([cannot find Python library path])
-+ fi
-+ AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -lpython$PYTHON_VERSION"])
-+ #
-+ python_site=`echo $python_path | sed "s/config/site-packages/"`
-+ AC_SUBST([PYTHON_SITE_PKG],[$python_site])
-+])
---- tuxcom_cvs/configure.ac 1970-01-01 01:00:00.000000000 +0100
-+++ tuxcom/configure.ac 2008-11-03 14:05:20.449916344 +0100
-@@ -0,0 +1,18 @@
-+# -*- Autoconf -*-
-+# Process this file with autoconf to produce a configure script.
-+
-+AC_INIT(tuxbox-tuxcom-32bpp,1.13)
-+AM_INIT_AUTOMAKE(tuxbox-tuxcom-32bpp,1.13)
-+
-+TUXBOX_APPS
-+TUXBOX_APPS_DIRECTORY
-+TUXBOX_APPS_DVB
-+
-+# Checks for programs.
-+AC_PROG_CXX
-+AC_PROG_CC
-+
-+TUXBOX_APPS_LIB_CONFIG(FREETYPE,freetype-config)
-+
-+AC_OUTPUT(Makefile)
-+AC_OUTPUT(font/Makefile)
-diff -Naur tuxcom_cvs/font/Makefile.am tuxcom/font/Makefile.am
---- tuxcom_cvs/font/Makefile.am 1970-01-01 01:00:00.000000000 +0100
-+++ tuxcom/font/Makefile.am 2008-11-03 13:56:11.917916738 +0100
-@@ -0,0 +1,4 @@
-+installdir = $(FONTDIR)
-+
-+install_DATA = \
-+ pakenham.ttf
+++ /dev/null
-diff -auNr tuxcom/tuxcom.c tuxcom-freetype/tuxcom.c
---- tuxcom/tuxcom.c 2008-12-27 16:54:07.000000000 +0100
-+++ tuxcom-freetype/tuxcom.c 2008-12-27 16:59:35.000000000 +0100
-@@ -322,9 +322,15 @@
-
- switch (size)
- {
-+#if ((defined(FREETYPE_MAJOR)) && (((FREETYPE_MAJOR == 2) && (((FREETYPE_MINOR == 1) && (FREETYPE_PATCH >= 9)) || (FREETYPE_MINOR > 1))) || (FREETYPE_MAJOR > 2)))
-+ case VERY_SMALL: desc.width = desc.height = FONTHEIGHT_VERY_SMALL; break;
-+ case SMALL : desc.width = desc.height = FONTHEIGHT_SMALL ; break;
-+ case BIG : desc.width = desc.height = FONTHEIGHT_BIG ; break;
-+#else
- case VERY_SMALL: desc.font.pix_width = desc.font.pix_height = FONTHEIGHT_VERY_SMALL; break;
- case SMALL : desc.font.pix_width = desc.font.pix_height = FONTHEIGHT_SMALL ; break;
- case BIG : desc.font.pix_width = desc.font.pix_height = FONTHEIGHT_BIG ; break;
-+#endif
- }
-
- //reset kerning
-@@ -354,9 +360,15 @@
-
- switch (size)
- {
-+#if ((defined(FREETYPE_MAJOR)) && (((FREETYPE_MAJOR == 2) && (((FREETYPE_MINOR == 1) && (FREETYPE_PATCH >= 9)) || (FREETYPE_MINOR > 1))) || (FREETYPE_MAJOR > 2)))
-+ case VERY_SMALL: desc.width = desc.height = FONTHEIGHT_VERY_SMALL; break;
-+ case SMALL : desc.width = desc.height = FONTHEIGHT_SMALL ; break;
-+ case BIG : desc.width = desc.height = FONTHEIGHT_BIG ; break;
-+#else
- case VERY_SMALL: desc.font.pix_width = desc.font.pix_height = FONTHEIGHT_VERY_SMALL; break;
- case SMALL : desc.font.pix_width = desc.font.pix_height = FONTHEIGHT_SMALL ; break;
- case BIG : desc.font.pix_width = desc.font.pix_height = FONTHEIGHT_BIG ; break;
-+#endif
- }
-
- //set alignment
-@@ -608,17 +620,26 @@
- return;
- }
- else
-+#if ((defined(FREETYPE_MAJOR)) && (((FREETYPE_MAJOR == 2) && (((FREETYPE_MINOR == 1) && (FREETYPE_PATCH >= 9)) || (FREETYPE_MINOR > 1))) || (FREETYPE_MAJOR > 2)))
-+ desc.face_id = FONT2;
-+#else
- desc.font.face_id = FONT2;
-+#endif
- }
- else
-+#if ((defined(FREETYPE_MAJOR)) && (((FREETYPE_MAJOR == 2) && (((FREETYPE_MINOR == 1) && (FREETYPE_PATCH >= 9)) || (FREETYPE_MINOR > 1))) || (FREETYPE_MAJOR > 2)))
-+ desc.face_id = FONT;
-+#else
- desc.font.face_id = FONT;
--
-+#endif
-
- use_kerning = FT_HAS_KERNING(face);
-
--
-+#if ((defined(FREETYPE_MAJOR)) && (((FREETYPE_MAJOR == 2) && (((FREETYPE_MINOR == 1) && (FREETYPE_PATCH >= 9)) || (FREETYPE_MINOR > 1))) || (FREETYPE_MAJOR > 2)))
-+ desc.flags = FT_LOAD_MONOCHROME;
-+#else
- desc.image_type = ftc_image_mono;
--
-+#endif
-
-
- //init backbuffer
-diff -auNr tuxcom/tuxcom.h tuxcom-freetype/tuxcom.h
---- tuxcom/tuxcom.h 2008-12-27 16:54:07.000000000 +0100
-+++ tuxcom-freetype/tuxcom.h 2008-12-27 16:55:23.000000000 +0100
-@@ -191,6 +191,9 @@
-
-
- //freetype stuff
-+#if ((defined(FREETYPE_MAJOR)) && (((FREETYPE_MAJOR == 2) && (((FREETYPE_MINOR == 1) && (FREETYPE_PATCH >= 9)) || (FREETYPE_MINOR > 1))) || (FREETYPE_MAJOR > 2)))
-+typedef FTC_ImageTypeRec FTC_Image_Desc;
-+#endif
-
- //#define FONT "/usr/share/fonts/md_khmurabi_10.ttf"
- #define FONT "/usr/share/fonts/pakenham.ttf"
+++ /dev/null
-DEPENDS = "freetype dreambox-dvbincludes libtuxtxt"
-DESCRIPTION = "tuxbox tuxtxt for 32bit framebuffer"
-MAINTAINER = "Sven Karschewski <seddi@i-have-a-dreambox.com>"
-
-SRCDATE = "20090130"
-PV = "0.0+cvs${SRCDATE}"
-PR = "r0"
-
-SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/tuxbox/plugins/tuxtxt;method=ext \
- file://makefiles.diff;patch=1;pnum=1 \
- file://nonblocking.diff;patch=1 \
- file://32bpp.diff;patch=1;pnum=1 \
- file://add_new_default_conf.diff;patch=1;pnum=1 \
- file://add_advanced_rc.diff;patch=1 \
- file://makelib.diff;patch=1 \
- file://allow_different_demux.diff;patch=1 \
- file://plugin.py"
-
-FILES_${PN} = "/usr/lib/libtuxtxt32bpp.so* /usr/share/fonts /usr/lib/enigma2/python/Plugins/Extensions/Tuxtxt /etc/tuxtxt"
-
-S = "${WORKDIR}/tuxtxt"
-
-CFLAGS_append = " -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
-
-inherit autotools pkgconfig
-
-bindir = "/usr/bin"
-sbindir = "/usr/sbin"
-
-EXTRA_OECONF = "--with-target=native"
-
-do_configure_prepend() {
- touch ${S}/python/__init__.py
- install -m 0644 ${WORKDIR}/plugin.py ${S}/python
-}
-
-do_stage() {
- oe_libinstall -so -C .libs libtuxtxt32bpp ${STAGING_LIBDIR}
- install -m 0644 tuxtxt.h ${STAGING_INCDIR}/
-}
+++ /dev/null
-diff -u tuxtxt_orig/tuxtxt.c tuxtxt/tuxtxt.c
---- tuxtxt_orig/tuxtxt.c 2009-01-29 21:36:31.000000000 +0100
-+++ tuxtxt/tuxtxt.c 2009-01-29 21:38:42.000000000 +0100
-@@ -7,12 +7,43 @@
- * and DBLuelle <dbluelle@blau-weissoedingen.de> *
- * russian and arabic support by Leonid Protasov <Lprot@mail.ru> *
- * *
-+ * ported 2006 to Dreambox 7025 / 32Bit framebuffer *
-+ * by Seddi <seddi@i-have-a-dreambox.com> *
-+ * *
-+ * ported 32Bit framebuffer to Tuxtxt v1.99 (2008) *
-+ * by the PLi team (Sat-Turner) *
-+ * *
-+ * ported to 20090130 *
-+ * by the PLi team (pieterg) *
-+ * *
- ******************************************************************************/
-
-
-
- #include "tuxtxt.h"
-
-+static char saved_wss[32];
-+static char saved_pin8[32];
-+
-+void readproc(const char* source, char *dest)
-+{
-+ FILE *f=fopen(source, "rt");
-+ if(f)
-+ {
-+ fgets(dest, 255, f);
-+ fclose(f);
-+ }
-+}
-+
-+void writeproc(const char* dest, const char *value)
-+{
-+ FILE *f=fopen(dest, "w");
-+ if (f)
-+ {
-+ fwrite(value, strlen(value), 1, f);
-+ fclose(f);
-+ }
-+}
-
- int getIndexOfPageInHotlist()
- {
-@@ -137,10 +168,11 @@
- * plugin_exec *
- ******************************************************************************/
-
--void plugin_exec(PluginParam *par)
-+int main(int argc, char **argv)
- {
- char cvs_revision[] = "$Revision: 1.108 $";
-
-+ int cnt=0;
- #if !TUXTXT_CFG_STANDALONE
- int initialized = tuxtxt_init();
- if ( initialized )
-@@ -150,31 +182,71 @@
- /* show versioninfo */
- sscanf(cvs_revision, "%*s %s", versioninfo);
- printf("TuxTxt %s\n", versioninfo);
-+ printf("for 32bpp framebuffer\n");
-
- tuxtxt_SetRenderingDefaults(&renderinfo);
- /* get params */
- tuxtxt_cache.vtxtpid = renderinfo.fb = lcd = rc = renderinfo.sx = renderinfo.ex = renderinfo.sy = renderinfo.ey = -1;
-+ if (argc==1)
-+ {
-+ printf("\nUSAGE: tuxtxt vtpid\n");
-+ printf("No PID given, so scanning for PIDs ...\n\n");
-+ tuxtxt_cache.vtxtpid=0;
-+ }
-+ else
-+ {
-+ tuxtxt_cache.vtxtpid = atoi(argv[1]);
-+ }
-+
-+ /* open Framebuffer */
-+ if ((renderinfo.fb=open("/dev/fb/0", O_RDWR)) == -1)
-+ {
-+ perror("TuxTxt <open /dev/fb/0>");
-+ return 0;
-+ }
-+ rc=-1;
-+ while(1)
-+ {
-+ struct stat s;
-+ char tmp[128];
-+ sprintf(tmp, "/dev/input/event%d", cnt);
-+ if (stat(tmp, &s))
-+ break;
-+ /* open Remote Control */
-+ if ((rc=open(tmp, O_RDONLY)) == -1)
-+ {
-+ perror("TuxTxt <open remote control>");
-+ return 0;
-+ }
-+ if (ioctl(rc, EVIOCGNAME(128), tmp) < 0)
-+ perror("EVIOCGNAME failed");
-+ if (strstr(tmp, "remote control"))
-+ break;
-+ close(rc);
-+ rc=-1;
-+ ++cnt;
-+ }
-+
-+ if (rc == -1)
-+ {
-+ printf("couldnt find correct input device!!!\n");
-+ return -1;
-+ }
-
-- for (; par; par = par->next)
-+ /* open LCD */
-+ if ((lcd=open("/dev/dbox/lcd0", O_RDWR)) == -1)
- {
-- if (!strcmp(par->id, P_ID_VTXTPID))
-- tuxtxt_cache.vtxtpid = atoi(par->val);
-- else if (!strcmp(par->id, P_ID_FBUFFER))
-- renderinfo.fb = atoi(par->val);
-- else if (!strcmp(par->id, P_ID_LCD))
-- lcd = atoi(par->val);
-- else if (!strcmp(par->id, P_ID_RCINPUT))
-- rc = atoi(par->val);
-- else if (!strcmp(par->id, P_ID_OFF_X))
-- renderinfo.sx = atoi(par->val);
-- else if (!strcmp(par->id, P_ID_END_X))
-- renderinfo.ex = atoi(par->val);
-- else if (!strcmp(par->id, P_ID_OFF_Y))
-- renderinfo.sy = atoi(par->val);
-- else if (!strcmp(par->id, P_ID_END_Y))
-- renderinfo.ey = atoi(par->val);
-+ perror("TuxTxt <open /dev/dbox/lcd0>");
-+ return 0;
- }
-
-+ renderinfo.previousbackcolor = tuxtxt_color_transp;
-+ renderinfo.zoommode = 0;
-+ renderinfo.sx = 80;
-+ renderinfo.ex = 620;
-+ renderinfo.sy = 30;
-+ renderinfo.ey = 555;
-+
- if (tuxtxt_cache.vtxtpid == -1 || renderinfo.fb == -1 || rc == -1 || renderinfo.sx == -1 || renderinfo.ex == -1 || renderinfo.sy == -1 || renderinfo.ey == -1)
- {
- printf("TuxTxt <Invalid Param(s)>\n");
-@@ -242,6 +314,7 @@
- int vendor = 3; /* values unknown, rely on requested values */
- #endif
-
-+#if 0
- if (vendor < 3) /* scart-parameters only known for 3 dboxes, FIXME: order must be like in info.h */
- {
- for (i = 0; i < 6; i++) /* FIXME: FBLK seems to cause troubles */
-@@ -274,6 +347,7 @@
- perror("TuxTxt <ioctl(avs)>");
- }
- }
-+#endif
- continue; /* otherwise ignore exit key */
- }
- default:
-@@ -487,6 +561,14 @@
- dumpl25 = ival & 1;
- else if (1 == sscanf(line, "UseTTF %i", &ival))
- renderinfo.usettf = ival & 1;
-+ else if (1 == sscanf(line, "StartX %i", &ival))
-+ renderinfo.sx = ival;
-+ else if (1 == sscanf(line, "EndX %i", &ival))
-+ renderinfo.ex = ival;
-+ else if (1 == sscanf(line, "StartY %i", &ival))
-+ renderinfo.sy = ival;
-+ else if (1 == sscanf(line, "EndY %i", &ival))
-+ renderinfo.ey = ival;
- }
- fclose(conf);
- }
-@@ -534,6 +616,12 @@
- #endif
-
-
-+ readproc("/proc/stb/denc/0/wss", saved_wss);
-+ writeproc("/proc/stb/denc/0/wss", saamodes[renderinfo.screen_mode1]);
-+
-+ readproc("/proc/stb/avs/0/sb", saved_pin8);
-+ writeproc("/proc/stb/avs/0/sb", fncmodes[renderinfo.screen_mode1]);
-+
- /* setup rc */
- ioctl(rc, RC_IOCTL_BCODES, 1);
-
-@@ -568,8 +656,6 @@
- if (tuxtxt_cache.dmx != -1)
- close(tuxtxt_cache.dmx);
- tuxtxt_cache.dmx = -1;
--#else
-- tuxtxt_stop();
- #endif
-
- if (restoreaudio)
-@@ -579,6 +665,7 @@
- #else
- int vendor = 3; /* values unknown, rely on requested values */
- #endif
-+#if 0
- if (vendor < 3) /* scart-parameters only known for 3 dboxes, FIXME: order must be like in info.h */
- {
- for (i = 1; i < 6; i += 2) /* restore dvb audio */
-@@ -588,9 +675,17 @@
- perror("TuxTxt <ioctl(avs)>");
- }
- }
-+#endif
- }
-
-+ /* close lcd */
-+ close(lcd);
-+
-+ /* close rc */
-+ close(rc);
-
-+ lcd = rc = -1;
-+
- if (hotlistchanged)
- savehotlist();
-
-@@ -623,10 +718,20 @@
- fprintf(conf, "ShowLevel2p5 %d\n", renderinfo.showl25);
- fprintf(conf, "DumpLevel2p5 %d\n", dumpl25);
- fprintf(conf, "UseTTF %d\n", renderinfo.usettf);
-+ fprintf(conf, "StartX %d\n", renderinfo.sx);
-+ fprintf(conf, "EndX %d\n", renderinfo.ex);
-+ fprintf(conf, "StartY %d\n", renderinfo.sy);
-+ fprintf(conf, "EndY %d\n", renderinfo.ey);
- fclose(conf);
- }
- }
- tuxtxt_EndRendering(&renderinfo);
-+
-+ /* close framebuffer */
-+ close(renderinfo.fb);
-+
-+ writeproc("/proc/stb/avs/0/sb", saved_pin8);
-+ writeproc("/proc/stb/denc/0/wss", saved_wss);
- }
- /******************************************************************************
- * GetTeletextPIDs *
-@@ -1308,6 +1413,7 @@
- memset(&menu[Menu_Width*MenuLine[M_COL] + 3+renderinfo.color_mode ], 0x20,24-renderinfo.color_mode);
- Menu_HighlightLine(menu, MenuLine[menuitem], 1);
- tuxtxt_setcolors(&renderinfo,(unsigned short *)tuxtxt_defaultcolors, 0, tuxtxt_color_SIZECOLTABLE);
-+ Menu_Init(menu, current_pid, menuitem, hotindex);
- break;
- case M_TRA:
- saveconfig = 1;
-@@ -1319,6 +1425,7 @@
- memset(&menu[Menu_Width*MenuLine[M_TRA] + 3+renderinfo.trans_mode ], 0x20,24-renderinfo.trans_mode);
- Menu_HighlightLine(menu, MenuLine[menuitem], 1);
- tuxtxt_setcolors(&renderinfo,(unsigned short *)tuxtxt_defaultcolors, 0, tuxtxt_color_SIZECOLTABLE);
-+ Menu_Init(menu, current_pid, menuitem, hotindex);
- break;
- case M_PID:
- {
-@@ -1421,6 +1528,7 @@
- memset(&menu[Menu_Width*MenuLine[M_COL] + 3+renderinfo.color_mode ], 0x20,24-renderinfo.color_mode);
- Menu_HighlightLine(menu, MenuLine[menuitem], 1);
- tuxtxt_setcolors(&renderinfo,(unsigned short *)tuxtxt_defaultcolors, 0, tuxtxt_color_SIZECOLTABLE);
-+ Menu_Init(menu, current_pid, menuitem, hotindex);
- break;
- case M_TRA:
- saveconfig = 1;
-@@ -1432,6 +1540,7 @@
- memset(&menu[Menu_Width*MenuLine[M_TRA] + 3+renderinfo.trans_mode ], 0x20,24-renderinfo.trans_mode);
- Menu_HighlightLine(menu, MenuLine[menuitem], 1);
- tuxtxt_setcolors(&renderinfo,(unsigned short *)tuxtxt_defaultcolors, 0, tuxtxt_color_SIZECOLTABLE);
-+ Menu_Init(menu, current_pid, menuitem, hotindex);
- break;
- case M_PID:
- if (!getpidsdone)
-@@ -1731,8 +1840,8 @@
- memcpy(&menu[Menu_Width*MenuLine[M_SC1] + Menu_Width - 5], &configonoff[menulanguage][renderinfo.screen_mode1 ? 3 : 0], 3);
- Menu_HighlightLine(menu, MenuLine[menuitem], 1);
-
-- ioctl(renderinfo.avs, AVSIOSSCARTPIN8, &fncmodes[renderinfo.screen_mode1]);
-- ioctl(renderinfo.saa, SAAIOSWSS, &saamodes[renderinfo.screen_mode1]);
-+ writeproc("/proc/stb/avs/0/sb", fncmodes[renderinfo.screen_mode1]);
-+ writeproc("/proc/stb/denc/0/wss", saamodes[renderinfo.screen_mode1]);
-
- break;
-
-@@ -1857,7 +1966,8 @@
- }
-
- /* generate pagenumber */
-- temp_page |= Number << renderinfo.inputcounter*4;
-+ if (renderinfo.inputcounter >= 0)
-+ temp_page |= Number << renderinfo.inputcounter*4;
-
- renderinfo.inputcounter--;
-
-@@ -2318,8 +2428,8 @@
- else if (renderinfo.transpmode == 1) /* semi-transparent BG with FG text */
- {
- /* restore videoformat */
-- ioctl(renderinfo.avs, AVSIOSSCARTPIN8, &renderinfo.fnc_old);
-- ioctl(renderinfo.saa, SAAIOSWSS, &renderinfo.saa_old);
-+ writeproc("/proc/stb/avs/0/sb", saved_pin8);
-+ writeproc("/proc/stb/denc/0/wss", saved_wss);
-
- tuxtxt_ClearBB(&renderinfo,tuxtxt_color_transp);
- tuxtxt_cache.pageupdate = 1;
-@@ -2327,8 +2437,8 @@
- else /* TV mode */
- {
- /* restore videoformat */
-- ioctl(renderinfo.avs, AVSIOSSCARTPIN8, &renderinfo.fnc_old);
-- ioctl(renderinfo.saa, SAAIOSWSS, &renderinfo.saa_old);
-+ writeproc("/proc/stb/avs/0/sb", saved_pin8);
-+ writeproc("/proc/stb/denc/0/wss", saved_wss);
-
- tuxtxt_ClearFB(&renderinfo,tuxtxt_color_transp);
- renderinfo.clearbbcolor = tuxtxt_cache.FullScrColor;
-@@ -2765,8 +2875,8 @@
- case KEY_VOLUMEDOWN: RCCode = RC_MINUS; break;
- case KEY_MUTE: RCCode = RC_MUTE; break;
- case KEY_HELP: RCCode = RC_HELP; break;
-- case KEY_SETUP: RCCode = RC_DBOX; break;
-- case KEY_HOME: RCCode = RC_HOME; break;
-+ case KEY_MENU: RCCode = RC_DBOX; break;
-+ case KEY_EXIT: RCCode = RC_HOME; break;
- case KEY_POWER: RCCode = RC_STANDBY; break;
- }
- return 1;
-@@ -2794,10 +2904,3 @@
-
- return 0;
- }
--/* Local Variables: */
--/* indent-tabs-mode:t */
--/* tab-width:3 */
--/* c-basic-offset:3 */
--/* comment-column:0 */
--/* fill-column:120 */
--/* End: */
-diff -u tuxtxt_orig/tuxtxt.h tuxtxt/tuxtxt.h
---- tuxtxt_orig/tuxtxt.h 2008-12-26 19:41:28.000000000 +0100
-+++ tuxtxt/tuxtxt.h 2009-01-29 21:38:18.000000000 +0100
-@@ -1,3 +1,6 @@
-+#ifndef __tuxtxt_h__
-+#define __tuxtxt_h__
-+
- /******************************************************************************
- * <<< TuxTxt - Teletext Plugin >>> *
- * *
-@@ -7,7 +10,16 @@
- * and DBLuelle <dbluelle@blau-weissoedingen.de> *
- * russian and arabic support by Leonid Protasov <Lprot@mail.ru> *
- * *
-- ******************************************************************************/
-+ * ported 2006 to Dreambox 7025 / 32Bit framebuffer *
-+ * by Seddi <seddi@i-have-a-dreambox.com> *
-+ * *
-+ * ported 32Bit framebuffer to Tuxtxt v1.99 (2008) *
-+ * by the PLi team (Sat-Turner) *
-+ * *
-+ * ported to 1.106 (2008) *
-+ * by the PLi team (pieterg) *
-+ * *
-+******************************************************************************/
-
- #define TUXTXT_CFG_STANDALONE 0 // 1:plugin only 0:use library
- #define TUXTXT_DEBUG 0
-@@ -37,7 +49,6 @@
- #include <sys/mman.h>
-
- #include <dbox/fp.h>
--#include <plugin.h>
- #include <dbox/lcd-ks0713.h>
-
-
-@@ -1091,3 +1102,5 @@
- /* comment-column:0 */
- /* fill-column:120 */
- /* End: */
-+
-+#endif
+++ /dev/null
-diff -u tuxtxt_orig/tuxtxt.c tuxtxt/tuxtxt.c
---- tuxtxt_orig/tuxtxt.c 2009-01-29 21:38:42.000000000 +0100
-+++ tuxtxt/tuxtxt.c 2009-01-29 21:44:29.000000000 +0100
-@@ -173,6 +173,7 @@
- char cvs_revision[] = "$Revision: 1.108 $";
-
- int cnt=0;
-+ int rc_num = 0;
- #if !TUXTXT_CFG_STANDALONE
- int initialized = tuxtxt_init();
- if ( initialized )
-@@ -186,7 +187,7 @@
-
- tuxtxt_SetRenderingDefaults(&renderinfo);
- /* get params */
-- tuxtxt_cache.vtxtpid = renderinfo.fb = lcd = rc = renderinfo.sx = renderinfo.ex = renderinfo.sy = renderinfo.ey = -1;
-+ tuxtxt_cache.vtxtpid = renderinfo.fb = lcd = renderinfo.sx = renderinfo.ex = renderinfo.sy = renderinfo.ey = -1;
- if (argc==1)
- {
- printf("\nUSAGE: tuxtxt vtpid\n");
-@@ -204,8 +205,8 @@
- perror("TuxTxt <open /dev/fb/0>");
- return 0;
- }
-- rc=-1;
-- while(1)
-+ rc[0] = rc[1] =-1;
-+ while(rc_num < 2)
- {
- struct stat s;
- char tmp[128];
-@@ -213,23 +214,26 @@
- if (stat(tmp, &s))
- break;
- /* open Remote Control */
-- if ((rc=open(tmp, O_RDONLY)) == -1)
-+ if ((rc[rc_num]=open(tmp, O_RDONLY)) == -1)
- {
- perror("TuxTxt <open remote control>");
- return 0;
- }
-- if (ioctl(rc, EVIOCGNAME(128), tmp) < 0)
-+ if (ioctl(rc[rc_num], EVIOCGNAME(128), tmp) < 0)
- perror("EVIOCGNAME failed");
-- if (strstr(tmp, "remote control"))
-- break;
-- close(rc);
-- rc=-1;
-+ if (!strstr(tmp, "remote control"))
-+ {
-+ close(rc[rc_num]);
-+ rc[rc_num] = -1;
-+ }
-+ else
-+ ++rc_num;
- ++cnt;
- }
-
-- if (rc == -1)
-+ if (rc[0] == -1)
- {
-- printf("couldnt find correct input device!!!\n");
-+ printf("couldnt find usable input device!!!\n");
- return -1;
- }
-
-@@ -247,7 +251,7 @@
- renderinfo.sy = 30;
- renderinfo.ey = 555;
-
-- if (tuxtxt_cache.vtxtpid == -1 || renderinfo.fb == -1 || rc == -1 || renderinfo.sx == -1 || renderinfo.ex == -1 || renderinfo.sy == -1 || renderinfo.ey == -1)
-+ if (tuxtxt_cache.vtxtpid == -1 || renderinfo.fb == -1 || renderinfo.sx == -1 || renderinfo.ex == -1 || renderinfo.sy == -1 || renderinfo.ey == -1)
- {
- printf("TuxTxt <Invalid Param(s)>\n");
- return;
-@@ -623,7 +627,8 @@
- writeproc("/proc/stb/avs/0/sb", fncmodes[renderinfo.screen_mode1]);
-
- /* setup rc */
-- ioctl(rc, RC_IOCTL_BCODES, 1);
-+ if (rc[0] >= 0) ioctl(rc[0], RC_IOCTL_BCODES, 1);
-+ if (rc[1] >= 0) ioctl(rc[1], RC_IOCTL_BCODES, 1);
-
-
-
-@@ -682,9 +687,12 @@
- close(lcd);
-
- /* close rc */
-- close(rc);
-+ if (rc[0] >= 0)
-+ close(rc[0]);
-+ if (rc[1] >= 0)
-+ close(rc[1]);
-
-- lcd = rc = -1;
-+ lcd = rc[0] = rc[1] = -1;
-
- if (hotlistchanged)
- savehotlist();
-@@ -2819,20 +2827,28 @@
- timeout.tv_sec = 0;
- timeout.tv_usec = 100000;
- /* get code */
-- if (rc >= 0)
-+ if (rc[0] >= 0)
-+ {
-+ FD_SET(rc[0], &rset);
-+ if (rc[0] > maxfd)
-+ {
-+ maxfd = rc[0];
-+ }
-+ }
-+ if (rc[1] >= 0)
- {
-- FD_SET(rc, &rset);
-- if (rc > maxfd)
-+ FD_SET(rc[1], &rset);
-+ if (rc[1] > maxfd)
- {
-- maxfd = rc;
-+ maxfd = rc[1];
- }
- }
- if (select(maxfd + 1, &rset, NULL, NULL, &timeout) > 0)
- {
-- if (rc >= 0 && FD_ISSET(rc, &rset))
-+ if (rc[0] >= 0 && FD_ISSET(rc[0], &rset))
- {
- #if HAVE_DVB_API_VERSION < 3
-- read(rc, &RCCode, 2);
-+ read(rc[0], &RCCode, 2);
- }
- if (RCCode != LastKey)
- {
-@@ -2842,7 +2858,11 @@
- {
- switch (RCCode)
- #else
-- read(rc, &ev, sizeof(ev));
-+ read(rc[0], &ev, sizeof(ev));
-+ }
-+ else if (rc[1] >= 0 && FD_ISSET(rc[1], &rset))
-+ {
-+ read(rc[1], &ev, sizeof(ev));
- }
- if (ev.value)
- {
-Only in tuxtxt_orig/: tuxtxt.c.orig
-diff -u tuxtxt_orig/tuxtxt.h tuxtxt/tuxtxt.h
---- tuxtxt_orig/tuxtxt.h 2009-01-29 21:38:18.000000000 +0100
-+++ tuxtxt/tuxtxt.h 2009-01-29 21:44:29.000000000 +0100
-@@ -209,7 +209,7 @@
- int hotlist[10];
- int maxhotlist;
-
--int rc, lcd;
-+int rc[2], lcd;
- int lastpage;
- int savedscreenmode;
- char dumpl25;
+++ /dev/null
-diff -Naur tuxtxt_org/tuxtxt2.conf tuxtxt_32bpp/tuxtxt2.conf
---- tuxtxt/tuxtxt2.conf 1970-01-01 01:00:00.000000000 +0100
-+++ tuxtxt/tuxtxt2.conf 2006-03-10 22:07:15.000000000 +0100
-@@ -0,0 +1,23 @@
-+ScreenMode16x9Normal 1
-+ScreenMode16x9Divided 1
-+Brightness 16
-+MenuLanguage 1
-+AutoNational 1
-+NationalSubset 5
-+SwapUpDown 0
-+ShowHexPages 0
-+Transparency 0xA
-+TTFWidthFactor16 28
-+TTFHeightFactor16 16
-+TTFShiftX 0
-+TTFShiftY 0
-+Screenmode 0
-+ShowFLOF 1
-+Show39 1
-+ShowLevel2p5 1
-+DumpLevel2p5 0
-+UseTTF 0
-+StartX 50
-+EndX 670
-+StartY 30
-+EndY 555
-diff -Naur tuxtxt_org/tuxtxt.conf tuxtxt_32bpp/tuxtxt.conf
---- tuxtxt/tuxtxt.conf 2006-03-10 22:13:26.000000000 +0100
-+++ tuxtxt/tuxtxt.conf 1970-01-01 01:00:00.000000000 +0100
-@@ -1,5 +0,0 @@
--ScreenMode16x9Normal 0
--ScreenMode16x9Divided 0
--ColorDimmed 1
--AutoNational 1
--NationalSubset 4
+++ /dev/null
-diff -u tuxtxt_orig/tuxtxt.c tuxtxt/tuxtxt.c
---- tuxtxt_orig/tuxtxt.c 2009-01-29 21:52:19.000000000 +0100
-+++ tuxtxt/tuxtxt.c 2009-01-29 21:54:31.000000000 +0100
-@@ -168,7 +168,7 @@
- * plugin_exec *
- ******************************************************************************/
-
--int tuxtxt_run_ui(int pid)
-+int tuxtxt_run_ui(int pid, int demux)
- {
- char cvs_revision[] = "$Revision: 1.108 $";
-
-@@ -180,6 +180,12 @@
- tuxtxt_cache.page = 0x100;
- #endif
-
-+#if HAVE_DVB_API_VERSION < 3
-+ snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/card0/demux%d", demux);
-+#else
-+ snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/adapter0/demux%d", demux);
-+#endif
-+
- /* show versioninfo */
- sscanf(cvs_revision, "%*s %s", versioninfo);
- printf("TuxTxt %s\n", versioninfo);
-@@ -612,7 +618,7 @@
- tuxtxt_init_demuxer();
- tuxtxt_start_thread();
- #else
-- tuxtxt_start(tuxtxt_cache.vtxtpid);
-+ tuxtxt_start(tuxtxt_cache.vtxtpid, -1);
- #endif
-
-
-@@ -1817,7 +1823,7 @@
- tuxtxt_cache.vtxtpid = pid_table[current_pid].vtxt_pid;
- tuxtxt_start_thread();
- #else
-- tuxtxt_start(pid_table[current_pid].vtxt_pid);
-+ tuxtxt_start(pid_table[current_pid].vtxt_pid, -1);
- #endif
- }
- // tuxtxt_cache.pageupdate = 1;
-diff -u tuxtxt_orig/tuxtxt.h tuxtxt/tuxtxt.h
---- tuxtxt_orig/tuxtxt.h 2009-01-29 21:44:29.000000000 +0100
-+++ tuxtxt/tuxtxt.h 2009-01-29 21:54:31.000000000 +0100
-@@ -63,7 +63,7 @@
- extern tstPageAttr tuxtxt_atrtable[];
- extern int tuxtxt_init();
- extern void tuxtxt_close();
--extern int tuxtxt_start(int tpid); // Start caching
-+extern int tuxtxt_start(int tpid, int demux); // Start caching
- extern int tuxtxt_stop(); // Stop caching
- extern void tuxtxt_next_dec(int *i); /* skip to next decimal */
- extern void tuxtxt_prev_dec(int *i); /* counting down */
+++ /dev/null
-diff -Naur tuxtxt_org/AUTHORS tuxtxt/AUTHORS
---- tuxtxt_org/AUTHORS 1970-01-01 01:00:00.000000000 +0100
-+++ tuxtxt/AUTHORS 2006-12-28 12:08:57.000000000 +0100
-@@ -0,0 +1,25 @@
-+In order of appearance in cvs:
-+------------------------------------------------
-+Felix Domke <tmbinc@berlios.de>
-+Andreas Oberritter <obi@berlios.de>
-+Steffen Hehn <mcclean@berlios.de>
-+Andreas Monzner <ghostrider@berlios.de>
-+Florian Roks <trh@berlios.de>
-+Ronny Strutz <tripledes@berlios.de>
-+Bastian Blank <waldi@berlios.de>
-+Henning Heinold <woglinde@berlios.de>
-+Rainer Scherg <rasc@berlios.de>
-+Steffen Buehl <shadow@berlios.de>
-+Wolfram Joost <wjoost@berlios.de>
-+Thomas Herold <dertom@berlios.de>
-+Stefan Pluecken <thedoc@berlios.de>
-+Florian Schirmer <jolt@berlios.de>
-+Christoph Ketzler <chkdesign@berlios.de>
-+Bernhard Roth <bernroth@berlios.de>
-+Roland Meier <RolandMeier@Siemens.com>
-+DBLuelle <dbluelle@blau-weissoedingend.de>
-+
-+
-+Also many thanks to everyone who supported development
-+without having cvs write access
-+
-diff -Naur tuxtxt_org/Makefile.am tuxtxt/Makefile.am
---- tuxtxt_org/Makefile.am 2006-12-28 12:10:01.000000000 +0100
-+++ tuxtxt/Makefile.am 2006-12-28 12:10:27.000000000 +0100
-@@ -1,37 +1,18 @@
--SUBDIRS = font
-+installdir = $(CONFIGDIR)/tuxtxt
-
--if BOXTYPE_DREAMBOX
--AM_CPPFLAGS = \
-- @FREETYPE_CFLAGS@ \
-- -I$(top_srcdir)/include \
-- -I$(includedir)/tuxbox/tuxtxt
-+SUBDIRS = font python
-
--tuxtxt_la_LIBADD = \
-- @FREETYPE_LIBS@ \
-- @TUXTXT_LIBS@
--else
- AM_CPPFLAGS = \
-- @TUXBOX_CFLAGS@ \
- @FREETYPE_CFLAGS@ \
-+ -funsigned-char \
- -I$(top_srcdir)/include \
-- -I$(includedir)/tuxbox/tuxtxt
-+ -I$(prefix)/$(includedir)/tuxbox/tuxtxt
-
--tuxtxt_la_LIBADD = \
-- @TUXBOX_LIBS@ \
-+bin_PROGRAMS = tuxtxt
-+tuxtxt_LDADD = -lpthread -lz \
- @FREETYPE_LIBS@ \
-- @TUXTXT_LIBS@
--endif
--
--noinst_LTLIBRARIES = tuxtxt.la
--
--tuxtxt_la_SOURCES = tuxtxt.c
-+ @TUXTXT_LIBS@
-
--tuxtxt_la_LDFLAGS = -rpath $(PLUGINDIR) -module -avoid-version
-+tuxtxt_SOURCES = tuxtxt.c
-
--install-exec-local:
-- install -d $(DESTDIR)$(PLUGINDIR)
-- install -d $(DESTDIR)$(CONFIGDIR)
-- install -d $(DESTDIR)$(CONFIGDIR)/tuxtxt
-- $(LIBTOOL) --mode=install install tuxtxt.la $(DESTDIR)$(PLUGINDIR)
-- install -m 0644 $(srcdir)/tuxtxt.cfg $(DESTDIR)$(PLUGINDIR)
-- install -m 0644 $(srcdir)/tuxtxt.conf $(DESTDIR)$(CONFIGDIR)/tuxtxt
-+install_DATA = tuxtxt2.conf
-diff -Naur tuxtxt_org/acinclude.m4 tuxtxt/acinclude.m4
---- tuxtxt_org/acinclude.m4 1970-01-01 01:00:00.000000000 +0100
-+++ tuxtxt/acinclude.m4 2006-12-28 12:08:57.000000000 +0100
-@@ -0,0 +1,434 @@
-+AC_DEFUN(TUXBOX_APPS,[
-+AM_CONFIG_HEADER(config.h)
-+AM_MAINTAINER_MODE
-+
-+INSTALL="$INSTALL -p"
-+
-+AC_GNU_SOURCE
-+AC_SYS_LARGEFILE
-+
-+AC_ARG_WITH(target,
-+ [ --with-target=TARGET target for compilation [[native,cdk]]],
-+ [TARGET="$withval"],[TARGET="native"])
-+
-+AC_ARG_WITH(targetprefix,
-+ [ --with-targetprefix=PATH prefix relative to target root (only applicable in cdk mode)],
-+ [targetprefix="$withval"],[targetprefix="NONE"])
-+
-+AC_ARG_WITH(debug,
-+ [ --without-debug disable debugging code],
-+ [DEBUG="$withval"],[DEBUG="yes"])
-+
-+if test "$DEBUG" = "yes"; then
-+ DEBUG_CFLAGS="-g3 -ggdb"
-+ AC_DEFINE(DEBUG,1,[Enable debug messages])
-+fi
-+
-+AC_MSG_CHECKING(target)
-+
-+if test "$TARGET" = "native"; then
-+ AC_MSG_RESULT(native)
-+
-+ if test "$CFLAGS" = "" -a "$CXXFLAGS" = ""; then
-+ CFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS"
-+ CXXFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS"
-+ fi
-+ if test "$prefix" = "NONE"; then
-+ prefix=/usr/local
-+ fi
-+ targetprefix=$prefix
-+elif test "$TARGET" = "cdk"; then
-+ AC_MSG_RESULT(cdk)
-+
-+ if test "$CC" = "" -a "$CXX" = ""; then
-+ CC=powerpc-tuxbox-linux-gnu-gcc CXX=powerpc-tuxbox-linux-gnu-g++
-+ fi
-+ if test "$CFLAGS" = "" -a "$CXXFLAGS" = ""; then
-+ CFLAGS="-Wall -Os -mcpu=823 -pipe $DEBUG_CFLAGS"
-+ CXXFLAGS="-Wall -Os -mcpu=823 -pipe $DEBUG_CFLAGS"
-+ fi
-+ if test "$prefix" = "NONE"; then
-+ AC_MSG_ERROR(invalid prefix, you need to specify one in cdk mode)
-+ fi
-+ if test "$targetprefix" = "NONE"; then
-+ targetprefix=""
-+ fi
-+ if test "$host_alias" = ""; then
-+ cross_compiling=yes
-+ host_alias=powerpc-tuxbox-linux-gnu
-+ fi
-+else
-+ AC_MSG_RESULT(none)
-+ AC_MSG_ERROR([invalid target $TARGET, choose on from native,cdk]);
-+fi
-+
-+AC_CANONICAL_BUILD
-+AC_CANONICAL_HOST
-+
-+check_path () {
-+ return $(perl -e "if(\"$1\"=~m#^/usr/(local/)?bin#){print \"0\"}else{print \"1\";}")
-+}
-+
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_DIRECTORY_ONE,[
-+AC_ARG_WITH($1,[ $6$7 [[PREFIX$4$5]]],[
-+ _$2=$withval
-+ if test "$TARGET" = "cdk"; then
-+ $2=`eval echo "${targetprefix}$withval"`
-+ else
-+ $2=$withval
-+ fi
-+],[
-+ $2="\${$3}$5"
-+ if test "$TARGET" = "cdk"; then
-+ _$2=`eval echo "${target$3}$5"`
-+ else
-+ _$2=`eval echo "${$3}$5"`
-+ fi
-+])
-+
-+dnl automake <= 1.6 don't support this
-+dnl AC_SUBST($2)
-+AC_DEFINE_UNQUOTED($2,"$_$2",$7)
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_DIRECTORY,[
-+AC_REQUIRE([TUXBOX_APPS])
-+
-+if test "$TARGET" = "cdk"; then
-+ datadir="\${prefix}/share"
-+ tuxboxdatadir="\${prefix}/share/tuxbox"
-+ zoneinfodir="\${datadir}/zoneinfo"
-+ sysconfdir="\${prefix}/etc"
-+ localstatedir="\${prefix}/var"
-+ localedir="\${prefix}/var"
-+ libdir="\${prefix}/lib"
-+ targetdatadir="\${targetprefix}/share"
-+ targetsysconfdir="\${targetprefix}/etc"
-+ targetlocalstatedir="\${targetprefix}/var"
-+ targetlibdir="\${targetprefix}/lib"
-+fi
-+
-+TUXBOX_APPS_DIRECTORY_ONE(configdir,CONFIGDIR,sysconfdir,/etc,,
-+ [--with-configdir=PATH ],[where to find the config files])
-+
-+TUXBOX_APPS_DIRECTORY_ONE(datadir,DATADIR,datadir,/share,,
-+ [--with-datadir=PATH ],[where to find data])
-+
-+TUXBOX_APPS_DIRECTORY_ONE(localedir,LOCALEDIR,datadir,/share,/locale,
-+ [--with-localedir=PATH ],[where to find locales])
-+
-+TUXBOX_APPS_DIRECTORY_ONE(fontdir,FONTDIR,datadir,/share,/fonts,
-+ [--with-fontdir=PATH ],[where to find the fonts])
-+
-+TUXBOX_APPS_DIRECTORY_ONE(gamesdir,GAMESDIR,localstatedir,/var,/tuxbox/games,
-+ [--with-gamesdir=PATH ],[where games data is stored])
-+
-+TUXBOX_APPS_DIRECTORY_ONE(libdir,LIBDIR,libdir,/lib,,
-+ [--with-libdir=PATH ],[where to find the internal libs])
-+
-+TUXBOX_APPS_DIRECTORY_ONE(plugindir,PLUGINDIR,libdir,/lib,/tuxbox/plugins,
-+ [--with-plugindir=PATH ],[where to find the plugins])
-+
-+TUXBOX_APPS_DIRECTORY_ONE(tuxboxdatadir,TUXBOXDATADIR,datadir,/share,,
-+ [--with-tuxboxdatadir=PATH],[where to find tuxbox data])
-+
-+TUXBOX_APPS_DIRECTORY_ONE(zoneinfodir,ZONEINFODIR,datadir,/share,/zoneinfo,
-+ [--with-zoneinfodir=PATH ],[where to find zoneinfo db])
-+])
-+
-+dnl automake <= 1.6 needs this specifications
-+AC_SUBST(CONFIGDIR)
-+AC_SUBST(DATADIR)
-+AC_SUBST(ZONEINFODIR)
-+AC_SUBST(FONTDIR)
-+AC_SUBST(GAMESDIR)
-+AC_SUBST(LIBDIR)
-+AC_SUBST(LOCALEDIR)
-+AC_SUBST(PLUGINDIR)
-+AC_SUBST(TUXBOXDATADIR)
-+dnl end workaround
-+
-+AC_DEFUN(TUXBOX_APPS_ENDIAN,[
-+AC_CHECK_HEADERS(endian.h)
-+AC_C_BIGENDIAN
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_DRIVER,[
-+#AC_ARG_WITH(driver,
-+# [ --with-driver=PATH path for driver sources [[NONE]]],
-+# [DRIVER="$withval"],[DRIVER=""])
-+#
-+#if test -d "$DRIVER/include"; then
-+# AC_DEFINE(HAVE_DBOX2_DRIVER,1,[Define to 1 if you have the dbox2 driver sources])
-+#else
-+# AC_MSG_ERROR([can't find driver sources])
-+#fi
-+
-+#AC_SUBST(DRIVER)
-+
-+#CPPFLAGS="$CPPFLAGS -I$DRIVER/include"
-+])
-+
-+AC_DEFUN([TUXBOX_APPS_DVB],[
-+AC_ARG_WITH(dvbincludes,
-+ [ --with-dvbincludes=PATH path for dvb includes [[NONE]]],
-+ [DVBINCLUDES="$withval"],[DVBINCLUDES=""])
-+
-+if test "$DVBINCLUDES"; then
-+ CPPFLAGS="$CPPFLAGS -I$DVBINCLUDES"
-+fi
-+
-+AC_CHECK_HEADERS(ost/dmx.h,[
-+ DVB_API_VERSION=1
-+ AC_MSG_NOTICE([found dvb version 1])
-+])
-+
-+if test -z "$DVB_API_VERSION"; then
-+AC_CHECK_HEADERS(linux/dvb/version.h,[
-+ AC_LANG_PREPROC_REQUIRE()
-+ AC_REQUIRE([AC_PROG_EGREP])
-+ AC_LANG_CONFTEST([AC_LANG_SOURCE([[
-+#include <linux/dvb/version.h>
-+version DVB_API_VERSION
-+ ]])])
-+ DVB_API_VERSION=`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | $EGREP "^version" | sed "s,version\ ,,"`
-+ rm -f conftest*
-+
-+ AC_MSG_NOTICE([found dvb version $DVB_API_VERSION])
-+])
-+fi
-+
-+if test "$DVB_API_VERSION"; then
-+ AC_DEFINE(HAVE_DVB,1,[Define to 1 if you have the dvb includes])
-+ AC_DEFINE_UNQUOTED(HAVE_DVB_API_VERSION,$DVB_API_VERSION,[Define to the version of the dvb api])
-+else
-+ AC_MSG_ERROR([can't find dvb headers])
-+fi
-+])
-+
-+AC_DEFUN(_TUXBOX_APPS_LIB_CONFIG,[
-+AC_PATH_PROG($1_CONFIG,$2,no)
-+if test "$$1_CONFIG" != "no"; then
-+ if test "$TARGET" = "cdk" && check_path "$$1_CONFIG"; then
-+ AC_MSG_$3([could not find a suitable version of $2]);
-+ else
-+ $1_CFLAGS=$($$1_CONFIG --cflags)
-+ $1_LIBS=$($$1_CONFIG --libs)
-+ fi
-+fi
-+
-+AC_SUBST($1_CFLAGS)
-+AC_SUBST($1_LIBS)
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_LIB_CONFIG,[
-+_TUXBOX_APPS_LIB_CONFIG($1,$2,ERROR)
-+if test "$$1_CONFIG" = "no"; then
-+ AC_MSG_ERROR([could not find $2]);
-+fi
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_LIB_CONFIG_CHECK,[
-+_TUXBOX_APPS_LIB_CONFIG($1,$2,WARN)
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_PKGCONFIG,[
-+AC_PATH_PROG(PKG_CONFIG, pkg-config,no)
-+if test "$PKG_CONFIG" = "no" ; then
-+ AC_MSG_ERROR([could not find pkg-config]);
-+fi
-+])
-+
-+AC_DEFUN(_TUXBOX_APPS_LIB_PKGCONFIG,[
-+PKG_CHECK_MODULES($1,$2)
-+AC_SUBST($1_CFLAGS)
-+AC_SUBST($1_LIBS)
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_LIB_PKGCONFIG,[
-+_TUXBOX_APPS_LIB_PKGCONFIG($1,$2)
-+if test -z "$$1_CFLAGS" ; then
-+ AC_MSG_ERROR([could not find package $2]);
-+fi
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_LIB_PKGCONFIG_CHECK,[
-+_TUXBOX_APPS_LIB_PKGCONFIG($1,$2)
-+])
-+
-+AC_DEFUN(_TUXBOX_APPS_LIB_SYMBOL,[
-+AC_CHECK_LIB($2,$3,HAVE_$1="yes",HAVE_$1="no")
-+if test "$HAVE_$1" = "yes"; then
-+ $1_LIBS=-l$2
-+fi
-+
-+AC_SUBST($1_LIBS)
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_LIB_SYMBOL,[
-+_TUXBOX_APPS_LIB_SYMBOL($1,$2,$3,ERROR)
-+if test "$HAVE_$1" = "no"; then
-+ AC_MSG_ERROR([could not find $2]);
-+fi
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_LIB_CONFIG_SYMBOL,[
-+_TUXBOX_APPS_LIB_SYMBOL($1,$2,$3,WARN)
-+])
-+
-+AC_DEFUN(TUXBOX_APPS_GETTEXT,[
-+AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
-+ [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
-+ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
-+ :)
-+AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-+
-+AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-+ [$ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
-+ (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
-+ :)
-+
-+AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,[$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1],:)
-+
-+AC_MSG_CHECKING([whether NLS is requested])
-+AC_ARG_ENABLE(nls,
-+ [ --disable-nls do not use Native Language Support],
-+ USE_NLS=$enableval, USE_NLS=yes)
-+AC_MSG_RESULT($USE_NLS)
-+AC_SUBST(USE_NLS)
-+
-+if test "$USE_NLS" = "yes"; then
-+ AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,[
-+ AC_TRY_LINK([
-+ #include <libintl.h>
-+ #ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-+ #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-+ #endif
-+ extern int _nl_msg_cat_cntr;
-+ extern int *_nl_domain_bindings;
-+ ],[
-+ bindtextdomain ("", "");
-+ return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings;
-+ ], gt_cv_func_gnugettext_libc=yes, gt_cv_func_gnugettext_libc=no
-+ )]
-+ )
-+
-+ if test "$gt_cv_func_gnugettext_libc" = "yes"; then
-+ AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.])
-+ gt_use_preinstalled_gnugettext=yes
-+ else
-+ USE_NLS=no
-+ fi
-+fi
-+
-+if test -f "$srcdir/po/LINGUAS"; then
-+ ALL_LINGUAS=$(sed -e "/^#/d" "$srcdir/po/LINGUAS")
-+fi
-+
-+POFILES=
-+GMOFILES=
-+UPDATEPOFILES=
-+DUMMYPOFILES=
-+for lang in $ALL_LINGUAS; do
-+ POFILES="$POFILES $srcdirpre$lang.po"
-+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
-+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
-+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
-+done
-+INST_LINGUAS=
-+if test -n "$ALL_LINGUAS"; then
-+ for presentlang in $ALL_LINGUAS; do
-+ useit=no
-+ if test -n "$LINGUAS"; then
-+ desiredlanguages="$LINGUAS"
-+ else
-+ desiredlanguages="$ALL_LINGUAS"
-+ fi
-+ for desiredlang in $desiredlanguages; do
-+ case "$desiredlang" in
-+ "$presentlang"*) useit=yes;;
-+ esac
-+ done
-+ if test $useit = yes; then
-+ INST_LINGUAS="$INST_LINGUAS $presentlang"
-+ fi
-+ done
-+fi
-+CATALOGS=
-+if test -n "$INST_LINGUAS"; then
-+ for lang in $INST_LINGUAS; do
-+ CATALOGS="$CATALOGS $lang.gmo"
-+ done
-+fi
-+AC_SUBST(POFILES)
-+AC_SUBST(GMOFILES)
-+AC_SUBST(UPDATEPOFILES)
-+AC_SUBST(DUMMYPOFILES)
-+AC_SUBST(CATALOGS)
-+])
-+
-+dnl backward compatiblity
-+AC_DEFUN([AC_GNU_SOURCE],
-+[AH_VERBATIM([_GNU_SOURCE],
-+[/* Enable GNU extensions on systems that have them. */
-+#ifndef _GNU_SOURCE
-+# undef _GNU_SOURCE
-+#endif])dnl
-+AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
-+AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
-+AC_DEFINE([_GNU_SOURCE])
-+])
-+
-+AC_DEFUN([AC_PROG_EGREP],
-+[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
-+ [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-+ then ac_cv_prog_egrep='grep -E'
-+ else ac_cv_prog_egrep='egrep'
-+ fi])
-+ EGREP=$ac_cv_prog_egrep
-+ AC_SUBST([EGREP])
-+])
-+
-+AC_DEFUN([AC_PYTHON_DEVEL],[
-+ #
-+ # should allow for checking of python version here...
-+ #
-+ AC_REQUIRE([AM_PATH_PYTHON])
-+
-+ # Check for Python include path
-+ AC_MSG_CHECKING([for Python include path])
-+ python_path=`echo $PYTHON | sed "s,/bin.*$,,"`
-+ for i in "$python_path/include/python$PYTHON_VERSION/" "$python_path/include/python/" "$python_path/" ; do
-+ python_path=`find $i -type f -name Python.h -print | sed "1q"`
-+ if test -n "$python_path" ; then
-+ break
-+ fi
-+ done
-+ python_path=`echo $python_path | sed "s,/Python.h$,,"`
-+ AC_MSG_RESULT([$python_path])
-+ if test -z "$python_path" ; then
-+ AC_MSG_ERROR([cannot find Python include path])
-+ fi
-+ AC_SUBST([PYTHON_CPPFLAGS],[-I$python_path])
-+
-+ # Check for Python library path
-+ AC_MSG_CHECKING([for Python library path])
-+ python_path=`echo $PYTHON | sed "s,/bin.*$,,"`
-+ for i in "$python_path/lib/python$PYTHON_VERSION/config/" "$python_path/lib/python$PYTHON_VERSION/" "$python_path/lib/python/config/" "$python_path/lib/python/" "$python_path/" ; do
-+ python_path=`find $i -type f -name libpython$PYTHON_VERSION.* -print | sed "1q"`
-+ if test -n "$python_path" ; then
-+ break
-+ fi
-+ done
-+ python_path=`echo $python_path | sed "s,/libpython.*$,,"`
-+ AC_MSG_RESULT([$python_path])
-+ if test -z "$python_path" ; then
-+ AC_MSG_ERROR([cannot find Python library path])
-+ fi
-+ AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -lpython$PYTHON_VERSION"])
-+ #
-+ python_site=`echo $python_path | sed "s/config/site-packages/"`
-+ AC_SUBST([PYTHON_SITE_PKG],[$python_site])
-+])
-diff -Naur tuxtxt_org/configure.ac tuxtxt/configure.ac
---- tuxtxt_org/configure.ac 1970-01-01 01:00:00.000000000 +0100
-+++ tuxtxt/configure.ac 2006-12-28 12:08:58.000000000 +0100
-@@ -0,0 +1,17 @@
-+AC_INIT(tuxbox-tuxtxt-32bpp,1.96)
-+AM_INIT_AUTOMAKE(tuxbox-tuxtxt-32bpp,1.96)
-+
-+TUXBOX_APPS
-+TUXBOX_APPS_DIRECTORY
-+TUXBOX_APPS_DVB
-+TUXBOX_APPS_DRIVER
-+
-+# Checks for programs.
-+AC_PROG_CC
-+
-+TUXBOX_APPS_LIB_CONFIG(FREETYPE,freetype-config)
-+TUXBOX_APPS_LIB_PKGCONFIG(TUXTXT,tuxbox-tuxtxt)
-+
-+AC_OUTPUT(Makefile)
-+AC_OUTPUT(font/Makefile)
-+AC_OUTPUT(python/Makefile)
-diff -Naur tuxtxt_32bpp/python/Makefile.am tuxtxt/python/Makefile.am
---- tuxtxt/python/Makefile.am 1970-01-01 01:00:00.000000000 +0100
-+++ tuxtxt/python/Makefile.am 2006-03-10 21:43:45.000000000 +0100
-@@ -0,0 +1,5 @@
-+installdir = $(LIBDIR)/enigma2/python/Plugins/Extensions/Tuxtxt
-+
-+install_DATA = \
-+ plugin.py \
-+ __init__.py
+++ /dev/null
-diff -u tuxtxt_orig/Makefile.am tuxtxt/Makefile.am
---- tuxtxt_orig/Makefile.am 2009-01-29 21:36:10.000000000 +0100
-+++ tuxtxt/Makefile.am 2009-01-29 21:52:19.000000000 +0100
-@@ -6,13 +6,14 @@
- @FREETYPE_CFLAGS@ \
- -funsigned-char \
- -I$(top_srcdir)/include \
-- -I$(prefix)/$(includedir)/tuxbox/tuxtxt
-+ -I$(prefix)/$(includedir)/tuxbox/tuxtxt
-
--bin_PROGRAMS = tuxtxt
--tuxtxt_LDADD = -lpthread -lz \
-+libtuxtxt32bpp_la_LIBADD = -lpthread -lz \
- @FREETYPE_LIBS@ \
- @TUXTXT_LIBS@
-
--tuxtxt_SOURCES = tuxtxt.c
-+lib_LTLIBRARIES = libtuxtxt32bpp.la
-+
-+libtuxtxt32bpp_la_SOURCES = tuxtxt.c
-
- install_DATA = tuxtxt2.conf
-diff -u tuxtxt_orig/configure.ac tuxtxt/configure.ac
---- tuxtxt_orig/configure.ac 2009-01-29 21:36:10.000000000 +0100
-+++ tuxtxt/configure.ac 2009-01-29 21:52:19.000000000 +0100
-@@ -1,5 +1,9 @@
--AC_INIT(tuxbox-tuxtxt-32bpp,1.96)
--AM_INIT_AUTOMAKE(tuxbox-tuxtxt-32bpp,1.96)
-+AC_INIT(libtuxtxt32bpp,1.96)
-+AM_INIT_AUTOMAKE(libtuxtxt32bpp,1.96)
-+
-+AM_PROG_LIBTOOL
-+
-+AC_DISABLE_STATIC
-
- TUXBOX_APPS
- TUXBOX_APPS_DIRECTORY
-diff -u tuxtxt_orig/tuxtxt.c tuxtxt/tuxtxt.c
---- tuxtxt_orig/tuxtxt.c 2009-01-29 21:44:29.000000000 +0100
-+++ tuxtxt/tuxtxt.c 2009-01-29 21:52:19.000000000 +0100
-@@ -168,7 +168,7 @@
- * plugin_exec *
- ******************************************************************************/
-
--int main(int argc, char **argv)
-+int tuxtxt_run_ui(int pid)
- {
- char cvs_revision[] = "$Revision: 1.108 $";
-
-@@ -187,17 +187,8 @@
-
- tuxtxt_SetRenderingDefaults(&renderinfo);
- /* get params */
-- tuxtxt_cache.vtxtpid = renderinfo.fb = lcd = renderinfo.sx = renderinfo.ex = renderinfo.sy = renderinfo.ey = -1;
-- if (argc==1)
-- {
-- printf("\nUSAGE: tuxtxt vtpid\n");
-- printf("No PID given, so scanning for PIDs ...\n\n");
-- tuxtxt_cache.vtxtpid=0;
-- }
-- else
-- {
-- tuxtxt_cache.vtxtpid = atoi(argv[1]);
-- }
-+ renderinfo.fb = lcd = renderinfo.sx = renderinfo.ex = renderinfo.sy = renderinfo.ey = -1;
-+ tuxtxt_cache.vtxtpid = pid;
-
- /* open Framebuffer */
- if ((renderinfo.fb=open("/dev/fb/0", O_RDWR)) == -1)
-@@ -462,11 +453,13 @@
-
-
- //page_atrb[32] = transp<<4 | transp;
--
-- for (magazine = 1; magazine < 9; magazine++)
-+ if (!tuxtxt_cache.thread_starting && !tuxtxt_cache.receiving)
- {
-- tuxtxt_cache.current_page [magazine] = -1;
-- tuxtxt_cache.current_subpage [magazine] = -1;
-+ for (magazine = 1; magazine < 9; magazine++)
-+ {
-+ tuxtxt_cache.current_page [magazine] = -1;
-+ tuxtxt_cache.current_subpage [magazine] = -1;
-+ }
- }
- #if TUXTXT_CFG_STANDALONE
- /* init data */
-@@ -489,13 +482,16 @@
- tuxtxt_cache.page = 0x100;
- #endif
- lastpage = tuxtxt_cache.page;
-- tuxtxt_cache.subpage = tuxtxt_cache.subpagetable[tuxtxt_cache.page];
-- if (tuxtxt_cache.subpage == 0xff)
-- tuxtxt_cache.subpage = 0;
--
-- tuxtxt_cache.pageupdate = 0;
-+ if (!tuxtxt_cache.thread_starting && !tuxtxt_cache.receiving)
-+ {
-+ tuxtxt_cache.subpage = tuxtxt_cache.subpagetable[tuxtxt_cache.page];
-+ if (tuxtxt_cache.subpage == 0xff)
-+ tuxtxt_cache.subpage = 0;
-
-- tuxtxt_cache.zap_subpage_manual = 0;
-+ tuxtxt_cache.pageupdate = 0;
-+
-+ tuxtxt_cache.zap_subpage_manual = 0;
-+ }
-
- /* init lcd */
- UpdateLCD();
+++ /dev/null
-diff -u tuxtxt_orig/tuxtxt.c tuxtxt/tuxtxt.c
---- tuxtxt_orig/tuxtxt.c 2008-12-26 19:41:28.000000000 +0100
-+++ tuxtxt/tuxtxt.c 2009-01-29 21:36:31.000000000 +0100
-@@ -535,7 +535,6 @@
-
-
- /* setup rc */
-- fcntl(rc, F_SETFL, O_NONBLOCK);
- ioctl(rc, RC_IOCTL_BCODES, 1);
-
-
-@@ -1214,7 +1213,7 @@
-
- void ConfigMenu(int Init)
- {
-- int val, menuitem = M_Start;
-+ int menuitem = M_Start;
- int current_pid = 0;
- int hotindex;
- int oldscreenmode;
-@@ -1257,10 +1256,6 @@
- renderinfo.clearbbcolor = tuxtxt_color_black;
- Menu_Init(menu, current_pid, menuitem, hotindex);
-
-- /* set blocking mode */
-- val = fcntl(rc, F_GETFL);
-- fcntl(rc, F_SETFL, val &~ O_NONBLOCK);
--
- /* loop */
- do {
- if (GetRCCode() == 1)
-@@ -1721,7 +1716,6 @@
- current_service = current_pid;
- // RenderMessage(ShowServiceName);
-
-- fcntl(rc, F_SETFL, O_NONBLOCK);
- RCCode = -1;
- if (oldscreenmode)
- tuxtxt_SwitchScreenMode(&renderinfo,oldscreenmode); /* restore divided screen */
-@@ -1792,8 +1786,6 @@
- UpdateLCD(); /* update number of cached pages */
- } while ((RCCode != RC_HOME) && (RCCode != RC_DBOX) && (RCCode != RC_MUTE));
-
-- /* reset to nonblocking mode */
-- fcntl(rc, F_SETFL, O_NONBLOCK);
- tuxtxt_cache.pageupdate = 1;
- RCCode = -1;
- if (oldscreenmode)
-@@ -2013,7 +2005,7 @@
- void PageCatching()
- {
- int active_national_subset=tuxtxt_cache.national_subset;
-- int val, byte;
-+ int byte;
- int oldzoommode = renderinfo.zoommode;
-
- renderinfo.pagecatching = 1;
-@@ -2046,10 +2038,6 @@
- return;
- }
-
-- /* set blocking mode */
-- val = fcntl(rc, F_GETFL);
-- fcntl(rc, F_SETFL, val &~ O_NONBLOCK);
--
- /* loop */
- do {
- GetRCCode();
-@@ -2088,7 +2076,6 @@
- case RC_HOME:
- case RC_HELP:
- case RC_MUTE:
-- fcntl(rc, F_SETFL, O_NONBLOCK);
- tuxtxt_cache.pageupdate = 1;
- renderinfo.pagecatching = 0;
- RCCode = -1;
-@@ -2112,9 +2099,6 @@
- tuxtxt_cache.subpage = subp;
- else
- tuxtxt_cache.subpage = 0;
--
-- /* reset to nonblocking mode */
-- fcntl(rc, F_SETFL, O_NONBLOCK);
- }
-
- /******************************************************************************
-@@ -2712,16 +2696,34 @@
-
- int GetRCCode()
- {
-+ int maxfd = 0;
-+ fd_set rset;
-+ struct timeval timeout;
- #if HAVE_DVB_API_VERSION < 3
- static unsigned short LastKey = -1;
- #else
- struct input_event ev;
- static __u16 rc_last_key = KEY_RESERVED;
- #endif
-+ FD_ZERO(&rset);
-+ timeout.tv_sec = 0;
-+ timeout.tv_usec = 100000;
- /* get code */
--#if HAVE_DVB_API_VERSION < 3
-- if (read(rc, &RCCode, 2) == 2)
-+ if (rc >= 0)
-+ {
-+ FD_SET(rc, &rset);
-+ if (rc > maxfd)
-+ {
-+ maxfd = rc;
-+ }
-+ }
-+ if (select(maxfd + 1, &rset, NULL, NULL, &timeout) > 0)
- {
-+ if (rc >= 0 && FD_ISSET(rc, &rset))
-+ {
-+#if HAVE_DVB_API_VERSION < 3
-+ read(rc, &RCCode, 2);
-+ }
- if (RCCode != LastKey)
- {
- LastKey = RCCode;
-@@ -2730,8 +2732,8 @@
- {
- switch (RCCode)
- #else
-- if (read(rc, &ev, sizeof(ev)) == sizeof(ev))
-- {
-+ read(rc, &ev, sizeof(ev));
-+ }
- if (ev.value)
- {
- if (ev.code != rc_last_key)
-@@ -2789,7 +2791,6 @@
- }
-
- RCCode = -1;
-- usleep(1000000/100);
-
- return 0;
- }
+++ /dev/null
-from enigma import eTuxtxtApp
-from Plugins.Plugin import PluginDescriptor
-
-def main(session, **kwargs):
- eTuxtxtApp.getInstance().startUi()
-
-def Plugins(**kwargs):
- return PluginDescriptor(name="TuxTXT", description="Videotext", where = PluginDescriptor.WHERE_TELETEXT, fnc=main)
+++ /dev/null
-PR = "r1"
-PARALLEL_MAKE = ""
-
-require unionfs-modules.inc
-
-KERNEL_MAJMIN = "${@base_read_file('${STAGING_KERNEL_DIR}/kernel-abiversion')[:3]}"
-
-do_compile() {
- unset LDFLAGS
- oe_runmake unionfs.ko
-#${KERNEL_MAJMIN}
-}
+++ /dev/null
-require unionfs-utils.inc
-
+++ /dev/null
-diff -auNr ushare-1.1a/src/mime.c ushare-1.1a-ts/src/mime.c
---- ushare-1.1a/src/mime.c 2008-12-29 20:09:47.000000000 +0100
-+++ ushare-1.1a-ts/src/mime.c 2008-12-29 20:10:04.000000000 +0100
-@@ -54,7 +54,7 @@
- { "m4v", UPNP_VIDEO, "http-get:*:video/mp4:"},
- { "m4p", UPNP_VIDEO, "http-get:*:video/mp4:"},
- { "mp4ps", UPNP_VIDEO, "http-get:*:video/x-nerodigital-ps:"},
-- { "ts", UPNP_VIDEO, "http-get:*:video/mpeg2:"},
-+ { "ts", UPNP_VIDEO, "http-get:*:video/ts:"},
- { "ogm", UPNP_VIDEO, "http-get:*:video/mpeg:"},
- { "mkv", UPNP_VIDEO, "http-get:*:video/mpeg:"},
- { "rmvb", UPNP_VIDEO, "http-get:*:video/mpeg:"},
+++ /dev/null
-# /etc/ushare.conf
-# Configuration file for uShare
-
-# uShare UPnP Friendly Name (default is 'uShare').
-USHARE_NAME=
-
-# Interface to listen to (default is eth0).
-# Ex : USHARE_IFACE=eth1
-USHARE_IFACE=
-
-# Port to listen to (default is random from IANA Dynamic Ports range)
-# Ex : USHARE_PORT=49200
-USHARE_PORT=
-
-# Directories to be shared (space or CSV list).
-# Ex: USHARE_DIR=/dir1,/dir2
-USHARE_DIR=/media/hdd
-
-# Use to override what happens when iconv fails to parse a file name.
-# The default uShare behaviour is to not add the entry in the media list
-# This option overrides that behaviour and adds the non-iconv'ed string into
-# the media list, with the assumption that the renderer will be able to
-# handle it. Devices like Noxon 2 have no problem with strings being passed
-# as is. (Umlauts for all!)
-#
-# Options are TRUE/YES/1 for override and anything else for default behaviour
-USHARE_OVERRIDE_ICONV_ERR=YES
-
-USHARE_OPTIONS=
\ No newline at end of file
+++ /dev/null
-#!/bin/sh
-#
-# start/stop ushare
-
-if ! [ -x /usr/bin/ushare ]; then
- exit 0
-fi
-
-CONFIGFILE=/etc/ushare.conf
-if [ -r "$CONFIGFILE" ]; then
- . $CONFIGFILE
-fi
-
-case "$1" in
- start)
- echo -n "Starting ushare: "
- start-stop-daemon -S -x /usr/bin/ushare -- -D -n `/bin/hostname` $USHARE_OPTIONS -f $CONFIGFILE
- echo "done."
- ;;
- stop)
- echo -n "Stopping ushare: "
- start-stop-daemon -K -x /usr/bin/ushare
- echo "done."
- ;;
- restart|reload)
- $0 stop
- $0 start
- ;;
- *)
- echo "Usage: $0 {start|stop|restart}"
- exit 1
- ;;
-esac
-
-exit 0
-
+++ /dev/null
-Index: util-linux-2.12r/fdisk/sfdisk.c
-===================================================================
---- util-linux-2.12r.orig/fdisk/sfdisk.c 2009-01-12 17:00:24.000000000 +0100
-+++ util-linux-2.12r/fdisk/sfdisk.c 2009-01-12 17:04:27.000000000 +0100
-@@ -1951,6 +1951,7 @@
- delta = 0;
-
- if (delta < 0) {
-+#if 0 /*@@@@@*/
- p->start -= delta;
- p->size += delta;
- if (is_extended(p->p.sys_type) && boxes == ONESECTOR)
-@@ -1959,6 +1960,17 @@
- warn(_("no room for partition descriptor\n"));
- return 0;
- }
-+#else
-+ unsigned long old_size = p->size;
-+ p->start -= delta;
-+ p->size += delta;
-+ if (is_extended(p->p.sys_type) && boxes == ONESECTOR)
-+ p->size = inc;
-+ else if ( old_size <= -delta ) {
-+ warn(_("no room for partition descriptor\n"));
-+ return 0;
-+ }
-+#endif
- }
- base = (!ep ? 0
- : (is_extended(p->p.sys_type) ?
+++ /dev/null
-# Opendreambox /etc/vsftpd.conf
-#
-# Please see vsftpd.conf.5 for all compiled in defaults.
-#
-# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
-# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
-# capabilities.
-#
-# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
-anonymous_enable=NO
-#
-# Uncomment this to allow local users to log in.
-local_enable=YES
-#
-# Uncomment this to enable any form of FTP write command.
-write_enable=YES
-#
-# Default umask for local users is 077. You may wish to change this to 022,
-# if your users expect that (022 is used by most other ftpd's)
-#local_umask=022
-#
-# Uncomment this to allow the anonymous FTP user to upload files. This only
-# has an effect if the above global write enable is activated. Also, you will
-# obviously need to create a directory writable by the FTP user.
-#anon_upload_enable=YES
-#
-# Uncomment this if you want the anonymous FTP user to be able to create
-# new directories.
-#anon_mkdir_write_enable=YES
-#
-# Activate directory messages - messages given to remote users when they
-# go into a certain directory.
-dirmessage_enable=YES
-#
-# Activate logging of uploads/downloads.
-#xferlog_enable=YES
-#
-# Make sure PORT transfer connections originate from port 20 (ftp-data).
-connect_from_port_20=YES
-#
-# If you want, you can arrange for uploaded anonymous files to be owned by
-# a different user. Note! Using "root" for uploaded files is not
-# recommended!
-#chown_uploads=YES
-#chown_username=whoever
-#
-# You may override where the log file goes if you like. The default is shown
-# below.
-#xferlog_file=/var/log/vsftpd.log
-#
-# If you want, you can have your log file in standard ftpd xferlog format
-#xferlog_std_format=YES
-#
-# You may change the default value for timing out an idle session.
-#idle_session_timeout=600
-#
-# You may change the default value for timing out a data connection.
-#data_connection_timeout=120
-#
-# It is recommended that you define on your system a unique user which the
-# ftp server can use as a totally isolated and unprivileged user.
-#nopriv_user=ftpsecure
-#
-# Enable this and the server will recognise asynchronous ABOR requests. Not
-# recommended for security (the code is non-trivial). Not enabling it,
-# however, may confuse older FTP clients.
-async_abor_enable=YES
-#
-# By default the server will pretend to allow ASCII mode but in fact ignore
-# the request. Turn on the below options to have the server actually do ASCII
-# mangling on files when in ASCII mode.
-# Beware that turning on ascii_download_enable enables malicious remote parties
-# to consume your I/O resources, by issuing the command "SIZE /big/file" in
-# ASCII mode.
-# These ASCII options are split into upload and download because you may wish
-# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),
-# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be
-# on the client anyway..
-#ascii_upload_enable=YES
-#ascii_download_enable=YES
-#
-# You may fully customise the login banner string:
-ftpd_banner=Welcome to the OpenDreambox FTP service.
-#
-# You may specify a file of disallowed anonymous e-mail addresses. Apparently
-# useful for combatting certain DoS attacks.
-#deny_email_enable=YES
-# (default follows)
-#banned_email_file=/etc/vsftpd.banned_emails
-#
-# You may specify an explicit list of local users to chroot() to their home
-# directory. If chroot_local_user is YES, then this list becomes a list of
-# users to NOT chroot().
-#chroot_list_enable=YES
-# (default follows)
-#chroot_list_file=/etc/vsftpd.chroot_list
-#
-# You may activate the "-R" option to the builtin ls. This is disabled by
-# default to avoid remote users being able to cause excessive I/O on large
-# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
-# the presence of the "-R" option, so there is a strong case for enabling it.
-ls_recurse_enable=YES
-#
-secure_chroot_dir=/dev/shm
-local_root=/
+++ /dev/null
---- Module/rtmp_main.c_orig 2008-05-06 07:26:44.000000000 +0200
-+++ Module/rtmp_main.c 2008-08-12 09:19:55.000000000 +0200
-@@ -987,7 +987,7 @@
-
- for (i = 0; i < 8; i++)
- {
-- sprintf(slot_name, "rausb%d", i);
-+ sprintf(slot_name, "wlan%d", i);
-
- read_lock_bh(&dev_base_lock); // avoid multiple init
- //Benson modify -->
-@@ -1010,7 +1010,7 @@
- return NULL;
- }
-
-- sprintf(pAd->net_dev->name, "rausb%d", i);
-+ sprintf(pAd->net_dev->name, "wlan%d", i);
- DBGPRINT(RT_DEBUG_ERROR, "usb device name %s\n",pAd->net_dev->name);
-
- /* get Max Packet Size from usb_dev endpoint */
-@@ -1191,7 +1191,7 @@
-
- for (i = 0; i < 8; i++)
- {
-- sprintf(slot_name, "rausb%d", i);
-+ sprintf(slot_name, "wlan%d", i);
-
- #if 1
- //--> Benson add 20080505, for Linux_kernel > 2,6,24
-@@ -1231,7 +1231,7 @@
- return res;
- }
-
-- sprintf(pAd->net_dev->name, "rausb%d", i);
-+ sprintf(pAd->net_dev->name, "wlan%d", i);
- DBGPRINT(RT_DEBUG_ERROR, "usb device name %s\n", pAd->net_dev->name);
-
-
+++ /dev/null
---- Module/Makefile 2008-05-06 07:58:14.000000000 +0200
-+++ Module/Makefile 2008-08-04 15:08:58.000000000 +0200
-@@ -14,6 +14,8 @@
- #Support Block Net-If during TxSw queue full.
- HAS_BLOCK_NET_IF=y
-
-+VERSION := $(shell uname -r)
-+MODPATH := /lib/modules/$(VERSION)
-
- WFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs
-
-@@ -35,7 +37,7 @@
- EXTRA_CFLAGS += $(WFLAGS)
-
- ifeq ($(PLATFORM),PC)
--LINUX_SRC =/lib/modules/$(shell uname -r)/build
-+LINUX_SRC ?= $(MODPATH)/source
- endif
- ifeq ($(PLATFORM),CMPC)
- LINUX_SRC = /home/fonchi/vendor/kernel-default-2.6.21/linux-2.6.21
+++ /dev/null
-DESCRIPTION = "Driver for Ralink rt73 USB 802.11b/g WiFi sticks"
-HOMEPAGE = "http://www.ralinktech.com.tw"
-SECTION = "kernel/modules"
-LICENSE = "GPL"
-
-PR = "r3"
-
-SRC_URI = "http://www.ralinktech.com.tw/data/drivers/2008_0506_RT73_Linux_STA_Drv1.1.0.1.tar.bz2 \
- file://make.patch;patch=1 \
- file://changeiface.patch;patch=1"
-RDEPEND = "wireless-tools"
-
-inherit module
-
-FILES_${PN} += " /lib/firmware/rt73.bin"
-
-S = "${WORKDIR}/2008_0506_RT73_Linux_STA_Drv1.1.0.1/Module/"
-EXTRA_OEMAKE = "KERNDIR=${STAGING_KERNEL_DIR}"
-
-do_compile () {
- unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS CC LD CPP
- oe_runmake 'MODPATH={D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net' \
- 'KERNEL_SOURCE=${STAGING_KERNEL_DIR}' \
- 'LINUX_SRC=${STAGING_KERNEL_DIR}' \
- 'KDIR=${STAGING_KERNEL_DIR}' \
- 'KERNDIR=${STAGING_KERNEL_DIR}' \
- 'KERNEL_VERSION=${KERNEL_VERSION}' \
- 'CC=${KERNEL_CC}' \
- 'LD=${KERNEL_LD}'
-}
-
-do_install() {
- install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net
- install -m 0644 rt73${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net/
- install -d ${D}/lib/firmware
- install -m 0644 rt73.bin ${D}/lib/firmware/
-}
-
+++ /dev/null
-diff -NaurEbB wpa_supplicant-0.5.10/Makefile wpa_supplicant-0.5.10_RALINK/Makefile
---- wpa_supplicant-0.5.10/Makefile 2008-12-05 01:45:50.000000000 +0100
-+++ wpa_supplicant-0.5.10_RALINK/Makefile 2008-12-05 01:36:46.000000000 +0100
-@@ -31,6 +31,7 @@
- echo CONFIG_DRIVER_WEXT=y >> .config
- echo CONFIG_WIRELESS_EXTENSION=y >> .config
- echo CONFIG_DRIVER_ZYDAS=y >> .config
-+ echo CONFIG_DRIVER_RALINK=y >> .config
-
- install: all
- mkdir -p $(DESTDIR)/usr/local/sbin/
-@@ -145,6 +146,11 @@
- CONFIG_WIRELESS_EXTENSION=y
- endif
-
-+ifdef CONFIG_DRIVER_RALINK
-+CFLAGS += -DCONFIG_DRIVER_RALINK
-+OBJS_d += driver_ralink.o
-+endif
-+
- ifdef CONFIG_DRIVER_BSD
- CFLAGS += -DCONFIG_DRIVER_BSD
- OBJS_d += driver_bsd.o
-diff -NaurEbB wpa_supplicant-0.5.10/driver.h wpa_supplicant-0.5.10_RALINK/driver.h
---- wpa_supplicant-0.5.10/driver.h 2007-03-25 04:09:49.000000000 +0200
-+++ wpa_supplicant-0.5.10_RALINK/driver.h 2008-12-05 01:36:46.000000000 +0100
-@@ -581,6 +581,10 @@
- */
- void (*poll)(void *priv);
-
-+#ifdef CONFIG_DRIVER_RALINK
-+ void (*poll_ralink)(void *priv, void *ctx);
-+#endif
-+
- /**
- * get_ifname - Get interface name
- * @priv: private driver interface data
-diff -NaurEbB wpa_supplicant-0.5.10/driver_ralink.c wpa_supplicant-0.5.10_RALINK/driver_ralink.c
---- wpa_supplicant-0.5.10/driver_ralink.c 1970-01-01 01:00:00.000000000 +0100
-+++ wpa_supplicant-0.5.10_RALINK/driver_ralink.c 2008-12-05 01:36:46.000000000 +0100
-@@ -0,0 +1,1502 @@
-+/*
-+ ***************************************************************************
-+ * Ralink Tech Inc.
-+ * 5F, No. 36 Taiyuan St.
-+ * Jhubei City
-+ * Hsinchu County 302, Taiwan, R.O.C.
-+ *
-+ * (c) Copyright 2002-2008, Ralink Technology, Inc.
-+ *
-+ * This program is free software; you can redistribute it and/or modify *
-+ * it under the terms of the GNU General Public License as published by *
-+ * the Free Software Foundation; either version 2 of the License, or *
-+ * (at your option) any later version. *
-+ * *
-+ * This program is distributed in the hope that it will be useful, *
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-+ * GNU General Public License for more details. *
-+ * *
-+ * You should have received a copy of the GNU General Public License *
-+ * along with this program; if not, write to the *
-+ * Free Software Foundation, Inc., *
-+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
-+ * *
-+ ************************************************************************/
-+/*
-+ * WPA Supplicant - driver interaction with Ralink rt73.o driver
-+ */
-+
-+#include <stdlib.h>
-+#include <stdio.h>
-+#include <unistd.h>
-+#include <string.h>
-+#include <sys/ioctl.h>
-+#include <errno.h>
-+#include <sys/socket.h>
-+#include <net/if_arp.h>
-+
-+#include <linux/if_packet.h>
-+#include <linux/if_ether.h> /* The L2 protocols */
-+#include <netinet/in.h>
-+//#include <linux/wireless.h>
-+#include "wireless_copy.h"
-+
-+#include "common.h"
-+#include "driver.h"
-+#include "l2_packet.h"
-+#include "eloop.h"
-+#include "wpa_supplicant.h"
-+#include "priv_netlink.h"
-+#include "wpa.h"
-+#include "driver_ralink.h"
-+#include "wpa_supplicant_i.h"
-+#include "config_ssid.h"
-+#include "config.h"
-+
-+static int scanning_done = 1;
-+
-+struct wpa_driver_ralink_data {
-+ void *ctx;
-+ int ioctl_sock;
-+ int event_sock;
-+ char ifname[IFNAMSIZ + 1];
-+ u8 *assoc_req_ies;
-+ size_t assoc_req_ies_len;
-+ u8 *assoc_resp_ies;
-+ size_t assoc_resp_ies_len;
-+ int no_of_pmkid;
-+ struct ndis_pmkid_entry *pmkid;
-+ int we_version_compiled;
-+};
-+
-+static int ralink_set_oid(struct wpa_driver_ralink_data *drv, unsigned short oid,
-+ char *data, int len)
-+{
-+ char *buf;
-+ struct iwreq iwr;
-+
-+ buf = os_malloc(len);
-+ if (buf == NULL)
-+ return -1;
-+ memset(buf, 0,len);
-+ memset(&iwr, 0, sizeof(iwr));
-+ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
-+ iwr.u.data.flags = oid;
-+ iwr.u.data.flags |= OID_GET_SET_TOGGLE;
-+
-+ if (data)
-+ memcpy(buf, data, len);
-+
-+ iwr.u.data.pointer = (caddr_t) buf;
-+ iwr.u.data.length = len;
-+
-+ if (ioctl(drv->ioctl_sock, RT_PRIV_IOCTL, &iwr) < 0)
-+ {
-+ wpa_printf(MSG_DEBUG, "%s: oid=0x%x len (%d) failed",
-+ __func__, oid, len);
-+ os_free(buf);
-+ return -1;
-+ }
-+ os_free(buf);
-+ return 0;
-+}
-+
-+static int wpa_driver_ralink_get_bssid(void *priv, u8 *bssid)
-+{
-+ struct wpa_driver_ralink_data *drv = priv;
-+ struct iwreq iwr;
-+ int ret = 0;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ memset(&iwr, 0, sizeof(iwr));
-+ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
-+
-+ if (ioctl(drv->ioctl_sock, SIOCGIWAP, &iwr) < 0)
-+ {
-+ perror("ioctl[SIOCGIWAP]");
-+ ret = -1;
-+ }
-+ memcpy(bssid, iwr.u.ap_addr.sa_data, ETH_ALEN);
-+
-+ return ret;
-+}
-+
-+static int wpa_driver_ralink_get_ssid(void *priv, u8 *ssid)
-+{
-+ struct wpa_driver_ralink_data *drv = priv;
-+ struct wpa_supplicant *wpa_s = drv->ctx;
-+ struct wpa_ssid *entry;
-+ int ssid_len;
-+ u8 bssid[ETH_ALEN];
-+ u8 ssid_str[MAX_SSID_LEN];
-+ struct iwreq iwr;
-+ int result = 0;
-+ int ret = 0;
-+ BOOLEAN ieee8021x_mode = FALSE;
-+ BOOLEAN ieee8021x_required_key = FALSE;
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ memset(&iwr, 0, sizeof(iwr));
-+ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
-+ iwr.u.essid.pointer = (caddr_t) ssid;
-+ iwr.u.essid.length = 32;
-+
-+ if (ioctl(drv->ioctl_sock, SIOCGIWESSID, &iwr) < 0)
-+ {
-+ perror("ioctl[SIOCGIWESSID]");
-+ ret = -1;
-+ } else
-+ ret = iwr.u.essid.length;
-+
-+ if(ret <= 0)
-+ return ret;
-+
-+ ssid_len = ret;
-+ memset(ssid_str, 0, MAX_SSID_LEN);
-+ memcpy(ssid_str, ssid, ssid_len);
-+
-+ if(wpa_s->conf->ap_scan == 0)
-+ {
-+ // Read BSSID form driver
-+ if (wpa_driver_ralink_get_bssid(priv, bssid) < 0)
-+ {
-+ wpa_printf(MSG_WARNING, "Could not read BSSID from driver.");
-+ return ret;
-+ }
-+
-+ entry = wpa_s->conf->ssid;
-+ while (entry)
-+ {
-+ if (!entry->disabled && ssid_len == entry->ssid_len && memcmp(ssid_str, entry->ssid, ssid_len) == 0 &&
-+ (!entry->bssid_set || memcmp(bssid, entry->bssid, ETH_ALEN) == 0))
-+ {
-+ // match the config of driver
-+ result = 1;
-+ break;
-+ }
-+ entry = entry->next;
-+ }
-+
-+ if(result)
-+ {
-+ wpa_printf(MSG_DEBUG, "Ready to set 802.1x mode and ieee_required_keys parameters to driver");
-+
-+ // set 802.1x mode and ieee_required_keys parameter
-+ if(entry->key_mgmt == WPA_KEY_MGMT_IEEE8021X_NO_WPA)
-+ {
-+ if ((entry->eapol_flags & (EAPOL_FLAG_REQUIRE_KEY_UNICAST | EAPOL_FLAG_REQUIRE_KEY_BROADCAST)))
-+ ieee8021x_required_key = TRUE;
-+
-+ ieee8021x_mode = TRUE;
-+ }
-+
-+ if (ralink_set_oid(drv, OID_802_11_SET_IEEE8021X, (char *) &ieee8021x_mode, sizeof(BOOLEAN)) < 0)
-+ {
-+ wpa_printf(MSG_DEBUG, "RALINK: Failed to set OID_802_11_SET_IEEE8021X(%d)", (int) ieee8021x_mode);
-+ }
-+ else
-+ {
-+ wpa_printf(MSG_DEBUG, "ieee8021x_mode is %s", ieee8021x_mode ? "TRUE" : "FALSE");
-+ }
-+
-+
-+ if (ralink_set_oid(drv, OID_802_11_SET_IEEE8021X_REQUIRE_KEY, (char *) &ieee8021x_required_key, sizeof(BOOLEAN)) < 0)
-+ {
-+ wpa_printf(MSG_DEBUG, "ERROR: Failed to set OID_802_11_SET_IEEE8021X_REQUIRE_KEY(%d)", (int) ieee8021x_required_key);
-+ }
-+ else
-+ {
-+ wpa_printf(MSG_DEBUG, "ieee8021x_required_key is %s and eapol_flag(%d)", ieee8021x_required_key ? "TRUE" : "FALSE",
-+ entry->eapol_flags);
-+ }
-+ }
-+ }
-+
-+ return ret;
-+}
-+
-+static int wpa_driver_ralink_set_ssid(struct wpa_driver_ralink_data *drv,
-+ const u8 *ssid, size_t ssid_len)
-+{
-+ NDIS_802_11_SSID *buf;
-+ int ret = 0;
-+ struct iwreq iwr;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ buf = (NDIS_802_11_SSID *)os_malloc(sizeof(NDIS_802_11_SSID));
-+ if (buf == NULL)
-+ return -1;
-+ memset(buf, 0, sizeof(buf));
-+ buf->SsidLength = ssid_len;
-+ memcpy(buf->Ssid, ssid, ssid_len);
-+ memset(&iwr, 0, sizeof(iwr));
-+ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
-+
-+ iwr.u.data.flags = OID_802_11_SSID;
-+ iwr.u.data.flags |= OID_GET_SET_TOGGLE;
-+ iwr.u.data.pointer = (caddr_t) buf;
-+ iwr.u.data.length = sizeof(NDIS_802_11_SSID);
-+
-+ if (ioctl(drv->ioctl_sock, RT_PRIV_IOCTL, &iwr) < 0)
-+ {
-+ perror("ioctl[RT_PRIV_IOCTL] -- OID_802_11_SSID");
-+ ret = -1;
-+ }
-+ os_free(buf);
-+ return ret;
-+}
-+
-+static void wpa_driver_ralink_event_pmkid(struct wpa_driver_ralink_data *drv,
-+ const u8 *data, size_t data_len)
-+{
-+ NDIS_802_11_PMKID_CANDIDATE_LIST *pmkid;
-+ int i;
-+ union wpa_event_data event;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ if (data_len < 8)
-+ {
-+ wpa_printf(MSG_DEBUG, "RALINK: Too short PMKID Candidate List "
-+ "Event (len=%d)", data_len);
-+ return;
-+ }
-+ pmkid = (NDIS_802_11_PMKID_CANDIDATE_LIST *) data;
-+ wpa_printf(MSG_DEBUG, "RALINK: PMKID Candidate List Event - Version %d "
-+ "NumCandidates %d",
-+ (int) pmkid->Version, (int) pmkid->NumCandidates);
-+
-+ if (pmkid->Version != 1)
-+ {
-+ wpa_printf(MSG_DEBUG, "RALINK: Unsupported PMKID Candidate List "
-+ "Version %d", (int) pmkid->Version);
-+ return;
-+ }
-+
-+ if (data_len < 8 + pmkid->NumCandidates * sizeof(PMKID_CANDIDATE))
-+ {
-+ wpa_printf(MSG_DEBUG, "RALINK: PMKID Candidate List underflow");
-+
-+ return;
-+ }
-+
-+
-+
-+ memset(&event, 0, sizeof(event));
-+ for (i = 0; i < pmkid->NumCandidates; i++)
-+ {
-+ PMKID_CANDIDATE *p = &pmkid->CandidateList[i];
-+ wpa_printf(MSG_DEBUG, "RALINK: %d: " MACSTR " Flags 0x%x",
-+ i, MAC2STR(p->BSSID), (int) p->Flags);
-+ memcpy(event.pmkid_candidate.bssid, p->BSSID, ETH_ALEN);
-+ event.pmkid_candidate.index = i;
-+ event.pmkid_candidate.preauth =
-+ p->Flags & NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED;
-+ wpa_supplicant_event(drv->ctx, EVENT_PMKID_CANDIDATE,
-+ &event);
-+ }
-+}
-+
-+static int wpa_driver_ralink_set_pmkid(struct wpa_driver_ralink_data *drv)
-+{
-+ int len, count, i, ret;
-+ struct ndis_pmkid_entry *entry;
-+ NDIS_802_11_PMKID *p;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ count = 0;
-+ entry = drv->pmkid;
-+ while (entry)
-+ {
-+ count++;
-+ if (count >= drv->no_of_pmkid)
-+ break;
-+ entry = entry->next;
-+ }
-+ len = 8 + count * sizeof(BSSID_INFO);
-+ p = os_malloc(len);
-+ if (p == NULL)
-+ return -1;
-+ memset(p, 0, len);
-+ p->Length = len;
-+ p->BSSIDInfoCount = count;
-+ entry = drv->pmkid;
-+ for (i = 0; i < count; i++)
-+ {
-+ memcpy(&p->BSSIDInfo[i].BSSID, entry->bssid, ETH_ALEN);
-+ memcpy(&p->BSSIDInfo[i].PMKID, entry->pmkid, 16);
-+ entry = entry->next;
-+ }
-+ wpa_hexdump(MSG_MSGDUMP, "NDIS: OID_802_11_PMKID", (const u8 *) p, len);
-+ ret = ralink_set_oid(drv, OID_802_11_PMKID, (char *) p, len);
-+ os_free(p);
-+ return ret;
-+}
-+
-+static int wpa_driver_ralink_add_pmkid(void *priv, const u8 *bssid,
-+ const u8 *pmkid)
-+{
-+ struct wpa_driver_ralink_data *drv = priv;
-+ struct ndis_pmkid_entry *entry, *prev;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ if (drv->no_of_pmkid == 0)
-+ return 0;
-+
-+ prev = NULL;
-+ entry = drv->pmkid;
-+ while (entry)
-+ {
-+ if (memcmp(entry->bssid, bssid, ETH_ALEN) == 0)
-+ break;
-+ prev = entry;
-+ entry = entry->next;
-+ }
-+
-+ if (entry)
-+ {
-+ /* Replace existing entry for this BSSID and move it into the
-+ * beginning of the list. */
-+ memcpy(entry->pmkid, pmkid, 16);
-+ if (prev)
-+ {
-+ prev->next = entry->next;
-+ entry->next = drv->pmkid;
-+ drv->pmkid = entry;
-+ }
-+ }
-+ else
-+ {
-+ entry = os_malloc(sizeof(*entry));
-+ if (entry)
-+ {
-+ memcpy(entry->bssid, bssid, ETH_ALEN);
-+ memcpy(entry->pmkid, pmkid, 16);
-+ entry->next = drv->pmkid;
-+ drv->pmkid = entry;
-+ }
-+ }
-+
-+ return wpa_driver_ralink_set_pmkid(drv);
-+}
-+
-+
-+static int wpa_driver_ralink_remove_pmkid(void *priv, const u8 *bssid,
-+ const u8 *pmkid)
-+{
-+ struct wpa_driver_ralink_data *drv = priv;
-+ struct ndis_pmkid_entry *entry, *prev;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ if (drv->no_of_pmkid == 0)
-+ return 0;
-+
-+ entry = drv->pmkid;
-+ prev = NULL;
-+ drv->pmkid = NULL;
-+ while (entry)
-+ {
-+ if (memcmp(entry->bssid, bssid, ETH_ALEN) == 0 &&
-+ memcmp(entry->pmkid, pmkid, 16) == 0)
-+ {
-+ if (prev)
-+ prev->next = entry->next;
-+ else
-+ drv->pmkid = entry->next;
-+ os_free(entry);
-+ break;
-+ }
-+ prev = entry;
-+ entry = entry->next;
-+ }
-+ return wpa_driver_ralink_set_pmkid(drv);
-+}
-+
-+
-+static int wpa_driver_ralink_flush_pmkid(void *priv)
-+{
-+ struct wpa_driver_ralink_data *drv = priv;
-+ NDIS_802_11_PMKID p;
-+ struct ndis_pmkid_entry *pmkid, *prev;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ if (drv->no_of_pmkid == 0)
-+ return 0;
-+
-+ pmkid = drv->pmkid;
-+ drv->pmkid = NULL;
-+ while (pmkid)
-+ {
-+ prev = pmkid;
-+ pmkid = pmkid->next;
-+ os_free(prev);
-+ }
-+
-+ memset(&p, 0, sizeof(p));
-+ p.Length = 8;
-+ p.BSSIDInfoCount = 0;
-+ wpa_hexdump(MSG_MSGDUMP, "NDIS: OID_802_11_PMKID (flush)",
-+ (const u8 *) &p, 8);
-+ return ralink_set_oid(drv, OID_802_11_PMKID, (char *) &p, 8);
-+}
-+
-+static void
-+wpa_driver_ralink_event_wireless_custom(struct wpa_driver_ralink_data *drv,
-+ void *ctx, char *custom)
-+{
-+ union wpa_event_data data;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ wpa_printf(MSG_DEBUG, "Custom wireless event: '%s'", custom);
-+
-+ memset(&data, 0, sizeof(data));
-+ /* Host AP driver */
-+ if (strncmp(custom, "MLME-MICHAELMICFAILURE.indication", 33) == 0)
-+ {
-+ //receive a MICFAILURE report
-+ data.michael_mic_failure.unicast =
-+ strstr(custom, " unicast ") != NULL;
-+ /* TODO: parse parameters(?) */
-+ wpa_supplicant_event(ctx, EVENT_MICHAEL_MIC_FAILURE, &data);
-+ }
-+ else if (strncmp(custom, "ASSOCINFO_ReqIEs=", 17) == 0)
-+ {
-+ //receive assoc. req. IEs
-+ char *spos;
-+ int bytes;
-+
-+ spos = custom + 17;
-+ //get IE's length
-+ //bytes = strlen(spos);
-+ bytes = drv->assoc_req_ies_len + drv->assoc_resp_ies_len;
-+
-+ if (!bytes)
-+ return;
-+
-+
-+ data.assoc_info.req_ies = os_malloc(bytes);
-+ if (data.assoc_info.req_ies == NULL)
-+ return;
-+
-+ data.assoc_info.req_ies_len = bytes;
-+ memcpy(data.assoc_info.req_ies, spos, bytes);
-+
-+ //skip the '\0' byte
-+ spos += bytes + 1;
-+
-+ data.assoc_info.resp_ies = NULL;
-+ data.assoc_info.resp_ies_len = 0;
-+
-+ if (strncmp(spos, " RespIEs=", 9) == 0)
-+ {
-+ //receive assoc. resp. IEs
-+ spos += 9;
-+ //get IE's length
-+ bytes = strlen(spos);
-+ if (!bytes)
-+ goto done;
-+
-+
-+ data.assoc_info.resp_ies = os_malloc(bytes);
-+ if (data.assoc_info.resp_ies == NULL)
-+ goto done;
-+
-+ data.assoc_info.resp_ies_len = bytes;
-+ memcpy(data.assoc_info.resp_ies, spos, bytes);
-+ }
-+
-+ wpa_supplicant_event(ctx, EVENT_ASSOCINFO, &data);
-+
-+ //free allocated memory
-+ done:
-+ if(data.assoc_info.resp_ies != NULL)
-+ os_free(data.assoc_info.resp_ies);
-+ if(data.assoc_info.req_ies != NULL)
-+ os_free(data.assoc_info.req_ies);
-+ }
-+}
-+
-+static void wpa_driver_ralink_event_wireless(struct wpa_driver_ralink_data *drv,
-+ void *ctx, char *data, int len)
-+{
-+ struct iw_event iwe_buf, *iwe = &iwe_buf;
-+ char *pos, *end, *custom, *buf, *assoc_info_buf, *info_pos;
-+ struct wpa_supplicant *wpa_s = ctx;
-+ BOOLEAN ieee8021x_required_key = FALSE;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ assoc_info_buf = info_pos = NULL;
-+ pos = data;
-+ end = data + len;
-+
-+ while (pos + IW_EV_LCP_LEN <= end)
-+ {
-+ /* Event data may be unaligned, so make a local, aligned copy
-+ * before processing. */
-+ memcpy(&iwe_buf, pos, IW_EV_LCP_LEN);
-+ wpa_printf(MSG_DEBUG, "Wireless event: cmd=0x%x len=%d",
-+ iwe->cmd, iwe->len);
-+ if (iwe->len <= IW_EV_LCP_LEN)
-+ return;
-+
-+ custom = pos + IW_EV_POINT_LEN;
-+
-+ if (drv->we_version_compiled > 18 &&
-+ (iwe->cmd == IWEVCUSTOM))
-+ {
-+ /* WE-19 removed the pointer from struct iw_point */
-+ char *dpos = (char *) &iwe_buf.u.data.length;
-+ int dlen = dpos - (char *) &iwe_buf;
-+ memcpy(dpos, pos + IW_EV_LCP_LEN,
-+ sizeof(struct iw_event) - dlen);
-+ }
-+ else
-+ {
-+ memcpy(&iwe_buf, pos, sizeof(struct iw_event));
-+ custom += IW_EV_POINT_OFF;
-+ }
-+
-+ switch (iwe->cmd)
-+ {
-+
-+ case IWEVCUSTOM:
-+ if (custom + iwe->u.data.length > end)
-+ return;
-+ buf = os_malloc(iwe->u.data.length + 1);
-+ if (buf == NULL)
-+ return;
-+ memcpy(buf, custom, iwe->u.data.length);
-+ buf[iwe->u.data.length] = '\0';
-+
-+ if (wpa_s->conf->ap_scan == 1)
-+ {
-+ if ((iwe->u.data.flags == RT_ASSOC_EVENT_FLAG) || (iwe->u.data.flags == RT_REQIE_EVENT_FLAG) ||
-+ (iwe->u.data.flags == RT_RESPIE_EVENT_FLAG) || (iwe->u.data.flags == RT_ASSOCINFO_EVENT_FLAG))
-+ {
-+ if (scanning_done == 0)
-+ {
-+ //free(buf); //<--carella modify
-+ //return; //-->
-+ }
-+ }
-+ }
-+
-+ if (iwe->u.data.flags == RT_ASSOC_EVENT_FLAG)
-+ {
-+ wpa_printf(MSG_DEBUG, "Custom wireless event: receive ASSOCIATED_EVENT !!!");
-+ wpa_drv_get_bssid(wpa_s, wpa_s->bssid);
-+ // determine whether the dynamic-WEP is used or not
-+ if(wpa_s && wpa_s->current_ssid && wpa_s->current_ssid->key_mgmt == WPA_KEY_MGMT_IEEE8021X_NO_WPA)
-+ {
-+ if ((wpa_s->current_ssid->eapol_flags &
-+ (EAPOL_FLAG_REQUIRE_KEY_UNICAST | EAPOL_FLAG_REQUIRE_KEY_BROADCAST)))
-+ {
-+ //wpa_printf(MSG_DEBUG, "The current ssid - (%s), eapol_flag = %d.\n",
-+ // wpa_ssid_txt(wpa_s->current_ssid->ssid, wpa_s->current_ssid->ssid_len),wpa_s->current_ssid->eapol_flags);
-+ ieee8021x_required_key = TRUE;
-+ }
-+
-+ if (ralink_set_oid(drv, OID_802_11_SET_IEEE8021X_REQUIRE_KEY, (char *) &ieee8021x_required_key, sizeof(BOOLEAN)) < 0)
-+ {
-+ wpa_printf(MSG_DEBUG, "ERROR: Failed to set OID_802_11_SET_IEEE8021X_REQUIRE_KEY(%d)",
-+ (int) ieee8021x_required_key);
-+ }
-+
-+ wpa_printf(MSG_DEBUG, "ieee8021x_required_key is %s and eapol_flag(%d).\n", ieee8021x_required_key ? "TRUE" : "FALSE",
-+ wpa_s->current_ssid->eapol_flags);
-+ }
-+
-+ wpa_supplicant_event(ctx, EVENT_ASSOC, NULL);
-+ }
-+ else if (iwe->u.data.flags == RT_REQIE_EVENT_FLAG)
-+ {
-+ wpa_printf(MSG_DEBUG, "Custom wireless event: receive ReqIEs !!!");
-+ drv->assoc_req_ies = os_malloc(iwe->u.data.length);
-+
-+ if (drv->assoc_req_ies == NULL)
-+ return;
-+
-+ drv->assoc_req_ies_len = iwe->u.data.length;
-+ memcpy(drv->assoc_req_ies, custom, iwe->u.data.length);
-+ }
-+ else if (iwe->u.data.flags == RT_RESPIE_EVENT_FLAG)
-+ {
-+ wpa_printf(MSG_DEBUG, "Custom wireless event: receive RespIEs !!!");
-+ drv->assoc_resp_ies = os_malloc(iwe->u.data.length);
-+
-+ if (drv->assoc_resp_ies == NULL)
-+ {
-+ if (drv->assoc_req_ies != NULL)
-+ os_free(drv->assoc_req_ies);
-+ return;
-+ }
-+
-+ drv->assoc_resp_ies_len = iwe->u.data.length;
-+ memcpy(drv->assoc_resp_ies, custom, iwe->u.data.length);
-+ }
-+ else if (iwe->u.data.flags == RT_ASSOCINFO_EVENT_FLAG)
-+ {
-+ wpa_printf(MSG_DEBUG, "Custom wireless event: receive ASSOCINFO_EVENT !!!");
-+ assoc_info_buf = os_malloc(drv->assoc_req_ies_len + drv->assoc_resp_ies_len + 1);
-+
-+ if (assoc_info_buf == NULL)
-+ {
-+ if (drv->assoc_req_ies != NULL)
-+ os_free(drv->assoc_req_ies);
-+ if (drv->assoc_resp_ies != NULL)
-+ os_free(drv->assoc_resp_ies);
-+ os_free(buf);
-+ return;
-+ }
-+
-+ memcpy(assoc_info_buf, drv->assoc_req_ies, drv->assoc_req_ies_len);
-+ info_pos = assoc_info_buf + drv->assoc_req_ies_len;
-+ memcpy(info_pos , drv->assoc_resp_ies, drv->assoc_resp_ies_len);
-+ assoc_info_buf[drv->assoc_req_ies_len + drv->assoc_resp_ies_len] = '\0';
-+ wpa_driver_ralink_event_wireless_custom(drv, ctx, assoc_info_buf);
-+ os_free(drv->assoc_req_ies);
-+ os_free(drv->assoc_resp_ies);
-+ os_free(assoc_info_buf);
-+ }
-+ else if (iwe->u.data.flags == RT_DISASSOC_EVENT_FLAG)
-+ {
-+ wpa_printf(MSG_DEBUG, "Custom wireless event: receive DISASSOCIATED_EVENT !!!");
-+ wpa_supplicant_event(ctx, EVENT_DISASSOC, NULL);
-+ }
-+ else if (iwe->u.data.flags == RT_PMKIDCAND_FLAG)
-+ {
-+ wpa_printf(MSG_DEBUG, "Custom wireless event: receive PMKIDCAND_EVENT !!!");
-+ wpa_driver_ralink_event_pmkid(drv, (const u8 *)custom, iwe->u.data.length);
-+ }
-+ else
-+ {
-+ wpa_driver_ralink_event_wireless_custom(drv, ctx, buf);
-+ }
-+ os_free(buf);
-+ break;
-+
-+ }
-+
-+ pos += iwe->len;
-+ }
-+}
-+
-+static void wpa_driver_ralink_event_rtm_newlink(struct wpa_driver_ralink_data *drv,
-+ void *ctx, struct nlmsghdr *h,
-+ int len)
-+{
-+ struct ifinfomsg *ifi;
-+ int attrlen, nlmsg_len, rta_len;
-+ struct rtattr * attr;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ if (len < sizeof(*ifi))
-+ return;
-+
-+ ifi = NLMSG_DATA(h);
-+ wpa_hexdump(MSG_DEBUG, "ifi: ", (u8 *)ifi, sizeof(struct ifinfomsg));
-+
-+ nlmsg_len = NLMSG_ALIGN(sizeof(struct ifinfomsg));
-+
-+ attrlen = h->nlmsg_len - nlmsg_len;
-+ printf("attrlen=%d\n",attrlen);
-+ if (attrlen < 0)
-+ return;
-+
-+ attr = (struct rtattr *) (((char *) ifi) + nlmsg_len);
-+ wpa_hexdump(MSG_DEBUG, "attr1: ", (u8 *)attr,sizeof(struct rtattr));
-+ rta_len = RTA_ALIGN(sizeof(struct rtattr));
-+ wpa_hexdump(MSG_DEBUG, "attr2: ", (u8 *)attr,rta_len);
-+ while (RTA_OK(attr, attrlen))
-+ {
-+ printf("rta_type=%02x\n",attr->rta_type);
-+ if (attr->rta_type == IFLA_WIRELESS)
-+ {
-+ wpa_driver_ralink_event_wireless(drv, ctx, ((char *) attr) + rta_len, attr->rta_len - rta_len);
-+ }
-+ attr = RTA_NEXT(attr, attrlen);
-+ wpa_hexdump(MSG_DEBUG, "attr3: ", (u8 *)attr,sizeof(struct rtattr));
-+ }
-+}
-+
-+static void wpa_driver_ralink_event_receive(int sock, void *ctx,
-+ void *sock_ctx)
-+{
-+ char buf[8192];
-+ int left;
-+ struct sockaddr_nl from;
-+ socklen_t fromlen;
-+ struct nlmsghdr *h;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ fromlen = sizeof(from);
-+ left = recvfrom(sock, buf, sizeof(buf), MSG_DONTWAIT, (struct sockaddr *) &from, &fromlen);
-+
-+ if (left < 0)
-+ {
-+ if (errno != EINTR && errno != EAGAIN)
-+ perror("recvfrom(netlink)");
-+ return;
-+ }
-+
-+ h = (struct nlmsghdr *) buf;
-+ wpa_hexdump(MSG_DEBUG, "h: ", (u8 *)h, h->nlmsg_len);
-+
-+ while (left >= sizeof(*h))
-+ {
-+ int len, plen;
-+
-+ len = h->nlmsg_len;
-+ plen = len - sizeof(*h);
-+ if (len > left || plen < 0)
-+ {
-+ wpa_printf(MSG_DEBUG, "Malformed netlink message: "
-+ "len=%d left=%d plen=%d", len, left, plen);
-+ break;
-+ }
-+
-+ switch (h->nlmsg_type)
-+ {
-+ case RTM_NEWLINK:
-+ wpa_driver_ralink_event_rtm_newlink(ctx, sock_ctx, h, plen);
-+ break;
-+ }
-+
-+ len = NLMSG_ALIGN(len);
-+ left -= len;
-+ h = (struct nlmsghdr *) ((char *) h + len);
-+ }
-+
-+ if (left > 0)
-+ {
-+ wpa_printf(MSG_DEBUG, "%d extra bytes in the end of netlink "
-+ "message", left);
-+ }
-+
-+}
-+
-+static int
-+ralink_get_we_version_compiled(struct wpa_driver_ralink_data *drv)
-+{
-+ struct iwreq iwr;
-+ UINT we_version_compiled = 0;
-+
-+ memset(&iwr, 0, sizeof(iwr));
-+ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
-+ iwr.u.data.pointer = (caddr_t) &we_version_compiled;
-+ iwr.u.data.flags = RT_OID_WE_VERSION_COMPILED;
-+
-+ if (ioctl(drv->ioctl_sock, RT_PRIV_IOCTL, &iwr) < 0)
-+ {
-+ wpa_printf(MSG_DEBUG, "%s: failed", __func__);
-+ return -1;
-+ }
-+
-+ drv->we_version_compiled = we_version_compiled;
-+
-+ return 0;
-+}
-+
-+static int
-+ralink_set_iface_flags(void *priv, int dev_up)
-+{
-+ struct wpa_driver_ralink_data *drv = priv;
-+ struct ifreq ifr;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ if (drv->ioctl_sock < 0)
-+ return -1;
-+
-+ memset(&ifr, 0, sizeof(ifr));
-+ snprintf(ifr.ifr_name, IFNAMSIZ, "%s", drv->ifname);
-+
-+ if (ioctl(drv->ioctl_sock, SIOCGIFFLAGS, &ifr) != 0)
-+ {
-+ perror("ioctl[SIOCGIFFLAGS]");
-+ return -1;
-+ }
-+
-+ if (dev_up)
-+ ifr.ifr_flags |= IFF_UP;
-+ else
-+ ifr.ifr_flags &= ~IFF_UP;
-+
-+ if (ioctl(drv->ioctl_sock, SIOCSIFFLAGS, &ifr) != 0)
-+ {
-+ perror("ioctl[SIOCSIFFLAGS]");
-+ return -1;
-+ }
-+
-+ return 0;
-+}
-+
-+static void * wpa_driver_ralink_init(void *ctx, const char *ifname)
-+{
-+ int s;
-+ struct wpa_driver_ralink_data *drv;
-+ struct ifreq ifr;
-+ struct sockaddr_nl local;
-+ BOOLEAN enable_wpa_supplicant;
-+ struct wpa_supplicant *wpa_s = NULL;
-+ struct wpa_ssid *entry;
-+ int prio;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ /* open socket to kernel */
-+ if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
-+ {
-+ perror("socket");
-+ return NULL;
-+ }
-+ /* do it */
-+ strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
-+
-+ if (ioctl(s, SIOCGIFINDEX, &ifr) < 0)
-+ {
-+ perror(ifr.ifr_name);
-+ return NULL;
-+ }
-+
-+
-+ drv = os_malloc(sizeof(*drv));
-+
-+ if (drv == NULL)
-+ return NULL;
-+
-+ memset(drv, 0, sizeof(*drv));
-+ drv->ctx = ctx;
-+ strncpy(drv->ifname, ifname, sizeof(drv->ifname));
-+ drv->ioctl_sock = s;
-+
-+ //use netlink like this
-+
-+ s = socket(PF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
-+
-+ if (s < 0)
-+ {
-+ perror("socket(PF_NETLINK,SOCK_RAW,NETLINK_ROUTE)");
-+ close(drv->ioctl_sock);
-+ os_free(drv);
-+ return NULL;
-+ }
-+
-+ memset(&local, 0, sizeof(local));
-+ local.nl_family = AF_NETLINK;
-+ local.nl_groups = RTMGRP_LINK;
-+
-+ if (bind(s, (struct sockaddr *) &local, sizeof(local)) < 0)
-+ {
-+ perror("bind(netlink)");
-+ close(s);
-+ close(drv->ioctl_sock);
-+ os_free(drv);
-+ return NULL;
-+ }
-+
-+ eloop_register_read_sock(s, wpa_driver_ralink_event_receive, drv, ctx);
-+ drv->event_sock = s;
-+ drv->no_of_pmkid = 4; // Number of PMKID saved supporte
-+
-+ ralink_set_iface_flags(drv, 1); /* mark up during setup */
-+ ralink_get_we_version_compiled(drv);
-+ wpa_driver_ralink_flush_pmkid(drv);
-+
-+ enable_wpa_supplicant = TRUE;
-+ // trigger driver support wpa_supplicant
-+ if (ralink_set_oid(drv, RT_OID_WPA_SUPPLICANT_SUPPORT, (char *) &enable_wpa_supplicant, sizeof(BOOLEAN)) < 0)
-+ {
-+ wpa_printf(MSG_DEBUG, "RALINK: Failed to set "
-+ "RT_OID_WPA_SUPPLICANT_SUPPORT(%d)",
-+ (int) enable_wpa_supplicant);
-+ }
-+
-+ wpa_s = drv->ctx;
-+
-+ if (wpa_s->conf->ap_scan == 1)
-+ scanning_done = 0;
-+
-+ for(prio=0; prio<wpa_s->conf->num_prio; prio++)
-+ {
-+ for(entry=wpa_s->conf->pssid[prio]; entry; entry=entry->next)
-+ {
-+ if(entry->disabled)
-+ continue;
-+ wpa_driver_ralink_set_ssid(drv, entry->ssid, entry->ssid_len);
-+ prio = wpa_s->conf->num_prio + 1;
-+ break;
-+ }
-+ }
-+ return drv;
-+}
-+
-+static void wpa_driver_ralink_deinit(void *priv)
-+{
-+ struct wpa_driver_ralink_data *drv = priv;
-+ BOOLEAN enable_wpa_supplicant;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ enable_wpa_supplicant = FALSE;
-+
-+ // trigger driver disable wpa_supplicant support
-+ if (ralink_set_oid(drv, RT_OID_WPA_SUPPLICANT_SUPPORT, (char *) &enable_wpa_supplicant, sizeof(BOOLEAN)) < 0)
-+ {
-+ wpa_printf(MSG_DEBUG, "RALINK: Failed to set "
-+ "RT_OID_WPA_SUPPLICANT_SUPPORT(%d)",
-+ (int) enable_wpa_supplicant);
-+ }
-+
-+ wpa_driver_ralink_flush_pmkid(drv);
-+ sleep(1);
-+ ralink_set_iface_flags(drv, 0);
-+
-+ eloop_unregister_read_sock(drv->event_sock);
-+ close(drv->event_sock);
-+ close(drv->ioctl_sock);
-+ os_free(drv);
-+}
-+
-+static void wpa_driver_ralink_scan_timeout(void *eloop_ctx,
-+ void *timeout_ctx)
-+{
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ wpa_printf(MSG_DEBUG, "Scan timeout - try to get results");
-+ wpa_supplicant_event(timeout_ctx, EVENT_SCAN_RESULTS, NULL);
-+
-+ scanning_done = 1;
-+
-+}
-+
-+static int wpa_driver_ralink_scan(void *priv, const u8 *ssid,
-+ size_t ssid_len)
-+{
-+ struct wpa_driver_ralink_data *drv = priv;
-+ struct iwreq iwr;
-+ int ret = 0;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ if (ssid_len > IW_ESSID_MAX_SIZE) {
-+ wpa_printf(MSG_DEBUG, "%s: too long SSID (%lu)",
-+ __FUNCTION__, (unsigned long) ssid_len);
-+ return -1;
-+ }
-+
-+ wpa_driver_ralink_set_ssid(drv, ssid, ssid_len);
-+
-+ memset(&iwr, 0, sizeof(iwr));
-+ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
-+
-+ if (ioctl(drv->ioctl_sock, SIOCSIWSCAN, &iwr) < 0)
-+ {
-+ perror("ioctl[SIOCSIWSCAN]");
-+ ret = -1;
-+ }
-+
-+ /* Not all drivers generate "scan completed" wireless event, so try to
-+ * read results after a timeout. */
-+ eloop_register_timeout(4, 0, wpa_driver_ralink_scan_timeout, drv, drv->ctx);
-+
-+ scanning_done = 0;
-+
-+ return ret;
-+}
-+
-+static int
-+wpa_driver_ralink_get_scan_results(void *priv,
-+ struct wpa_scan_result *results,
-+ size_t max_size)
-+{
-+ struct wpa_driver_ralink_data *drv = priv;
-+ UCHAR *buf = NULL;
-+ //NDIS_802_11_BSSID_LIST_EX *wsr = (NDIS_802_11_BSSID_LIST_EX *) buf; //<--carella modify
-+ NDIS_802_11_BSSID_LIST_EX *wsr = NULL; //-->carella
-+ NDIS_WLAN_BSSID_EX *wbi;
-+ struct iwreq iwr;
-+ int ap_num;
-+ u8 *pos,*end;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ buf = (UCHAR *) os_malloc(RT_MAX_802_11_BSSID_LIST_EX);
-+ if (buf == NULL)
-+ return -1;
-+
-+ memset(buf, 0, RT_MAX_802_11_BSSID_LIST_EX);
-+
-+ wsr = (NDIS_802_11_BSSID_LIST_EX *) buf;
-+
-+ wsr->NumberOfItems = 0;
-+ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
-+ iwr.u.data.pointer = (caddr_t) buf;
-+ iwr.u.data.flags = OID_802_11_BSSID_LIST;
-+
-+ if (ioctl(drv->ioctl_sock, RT_PRIV_IOCTL, &iwr) < 0)
-+ {
-+ os_free(buf);
-+ return -1;
-+ }
-+
-+ memset(results, 0, max_size * sizeof(struct wpa_scan_result));
-+
-+ for (ap_num = 0, wbi = wsr->Bssid; ap_num < wsr->NumberOfItems; ++ap_num)
-+ {
-+ memcpy(results[ap_num].bssid, &wbi->MacAddress, ETH_ALEN);
-+ memcpy(results[ap_num].ssid, wbi->Ssid.Ssid, wbi->Ssid.SsidLength);
-+ results[ap_num].ssid_len = wbi->Ssid.SsidLength;
-+ results[ap_num].freq = (wbi->Configuration.DSConfig / 1000);
-+
-+ /* get ie's */
-+ wpa_hexdump(MSG_DEBUG, "RALINK: AP IEs",
-+ (u8 *) wbi + sizeof(*wbi) - 1, wbi->IELength);
-+
-+ pos = (u8 *) wbi + sizeof(*wbi) - 1;
-+ end = (u8 *) wbi + sizeof(*wbi) + wbi->IELength;
-+
-+ if (wbi->IELength < sizeof(NDIS_802_11_FIXED_IEs))
-+ break;
-+
-+ pos += sizeof(NDIS_802_11_FIXED_IEs) - 2;
-+ memcpy(&results[ap_num].caps, pos, 2);
-+ pos += 2;
-+
-+ while (pos + 1 < end && pos + 2 + pos[1] <= end)
-+ {
-+ u8 ielen = 2 + pos[1];
-+
-+ if (ielen > SSID_MAX_WPA_IE_LEN)
-+ {
-+ pos += ielen;
-+ continue;
-+ }
-+
-+ if (pos[0] == GENERIC_INFO_ELEM && pos[1] >= 4 &&
-+ memcmp(pos + 2, "\x00\x50\xf2\x01", 4) == 0)
-+ {
-+ memcpy(results[ap_num].wpa_ie, pos, ielen);
-+ results[ap_num].wpa_ie_len = ielen;
-+ }
-+ else if (pos[0] == RSN_INFO_ELEM)
-+ {
-+ memcpy(results[ap_num].rsn_ie, pos, ielen);
-+ results[ap_num].rsn_ie_len = ielen;
-+ }
-+ pos += ielen;
-+ }
-+
-+ wbi = (NDIS_WLAN_BSSID_EX *) ((u8 *) wbi + wbi->Length);
-+ }
-+
-+ os_free(buf);
-+ return ap_num;
-+}
-+
-+static int ralink_set_auth_mode(struct wpa_driver_ralink_data *drv, NDIS_802_11_AUTHENTICATION_MODE mode)
-+{
-+ NDIS_802_11_AUTHENTICATION_MODE auth_mode = mode;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ if (ralink_set_oid(drv, OID_802_11_AUTHENTICATION_MODE,
-+ (char *) &auth_mode, sizeof(auth_mode)) < 0)
-+ {
-+ wpa_printf(MSG_DEBUG, "RALINK: Failed to set "
-+ "OID_802_11_AUTHENTICATION_MODE (%d)",
-+ (int) auth_mode);
-+ return -1;
-+ }
-+ return 0;
-+}
-+
-+static int wpa_driver_ralink_remove_key(struct wpa_driver_ralink_data *drv,
-+ int key_idx, const u8 *addr,
-+ const u8 *bssid, int pairwise)
-+{
-+ NDIS_802_11_REMOVE_KEY rkey;
-+ NDIS_802_11_KEY_INDEX index;
-+ int res, res2;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ memset(&rkey, 0, sizeof(rkey));
-+
-+ rkey.Length = sizeof(rkey);
-+ rkey.KeyIndex = key_idx;
-+
-+ if (pairwise)
-+ rkey.KeyIndex |= 1 << 30;
-+
-+ memcpy(rkey.BSSID, bssid, ETH_ALEN);
-+
-+ res = ralink_set_oid(drv, OID_802_11_REMOVE_KEY, (char *) &rkey,
-+ sizeof(rkey));
-+
-+//AlbertY@20060210 removed it
-+ if(0)//if (!pairwise)
-+ {
-+ res2 = ralink_set_oid(drv, OID_802_11_REMOVE_WEP,
-+ (char *) &index, sizeof(index));
-+ }
-+ else
-+ res2 = 0;
-+
-+ if (res < 0 && res2 < 0)
-+ return res;
-+ return 0;
-+}
-+
-+static int wpa_driver_ralink_add_wep(struct wpa_driver_ralink_data *drv,
-+ int pairwise, int key_idx, int set_tx,
-+ const u8 *key, size_t key_len)
-+{
-+ NDIS_802_11_WEP *wep;
-+ size_t len;
-+ int res;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ len = 12 + key_len;
-+ wep = os_malloc(len);
-+
-+ if (wep == NULL)
-+ return -1;
-+
-+ memset(wep, 0, len);
-+ wep->Length = len;
-+ wep->KeyIndex = key_idx;
-+
-+ if (set_tx)
-+ wep->KeyIndex |= 1 << 31;
-+#if 0 /* Setting bit30 does not seem to work with some NDIS drivers */
-+ if (pairwise)
-+ wep->KeyIndex |= 1 << 30;
-+#endif
-+ wep->KeyLength = key_len;
-+ memcpy(wep->KeyMaterial, key, key_len);
-+
-+ wpa_hexdump_key(MSG_MSGDUMP, "RALINK: OID_802_11_ADD_WEP",
-+ (const u8 *) wep, len);
-+ res = ralink_set_oid(drv, OID_802_11_ADD_WEP, (char *) wep, len);
-+
-+ os_free(wep);
-+
-+ return res;
-+}
-+
-+static int wpa_driver_ralink_set_key(void *priv, wpa_alg alg, const u8 *addr,
-+ int key_idx, int set_tx,
-+ const u8 *seq, size_t seq_len,
-+ const u8 *key, size_t key_len)
-+{
-+ struct wpa_driver_ralink_data *drv = priv;
-+ size_t len;
-+ NDIS_802_11_KEY *nkey;
-+ int i, res, pairwise;
-+ u8 bssid[ETH_ALEN];
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ if (addr == NULL || memcmp(addr, "\xff\xff\xff\xff\xff\xff",
-+ ETH_ALEN) == 0)
-+ {
-+ /* Group Key */
-+ pairwise = 0;
-+ wpa_driver_ralink_get_bssid(drv, bssid);
-+ }
-+ else
-+ {
-+ /* Pairwise Key */
-+ pairwise = 1;
-+ memcpy(bssid, addr, ETH_ALEN);
-+ }
-+
-+ if (alg == WPA_ALG_NONE || key_len == 0)
-+ {
-+ return wpa_driver_ralink_remove_key(drv, key_idx, addr, bssid,
-+ pairwise);
-+ }
-+
-+ if (alg == WPA_ALG_WEP)
-+ {
-+ return wpa_driver_ralink_add_wep(drv, pairwise, key_idx, set_tx,
-+ key, key_len);
-+ }
-+
-+ len = 12 + 6 + 6 + 8 + key_len;
-+
-+ nkey = os_malloc(len);
-+
-+ if (nkey == NULL)
-+ return -1;
-+
-+ memset(nkey, 0, len);
-+
-+ nkey->Length = len;
-+ nkey->KeyIndex = key_idx;
-+
-+ if (set_tx)
-+ nkey->KeyIndex |= 1 << 31;
-+
-+ if (pairwise)
-+ nkey->KeyIndex |= 1 << 30;
-+
-+ if (seq && seq_len)
-+ nkey->KeyIndex |= 1 << 29;
-+
-+ nkey->KeyLength = key_len;
-+ memcpy(nkey->BSSID, bssid, ETH_ALEN);
-+
-+ if (seq && seq_len)
-+ {
-+ for (i = 0; i < seq_len; i++)
-+ nkey->KeyRSC |= seq[i] << (i * 8);
-+ }
-+ if (alg == WPA_ALG_TKIP && key_len == 32)
-+ {
-+ memcpy(nkey->KeyMaterial, key, 16);
-+ memcpy(nkey->KeyMaterial + 16, key + 24, 8);
-+ memcpy(nkey->KeyMaterial + 24, key + 16, 8);
-+ }
-+ else
-+ {
-+ memcpy(nkey->KeyMaterial, key, key_len);
-+ }
-+
-+ wpa_hexdump_key(MSG_MSGDUMP, "RALINK: OID_802_11_ADD_KEY",
-+ (const u8 *) nkey, len);
-+ res = ralink_set_oid(drv, OID_802_11_ADD_KEY, (char *) nkey, len);
-+ os_free(nkey);
-+
-+ return res;
-+}
-+
-+static int wpa_driver_ralink_disassociate(void *priv, const u8 *addr,
-+ int reason_code)
-+{
-+ struct wpa_driver_ralink_data *drv = priv;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+ if (ralink_set_oid(drv, OID_802_11_DISASSOCIATE,
-+ " ", 4) < 0)
-+ {
-+ wpa_printf(MSG_DEBUG, "RALINK: Failed to set "
-+ "OID_802_11_DISASSOCIATE");
-+ }
-+
-+ return 0;
-+}
-+
-+static int wpa_driver_ralink_deauthenticate(void *priv, const u8 *addr,
-+ int reason_code)
-+{
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+ return wpa_driver_ralink_disassociate(priv, addr, reason_code);
-+}
-+
-+static int
-+wpa_driver_ralink_associate(void *priv,
-+ struct wpa_driver_associate_params *params)
-+{
-+ struct wpa_driver_ralink_data *drv = priv;
-+
-+ NDIS_802_11_NETWORK_INFRASTRUCTURE mode;
-+ NDIS_802_11_AUTHENTICATION_MODE auth_mode;
-+ NDIS_802_11_WEP_STATUS encr, group;
-+ BOOLEAN ieee8021xMode;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ if (params->mode == IEEE80211_MODE_IBSS)
-+ mode = Ndis802_11IBSS;
-+ else
-+ mode = Ndis802_11Infrastructure;
-+
-+ if (ralink_set_oid(drv, OID_802_11_INFRASTRUCTURE_MODE,
-+ (char *) &mode, sizeof(mode)) < 0)
-+ {
-+ wpa_printf(MSG_DEBUG, "RALINK: Failed to set "
-+ "OID_802_11_INFRASTRUCTURE_MODE (%d)",
-+ (int) mode);
-+ /* Try to continue anyway */
-+ }
-+
-+ if (params->wpa_ie == NULL || params->wpa_ie_len == 0)
-+ {
-+ if (params->auth_alg & AUTH_ALG_SHARED_KEY)
-+ {
-+ if (params->auth_alg & AUTH_ALG_OPEN_SYSTEM)
-+ auth_mode = Ndis802_11AuthModeAutoSwitch;
-+ else
-+ auth_mode = Ndis802_11AuthModeShared;
-+ }
-+ else
-+ auth_mode = Ndis802_11AuthModeOpen;
-+ }
-+ else if (params->wpa_ie[0] == RSN_INFO_ELEM)
-+ {
-+ if (params->key_mgmt_suite == KEY_MGMT_PSK)
-+ auth_mode = Ndis802_11AuthModeWPA2PSK;
-+ else
-+ auth_mode = Ndis802_11AuthModeWPA2;
-+ }
-+ else
-+ {
-+ if (params->key_mgmt_suite == KEY_MGMT_WPA_NONE)
-+ auth_mode = Ndis802_11AuthModeWPANone;
-+ else if (params->key_mgmt_suite == KEY_MGMT_PSK)
-+ auth_mode = Ndis802_11AuthModeWPAPSK;
-+ else
-+ auth_mode = Ndis802_11AuthModeWPA;
-+ }
-+
-+ switch (params->pairwise_suite)
-+ {
-+ case CIPHER_CCMP:
-+ encr = Ndis802_11Encryption3Enabled;
-+ break;
-+ case CIPHER_TKIP:
-+ encr = Ndis802_11Encryption2Enabled;
-+ break;
-+ case CIPHER_WEP40:
-+ case CIPHER_WEP104:
-+ encr = Ndis802_11Encryption1Enabled;
-+ break;
-+ case CIPHER_NONE:
-+ if (params->group_suite == CIPHER_CCMP)
-+ encr = Ndis802_11Encryption3Enabled;
-+ else if (params->group_suite == CIPHER_TKIP)
-+ encr = Ndis802_11Encryption2Enabled;
-+ else
-+ encr = Ndis802_11EncryptionDisabled;
-+ break;
-+ default:
-+ encr = Ndis802_11EncryptionDisabled;
-+ };
-+
-+ ralink_set_auth_mode(drv, auth_mode);
-+
-+ // notify driver that IEEE8021x mode is enabled
-+ if(params->key_mgmt_suite == KEY_MGMT_802_1X_NO_WPA)
-+ ieee8021xMode = TRUE;
-+ else
-+ ieee8021xMode = FALSE;
-+
-+ if (ralink_set_oid(drv, OID_802_11_SET_IEEE8021X, (char *) &ieee8021xMode, sizeof(BOOLEAN)) < 0)
-+ {
-+ wpa_printf(MSG_DEBUG, "RALINK: Failed to set "
-+ "OID_802_11_SET_IEEE8021X(%d)",
-+ (int) ieee8021xMode);
-+ }
-+
-+ if (ralink_set_oid(drv, OID_802_11_WEP_STATUS,
-+ (char *) &encr, sizeof(encr)) < 0) {
-+ wpa_printf(MSG_DEBUG, "RALINK: Failed to set "
-+ "OID_802_11_WEP_STATUS(%d)",
-+ (int) encr);
-+ }
-+
-+ return wpa_driver_ralink_set_ssid(drv, params->ssid, params->ssid_len);
-+}
-+
-+static int wpa_driver_ralink_get_associnfo(struct wpa_driver_ralink_data *drv)
-+{
-+ NDIS_802_11_ASSOCIATION_INFORMATION *buf;
-+ int ret = 0;
-+ struct iwreq iwr;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ buf = (NDIS_802_11_ASSOCIATION_INFORMATION *)os_malloc(sizeof(NDIS_802_11_ASSOCIATION_INFORMATION));
-+ if (buf == NULL)
-+ return -1;
-+ memset(buf, 0, sizeof(buf));
-+ memset(&iwr, 0, sizeof(iwr));
-+ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
-+
-+ iwr.u.data.flags = OID_802_11_STATE;
-+ iwr.u.data.flags |= OID_GET_SET_TOGGLE;
-+ iwr.u.data.pointer = (caddr_t) buf;
-+ iwr.u.data.length = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION);
-+
-+ if (ioctl(drv->ioctl_sock, RT_PRIV_IOCTL, &iwr) < 0)
-+ {
-+ perror("ioctl[RT_PRIV_IOCTL] -- OID_802_11_SSID");
-+ ret = -1;
-+ }
-+
-+ if(((NDIS_802_11_ASSOCIATION_INFORMATION *)iwr.u.data.pointer)->AssociateResponseToMe)
-+ {
-+ printf("wpa_driver_ralink_get_associnfo: association success\n");
-+ ret = 1;
-+ }
-+ else
-+ printf("wpa_driver_ralink_get_associnfo: association fail\n");
-+ os_free(buf);
-+ return ret;
-+}
-+
-+static int wpa_driver_ralink_poll_timeout(void *eloop_ctx, void *ctx)
-+{
-+ struct wpa_driver_ralink_data *drv = eloop_ctx;
-+ struct wpa_supplicant *wpa_s = ctx;
-+ u8 bssid[ETH_ALEN];
-+
-+ if (wpa_driver_ralink_get_bssid(drv, bssid)) {
-+ /* Disconnected */
-+ wpa_printf(MSG_DEBUG, "%s: Disconnected!!", __FUNCTION__);
-+ } else {
-+ /* Connected */
-+
-+ if(wpa_driver_ralink_get_associnfo(drv) == 1)
-+ {
-+ wpa_printf(MSG_DEBUG, "%s: Connected!!", __FUNCTION__);
-+ wpa_drv_get_bssid(wpa_s, wpa_s->bssid);
-+ wpa_s->associate_state = 1;
-+ wpa_supplicant_event(ctx, EVENT_ASSOC, NULL);
-+ }
-+ else
-+ wpa_s->associate_state = 0;
-+ }
-+}
-+
-+static void wpa_driver_ralink_poll(void *priv, void *ctx)
-+{
-+ struct wpa_driver_ralink_data *drv = priv;
-+ struct wpa_supplicant *wpa_s = ctx;
-+
-+ if(wpa_s->wpa_state < WPA_ASSOCIATED)
-+ wpa_driver_ralink_poll_timeout(drv, ctx);
-+}
-+
-+const struct wpa_driver_ops wpa_driver_ralink_ops = {
-+ .name = "ralink",
-+ .desc = "Ralink rt73 driver",
-+ .get_bssid = wpa_driver_ralink_get_bssid,
-+ .get_ssid = wpa_driver_ralink_get_ssid,
-+ .set_key = wpa_driver_ralink_set_key,
-+ .init = wpa_driver_ralink_init,
-+ .deinit = wpa_driver_ralink_deinit,
-+ .scan = wpa_driver_ralink_scan,
-+ .get_scan_results = wpa_driver_ralink_get_scan_results,
-+ .deauthenticate = wpa_driver_ralink_deauthenticate,
-+ .disassociate = wpa_driver_ralink_disassociate,
-+ .associate = wpa_driver_ralink_associate,
-+ .add_pmkid = wpa_driver_ralink_add_pmkid,
-+ .remove_pmkid = wpa_driver_ralink_remove_pmkid,
-+ .flush_pmkid = wpa_driver_ralink_flush_pmkid,
-+ .poll_ralink = wpa_driver_ralink_poll,
-+};
-diff -NaurEbB wpa_supplicant-0.5.10/driver_ralink.h wpa_supplicant-0.5.10_RALINK/driver_ralink.h
---- wpa_supplicant-0.5.10/driver_ralink.h 1970-01-01 01:00:00.000000000 +0100
-+++ wpa_supplicant-0.5.10_RALINK/driver_ralink.h 2008-12-05 01:36:46.000000000 +0100
-@@ -0,0 +1,394 @@
-+/*
-+ ***************************************************************************
-+ * Ralink Tech Inc.
-+ * 5F, No. 36 Taiyuan St.
-+ * Jhubei City
-+ * Hsinchu County 302, Taiwan, R.O.C.
-+ *
-+ * (c) Copyright 2002-2008, Ralink Technology, Inc.
-+ *
-+ * This program is free software; you can redistribute it and/or modify *
-+ * it under the terms of the GNU General Public License as published by *
-+ * the Free Software Foundation; either version 2 of the License, or *
-+ * (at your option) any later version. *
-+ * *
-+ * This program is distributed in the hope that it will be useful, *
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-+ * GNU General Public License for more details. *
-+ * *
-+ * You should have received a copy of the GNU General Public License *
-+ * along with this program; if not, write to the *
-+ * Free Software Foundation, Inc., *
-+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
-+ * *
-+ ************************************************************************/
-+
-+/*
-+ * WPA Supplicant - driver interaction with Ralink rt73 driver driver
-+ *
-+ *
-+ *
-+ */
-+
-+//#include <linux/wireless.h>
-+
-+// Ralink defined OIDs
-+#if WIRELESS_EXT <= 11
-+#ifndef SIOCDEVPRIVATE
-+#define SIOCDEVPRIVATE 0x8BE0
-+#endif
-+#define SIOCIWFIRSTPRIV SIOCDEVPRIVATE
-+#endif
-+
-+#define RT_PRIV_IOCTL (SIOCIWFIRSTPRIV + 0x0E)
-+#define RTPRIV_IOCTL_SET (SIOCIWFIRSTPRIV + 0x02)
-+
-+// IEEE 802.11 OIDs & Ralink defined OIDs ******
-+
-+// (RaConfig Set/QueryInform) ==>
-+#define OID_GET_SET_TOGGLE 0x8000
-+
-+#define OID_802_11_ADD_WEP 0x0112
-+#define OID_802_11_REMOVE_WEP 0x0113
-+#define OID_802_11_DISASSOCIATE 0x0114
-+#define OID_802_11_PRIVACY_FILTER 0x0118
-+#define OID_802_11_ASSOCIATION_INFORMATION 0x011E
-+#define OID_802_11_BSSID_LIST_SCAN 0x0508
-+#define OID_802_11_SSID 0x0509
-+#define OID_802_11_BSSID 0x050A
-+#define OID_802_11_WEP_STATUS 0x0510
-+#define OID_802_11_AUTHENTICATION_MODE 0x0511
-+#define OID_802_11_INFRASTRUCTURE_MODE 0x0512
-+#define OID_802_11_TX_POWER_LEVEL 0x0517
-+#define OID_802_11_REMOVE_KEY 0x0519
-+#define OID_802_11_ADD_KEY 0x0520
-+#define OID_802_11_BSSID_LIST 0x0609
-+#define OID_802_3_CURRENT_ADDRESS 0x060A
-+#define OID_SET_COUNTERMEASURES 0x0616
-+#define OID_802_11_SET_IEEE8021X 0x0617 // For IEEE8021x mode
-+#define OID_802_11_SET_IEEE8021X_REQUIRE_KEY 0x0618 // For DynamicWEP in IEEE802.1x mode
-+#define OID_802_11_PMKID 0x0620
-+#define RT_OID_WPA_SUPPLICANT_SUPPORT 0x0621 // for trigger driver enable/disable wpa_supplicant support
-+#define RT_OID_WE_VERSION_COMPILED 0x0622
-+#define OID_802_11_STATE 0x0623
-+
-+#define PACKED __attribute__ ((packed))
-+
-+//wpa_supplicant event flags
-+#define RT_ASSOC_EVENT_FLAG 0x0101
-+#define RT_DISASSOC_EVENT_FLAG 0x0102
-+#define RT_REQIE_EVENT_FLAG 0x0103
-+#define RT_RESPIE_EVENT_FLAG 0x0104
-+#define RT_ASSOCINFO_EVENT_FLAG 0x0105
-+#define RT_PMKIDCAND_FLAG 0x0106
-+
-+#define RT_MAX_802_11_BSSID_LIST_EX 16384
-+//
-+// IEEE 802.11 Structures and definitions
-+//
-+// new types for Media Specific Indications
-+
-+#ifndef ULONG
-+#define CHAR char
-+#define INT int
-+#define SHORT int
-+#define UINT u32
-+#define ULONG u32
-+#define USHORT u16
-+#define UCHAR u8
-+
-+#define uint32 u32
-+#define uint8 u8
-+
-+
-+#define BOOLEAN u8
-+//#define LARGE_INTEGER s64
-+#define VOID void
-+#define LONG int
-+#define LONGLONG s64
-+#define ULONGLONG u64
-+typedef VOID *PVOID;
-+typedef CHAR *PCHAR;
-+typedef UCHAR *PUCHAR;
-+typedef USHORT *PUSHORT;
-+typedef LONG *PLONG;
-+typedef ULONG *PULONG;
-+
-+typedef union _LARGE_INTEGER {
-+ struct {
-+ ULONG LowPart;
-+ LONG HighPart;
-+ }vv;
-+ struct {
-+ ULONG LowPart;
-+ LONG HighPart;
-+ } u;
-+ s64 QuadPart;
-+} LARGE_INTEGER;
-+
-+#endif
-+
-+#define NDIS_802_11_LENGTH_SSID 32
-+#define NDIS_802_11_LENGTH_RATES 8
-+#define NDIS_802_11_LENGTH_RATES_EX 16
-+#define MAX_LEN_OF_SSID 32
-+#define MAC_ADDR_LEN 6
-+
-+typedef UCHAR NDIS_802_11_MAC_ADDRESS[6];
-+
-+// mask for authentication/integrity fields
-+#define NDIS_802_11_AUTH_REQUEST_AUTH_FIELDS 0x0f
-+
-+#define NDIS_802_11_AUTH_REQUEST_REAUTH 0x01
-+#define NDIS_802_11_AUTH_REQUEST_KEYUPDATE 0x02
-+#define NDIS_802_11_AUTH_REQUEST_PAIRWISE_ERROR 0x06
-+#define NDIS_802_11_AUTH_REQUEST_GROUP_ERROR 0x0E
-+
-+// Added new types for OFDM 5G and 2.4G
-+typedef enum _NDIS_802_11_NETWORK_TYPE
-+{
-+ Ndis802_11FH,
-+ Ndis802_11DS,
-+ Ndis802_11OFDM5,
-+ Ndis802_11OFDM24,
-+ Ndis802_11Automode,
-+ Ndis802_11NetworkTypeMax // not a real type, defined as an upper bound
-+} NDIS_802_11_NETWORK_TYPE, *PNDIS_802_11_NETWORK_TYPE;
-+
-+//
-+// Received Signal Strength Indication
-+//
-+typedef LONG NDIS_802_11_RSSI; // in dBm
-+
-+typedef struct _NDIS_802_11_CONFIGURATION_FH
-+{
-+ ULONG Length; // Length of structure
-+ ULONG HopPattern; // As defined by 802.11, MSB set
-+ ULONG HopSet; // to one if non-802.11
-+ ULONG DwellTime; // units are Kusec
-+} NDIS_802_11_CONFIGURATION_FH, *PNDIS_802_11_CONFIGURATION_FH;
-+
-+typedef struct _NDIS_802_11_CONFIGURATION
-+{
-+ ULONG Length; // Length of structure
-+ ULONG BeaconPeriod; // units are Kusec
-+ ULONG ATIMWindow; // units are Kusec
-+ ULONG DSConfig; // Frequency, units are kHz
-+ NDIS_802_11_CONFIGURATION_FH FHConfig;
-+} NDIS_802_11_CONFIGURATION, *PNDIS_802_11_CONFIGURATION;
-+
-+typedef ULONG NDIS_802_11_KEY_INDEX;
-+typedef ULONGLONG NDIS_802_11_KEY_RSC;
-+
-+// Key mapping keys require a BSSID
-+typedef struct PACKED _NDIS_802_11_KEY
-+{
-+ ULONG Length; // Length of this structure
-+ ULONG KeyIndex;
-+ ULONG KeyLength; // length of key in bytes
-+ NDIS_802_11_MAC_ADDRESS BSSID;
-+ NDIS_802_11_KEY_RSC KeyRSC;
-+ UCHAR KeyMaterial[1]; // variable length depending on above field
-+} NDIS_802_11_KEY, *PNDIS_802_11_KEY;
-+
-+typedef struct _NDIS_802_11_REMOVE_KEY
-+{
-+ ULONG Length; // Length of this structure
-+ ULONG KeyIndex;
-+ NDIS_802_11_MAC_ADDRESS BSSID;
-+} NDIS_802_11_REMOVE_KEY, *PNDIS_802_11_REMOVE_KEY;
-+
-+typedef struct PACKED _NDIS_802_11_WEP
-+{
-+ ULONG Length; // Length of this structure
-+ ULONG KeyIndex; // 0 is the per-client key, 1-N are the
-+ // global keys
-+ ULONG KeyLength; // length of key in bytes
-+ UCHAR KeyMaterial[1];// variable length depending on above field
-+} NDIS_802_11_WEP, *PNDIS_802_11_WEP;
-+
-+
-+typedef enum _NDIS_802_11_NETWORK_INFRASTRUCTURE
-+{
-+ Ndis802_11IBSS,
-+ Ndis802_11Infrastructure,
-+ Ndis802_11AutoUnknown,
-+ Ndis802_11InfrastructureMax // Not a real value, defined as upper bound
-+} NDIS_802_11_NETWORK_INFRASTRUCTURE, *PNDIS_802_11_NETWORK_INFRASTRUCTURE;
-+
-+// PMKID Structures
-+typedef UCHAR NDIS_802_11_PMKID_VALUE[16];
-+
-+typedef struct _BSSID_INFO
-+{
-+ NDIS_802_11_MAC_ADDRESS BSSID;
-+ NDIS_802_11_PMKID_VALUE PMKID;
-+} BSSID_INFO, *PBSSID_INFO;
-+
-+typedef struct _NDIS_802_11_PMKID
-+{
-+ ULONG Length;
-+ ULONG BSSIDInfoCount;
-+ BSSID_INFO BSSIDInfo[1];
-+} NDIS_802_11_PMKID, *PNDIS_802_11_PMKID;
-+
-+//Added new types for PMKID Candidate lists.
-+typedef struct _PMKID_CANDIDATE {
-+ NDIS_802_11_MAC_ADDRESS BSSID;
-+ ULONG Flags;
-+} PMKID_CANDIDATE, *PPMKID_CANDIDATE;
-+
-+typedef struct _NDIS_802_11_PMKID_CANDIDATE_LIST
-+{
-+ ULONG Version; // Version of the structure
-+ ULONG NumCandidates; // No. of pmkid candidates
-+ PMKID_CANDIDATE CandidateList[1];
-+} NDIS_802_11_PMKID_CANDIDATE_LIST, *PNDIS_802_11_PMKID_CANDIDATE_LIST;
-+
-+//Flags for PMKID Candidate list structure
-+#define NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED 0x01
-+
-+// Add new authentication modes
-+typedef enum _NDIS_802_11_AUTHENTICATION_MODE
-+{
-+ Ndis802_11AuthModeOpen,
-+ Ndis802_11AuthModeShared,
-+ Ndis802_11AuthModeAutoSwitch,
-+ Ndis802_11AuthModeWPA,
-+ Ndis802_11AuthModeWPAPSK,
-+ Ndis802_11AuthModeWPANone,
-+ Ndis802_11AuthModeWPA2,
-+ Ndis802_11AuthModeWPA2PSK,
-+ Ndis802_11AuthModeMax // Not a real mode, defined as upper bound
-+} NDIS_802_11_AUTHENTICATION_MODE, *PNDIS_802_11_AUTHENTICATION_MODE;
-+
-+typedef UCHAR NDIS_802_11_RATES[NDIS_802_11_LENGTH_RATES]; // Set of 8 data rates
-+typedef UCHAR NDIS_802_11_RATES_EX[NDIS_802_11_LENGTH_RATES_EX]; // Set of 16 data rates
-+
-+typedef struct PACKED _NDIS_802_11_SSID
-+{
-+ ULONG SsidLength; // length of SSID field below, in bytes;
-+ // this can be zero.
-+ UCHAR Ssid[NDIS_802_11_LENGTH_SSID]; // SSID information field
-+} NDIS_802_11_SSID, *PNDIS_802_11_SSID;
-+
-+
-+typedef struct PACKED _NDIS_WLAN_BSSID
-+{
-+ ULONG Length; // Length of this structure
-+ NDIS_802_11_MAC_ADDRESS MacAddress; // BSSID
-+ UCHAR Reserved[2];
-+ NDIS_802_11_SSID Ssid; // SSID
-+ ULONG Privacy; // WEP encryption requirement
-+ NDIS_802_11_RSSI Rssi; // receive signal
-+ // strength in dBm
-+ NDIS_802_11_NETWORK_TYPE NetworkTypeInUse;
-+ NDIS_802_11_CONFIGURATION Configuration;
-+ NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode;
-+ NDIS_802_11_RATES SupportedRates;
-+} NDIS_WLAN_BSSID, *PNDIS_WLAN_BSSID;
-+
-+typedef struct PACKED _NDIS_802_11_BSSID_LIST
-+{
-+ ULONG NumberOfItems; // in list below, at least 1
-+ NDIS_WLAN_BSSID Bssid[1];
-+} NDIS_802_11_BSSID_LIST, *PNDIS_802_11_BSSID_LIST;
-+
-+// Added Capabilities, IELength and IEs for each BSSID
-+typedef struct PACKED _NDIS_WLAN_BSSID_EX
-+{
-+ ULONG Length; // Length of this structure
-+ NDIS_802_11_MAC_ADDRESS MacAddress; // BSSID
-+ UCHAR Reserved[2];
-+ NDIS_802_11_SSID Ssid; // SSID
-+ ULONG Privacy; // WEP encryption requirement
-+ NDIS_802_11_RSSI Rssi; // receive signal
-+ // strength in dBm
-+ NDIS_802_11_NETWORK_TYPE NetworkTypeInUse;
-+ NDIS_802_11_CONFIGURATION Configuration;
-+ NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode;
-+ NDIS_802_11_RATES_EX SupportedRates;
-+ ULONG IELength;
-+ UCHAR IEs[1];
-+} NDIS_WLAN_BSSID_EX, *PNDIS_WLAN_BSSID_EX;
-+
-+typedef struct _NDIS_802_11_BSSID_LIST_EX
-+{
-+ ULONG NumberOfItems; // in list below, at least 1
-+ NDIS_WLAN_BSSID_EX Bssid[1];
-+} NDIS_802_11_BSSID_LIST_EX, *PNDIS_802_11_BSSID_LIST_EX;
-+
-+typedef struct _NDIS_802_11_FIXED_IEs
-+{
-+ UCHAR Timestamp[8];
-+ USHORT BeaconInterval;
-+ USHORT Capabilities;
-+} NDIS_802_11_FIXED_IEs, *PNDIS_802_11_FIXED_IEs;
-+
-+// Added new encryption types
-+// Also aliased typedef to new name
-+typedef enum _NDIS_802_11_WEP_STATUS
-+{
-+ Ndis802_11WEPEnabled,
-+ Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled,
-+ Ndis802_11WEPDisabled,
-+ Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled,
-+ Ndis802_11WEPKeyAbsent,
-+ Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent,
-+ Ndis802_11WEPNotSupported,
-+ Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported,
-+ Ndis802_11Encryption2Enabled,
-+ Ndis802_11Encryption2KeyAbsent,
-+ Ndis802_11Encryption3Enabled,
-+ Ndis802_11Encryption3KeyAbsent
-+} NDIS_802_11_WEP_STATUS, *PNDIS_802_11_WEP_STATUS,
-+ NDIS_802_11_ENCRYPTION_STATUS, *PNDIS_802_11_ENCRYPTION_STATUS;
-+
-+typedef enum _NDIS_802_11_RELOAD_DEFAULTS
-+{
-+ Ndis802_11ReloadWEPKeys
-+} NDIS_802_11_RELOAD_DEFAULTS, *PNDIS_802_11_RELOAD_DEFAULTS;
-+
-+#define NDIS_802_11_AI_REQFI_CAPABILITIES 1
-+#define NDIS_802_11_AI_REQFI_LISTENINTERVAL 2
-+#define NDIS_802_11_AI_REQFI_CURRENTAPADDRESS 4
-+
-+#define NDIS_802_11_AI_RESFI_CAPABILITIES 1
-+#define NDIS_802_11_AI_RESFI_STATUSCODE 2
-+#define NDIS_802_11_AI_RESFI_ASSOCIATIONID 4
-+
-+typedef struct _NDIS_802_11_AI_REQFI
-+{
-+ USHORT Capabilities;
-+ USHORT ListenInterval;
-+ NDIS_802_11_MAC_ADDRESS CurrentAPAddress;
-+} NDIS_802_11_AI_REQFI, *PNDIS_802_11_AI_REQFI;
-+
-+typedef struct _NDIS_802_11_AI_RESFI
-+{
-+ USHORT Capabilities;
-+ USHORT StatusCode;
-+ USHORT AssociationId;
-+} NDIS_802_11_AI_RESFI, *PNDIS_802_11_AI_RESFI;
-+
-+typedef struct _NDIS_802_11_ASSOCIATION_INFORMATION
-+{
-+ ULONG Length;
-+ USHORT AvailableRequestFixedIEs;
-+ NDIS_802_11_AI_REQFI RequestFixedIEs;
-+ ULONG RequestIELength;
-+ ULONG OffsetRequestIEs;
-+ USHORT AvailableResponseFixedIEs;
-+ NDIS_802_11_AI_RESFI ResponseFixedIEs;
-+ ULONG ResponseIELength;
-+ ULONG OffsetResponseIEs;
-+ ULONG AssociateResponseToMe;
-+} NDIS_802_11_ASSOCIATION_INFORMATION, *PNDIS_802_11_ASSOCIATION_INFORMATION;
-+
-+struct ndis_pmkid_entry {
-+ struct ndis_pmkid_entry *next;
-+ u8 bssid[ETH_ALEN];
-+ u8 pmkid[16];
-+};
-+
-diff -NaurEbB wpa_supplicant-0.5.10/drivers.c wpa_supplicant-0.5.10_RALINK/drivers.c
---- wpa_supplicant-0.5.10/drivers.c 2008-12-05 01:45:50.000000000 +0100
-+++ wpa_supplicant-0.5.10_RALINK/drivers.c 2008-12-05 01:36:46.000000000 +0100
-@@ -57,7 +57,9 @@
- #ifdef CONFIG_DRIVER_TEST
- extern struct wpa_driver_ops wpa_driver_test_ops; /* driver_test.c */
- #endif /* CONFIG_DRIVER_TEST */
--
-+#ifdef CONFIG_DRIVER_RALINK
-+extern struct wpa_driver_ops wpa_driver_ralink_ops; /* driver_ralink.c */
-+#endif /* CONFIG_DRIVER_RALINK */
-
- struct wpa_driver_ops *wpa_supplicant_drivers[] =
- {
-@@ -103,5 +105,8 @@
- #ifdef CONFIG_DRIVER_TEST
- &wpa_driver_test_ops,
- #endif /* CONFIG_DRIVER_TEST */
-+#ifdef CONFIG_DRIVER_RALINK
-+ &wpa_driver_ralink_ops,
-+#endif /* CONFIG_DRIVER_RALINK */
- NULL
- };
-diff -NaurEbB wpa_supplicant-0.5.10/events.c wpa_supplicant-0.5.10_RALINK/events.c
---- wpa_supplicant-0.5.10/events.c 2007-11-29 03:49:08.000000000 +0100
-+++ wpa_supplicant-0.5.10_RALINK/events.c 2008-12-05 01:40:05.000000000 +0100
-@@ -283,11 +283,14 @@
- break;
- }
-
-+/* carella modify */
-+#ifndef CONFIG_DRIVER_RALINK
- if (!(ie.group_cipher & ssid->group_cipher)) {
- wpa_printf(MSG_DEBUG, " skip RSN IE - GTK cipher "
- "mismatch");
- break;
- }
-+#endif
-
- if (!(ie.key_mgmt & ssid->key_mgmt)) {
- wpa_printf(MSG_DEBUG, " skip RSN IE - key mgmt "
-@@ -327,11 +330,14 @@
- break;
- }
-
-+/* carella modify */
-+#ifndef CONFIG_DRIVER_RALINK
- if (!(ie.group_cipher & ssid->group_cipher)) {
- wpa_printf(MSG_DEBUG, " skip WPA IE - GTK cipher "
- "mismatch");
- break;
- }
-+#endif
-
- if (!(ie.key_mgmt & ssid->key_mgmt)) {
- wpa_printf(MSG_DEBUG, " skip WPA IE - key mgmt "
-@@ -391,9 +397,10 @@
- wpa_printf(MSG_DEBUG, " skip - disabled");
- continue;
- }
-- if (bss->ssid_len != ssid->ssid_len ||
-+ //if (bss->ssid_len != ssid->ssid_len || <--carella modify
-+ if (bss->ssid_len && (bss->ssid_len != ssid->ssid_len || //-->carella
- os_memcmp(bss->ssid, ssid->ssid,
-- bss->ssid_len) != 0) {
-+ bss->ssid_len) != 0)) {
- wpa_printf(MSG_DEBUG, " skip - "
- "SSID mismatch");
- continue;
-@@ -439,8 +447,10 @@
- wpa_printf(MSG_DEBUG, " skip - disabled");
- continue;
- }
-+
- if (ssid->ssid_len != 0 &&
-- (bss->ssid_len != ssid->ssid_len ||
-+ // (bss->ssid_len != ssid->ssid_len || <--carella modify
-+ bss->ssid_len && (bss->ssid_len != ssid->ssid_len ||//-->carella
- os_memcmp(bss->ssid, ssid->ssid,
- bss->ssid_len) != 0)) {
- wpa_printf(MSG_DEBUG, " skip - "
-@@ -684,9 +694,12 @@
- wpa_clear_keys(wpa_s, bssid);
- }
- if (wpa_supplicant_select_config(wpa_s) < 0) {
-+/* carell modfy */
-+#if 0
- wpa_supplicant_disassociate(wpa_s,
- REASON_DEAUTH_LEAVING);
- return;
-+#endif
- }
- }
-
-diff -NaurEbB wpa_supplicant-0.5.10/wpa_supplicant.c wpa_supplicant-0.5.10_RALINK/wpa_supplicant.c
---- wpa_supplicant-0.5.10/wpa_supplicant.c 2008-02-17 19:42:02.000000000 +0100
-+++ wpa_supplicant-0.5.10_RALINK/wpa_supplicant.c 2008-12-05 01:42:07.000000000 +0100
-@@ -35,6 +35,7 @@
- #include "pmksa_cache.h"
- #include "wpa_ctrl.h"
- #include "mlme.h"
-+#include "wpa_i.h"
-
- const char *wpa_supplicant_version =
- "wpa_supplicant v" VERSION_STR "\n"
-@@ -111,6 +112,9 @@
- extern int wpa_debug_timestamp;
-
- static void wpa_supplicant_scan(void *eloop_ctx, void *timeout_ctx);
-+#ifdef CONFIG_DRIVER_RALINK
-+static void wpa_supplicant_poll(void *wpa_s);
-+#endif
-
- #if defined(IEEE8021X_EAPOL) || !defined(CONFIG_NO_WPA)
- static u8 * wpa_alloc_eapol(const struct wpa_supplicant *wpa_s, u8 type,
-@@ -519,11 +523,20 @@
- bssid = wpa_s->pending_bssid;
- wpa_msg(wpa_s, MSG_INFO, "Authentication with " MACSTR " timed out.",
- MAC2STR(bssid));
-+
-+/* carella modify */
-+#ifdef CONFIG_DRIVER_RALINK
-+ wpa_s->wpa_state = WPA_SCANNING;
-+ wpa_supplicant_poll(wpa_s);
-+ if(!wpa_s->associate_state)
-+#endif
-+ {
- wpa_blacklist_add(wpa_s, bssid);
- wpa_sm_notify_disassoc(wpa_s->wpa);
- wpa_supplicant_disassociate(wpa_s, REASON_DEAUTH_LEAVING);
- wpa_s->reassociate = 1;
- wpa_supplicant_req_scan(wpa_s, 0, 0);
-+ }
- }
-
-
-@@ -1178,14 +1191,18 @@
-
- if (bss && bss->rsn_ie_len && (ssid->proto & WPA_PROTO_RSN) &&
- wpa_parse_wpa_ie(bss->rsn_ie, bss->rsn_ie_len, &ie) == 0 &&
-+#ifndef CONFIG_DRIVER_RALINK
- (ie.group_cipher & ssid->group_cipher) &&
-+#endif
- (ie.pairwise_cipher & ssid->pairwise_cipher) &&
- (ie.key_mgmt & ssid->key_mgmt)) {
- wpa_msg(wpa_s, MSG_DEBUG, "RSN: using IEEE 802.11i/D9.0");
- proto = WPA_PROTO_RSN;
- } else if (bss && bss->wpa_ie_len && (ssid->proto & WPA_PROTO_WPA) &&
- wpa_parse_wpa_ie(bss->wpa_ie, bss->wpa_ie_len, &ie) == 0 &&
-+#ifndef CONFIG_DRIVER_RALINK
- (ie.group_cipher & ssid->group_cipher) &&
-+#endif
- (ie.pairwise_cipher & ssid->pairwise_cipher) &&
- (ie.key_mgmt & ssid->key_mgmt)) {
- wpa_msg(wpa_s, MSG_DEBUG, "WPA: using IEEE 802.11i/D3.0");
-@@ -1232,7 +1249,11 @@
- bss ? bss->rsn_ie_len : 0))
- return -1;
-
-+#ifndef CONFIG_DRIVER_RALINK
- sel = ie.group_cipher & ssid->group_cipher;
-+#else
-+ sel = ie.group_cipher;
-+#endif
- if (sel & WPA_CIPHER_CCMP) {
- wpa_s->group_cipher = WPA_CIPHER_CCMP;
- wpa_msg(wpa_s, MSG_DEBUG, "WPA: using GTK CCMP");
-@@ -1879,6 +1900,13 @@
- {
- return wpa_drv_remove_pmkid(wpa_s, bssid, pmkid);
- }
-+
-+#ifdef CONFIG_DRIVER_RALINK
-+static void wpa_supplicant_poll(void *wpa_s)
-+{
-+ wpa_drv_poll(wpa_s);
-+}
-+#endif
- #endif /* CONFIG_NO_WPA */
-
-
-@@ -1919,6 +1947,14 @@
- {
- struct wpa_supplicant *wpa_s = ctx;
-
-+// if(wpa_s->wpa_state < WPA_ASSOCIATED) //<--carella modify
-+ if((wpa_s->wpa->proto == WPA_PROTO_RSN && wpa_s->wpa->pmksa == NULL && wpa_s->wpa_state < WPA_ASSOCIATED) || //<--carella modify
-+ (wpa_s->wpa->proto != WPA_PROTO_RSN && wpa_s->wpa_state < WPA_ASSOCIATED))
-+ {
-+ printf("wpa_supplicant_rx_eapol: wpa_s->wpa_state[%d] < WPA_ASSOCIATED\n", wpa_s->wpa_state);
-+ return; //-->carella
-+ }
-+
- wpa_printf(MSG_DEBUG, "RX EAPOL from " MACSTR, MAC2STR(src_addr));
- wpa_hexdump(MSG_MSGDUMP, "RX EAPOL", buf, len);
-
-diff -NaurEbB wpa_supplicant-0.5.10/wpa_supplicant_i.h wpa_supplicant-0.5.10_RALINK/wpa_supplicant_i.h
---- wpa_supplicant-0.5.10/wpa_supplicant_i.h 2007-12-28 01:50:15.000000000 +0100
-+++ wpa_supplicant-0.5.10_RALINK/wpa_supplicant_i.h 2008-12-05 01:36:46.000000000 +0100
-@@ -342,6 +342,10 @@
-
- struct wpa_client_mlme mlme;
- int use_client_mlme;
-+
-+#ifdef CONFIG_DRIVER_RALINK
-+ int associate_state;
-+#endif
- };
-
-
-@@ -577,9 +581,15 @@
-
- static inline void wpa_drv_poll(struct wpa_supplicant *wpa_s)
- {
-+#ifdef CONFIG_DRIVER_RALINK
-+ if (wpa_s->driver->poll_ralink) {
-+ wpa_s->driver->poll_ralink(wpa_s->drv_priv, wpa_s);
-+ }
-+#else
- if (wpa_s->driver->poll) {
- wpa_s->driver->poll(wpa_s->drv_priv);
- }
-+#endif
- }
-
- static inline const char * wpa_drv_get_ifname(struct wpa_supplicant *wpa_s)
+++ /dev/null
-diff -Naur wpa_supplicant-0.5.8.orig/Makefile wpa_supplicant-0.5.8/Makefile
---- wpa_supplicant-0.5.8.orig/Makefile 2007-05-29 04:08:48.000000000 +0200
-+++ wpa_supplicant-0.5.8/Makefile 2008-08-07 11:49:38.000000000 +0200
-@@ -30,6 +30,7 @@
- echo CONFIG_DRIVER_HOSTAP=y >> .config
- echo CONFIG_DRIVER_WEXT=y >> .config
- echo CONFIG_WIRELESS_EXTENSION=y >> .config
-+ echo CONFIG_DRIVER_ZYDAS=y >> .config
-
- install: all
- mkdir -p $(DESTDIR)/usr/local/sbin/
-@@ -87,6 +88,11 @@
- OBJS += config_none.o
- endif
-
-+ifdef CONFIG_DRIVER_ZYDAS
-+CFLAGS += -DCONFIG_DRIVER_ZYDAS
-+OBJS_d += driver_zydas.o
-+endif
-+
- ifdef CONFIG_DRIVER_HOSTAP
- CFLAGS += -DCONFIG_DRIVER_HOSTAP
- OBJS_d += driver_hostap.o
-diff -Naur wpa_supplicant-0.5.8.orig/common.h wpa_supplicant-0.5.8/common.h
---- wpa_supplicant-0.5.8.orig/common.h 2007-05-29 04:08:48.000000000 +0200
-+++ wpa_supplicant-0.5.8/common.h 2008-08-07 12:03:15.000000000 +0200
-@@ -486,7 +486,7 @@
-
- const char * wpa_ssid_txt(u8 *ssid, size_t ssid_len);
-
--typedef u32 __be32;
--typedef u64 __be64;
-+//typedef u32 __be32;
-+//typedef u64 __be64;
-
- #endif /* COMMON_H */
-diff -Naur wpa_supplicant-0.5.8.orig/driver_zydas.c wpa_supplicant-0.5.8/driver_zydas.c
---- wpa_supplicant-0.5.8.orig/driver_zydas.c 1970-01-01 01:00:00.000000000 +0100
-+++ wpa_supplicant-0.5.8/driver_zydas.c 2006-11-28 09:09:34.000000000 +0100
-@@ -0,0 +1,597 @@
-+/*
-+ * WPA Supplicant - driver interaction with MADWIFI 802.11 driver
-+ * Copyright (c) 2004, Sam Leffler <sam@errno.com>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ * Alternatively, this software may be distributed under the terms of BSD
-+ * license.
-+ *
-+ * See README and COPYING for more details.
-+ */
-+
-+#include <stdlib.h>
-+#include <stdio.h>
-+#include <unistd.h>
-+#include <string.h>
-+#include <sys/ioctl.h>
-+#include <errno.h>
-+
-+#include "common.h"
-+#include "driver.h"
-+#include "driver_wext.h"
-+#include "eloop.h"
-+#include "wpa_supplicant.h"
-+#include "wpa.h"
-+
-+#include "zydas_common.h"
-+
-+#include <net/if_arp.h>
-+#include <linux/wireless.h>
-+
-+struct wpa_driver_zydas_data {
-+ void *wext; /* private data for driver_wext */
-+ void *ctx;
-+ char ifname[IFNAMSIZ + 1];
-+ int sock;
-+};
-+
-+static int zydas_ioctl(struct wpa_driver_zydas_data *drv, struct zydas_wlan_param *param,
-+ int len, int show_err)
-+{
-+ int s;
-+ struct iwreq iwr;
-+
-+ s = socket(PF_INET, SOCK_DGRAM, 0);
-+ if (s < 0) {
-+ perror("socket");
-+ return -1;
-+ }
-+ memset(&iwr, 0, sizeof(iwr));
-+ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
-+ iwr.u.data.pointer = (caddr_t) param;
-+ iwr.u.data.length = len;
-+
-+ if (ioctl(s, ZD_IOCTL_WPA, &iwr) < 0) {
-+ int ret;
-+ close(s);
-+ ret = errno;
-+ if (show_err)
-+ perror("ioctl[ZD_IOCTL_WPA]");
-+ return ret;
-+ }
-+ close(s);
-+
-+ return 0;
-+}
-+
-+static int
-+zydas_set_param(struct wpa_driver_zydas_data *drv, int op, int arg, int show_err)
-+{
-+ struct iwreq iwr;
-+ int *i, s, ret = 0;
-+
-+ s = socket(PF_INET, SOCK_DGRAM, 0);
-+ if (s < 0) {
-+ perror("socket[PF_INET,SOCK_DGRAM]");
-+ return -1;
-+ }
-+
-+ memset(&iwr, 0, sizeof(iwr));
-+ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
-+ i = (int *) iwr.u.name;
-+ *i++ = op;
-+ *i++ = arg;
-+ if (op == ZD_PARAM_WPA)
-+ {
-+ wpa_printf(MSG_DEBUG, "ZD_PARAM_WPA: arg:%d\n", arg);
-+ }
-+ if (ioctl(s, ZD_IOCTL_PARAM, &iwr) < 0) {
-+ perror("ioctl[ZD_IOCTL_PARAM]");
-+ ret = -1;
-+ }
-+ close(s);
-+
-+ return ret;
-+}
-+#if 0
-+static int
-+getifflags(const char *ifname, int *flags)
-+{
-+ struct ifreq ifr;
-+ int s;
-+
-+ s = socket(PF_INET, SOCK_DGRAM, 0);
-+ if (s < 0) {
-+ perror("socket");
-+ return -1;
-+ }
-+
-+ memset(&ifr, 0, sizeof(ifr));
-+ strncpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
-+ if (ioctl(s, SIOCGIFFLAGS, (caddr_t)&ifr) < 0) {
-+ perror("SIOCGIFFLAGS");
-+ return errno;
-+ }
-+ *flags = ifr.ifr_flags & 0xffff;
-+ return 0;
-+}
-+
-+static int
-+setifflags(const char *ifname, int flags)
-+{
-+ struct ifreq ifr;
-+ int s;
-+
-+ s = socket(PF_INET, SOCK_DGRAM, 0);
-+ if (s < 0) {
-+ perror("socket");
-+ return -1;
-+ }
-+
-+ memset(&ifr, 0, sizeof(ifr));
-+ strncpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
-+ ifr.ifr_flags = flags & 0xffff;
-+ if (ioctl(s, SIOCSIFFLAGS, (caddr_t)&ifr) < 0) {
-+ perror("SIOCSIFFLAGS");
-+ return errno;
-+ }
-+ return 0;
-+}
-+#endif
-+static int
-+wpa_driver_zydas_set_wpa_ie(struct wpa_driver_zydas_data *drv,
-+ const char *wpa_ie, size_t wpa_ie_len)
-+{
-+
-+
-+ struct zydas_wlan_param *param;
-+ int res;
-+ size_t blen = ZD_GENERIC_ELEMENT_HDR_LEN + wpa_ie_len;
-+ if (blen < sizeof(*param))
-+ blen = sizeof(*param);
-+
-+ param = (struct zydas_wlan_param *) malloc(blen);
-+ if (param == NULL)
-+ return -1;
-+
-+ memset(param, 0, blen);
-+ param->cmd = ZD_CMD_SET_GENERIC_ELEMENT;
-+ param->u.generic_elem.len = wpa_ie_len;
-+ memcpy(param->u.generic_elem.data, wpa_ie, wpa_ie_len);
-+ res = zydas_ioctl(drv, param, blen, 1);
-+
-+ free(param);
-+
-+ return res;
-+}
-+
-+static int
-+wpa_driver_zydas_set_wpa(void *priv, int enabled)
-+{
-+ struct wpa_driver_zydas_data *drv = priv;
-+ int ret = 0;
-+
-+ wpa_printf(MSG_DEBUG, "%s: enabled=%d", __FUNCTION__, enabled);
-+
-+ if (!enabled && wpa_driver_zydas_set_wpa_ie(drv, NULL, 0) < 0)
-+ ret = -1;
-+ if (zydas_set_param(drv, ZD_PARAM_ROAMING, enabled, 1) < 0)
-+ ret = -1;
-+ if (zydas_set_param(drv, ZD_PARAM_PRIVACY, enabled, 1) < 0)
-+ ret = -1;
-+ if (zydas_set_param(drv, ZD_PARAM_WPA, enabled, 1) < 0)
-+ ret = -1;
-+
-+ return ret;
-+}
-+
-+static int
-+wpa_driver_zydas_set_key(void *priv, wpa_alg alg,
-+ const u8 *addr, int key_idx, int set_tx,
-+ const u8 *seq, size_t seq_len,
-+ const u8 *key, size_t key_len)
-+{
-+ struct wpa_driver_zydas_data *drv = priv;
-+ struct zydas_wlan_param *param;
-+ u8 *buf;
-+ size_t blen;
-+ int ret = 0;
-+ char *alg_name;
-+ switch (alg) {
-+ case WPA_ALG_NONE:
-+ alg_name = "NONE";
-+ break;
-+ case WPA_ALG_WEP:
-+ alg_name = "WEP";
-+ break;
-+ case WPA_ALG_TKIP:
-+ alg_name = "TKIP";
-+ break;
-+ case WPA_ALG_CCMP:
-+ alg_name = "CCMP";
-+ break;
-+ default:
-+ return -1;
-+ }
-+
-+ wpa_printf(MSG_DEBUG, "%s: alg=%s key_idx=%d set_tx=%d seq_len=%d "
-+ "key_len=%d", __FUNCTION__, alg_name, key_idx, set_tx,
-+ seq_len, key_len);
-+
-+ if (seq_len > 8)
-+ return -2;
-+
-+ blen = sizeof(*param) + key_len;
-+ buf = malloc(blen);
-+ if (buf == NULL)
-+ return -1;
-+ memset(buf, 0, blen);
-+
-+ param = (struct zydas_wlan_param *) buf;
-+ param->cmd = ZD_CMD_SET_ENCRYPT_KEY;
-+ /* TODO: In theory, STA in client mode can use five keys; four default
-+ * keys for receiving (with keyidx 0..3) and one individual key for
-+ * both transmitting and receiving (keyidx 0) _unicast_ packets. Now,
-+ * keyidx 0 is reserved for this unicast use and default keys can only
-+ * use keyidx 1..3 (i.e., default key with keyidx 0 is not supported).
-+ * This should be fine for more or less all cases, but for completeness
-+ * sake, the driver could be enhanced to support the missing key. */
-+#if 1
-+ if (addr == NULL)
-+ memset(param->sta_addr, 0xff, ETH_ALEN);
-+ else
-+ memcpy(param->sta_addr, addr, ETH_ALEN);
-+#else
-+ if (addr != NULL)
-+ memcpy(param->sta_addr, addr, ETH_ALEN);
-+#endif
-+ strncpy(param->u.crypt.alg, alg_name, ZD_CRYPT_ALG_NAME_LEN);
-+ param->u.crypt.flags = set_tx ? ZD_FLAG_SET_TX_KEY : 0;
-+ param->u.crypt.idx = key_idx;
-+ memcpy(param->u.crypt.seq, seq, seq_len);
-+ param->u.crypt.key_len = key_len;
-+ memcpy((u8 *) param->u.crypt.key, key, key_len);
-+
-+ /* Dump key context */
-+#if 0
-+ if(alg != WPA_ALG_NONE) {
-+ int ii;
-+
-+ wpa_printf(MSG_DEBUG, "Key Context:");
-+ for(ii = 0; ii < key_len; ) {
-+ printf("0x%02x ", key[ii]);
-+
-+ if((++ii % 16) == 0)
-+ printf("\n");
-+ }
-+
-+ printf("\n");
-+ }
-+#endif
-+ if (zydas_ioctl(drv, param, blen, 1)) {
-+ wpa_printf(MSG_WARNING, "Failed to set encryption.");
-+ //show_set_key_error(param);
-+ ret = -1;
-+ }
-+ free(buf);
-+
-+ return ret;
-+}
-+
-+static int
-+wpa_driver_zydas_set_countermeasures(void *priv, int enabled)
-+{
-+ struct wpa_driver_zydas_data *drv = priv;
-+
-+ /* Enable the countermeasure */
-+ wpa_printf(MSG_DEBUG, "%s: enabled=%d", __FUNCTION__, enabled);
-+ return zydas_set_param(drv, ZD_PARAM_COUNTERMEASURES, enabled, 1);
-+}
-+
-+static int
-+wpa_driver_zydas_set_drop_unencrypted(void *priv, int enabled)
-+{
-+ struct wpa_driver_zydas_data *drv = priv;
-+ /* Enable the countermeasure */
-+ wpa_printf(MSG_DEBUG, "%s: enabled=%d", __FUNCTION__, enabled);
-+ return zydas_set_param(drv, ZD_PARAM_DROPUNENCRYPTED, enabled, 1);
-+}
-+
-+static int
-+wpa_driver_zydas_deauthenticate(void *priv, const u8 *addr, int reason_code)
-+{
-+ struct wpa_driver_zydas_data *drv = priv;
-+ struct zydas_wlan_param *param;
-+ int blen;
-+ int ret;
-+
-+ blen = sizeof(*param);
-+ param = (struct zydas_wlan_param *) malloc(blen);
-+ if (param == NULL)
-+ return -1;
-+
-+ memset(param, 0, blen);
-+ param->cmd = ZD_CMD_SET_MLME;
-+ param->u.mlme.cmd = MLME_STA_DEAUTH;
-+ param->u.mlme.reason_code = reason_code;
-+ memcpy(param->sta_addr, addr, ETH_ALEN);
-+ ret = zydas_ioctl(drv, param, blen, 1);
-+ usleep(100000);
-+ free(param);
-+ return ret;
-+}
-+
-+static int
-+wpa_driver_zydas_disassociate(void *priv, const u8 *addr, int reason_code)
-+{
-+ struct wpa_driver_zydas_data *drv = priv;
-+ struct zydas_wlan_param *param;
-+ int blen;
-+ int ret;
-+
-+ blen = sizeof(*param);
-+ param = (struct zydas_wlan_param *) malloc(blen);
-+ if (param == NULL)
-+ return -1;
-+
-+ memset(param, 0, blen);
-+ param->cmd = ZD_CMD_SET_MLME;
-+ param->u.mlme.cmd = MLME_STA_DISASSOC;
-+ param->u.mlme.reason_code = reason_code;
-+ memcpy(param->sta_addr, addr, ETH_ALEN);
-+ ret = zydas_ioctl(drv, param, blen, 1);
-+ free(param);
-+ return ret;
-+}
-+
-+static int
-+wpa_driver_zydas_associate(void *priv,
-+ struct wpa_driver_associate_params *params)
-+/*static int
-+wpa_driver_zydas_associate(const char *ifname, const char *bssid,
-+ const char *ssid, size_t ssid_len,
-+ int freq,
-+ const char *wpa_ie, size_t wpa_ie_len,
-+ wpa_cipher pairwise_suite,
-+ wpa_cipher group_suite,
-+ wpa_key_mgmt key_mgmt_suite)*/
-+{
-+ struct wpa_driver_zydas_data *drv = priv;
-+
-+ int ret = 0, privacy=1;
-+
-+ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
-+
-+ /* Because there might be the case, two or more APs with the same
-+ * SSID, in order to identify them, we need to set the BSSID. */
-+ if (wpa_driver_zydas_set_wpa_ie(drv, params->wpa_ie, params->wpa_ie_len) < 0)
-+ ret = -1;
-+
-+ if (params->pairwise_suite == CIPHER_NONE &&
-+ params->group_suite == CIPHER_NONE &&
-+ params->key_mgmt_suite == KEY_MGMT_NONE &&
-+ params->wpa_ie_len == 0)
-+ privacy = 0;
-+
-+ if (zydas_set_param(drv, ZD_PARAM_PRIVACY, privacy, 1) < 0)
-+ ret = -1;
-+ if (params->key_mgmt_suite == KEY_MGMT_NONE && params->wpa_ie_len == 0)
-+ {
-+ zydas_set_param(drv, ZD_PARAM_WPA, 0, 1);
-+ }
-+ wpa_printf(MSG_DEBUG, "%s:wpaIeLen:%d, KeyMgmt:%d", __FUNCTION__, params->wpa_ie_len, params->key_mgmt_suite);
-+ if (params->wpa_ie_len &&
-+ zydas_set_param(drv, ZD_PARAM_WPA,
-+ params->wpa_ie[0] == RSN_INFO_ELEM ? 2 : 1, 1) < 0)
-+ ret = -1;
-+
-+ if (params->bssid == NULL) {
-+ /* ap_scan=0 or 2 mode - driver takes care of AP selection and
-+ * roaming */
-+ /* FIX: this does not seem to work; would probably need to
-+ * change something in the driver */
-+ if (zydas_set_param(drv, ZD_PARAM_ROAMING, 0, 1) < 0)
-+ ret = -1;
-+ // if (wpa_driver_wext_set_ssid(drv->wext, params->ssid, params->ssid_len) < 0)
-+ // ret = -1;
-+ }
-+
-+ if (wpa_driver_wext_set_ssid(drv->wext, params->ssid, params->ssid_len) < 0)
-+ ret = -1;
-+
-+ // Mark for test
-+ //if (wpa_driver_wext_set_bssid(ifname, bssid) < 0)
-+ // ret = -1;
-+ if (params->bssid)
-+ {
-+ wpa_printf(MSG_DEBUG, "wpa_supplicant initiates scan and AP selection\n");
-+ if (zydas_set_param(drv, ZD_PARAM_ROAMING, 1, 1) < 0)
-+ ret = -1;
-+ if (wpa_driver_wext_set_bssid(drv->wext, params->bssid) < 0)
-+ ret = -1;
-+ }
-+
-+
-+#if 0
-+ /* Allow unencrypted EAPOL messages even if pairwise keys are set when
-+ * not using WPA. IEEE 802.1X specifies that these frames are not
-+ * encrypted, but WPA encrypts them when pairwise keys are in use. */
-+ if (key_mgmt_suite == KEY_MGMT_802_1X ||
-+ key_mgmt_suite == KEY_MGMT_PSK)
-+ allow_unencrypted_eapol = 0;
-+ else
-+ allow_unencrypted_eapol = 1;
-+
-+ if (prism2param(ifname, PRISM2_PARAM_IEEE_802_1X,
-+ allow_unencrypted_eapol) < 0) {
-+ wpa_printf(MSG_DEBUG, "hostap: Failed to configure "
-+ "ieee_802_1x param");
-+ /* Ignore this error.. driver_hostap.c can also be used with
-+ * other drivers that do not support this prism2_param. */
-+ }
-+#endif
-+
-+ return ret;
-+}
-+
-+static int
-+wpa_driver_zydas_scan(void *priv, const u8 *ssid, size_t ssid_len)
-+{
-+ struct wpa_driver_zydas_data *drv=priv;
-+ struct zydas_wlan_param param;
-+ int ret;
-+
-+ if (ssid == NULL) {
-+ /* Use standard Linux Wireless Extensions ioctl if possible
-+ * because some drivers using hostap code in wpa_supplicant
-+ * might not support Host AP specific scan request (with SSID
-+ * info). */
-+ return wpa_driver_wext_scan(drv->wext, ssid, ssid_len);
-+ }
-+
-+ if (ssid_len > 32)
-+ ssid_len = 32;
-+
-+ memset(¶m, 0, sizeof(param));
-+ param.cmd = ZD_CMD_SCAN_REQ;
-+ param.u.scan_req.ssid_len = ssid_len;
-+ memcpy(param.u.scan_req.ssid, ssid, ssid_len);
-+ ret = zydas_ioctl(drv, ¶m, sizeof(param), 1);
-+
-+ /* Not all drivers generate "scan completed" wireless event, so try to
-+ * read results after a timeout. */
-+ eloop_register_timeout(3, 0, wpa_driver_wext_scan_timeout, NULL, drv->ctx);
-+
-+ return ret;
-+}
-+
-+static int wpa_driver_zydas_set_auth_alg(void *priv, int auth_alg)
-+{
-+ struct wpa_driver_zydas_data *drv=priv;
-+ int algs = 0;
-+
-+ if (auth_alg & AUTH_ALG_OPEN_SYSTEM)
-+ algs = 0;
-+ if (auth_alg & AUTH_ALG_SHARED_KEY)
-+ algs = 1;
-+
-+ return zydas_set_param(drv, ZD_PARAM_AUTH_ALGS, algs, 1);
-+}
-+static int wpa_driver_zydas_get_bssid(void *priv, u8 *bssid)
-+{
-+ struct wpa_driver_zydas_data *drv=priv;
-+ return wpa_driver_wext_get_bssid(drv->wext, bssid);
-+}
-+
-+static int wpa_driver_zydas_get_ssid(void *priv, u8 *ssid)
-+{
-+ struct wpa_driver_zydas_data *drv=priv;
-+ return wpa_driver_wext_get_ssid(drv->wext, ssid);
-+}
-+static void * wpa_driver_zydas_init(void *ctx, const char *ifname)
-+{
-+ struct wpa_driver_zydas_data *drv;
-+ drv = malloc(sizeof(*drv));
-+ if (drv == NULL)
-+ return NULL;
-+ memset(drv, 0, sizeof(*drv));
-+ drv->wext = wpa_driver_wext_init(ctx, ifname);
-+ if (drv->wext == NULL)
-+ goto fail;
-+
-+ drv->ctx = ctx;
-+ strncpy(drv->ifname, ifname, sizeof(drv->ifname));
-+ drv->sock = socket(PF_INET, SOCK_DGRAM, 0);
-+ if (drv->sock < 0)
-+ goto fail2;
-+
-+ if (zydas_set_param(drv, ZD_PARAM_ROAMING, 0, 1) < 0) {
-+ wpa_printf(MSG_DEBUG, "%s: failed to set wpa_supplicant-based "
-+ "roaming", __FUNCTION__);
-+ goto fail3;
-+ }
-+
-+ if (zydas_set_param(drv, ZD_PARAM_WPA, 3, 1) < 0) {
-+ wpa_printf(MSG_DEBUG, "%s: failed to enable WPA/WPA2 support",
-+ __FUNCTION__);
-+ goto fail3;
-+ }
-+
-+ return drv;
-+
-+fail3:
-+ close(drv->sock);
-+fail2:
-+ wpa_driver_wext_deinit(drv->wext);
-+fail:
-+ free(drv);
-+ return NULL;
-+}
-+
-+
-+static void wpa_driver_zydas_deinit(void *priv)
-+{
-+ struct wpa_driver_zydas_data *drv = priv;
-+
-+ if (wpa_driver_zydas_set_wpa_ie(drv, NULL, 0) < 0) {
-+ wpa_printf(MSG_DEBUG, "%s: failed to clear WPA IE",
-+ __FUNCTION__);
-+ }
-+ if (zydas_set_param(drv, ZD_PARAM_ROAMING, 0, 1) < 0) {
-+ wpa_printf(MSG_DEBUG, "%s: failed to enable driver-based "
-+ "roaming", __FUNCTION__);
-+ }
-+ if (zydas_set_param(drv, ZD_PARAM_PRIVACY, 0, 1) < 0) {
-+ wpa_printf(MSG_DEBUG, "%s: failed to disable forced Privacy "
-+ "flag", __FUNCTION__);
-+ }
-+ if (zydas_set_param(drv, ZD_PARAM_WPA, 0, 1) < 0) {
-+ wpa_printf(MSG_DEBUG, "%s: failed to disable WPA",
-+ __FUNCTION__);
-+ }
-+
-+ wpa_driver_wext_deinit(drv->wext);
-+
-+ close(drv->sock);
-+ free(drv);
-+}
-+#if 0
-+static void
-+wpa_driver_zydas_cleanup(const char *ifname)
-+{
-+ int flags;
-+
-+ /* NB: mark interface down */
-+ if (getifflags(ifname, &flags) == 0)
-+ (void) setifflags(ifname, flags &~ IFF_UP);
-+}
-+#endif
-+static int wpa_driver_zydas_get_scan_results(void *priv,
-+ struct wpa_scan_result *results,
-+ size_t max_size)
-+{
-+ struct wpa_driver_zydas_data *drv = priv;
-+ return wpa_driver_wext_get_scan_results(drv->wext, results, max_size);
-+}
-+struct wpa_driver_ops wpa_driver_zydas_ops = {
-+ .name = "zydas",
-+ .desc = "ZyDAS 802.11 WPA support interface",
-+ .get_bssid = wpa_driver_zydas_get_bssid,
-+ .get_ssid = wpa_driver_zydas_get_ssid,
-+// .set_wpa = wpa_driver_zydas_set_wpa,
-+ .set_key = wpa_driver_zydas_set_key,
-+ .init = wpa_driver_zydas_init,
-+ .deinit = wpa_driver_zydas_deinit,
-+ .set_countermeasures = wpa_driver_zydas_set_countermeasures,
-+ .set_drop_unencrypted = wpa_driver_zydas_set_drop_unencrypted,
-+ .scan = wpa_driver_zydas_scan,
-+ .get_scan_results = wpa_driver_zydas_get_scan_results,
-+ .deauthenticate = wpa_driver_zydas_deauthenticate,
-+ .disassociate = wpa_driver_zydas_disassociate,
-+ .associate = wpa_driver_zydas_associate,
-+ .set_auth_alg = wpa_driver_zydas_set_auth_alg,
-+};
-+
-diff -Naur wpa_supplicant-0.5.8.orig/drivers.c wpa_supplicant-0.5.8/drivers.c
---- wpa_supplicant-0.5.8.orig/drivers.c 2007-03-25 04:09:50.000000000 +0200
-+++ wpa_supplicant-0.5.8/drivers.c 2008-08-07 11:46:26.000000000 +0200
-@@ -14,7 +14,9 @@
-
- #include "includes.h"
-
--
-+#ifdef CONFIG_DRIVER_ZYDAS
-+extern struct wpa_driver_ops wpa_driver_zydas_ops; /* driver_zydas.c */
-+#endif /* CONFIG_DRIVER_ZYDAS */
- #ifdef CONFIG_DRIVER_WEXT
- extern struct wpa_driver_ops wpa_driver_wext_ops; /* driver_wext.c */
- #endif /* CONFIG_DRIVER_WEXT */
-@@ -59,6 +61,9 @@
-
- struct wpa_driver_ops *wpa_supplicant_drivers[] =
- {
-+#ifdef CONFIG_DRIVER_ZYDAS
-+ &wpa_driver_zydas_ops,
-+#endif /* CONFIG_DRIVER_ZYDAS */
- #ifdef CONFIG_DRIVER_WEXT
- &wpa_driver_wext_ops,
- #endif /* CONFIG_DRIVER_WEXT */
-diff -Naur wpa_supplicant-0.5.8.orig/zydas_common.h wpa_supplicant-0.5.8/zydas_common.h
---- wpa_supplicant-0.5.8.orig/zydas_common.h 1970-01-01 01:00:00.000000000 +0100
-+++ wpa_supplicant-0.5.8/zydas_common.h 2006-01-09 04:30:42.000000000 +0100
-@@ -0,0 +1,73 @@
-+#ifndef ZYDAS_COMMON_H
-+#define ZYDAS_COMMON_H
-+
-+#define ZD_IOCTL_WPA (SIOCDEVPRIVATE + 1)
-+#define ZD_IOCTL_PARAM (SIOCDEVPRIVATE + 2)
-+#define ZD_IOCTL_GETWPAIE (SIOCDEVPRIVATE + 3)
-+#define ZD_PARAM_ROAMING 0x0001
-+#define ZD_PARAM_PRIVACY 0x0002
-+#define ZD_PARAM_WPA 0x0003
-+#define ZD_PARAM_COUNTERMEASURES 0x0004
-+#define ZD_PARAM_DROPUNENCRYPTED 0x0005
-+#define ZD_PARAM_AUTH_ALGS 0x0006
-+
-+#define ZD_CMD_SET_ENCRYPT_KEY 0x0001
-+#define ZD_CMD_SET_MLME 0x0002
-+#define ZD_CMD_SCAN_REQ 0x0003
-+#define ZD_CMD_SET_GENERIC_ELEMENT 0x0004
-+#define ZD_CMD_GET_TSC 0x0005
-+
-+#define ZD_FLAG_SET_TX_KEY 0x0001
-+
-+#define ZD_GENERIC_ELEMENT_HDR_LEN \
-+((int) (&((struct zydas_wlan_param *) 0)->u.generic_elem.data))
-+
-+#define ZD_CRYPT_ALG_NAME_LEN 16
-+#define ZD_MAX_KEY_SIZE 32
-+#define ZD_MAX_GENERIC_SIZE 64
-+
-+#define IEEE80211_ADDR_LEN 6
-+#define IEEE80211_MAX_IE_SIZE 256
-+
-+/* structure definition */
-+
-+struct zydas_wlan_param {
-+ u32 cmd;
-+ u8 sta_addr[ETH_ALEN];
-+ union {
-+ struct {
-+ u8 alg[ZD_CRYPT_ALG_NAME_LEN];
-+ u32 flags;
-+ u32 err;
-+ u8 idx;
-+ u8 seq[8]; /* sequence counter (set: RX, get: TX) */
-+ u16 key_len;
-+ u8 key[ZD_MAX_KEY_SIZE];
-+ } crypt;
-+ struct {
-+ u32 flags_and;
-+ u32 flags_or;
-+ } set_flags_sta;
-+ struct {
-+ u8 len;
-+ u8 data[ZD_MAX_GENERIC_SIZE];
-+ } generic_elem;
-+ struct {
-+#define MLME_STA_DEAUTH 0
-+#define MLME_STA_DISASSOC 1
-+ u16 cmd;
-+ u16 reason_code;
-+ } mlme;
-+ struct {
-+ u8 ssid_len;
-+ u8 ssid[32];
-+ } scan_req;
-+ } u;
-+};
-+
-+struct ieee80211req_wpaie {
-+ u8 wpa_macaddr[IEEE80211_ADDR_LEN];
-+ u8 wpa_ie[IEEE80211_MAX_IE_SIZE];
-+};
-+#endif
-+
+++ /dev/null
-diff -Naur org/Makefile patched/Makefile
---- org/Makefile 2008-08-19 12:45:17.000000000 +0200
-+++ patched/Makefile 2008-08-19 12:44:55.000000000 +0200
-@@ -4,9 +4,11 @@
- #\r
- #\r
- \r
--HOST=\r
--CC=$(HOST)gcc\r
--LD=$(HOST)ld\r
-+#HOST=\r
-+#CC=$(HOST)gcc\r
-+#LD=$(HOST)ld\r
-+VERSION := $(shell uname -r)\r
-+MODPATH := /lib/modules/$(VERSION)\r
- KERN_VER=$(shell uname -r | cut -b1-3;)\r
- KDIR := /lib/modules/$(shell uname -r)/build\r
- PWD := $(shell pwd)\r
-@@ -17,15 +19,17 @@
- \r
- ifeq ($(KERN_VER), 2.6) \r
- KERN_26=y\r
-- KERNEL_SOURCE=/usr/src/linux-2.6.9\r
-+ KERNEL_SOURCE ?= $(MODPATH)/source\r
- else \r
- KERN_24=y\r
- KERNEL_SOURCE=/usr/src/linux-2.4\r
- endif\r
- \r
- SRC_DIR=src\r
--DEFINES=-D__KERNEL__ -DMODULE=1\r
-+DEFINES ?= -D__KERNEL__ -DMODULE=1\r
- \r
-+# set to 1 for zd1211b\r
-+ZD1211REV_B=1\r
- \r
- KERNRELEASE := $(shell uname -r;)\r
- MODPATH := /lib/modules/$(KERNRELEASE)\r
-@@ -362,14 +366,14 @@
- /bin/sh scripts/Menuconfig\r
- \r
- debug:\r
-- gcc -o apdbg apdbg.c\r
-- chmod +x apdbg\r
-- cp ./apdbg /sbin/apdbg \r
-- make -C Menudbg\r
-- mv Menudbg/menudbg .\r
-- chmod +x menudbg\r
-- cp ./menudbg /sbin\r
-- gcc -DPKT_SEND_FUNCTION -o winevl_iface Winevl_iface/pkt_send.c Winevl_iface/winevl_bridge.c\r
-+ #gcc -o apdbg apdbg.c\r
-+ #chmod +x apdbg\r
-+ #cp ./apdbg /sbin/apdbg \r
-+ #make -C Menudbg\r
-+ #mv Menudbg/menudbg .\r
-+ #chmod +x menudbg\r
-+ #cp ./menudbg /sbin\r
-+ #gcc -DPKT_SEND_FUNCTION -o winevl_iface Winevl_iface/pkt_send.c Winevl_iface/winevl_bridge.c\r
- \r
- clean:\r
- rm -rf .tmp_versions .*.cmd *.ko *.mod.c *.mod.o *.o $(SRC_DIR)/*.o $(SRC_DIR)/.*.o.cmd menudbg apdbg winevl_iface\r
+++ /dev/null
-diff -Naur org/src/zdusb.c patched/src/zdusb.c
---- org/src/zdusb.c 2007-11-06 13:06:36.000000000 +0100
-+++ patched/src/zdusb.c 2008-08-19 12:44:48.000000000 +0200
-@@ -371,6 +371,8 @@
- g_dev = net; //save this for CBs use\r
- //macp = net->priv; //kernel 2.4\r
- net->priv = macp; //kernel 2.6\r
-+ /* ath_desc: use /dev/wlanX as device node */\r
-+ strcpy(net->name, "wlan%d"); \r
- macp->device = net;\r
- macp->usb = dev;\r
- SET_MODULE_OWNER(net);\r
+++ /dev/null
---- zd1211-driver-r85/Makefile 2006-07-09 11:59:42.000000000 +0200
-+++ zd1211-driver-r85/Makefile 2008-05-22 09:03:08.000000000 +0200
-@@ -4,10 +4,10 @@
- #
- #
-
--CC=gcc
--CPP=g++
--LD=ld
--rM=rm -f -r
-+#CC=gcc
-+#CPP=g++
-+#LD=ld
-+#rM=rm -f -r
-
- VERSION := $(shell uname -r)
- MODPATH := /lib/modules/$(VERSION)
-@@ -15,14 +15,14 @@
- # if the kernel is 2.6.x, turn on this
- KERN_26=y
-
--KERNEL_SOURCE=$(MODPATH)/source
-+KERNEL_SOURCE ?= $(MODPATH)/source
- #KERNEL_SOURCE=/usr/src/linux
-
- # set to 1 for zd1211b
--ZD1211REV_B=0
-+ZD1211REV_B=1
-
- SRC_DIR=src
--DEFINES=-D__KERNEL__ -DMODULE=1
-+DEFINES ?= -D__KERNEL__ -DMODULE=1
-
-
-
-@@ -228,9 +228,9 @@
- depmod -a $(VERSION)
-
- #for apdbg
-- gcc -o apdbg apdbg.c
-- chmod +x apdbg
-- cp ./apdbg /sbin/apdbg
-+# gcc -o apdbg apdbg.c
-+# chmod +x apdbg
-+# cp ./apdbg /sbin/apdbg
-
- clean:
- rm -rf .tmp_versions .*.cmd *.ko *.mod.c *.mod.o *.o $(SRC_DIR)/*.o $(SRC_DIR)/.*.o.cmd
+++ /dev/null
-DESCRIPTION = "Driver for zd1211b family of wireless USB Dongles"
-HOMEPAGE = "http://zd1211.ath.cx/"
-SECTION = "kernel/modules"
-PRIORITY = "optional"
-MAINTAINER = "Oyvind Repvik <nail@nslu2-linux.org>"
-LICENSE = "GPL"
-RDEPENDS = "wireless-tools"
-PR = "r0"
-
-SRC_URI = "http://www.reactivated.net/software/zd1211-vendor/releases/ZD1211LnxDrv_2_22_0_0.tar.gz \
- file://ZD1211LnxDrv_2_22_0_0.patch;patch=1 \
- file://zdiface.patch;patch=1"
-
-S = "${WORKDIR}/ZD1211LnxDrv_2_22_0_0"
-
-inherit module
-
-do_compile () {
- unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS CC LD CPP
- oe_runmake 'MODPATH={D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net' \
- 'KERNEL_SOURCE=${STAGING_KERNEL_DIR}' \
- 'KDIR=${STAGING_KERNEL_DIR}' \
- 'KERNEL_VERSION=${KERNEL_VERSION}' \
- 'CC=${KERNEL_CC}' \
- 'LD=${KERNEL_LD}'
-}
-
-do_install() {
- install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net
- install -m 0644 ${S}/zd1211*${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net
-}
+++ /dev/null
-DESCRIPTION = "Driver for zd1211b family of wireless USB Dongles"
-HOMEPAGE = "http://zd1211.ath.cx/"
-SECTION = "kernel/modules"
-PRIORITY = "optional"
-MAINTAINER = "Oyvind Repvik <nail@nslu2-linux.org>"
-LICENSE = "GPL"
-RDEPENDS = "wireless-tools"
-PR = "r1"
-
-SRC_URI = "http://downloads.openwrt.org/sources/zd1211-driver-${PV}.tgz \
- file://zd1211b.patch;patch=1"
-
-S = "${WORKDIR}/zd1211-driver-${PV}"
-
-inherit module
-
-do_compile () {
- unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS CC LD CPP
- oe_runmake 'MODPATH={D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net' \
- 'KERNEL_SOURCE=${STAGING_KERNEL_DIR}' \
- 'KDIR=${STAGING_KERNEL_DIR}' \
- 'KERNEL_VERSION=${KERNEL_VERSION}' \
- 'CC=${KERNEL_CC}' \
- 'LD=${KERNEL_LD}'
-}
-
-do_install() {
- install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net
- install -m 0644 ${S}/zd1211*${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net
-}
+++ /dev/null
-include python-zopeinterface_${PV}.bb
-inherit native
-DEPENDS = "python-native"
-
-do_stage() {
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- ${STAGING_BINDIR}/python setup.py install --prefix=${STAGING_BINDIR}/.. --install-data=${STAGING_DATADIR}
-}
+++ /dev/null
-DESCRIPTION = "zope.interface is provides Zope 3-styled interface definitions \
-for python"
-SECTION = "devel/python"
-PRIORITY = "optional"
-LICENSE = "ZPL"
-SRCNAME = "zope.interface"
-
-SRC_URI = "http://www.zope.org/Products/ZopeInterface/${PV}/${SRCNAME}-${PV}.tar.gz"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-inherit setuptools
--- /dev/null
+DESCRIPTION="AiO screen grabber for dreambox stbs"
+LICENSE = "GPL"
+
+PR = "r0"
+PV = "0.8+cvs${SRCDATE}"
+SRCDATE = "20081212"
+SRC_URI="cvs://anonymous@cvs.schwerkraft.elitedvb.net/cvsroot/aio-grab;module=aio-grab;method=pserver"
+
+S = "${WORKDIR}/aio-grab"
+
+inherit autotools pkgconfig
--- /dev/null
+#
+# $Id: auto.master,v 1.4 2005/01/04 14:36:54 raven Exp $
+#
+# Sample auto.master file
+# This is an automounter map and it has the following format
+# key [ -mount-options-separated-by-comma ] location
+# For details of the format look at autofs(5).
+#/smb /etc/auto.smb
+#/net /etc/auto.net
+/autofs /etc/auto.hotplug
+/media/net /etc/auto.network
--- /dev/null
+# automatically generated by enigma 2
+# do NOT change manually!
--- /dev/null
+#!/bin/sh
+#
+# $Id: rc.autofs.in,v 1.58 2005/04/11 11:30:54 raven Exp $
+#
+# rc file for automount using a Sun-style "master map".
+# We first look for a local /etc/auto.master, then a YP
+# map with that name
+#
+# On most distributions, this file should be called:
+# /etc/rc.d/init.d/autofs or /etc/init.d/autofs
+#
+
+# For Redhat-ish systems
+#
+# chkconfig: 345 28 72
+# processname: /usr/sbin/automount
+# config: /etc/auto.master
+# description: Automounts filesystems on demand
+
+# This is used in the Debian distribution to determine the proper
+# location for the S- and K-links to this init file.
+# The following value is extracted by debstd to figure out how to
+# generate the postinst script. Edit the field to change the way the
+# script is registered through update-rc.d (see the manpage for
+# update-rc.d!)
+#
+FLAGS="defaults 21"
+
+#
+# Location of the automount daemon and the init directory
+#
+DAEMON=/usr/sbin/automount
+prog=`basename $DAEMON`
+initdir=/etc/init.d
+
+test -e $DAEMON || exit 0
+
+#
+# Determine which kind of configuration we're using
+#
+system=debian
+
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+export PATH
+
+#
+# We can add local options here
+# e.g. localoptions='rsize=8192,wsize=8192'
+#
+localoptions=''
+
+daemonoptions='--ghost '
+
+#
+# load custom settings
+#
+TIMEOUT=1
+DISABLE_DIRECT=1
+DAEMON_EXIT_WAIT=20
+
+daemonoptions="$daemonoptions --timeout=$TIMEOUT"
+
+
+#
+# Check for all maps that are to be loaded
+#
+getschemes()
+{
+ SOURCES=`grep ^automount: /etc/nsswitch.conf | \
+ sed -e 's/^.*://' -e 's/\[.*\]/ /g'`
+
+ if [ `echo $SOURCES | awk '{print NF}'` -gt 0 ]
+ then
+ echo ${SOURCES}
+ else
+ echo files
+ fi
+}
+
+catnismap()
+{
+ if [ -z "$1" ] ; then
+ map="auto_master"
+ else
+ map="$1"
+ fi
+ /usr/bin/ypcat -k "$map" 2> /dev/null | sed -e '/^#/d' -e '/^$/d'
+}
+
+getfilemounts()
+{
+ if [ -f /etc/auto.master ] ; then
+ cat /etc/auto.master | awk '{print $0}' | sed -e '/^#/d' -e '/^$/d' | (
+ while read auto_master_in
+ do
+ if [ "`echo $auto_master_in | grep '^+'`" = "" ]; then
+ echo $auto_master_in
+ else
+ for nismap in `cat /etc/auto.master | grep '^\+' |
+ sed -e '/^#/d' -e '/^$/d'`; do
+ catnismap `echo "$nismap" | sed -e 's/^\+//'`
+ done
+ fi
+ done
+ )
+ fi
+}
+
+getnismounts()
+{
+ YPMAP=`catnismap auto.master`
+ if [ -z "$YPMAP" ]; then
+ catnismap
+ else
+ catnismap auto.master
+ fi
+}
+
+getldapmounts()
+{
+ if [ -x /usr/lib/autofs/autofs-ldap-auto-master ]; then
+ /usr/lib/autofs/autofs-ldap-auto-master 2> /dev/null
+ fi
+}
+
+getrawmounts()
+{
+ for scheme in `getschemes` ; do
+ case "$scheme" in
+ files)
+ if [ -z "$filescheme" ] ; then
+ getfilemounts
+ filescheme=1
+ export filescheme
+ fi
+ ;;
+ nis)
+ if [ -z "$nisscheme" ] ; then
+ getnismounts
+ nisscheme=1
+ export nisscheme
+ fi
+ ;;
+ ldap*)
+ if [ -z "$ldapscheme" ] ; then
+ getldapmounts
+ ldapscheme=1
+ export ldapscheme
+ fi
+ ;;
+ esac
+ done
+}
+
+
+#
+# This function will build a list of automount commands to execute in
+# order to activate all the mount points. It is used to figure out
+# the difference of automount points in case of a reload
+#
+getmounts()
+{
+ local LC_ALL=C
+ export LC_ALL
+ knownmaps=" "
+ getrawmounts | (
+ while read dir map options
+ do
+ # These checks screen out duplicates and skip over directories
+ # where the map is '-'.
+ # We can't do empty or direct host maps, so don't bother trying.
+
+ # Strip trailing slashes from the dir line if it exists to aid
+ # in checking for duplicate maps
+ dir=`echo "$dir" | sed -e "s/\/*$//"`
+
+ if [ ! -z "$map" -a "$map" = "-hosts" ] ; then
+ continue
+ fi
+
+ if [ $DISABLE_DIRECT -eq 1 \
+ -a x`echo $dir | grep -E "^/-"` != 'x' ]
+ then
+ continue
+ fi
+
+ # Do not include a map if it is a duplicate, maps on top of
+ # another map or another map, maps on top of it.
+ for knownmap in $knownmaps
+ do
+ if [ "`echo $dir/ | grep ^$knownmap`" != "" \
+ -o "`echo $knownmap | grep ^$dir/`" != "" \]
+ then
+ continue 2
+ fi
+ done
+
+ if [ ! -z "$dir" -a ! -z "$map" \
+ -a x`echo "$map" | cut -c1` != 'x-' ]
+ then
+ # If the options include a -t or --timeout, a -g or --ghost,
+ # a -v or --verbose or a -d or --debug paramter, then pull
+ # those particular options out.
+ : echo DAEMONOPTIONS OPTIONS $daemonoptions $options
+ startupoptions=
+ if echo "$options" | grep -qE -- '\B-(t\b|-timeout\b=)' ;
+ then
+ startupoptions="--timeout=$(echo $options |\
+ sed 's/.*-\(t[^0-9]*\|-timeout\)[ \t=]*\([0-9][0-9]*\).*$/\2/g')"
+ elif echo "$daemonoptions" | grep -q -- '-t' ;
+ then
+ # It's okay to be sloppy with DAEMONOPTIONS as there is no
+ # possibility of conflicting with mount or map options.
+ startupoptions="--timeout=$(echo $daemonoptions | \
+ sed 's/.*--*t\(imeout\)*[ \t=]*\([0-9][0-9]*\).*$/\2/g')"
+ fi
+
+ # Check for the ghost option
+ if echo "$daemonoptions $options" | grep -qE -- '\B-(g\b|-ghost\b)' ;
+ then
+ startupoptions="$startupoptions --ghost"
+ fi
+ # Dont even deal with conflicts between --ghost and [no]browse
+ # Its just insane to configure things like that.
+ if echo "$options" | grep -qE -- '\B-browse\b' ;
+ then
+ startupoptions="$startupoptions --ghost"
+ fi
+ # Check for verbose
+ if echo "$daemonoptions $options" | \
+ grep -qE -- '\B-(v\b|-verbose\b)' ;
+ then
+ startupoptions="$startupoptions --verbose"
+ fi
+
+ # Check for debug
+ if echo "$daemonoptions $options" | \
+ grep -qE -- '\B-(d\b|-debug\b)' ;
+ then
+ startupoptions="$startupoptions --debug"
+ fi
+
+ # Other option flags are intended for maps.
+ mapoptions="$(echo "$daemonoptions $options" |\
+ sed 's/-\(t[^0-9]*\|-timeout\)[ \t=]*\([0-9][0-9]*\)//g' |
+ sed 's/-\(g\b\|-ghost\b\)//g' |
+ sed 's/-\(v\b\|-verbose\b\)//g' |
+ sed 's/-\(d\b\|-debug\b\)//g' |
+ sed 's/-\b\(no\)\?browse\b//g')"
+
+ # Break up the maptype and map, if the map type is specified
+ maptype=`echo $map | cut -f1 -d:`
+ # Handle degenerate map specifiers
+ if [ "$maptype" = "$map" ] ; then
+ if [ "$map" = "hesiod" -o "$map" = "userhome" ] ; then
+ maptype=$map
+ map=
+ elif [ "$map" = "multi" ] ; then
+ maptype=$map
+ map=
+# elif echo "$map" | grep -q '^!'; then
+# map=`echo "$map"| sed -e 's/^!//g'`
+ elif `echo $map | grep -q "^/"` && [ -x "$map" ]; then
+ maptype=file
+ elif [ -x "/etc/$map" ]; then
+ maptype=program
+ map=`echo /etc/$map | sed 's^//^/^g'`
+ elif `echo $map | grep -q "^/"` && [ -f "$map" ]; then
+ maptype=file
+ elif [ -f "/etc/$map" ]; then
+ maptype=file
+ map=`echo /etc/$map | sed 's^//^/^g'`
+ else
+ maptype=yp
+ if [ "$UNDERSCORETODOT" = "1" ] ; then
+ map=`basename $map | sed -e s/^auto_home/auto.home/ -e s/^auto_mnt/auto.mnt/`
+ else
+ map=`basename $map | sed 's^//^/^g'`
+ fi
+ fi
+ fi
+ map=`echo $map | cut -f2- -d:`
+
+ : echo STARTUPOPTIONS $startupoptions
+ : echo DIR $dir
+ : echo MAPTYPE $maptype
+ : echo MAP $map
+ : echo MAPOPTIONS $mapoptions
+ : echo LOCALOPTIONS $localoptions
+
+ NEWOPTIONS=""
+ for m in $mapoptions
+ do
+ if [ x"$m" = x"--" ]; then
+ NEWOPTIONS="$NEWOPTIONS $localoptions --"
+ else
+ NEWOPTIONS="$NEWOPTIONS $m"
+ fi
+ done
+ mapoptions=$NEWOPTIONS
+
+ echo "$DAEMON $startupoptions $dir $maptype $map $mapoptions $localoptions" | sed -e 's/ / /g' -e 's/ */ /g'
+
+ : echo ------------------------
+ knownmaps=" $dir/ $knownmaps"
+ fi
+ done
+ )
+}
+
+#
+# Status lister.
+#
+status()
+{
+ echo -e $"Configured Mount Points:\n------------------------"
+ getmounts
+ echo ""
+ echo -e $"Active Mount Points:\n--------------------"
+ ps axwww|grep "[0-9]:[0-9][0-9] $DAEMON " | (
+ while read pid tt stat time command; do echo $command; done
+ )
+}
+
+get_command_from_pid()
+{
+ ps ax | grep "[0-9]:[0-9][0-9] $DAEMON " | (
+ while read pid tt stat time command; do
+ if [ "$pid" = "$1" ] ; then
+ echo `echo "$command" | \
+ sed 's/--pid-file.*\.pid/ /'`
+ return 0
+ fi
+ done
+ )
+ return 0
+}
+
+# return true if at least one pid is alive
+alive()
+{
+ if [ -z "$*" ]; then
+ return 1
+ fi
+ for i in $*; do
+ if kill -0 $i 2> /dev/null; then
+ return 0
+ fi
+ done
+
+ return 1
+}
+
+#
+# Find pids of process group leaders
+#
+get_pgrp_pids()
+{
+ ps -eo pid,pgrp,cmd|grep $DAEMON|\
+ awk '{print $1,$2}'|\
+ while read pid pgrp
+ do
+ if [ $pid -eq $pgrp ]
+ then
+ echo $pid
+ fi
+ done
+}
+
+#
+# Signal each automount process group leader
+#
+signal_automounts()
+{
+ RETVAL=0
+ pgrp_pids=`get_pgrp_pids`
+ for pid in $pgrp_pids
+ do
+ kill -USR2 $pid 2 > /dev/null
+ count=0
+ while ps ax|grep -v grep|grep $pid >/dev/null
+ do
+ sleep 1
+ count=$(expr $count + 1)
+ if [ $count -gt $DAEMON_EXIT_WAIT ]; then
+ break;
+ fi
+ done
+ done
+
+ if [ -n "`/sbin/pidof $DAEMON`" ] ; then
+ RETVAL=1
+ fi
+
+ return $RETVAL
+}
+
+umount_loopback()
+{
+ loops=`LC_ALL=C awk '!/^#/ && $1 ~ /^\/dev\/loop/ && $2 != "/" {print $2}' /proc/mounts`
+ automounts=`LC_ALL=C awk '!/^#/ && $1 ~ /^automount/ {print $2}' /proc/mounts`
+
+ for l in $loops
+ do
+ # If a loop device is mounted into a subdir of the automount point,
+ # umount it here.
+ for a in $automounts
+ do
+ match=`echo $l | grep -E "^$a[\$|/]" || true`
+ if [ -n "$match" ]; then
+ echo ""
+ echo -n $"Unmounting loopback filesystem $match: "
+ loopdev=`LC_ALL=C grep $l /proc/mounts | awk '{print $1}'`
+ umount -d $match
+ if [ $? -eq 0 ]; then
+ echo "done"
+ else
+ echo "failed ($?)"
+ fi
+ fi
+ done
+ done
+
+ # If the loop device file exists under the automount point, umount
+ # it here.
+ loopmnts=`LC_ALL=C awk '!/^#/ && $1 ~ /^\/dev\/loop/ && $2 != "/" {print $1}' /proc/mounts`
+ for l in $loopmnts
+ do
+ loopmnt=`losetup $l | awk -F\( '{print $2}' | awk -F\) '{print $1}'`
+ for a in $automounts
+ do
+ match=`echo $loopmnt | grep -E "^$a[\$|/]" || true`
+ if [ -n "$match" ]; then
+ echo ""
+ echo -n $"Unmounting loopback filesystem $match: "
+ umount -d $match
+ if [ $? -eq 0 ]; then
+ echo "done"
+ else
+ echo "failed ($?)"
+ fi
+ fi
+ done
+ done
+}
+
+stop() {
+ echo -n $"Stopping $prog: "
+ count=0
+ while [ -n "`pidof $DAEMON`" -a $count -lt 15 ] ; do
+ killall -TERM $prog >& /dev/null
+ RETVAL=$?
+ [ $RETVAL = 0 -a -z "`pidof $DAEMON`" ] || sleep 3
+ count=`expr $count + 1`
+ done
+ if [ -n "`pidof $DAEMON`" ] ; then
+ echo "done."
+ else
+ echo "failed."
+ fi
+ return $RETVAL
+}
+
+
+
+case "$1" in
+start)
+ echo -n 'Starting automounter:'
+
+ # make sure autofs4 is loaded
+ if ! grep -q autofs /proc/filesystems
+ then
+ # autofs filesystem support not loaded
+ echo -n ' loading autofs4 kernel module,'
+ modprobe autofs4 || true
+ elif ([ -f /proc/modules ] && lsmod) | grep -q autofs[^4]; then
+ # wrong autofs filesystem module loaded
+ echo
+ echo "WARNING: autofs kernel module is loaded, autofs4 needed"
+ echo " for correct behaviour. You might experience mount failures."
+ fi
+
+ # Check that maps exist
+ if [ -z "$(getrawmounts)" ]
+ then
+ echo " no automount maps defined."
+ exit 0
+ fi
+
+ # ensure pid file directory exists
+ if [ ! -e /var/run/autofs ]
+ then
+ mkdir /var/run/autofs
+ fi
+
+ getmounts | while read cmd rest
+ do
+ mnt=`echo $rest | sed 's/^.* \(\/[^ ]*\) [A-Za-z].*$/\1/'`
+ pidfile=/var/run/autofs/`echo $mnt | sed 's,/,_,g'`.pid
+
+ start-stop-daemon --start --pidfile $pidfile --quiet \
+ --exec $DAEMON -- --pid-file=$pidfile $rest
+
+ ret=$?
+
+ if [ $ret -ne 0 ]
+ then
+ echo
+ echo " failed to start automount point $mnt"
+ fi
+ done
+
+ echo " done."
+ ;;
+stop)
+ echo -n 'Stopping automounter:'
+
+ umount_loopback
+
+ any=0
+ for file in `ls /var/run/autofs/*.pid 2>/dev/null`
+ do
+ if [ -e "$file" ]
+ then
+ any=1
+ pid=`head -n 1 $file`
+ mnt=`ps -wwo 'cmd=' $pid | sed -e \
+ 's,.* --pid-file=/var/run/autofs/\([^ ]*\)\.pid.*,\1,; s,_,/,g'`
+ dname=`basename $DAEMON`
+
+ start-stop-daemon --stop --quiet --pidfile $file --name $dname
+
+ ret=$?
+ case $ret in
+ 0)
+# echo -n " $mnt"
+ rm -f $file
+ ;;
+ 1)
+ echo -n -e "\n No process for automount $mnt"
+ rm -f $file
+ ;;
+ 2)
+ echo -n -e "\n Couldn't stop automount for $mnt"
+ ;;
+ *)
+ echo -n -e \
+ "\n Strange start-stop-daemon exit status: $ret"
+ ;;
+ esac
+ fi
+ done
+
+ echo " done."
+ ;;
+reload)
+ echo "Reloading automounter: checking for changes ... "
+
+ TMP1=`mktemp autofs.XXXXXX`
+ TMP2=`mktemp autofs.XXXXXX`
+
+ getmounts >$TMP1
+
+ for i in `ls /var/run/autofs/*.pid 2>/dev/null`
+ do
+ pid=`head -n 1 $i 2>/dev/null`
+ [ "$pid" = "" ] && continue
+
+ cmd=`get_command_from_pid $pid`
+ echo $cmd >>$TMP2
+
+ mnt=`ps -wwo 'cmd=' $pid | sed -e \
+ 's,.* --pid-file=/var/run/autofs/\([^ ]*\)\.pid.*,\1,; s,_,/,g'`
+
+ if ! grep -q "$cmd" $TMP1; then
+ echo "Stopping automounter for: $mnt"
+ kill -USR2 $pid 2> /dev/null
+ else
+ echo "Reloading automounter map for: $mnt"
+ kill -HUP $pid 2> /dev/null
+ fi
+ done
+
+ cat $TMP1 | (while read x; do
+ if ! grep -q "^$x" $TMP2; then
+ echo $x | while read cmd rest; do
+
+ mnt=`echo $rest | sed 's/^.* \(\/[^ ]*\) [A-Za-z].*$/\1/'`
+ pidfile=/var/run/autofs/`echo $mnt | sed 's,/,_,g'`.pid
+
+ start-stop-daemon --start --pidfile $pidfile --quiet \
+ --exec $DAEMON -- --pid-file=$pidfile $rest
+
+ ret=$?
+
+ if [ $ret -ne 0 ]
+ then
+ echo
+ echo " failed to start automount point $mnt"
+ else
+ echo "Started automounter: $mnt"
+ fi
+ done
+ fi
+ done)
+
+ rm -f $TMP1 $TMP2
+ ;;
+force-reload|restart)
+ stop
+ start
+ ;;
+status)
+ status
+ ;;
+getmounts)
+ getmounts
+ ;;
+active)
+ alive
+ ;;
+*)
+ echo "Usage: $initdir/autofs {start|stop|restart|reload|status|getmounts|active}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
+
--- /dev/null
+Index: autofs-4.1.4/samples/Makefile
+===================================================================
+--- autofs-4.1.4.orig/samples/Makefile 2008-05-21 22:59:29.000000000 +0200
++++ autofs-4.1.4/samples/Makefile 2008-05-21 23:00:04.000000000 +0200
+@@ -34,6 +34,8 @@
+ install -c -m 755 auto.net $(INSTALLROOT)/etc
+ -mv -f $(INSTALLROOT)/etc/auto.smb $(INSTALLROOT)/etc/auto.smb.old
+ install -c -m 755 auto.smb $(INSTALLROOT)/etc
++ -mv -f $(INSTALLROOT)/etc/auto.hotplug $(INSTALLROOT)/etc/auto.hotplug.old
++ install -c -m 755 auto.hotplug $(INSTALLROOT)/etc
+ install -d -m 755 $(INSTALLROOT)$(initdir)
+ install -c -m 755 rc.autofs $(INSTALLROOT)$(initdir)/autofs
+ install -d -m 755 $(INSTALLROOT)$(autofslibdir)
+Index: autofs-4.1.4/samples/auto.hotplug
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ autofs-4.1.4/samples/auto.hotplug 2008-05-21 22:59:47.000000000 +0200
+@@ -0,0 +1 @@
++* -fstype=auto,ro :/dev/&
--- /dev/null
+rootfs / auto defaults 1 1
+proc /proc proc defaults 0 0
+devpts /dev/pts devpts mode=0620,gid=5 0 0
+usbdevfs /proc/bus/usb usbfs defaults 0 0
+/dev/mtdblock/2 /boot jffs2 ro 0 0
+tmpfs /var tmpfs defaults 0 0
+tmpfs /tmp tmpfs defaults 0 0
--- /dev/null
+rootfs / auto defaults 1 1
+proc /proc proc defaults 0 0
+devpts /dev/pts devpts mode=0620,gid=5 0 0
+usbdevfs /proc/bus/usb usbfs defaults 0 0
+/dev/mtdblock/2 /boot jffs2 ro 0 0
+tmpfs /var tmpfs defaults 0 0
+tmpfs /tmp tmpfs defaults 0 0
+/dev/discs/disc0/part1 /media/hdd auto defaults 0 0
--- /dev/null
+rootfs / auto defaults 1 1
+proc /proc proc defaults 0 0
+devpts /dev/pts devpts mode=0620,gid=5 0 0
+usbdevfs /proc/bus/usb usbfs defaults 0 0
+/dev/mtdblock/2 /boot jffs2 ro 0 0
+tmpfs /var tmpfs defaults 0 0
+tmpfs /tmp tmpfs defaults 0 0
+/dev/ide/host0/bus0/target0/lun0/part1 /media/hdd auto defaults 0 0
+/dev/ide/host1/bus0/target0/lun0/part1 /media/cf auto defaults 0 0
--- /dev/null
+#!/bin/sh
+#
+# Devfs handling script. Since we arent running devfsd due to various reasons
+# which I will not lay out here, we need to create some links for compatibility.
+
+. /etc/default/rcS
+
+# exit without doing anything if udev is active
+if test -x /bin/pidof -a "`pidof udevd`" != ""; then
+ exit 0
+fi
+
+if test -e /dev/.devfsd
+then
+ if test "$VERBOSE" != "no"; then echo -n "Setting up device links for devfs: "; fi
+ ln -s /dev/touchscreen/0 /dev/ts
+ ln -s /dev/touchscreen/0raw /dev/tsraw
+ ln -s /dev/vc/0 /dev/tty0
+ ln -s /dev/vc/1 /dev/tty1
+ ln -s /dev/vc/2 /dev/tty2
+ ln -s /dev/vc/3 /dev/tty3
+ ln -s /dev/vc/4 /dev/tty4
+ ln -s /dev/vc/5 /dev/tty5
+ ln -s /dev/fb/0 /dev/fb0
+# ln -s /dev/tts/0 /dev/ttySA0
+# ln -s /dev/tts/1 /dev/ttySA1
+# ln -s /dev/tts/2 /dev/ttySA2
+
+ ln -s /dev/sound/dsp /dev/dsp
+ ln -s /dev/sound/mixer /dev/mixer
+
+ ## need this so that ppp will autoload the ppp modules
+# mknod /dev/ppp c 108 0
+ if test "$VERBOSE" != "no"; then echo "done"; fi
+else
+ if test "$VERBOSE" != "no"; then echo -n "Mounting /dev ramdisk: "; fi
+ mount -t ramfs ramfs /dev || mount -t tmpfs ramfs /dev
+ if test $? -ne 0; then
+ if test "$VERBOSE" != "no"; then echo "failed"; fi
+ else
+ if test "$VERBOSE" != "no"; then echo "done"; fi
+ fi
+ if test "$VERBOSE" != "no"; then echo -n "Populating /dev: "; fi
+ cd /
+ mkdir -p dev/input
+ mkdir -p dev/msys
+ mkdir -p dev/pts
+ mkdir -p dev/vc
+ for i in 0 1 2 3 4 5 6 7 8 9; do
+ ln -s /dev/tty$i /dev/vc/$i
+ done
+ ln -sf /proc/self/fd /dev/fd
+ ln -sf /proc/kcore /dev/core
+ /sbin/makedevs -r / -D /etc/device_table
+ if test $? -ne 0; then
+ if test "$VERBOSE" != "no"; then echo "failed"; fi
+ else
+ if test "$VERBOSE" != "no"; then echo "done"; fi
+ fi
+fi
+
+exit 0
--- /dev/null
+rootfs / auto defaults 1 1
+proc /proc proc defaults 0 0
+devpts /dev/pts devpts mode=0620,gid=5 0 0
+usbdevfs /proc/bus/usb usbfs defaults 0 0
+/dev/mtdblock/2 /boot jffs2 ro 0 0
+tmpfs /var tmpfs defaults 0 0
+tmpfs /tmp tmpfs defaults 0 0
+/dev/ide/host0/bus0/target0/lun0/part1 /media/hdd auto defaults 0 0
+/dev/ide/host1/bus0/target0/lun0/part1 /media/cf auto defaults 0 0
+/dev/ide/host1/bus0/target0/lun0/disc /media/cf auto defaults 0 0
+/dev/scsi/host0/bus0/target0/lun0/part1 /media/usb auto defaults 0 0
+/dev/scsi/host0/bus0/target0/lun0/disc /media/usb auto defaults 0 0
--- /dev/null
+rootfs / auto defaults 1 1
+proc /proc proc defaults 0 0
+devpts /dev/pts devpts mode=0620,gid=5 0 0
+usbdevfs /proc/bus/usb usbfs defaults 0 0
+/dev/mtdblock/2 /boot jffs2 ro 0 0
+tmpfs /var tmpfs defaults 0 0
+tmpfs /tmp tmpfs defaults 0 0
+/dev/discs/disc0/part1 /media/hdd auto defaults 0 0
--- /dev/null
+rootfs / auto defaults 1 1
+proc /proc proc defaults 0 0
+devpts /dev/pts devpts mode=0620,gid=5 0 0
+usbdevfs /proc/bus/usb usbfs defaults 0 0
+/dev/mtdblock/2 /boot jffs2 ro 0 0
+tmpfs /var tmpfs defaults 0 0
+tmpfs /tmp tmpfs defaults 0 0
+/dev/discs/disc0/part1 /media/hdd auto defaults 0 0
--- /dev/null
+# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
+# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
+
+PATH="/usr/local/bin:/usr/bin:/bin"
+EDITOR="/bin/vi" # needed for packages like cron
+TERM="xterm" # Basic terminal capab. For screen etc.
+
+if [ "`id -u`" -eq 0 ]; then
+ PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin:
+fi
+if [ "$PS1" ]; then
+# works for bash and ash (no other shells known to be in use here)
+ PS1='\u@\h:\w\$ '
+fi
+
+if [ -d /etc/profile.d ]; then
+ for i in `ls /etc/profile.d/`; do
+ . /etc/profile.d/$i
+ done
+ unset i
+fi
+
+export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM
+
+umask 022
+
--- /dev/null
+diff -auNr busybox-1.11.3/console-tools/Config.in busybox-1.11.3_getkey/console-tools/Config.in
+--- busybox-1.11.3/console-tools/Config.in 2008-06-25 14:51:18.000000000 +0200
++++ busybox-1.11.3_getkey/console-tools/Config.in 2008-12-05 19:13:40.000000000 +0100
+@@ -37,6 +37,14 @@
+ help
+ This program reports and sets keyboard mode.
+
++config GETKEY
++ bool "getkey"
++ default n
++ help
++ This program displays a configurable message and waits
++ a dedicated number of seconds for a keypress. It sets
++ the exit code accordingly, i.e. SUCCESS if there was a keypress.
++
+ config LOADFONT
+ bool "loadfont"
+ default n
+diff -auNr busybox-1.11.3/console-tools/Kbuild busybox-1.11.3_getkey/console-tools/Kbuild
+--- busybox-1.11.3/console-tools/Kbuild 2008-06-25 14:51:18.000000000 +0200
++++ busybox-1.11.3_getkey/console-tools/Kbuild 2008-12-05 19:12:35.000000000 +0100
+@@ -18,3 +18,4 @@
+ lib-$(CONFIG_RESIZE) += resize.o
+ lib-$(CONFIG_SETKEYCODES) += setkeycodes.o
+ lib-$(CONFIG_SETLOGCONS) += setlogcons.o
++lib-$(CONFIG_GETKEY) += getkey.o
+diff -auNr busybox-1.11.3/console-tools/getkey.c busybox-1.11.3_getkey/console-tools/getkey.c
+--- busybox-1.11.3/console-tools/getkey.c 1970-01-01 01:00:00.000000000 +0100
++++ busybox-1.11.3_getkey/console-tools/getkey.c 2008-12-05 19:11:01.000000000 +0100
+@@ -0,0 +1,94 @@
++/* vi: set sw=4 ts=4: */
++/*
++ * getkey.c - Michael 'Mickey' Lauer
++ *
++ * Version 0.1
++ *
++ * A simple keygrapper. Displays a configurable message and waits a dedicated number
++ * of seconds for a keypress. Sets the exit code accordingly (SUCCESS on keypress).
++ */
++#include <stdio.h>
++#include <fcntl.h>
++#include <memory.h>
++#include <stdlib.h>
++#include <unistd.h>
++#include <sys/types.h>
++#include <errno.h>
++#include <sys/ioctl.h>
++#include <sys/kd.h>
++#include "busybox.h"
++
++extern int getkey_main(int argc, char **argv)
++{
++ int status = EXIT_FAILURE;
++
++ if ( argc < 2 )
++ {
++ bb_show_usage();
++ }
++
++ /*
++ * If no terminal is attached it is quite useless
++ * to treat it like one.
++ */
++ if( !isatty(STDIN_FILENO) )
++ {
++ goto error_hard;
++ }
++
++ //bb_printf( "DEBUG: time = '%s'\n", argv[1] );
++ //bb_printf( "DEBUG: mesg = '%s'\n", argv[2] );
++
++ struct termios orig;
++ struct termios attr;
++
++ if ( tcgetattr(STDIN_FILENO, &orig) == -1 )
++ {
++ goto error_hard;
++ }
++
++ attr = orig;
++ attr.c_cc[VMIN] = 0;
++ attr.c_cc[VTIME] = 0;
++ attr.c_iflag |= INLCR;
++ attr.c_oflag |= OPOST|ONLCR;
++ attr.c_cflag &= ~PARENB;
++ attr.c_lflag &= ~(ICANON/*|ECHO*/);
++ if ( tcsetattr(STDIN_FILENO,TCSANOW,&attr) == -1 )
++ {
++ goto error_hard;
++ }
++
++ fd_set rfds;
++ struct timeval tv;
++ int retval;
++
++ FD_ZERO(&rfds);
++ FD_SET(0, &rfds);
++
++ tv.tv_sec = atoi( argv[1] );
++ tv.tv_usec = 0;
++
++ if ( argc == 3 )
++ {
++ bb_printf( argv[2], tv.tv_sec );
++ bb_printf( "\n" );
++ fflush(stdout);
++ }
++ retval = select(1, &rfds, NULL, NULL, &tv);
++ if (retval > 0)
++ {
++ status = EXIT_SUCCESS;
++ }
++
++ if (tcsetattr(STDIN_FILENO,TCSANOW,&orig) == -1 )
++ {
++ goto error_hard;
++ }
++
++ return status;
++
++error_hard :
++ return EXIT_FAILURE;
++};
++
+diff -auNr busybox-1.11.3/include/applets.h busybox-1.11.3_getkey/include/applets.h
+--- busybox-1.11.3/include/applets.h 2008-06-25 14:51:29.000000000 +0200
++++ busybox-1.11.3_getkey/include/applets.h 2008-12-05 19:16:30.000000000 +0100
+@@ -163,6 +163,7 @@
+ USE_FTPPUT(APPLET_ODDNAME(ftpput, ftpgetput, _BB_DIR_USR_BIN, _BB_SUID_NEVER, ftpput))
+ USE_FUSER(APPLET(fuser, _BB_DIR_USR_BIN, _BB_SUID_NEVER))
+ USE_GETENFORCE(APPLET(getenforce, _BB_DIR_USR_SBIN, _BB_SUID_NEVER))
++USE_GETKEY(APPLET(getkey, _BB_DIR_SBIN, _BB_SUID_NEVER))
+ USE_GETOPT(APPLET(getopt, _BB_DIR_BIN, _BB_SUID_NEVER))
+ USE_GETSEBOOL(APPLET(getsebool, _BB_DIR_USR_SBIN, _BB_SUID_NEVER))
+ USE_GETTY(APPLET(getty, _BB_DIR_SBIN, _BB_SUID_NEVER))
+diff -auNr busybox-1.11.3/include/usage.h busybox-1.11.3_getkey/include/usage.h
+--- busybox-1.11.3/include/usage.h 2008-09-28 20:04:12.000000000 +0200
++++ busybox-1.11.3_getkey/include/usage.h 2008-12-05 19:11:48.000000000 +0100
+@@ -1262,6 +1262,13 @@
+ "\n -P Port number" \
+ )
+
++#define getkey_trivial_usage \
++ "time [message]"
++#define getkey_full_usage \
++ "Display a message and wait for a keypress."
++#define getkey_example_usage \
++ "$ getkey 5 'Press a key within %d seconds to interrupt autoboot.'"
++
+ #define fuser_trivial_usage \
+ "[options] FILE or PORT/PROTO"
+ #define fuser_full_usage "\n\n" \
--- /dev/null
+diff -Naur busybox-1.11.3/networking/udhcp/dhcpc.c busybox-1.11.3_dhcp-hostname/networking/udhcp/dhcpc.c
+--- busybox-1.11.3/networking/udhcp/dhcpc.c 2008-06-25 14:51:14.000000000 +0200
++++ busybox-1.11.3_dhcp-hostname/networking/udhcp/dhcpc.c 2008-12-05 11:41:36.000000000 +0100
+@@ -145,6 +145,7 @@
+ struct timeval tv;
+ struct dhcpMessage packet;
+ fd_set rfds;
++ char hostbuf[256]; /* SUSv2: hostnames are <= 255 bytes */
+
+ #if ENABLE_GETOPT_LONG
+ static const char udhcpc_longopts[] ALIGN1 =
+@@ -210,6 +211,13 @@
+ USE_FEATURE_UDHCP_PORT(CLIENT_PORT = 68;)
+ client_config.interface = "eth0";
+ client_config.script = DEFAULT_SCRIPT;
++ if (gethostname (hostbuf, sizeof (hostbuf)) == 0) {
++ int len = strlen (hostbuf);
++ client_config.hostname = xmalloc (len + 2);
++ client_config.hostname[OPT_CODE] = DHCP_HOST_NAME;
++ client_config.hostname[OPT_LEN] = len;
++ strncpy(client_config.hostname + 2, hostbuf, len);
++ }
+
+ /* Parse command line */
+ /* Cc: mutually exclusive; O: list; -T,-t,-A take numeric param */
--- /dev/null
+diff -Naur busybox-1.11.3/miscutils/hdparm.c busybox-1.11.3-hdparm_M/miscutils/hdparm.c
+--- busybox-1.11.3/miscutils/hdparm.c 2008-06-25 14:51:29.000000000 +0200
++++ busybox-1.11.3-hdparm_M/miscutils/hdparm.c 2008-12-05 11:04:15.000000000 +0100
+@@ -283,6 +283,7 @@
+ smallint set_sleepnow, get_sleepnow;
+ smallint get_powermode;
+ smallint set_apmmode, get_apmmode;
++ smallint set_acoustic, get_acoustic;
+ int xfermode_requested;
+ unsigned long dkeep;
+ unsigned long standby_requested; /* 0..255 */
+@@ -292,6 +293,7 @@
+ unsigned long wcache;
+ unsigned long doorlock;
+ unsigned long apmmode;
++ unsigned long acoustic;
+ #endif
+ USE_FEATURE_HDPARM_GET_IDENTITY( smallint get_IDentity;)
+ USE_FEATURE_HDPARM_HDIO_TRISTATE_HWIF( smallint set_busstate, get_busstate;)
+@@ -376,6 +378,8 @@
+ #define get_powermode (G.get_powermode )
+ #define set_apmmode (G.set_apmmode )
+ #define get_apmmode (G.get_apmmode )
++#define set_acoustic (G.set_acoustic )
++#define get_acoustic (G.get_acoustic )
+ #define xfermode_requested (G.xfermode_requested )
+ #define dkeep (G.dkeep )
+ #define standby_requested (G.standby_requested )
+@@ -385,6 +389,7 @@
+ #define wcache (G.wcache )
+ #define doorlock (G.doorlock )
+ #define apmmode (G.apmmode )
++#define acoustic (G.acoustic )
+ #define get_IDentity (G.get_IDentity )
+ #define set_busstate (G.set_busstate )
+ #define get_busstate (G.get_busstate )
+@@ -1660,6 +1665,17 @@
+ ioctl_or_warn(fd, HDIO_DRIVE_CMD, &args);
+ args[1] = 0;
+ }
++ if (set_acoustic)
++ {
++ if (get_acoustic)
++ printf(" setting AAM level to 0x%02lX (%ld)\n", acoustic, acoustic);
++ ioctl_or_warn(fd, HDIO_SET_ACOUSTIC, (int*)acoustic);
++ }
++ if (get_acoustic)
++ {
++ ioctl_or_warn(fd, HDIO_GET_ACOUSTIC, (unsigned long*)&parm);
++ printf(" acoustic = %2ld (128=quiet ... 254=fast)\n", parm);
++ }
+ if (set_wcache) {
+ #ifdef DO_FLUSHCACHE
+ #ifndef WIN_FLUSHCACHE
+@@ -1963,7 +1979,7 @@
+ USE_FEATURE_HDPARM_GET_IDENTITY("iI")
+ USE_FEATURE_HDPARM_HDIO_GETSET_DMA("d::")
+ #ifdef HDIO_DRIVE_CMD
+- "S:D:P:X:K:A:L:W:CyYzZ"
++ "S:D:P:X:K:A:L:W:CyYzZM:"
+ #endif
+ USE_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF("U:")
+ #ifdef HDIO_GET_QDMA
+@@ -2000,6 +2016,7 @@
+ if (c == 'c') parse_opts(&get_io32bit, &set_io32bit, &io32bit, 0, INT_MAX /*8*/);
+ if (c == 'k') parse_opts(&get_keep, &set_keep, &keep, 0, 1);
+ if (c == 'a') parse_opts(&get_readahead, &set_readahead, &Xreadahead, 0, INT_MAX);
++ if (c == 'M') parse_opts(&get_acoustic, &set_acoustic, &acoustic, 1, 254);
+ if (c == 'B') parse_opts(&get_apmmode, &set_apmmode, &apmmode, 1, 255);
+ do_flush |= do_timings |= (c == 't');
+ do_flush |= do_ctimings |= (c == 'T');
--- /dev/null
+diff -Naur busybox-1.11.3/console-tools/dumpkmap.c busybox-1.11.3_keymap-endianess/console-tools/dumpkmap.c
+--- busybox-1.11.3/console-tools/dumpkmap.c 2008-06-25 14:51:18.000000000 +0200
++++ busybox-1.11.3_keymap-endianess/console-tools/dumpkmap.c 2008-12-05 11:36:21.000000000 +0100
+@@ -10,6 +10,7 @@
+ /* no options, no getopt */
+
+ #include "libbb.h"
++#include <endian.h>
+
+ /* From <linux/kd.h> */
+ struct kbentry {
+@@ -56,6 +57,9 @@
+ (char *)&ke.kb_table,
+ &ke.kb_value)
+ ) {
++#if __BYTE_ORDER == __LITTLE_ENDIAN
++ ke.kb_value = ((ke.kb_value&0xFF) << 8) | ((ke.kb_value&0xFF00) >> 8);
++#endif
+ write(STDOUT_FILENO, (void*)&ke.kb_value, 2);
+ }
+ }
+diff -Naur busybox-1.11.3/console-tools/loadkmap.c busybox-1.11.3_keymap-endianess/console-tools/loadkmap.c
+--- busybox-1.11.3/console-tools/loadkmap.c 2008-06-25 14:51:18.000000000 +0200
++++ busybox-1.11.3_keymap-endianess/console-tools/loadkmap.c 2008-12-05 11:36:53.000000000 +0100
+@@ -9,6 +9,7 @@
+ */
+
+ #include "libbb.h"
++#include <endian.h>
+
+ #define BINARY_KEYMAP_MAGIC "bkeymap"
+
+@@ -49,6 +50,9 @@
+ for (j = 0; j < NR_KEYS; j++) {
+ ke.kb_index = j;
+ ke.kb_table = i;
++#if __BYTE_ORDER == __LITTLE_ENDIAN
++ ibuff[j] = ((ibuff[j]&0xFF) << 8) | ((ibuff[j]&0xFF00) >> 8);
++#endif
+ ke.kb_value = ibuff[j];
+ ioctl(fd, KDSKBENT, &ke);
+ }
--- /dev/null
+diff -auNr busybox-1.11.3/libbb/procps.c busybox-1.11.3-nptl/libbb/procps.c
+--- busybox-1.11.3/libbb/procps.c 2008-09-28 20:04:12.000000000 +0200
++++ busybox-1.11.3-nptl/libbb/procps.c 2008-12-28 15:33:09.000000000 +0100
+@@ -166,236 +166,268 @@
+ procps_status_t *procps_scan(procps_status_t* sp, int flags)
+ {
+ struct dirent *entry;
++ static DIR *taskdir;
+ char buf[PROCPS_BUFSIZE];
+ char filename[sizeof("/proc//cmdline") + sizeof(int)*3];
+ char *filename_tail;
+ long tasknice;
+ unsigned pid;
++ static unsigned parentpid;
+ int n;
+ struct stat sb;
+
+ if (!sp)
+ sp = alloc_procps_scan();
+
+- for (;;) {
+- entry = readdir(sp->dir);
+- if (entry == NULL) {
+- free_procps_scan(sp);
+- return NULL;
+- }
+- pid = bb_strtou(entry->d_name, NULL, 10);
+- if (errno)
+- continue;
+-
+- /* After this point we have to break, not continue
+- * ("continue" would mean that current /proc/NNN
+- * is not a valid process info) */
++ if(taskdir){
++ for(;;) {
++ entry = readdir(taskdir);
++ if(entry == NULL) {
++ closedir(taskdir);
++ taskdir = 0;
++ break;
++ }
++ pid = bb_strtou(entry->d_name, NULL, 10);
++ if (errno)
++ continue;
++
++ /* After this point we have to break, not continue
++ * ("continue" would mean that current /proc/NNN
++ * is not a valid process info) */
+
+- memset(&sp->vsz, 0, sizeof(*sp) - offsetof(procps_status_t, vsz));
++ memset(&sp->vsz, 0, sizeof(*sp) - offsetof(procps_status_t, vsz));
+
+- sp->pid = pid;
+- if (!(flags & ~PSSCAN_PID)) break;
++ sp->pid = pid;
++ if (!(flags & ~PSSCAN_PID)) break;
+
+ #if ENABLE_SELINUX
+- if (flags & PSSCAN_CONTEXT) {
+- if (getpidcon(sp->pid, &sp->context) < 0)
+- sp->context = NULL;
+- }
++ if (flags & PSSCAN_CONTEXT) {
++ if (getpidcon(sp->pid, &sp->context) < 0)
++ sp->context = NULL;
++ }
+ #endif
+
+- filename_tail = filename + sprintf(filename, "/proc/%d", pid);
++ filename_tail = filename + sprintf(filename, "/proc/%d/task/%d", parentpid, pid);
+
+- if (flags & PSSCAN_UIDGID) {
+- if (stat(filename, &sb))
+- break;
+- /* Need comment - is this effective or real UID/GID? */
+- sp->uid = sb.st_uid;
+- sp->gid = sb.st_gid;
+- }
++ if (flags & PSSCAN_UIDGID) {
++ if (stat(filename, &sb))
++ break;
++ /* Need comment - is this effective or real UID/GID? */
++ sp->uid = sb.st_uid;
++ sp->gid = sb.st_gid;
++ }
+
+- if (flags & PSSCAN_STAT) {
+- char *cp, *comm1;
+- int tty;
++ if (flags & PSSCAN_STAT) {
++ char *cp, *comm1;
++ int tty;
+ #if !ENABLE_FEATURE_FAST_TOP
+- unsigned long vsz, rss;
++ unsigned long vsz, rss;
+ #endif
+
+- /* see proc(5) for some details on this */
+- strcpy(filename_tail, "/stat");
+- n = read_to_buf(filename, buf);
+- if (n < 0)
+- break;
+- cp = strrchr(buf, ')'); /* split into "PID (cmd" and "<rest>" */
+- /*if (!cp || cp[1] != ' ')
+- break;*/
+- cp[0] = '\0';
+- if (sizeof(sp->comm) < 16)
+- BUG_comm_size();
+- comm1 = strchr(buf, '(');
+- /*if (comm1)*/
+- safe_strncpy(sp->comm, comm1 + 1, sizeof(sp->comm));
++ /* see proc(5) for some details on this */
++ strcpy(filename_tail, "/stat");
++ n = read_to_buf(filename, buf);
++ if (n < 0)
++ break;
++ cp = strrchr(buf, ')'); /* split into "PID (cmd" and "<rest>" */
++ /*if (!cp || cp[1] != ' ')
++ break;*/
++ cp[0] = '\0';
++ if (sizeof(sp->comm) < 16)
++ BUG_comm_size();
++ comm1 = strchr(buf, '(');
++ /*if (comm1)*/
++ safe_strncpy(sp->comm, comm1 + 1, sizeof(sp->comm));
+
+ #if !ENABLE_FEATURE_FAST_TOP
+- n = sscanf(cp+2,
+- "%c %u " /* state, ppid */
+- "%u %u %d %*s " /* pgid, sid, tty, tpgid */
+- "%*s %*s %*s %*s %*s " /* flags, min_flt, cmin_flt, maj_flt, cmaj_flt */
+- "%lu %lu " /* utime, stime */
+- "%*s %*s %*s " /* cutime, cstime, priority */
+- "%ld " /* nice */
+- "%*s %*s " /* timeout, it_real_value */
+- "%lu " /* start_time */
+- "%lu " /* vsize */
+- "%lu " /* rss */
+- /* "%lu %lu %lu %lu %lu %lu " rss_rlim, start_code, end_code, start_stack, kstk_esp, kstk_eip */
+- /* "%u %u %u %u " signal, blocked, sigignore, sigcatch */
+- /* "%lu %lu %lu" wchan, nswap, cnswap */
+- ,
+- sp->state, &sp->ppid,
+- &sp->pgid, &sp->sid, &tty,
+- &sp->utime, &sp->stime,
+- &tasknice,
+- &sp->start_time,
+- &vsz,
+- &rss);
+- if (n != 11)
+- break;
+- /* vsz is in bytes and we want kb */
+- sp->vsz = vsz >> 10;
+- /* vsz is in bytes but rss is in *PAGES*! Can you believe that? */
+- sp->rss = rss << sp->shift_pages_to_kb;
+- sp->tty_major = (tty >> 8) & 0xfff;
+- sp->tty_minor = (tty & 0xff) | ((tty >> 12) & 0xfff00);
++ n = sscanf(cp+2,
++ "%c %u " /* state, ppid */
++ "%u %u %d %*s " /* pgid, sid, tty, tpgid */
++ "%*s %*s %*s %*s %*s " /* flags, min_flt, cmin_flt, maj_flt, cmaj_flt */
++ "%lu %lu " /* utime, stime */
++ "%*s %*s %*s " /* cutime, cstime, priority */
++ "%ld " /* nice */
++ "%*s %*s " /* timeout, it_real_value */
++ "%lu " /* start_time */
++ "%lu " /* vsize */
++ "%lu " /* rss */
++ /* "%lu %lu %lu %lu %lu %lu " rss_rlim, start_code, end_code, start_stack, kstk_esp, kstk_eip */
++ /* "%u %u %u %u " signal, blocked, sigignore, sigcatch */
++ /* "%lu %lu %lu" wchan, nswap, cnswap */
++ ,
++ sp->state, &sp->ppid,
++ &sp->pgid, &sp->sid, &tty,
++ &sp->utime, &sp->stime,
++ &tasknice,
++ &sp->start_time,
++ &vsz,
++ &rss);
++ if (n != 11)
++ break;
++ /* vsz is in bytes and we want kb */
++ sp->vsz = vsz >> 10;
++ /* vsz is in bytes but rss is in *PAGES*! Can you believe that? */
++ sp->rss = rss << sp->shift_pages_to_kb;
++ sp->tty_major = (tty >> 8) & 0xfff;
++ sp->tty_minor = (tty & 0xff) | ((tty >> 12) & 0xfff00);
+ #else
+ /* This costs ~100 bytes more but makes top faster by 20%
+ * If you run 10000 processes, this may be important for you */
+- sp->state[0] = cp[2];
+- cp += 4;
+- sp->ppid = fast_strtoul_10(&cp);
+- sp->pgid = fast_strtoul_10(&cp);
+- sp->sid = fast_strtoul_10(&cp);
+- tty = fast_strtoul_10(&cp);
+- sp->tty_major = (tty >> 8) & 0xfff;
+- sp->tty_minor = (tty & 0xff) | ((tty >> 12) & 0xfff00);
+- cp = skip_fields(cp, 6); /* tpgid, flags, min_flt, cmin_flt, maj_flt, cmaj_flt */
+- sp->utime = fast_strtoul_10(&cp);
+- sp->stime = fast_strtoul_10(&cp);
+- cp = skip_fields(cp, 3); /* cutime, cstime, priority */
+- tasknice = fast_strtoul_10(&cp);
+- cp = skip_fields(cp, 2); /* timeout, it_real_value */
+- sp->start_time = fast_strtoul_10(&cp);
+- /* vsz is in bytes and we want kb */
+- sp->vsz = fast_strtoul_10(&cp) >> 10;
+- /* vsz is in bytes but rss is in *PAGES*! Can you believe that? */
+- sp->rss = fast_strtoul_10(&cp) << sp->shift_pages_to_kb;
++ sp->state[0] = cp[2];
++ cp += 4;
++ sp->ppid = fast_strtoul_10(&cp);
++ sp->pgid = fast_strtoul_10(&cp);
++ sp->sid = fast_strtoul_10(&cp);
++ tty = fast_strtoul_10(&cp);
++ sp->tty_major = (tty >> 8) & 0xfff;
++ sp->tty_minor = (tty & 0xff) | ((tty >> 12) & 0xfff00);
++ cp = skip_fields(cp, 6); /* tpgid, flags, min_flt, cmin_flt, maj_flt, cmaj_flt */
++ sp->utime = fast_strtoul_10(&cp);
++ sp->stime = fast_strtoul_10(&cp);
++ cp = skip_fields(cp, 3); /* cutime, cstime, priority */
++ tasknice = fast_strtoul_10(&cp);
++ cp = skip_fields(cp, 2); /* timeout, it_real_value */
++ sp->start_time = fast_strtoul_10(&cp);
++ /* vsz is in bytes and we want kb */
++ sp->vsz = fast_strtoul_10(&cp) >> 10;
++ /* vsz is in bytes but rss is in *PAGES*! Can you believe that? */
++ sp->rss = fast_strtoul_10(&cp) << sp->shift_pages_to_kb;
+ #endif
+
+- if (sp->vsz == 0 && sp->state[0] != 'Z')
+- sp->state[1] = 'W';
+- else
+- sp->state[1] = ' ';
+- if (tasknice < 0)
+- sp->state[2] = '<';
+- else if (tasknice) /* > 0 */
+- sp->state[2] = 'N';
+- else
+- sp->state[2] = ' ';
++ if (sp->vsz == 0 && sp->state[0] != 'Z')
++ sp->state[1] = 'W';
++ else
++ sp->state[1] = ' ';
++ if (tasknice < 0)
++ sp->state[2] = '<';
++ else if (tasknice) /* > 0 */
++ sp->state[2] = 'N';
++ else
++ sp->state[2] = ' ';
+
+- }
++ }
+
+ #if ENABLE_FEATURE_TOPMEM
+- if (flags & (PSSCAN_SMAPS)) {
+- FILE *file;
++ if (flags & (PSSCAN_SMAPS)) {
++ FILE *file;
+
+- strcpy(filename_tail, "/smaps");
+- file = fopen(filename, "r");
+- if (!file)
+- break;
+- while (fgets(buf, sizeof(buf), file)) {
+- unsigned long sz;
+- char *tp;
+- char w;
++ strcpy(filename_tail, "/smaps");
++ file = fopen(filename, "r");
++ if (!file)
++ break;
++ while (fgets(buf, sizeof(buf), file)) {
++ unsigned long sz;
++ char *tp;
++ char w;
+ #define SCAN(str, name) \
+ if (strncmp(buf, str, sizeof(str)-1) == 0) { \
+ tp = skip_whitespace(buf + sizeof(str)-1); \
+ sp->name += fast_strtoul_10(&tp); \
+ continue; \
+ }
+- SCAN("Shared_Clean:" , shared_clean );
+- SCAN("Shared_Dirty:" , shared_dirty );
+- SCAN("Private_Clean:", private_clean);
+- SCAN("Private_Dirty:", private_dirty);
++ SCAN("Shared_Clean:" , shared_clean );
++ SCAN("Shared_Dirty:" , shared_dirty );
++ SCAN("Private_Clean:", private_clean);
++ SCAN("Private_Dirty:", private_dirty);
+ #undef SCAN
+- // f7d29000-f7d39000 rw-s ADR M:m OFS FILE
+- tp = strchr(buf, '-');
+- if (tp) {
+- *tp = ' ';
+- tp = buf;
+- sz = fast_strtoul_16(&tp); /* start */
+- sz = (fast_strtoul_16(&tp) - sz) >> 10; /* end - start */
+- // tp -> "rw-s" string
+- w = tp[1];
+- // skipping "rw-s ADR M:m OFS "
+- tp = skip_whitespace(skip_fields(tp, 4));
+- // filter out /dev/something (something != zero)
+- if (strncmp(tp, "/dev/", 5) != 0 || strcmp(tp, "/dev/zero\n") == 0) {
+- if (w == 'w') {
+- sp->mapped_rw += sz;
+- } else if (w == '-') {
+- sp->mapped_ro += sz;
++ // f7d29000-f7d39000 rw-s ADR M:m OFS FILE
++ tp = strchr(buf, '-');
++ if (tp) {
++ *tp = ' ';
++ tp = buf;
++ sz = fast_strtoul_16(&tp); /* start */
++ sz = (fast_strtoul_16(&tp) - sz) >> 10; /* end - start */
++ // tp -> "rw-s" string
++ w = tp[1];
++ // skipping "rw-s ADR M:m OFS "
++ tp = skip_whitespace(skip_fields(tp, 4));
++ // filter out /dev/something (something != zero)
++ if (strncmp(tp, "/dev/", 5) != 0 || strcmp(tp, "/dev/zero\n") == 0) {
++ if (w == 'w') {
++ sp->mapped_rw += sz;
++ } else if (w == '-') {
++ sp->mapped_ro += sz;
++ }
+ }
+- }
+ //else printf("DROPPING %s (%s)\n", buf, tp);
+- if (strcmp(tp, "[stack]\n") == 0)
+- sp->stack += sz;
++ if (strcmp(tp, "[stack]\n") == 0)
++ sp->stack += sz;
++ }
+ }
++ fclose(file);
+ }
+- fclose(file);
+- }
+ #endif /* TOPMEM */
+
+ #if 0 /* PSSCAN_CMD is not used */
+- if (flags & (PSSCAN_CMD|PSSCAN_ARGV0)) {
+- free(sp->argv0);
+- sp->argv0 = NULL;
+- free(sp->cmd);
+- sp->cmd = NULL;
+- strcpy(filename_tail, "/cmdline");
+- /* TODO: to get rid of size limits, read into malloc buf,
+- * then realloc it down to real size. */
+- n = read_to_buf(filename, buf);
+- if (n <= 0)
+- break;
+- if (flags & PSSCAN_ARGV0)
+- sp->argv0 = xstrdup(buf);
+- if (flags & PSSCAN_CMD) {
+- do {
+- n--;
+- if ((unsigned char)(buf[n]) < ' ')
+- buf[n] = ' ';
+- } while (n);
+- sp->cmd = xstrdup(buf);
++ if (flags & (PSSCAN_CMD|PSSCAN_ARGV0)) {
++ free(sp->argv0);
++ sp->argv0 = NULL;
++ free(sp->cmd);
++ sp->cmd = NULL;
++ strcpy(filename_tail, "/cmdline");
++ /* TODO: to get rid of size limits, read into malloc buf,
++ * then realloc it down to real size. */
++ n = read_to_buf(filename, buf);
++ if (n <= 0)
++ break;
++ if (flags & PSSCAN_ARGV0)
++ sp->argv0 = xstrdup(buf);
++ if (flags & PSSCAN_CMD) {
++ do {
++ n--;
++ if ((unsigned char)(buf[n]) < ' ')
++ buf[n] = ' ';
++ } while (n);
++ sp->cmd = xstrdup(buf);
++ }
+ }
+- }
+ #else
+- if (flags & (PSSCAN_ARGV0|PSSCAN_ARGVN)) {
+- free(sp->argv0);
+- sp->argv0 = NULL;
+- strcpy(filename_tail, "/cmdline");
+- n = read_to_buf(filename, buf);
+- if (n <= 0)
+- break;
+- if (flags & PSSCAN_ARGVN) {
+- sp->argv_len = n;
+- sp->argv0 = xmalloc(n + 1);
+- memcpy(sp->argv0, buf, n + 1);
+- /* sp->argv0[n] = '\0'; - buf has it */
+- } else {
+- sp->argv_len = 0;
+- sp->argv0 = xstrdup(buf);
++ if (flags & (PSSCAN_ARGV0|PSSCAN_ARGVN)) {
++ free(sp->argv0);
++ sp->argv0 = NULL;
++ strcpy(filename_tail, "/cmdline");
++ n = read_to_buf(filename, buf);
++ if (n <= 0)
++ break;
++ if (flags & PSSCAN_ARGVN) {
++ sp->argv_len = n;
++ sp->argv0 = xmalloc(n + 1);
++ memcpy(sp->argv0, buf, n + 1);
++ /* sp->argv0[n] = '\0'; - buf has it */
++ } else {
++ sp->argv_len = 0;
++ sp->argv0 = xstrdup(buf);
++ }
+ }
+- }
+ #endif
++ break;
++ }
++ if(taskdir)
++ return sp;
++ }
++
++ for (;;) {
++ entry = readdir(sp->dir);
++ if (entry == NULL) {
++ free_procps_scan(sp);
++ return NULL;
++ }
++ pid = bb_strtou(entry->d_name, NULL, 10);
++ if (errno)
++ continue;
++
++ filename_tail = filename + sprintf(filename, "/proc/%d", pid);
++
++ if (!taskdir) {
++ strcpy(filename_tail, "/task");
++ taskdir = xopendir(filename);
++ if(!taskdir)
++ // ignore processes without taskdir
++ continue;
++ parentpid = pid;
++ return procps_scan(sp, flags);
++ }
++
+ break;
+ }
+ return sp;
--- /dev/null
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.11.1
+# Thu Sep 25 23:43:31 2008
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+# CONFIG_DESKTOP is not set
+# CONFIG_FEATURE_ASSUME_UNICODE is not set
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_SHOW_USAGE=y
+CONFIG_FEATURE_VERBOSE_USAGE=y
+CONFIG_FEATURE_COMPRESS_USAGE=y
+# CONFIG_FEATURE_INSTALLER is not set
+# CONFIG_LOCALE_SUPPORT is not set
+CONFIG_GETOPT_LONG=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+# CONFIG_FEATURE_PIDFILE is not set
+CONFIG_FEATURE_SUID=y
+# CONFIG_FEATURE_SUID_CONFIG is not set
+# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
+# CONFIG_SELINUX is not set
+# CONFIG_FEATURE_PREFER_APPLETS is not set
+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
+CONFIG_FEATURE_SYSLOG=y
+# CONFIG_FEATURE_HAVE_RPC is not set
+
+#
+# Build Options
+#
+# CONFIG_STATIC is not set
+# CONFIG_PIE is not set
+# CONFIG_NOMMU is not set
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_INDIVIDUAL is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+CONFIG_LFS=y
+CONFIG_CROSS_COMPILER_PREFIX=""
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_WERROR is not set
+CONFIG_NO_DEBUG_LIB=y
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+CONFIG_INCLUDE_SUSv2=y
+
+#
+# Installation Options
+#
+# CONFIG_INSTALL_NO_USR is not set
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
+# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
+# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
+CONFIG_PREFIX="./_install"
+
+#
+# Busybox Library Tuning
+#
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SIZE_VS_SPEED=2
+# CONFIG_FEATURE_FAST_TOP is not set
+# CONFIG_FEATURE_ETC_NETWORKS is not set
+CONFIG_FEATURE_EDITING=y
+CONFIG_FEATURE_EDITING_MAX_LEN=1024
+CONFIG_FEATURE_EDITING_VI=y
+CONFIG_FEATURE_EDITING_HISTORY=63
+CONFIG_FEATURE_EDITING_SAVEHISTORY=y
+CONFIG_FEATURE_TAB_COMPLETION=y
+# CONFIG_FEATURE_USERNAME_COMPLETION is not set
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
+CONFIG_FEATURE_COPYBUF_KB=64
+CONFIG_MONOTONIC_SYSCALL=y
+CONFIG_IOCTL_HEX2STR_ERROR=y
+# CONFIG_FEATURE_HWIB is not set
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+CONFIG_AR=y
+# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
+CONFIG_BUNZIP2=y
+CONFIG_BZIP2=y
+CONFIG_CPIO=y
+# CONFIG_FEATURE_CPIO_O is not set
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
+CONFIG_GUNZIP=y
+# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
+CONFIG_GZIP=y
+# CONFIG_RPM2CPIO is not set
+# CONFIG_RPM is not set
+# CONFIG_FEATURE_RPM_BZ2 is not set
+CONFIG_TAR=y
+CONFIG_FEATURE_TAR_CREATE=y
+CONFIG_FEATURE_TAR_GZIP=y
+CONFIG_FEATURE_TAR_BZIP2=y
+# CONFIG_FEATURE_TAR_LZMA is not set
+# CONFIG_FEATURE_TAR_COMPRESS is not set
+# CONFIG_FEATURE_TAR_AUTODETECT is not set
+CONFIG_FEATURE_TAR_FROM=y
+# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
+# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
+CONFIG_FEATURE_TAR_LONG_OPTIONS=y
+# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
+# CONFIG_UNCOMPRESS is not set
+# CONFIG_UNLZMA is not set
+# CONFIG_FEATURE_LZMA_FAST is not set
+CONFIG_UNZIP=y
+
+#
+# Common options for cpio and tar
+#
+# CONFIG_FEATURE_DEB_TAR_GZ is not set
+# CONFIG_FEATURE_DEB_TAR_BZ2 is not set
+# CONFIG_FEATURE_DEB_TAR_LZMA is not set
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+# CONFIG_CAL is not set
+CONFIG_CAT=y
+CONFIG_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+CONFIG_CHROOT=y
+# CONFIG_CKSUM is not set
+# CONFIG_COMM is not set
+CONFIG_CP=y
+CONFIG_CUT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+CONFIG_DD=y
+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
+CONFIG_FEATURE_DD_IBS_OBS=y
+CONFIG_DF=y
+# CONFIG_FEATURE_DF_INODE is not set
+CONFIG_DIRNAME=y
+CONFIG_DOS2UNIX=y
+CONFIG_UNIX2DOS=y
+CONFIG_DU=y
+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
+# CONFIG_EXPAND is not set
+# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set
+CONFIG_EXPR=y
+# CONFIG_EXPR_MATH_SUPPORT_64 is not set
+CONFIG_FALSE=y
+# CONFIG_FOLD is not set
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+# CONFIG_HOSTID is not set
+CONFIG_ID=y
+# CONFIG_INSTALL is not set
+# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
+# CONFIG_LENGTH is not set
+CONFIG_LN=y
+CONFIG_LOGNAME=y
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+CONFIG_FEATURE_LS_COLOR=y
+CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
+CONFIG_MD5SUM=y
+CONFIG_MKDIR=y
+# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set
+CONFIG_MKFIFO=y
+CONFIG_MKNOD=y
+CONFIG_MV=y
+# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
+CONFIG_NICE=y
+CONFIG_NOHUP=y
+CONFIG_OD=y
+# CONFIG_PRINTENV is not set
+CONFIG_PRINTF=y
+CONFIG_PWD=y
+CONFIG_READLINK=y
+# CONFIG_FEATURE_READLINK_FOLLOW is not set
+# CONFIG_REALPATH is not set
+CONFIG_RM=y
+CONFIG_RMDIR=y
+# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
+CONFIG_SEQ=y
+CONFIG_SHA1SUM=y
+CONFIG_SLEEP=y
+CONFIG_FEATURE_FANCY_SLEEP=y
+CONFIG_SORT=y
+CONFIG_FEATURE_SORT_BIG=y
+# CONFIG_SPLIT is not set
+# CONFIG_FEATURE_SPLIT_FANCY is not set
+# CONFIG_STAT is not set
+# CONFIG_FEATURE_STAT_FORMAT is not set
+CONFIG_STTY=y
+# CONFIG_SUM is not set
+CONFIG_SYNC=y
+# CONFIG_TAC is not set
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+CONFIG_TEE=y
+# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set
+CONFIG_TEST=y
+# CONFIG_FEATURE_TEST_64 is not set
+CONFIG_TOUCH=y
+CONFIG_TR=y
+# CONFIG_FEATURE_TR_CLASSES is not set
+# CONFIG_FEATURE_TR_EQUIV is not set
+CONFIG_TRUE=y
+CONFIG_TTY=y
+CONFIG_UNAME=y
+# CONFIG_UNEXPAND is not set
+# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set
+CONFIG_UNIQ=y
+# CONFIG_USLEEP is not set
+CONFIG_UUDECODE=y
+CONFIG_UUENCODE=y
+CONFIG_WC=y
+# CONFIG_FEATURE_WC_LARGE is not set
+CONFIG_WHO=y
+CONFIG_WHOAMI=y
+CONFIG_YES=y
+
+#
+# Common options for cp and mv
+#
+# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set
+
+#
+# Common options for ls, more and telnet
+#
+CONFIG_FEATURE_AUTOWIDTH=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+
+#
+# Common options for md5sum, sha1sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_CLEAR=y
+CONFIG_DEALLOCVT=y
+CONFIG_DUMPKMAP=y
+# CONFIG_KBD_MODE is not set
+CONFIG_LOADFONT=y
+CONFIG_LOADKMAP=y
+CONFIG_OPENVT=y
+CONFIG_RESET=y
+# CONFIG_RESIZE is not set
+# CONFIG_FEATURE_RESIZE_PRINT is not set
+# CONFIG_SETCONSOLE is not set
+# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
+# CONFIG_SETKEYCODES is not set
+# CONFIG_SETLOGCONS is not set
+
+#
+# Debian Utilities
+#
+CONFIG_MKTEMP=y
+# CONFIG_PIPE_PROGRESS is not set
+CONFIG_RUN_PARTS=y
+# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
+# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
+CONFIG_START_STOP_DAEMON=y
+CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
+CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
+CONFIG_WHICH=y
+
+#
+# Editors
+#
+CONFIG_AWK=y
+CONFIG_FEATURE_AWK_MATH=y
+# CONFIG_CMP is not set
+CONFIG_DIFF=y
+CONFIG_FEATURE_DIFF_BINARY=y
+CONFIG_FEATURE_DIFF_DIR=y
+# CONFIG_FEATURE_DIFF_MINIMAL is not set
+# CONFIG_ED is not set
+CONFIG_PATCH=y
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=4096
+CONFIG_FEATURE_VI_8BIT=y
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+# CONFIG_FEATURE_VI_READONLY is not set
+# CONFIG_FEATURE_VI_SETOPTS is not set
+# CONFIG_FEATURE_VI_SET is not set
+CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
+CONFIG_FEATURE_ALLOW_EXEC=y
+
+#
+# Finding Utilities
+#
+CONFIG_FIND=y
+CONFIG_FEATURE_FIND_PRINT0=y
+CONFIG_FEATURE_FIND_MTIME=y
+CONFIG_FEATURE_FIND_MMIN=y
+CONFIG_FEATURE_FIND_PERM=y
+CONFIG_FEATURE_FIND_TYPE=y
+CONFIG_FEATURE_FIND_XDEV=y
+CONFIG_FEATURE_FIND_MAXDEPTH=y
+CONFIG_FEATURE_FIND_NEWER=y
+CONFIG_FEATURE_FIND_INUM=y
+CONFIG_FEATURE_FIND_EXEC=y
+CONFIG_FEATURE_FIND_USER=y
+CONFIG_FEATURE_FIND_GROUP=y
+CONFIG_FEATURE_FIND_NOT=y
+CONFIG_FEATURE_FIND_DEPTH=y
+CONFIG_FEATURE_FIND_PAREN=y
+CONFIG_FEATURE_FIND_SIZE=y
+CONFIG_FEATURE_FIND_PRUNE=y
+# CONFIG_FEATURE_FIND_DELETE is not set
+CONFIG_FEATURE_FIND_PATH=y
+CONFIG_FEATURE_FIND_REGEX=y
+# CONFIG_FEATURE_FIND_CONTEXT is not set
+CONFIG_GREP=y
+CONFIG_FEATURE_GREP_EGREP_ALIAS=y
+CONFIG_FEATURE_GREP_FGREP_ALIAS=y
+CONFIG_FEATURE_GREP_CONTEXT=y
+CONFIG_XARGS=y
+CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
+CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
+CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
+
+#
+# Init Utilities
+#
+# CONFIG_INIT is not set
+# CONFIG_DEBUG_INIT is not set
+# CONFIG_FEATURE_USE_INITTAB is not set
+# CONFIG_FEATURE_KILL_REMOVED is not set
+CONFIG_FEATURE_KILL_DELAY=0
+# CONFIG_FEATURE_INIT_SCTTY is not set
+# CONFIG_FEATURE_INIT_SYSLOG is not set
+# CONFIG_FEATURE_EXTRA_QUIET is not set
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
+# CONFIG_FEATURE_INITRD is not set
+# CONFIG_HALT is not set
+# CONFIG_MESG is not set
+
+#
+# Login/Password Management Utilities
+#
+CONFIG_FEATURE_SHADOWPASSWDS=y
+# CONFIG_USE_BB_PWD_GRP is not set
+# CONFIG_USE_BB_SHADOW is not set
+CONFIG_USE_BB_CRYPT=y
+CONFIG_ADDGROUP=y
+CONFIG_FEATURE_ADDUSER_TO_GROUP=y
+CONFIG_DELGROUP=y
+CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
+# CONFIG_FEATURE_CHECK_NAMES is not set
+CONFIG_ADDUSER=y
+CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y
+CONFIG_DELUSER=y
+CONFIG_GETTY=y
+CONFIG_FEATURE_UTMP=y
+# CONFIG_FEATURE_WTMP is not set
+CONFIG_LOGIN=y
+# CONFIG_PAM is not set
+# CONFIG_LOGIN_SCRIPTS is not set
+CONFIG_FEATURE_NOLOGIN=y
+CONFIG_FEATURE_SECURETTY=y
+CONFIG_PASSWD=y
+# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
+# CONFIG_CRYPTPW is not set
+# CONFIG_CHPASSWD is not set
+CONFIG_SU=y
+CONFIG_FEATURE_SU_SYSLOG=y
+CONFIG_FEATURE_SU_CHECKS_SHELLS=y
+CONFIG_SULOGIN=y
+CONFIG_VLOCK=y
+
+#
+# Linux Ext2 FS Progs
+#
+CONFIG_CHATTR=y
+# CONFIG_FSCK is not set
+CONFIG_LSATTR=y
+
+#
+# Linux Module Utilities
+#
+# CONFIG_DEPMOD is not set
+# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set
+# CONFIG_FEATURE_DEPMOD_ALIAS is not set
+CONFIG_INSMOD=y
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
+CONFIG_RMMOD=y
+CONFIG_LSMOD=y
+# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
+CONFIG_MODPROBE=y
+CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
+CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
+# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
+
+#
+# Options common to multiple modutils
+#
+CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
+# CONFIG_FEATURE_2_4_MODULES is not set
+CONFIG_FEATURE_2_6_MODULES=y
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
+# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
+
+#
+# Linux System Utilities
+#
+CONFIG_DMESG=y
+CONFIG_FEATURE_DMESG_PRETTY=y
+CONFIG_FBSET=y
+CONFIG_FEATURE_FBSET_FANCY=y
+# CONFIG_FEATURE_FBSET_READMODE is not set
+# CONFIG_FDFLUSH is not set
+# CONFIG_FDFORMAT is not set
+# CONFIG_FDISK is not set
+CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
+# CONFIG_FEATURE_FDISK_WRITABLE is not set
+# CONFIG_FEATURE_AIX_LABEL is not set
+# CONFIG_FEATURE_SGI_LABEL is not set
+# CONFIG_FEATURE_SUN_LABEL is not set
+# CONFIG_FEATURE_OSF_LABEL is not set
+# CONFIG_FEATURE_FDISK_ADVANCED is not set
+# CONFIG_FINDFS is not set
+# CONFIG_FREERAMDISK is not set
+# CONFIG_FSCK_MINIX is not set
+# CONFIG_MKFS_MINIX is not set
+# CONFIG_FEATURE_MINIX2 is not set
+# CONFIG_GETOPT is not set
+CONFIG_HEXDUMP=y
+CONFIG_FEATURE_HEXDUMP_REVERSE=y
+# CONFIG_HD is not set
+# CONFIG_HWCLOCK is not set
+# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
+# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
+# CONFIG_IPCRM is not set
+# CONFIG_IPCS is not set
+CONFIG_LOSETUP=y
+# CONFIG_MDEV is not set
+# CONFIG_FEATURE_MDEV_CONF is not set
+# CONFIG_FEATURE_MDEV_RENAME is not set
+# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
+# CONFIG_FEATURE_MDEV_EXEC is not set
+# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
+CONFIG_MKSWAP=y
+# CONFIG_FEATURE_MKSWAP_V0 is not set
+CONFIG_MORE=y
+CONFIG_FEATURE_USE_TERMIOS=y
+# CONFIG_VOLUMEID is not set
+# CONFIG_FEATURE_VOLUMEID_EXT is not set
+# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
+# CONFIG_FEATURE_VOLUMEID_FAT is not set
+# CONFIG_FEATURE_VOLUMEID_HFS is not set
+# CONFIG_FEATURE_VOLUMEID_JFS is not set
+# CONFIG_FEATURE_VOLUMEID_XFS is not set
+# CONFIG_FEATURE_VOLUMEID_NTFS is not set
+# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
+# CONFIG_FEATURE_VOLUMEID_UDF is not set
+# CONFIG_FEATURE_VOLUMEID_LUKS is not set
+# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
+# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
+# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
+# CONFIG_FEATURE_VOLUMEID_SYSV is not set
+# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
+# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
+CONFIG_MOUNT=y
+# CONFIG_FEATURE_MOUNT_FAKE is not set
+# CONFIG_FEATURE_MOUNT_VERBOSE is not set
+# CONFIG_FEATURE_MOUNT_HELPERS is not set
+# CONFIG_FEATURE_MOUNT_LABEL is not set
+CONFIG_FEATURE_MOUNT_NFS=y
+# CONFIG_FEATURE_MOUNT_CIFS is not set
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+CONFIG_PIVOT_ROOT=y
+# CONFIG_RDATE is not set
+CONFIG_READPROFILE=y
+# CONFIG_RTCWAKE is not set
+# CONFIG_SCRIPT is not set
+# CONFIG_SETARCH is not set
+CONFIG_SWAPONOFF=y
+# CONFIG_FEATURE_SWAPON_PRI is not set
+CONFIG_SWITCH_ROOT=y
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+
+#
+# Common options for mount/umount
+#
+CONFIG_FEATURE_MOUNT_LOOP=y
+# CONFIG_FEATURE_MTAB_SUPPORT is not set
+
+#
+# Miscellaneous Utilities
+#
+# CONFIG_ADJTIMEX is not set
+# CONFIG_BBCONFIG is not set
+# CONFIG_CHAT is not set
+# CONFIG_FEATURE_CHAT_NOFAIL is not set
+# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
+# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set
+# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set
+# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
+# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
+# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
+# CONFIG_CHRT is not set
+CONFIG_CROND=y
+# CONFIG_DEBUG_CROND_OPTION is not set
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+CONFIG_CRONTAB=y
+CONFIG_DC=y
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+CONFIG_FEATURE_DEVFS=y
+CONFIG_EJECT=y
+CONFIG_FEATURE_EJECT_SCSI=y
+# CONFIG_FBSPLASH is not set
+# CONFIG_INOTIFYD is not set
+# CONFIG_LAST is not set
+# CONFIG_FEATURE_LAST_SMALL is not set
+# CONFIG_FEATURE_LAST_FANCY is not set
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=9999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+CONFIG_FEATURE_LESS_FLAGCS=y
+# CONFIG_FEATURE_LESS_MARKS is not set
+# CONFIG_FEATURE_LESS_REGEXP is not set
+CONFIG_HDPARM=y
+CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
+CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y
+CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y
+# CONFIG_MAKEDEVS is not set
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
+# CONFIG_MAN is not set
+CONFIG_MICROCOM=y
+# CONFIG_MOUNTPOINT is not set
+# CONFIG_MT is not set
+# CONFIG_RAIDAUTORUN is not set
+# CONFIG_READAHEAD is not set
+# CONFIG_RUNLEVEL is not set
+CONFIG_RX=y
+# CONFIG_SETSID is not set
+CONFIG_STRINGS=y
+# CONFIG_TASKSET is not set
+# CONFIG_FEATURE_TASKSET_FANCY is not set
+CONFIG_TIME=y
+# CONFIG_TTYSIZE is not set
+# CONFIG_WATCHDOG is not set
+
+#
+# Networking Utilities
+#
+# CONFIG_FEATURE_IPV6 is not set
+# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set
+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+CONFIG_ARP=y
+CONFIG_ARPING=y
+CONFIG_BRCTL=y
+# CONFIG_FEATURE_BRCTL_FANCY is not set
+# CONFIG_FEATURE_BRCTL_SHOW is not set
+# CONFIG_DNSD is not set
+CONFIG_ETHER_WAKE=y
+# CONFIG_FAKEIDENTD is not set
+CONFIG_FTPGET=y
+CONFIG_FTPPUT=y
+# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
+CONFIG_HOSTNAME=y
+# CONFIG_HTTPD is not set
+# CONFIG_FEATURE_HTTPD_RANGES is not set
+# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
+# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
+# CONFIG_FEATURE_HTTPD_SETUID is not set
+# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
+# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
+# CONFIG_FEATURE_HTTPD_CGI is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
+# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
+# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
+# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
+# CONFIG_FEATURE_HTTPD_PROXY is not set
+CONFIG_IFCONFIG=y
+CONFIG_FEATURE_IFCONFIG_STATUS=y
+# CONFIG_FEATURE_IFCONFIG_SLIP is not set
+# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
+CONFIG_FEATURE_IFCONFIG_HW=y
+CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
+# CONFIG_IFENSLAVE is not set
+CONFIG_IFUPDOWN=y
+CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
+CONFIG_FEATURE_IFUPDOWN_IP=y
+CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
+# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
+CONFIG_FEATURE_IFUPDOWN_IPV4=y
+# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
+# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
+# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
+# CONFIG_INETD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
+# CONFIG_FEATURE_INETD_RPC is not set
+CONFIG_IP=y
+CONFIG_FEATURE_IP_ADDRESS=y
+CONFIG_FEATURE_IP_LINK=y
+CONFIG_FEATURE_IP_ROUTE=y
+CONFIG_FEATURE_IP_TUNNEL=y
+# CONFIG_FEATURE_IP_RULE is not set
+# CONFIG_FEATURE_IP_SHORT_FORMS is not set
+# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
+# CONFIG_IPADDR is not set
+# CONFIG_IPLINK is not set
+# CONFIG_IPROUTE is not set
+# CONFIG_IPTUNNEL is not set
+# CONFIG_IPRULE is not set
+# CONFIG_IPCALC is not set
+# CONFIG_FEATURE_IPCALC_FANCY is not set
+# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
+# CONFIG_NAMEIF is not set
+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
+CONFIG_NC=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+CONFIG_NETSTAT=y
+# CONFIG_FEATURE_NETSTAT_WIDE is not set
+CONFIG_NSLOOKUP=y
+CONFIG_PING=y
+# CONFIG_PING6 is not set
+CONFIG_FEATURE_FANCY_PING=y
+# CONFIG_PSCAN is not set
+CONFIG_ROUTE=y
+# CONFIG_SENDMAIL is not set
+# CONFIG_FETCHMAIL is not set
+# CONFIG_SLATTACH is not set
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+CONFIG_TELNETD=y
+# CONFIG_FEATURE_TELNETD_STANDALONE is not set
+# CONFIG_TFTP is not set
+# CONFIG_TFTPD is not set
+# CONFIG_FEATURE_TFTP_GET is not set
+# CONFIG_FEATURE_TFTP_PUT is not set
+# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
+# CONFIG_DEBUG_TFTP is not set
+CONFIG_TRACEROUTE=y
+# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
+# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
+# CONFIG_APP_UDHCPD is not set
+# CONFIG_APP_DHCPRELAY is not set
+# CONFIG_APP_DUMPLEASES is not set
+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
+CONFIG_DHCPD_LEASES_FILE=""
+CONFIG_APP_UDHCPC=y
+CONFIG_FEATURE_UDHCPC_ARPING=y
+# CONFIG_FEATURE_UDHCP_PORT is not set
+# CONFIG_FEATURE_UDHCP_DEBUG is not set
+# CONFIG_FEATURE_RFC3397 is not set
+CONFIG_DHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
+# CONFIG_VCONFIG is not set
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+CONFIG_ZCIP=y
+# CONFIG_TCPSVD is not set
+# CONFIG_UDPSVD is not set
+
+#
+# Process Utilities
+#
+CONFIG_FREE=y
+CONFIG_FUSER=y
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+# CONFIG_KILLALL5 is not set
+# CONFIG_NMETER is not set
+# CONFIG_PGREP is not set
+CONFIG_PIDOF=y
+# CONFIG_FEATURE_PIDOF_SINGLE is not set
+# CONFIG_FEATURE_PIDOF_OMIT is not set
+# CONFIG_PKILL is not set
+CONFIG_PS=y
+# CONFIG_FEATURE_PS_WIDE is not set
+# CONFIG_FEATURE_PS_TIME is not set
+# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
+CONFIG_RENICE=y
+CONFIG_BB_SYSCTL=y
+CONFIG_TOP=y
+CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
+CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
+# CONFIG_FEATURE_TOP_DECIMALS is not set
+# CONFIG_FEATURE_TOPMEM is not set
+CONFIG_UPTIME=y
+CONFIG_WATCH=y
+
+#
+# Shells
+#
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_MSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+CONFIG_ASH=y
+
+#
+# Ash Shell Options
+#
+CONFIG_ASH_BASH_COMPAT=y
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_READ_NCHARS=y
+CONFIG_ASH_READ_TIMEOUT=y
+CONFIG_ASH_ALIAS=y
+CONFIG_ASH_MATH_SUPPORT=y
+# CONFIG_ASH_MATH_SUPPORT_64 is not set
+CONFIG_ASH_GETOPTS=y
+CONFIG_ASH_BUILTIN_ECHO=y
+CONFIG_ASH_BUILTIN_PRINTF=y
+CONFIG_ASH_BUILTIN_TEST=y
+# CONFIG_ASH_CMDCMD is not set
+# CONFIG_ASH_MAIL is not set
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+# CONFIG_ASH_RANDOM_SUPPORT is not set
+CONFIG_ASH_EXPAND_PRMT=y
+# CONFIG_HUSH is not set
+# CONFIG_HUSH_HELP is not set
+# CONFIG_HUSH_INTERACTIVE is not set
+# CONFIG_HUSH_JOB is not set
+# CONFIG_HUSH_TICK is not set
+# CONFIG_HUSH_IF is not set
+# CONFIG_HUSH_LOOPS is not set
+# CONFIG_LASH is not set
+# CONFIG_MSH is not set
+
+#
+# Bourne Shell Options
+#
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
+# CONFIG_FEATURE_SH_STANDALONE is not set
+# CONFIG_FEATURE_SH_NOFORK is not set
+# CONFIG_CTTYHACK is not set
+
+#
+# System Logging Utilities
+#
+CONFIG_SYSLOGD=y
+# CONFIG_FEATURE_ROTATE_LOGFILE is not set
+CONFIG_FEATURE_REMOTE_LOG=y
+# CONFIG_FEATURE_SYSLOGD_DUP is not set
+CONFIG_FEATURE_IPC_SYSLOG=y
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16
+CONFIG_LOGREAD=y
+# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
+CONFIG_KLOGD=y
+CONFIG_LOGGER=y
+
+#
+# Runit Utilities
+#
+# CONFIG_RUNSV is not set
+# CONFIG_RUNSVDIR is not set
+# CONFIG_SV is not set
+# CONFIG_SVLOGD is not set
+# CONFIG_CHPST is not set
+# CONFIG_SETUIDGID is not set
+# CONFIG_ENVUIDGID is not set
+# CONFIG_ENVDIR is not set
+# CONFIG_SOFTLIMIT is not set
+# CONFIG_CHCON is not set
+# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
+# CONFIG_GETENFORCE is not set
+# CONFIG_GETSEBOOL is not set
+# CONFIG_LOAD_POLICY is not set
+# CONFIG_MATCHPATHCON is not set
+# CONFIG_RESTORECON is not set
+# CONFIG_RUNCON is not set
+# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
+# CONFIG_SELINUXENABLED is not set
+# CONFIG_SETENFORCE is not set
+# CONFIG_SETFILES is not set
+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
+# CONFIG_SETSEBOOL is not set
+# CONFIG_SESTATUS is not set
+
+#
+# Print Utilities
+#
+# CONFIG_LPD is not set
+# CONFIG_LPR is not set
+# CONFIG_LPQ is not set
--- /dev/null
+DESCRIPTION = "portable command-line CD/DVD recorder software"
+LICENSE = "GPL"
+SECTION = "optional"
+DEPENDS = "cmake-native libcap"
+
+SRC_URI = "http://cdrkit.org/releases/${PN}-${PV}.tar.gz"
+
+inherit autotools
+
+do_install () {
+ oe_runmake 'DESTDIR=${D}' 'PREFIX=/usr' install
+}
--- /dev/null
+DESCRIPTION = "portable command-line CD/DVD recorder software"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+LICENSE = "GPL"
+SECTION = "optional"
+DEPENDS = "cmake-native libcap bzip2"
+
+SRC_URI = "http://cdrkit.org/releases/${PN}-${PV}.tar.gz"
+
+inherit autotools
+
+do_install () {
+ oe_runmake 'DESTDIR=${D}' 'PREFIX=/usr' install
+ ln -fs genisoimage ${D}${bindir}/mkisofs
+}
--- /dev/null
+DESCRIPTION = "mount UPnP server content as a linux filesystem"
+HOMEPAGE = "http://djmount.sourceforge.net/"
+LICENSE = "GPL"
+DEPENDS = "libupnp fuse"
+RDEPENDS = "fuse-utils fuse-module"
+PR = "r1"
+
+INITSCRIPT_NAME = "djmount"
+INITSCRIPT_PARAMS = "defaults"
+
+inherit autotools update-rc.d
+
+EXTRA_OECONF = "--with-external-libupnp --with-fuse-prefix='/usr/lib/'"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/djmount/djmount-0.71.tar.gz \
+ file://init \
+ file://filebuffer-fix_range.patch;patch=1"
+
+do_configure() {
+ cd ${S}
+ oe_runconf
+}
+
+do_install_append() {
+ install -d ${D}/etc/init.d
+ install -m 0755 ${WORKDIR}/init ${D}/etc/init.d/djmount
+}
--- /dev/null
+--- trunk/djmount/file_buffer.c 2006/10/05 20:01:53 271
++++ trunk/djmount/file_buffer.c 2006/10/08 09:11:10 272
+@@ -199,7 +199,7 @@
+ int rc = UpnpOpenHttpGetEx (file->url, &handle,
+ &contentType, &contentLength,
+ &httpStatus,
+- offset, offset + size,
++ offset, offset + size - 1,
+ HTTP_DEFAULT_TIMEOUT
+ );
+ if (rc != UPNP_E_SUCCESS)
--- /dev/null
+#!/bin/sh
+DAEMON=/usr/bin/djmount
+NAME=djmount
+DESC="UPnP client"
+MOUNTPOINT="/media/upnp/"
+ARGS=$MOUNTPOINT
+
+test -f $DAEMON || exit 0
+
+set -e
+
+case "$1" in
+start)
+ echo -n "* starting $DESC: $NAME... "
+ if ! test -d $MOUNTPOINT; then
+ mkdir $MOUNTPOINT
+ fi
+ modprobe fuse
+ start-stop-daemon -S -b -x $DAEMON -- $ARGS
+ echo "done."
+ ;;
+stop)
+ echo -n "* stopping $DESC: $NAME... "
+ start-stop-daemon -K -x $DAEMON
+ rmmod fuse
+ echo "done."
+ ;;
+restart)
+ echo "* restarting $DESC: $NAME... "
+ $0 stop
+ $0 start
+ echo "done."
+ ;;
+*)
+ echo "Usage: $0 {start|stop|restart}"
+ exit 1
+ ;;
+esac
+
+exit 0
--- /dev/null
+DESCRIPTION = "Utilities needed to do transponder blindscan with dreambox dvb receivers"
+SECTION = "base"
+PRIORITY = "optional"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+LICENSE = "GPL"
+PV = "1.0"
+PR = "r0"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+SRC_URI = "http://sources.dreamboxupdate.com/download/opendreambox/dreambox-blindscan-utils-${MACHINE}-1.0.tar.bz2"
+SRC_URI_dm600pvr = "http://sources.dreamboxupdate.com/download/opendreambox/dreambox-blindscan-utils-${MACHINE}-1.1.tar.bz2"
+PR_dm600pvr = "r1"
+
+S = "${WORKDIR}/blindscan-utils"
+
+do_install() {
+ install -d ${D}/${bindir}/
+ for i in `find ${S} -type f -maxdepth 1`; do
+ install -m 0755 $i ${D}/${bindir}/;
+ done;
+}
--- /dev/null
+DESCRIPTION = "Bootlogo support"
+SECTION = "base"
+PRIORITY = "required"
+LICENSE = "proprietary"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+
+IMAGES_VERSION = "1"
+BINARY_VERSION = "1"
+BINARY_VERSION_dm7025 = "2"
+BINARY_VERSION_dm800 = "2"
+BINARY_VERSION_dm8000 = "4"
+
+PV = "${BINARY_VERSION}.${IMAGES_VERSION}"
+PR = "r3"
+
+SRC_URI = "http://sources.dreamboxupdate.com/download/7020/bootlogo-${MACHINE}-${BINARY_VERSION}.elf \
+ http://sources.dreamboxupdate.com/download/7020/bootlogo-${MACHINE}-${IMAGES_VERSION}.mvi \
+ http://sources.dreamboxupdate.com/download/7020/bootlogo_wait-${MACHINE}-${IMAGES_VERSION}.mvi \
+ http://sources.dreamboxupdate.com/download/7020/backdrop-${MACHINE}-${IMAGES_VERSION}.mvi"
+
+SRC_URI_append_dm8000 = " http://sources.dreamboxupdate.com/download/7020/bootlogo-${MACHINE}-${IMAGES_VERSION}.jpg"
+
+SRC_URI_append_dm800 = " http://sources.dreamboxupdate.com/download/7020/bootlogo-${MACHINE}-${IMAGES_VERSION}.jpg \
+ http://sources.dreamboxupdate.com/download/7020/switchoff-${MACHINE}-${IMAGES_VERSION}.mvi"
+
+S = "${WORKDIR}/"
+
+MVI = "bootlogo backdrop bootlogo_wait"
+MVI_append_dm800 = " switchoff"
+
+do_install() {
+ install -d ${D}/boot
+ install -m 0755 ${S}/bootlogo-${MACHINE}-${BINARY_VERSION}.elf ${D}/boot/bootlogo.elf
+ for i in ${MVI}; do
+ install -m 0755 ${S}/$i-${MACHINE}-${IMAGES_VERSION}.mvi ${D}/boot/$i.mvi;
+ done;
+}
+
+do_install_dm800() {
+ install -d ${D}/boot
+ install -d ${D}/usr/share
+ install -m 0755 ${S}/bootlogo-${MACHINE}-${BINARY_VERSION}.elf ${D}/boot/bootlogo.elf
+ install -m 0755 ${S}/bootlogo-${MACHINE}-${IMAGES_VERSION}.jpg ${D}/boot/bootlogo.jpg
+ for i in ${MVI}; do
+ install -m 0755 ${S}/$i-${MACHINE}-${IMAGES_VERSION}.mvi ${D}/usr/share/$i.mvi;
+ ln -sf /usr/share/$i.mvi ${D}/boot/$i.mvi;
+ done;
+}
+
+do_install_dm8000() {
+ do_install_dm800
+}
+
+pkg_preinst() {
+ [ -d /proc/stb ] && mount -o rw,remount /boot
+}
+
+pkg_postinst() {
+ [ -d /proc/stb ] && mount -o ro,remount /boot
+}
+
+pkg_prerm() {
+ [ -d /proc/stb ] && mount -o rw,remount /boot
+}
+
+pkg_postrm() {
+ [ -d /proc/stb ] && mount -o ro,remount /boot
+}
+
+PACKAGE_ARCH := "${MACHINE_ARCH}"
+FILES_${PN} = "/boot /usr/share"
--- /dev/null
+DESCRIPTION = "Squashfs jffs2 unionfs mount tool"
+SECTION = "base"
+PRIORITY = "required"
+LICENSE = "proprietary"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+
+PV = "1.0"
+PR = "r1"
+DEPENDS = "klibc"
+
+SRC_URI = "file://boottool-${MACHINE}.c"
+
+S = "${WORKDIR}/"
+
+do_install_append() {
+ install -d ${D}/boot/bin
+ install ${S}/boottool ${D}/boot/bin/init
+}
+
+do_compile_append() {
+ ${STAGING_DIR_HOST}/bin/klcc ${S}/boottool-${MACHINE}.c -o ${S}/boottool
+}
+
+PACKAGE_ARCH := "${MACHINE_ARCH}"
+FILES_${PN} = "/boot/bin/init"
--- /dev/null
+#include <sys/mount.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <linux/loop.h>
+#include <dirent.h>
+#include <errno.h>
+#include <sys/mman.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define PREFIX
+//#define PREFIX "/boot"
+#define SQUASHFS_FILENAME PREFIX"/mnt/flash/squashfs"
+
+#define streq(a,b) (strcmp((a),(b)) == 0)
+
+/* This really needs to be in a header file... */
+extern long init_module(void *, unsigned long, const char *);
+
+/* We use error numbers in a loose translation... */
+static const char *moderror(int err)
+{
+ switch (err) {
+ case ENOEXEC:
+ return "Invalid module format";
+ case ENOENT:
+ return "Unknown symbol in module";
+ case ESRCH:
+ return "Module has wrong symbol version";
+ case EINVAL:
+ return "Invalid parameters";
+ default:
+ return strerror(err);
+ }
+}
+
+static void *grab_file(const char *filename, unsigned long *size)
+{
+ unsigned int max = 16384;
+ int ret, fd;
+ void *buffer = malloc(max);
+
+ if (streq(filename, "-"))
+ fd = dup(STDIN_FILENO);
+ else
+ fd = open(filename, O_RDONLY, 0);
+
+ if (fd < 0)
+ return NULL;
+
+ *size = 0;
+ while ((ret = read(fd, buffer + *size, max - *size)) > 0) {
+ *size += ret;
+ if (*size == max)
+ buffer = realloc(buffer, max *= 2);
+ }
+ if (ret < 0) {
+ free(buffer);
+ buffer = NULL;
+ }
+ close(fd);
+ return buffer;
+}
+
+
+int insmod(const char *filename)
+{
+ void *file;
+ unsigned long len;
+ long int ret;
+
+
+ file = grab_file(filename, &len);
+ if (!file) {
+ fprintf(stderr, "insmod: can't read '%s': %s\n",
+ filename, strerror(errno));
+ return 1;
+ }
+
+ ret = init_module(file, len, "");
+ if (ret != 0) {
+ fprintf(stderr, "insmod: error inserting '%s': %li %s\n",
+ filename, ret, moderror(errno));
+ return 1;
+ }
+ return 0;
+}
+
+int main(int argc, char *argv[], char *envp[])
+{
+ int res, x;
+
+ /* first, load some needed kernel modules located in the root of our boot partition */
+ const char *modules[] = { "fs/squashfs/unlzma.ko", "fs/squashfs/sqlzma.ko", "fs/squashfs/squashfs.ko", "fs/unionfs.ko", "drivers/block/loop.ko", 0 };
+ const char *modules_path = PREFIX"/lib/modules/2.6.12.6/kernel/";
+ char path[255];
+
+ printf("Hello world!\n");
+
+ x=0;
+ while(modules[x]) {
+ strcpy(path, modules_path);
+ strcat(path, modules[x++]);
+ printf("insmodding %s..\n", path);
+ if (insmod(path))
+ return 1;
+ }
+
+ /* mount the RW jffs2 partition, which contains the squashfs image (in /squashfs) and the deltas (in /delta) */
+ printf("mounting mtd...\n");
+ res = mount("/dev/mtdblock/3", PREFIX"/mnt/flash", "jffs2", 0, 0);
+
+ if (res)
+ {
+ perror("mounting /flash");
+ return res;
+ }
+
+ /* loop-mount the squashfs, by first connecting the file to loop0 ... */
+ printf("opening squashfs...\n");
+ int squashfs_fd = open(SQUASHFS_FILENAME, O_RDONLY);
+ if (squashfs_fd < 0)
+ {
+ perror(SQUASHFS_FILENAME);
+ return 1;
+ }
+
+ printf("setup loop\n");
+ int loop_fd = open("/dev/loop/0", O_RDONLY);
+
+ if (loop_fd < 0)
+ {
+ perror("/dev/loop/0");
+ return 1;
+ }
+
+ struct loop_info loopinfo;
+
+ memset(&loopinfo, 0, sizeof(loopinfo));
+ strncpy(loopinfo.lo_name, SQUASHFS_FILENAME, LO_NAME_SIZE);
+ loopinfo.lo_offset = 0;
+ loopinfo.lo_encrypt_key_size = 0;
+ if (ioctl(loop_fd, LOOP_SET_FD, (void*)squashfs_fd) < 0) {
+ perror("LOOP_SET_FD");
+ return 1;
+ }
+ if (ioctl(loop_fd, LOOP_SET_STATUS, &loopinfo) < 0) {
+ perror("LOOP_SET_STATUS");
+ return 1;
+ }
+ close(loop_fd);
+ close(squashfs_fd);
+
+ printf("mounting squashfs..\n");
+
+ /* and then mounting the loop device. */
+ if (mount("/dev/loop/0", PREFIX"/mnt/squashfs", "squashfs", MS_MGC_VAL|MS_RDONLY, "") < 0)
+ {
+ perror("mounting squashfs");
+ return 1;
+ }
+
+ /* now the situation is:
+
+ / - our boot jffs2 partition
+ /flash - our RW jffs2 partition
+ /flash/squashfs - our loop-mounted squashfs file,
+ /flash/delta - the delta for the root
+ /squashfs - RO root
+ /root - yet empty, but we will populate it using unionfs
+ */
+
+
+ printf("mounting unionfs..\n");
+ res = mount("none", PREFIX"/mnt/root", "unionfs", MS_MGC_VAL, "dirs="PREFIX"/mnt/flash/delta=rw:"PREFIX"/mnt/squashfs=ro");
+ if (res < 0)
+ {
+ perror("mounting unionfs");
+ return 1;
+ }
+
+ printf("pivot_root\n");
+ if ( pivot_root(PREFIX"/mnt/root", PREFIX"/mnt/root/boot") < 0)
+ {
+ perror("pivot_root");
+ return 1;
+ }
+
+ printf("mounting devfs..\n");
+ res = mount("none", "/dev", "devfs", 0, 0);
+ if (res)
+ {
+ perror("mounting /dev");
+ return res;
+ }
+
+ printf("try umount old devfs..\n");
+ res = umount("/boot/dev");
+ perror("umount /boot/dev");
+
+ printf("call init!\n");
+ execve("/sbin/init", argv, envp);
+ perror("/sbin/init");
+
+ return 1;
+}
--- /dev/null
+DESCRIPTION = "create Dreambox NAND boot images"
+SECTION = "console/utils"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+PV = "1.1"
+PR = "r1"
+
+SRC_URI = "file://buildimage.c"
+
+inherit native
+
+do_compile() {
+ cp ${WORKDIR}/buildimage.c .
+ ${CXX} -I. -o buildimage buildimage.c
+}
+
+do_stage() {
+ install -m 0755 buildimage ${STAGING_BINDIR}/
+}
--- /dev/null
+/*
+ * buildimage - create Dreambox nand boot image.
+ *
+ * contains algorithms ripped from u-boot and first-stage.
+ * Licensed as GPL.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <netinet/in.h>
+
+int eraseblock_size, spare_size, sector_size, largepage;
+
+#define SECTOR_SIZE_WITH_ECC (sector_size+spare_size)
+
+
+/*
+ * Pre-calculated 256-way 1 byte column parity
+ */
+static const unsigned char nand_ecc_precalc_table[] = {
+ 0x00, 0x55, 0x56, 0x03, 0x59, 0x0c, 0x0f, 0x5a, 0x5a, 0x0f, 0x0c, 0x59, 0x03, 0x56, 0x55, 0x00,
+ 0x65, 0x30, 0x33, 0x66, 0x3c, 0x69, 0x6a, 0x3f, 0x3f, 0x6a, 0x69, 0x3c, 0x66, 0x33, 0x30, 0x65,
+ 0x66, 0x33, 0x30, 0x65, 0x3f, 0x6a, 0x69, 0x3c, 0x3c, 0x69, 0x6a, 0x3f, 0x65, 0x30, 0x33, 0x66,
+ 0x03, 0x56, 0x55, 0x00, 0x5a, 0x0f, 0x0c, 0x59, 0x59, 0x0c, 0x0f, 0x5a, 0x00, 0x55, 0x56, 0x03,
+ 0x69, 0x3c, 0x3f, 0x6a, 0x30, 0x65, 0x66, 0x33, 0x33, 0x66, 0x65, 0x30, 0x6a, 0x3f, 0x3c, 0x69,
+ 0x0c, 0x59, 0x5a, 0x0f, 0x55, 0x00, 0x03, 0x56, 0x56, 0x03, 0x00, 0x55, 0x0f, 0x5a, 0x59, 0x0c,
+ 0x0f, 0x5a, 0x59, 0x0c, 0x56, 0x03, 0x00, 0x55, 0x55, 0x00, 0x03, 0x56, 0x0c, 0x59, 0x5a, 0x0f,
+ 0x6a, 0x3f, 0x3c, 0x69, 0x33, 0x66, 0x65, 0x30, 0x30, 0x65, 0x66, 0x33, 0x69, 0x3c, 0x3f, 0x6a,
+ 0x6a, 0x3f, 0x3c, 0x69, 0x33, 0x66, 0x65, 0x30, 0x30, 0x65, 0x66, 0x33, 0x69, 0x3c, 0x3f, 0x6a,
+ 0x0f, 0x5a, 0x59, 0x0c, 0x56, 0x03, 0x00, 0x55, 0x55, 0x00, 0x03, 0x56, 0x0c, 0x59, 0x5a, 0x0f,
+ 0x0c, 0x59, 0x5a, 0x0f, 0x55, 0x00, 0x03, 0x56, 0x56, 0x03, 0x00, 0x55, 0x0f, 0x5a, 0x59, 0x0c,
+ 0x69, 0x3c, 0x3f, 0x6a, 0x30, 0x65, 0x66, 0x33, 0x33, 0x66, 0x65, 0x30, 0x6a, 0x3f, 0x3c, 0x69,
+ 0x03, 0x56, 0x55, 0x00, 0x5a, 0x0f, 0x0c, 0x59, 0x59, 0x0c, 0x0f, 0x5a, 0x00, 0x55, 0x56, 0x03,
+ 0x66, 0x33, 0x30, 0x65, 0x3f, 0x6a, 0x69, 0x3c, 0x3c, 0x69, 0x6a, 0x3f, 0x65, 0x30, 0x33, 0x66,
+ 0x65, 0x30, 0x33, 0x66, 0x3c, 0x69, 0x6a, 0x3f, 0x3f, 0x6a, 0x69, 0x3c, 0x66, 0x33, 0x30, 0x65,
+ 0x00, 0x55, 0x56, 0x03, 0x59, 0x0c, 0x0f, 0x5a, 0x5a, 0x0f, 0x0c, 0x59, 0x03, 0x56, 0x55, 0x00
+};
+
+
+/*
+ * Creates non-inverted ECC code from line parity
+ */
+static void nand_trans_result(unsigned char reg2, unsigned char reg3,
+ unsigned char *ecc_code)
+{
+ unsigned char a, b, i, tmp1, tmp2;
+
+ /* Initialize variables */
+ a = b = 0x80;
+ tmp1 = tmp2 = 0;
+
+ /* Calculate first ECC byte */
+ for (i = 0; i < 4; i++) {
+ if (reg3 & a) /* LP15,13,11,9 --> ecc_code[0] */
+ tmp1 |= b;
+ b >>= 1;
+ if (reg2 & a) /* LP14,12,10,8 --> ecc_code[0] */
+ tmp1 |= b;
+ b >>= 1;
+ a >>= 1;
+ }
+
+ /* Calculate second ECC byte */
+ b = 0x80;
+ for (i = 0; i < 4; i++) {
+ if (reg3 & a) /* LP7,5,3,1 --> ecc_code[1] */
+ tmp2 |= b;
+ b >>= 1;
+ if (reg2 & a) /* LP6,4,2,0 --> ecc_code[1] */
+ tmp2 |= b;
+ b >>= 1;
+ a >>= 1;
+ }
+
+ /* Store two of the ECC bytes */
+ ecc_code[0] = tmp1;
+ ecc_code[1] = tmp2;
+}
+
+/*
+ * Calculate 3 byte ECC code for 256 byte block
+ */
+static void nand_calculate_ecc (const unsigned char *dat, unsigned char *ecc_code)
+{
+ unsigned char idx, reg1, reg3;
+ int j;
+
+ /* Initialize variables */
+ reg1 = reg3 = 0;
+ ecc_code[0] = ecc_code[1] = ecc_code[2] = 0;
+
+ /* Build up column parity */
+ for(j = 0; j < 256; j++) {
+
+ /* Get CP0 - CP5 from table */
+ idx = nand_ecc_precalc_table[dat[j]];
+ reg1 ^= idx;
+
+ /* All bit XOR = 1 ? */
+ if (idx & 0x40) {
+ reg3 ^= (unsigned char) j;
+ }
+ }
+
+ /* Create non-inverted ECC code from line parity */
+ nand_trans_result((reg1 & 0x40) ? ~reg3 : reg3, reg3, ecc_code);
+
+ /* Calculate final ECC code */
+ ecc_code[0] = ~ecc_code[0];
+ ecc_code[1] = ~ecc_code[1];
+ ecc_code[2] = ((~reg1) << 2) | 0x03;
+}
+
+void file_open(FILE **f, int *size, const char *filename)
+{
+ *f = fopen(filename, "r");
+ if (!*f)
+ {
+ perror(filename);
+ exit(1);
+ }
+ fseek(*f, 0, SEEK_END);
+ *size = ftell(*f);
+ fseek(*f, 0, SEEK_SET);
+}
+
+void die(const char *msg)
+{
+ fprintf(stderr, "%s\n", msg);
+ exit(2);
+}
+
+void emit_4(unsigned long val)
+{
+ val = htonl(val);
+ write(1, &val, 4);
+}
+
+#define TO_SECT(x) (x+sector_size-1)/sector_size
+
+typedef void fnc_encode_ecc(unsigned char *dst, unsigned char *src, int cnt);
+
+void encode_hevers(unsigned char *dst, unsigned char *src, int count)
+{
+ if (!largepage)
+ {
+ dst[0] = count >> 8;
+ dst[1] = count & 0xFF;
+ unsigned char temp;
+ int cnt;
+ for(cnt=0; cnt<sector_size; cnt++)
+ {
+ temp=src[cnt];
+ dst[2]^=temp;
+ if(cnt & 1)
+ dst[6 + 0]^=temp;
+ else
+ dst[6 + 1]^=temp;
+ if(cnt & 2) dst[6 + 2]^=temp;
+ if(cnt & 4) dst[6 + 3]^=temp;
+ if(cnt & 8) dst[6 + 4]^=temp;
+ if(cnt & 16) dst[6 + 5]^=temp;
+ if(cnt & 32) dst[6 + 6]^=temp;
+ if(cnt & 64) dst[6 + 7]^=temp;
+ if(cnt & 128) dst[6 + 8]^=temp;
+ if(cnt & 256) dst[6 + 9]^=temp;
+ }
+ } else
+ {
+ dst[0] = 0xFF;
+ dst[1] = 0xFF;
+ dst[2] = count >> 8;
+ dst[3] = count & 0xFF;
+ unsigned char temp;
+ int cnt;
+ for(cnt=0; cnt<sector_size; cnt++)
+ {
+ temp=src[cnt];
+ dst[40]^=temp;
+ if(cnt & 1)
+ dst[41]^=temp;
+ else
+ dst[42]^=temp;
+ if(cnt & 2) dst[43]^=temp;
+ if(cnt & 4) dst[44]^=temp;
+ if(cnt & 8) dst[45]^=temp;
+ if(cnt & 16) dst[46]^=temp;
+ if(cnt & 32) dst[47]^=temp;
+ if(cnt & 64) dst[48]^=temp;
+ if(cnt & 128) dst[49]^=temp;
+ if(cnt & 256) dst[50]^=temp;
+ }
+ }
+}
+
+void encode_jffs2(unsigned char *dst, unsigned char *src, int cnt)
+{
+ memset(dst, 0xFF, spare_size);
+
+ if (!largepage)
+ {
+ unsigned char ecc_code[8];
+ nand_calculate_ecc (src, ecc_code);
+ nand_calculate_ecc (src+256, ecc_code+3);
+ dst[0] = ecc_code[0];
+ dst[1] = ecc_code[1];
+ dst[2] = ecc_code[2];
+ dst[3] = ecc_code[3];
+ dst[4] = 0xFF;
+ dst[5] = 0xFF;
+ dst[6] = ecc_code[4];
+ dst[7] = ecc_code[5];
+
+ if (!(cnt & ((eraseblock_size/sector_size)-1)))
+ {
+ dst[8] = 0x19;
+ dst[9] = 0x85;
+ dst[10] = 0x20;
+ dst[11] = 0x03;
+ dst[12] = 0x00;
+ dst[13] = 0x00;
+ dst[14] = 0x00;
+ dst[15] = 0x08;
+ } else
+ memset(dst + 8, 0xFF, 8);
+ } else
+ {
+ int i;
+ for (i=0; i<8; ++i)
+ nand_calculate_ecc (src + i * 256, dst + 40 + i * 3);
+
+ if (!(cnt & ((eraseblock_size/sector_size)-1)))
+ {
+ dst[2] = 0x19;
+ dst[3] = 0x85;
+ dst[4] = 0x20;
+ dst[5] = 0x03;
+ dst[6] = 0x00;
+ dst[7] = 0x00;
+ dst[8] = 0x00;
+ dst[9] = 0x08;
+ }
+ }
+}
+
+void emit_file(FILE *src, int size, fnc_encode_ecc * eccfnc)
+{
+ emit_4(size * SECTOR_SIZE_WITH_ECC);
+ int cnt = 0;
+ while (1)
+ {
+ unsigned char sector[sector_size + spare_size];
+ memset(sector, 0xFF, sector_size + spare_size);
+ int r = fread(sector, 1, sector_size, src);
+ if (!r)
+ break;
+ eccfnc(sector + sector_size, sector, cnt);
+ write(1, sector, SECTOR_SIZE_WITH_ECC);
+ ++cnt;
+ }
+ if (cnt != size)
+ die("size changed");
+}
+
+ /* reserve to two sectors plus 1% for badblocks, and round down */
+#define BADBLOCK_SAFE(x) ( ((x) - (eraseblock_size * 2) - (x) / 100) &~ eraseblock_size )
+
+int main(int argc, char **argv)
+{
+ if ((argc != 4) && (argc != 5) && (argc != 6) && (argc != 7) )
+ {
+ fprintf(stderr, "usage: %s <2nd.bin.gz> <boot.jffs2> <root.jffs2> [<arch>] [<flashsize-in-mb>] [options]> image.nfi\n", *argv);
+ return 1;
+ }
+
+ FILE *f_2nd, *f_boot, *f_root;
+ int size_2nd, size_boot, size_root;
+
+ file_open(&f_2nd, &size_2nd, argv[1]);
+ file_open(&f_boot, &size_boot, argv[2]);
+ file_open(&f_root, &size_root, argv[3]);
+
+ int flashsize = 32*1024*1024;
+ if (argc >= 6)
+ flashsize = atoi(argv[5]) * 1024 * 1024;
+
+
+ int partition[] = {0x40000, 0x400000, flashsize};
+
+ if ((argc >= 7) && strstr(argv[6], "large"))
+ {
+ largepage = 1;
+ eraseblock_size = 128*1024;
+ spare_size = 64;
+ sector_size = 2048;
+ partition[0] = 0x100000;
+ } else
+ {
+ largepage = 0;
+ eraseblock_size = 16384;
+ spare_size = 16;
+ sector_size = 512;
+ partition[0] = 0x40000;
+ }
+
+ if (size_2nd > BADBLOCK_SAFE(partition[0]))
+ die("2nd stage is too big. did you gzip it before?");
+ if (size_boot > BADBLOCK_SAFE(partition[1] - partition[0]))
+ die("boot is too big. You can modify the buildimage tool, but you don't want that.");
+ if (size_root > BADBLOCK_SAFE(partition[2] - partition[1]))
+ die("root is too big. This doesn't work. sorry.");
+
+ int sectors_2nd = TO_SECT(size_2nd), sectors_boot = TO_SECT(size_boot), sectors_root = TO_SECT(size_root);
+
+ int num_partitions = 3;
+
+ int total_size = 4 + num_partitions * 4 + 4 + sectors_2nd * SECTOR_SIZE_WITH_ECC + 4 + sectors_boot * SECTOR_SIZE_WITH_ECC + 4 + sectors_root * SECTOR_SIZE_WITH_ECC;
+
+ /* in case an architecture is given, write NFI1 header */
+ if (argc >= 5)
+ {
+ char header[32] = "NFI1";
+ strncpy(header + 4, argv[4], 28);
+ write(1, header, 32);
+ }
+
+ /* global header */
+ emit_4(total_size);
+
+ /* partition */
+ emit_4(num_partitions * 4);
+ int i;
+ for (i=0; i < num_partitions; ++i)
+ emit_4(partition[i]);
+
+ /* 2nd stage */
+ emit_file(f_2nd, sectors_2nd, encode_hevers);
+ /* boot + root */
+ emit_file(f_boot, sectors_boot, encode_jffs2);
+ emit_file(f_root, sectors_root, encode_jffs2);
+
+ return 0;
+}
--- /dev/null
+DESCRIPTION = "Dreambox compatibility links"
+SECTION = "base"
+PRIORITY = "required"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+PV = "1.0"
+PR = "r0"
+
+FILES = "/lib/libgcc_s_nof.so.1"
+PACKAGE_ARCH = "all"
+
+do_install() {
+ install -d ${D}/lib
+ ln -sf libgcc_s.so.1 ${D}/lib/libgcc_s_nof.so.1
+}
--- /dev/null
+DESCRIPTION = "Dreamcrypt/Firecrypt Conditional Access Daemon"
+SECTION = "base"
+PRIORITY = "optional"
+LICENSE = "proprietary"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+
+PV = "1.1"
+PR = "r2"
+
+SRC_URI = "http://sources.dreamboxupdate.com/download/7020/dccamd-${MACHINE}-${PV} \
+ http://sources.dreamboxupdate.com/download/7020/wdog-${MACHINE} \
+ file://dccamd.sh"
+
+S = "${WORKDIR}"
+
+INHIBIT_PACKAGE_STRIP = "1"
+
+do_install() {
+ install -d ${D}/usr/bin
+ install -d ${D}/etc/init.d
+ install -m 0755 ${WORKDIR}/dccamd-${MACHINE}-${PV} ${D}/usr/bin/dccamd
+ install -m 0755 ${WORKDIR}/wdog-${MACHINE} ${D}/usr/bin/wdog
+}
+
+PACKAGE_ARCH := "${MACHINE_ARCH}"
+FILES_${PN} = "/"
--- /dev/null
+#!/bin/sh
+
+usage()
+{
+ echo "Usage: $0 {start|stop|status|restart|reload}"
+}
+
+if [ $# -lt 1 ] ; then usage ; break ; fi
+action=$1
+
+case "$action" in
+
+start)
+ echo -n "Start Dreamcrypt cam daemon:"
+ /usr/bin/wdog /usr/bin/dccamd -
+ echo " dccamd."
+ ;;
+
+stop)
+ echo -n "Stopping Dreamcrypt cam daemon: dccamd"
+ killall wdog dccamd
+ echo "."
+ ;;
+
+status)
+ ;;
+
+restart|reload)
+ $0 stop
+ $0 start
+ ;;
+
+*)
+ usage
+ ;;
+
+esac
+
+exit 0
--- /dev/null
+DESCRIPTION = "Hardware drivers for Dreambox"
+SECTION = "base"
+PRIORITY = "required"
+LICENSE = "proprietary"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+RDEPENDS_dm8000 = "dreambox-secondstage"
+RDEPENDS_dm800 = "dreambox-secondstage"
+
+KV_dm7020 = "2.6.9"
+PV_dm7020 = "${KV}-20060622"
+
+def get_modules_extension(bb, d):
+ if 'nptl' in bb.data.getVar('GLIBC_ADDONS', d, 1):
+ return "-gcc4.1"
+ return ""
+
+KV_dm7025 = "2.6.12.6"
+PV_dm7025 = "${KV}-20090206${@get_modules_extension(bb, d)}"
+
+KV_dm600pvr = "2.6.12"
+PV_dm600pvr = "${KV}-20080822"
+
+KV_dm500plus = "2.6.12"
+PV_dm500plus = "${KV}-20080822"
+
+KV_dm800 = "2.6.12-5.1-brcmstb-dm800"
+PV_dm800 = "${KV}-20090206"
+
+KV_dm8000 = "2.6.12-5.1-brcmstb-dm8000"
+PV_dm8000 = "${KV}-20090206"
+
+RDEPENDS = "kernel (${KV})"
+PR = "r0"
+
+SRC_URI = "http://sources.dreamboxupdate.com/snapshots/dreambox-dvb-modules-${MACHINE}-${PV}.tar.bz2 "
+SRC_URI_append_dm7025 = "http://sources.dreamboxupdate.com/download/7020/fpupgrade-${MACHINE}-v7"
+SRC_URI_append_dm8000 = "http://sources.dreamboxupdate.com/download/7020/fpupgrade-${MACHINE}-v5"
+
+S = "${WORKDIR}"
+
+do_install() {
+ install -d ${D}/lib/modules/${KV}/extra
+ for f in head; do
+ install -m 0644 $f.ko ${D}/lib/modules/${KV}/extra/$f.ko;
+ done
+}
+
+do_install_dm800() {
+ install -d ${D}/lib/modules/${KV}/extra
+ for f in *.ko LICENSE; do
+ install -m 0644 ${WORKDIR}/$f ${D}/lib/modules/${KV}/extra/$f;
+ done
+}
+
+do_install_dm7025() {
+ do_install_dm800
+ install -d ${D}${sbindir}
+ install -m 0755 ${WORKDIR}/fpupgrade-${MACHINE}-v7 ${D}${sbindir}/fpupgrade
+}
+
+do_install_dm8000() {
+ do_install_dm800
+ install -d ${D}${sbindir}
+ install -m 0755 ${WORKDIR}/fpupgrade-${MACHINE}-v5 ${D}${sbindir}/fpupgrade
+}
+
+PACKAGE_ARCH := "${MACHINE_ARCH}"
+FILES_${PN} = "/"
--- /dev/null
+#!/bin/sh
+
+usage()
+{
+ echo "Usage: $0 {start|stop|status|restart|reload}"
+}
+
+if [ $# -lt 1 ] ; then usage ; break ; fi
+action=$1
+
+case "$action" in
+
+start)
+ echo -n "Start Dreambox DVB Subsystem:"
+ /sbin/insmod /lib/modules/`uname -r`/extra/head.ko
+ echo " head."
+
+ # redisplay bootlogo, either the "wait..." or the normal
+ [ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
+ ;;
+
+stop)
+ ;;
+
+status)
+ ;;
+
+restart|reload)
+ $0 stop
+ $0 start
+ ;;
+
+*)
+ usage
+ ;;
+
+esac
+
+exit 0
--- /dev/null
+#!/bin/sh
+
+usage()
+{
+ echo "Usage: $0 {start|stop|status|restart|reload}"
+}
+
+if [ $# -lt 1 ] ; then usage ; break ; fi
+action=$1
+
+case "$action" in
+
+start)
+ echo -n "Start Dreambox DVB Subsystem:"
+
+ modprobe dreambox_keyboard
+ modprobe fp
+ modprobe rfmod
+
+ echo " done!"
+
+ # redisplay bootlogo, either the "wait..." or the normal
+ [ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
+ ;;
+
+stop)
+ ;;
+
+status)
+ ;;
+
+restart|reload)
+ $0 stop
+ $0 start
+ ;;
+
+*)
+ usage
+ ;;
+
+esac
+
+exit 0
--- /dev/null
+DESCRIPTION = "Small utilities specific to the dreambox dvb receiver (for DVB v3)"
+SECTION = "base"
+PRIORITY = "optional"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+LICENSE = "GPL"
+
+PV = "1.5"
+PR = "r0"
+
+SRC_URI = "http://sources.dreamboxupdate.com/download/opendreambox/dreambox-dvb-tools-v3-${PV}.tar.gz"
+
+inherit qmake
+
+UTILS = "showiframe"
+
+do_configure_prepend() {
+ cd ${S}/
+ echo "TEMPLATE=subdirs" > dmutils.pro
+ echo "CONFIG=console" >> dmutils.pro
+ echo "SUBDIRS=${UTILS}" >> dmutils.pro
+}
+
+do_install() {
+ install -d ${D}/${bindir}/
+ for u in ${UTILS}
+ do
+ install -m 0755 ${S}/${u}/${u} ${D}/${bindir}/
+ done
+}
--- /dev/null
+DESCRIPTION = "Small utilities specific to the dreambox dvb receiver (for DVB v1)"
+DEPENDS = "dreambox-dvbincludes"
+SECTION = "base"
+PRIORITY = "optional"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+LICENSE = "GPL"
+PV = "1.0"
+PR = "r0"
+
+SRC_URI = "http://sources.dreamboxupdate.com/download/opendreambox/dreambox-dvb-tools-1.0.tar.gz"
+
+inherit qmake
+
+UTILS = "grabpic showiframe dvbnet test_tbl test_dmx"
+
+do_configure_prepend() {
+ cd ${S}/
+ echo "TEMPLATE=subdirs" > dmutils.pro
+ echo "CONFIG=console" >> dmutils.pro
+ echo "SUBDIRS=${UTILS}" >> dmutils.pro
+}
+
+do_install() {
+ install -d ${D}/${bindir}/
+ for u in ${UTILS}
+ do
+ install -m 0755 ${S}/${u}/${u} ${D}/${bindir}/
+ done
+}
--- /dev/null
+DESCRIPTION = "This package provides dbox2/dreambox \
+compatible header files for the API to the drivers."
+
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+
+SRC_URI = "http://sources.dreamboxupdate.com/snapshots/include2.tar.gz"
+S = "${WORKDIR}/include"
+
+ALLOW_EMPTY_dreambox-dvbincludes = "1"
+
+INPUT_FILES = "input_fake.h ci/ci.h dbox/avia_gt_pig.h dbox/avs_core.h \
+ dbox/event.h dbox/fp.h dbox/info.h dbox/lcd.h dbox/saa7126_core.h \
+ dbox/lcd-ks0713.h dbox/fb.h \
+ dreambox/dreaminfo.h \
+ tuxbox/hardware_dbox2.h tuxbox/hardware_dreambox.h tuxbox/hardware_pci.h \
+ tuxbox/info.h tuxbox/info_dbox2.h tuxbox/kernel.h"
+
+INPUT_FILES_OST = " ost/audio.h ost/ca.h ost/demux.h ost/descrambler.h ost/dmx.h \
+ ost/dvb.h ost/dvb_frontend.h ost/frontend.h ost/net.h ost/sec.h \
+ ost/video.h "
+
+PV="1"
+
+do_install_dm7020() {
+ install -d ${STAGING_INCDIR}/ci
+ install -d ${STAGING_INCDIR}/dbox
+ install -d ${STAGING_INCDIR}/dreambox
+ install -d ${STAGING_INCDIR}/ost
+ install -d ${STAGING_INCDIR}/tuxbox
+ for f in ${INPUT_FILES} ${INPUT_FILES_OST}; do
+ install -m 0644 ${S}/$f ${STAGING_INCDIR}/$f
+ done;
+}
+
+do_install_dm600pvr() {
+ install -d ${STAGING_INCDIR}/ci
+ install -d ${STAGING_INCDIR}/dbox
+ install -d ${STAGING_INCDIR}/dreambox
+ install -d ${STAGING_INCDIR}/ost
+ install -d ${STAGING_INCDIR}/tuxbox
+ for f in ${INPUT_FILES} ${INPUT_FILES_OST}; do
+ install -m 0644 ${S}/$f ${STAGING_INCDIR}/$f
+ done;
+}
+
+do_install_dm500plus() {
+ install -d ${STAGING_INCDIR}/ci
+ install -d ${STAGING_INCDIR}/dbox
+ install -d ${STAGING_INCDIR}/dreambox
+ install -d ${STAGING_INCDIR}/ost
+ install -d ${STAGING_INCDIR}/tuxbox
+ for f in ${INPUT_FILES} ${INPUT_FILES_OST}; do
+ install -m 0644 ${S}/$f ${STAGING_INCDIR}/$f
+ done;
+}
+
+do_install_dm7025() {
+ install -d ${STAGING_INCDIR}/ci
+ install -d ${STAGING_INCDIR}/dbox
+ install -d ${STAGING_INCDIR}/dreambox
+ install -d ${STAGING_INCDIR}/tuxbox
+ for f in ${INPUT_FILES}; do
+ install -m 0644 ${S}/$f ${STAGING_INCDIR}/$f
+ done;
+}
+
+do_install_dm800() {
+ install -d ${STAGING_INCDIR}/ci
+ install -d ${STAGING_INCDIR}/dbox
+ install -d ${STAGING_INCDIR}/dreambox
+ install -d ${STAGING_INCDIR}/tuxbox
+ for f in ${INPUT_FILES}; do
+ install -m 0644 ${S}/$f ${STAGING_INCDIR}/$f
+ done;
+}
+
+do_install_dm8000() {
+ install -d ${STAGING_INCDIR}/ci
+ install -d ${STAGING_INCDIR}/dbox
+ install -d ${STAGING_INCDIR}/dreambox
+ install -d ${STAGING_INCDIR}/tuxbox
+ for f in ${INPUT_FILES}; do
+ install -m 0644 ${S}/$f ${STAGING_INCDIR}/$f
+ done;
+}
--- /dev/null
+DESCRIPTION = "Configuration files for online package repositories aka feeds"
+PR = "r0"
+
+DISTRO_FEED_PREFIX ?= "official"
+DISTRO_FEED_URI ?= "http://sources.dreamboxupdate.com/${DISTRO}/${DISTRO_VERSION}"
+
+do_compile() {
+ mkdir -p ${S}/${sysconfdir}/opkg
+ for feed in all ${TARGET_ARCH} ${MACHINE_ARCH}; do
+ echo "src/gz ${DISTRO_FEED_PREFIX}-${feed} ${DISTRO_FEED_URI}/${feed}" > ${S}/${sysconfdir}/opkg/${feed}-feed.conf
+ done
+}
+do_install () {
+ install -d ${D}${sysconfdir}/opkg
+ install -m 0644 ${S}/${sysconfdir}/opkg/* ${D}${sysconfdir}/opkg/
+}
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+CONFFILES_${PN} += '${@ " ".join( [ ( "${sysconfdir}/opkg/%s-feed.conf" % feed ) for feed in "all ${TARGET_ARCH} ${MACHINE_ARCH}".split() ] ) }'
--- /dev/null
+DESCRIPTION = "Dreambox Keyboard Keymap files"
+LICENSE = "GPL"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+
+SRC_URI = "file://dream-de.info file://dream-de.kmap file://eng.info file://eng.kmap"
+
+PR = "r1"
+
+FILES_${PN} = "/"
+PACKAGE_ARCH = "all"
+
+do_install() {
+ install -d ${D}/usr/share/keymaps
+ for x in dream-de.info dream-de.kmap eng.info eng.kmap; do
+ install -m 0644 ${WORKDIR}/$x ${D}/usr/share/keymaps/$x
+ done
+}
--- /dev/null
+kmap=dream-de.kmap
+name=Dreambox Keyboard Deutsch
--- /dev/null
+kmap=eng.kmap
+name=Keyboard English
--- /dev/null
+DESCRIPTION = "Dreambox second stage bootloader"
+SECTION = "base"
+PRIORITY = "required"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+PV_dm7020 = "35"
+PV_dm7025 = "61"
+PV_dm600pvr = "66"
+PV_dm500plus = "66"
+PV_dm8000 = "71"
+PV_dm800 = "70"
+PR = "r1"
+
+SRC_URI = "http://sources.dreamboxupdate.com/download/7020/secondstage-${MACHINE}-${PV}.bin"
+
+SECONDSTAGE_UPDATE_SRC = "http://sources.dreamboxupdate.com/download/7020/secondstage-${MACHINE}-${PV}.nfi \
+ http://sources.dreamboxupdate.com/download/7020/writenfi-r1"
+
+SRC_URI_append_dm8000 = " ${SECONDSTAGE_UPDATE_SRC}"
+SRC_URI_append_dm800 = " ${SECONDSTAGE_UPDATE_SRC}"
+
+S = "${WORKDIR}"
+
+do_stage() {
+ install -d ${STAGING_LIBDIR}/dreambox-secondstage
+ gzip -c ${S}/secondstage-${MACHINE}-${PV}.bin > ${STAGING_LIBDIR}/dreambox-secondstage/main.bin.gz
+}
+
+# the dm{800,8000} secondstage is already compressed (and encrypted)
+
+do_stage_dm8000() {
+ install -d ${STAGING_LIBDIR}/dreambox-secondstage
+ cp ${S}/secondstage-${MACHINE}-${PV}.bin ${STAGING_LIBDIR}/dreambox-secondstage/main.bin.gz
+}
+
+do_install_dm8000() {
+ install -d ${D}/tmp
+ install ${WORKDIR}/secondstage-${MACHINE}-${PV}.nfi ${D}/tmp/secondstage.nfi
+ install -m 0755 ${WORKDIR}/writenfi-r1 ${D}/tmp/writenfi
+}
+
+do_stage_dm800() {
+ do_stage_dm8000
+}
+
+do_install_dm800() {
+ do_install_dm8000
+}
+
+FILES_${PN} = "/tmp"
+PACKAGE_ARCH := "${MACHINE_ARCH}"
+
+pkg_postinst() {
+ if [ -d /proc/stb ]; then
+ if [ -f /tmp/writenfi ]; then
+ /tmp/writenfi /tmp/secondstage.nfi;
+ rm /tmp/writenfi /tmp/secondstage.nfi;
+ fi
+ fi
+}
--- /dev/null
+DESCRIPTION = "dvd+rw-tools makes it possible to burn DVD images"
+LICENSE = "GPL"
+SECTION = "optional"
+
+SRC_URI = "http://fy.chalmers.se/~appro/linux/DVD+RW/tools/${PN}-${PV}.tar.gz"
+
+inherit autotools
+
+EXTRA_OEMAKE = "'CC=${CC}' 'CXX=${CXX}' \
+ 'CFLAGS=${CFLAGS} ${LDFLAGS}' 'prefix=${D}'"
--- /dev/null
+DESCRIPTION = "A set of tools to help you generate DVD files to be played back on a standalone DVD player."
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+LICENSE = "GPL"
+SECTION = "optional"
+DEPENDS = "libdvdread"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/dvdauthor/dvdauthor-${PV}.tar.gz \
+ file://dvdauthor-fix-fribidi.patch;patch=1;pnum=1 \
+ file://dvdauthor-flush-progress.patch;patch=1;pnum=1 \
+ file://dvdauthor-fix-old-freetype.patch;patch=1;pnum=1"
+
+PR="r1"
+inherit autotools
--- /dev/null
+Index: dvdauthor-0.6.14/configure.ac
+===================================================================
+--- dvdauthor-0.6.14.orig/configure.ac 2008-04-08 23:57:39.000000000 +0200
++++ dvdauthor-0.6.14/configure.ac 2008-04-08 23:56:53.000000000 +0200
+@@ -57,12 +57,10 @@
+ AC_SUBST(MAGICK_CPPFLAGS)
+ AC_SUBST(MAGICK_LIBS)
+
+-AC_CHECK_PROGS(FRIBIDICONFIG, [fribidi-config])
+-if test -n "$FRIBIDICONFIG"; then
+- FRIBIDI_CPPFLAGS="`$FRIBIDICONFIG --cflags`"
+- FRIBIDI_LIBS="`$FRIBIDICONFIG --libs`"
+- AC_DEFINE(HAVE_FRIBIDI, 1, [Whether FriBiDi is available])
+-fi
++PKG_CHECK_MODULES(FRIBIDI, fribidi)
++AC_SUBST(FRIBIDI_CFLAGS)
++AC_SUBST(FRIBIDI_LIBS)
++AC_DEFINE(HAVE_FRIBIDI, 1, [Whether FriBiDi is available])
+
+ AC_SUBST(FRIBIDI_CPPFLAGS)
+ AC_SUBST(FRIBIDI_LIBS)
--- /dev/null
+Index: dvdauthor-0.6.14/src/subfont.c
+===================================================================
+--- dvdauthor-0.6.14.orig/src/subfont.c 2008-04-08 23:58:04.000000000 +0200
++++ dvdauthor-0.6.14/src/subfont.c 2008-04-08 23:56:50.000000000 +0200
+@@ -557,7 +557,7 @@
+ desc->font[c] = -1;
+ return;
+ }
+- if( oglyph->format != FT_GLYPH_FORMAT_BITMAP ) {
++ if( oglyph->format != ft_glyph_format_bitmap ) {
+ WARNING("FT_Get_Glyph did not return a bitmap glyph.");
+ desc->font[c] = -1;
+ return;
--- /dev/null
+--- ./src/dvdvob.c~ 2007-01-13 00:52:20.000000000 +0100
++++ ./src/dvdvob.c 2008-11-05 14:49:42.000000000 +0100
+@@ -741,7 +741,7 @@
+ nv+=va->vobs[j]->numvobus;
+
+ // fprintf(stderr,"STAT: VOBU %d at %dMB, %d PGCS, %d:%02d:%02d\r",nv,cursect/512,va->numallpgcs,total/324000000,(total%324000000)/5400000,(total%5400000)/90000);
+- fprintf(stderr,"STAT: VOBU %d at %dMB, %d PGCS\r",nv,cursect/512,va->numallpgcs);
++ fprintf(stderr,"STAT: VOBU %d at %dMB, %d PGCS\n",nv,cursect/512,va->numallpgcs);
+ }
+
+ static void audio_scan_ac3(struct audchannel *ach,unsigned char *buf,int sof,int len)
--- /dev/null
+DEPENDS = "enigma"
+DESCRIPTION = "Enigma Blindscan Plugin"
+MAINTAINER = "Andreas Monzner <ghost@dream-multimedia-tv.de>"
+LICENSE = "GPL"
+
+SRC_URI = "http://sources.dreamboxupdate.com/download/opendreambox/enigma/enigma-blindscan-${PV}.tar.bz2"
+
+PV = "0.1"
+PN = "enigma-blindscan"
+PR = "r0"
+
+PACKAGES = "enigma-blindscan"
+
+S = "${WORKDIR}/enigma-blindscan-${PV}"
+
+inherit autotools pkgconfig
+
+FILES_${PN} = "/usr/lib/tuxbox/plugins/enigma_blindscan.so \
+ /usr/lib/tuxbox/plugins/enigma_blindscan.cfg"
+
+EXTRA_OECONF = "--with-target=native "
--- /dev/null
+DEPENDS = "enigma"
+DESCRIPTION = "Enigma Modem Plugin"
+MAINTAINER = "Andreas Monzner <ghost@dream-multimedia-tv.de>"
+LICENSE = "GPL"
+
+SRC_URI = "http://sources.dreamboxupdate.com/download/opendreambox/enigma/enigma-modem-${PV}.tar.gz"
+
+PV = "0.3"
+PN = "enigma-modem"
+PR = "r0"
+
+PACKAGES = "enigma-modem"
+
+S = "${WORKDIR}/enigma-modem-${PV}"
+
+inherit autotools pkgconfig
+
+FILES_${PN} = "/usr/lib/tuxbox/plugins/enigma_modem.so \
+ /usr/lib/tuxbox/plugins/enigma_modem.cfg \
+ /etc/ppp/options \
+ /etc/ppp/pap-secrets \
+ /etc/ppp/dial.modem \
+ /etc/ppp/disconnect.modem \
+ /etc/ppp/ip-up.d/01peerdns /etc/ppp/ip-down.d/01peerdns-remove"
+
+EXTRA_OECONF = "--with-target=native "
+
+PPP_FILES = "dial.modem options disconnect.modem pap-secrets"
+
+do_install_append() {
+ install -d ${D}/etc/ppp
+ for i in dial.modem disconnect.modem; do
+ install -m 0755 ${S}/$i ${D}/etc/ppp/
+ done;
+ for i in options pap-secrets; do
+ install -m 0644 ${S}/$i ${D}/etc/ppp/
+ done;
+ install -d ${D}/etc/ppp/ip-up.d
+ install -m 0755 ${S}/01peerdns ${D}/etc/ppp/ip-up.d
+ install -d ${D}/etc/ppp/ip-down.d
+ install -m 0755 ${S}/01peerdns-remove ${D}/etc/ppp/ip-down.d
+}
+
--- /dev/null
+Index: src/enigma_scan.cpp
+===================================================================
+RCS file: /cvs/tuxbox/apps/tuxbox/b/src/enigma_scan.cpp,v
+retrieving revision 1.25
+diff -u -r1.25 enigma_scan.cpp
+--- a/src/enigma_scan.cpp 5 Feb 2006 23:41:01 -0000 1.25
++++ b/src/enigma_scan.cpp 21 Aug 2007 17:08:27 -0000
+@@ -27,6 +27,7 @@
+ #include <scan.h>
+ #include <satfind.h>
+ #include <tpeditwindow.h>
++#include <enigma_plugins.h>
+ #include <lib/base/i18n.h>
+ #include <lib/dvb/edvb.h>
+ #include <lib/dvb/frontend.h>
+@@ -63,6 +64,8 @@
+ CONNECT((new eListBoxEntryMenu(&list, _("Automatic Multisat Scan"), eString().sprintf("(%d) %s", ++entry, _("open automatic multisat transponder scan"))))->selected, eZapScan::sel_multiScan);
+
+ CONNECT((new eListBoxEntryMenu(&list, _("Manual Transponder Scan"), eString().sprintf("(%d) %s", ++entry, _("open manual transponder scan"))))->selected, eZapScan::sel_manualScan);
++ if ( eFrontend::getInstance()->canBlindScan() && eZapPlugins(2).execPluginByName("enigma_blindscan.cfg", true) == "OK" )
++ CONNECT((new eListBoxEntryMenu(&list, _("Satellite Blindscan"), eString().sprintf("(%d) %s", ++entry, _("open transponder blindscan"))))->selected, eZapScan::sel_blindScan);
+ }
+
+ void eZapScan::sel_satfind()
+@@ -111,6 +114,13 @@
+ show();
+ }
+
++void eZapScan::sel_blindScan()
++{
++ hide();
++ eZapPlugins(2).execPluginByName("enigma_blindscan.cfg");
++ show();
++}
++
+ void eZapScan::sel_satconfig()
+ {
+ hide();
+Index: src/enigma_scan.h
+===================================================================
+RCS file: /cvs/tuxbox/apps/tuxbox/b/src/enigma_scan.h,v
+retrieving revision 1.7
+diff -u -r1.7 enigma_scan.h
+--- a/src/enigma_scan.h 26 Oct 2003 00:41:17 -0000 1.7
++++ b/src/enigma_scan.h 21 Aug 2007 17:08:27 -0000
+@@ -25,6 +25,7 @@
+ void sel_multiScan();
+ void sel_manualScan();
+ void sel_satfind();
++ void sel_blindScan();
+ public:
+ static eLNB* getRotorLNB(int silent);
+ eZapScan();
+Index: src/scan.cpp
+===================================================================
+RCS file: /cvs/tuxbox/apps/tuxbox/b/src/scan.cpp,v
+retrieving revision 1.92
+diff -u -r1.92 scan.cpp
+--- a/src/scan.cpp 5 Feb 2006 23:41:01 -0000 1.92
++++ b/src/scan.cpp 21 Aug 2007 17:08:27 -0000
+@@ -3,6 +3,7 @@
+ #include <enigma.h>
+
+ #include <enigma_main.h>
++#include <enigma_plugins.h>
+ #include <lib/base/i18n.h>
+ #include <lib/dvb/frontend.h>
+ #include <lib/dvb/si.h>
+@@ -45,6 +46,8 @@
+ new eListBoxEntryMenuItem(list, _("Automatic Multisat Scan"), (void*)3, 0, _("open automatic multisat transponder scan") );
+ new eListBoxEntryMenuItem(list, _("manual scan.."), (void*)1, 0, _("open manual transponder scan") );
+ CONNECT(list->selected, tsSelectType::selected);
++ if ( eFrontend::getInstance()->canBlindScan() && eZapPlugins(2).execPluginByName("enigma_blindscan.cfg", true) == "OK" )
++ new eListBoxEntryMenuItem(list, _("Satellite Blindscan"), (void*)4, 0, _("open transponder blindscan") );
+ }
+
+ void tsSelectType::selected(eListBoxEntryMenu *entry)
+@@ -989,6 +992,22 @@
+ }
+ }
+
++
++struct countTransponders
++{
++ int &m_cnt;
++ countTransponders(int &cnt)
++ :m_cnt(cnt)
++ {
++ m_cnt=0;
++ }
++ void operator()(eTransponder &t)
++ {
++ ++m_cnt;
++ }
++};
++
++
+ int TransponderScan::Exec()
+ {
+ tState state = stateInitial;
+@@ -1335,6 +1354,20 @@
+ state=stateDone;
+ break;
+ }
++ case stateBlind:
++ {
++ int tp_count_old, tp_count_new;
++ eTransponderList::getInstance()->forEachTransponder(countTransponders(tp_count_old));
++ eWindow::globalCancel(eWindow::ON);
++ hide();
++ eZapPlugins(2).execPluginByName("enigma_blindscan.cfg");
++ show();
++ state=stateEnd;
++ eWindow::globalCancel(eWindow::OFF);
++ eTransponderList::getInstance()->forEachTransponder(countTransponders(tp_count_new));
++ ret=tp_count_new > tp_count_old ? 0 : 1;
++ break;
++ }
+ case stateScan:
+ {
+ if ( eSystemInfo::getInstance()->getFEType() == eSystemInfo::feSatellite )
+Index: src/scan.h
+===================================================================
+RCS file: /cvs/tuxbox/apps/tuxbox/b/src/scan.h,v
+retrieving revision 1.38
+diff -u -r1.38 scan.h
+--- a/src/scan.h 20 Feb 2007 21:57:05 -0000 1.38
++++ b/src/scan.h 21 Aug 2007 17:08:27 -0000
+@@ -172,6 +172,7 @@
+ stateManual,
+ stateAutomatic,
+ stateMulti,
++ stateBlind,
+ stateScan,
+ stateMultiScan,
+ stateDone,
+diff -Naur a/include/lib/dvb/frontend.h b/include/lib/dvb/frontend.h
+--- a/include/lib/dvb/frontend.h 2007-08-21 22:04:22.000000000 +0200
++++ b/include/lib/dvb/frontend.h 2007-08-24 00:59:42.000000000 +0200
+@@ -112,6 +112,7 @@
+ voltage,
+ increased;
+ ///////////////////
++ bool m_canBlindScan;
+ #if HAVE_DVB_API_VERSION < 3
+ FrontendParameters front;
+ #else
+@@ -157,6 +158,7 @@
+ static eFrontend *getInstance() { return frontend; }
+
+ int Type() { return type; }
++ int canBlindScan() { return m_canBlindScan; }
+
+ int Status();
+ int Locked() { return Status()&FE_HAS_LOCK; }
+diff -Naur a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp
+--- a/lib/dvb/frontend.cpp 2007-08-21 22:04:22.000000000 +0200
++++ b/lib/dvb/frontend.cpp 2007-08-24 01:00:13.000000000 +0200
+@@ -42,7 +42,7 @@
+ #endif
+ checkRotorLockTimer(eApp), checkLockTimer(eApp),
+ updateTransponderTimer(eApp), sn(0), noRotorCmd(0),
+- idlePowerInput_l(0), idlePowerInput_h(0)
++ idlePowerInput_l(0), idlePowerInput_h(0), m_canBlindScan(false)
+ {
+ CONNECT(rotorTimer1.timeout, eFrontend::RotorStartLoop );
+ CONNECT(rotorTimer2.timeout, eFrontend::RotorRunningLoop );
+@@ -99,6 +99,27 @@
+ curContTone = curVoltage = -1;
+ #endif
+ needreset = 2;
++
++// check if tuner can blindscan
++ if (type == eSystemInfo::feSatellite)
++ {
++ FILE *f=fopen("/proc/bus/nim_sockets", "rt");
++ while (f)
++ {
++ char buffer[128];
++ if (!fgets(buffer, 128, f))
++ {
++ fclose(f);
++ break;
++ }
++ if (strstr(buffer, "Name:") && strstr(buffer, "Alps -S(STV0288)"))
++ {
++ m_canBlindScan=true;
++ fclose(f);
++ break;
++ }
++ }
++ }
+ }
+
+ void eFrontend::checkLock()
--- /dev/null
+diff -Naur enigma/Makefile.am enigma_boot/Makefile.am
+--- enigma/Makefile.am 2005-09-28 10:49:03.000000000 +0200
++++ enigma_boot/Makefile.am 2005-10-31 11:29:55.000000000 +0100
+@@ -1,3 +1,3 @@
+ AUTOMAKE_OPTIONS = gnu
+
+-SUBDIRS = include lib src po data doc boot
++SUBDIRS = include lib src po data doc
--- /dev/null
+--- enigma-org/lib/dvb/dvbscan.cpp 11 Oct 2005 20:34:36 -0000 1.34
++++ enigma/lib/dvb/dvbscan.cpp 29 Apr 2008 14:43:47 -0000
+@@ -244,11 +244,15 @@
+ break;
+ }
+ }
+-
++
+ eDVBNamespace dvb_namespace =
+ tp.satellite.isValid()
+ ?eTransponder::buildNamespace(onid,tsid,tp.satellite.orbital_position,tp.satellite.frequency, tp.satellite.polarisation)
+- :-1;
++ :tp.cable.isValid()
++ ?eTransponder::buildNamespace(onid,tsid, 0xFFFF, tp.cable.frequency, 0)
++ :tp.terrestrial.isValid()
++ ?eTransponder::buildNamespace(onid,tsid, 0xEEEE, tp.terrestrial.centre_frequency/1000, 0)
++ :-1; // should not happen
+
+ tp.dvb_namespace=dvb_namespace;
+
+@@ -390,14 +394,17 @@
+ // build "namespace" to work around buggy satellites
+ if (transponder->satellite.valid)
+ dvb_namespace=eTransponder::buildNamespace(onid, tsid, transponder->satellite.orbital_position, transponder->satellite.frequency, transponder->satellite.polarisation);
++ else if (transponder->cable.valid)
++ dvb_namespace=eTransponder::buildNamespace(onid, tsid, 0xFFFF, transponder->cable.frequency, 0);
++ else if (transponder->terrestrial.valid)
++ dvb_namespace=eTransponder::buildNamespace(onid, tsid, 0xEEEE, transponder->terrestrial.centre_frequency/1000, 0);
+ else
+- dvb_namespace=0;
++ dvb_namespace=0; // should not happen!
+
+ transponder->dvb_namespace=dvb_namespace;
+
+ eTransponder *tmp = 0;
+- if ( transponder->satellite.valid &&
+- dvb_namespace.get() & 0xFFFF ) // feeds.. scpc.. or muxxers with default values
++ if ( dvb_namespace.get() & 0xFFFF ) // feeds.. scpc.. or muxxers with default values
+ {
+ eDebug("[SCAN] SCPC detected... compare complete transponder");
+ // we must search transponder via freq pol usw..
+--- enigma-org/src/scan.cpp 17 Dec 2007 15:09:13 -0000 1.93
++++ enigma/src/scan.cpp 29 Apr 2008 14:44:15 -0000
+@@ -2004,8 +2004,16 @@
+ transponder.satellite.orbital_position,
+ transponder.satellite.frequency,
+ transponder.satellite.polarisation);
+- else
+- dvb_namespace=0;
++ else if (transponder.cable.valid)
++ dvb_namespace=eTransponder::buildNamespace(onid, tsid,
++ 0xFFFF,
++ transponder.cable.frequency,
++ 0);
++ else if (transponder.terrestrial.valid)
++ dvb_namespace=eTransponder::buildNamespace(onid, tsid,
++ 0xEEEE,
++ transponder.terrestrial.centre_frequency/1000, // centre_freq is in hz
++ 0);
+
+ transponder.dvb_namespace=dvb_namespace;
+
--- /dev/null
+diff -auNr enigma/include/lib/dvb/dvb.h enigma-gcc4hack/include/lib/dvb/dvb.h
+--- enigma/include/lib/dvb/dvb.h 2007-03-16 19:25:43.000000000 +0100
++++ enigma-gcc4hack/include/lib/dvb/dvb.h 2009-01-01 20:10:47.000000000 +0100
+@@ -945,11 +945,13 @@
+ for (std::map<tsref,eTransponder>::iterator i(transponders.begin()); i!=transponders.end(); ++i)
+ ob(i->second);
+ }
++#if 0
+ template <class T> void forEachChannel(T ob)
+ {
+ for (std::map<int,eServiceDVB*>::iterator i(channel_number.begin()); i!=channel_number.end(); ++i)
+ ob(*i->second);
+ }
++#endif
+
+ eTransponder *getFirstTransponder(int state);
+ eSatellite *findSatellite(int orbital_position);
--- /dev/null
+#!/bin/sh
+
+/usr/bin/showiframe /boot/backdrop.mvi
+
+init=0
+/usr/bin/boot || init=1
+if [ $init -eq 1 ] ; then
+ rm -R /etc/enigma
+fi
+
+if [ ! -e /etc/enigma ] ; then
+ cp -R /usr/share/enigma/default /etc/enigma
+fi
+
+/usr/bin/enigma
+
+ret=$?
+case $ret in
+ 0)
+ /sbin/halt
+ ;;
+ 4)
+ /sbin/reboot
+ ;;
+ *)
+ ;;
+esac
+
--- /dev/null
+#!/bin/sh
+PID=`pidof tuxmaild`
+if [ $PID ]; then
+ /etc/init.d/tuxmail pause;
+fi
\ No newline at end of file
--- /dev/null
+#!/bin/sh
+PID=`pidof tuxmaild`
+if [ $PID ]; then
+ /etc/init.d/tuxmail pause;
+fi
\ No newline at end of file
--- /dev/null
+diff -Naur enigma/include/lib/dvb/epgcache.h enigma_fix/include/lib/dvb/epgcache.h
+--- enigma/include/lib/dvb/epgcache.h 2008-02-18 17:35:38.000000000 +0100
++++ enigma_fix/include/lib/dvb/epgcache.h 2008-02-18 17:06:58.000000000 +0100
+@@ -315,7 +315,7 @@
+
+ int state;
+ __u8 isRunning, firstStart, haveData;
+- void FixOverlapping(std::pair<eventMap,timeMap> &, time_t, int, const timeMap::iterator &, const uniqueEPGKey &);
++ bool FixOverlapping(std::pair<eventMap,timeMap> &, time_t, int, const timeMap::iterator &, const uniqueEPGKey &);
+ int sectionRead(__u8 *data, int source);
+ static eEPGCache *instance;
+
+diff -Naur enigma/lib/dvb/epgcache.cpp enigma_fix/lib/dvb/epgcache.cpp
+--- enigma/lib/dvb/epgcache.cpp 2008-02-18 17:35:38.000000000 +0100
++++ enigma_fix/lib/dvb/epgcache.cpp 2008-02-18 17:34:01.000000000 +0100
+@@ -325,7 +325,7 @@
+ int sid = data[ptr++] << 8;
+ sid |= data[ptr++];
+
+-// WORKAROUND for wrong transmitted epg data (01.08.2006)
++// WORKAROUND for wrong transmitted epg data (01.10.2007)
+ if ( onid == 0x85 )
+ {
+ switch( (tsid << 16) | sid )
+@@ -336,6 +336,7 @@
+ case 0x0300f5: sid = 0xdc; break;
+ case 0x0400d2: sid = 0xe2; tsid = 0x11; break;
+ case 0x1100d3: sid = 0xe3; break;
++ case 0x0100d4: sid = 0xe4; tsid = 4; break;
+ }
+ }
+ ////////////////////////////////////////////
+@@ -448,8 +449,9 @@
+ }
+ #endif // ENABLE_PRIVATE_EPG
+
+-void eEPGCache::FixOverlapping(std::pair<eventMap,timeMap> &servicemap, time_t TM, int duration, const timeMap::iterator &tm_it, const uniqueEPGKey &service)
++bool eEPGCache::FixOverlapping(std::pair<eventMap,timeMap> &servicemap, time_t TM, int duration, const timeMap::iterator &tm_it, const uniqueEPGKey &service)
+ {
++ bool ret = false;
+ timeMap::iterator tmp = tm_it;
+ while ((tmp->first+tmp->second->getDuration()-300) > TM)
+ {
+@@ -464,6 +466,20 @@
+ {
+ __u16 event_id = tmp->second->getEventID();
+ servicemap.first.erase(event_id);
++#ifdef EPG_DEBUG
++ {
++ EITEvent evt((eit_event_struct *)tmp->second->get(), service.tsid<<16|service.onid);
++ char tmp[255];
++ struct tm t;
++ localtime_r(&evt.start_time, &t);
++ snprintf(tmp, 255, "%08x(%d), %d seconds, %02d.%02d, %02d:%02d",
++ evt.event_id, evt.event_id,
++ evt.duration,
++ t.tm_mday, t.tm_mon+1,
++ t.tm_hour, t.tm_min);
++ eDebug("(1)erase no more used event %s", tmp);
++ }
++#endif
+ delete tmp->second;
+ if (tmp == servicemap.second.begin())
+ {
+@@ -472,6 +488,7 @@
+ }
+ else
+ servicemap.second.erase(tmp--);
++ ret = true;
+ }
+ else
+ {
+@@ -495,14 +512,30 @@
+ {
+ __u16 event_id = tmp->second->getEventID();
+ servicemap.first.erase(event_id);
++#ifdef EPG_DEBUG
++ {
++ EITEvent evt((eit_event_struct *)tmp->second->get(), service.tsid<<16|service.onid);
++ char tmp[255];
++ struct tm t;
++ localtime_r(&evt.start_time, &t);
++ snprintf(tmp, 255, "%08x(%d), %d seconds, %02d.%02d, %02d:%02d",
++ evt.event_id, evt.event_id,
++ evt.duration,
++ t.tm_mday, t.tm_mon+1,
++ t.tm_hour, t.tm_min);
++ eDebug("(2)erase no more used event %s", tmp);
++ }
++#endif
+ delete tmp->second;
+ servicemap.second.erase(tmp++);
++ ret = true;
+ }
+ else
+ ++tmp;
+ if (tmp == servicemap.second.end())
+ break;
+ }
++ return ret;
+ }
+
+ int eEPGCache::sectionRead(__u8 *data, int source)
+@@ -560,7 +593,11 @@
+ if ( data[ptr-1] < 0x40 )
+ --ptr;
+
+- uniqueEPGKey service( HILO(eit->service_id), HILO(eit->original_network_id), HILO(eit->transport_stream_id) );
++ // Cablecom HACK.. for incorrect tsid/onid in eit data
++ bool use_transponder_chid = source == SCHEDULE || (source == NOWNEXT && data[0] == 0x4E);
++ uniqueEPGKey service( HILO(eit->service_id),
++ use_transponder_chid ? current_service.onid : HILO(eit->original_network_id),
++ use_transponder_chid ? current_service.tsid : HILO(eit->transport_stream_id) );
+
+ eit_event_struct* eit_event = (eit_event_struct*) (data+ptr);
+ int eit_event_size;
+@@ -658,7 +695,11 @@
+ eventData *tmp = ev_it->second;
+ ev_it->second = tm_it_tmp->second =
+ new eventData(eit_event, eit_event_size, source);
+- FixOverlapping(servicemap, TM, duration, tm_it_tmp, service);
++ if (FixOverlapping(servicemap, TM, duration, tm_it_tmp, service))
++ {
++ prevEventIt = servicemap.first.end();
++ prevTimeIt = servicemap.second.end();
++ }
+ delete tmp;
+ goto next;
+ }
+@@ -730,8 +771,6 @@
+ tm_it=prevTimeIt=servicemap.second.insert( prevTimeIt, std::pair<const time_t, eventData*>( TM, evt ) );
+ }
+
+- FixOverlapping(servicemap, TM, duration, tm_it, service);
+-
+ #if EPG_DEBUG
+ if ( consistencyCheck )
+ {
+@@ -751,6 +790,11 @@
+ ev_it->first, event_id );
+ }
+ #endif
++ if (FixOverlapping(servicemap, TM, duration, tm_it, service))
++ {
++ prevEventIt = servicemap.first.end();
++ prevTimeIt = servicemap.second.end();
++ }
+ }
+ next:
+ #if EPG_DEBUG
--- /dev/null
+i:/elitedvb/audio/ac3default=00000000
+i:/ezap/lcd/brightness=00000087
+i:/ezap/lcd/contrast=0000000a
+i:/ezap/lcd/inverted=00000000
+i:/ezap/rc/repeatRate=00000025
+i:/ezap/serviceselector/showButtons=00000001
+u:/elitedvb/video/vcr_switching=00000000
+u:/ezap/rc/TextInputField/nextCharTimeout=00000320
+i:/enigma/plugins/needoffsets/bottom=00000221
+i:/enigma/plugins/needoffsets/left=0000002c
+i:/enigma/plugins/needoffsets/right=000002a3
+i:/enigma/plugins/needoffsets/top=0000001d
--- /dev/null
+#NAME Favourites (TV)
+#SERVICE: 1:0:1:6DCA:44D:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6D66:437:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6DCC:44D:1:C00000:0:0:0:
+#SERVICE: 1:0:1:2EE3:441:1:C00000:0:0:0:
+#SERVICE: 1:0:1:445C:453:1:C00000:0:0:0:
+#SERVICE: 1:0:1:2EF4:441:1:C00000:0:0:0:
+#SERVICE: 1:0:1:445D:453:1:C00000:0:0:0:
+#SERVICE: 1:0:1:445E:453:1:C00000:0:0:0:
+#SERVICE: 1:0:1:33:21:85:C00000:0:0:0:
+#SERVICE: 1:0:1:701:5:85:C00000:0:0:0:
+#SERVICE: 1:0:1:2F1C:441:1:C00000:0:0:0:
+#SERVICE: 1:0:1:7005:436:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6DCD:44D:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6D67:437:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6E29:431:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6E2A:431:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6E2B:431:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6DCB:44D:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6E2C:431:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6E2D:431:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6F46:445:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6DCF:44D:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6E41:431:1:C00000:0:0:0:
+#SERVICE: 1:64:B:0:0:0:0:0:0:0:
+#DESCRIPTION: Doku/Wissen/Themen
+#SERVICE: 1:0:1:6DD0:44D:1:C00000:0:0:0:
+#SERVICE: 1:0:1:4289:446:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6D6E:437:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6D6B:437:1:C00000:0:0:0:
+#SERVICE: 1:0:1:2775:444:1:C00000:0:0:0:
+#SERVICE: 1:0:1:202:7:85:C00000:0:0:0:
+#SERVICE: 1:0:1:293:5:85:C00000:0:0:0:
+#SERVICE: 1:0:1:3158:459:1:C00000:0:0:0:
+#SERVICE: 1:0:1:3138:459:1:C00000:0:0:0:
+#SERVICE: 1:0:1:2FE:5:85:C00000:0:0:0:
+#SERVICE: 1:0:1:6D70:437:1:C00000:0:0:0:
+#SERVICE: 1:0:1:3139:459:1:C00000:0:0:0:
+#SERVICE: 1:0:1:F1CC:421:1:C00000:0:0:0:
+#SERVICE: 1:64:A:0:0:0:0:0:0:0:
+#DESCRIPTION: Sport
+#SERVICE: 1:0:1:384:21:85:C00000:0:0:0:
+#SERVICE: 1:0:1:79E0:443:1:C00000:0:0:0:
+#SERVICE: 1:64:1:0:0:0:0:0:0:0:
+#DESCRIPTION: Kinder
+#SERVICE: 1:0:1:2F08:441:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6D68:437:1:C00000:0:0:0:
+#SERVICE: 1:0:1:7008:436:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6FE0:443:1:C00000:0:0:0:
+#SERVICE: 1:64:2:0:0:0:0:0:0:0:
+#DESCRIPTION: Nachrichten
+#SERVICE: 1:0:1:2F3A:441:1:C00000:0:0:0:
+#SERVICE: 1:0:1:445F:453:1:C00000:0:0:0:
+#SERVICE: 1:0:1:79F4:443:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6DD2:44D:1:C00000:0:0:0:
+#SERVICE: 1:0:1:2F80:454:1:C00000:0:0:0:
+#SERVICE: 1:64:3:0:0:0:0:0:0:0:
+#DESCRIPTION: Regional
+#SERVICE: 1:0:1:3146:459:1:C00000:0:0:0:
+#SERVICE: 1:0:1:300:7:85:C00000:0:0:0:
+#SERVICE: 1:0:1:2778:444:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6F45:445:1:C00000:0:0:0:
+#SERVICE: 1:0:1:277A:444:1:C00000:0:0:0:
+#SERVICE: 1:0:1:2779:444:1:C00000:0:0:0:
+#SERVICE: 1:0:1:2777:444:1:C00000:0:0:0:
+#SERVICE: 1:0:1:32D6:45D:1:C00000:0:0:0:
+#SERVICE: 1:64:4:0:0:0:0:0:0:0:
+#DESCRIPTION: Musik
+#SERVICE: 1:0:1:308:5:85:C00000:0:0:0:
+#SERVICE: 1:0:1:2774:444:1:C00000:0:0:0:
+#SERVICE: 1:0:1:7004:436:1:C00000:0:0:0:
+#SERVICE: 1:0:1:7001:436:1:C00000:0:0:0:
+#SERVICE: 1:0:1:6FE1:443:1:C00000:0:0:0:
+#SERVICE: 1:0:1:2FD:7:85:C00000:0:0:0:
+#SERVICE: 1:0:1:32D5:45D:1:C00000:0:0:0:
+#SERVICE: 1:0:1:277B:444:1:C00000:0:0:0:
+#SERVICE: 1:0:1:332E:45B:1:C00000:0:0:0:
+#SERVICE: 1:0:1:304:5:85:C00000:0:0:0:
+#SERVICE: 1:0:1:702:5:85:C00000:0:0:0:
+#SERVICE: 1:64:5:0:0:0:0:0:0:0:
+#DESCRIPTION: Reisen
+#SERVICE: 1:0:1:20:21:85:C00000:0:0:0:
+#SERVICE: 1:0:1:2FC:5:85:C00000:0:0:0:
+#SERVICE: 1:0:1:301:7:85:C00000:0:0:0:
+#SERVICE: 1:64:9:0:0:0:0:0:0:0:
+#DESCRIPTION: Beratung
+#SERVICE: 1:0:1:295:21:85:C00000:0:0:0:
+#SERVICE: 1:0:1:277C:444:1:C00000:0:0:0:
+#SERVICE: 1:0:1:F9B:454:1:C00000:0:0:0:
+#SERVICE: 1:64:6:0:0:0:0:0:0:0:
+#DESCRIPTION: Einkaufen
+#SERVICE: 1:0:1:2F30:441:1:C00000:0:0:0:
+#SERVICE: 1:0:1:28:21:85:C00000:0:0:0:
+#SERVICE: 1:0:1:79EA:443:1:C00000:0:0:0:
+#SERVICE: 1:0:1:2F44:454:1:C00000:0:0:0:
+#SERVICE: 1:0:1:3148:459:1:C00000:0:0:0:
+#SERVICE: 1:0:1:332D:45B:1:C00000:0:0:0:
+#SERVICE: 1:0:1:36:7:85:C00000:0:0:0:
+#SERVICE: 1:0:1:307:7:85:C00000:0:0:0:
+#SERVICE: 1:0:1:296:5:85:C00000:0:0:0:
+#SERVICE: 1:0:1:F20B:421:1:C00000:0:0:0:
+#SERVICE: 1:0:1:1782:457:1:C00000:0:0:0:
+#SERVICE: 1:64:8:0:0:0:0:0:0:0:
+#DESCRIPTION: Gewinnspiele
+#SERVICE: 1:0:1:381:21:85:C00000:0:0:0:
+#SERVICE: 1:64:7:0:0:0:0:0:0:0:
+#DESCRIPTION: Anzeigen
+#SERVICE: 1:0:1:313C:459:1:C00000:0:0:0:
--- /dev/null
+#NAME Bouquets (TV)
+#SERVICE: 4097:7:0:33fc5:0:0:0:0:0:0:/etc/enigma/userbouquet.33fc5.tv
+#TYPE 16385
+/etc/enigma/userbouquet.33fc5.tv\r
\ No newline at end of file
--- /dev/null
+diff -Naur b/src/rds_text.cpp a/src/rds_text.cpp
+--- b/src/rds_text.cpp 2007-03-25 10:11:18.000000000 +0200
++++ a/src/rds_text.cpp 2007-11-26 13:14:00.000000000 +0100
+@@ -36,7 +36,9 @@
+ sn = new eSocketNotifier(eApp, fd, eSocketNotifier::Read);
+ CONNECT(sn->activated, RDSTextDecoder::process_data);
+ }
+-
++
++ memset(rtp_item, 0, sizeof(rtp_item));
++
+ int x = eSkin::getActive()->queryValue("rds.pos.x", 0);
+ int y = eSkin::getActive()->queryValue("rds.pos.y", 0);
+ int width = eSkin::getActive()->queryValue("rds.pos.width", 0);
+@@ -586,13 +588,19 @@
+
+ unsigned char rtplus_osd_tmp[64];
+
+- memcpy(rtp_item[rtp_typ[0]],lastmessage+rtp_start[0],rtp_len[0]+1);
+- rtp_item[rtp_typ[0]][rtp_len[0]+1]=0;
++ if (rtp_start[0] < 66 && (rtp_len[0]+rtp_start[0]) < 66)
++ {
++ memcpy(rtp_item[rtp_typ[0]],lastmessage+rtp_start[0],rtp_len[0]+1);
++ rtp_item[rtp_typ[0]][rtp_len[0]+1]=0;
++ }
+
+ if (rtp_typ[0] != rtp_typ[1])
+ {
+- memcpy(rtp_item[rtp_typ[1]],lastmessage+rtp_start[1],rtp_len[1]+1);
+- rtp_item[rtp_typ[1]][rtp_len[1]+1]=0;
++ if (rtp_start[1] < 66 && (rtp_len[1]+rtp_start[1]) < 66)
++ {
++ memcpy(rtp_item[rtp_typ[1]],lastmessage+rtp_start[1],rtp_len[1]+1);
++ rtp_item[rtp_typ[1]][rtp_len[1]+1]=0;
++ }
+ }
+
+ // main RTPlus item_types used by the radio stations:
+diff -Naur b/src/rds_text.cpp.patch a/src/rds_text.cpp.patch
+--- b/src/rds_text.cpp.patch 1970-01-01 01:00:00.000000000 +0100
++++ a/src/rds_text.cpp.patch 2007-11-08 23:45:47.000000000 +0100
+@@ -0,0 +1,26 @@
++--- rds_text.cpp.org 2007-03-25 10:11:18.000000000 +0200
+++++ rds_text.cpp 2007-11-08 23:40:37.000000000 +0100
++@@ -586,13 +586,19 @@
++
++ unsigned char rtplus_osd_tmp[64];
++
++- memcpy(rtp_item[rtp_typ[0]],lastmessage+rtp_start[0],rtp_len[0]+1);
++- rtp_item[rtp_typ[0]][rtp_len[0]+1]=0;
+++ if (rtp_start[0] < 66 && (rtp_len[0]+rtp_start[0]) < 66)
+++ {
+++ memcpy(rtp_item[rtp_typ[0]],lastmessage+rtp_start[0],rtp_len[0]+1);
+++ rtp_item[rtp_typ[0]][rtp_len[0]+1]=0;
+++ }
++
++ if (rtp_typ[0] != rtp_typ[1])
++ {
++- memcpy(rtp_item[rtp_typ[1]],lastmessage+rtp_start[1],rtp_len[1]+1);
++- rtp_item[rtp_typ[1]][rtp_len[1]+1]=0;
+++ if (rtp_start[1] < 66 && (rtp_len[1]+rtp_start[1]) < 66)
+++ {
+++ memcpy(rtp_item[rtp_typ[1]],lastmessage+rtp_start[1],rtp_len[1]+1);
+++ rtp_item[rtp_typ[1]][rtp_len[1]+1]=0;
+++ }
++ }
++
++ // main RTPlus item_types used by the radio stations:
--- /dev/null
+diff -Naur enigma_org/include/lib/dvb/frontend.h enigma/include/lib/dvb/frontend.h
+--- enigma_org/include/lib/dvb/frontend.h 2007-08-06 22:54:26.000000000 +0200
++++ enigma/include/lib/dvb/frontend.h 2007-08-06 22:47:44.000000000 +0200
+@@ -74,41 +74,43 @@
+ class eFrontend: public Object
+ {
+ int type,
+- fd,
++ fd,
+ #if HAVE_DVB_API_VERSION < 3
+- secfd,
++ secfd,
+ #else
+- curContTone,
+- curVoltage,
++ curContTone,
++ curVoltage,
+ #endif
+- needreset,
+- lastcsw,
+- lastucsw,
+- lastToneBurst,
+- lastRotorCmd,
+- lastSmatvFreq,
+- curRotorPos; // current Orbital Position
++ needreset,
++ lastcsw,
++ lastucsw,
++ lastToneBurst,
++ lastRotorCmd,
++ lastSmatvFreq,
++ curRotorPos; // current Orbital Position
+
+ eLNB *lastLNB;
+ eTransponder *transponder;
+ static eFrontend *frontend;
+ eTimer rotorTimer1, rotorTimer2,
+ #if HAVE_DVB_API_VERSION >=3
+- timeout,
++ timeout,
+ #endif
+- checkRotorLockTimer, checkLockTimer, updateTransponderTimer;
++ checkRotorLockTimer, checkLockTimer, updateTransponderTimer;
+ eSocketNotifier *sn;
+ int tries, noRotorCmd, wasLoopthrough, lostlockcount;
+ Signal1<void, eTransponder*> tpChanged;
+ // ROTOR INPUTPOWER
+ timeval rotorTimeout;
+- int idlePowerInput;
+- int runningPowerInput;
+- int newPos;
++ int idlePowerInput_l,
++ idlePowerInput_h,
++ runningPowerInput,
++ newPos,
++ voltageState;
+ // Non blocking rotor turning
+ int DeltaA,
+- voltage,
+- increased;
++ voltage,
++ increased;
+ ///////////////////
+ #if HAVE_DVB_API_VERSION < 3
+ FrontendParameters front;
+diff -Naur enigma_org/lib/dvb/frontend.cpp enigma/lib/dvb/frontend.cpp
+--- enigma_org/lib/dvb/frontend.cpp 2007-08-06 22:54:26.000000000 +0200
++++ enigma/lib/dvb/frontend.cpp 2007-08-06 22:55:48.000000000 +0200
+@@ -29,6 +29,10 @@
+
+ eFrontend* eFrontend::frontend;
+
++#ifndef I2C_SLAVE_FORCE
++#define I2C_SLAVE_FORCE 0x0706
++#endif
++
+ eFrontend::eFrontend(int type, const char *demod, const char *sec)
+ :type(type),
+ curRotorPos(10000), transponder(0), rotorTimer1(eApp),
+@@ -37,7 +41,8 @@
+ timeout(eApp),
+ #endif
+ checkRotorLockTimer(eApp), checkLockTimer(eApp),
+- updateTransponderTimer(eApp), sn(0), noRotorCmd(0)
++ updateTransponderTimer(eApp), sn(0), noRotorCmd(0),
++ idlePowerInput_l(0), idlePowerInput_h(0)
+ {
+ CONNECT(rotorTimer1.timeout, eFrontend::RotorStartLoop );
+ CONNECT(rotorTimer2.timeout, eFrontend::RotorRunningLoop );
+@@ -112,6 +117,40 @@
+ }
+ }
+
++#define STATIC 0
++#define DYNAMIC 1
++void setCurrentLimitingMode(int mode)
++{
++#if HAVE_DVB_API_VERSION < 3
++#warning FIXME setCurrentLimitingMode just for frontends with LNBP21
++ if ( eSystemInfo::getInstance()->getHwType() == eSystemInfo::DM7020
++ || eSystemInfo::getInstance()->getHwType() == eSystemInfo::DM500PLUS
++ || eSystemInfo::getInstance()->getHwType() == eSystemInfo::DM600PVR )
++ {
++ int fd=::open("/dev/i2c/0", O_RDWR);
++ if ( fd >= 0 )
++ {
++ unsigned char data[2];
++ ::ioctl(fd, I2C_SLAVE_FORCE, 0x10 >> 1);
++ if(::read(fd, data, 1) != 1)
++ eDebug("error read lnbp (%m)");
++ else
++ {
++ if (mode == STATIC)
++ data[0] |= 0x80; // set static current limiting
++ else
++ data[0] &= ~0x80; // set dynamic current limiting
++ if(::write(fd, data, 1) != 1)
++ eDebug("error write lnbp (%m)");
++ }
++ ::close(fd);
++ }
++ else
++ eDebug("couldn't open /dev/i2c/0 (%m)");
++ }
++#endif
++}
++
+ void eFrontend::checkRotorLock()
+ {
+ if (!transponder)
+@@ -130,6 +166,7 @@
+ {
+ eDebug("[FE] rotor has stopped..");
+ curRotorPos=newPos;
++ setCurrentLimitingMode(DYNAMIC);
+ /*emit*/ tunedIn(transponder, 0);
+ // eDebug("!!!!!!!!!!!!!!!! TUNED IN OK 1 !!!!!!!!!!!!!!!!");
+ if ( !eDVB::getInstance()->getScanAPI() )
+@@ -832,7 +869,10 @@
+ seq.voltage=SEC_VOLTAGE_OFF;
+ break;
+ }
+- return ::ioctl(secfd, SEC_SEND_SEQUENCE, &seq);
++ int ret = ::ioctl(secfd, SEC_SEND_SEQUENCE, &seq);
++ if ( ret < 0 )
++ eDebug("SEC_SEND_SEQUENCE failed(%m)");
++ return ret;
+ }
+ #else
+ int eFrontend::SendSequence( const eSecCmdSequence &seq )
+@@ -1033,10 +1073,7 @@
+ // send DiSEqC Sequence ( normal diseqc switches )
+ seq.continuousTone = eSecCmdSequence::TONE_OFF;
+ if ( SendSequence(seq) < 0 )
+- {
+- eDebug("SendSequence failed (%m)");
+ return -1;
+- }
+ else if ( lnb->getDiSEqC().SeqRepeat ) // Sequence Repeat selected ?
+ {
+ usleep( 100000 ); // between seq repeats we wait 75ms
+@@ -1048,6 +1085,7 @@
+ usleep( 100000 ); // wait 100ms
+
+ // send DiSEqC Sequence (Rotor)
++ setCurrentLimitingMode(STATIC);
+ seq.commands=&commands[seq.numCommands]; // last command is rotor cmd... see above...
+ seq.numCommands=1; // only rotor cmd
+ seq.toneBurst = eSecCmdSequence::NONE;
+@@ -1072,7 +1110,6 @@
+ #else
+ dvb_diseqc_master_cmd *commands = seq.commands;
+ #endif
+- idlePowerInput=0;
+ runningPowerInput=0;
+ int secTone = seq.continuousTone;
+
+@@ -1086,14 +1123,12 @@
+
+ seq.continuousTone=SEC_TONE_OFF;
+ if ( SendSequence(seq) < 0 )
+- {
+- eDebug("SendSequence failed (%m)");
+ return -2;
+- }
+ else if ( lnb->getDiSEqC().SeqRepeat ) // Sequence Repeat selected ?
+ {
+ usleep( 100000 ); // between seq repeats we wait 100ms
+- SendSequence(seq); // then repeat the cmd
++ if ( SendSequence(seq) < 0 )
++ return -2;
+ }
+
+ if ( lastLNB != lnb )
+@@ -1103,15 +1138,48 @@
+ }
+ else
+ {
+- usleep( 100*1000 ); // wait 100ms
+-// eDebug("sleep 100ms");
++ usleep( 50*1000 ); // wait 50ms
++// eDebug("sleep 50ms");
++ }
++
++ // get power input of Rotor on idle 13V .. only working with a dreambox
++ if ( !idlePowerInput_l )
++ {
++ idlePowerInput_l = readInputPower();
++ if ( idlePowerInput_l < 0 )
++ return idlePowerInput_l;
++// eDebug("idle power input l = %dmA", idlePowerInput_l );
+ }
+
+-// get power input of Rotor on idle not work on dbox yet .. only dreambox
+- idlePowerInput = readInputPower();
+- if ( idlePowerInput < 0 )
+- return idlePowerInput;
+-// eDebug("idle power input = %dmA", idlePowerInput );
++ setCurrentLimitingMode(STATIC);
++
++ // get power input of Rotor on idle 18V .. only working with a dreambox
++ if ( !idlePowerInput_h)
++ {
++#if HAVE_DVB_API_VERSION < 3
++ if (::ioctl(secfd, SEC_SET_VOLTAGE, increased ? SEC_VOLTAGE_18_5 : SEC_VOLTAGE_18) < 0 )
++ eDebug("SEC_SET_VOLTAGE failed (%m)");
++#else
++ if ( ::ioctl(fd, FE_SET_VOLTAGE, SEC_VOLTAGE_18) < 0 )
++ eDebug("FE_SET_VOLTAGE failed (%m)");
++#endif
++ usleep( 50*1000 ); // wait 50ms
++ idlePowerInput_h = readInputPower();
++ if ( idlePowerInput_h < 0 )
++ {
++ setCurrentLimitingMode(DYNAMIC);
++ return idlePowerInput_h;
++ }
++// eDebug("idle power input h = %dmA", idlePowerInput_h );
++#if HAVE_DVB_API_VERSION < 3
++ if (::ioctl(secfd, SEC_SET_VOLTAGE, increased ? SEC_VOLTAGE_13_5 : SEC_VOLTAGE_13) < 0 )
++ eDebug("SEC_SET_VOLTAGE failed (%m)");
++#else
++ if ( ::ioctl(fd, FE_SET_VOLTAGE, SEC_VOLTAGE_13) < 0 )
++ eDebug("FE_SET_VOLTAGE failed (%m)");
++#endif
++ usleep( 50*1000 ); // wait 50ms
++ }
+
+ // send DiSEqC Sequence (Rotor)
+ seq.commands=&commands[seq.numCommands]; // last command is rotor cmd... see above...
+@@ -1122,7 +1190,7 @@
+ seq.continuousTone=secTone;
+ if ( SendSequence(seq) < 0 )
+ {
+- eDebug("SendSequence failed (%m)");
++ setCurrentLimitingMode(DYNAMIC);
+ return -2;
+ }
+ // set rotor start timeout // 2 sek..
+@@ -1147,11 +1215,14 @@
+ {
+ runningPowerInput = readInputPower();
+ if ( runningPowerInput < 0 )
++ {
++ setCurrentLimitingMode(DYNAMIC);
+ return;
++ }
+ // eDebug("running %d mA", runningPowerInput);
+ // eDebug("delta %d mA", DeltaA);
+
+- if ( abs(runningPowerInput-idlePowerInput ) >= (DeltaA&0xFF) ) // rotor running ?
++ if ( abs(runningPowerInput-idlePowerInput_l ) >= (DeltaA&0xFF) ) // rotor running ?
+ {
+ if ( (DeltaA & 0x200) == 0x200 )
+ {
+@@ -1182,17 +1253,43 @@
+ {
+ timeval now;
+ gettimeofday(&now,0);
++
++ if ( voltageState == eSecCmdSequence::VOLTAGE_13 )
++ {
++ timeval tmp = rotorTimeout - now;
++ int timeout_msek = tmp.tv_sec * 1000 + tmp.tv_usec / 1000;
++ if ( timeout_msek < 149700 ) // rotor running at least 300msek?
++ {
++ // then switch to higher voltage
++#if HAVE_DVB_API_VERSION < 3
++ if (::ioctl(secfd, SEC_SET_VOLTAGE, increased ? SEC_VOLTAGE_18_5 : SEC_VOLTAGE_18) < 0 )
++ eDebug("SEC_SET_VOLTAGE failed (%m)");
++#else
++ if ( ::ioctl(fd, FE_SET_VOLTAGE, voltage) < 0 )
++ eDebug("FE_SET_VOLTAGE failed (%m)");
++ curVoltage = voltage;
++#endif
++ voltageState = eSecCmdSequence::VOLTAGE_18;
++ }
++ }
++
+ if ( rotorTimeout < now )
+ {
+ eDebug("Rotor timeouted :-(");
+ /* emit */ s_RotorTimeout();
++ setCurrentLimitingMode(DYNAMIC);
+ }
+ else
+ {
++ int &idlePowerInput = (voltageState == eSecCmdSequence::VOLTAGE_13) ? idlePowerInput_l : idlePowerInput_h;
++
+ runningPowerInput = readInputPower();
+ if ( runningPowerInput < 0 )
++ {
++ setCurrentLimitingMode(DYNAMIC);
+ return;
+-// eDebug("running %d mA", runningPowerInput);
++ }
++ // eDebug("running %d mA, idle %d mA", runningPowerInput, idlePowerInput);
+
+ if ( abs( idlePowerInput-runningPowerInput ) <= (DeltaA&0xFF) ) // rotor stoped ?
+ {
+@@ -1216,7 +1313,8 @@
+ {
+ if (type != eSystemInfo::feSatellite)
+ return;
+- if ( eSystemInfo::getInstance()->canMeasureLNBCurrent() == 1 )
++ setCurrentLimitingMode(DYNAMIC);
++ if ( voltageState == eSecCmdSequence::VOLTAGE_18 )
+ {
+ if ( voltage != eSecCmdSequence::VOLTAGE_18 )
+ #if HAVE_DVB_API_VERSION < 3
+@@ -1228,7 +1326,7 @@
+ curVoltage = voltage;
+ #endif
+ }
+- else // can only measure with lower lnb voltage ( 13V )
++ else
+ {
+ if ( voltage != eSecCmdSequence::VOLTAGE_13 )
+ #if HAVE_DVB_API_VERSION < 3
+@@ -1466,7 +1564,10 @@
+ checkLockTimer.stop();
+
+ if ( curRotorPos > 11000 )
++ {
+ curRotorPos = 11000;
++ setCurrentLimitingMode(DYNAMIC);
++ }
+
+ // eDebug("ROTOR STOPPED 1");
+ /* emit */ s_RotorStopped();
+@@ -1886,16 +1987,10 @@
+ commands[cmdCount-1].u.diseqc.params[1]);
+ #endif
+
+- // drive rotor with 18V when we can measure inputpower
+- // or we know which orbital pos currently is selected
++ // when we can measure inputpower we start rotor turning with 13V
+ if ( lnb->getDiSEqC().useRotorInPower&1 )
+- {
+- if ( eSystemInfo::getInstance()->canMeasureLNBCurrent() == 1 ) // can measure with voltage > 13V ?
+- seq.voltage = eSecCmdSequence::VOLTAGE_18;
+- else
+- seq.voltage = eSecCmdSequence::VOLTAGE_13;
+- }
+- else
++ voltageState = seq.voltage = eSecCmdSequence::VOLTAGE_13;
++ else // without measure input power we must start with the correct voltage
+ seq.voltage = voltage;
+
+ lastRotorCmd=RotorCmd;
+@@ -1926,14 +2021,12 @@
+ send:
+ seq.voltage=voltage;
+ if ( SendSequence(seq) < 0 )
+- {
+- eDebug("SendSequence failed (%m)");
+ return -1;
+- }
+ else if ( lnb->getDiSEqC().DiSEqCMode >= eDiSEqC::V1_1 && lnb->getDiSEqC().SeqRepeat ) // Sequence Repeat ?
+ {
+ usleep( 100000 ); // between seq repeats we wait 80ms
+- SendSequence(seq); // just do it *g*
++ if ( SendSequence(seq) < 0 )
++ return -1;
+ }
+ }
+ else if ( lastcsw != csw )
+@@ -2083,10 +2176,7 @@
+ seq.continuousTone = eSecCmdSequence::TONE_OFF;
+ seq.toneBurst = eSecCmdSequence::NONE;
+ if (SendSequence(seq) < 0 )
+- {
+- eDebug("SendSequence failed (%m)");
+ return -1;
+- }
+ }
+ if ( ioctl(fd, FE_SET_POWER_STATE, FE_POWER_OFF) < 0 )
+ eDebug("FE_SET_POWER_STATE failed (%m)");
+diff -Naur enigma_org/lib/system/info.cpp enigma/lib/system/info.cpp
+--- enigma_org/lib/system/info.cpp 2007-08-06 22:54:26.000000000 +0200
++++ enigma/lib/system/info.cpp 2007-08-06 22:47:44.000000000 +0200
+@@ -177,19 +177,8 @@
+ midstr="9";
+ modelstr="DM7020";
+ cpustr="STB04500, 252MHz";
+- hasrfmod = hashdd = haslcd = hasci
+- = canrecordts = hasstandbywakeuptimer = cantimeshift = 1;
+- // check if the box revision is new enough to measure
+- // lnb power with > 13V ( revisions with lnbp21 can this )
+- int fd = open("/dev/dbox/fp0", O_RDWR);
+- if ( fd >=0 )
+- {
+- if ( ::ioctl( fd, 0x100, 0 ) == 0 )
+- canmeasurelnbcurrent=1;
+- else
+- canmeasurelnbcurrent=2;
+- close(fd);
+- }
++ hasrfmod = hashdd = haslcd = hasci = canrecordts =
++ hasstandbywakeuptimer = cantimeshift = canmeasurelnbcurrent = 1;
+ hwtype = DM7020;
+ defaulttimertype=ePlaylistEntry::RecTimerEntry|ePlaylistEntry::recDVR;
+ break;
--- /dev/null
+--- enigma_org/lib/dvb/subtitle.cpp 2 Aug 2005 20:35:36 -0000 1.13
++++ enigma/lib/dvb/subtitle.cpp 21 Nov 2007 11:52:51 -0000
+@@ -337,6 +337,19 @@
+ delete page->page_regions;
+ page->page_regions = p;
+ }
++ while (page->regions)
++ {
++ struct subtitle_region *p = page->regions->next;
++ while(page->regions->region_objects)
++ {
++ subtitle_region_object *ob = page->regions->region_objects->next;
++ delete page->regions->region_objects;
++ page->regions->region_objects = ob;
++ }
++ delete [] page->regions->region_buffer;
++ delete page->regions;
++ page->regions = p;
++ }
+ }
+
+ // eDebug("new page.. (%d)", page_state);
+@@ -352,7 +365,14 @@
+ // go to last entry
+ while (*r)
+ r = &(*r)->next;
+-
++
++ if (processed_length == segment_length && !page->page_regions)
++ {
++// eDebug("no regions in page.. clear screen!!");
++ if (sub->screen_enabled)
++ subtitle_redraw_all(sub);
++ }
++
+ while (processed_length < segment_length)
+ {
+ struct subtitle_page_region *pr;
+@@ -763,20 +783,16 @@
+ #if 1
+ struct subtitle_page *page = sub->pages;
+ if ( page )
+- {
+- struct subtitle_page_region *region = page->page_regions;
+- if ( region )
+- subtitle_clear_screen(sub);
+- }
++ subtitle_clear_screen(sub);
+ while(page)
+ {
+ subtitle_redraw(sub, page->page_id);
+ page = page->next;
+ }
+ #else
+- subtitle_clear_screen(sub);
+-
+ struct subtitle_page *page = sub->pages;
++ if ( page )
++ subtitle_clear_screen(sub);
+ //eDebug("----------- end of display set");
+ //eDebug("active pages:");
+ while (page)
+@@ -878,7 +894,6 @@
+ return;
+ }
+
+-
+ //eDebug("iterating regions..");
+ /* iterate all regions in this pcs */
+ struct subtitle_page_region *region = page->page_regions;
+@@ -902,20 +917,19 @@
+ {
+ if (main_clut_id != clut_id)
+ {
+-// eDebug("MULTIPLE CLUTS IN USE! prepare for pixelmuell!");
++ eDebug("MULTIPLE CLUTS IN USE! prepare for pixelmuell!");
+ // exit(0);
+ }
+ }
+ main_clut_id = clut_id;
+
+-
+- //eDebug("copy region %d to %d, %d", region->region_id, region->region_horizontal_address, region->region_vertical_address);
+-
+ int x0 = region->region_horizontal_address;
+ int y0 = region->region_vertical_address;
+ int x1 = x0 + reg->region_width;
+ int y1 = y0 + reg->region_height;
+-
++
++ //eDebug("copy region %d to %d, %d, size %d %d", region->region_id, x0, y0, x1, y1);
++
+ if ((x0 < 0) || (y0 < 0) || (x0 > sub->screen_width) || (x0 > sub->screen_height))
+ continue;
+
+--- enigma_org/lib/dvb/subtitling.cpp 2 Aug 2005 20:35:36 -0000 1.12
++++ enigma/lib/dvb/subtitling.cpp 21 Nov 2007 11:52:51 -0000
+@@ -67,26 +67,26 @@
+ unsigned long long current = 0;
+ if (Decoder::getSTC(current))
+ eDebug("bloed, going unsyced");
+- eDebug("DEMUX STC: %08llx\n", current);
++ eDebug("DEMUX STC: %08llx", current);
+
+ unsigned long long pts = 0;
+
+- int enqueue = 0;
+-
+- if (!queue.empty())
+- enqueue = 1;
+- else if (!extractPTS(pts, pkt))
++ int enqueue = !queue.empty();
++
++ if (!extractPTS(pts, pkt))
+ {
+- eDebug("PES STC: %08llx\n", pts);
++ eDebug("PES STC: %08llx", pts);
+ signed long long int diff = pts - current;
+- eDebug(" STC: %lld\n", diff);
+- if (diff > 900000) // 10s
+- {
+- eDebug("rediculous high delay! showing now");
+- } else if (diff > 2000)
++ eDebug(" diff: %lld(%lldms)", diff, diff/90);
++ if (diff > 1800)
+ enqueue = 1;
++ else if (enqueue) // this should not happen !!
++ {
++ eDebug("showing instantly, diff small enough... but queue not empy!!!!");
++ enqueue = 0;
++ }
+ else
+- eDebug("showing instantly, diff small enough!");
++ eDebug("showing instantly, diff small enough...!");
+ }
+
+ if (enqueue)
+@@ -98,11 +98,15 @@
+ memcpy(pes.pkt, pkt, len);
+ pes.len = len;
+ queue.push(pes);
++ eDebug("enqueue");
+ if (wasempty)
+ {
+- eDebug("setting timer to %d ms!\n", (pes.pts - current) / 90);
++ eDebug("setting timer to %lld ms!\n", (pes.pts - current) / 90);
+ timer.start((pes.pts - current) / 90, 1);
+ }
++ else
++ eDebug("");
++
+ return;
+ }
+ subtitle_process_pes(subtitle, pesbuffer, peslen);
+@@ -155,13 +159,15 @@
+ return;
+ }
+
+- eDebug("by the way, actual delay was %lld(%lld msek)\n", current - fpts, (current-fpts)/90 );
++ eDebug("by the way, actual delay was %lld(%lld msek)", current - fpts, (current-fpts)/90 );
+
+- if (queue.empty())
+- return;
+-
+- signed long long int diff = queue.front().pts - current;
+- timer.start(diff / 90, 1);
++ if (!queue.empty()) {
++ signed long long int diff = queue.front().pts - current;
++ timer.start(diff / 90, 1);
++ eDebug("setting timer to %lld ms!\n", diff / 90);
++ }
++ else
++ eDebug("");
+ }
+
+ void eSubtitleWidget::gotData(int what)
+@@ -377,7 +383,7 @@
+ while (!queue.empty())
+ {
+ pes_packet_s pkt = queue.front();
+- queue.front();
++ queue.pop();
+ delete [] pkt.pkt;
+ }
+ delete subtitle;
--- /dev/null
+diff -Naur enigma_org/lib/dvb/decoder.cpp enigma/lib/dvb/decoder.cpp
+--- enigma_org/lib/dvb/decoder.cpp 2006-11-12 22:35:31.000000000 +0100
++++ enigma/lib/dvb/decoder.cpp 2007-10-19 01:10:21.000000000 +0200
+@@ -817,7 +817,7 @@
+ {
+ int wasOpen = fd.mpeg != -1;
+ if ( !wasOpen )
+- fd.mpeg = ::open("/dev/video", O_WRONLY);
++ fd.mpeg = ::open("/dev/video", O_RDONLY);
+ {
+ if (::ioctl(fd.mpeg, VIDEO_FLUSH_CLIP_BUFFER) < 0)
+ eDebug("VIDEO_FLUSH_BUFFER failed (%m)");
+@@ -833,7 +833,7 @@
+ {
+ int wasOpen = fd.mpeg != -1;
+ if ( !wasOpen )
+- fd.mpeg=::open("/dev/video", O_WRONLY);
++ fd.mpeg=::open("/dev/video", O_RDONLY);
+ if ( fd.mpeg > -1 )
+ {
+ if ( ::ioctl(fd.mpeg, VIDEO_CLEAR_SCREEN) < 0 )
+@@ -878,7 +878,7 @@
+ {
+ int wasOpen = fd.mpeg != -1;
+ if ( !wasOpen )
+- fd.mpeg = ::open("/dev/video", O_WRONLY);
++ fd.mpeg = ::open("/dev/video", O_RDONLY);
+ if ( fd.mpeg > -1 )
+ {
+ if ( ::ioctl(fd.mpeg, VIDEO_SET_FASTZAP, val) < 0 )
+@@ -895,7 +895,7 @@
+ {
+ int wasOpen = fd.mpeg != -1;
+ if ( !wasOpen )
+- fd.mpeg = ::open("/dev/video", O_WRONLY);
++ fd.mpeg = ::open("/dev/video", O_RDONLY);
+ if ( fd.mpeg > -1 )
+ {
+ if ( ::ioctl(fd.mpeg, VIDEO_SET_AUTOFLUSH, on) < 0 )
+diff -Naur enigma_org/src/enigma_main.cpp enigma/src/enigma_main.cpp
+--- enigma_org/src/enigma_main.cpp 2007-07-03 11:10:12.000000000 +0200
++++ enigma/src/enigma_main.cpp 2007-10-19 11:48:20.000000000 +0200
+@@ -3038,17 +3038,25 @@
+ {
+ if ( ref.type == eServiceReference::idDVB && !ref.path && !timeshift )
+ {
+- if (eSystemInfo::getInstance()->canTimeshift() &&
+- eSystemInfo::getInstance()->getHwType() != eSystemInfo::DM600PVR &&
+- eSystemInfo::getInstance()->getHwType() != eSystemInfo::DM500PLUS
+- )
++ if (eSystemInfo::getInstance()->canTimeshift())
+ {
+ if (!eDVB::getInstance()->recorder)
+ {
+- record();
++ switch(eSystemInfo::getInstance()->getHwType())
++ {
++ case eSystemInfo::DM600PVR:
++ case eSystemInfo::DM500PLUS:
++ Decoder::setAutoFlushScreen(0);
++ Decoder::Pause(2); // freeze frame
++ record();
++ break;
++ default:
++ record();
++ Decoder::setAutoFlushScreen(0);
++ Decoder::Pause(2); // freeze frame
++ break;
++ }
+ timeshift=1;
+- Decoder::Pause(2); // freeze frame
+- Decoder::setAutoFlushScreen(0);
+ handler->serviceCommand(eServiceCommand(eServiceCommand::cmdSetSpeed, -1));
+ Decoder::setAutoFlushScreen(1);
+ }
--- /dev/null
+DEPENDS = "jpeg libungif libid3tag libmad libpng libsigc++-1.2 gettext-native tuxbox-libs tuxbox-plugins dreambox-dvbincludes mtd-utils freetype"
+DESCRIPTION = "Enigma is a framebuffer-based frontend for DVB functions"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+LICENSE = "GPL"
+
+SRCDATE = "20070615"
+PV = "cvs-${SRCDATE}"
+PN = "enigma"
+PR = "r4"
+
+SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/tuxbox/enigma;method=ext \
+ file://enigma.sh \
+ file://config \
+ file://userbouquet* \
+ http://sources.dreamboxupdate.com/download/opendreambox/enigma/boot-${MACHINE} \
+ file://enigma_enter_standby.sh \
+ file://enigma_leave_standby.sh \
+ file://rotor_fix.diff;patch=1;pnum=1 \
+ file://disable_boot.diff;patch=1;pnum=1 \
+ file://enigma-gcc4.patch;patch=1 \
+ file://epgfix_backport.diff;patch=1;pnum=1 \
+ file://timeshiftfix_backport.diff;patch=1;pnum=1 \
+ file://subtitlefix_backport.diff;patch=1;pnum=1 \
+ file://rdstextfix_backport.diff;patch=1;pnum=1 \
+ file://duplicate_tsid_onid_cable_terrestrial_fix_backport.diff;patch=1;pnum=1"
+
+# dm600pvr and dm500plus don't have a FP, so they can't really switch of. Show a shutdown pic instead.
+SRC_URI_append_dm600pvr = " http://sources.dreamboxupdate.com/download/opendreambox/enigma/showshutdownpic-${MACHINE} \
+ file://add_blindscan_to_menu.diff;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/patches/enigma_add_cable_blindscan.diff;patch=1;pnum=1"
+SRC_URI_append_dm500plus = " http://sources.dreamboxupdate.com/download/opendreambox/enigma/showshutdownpic-${MACHINE} \
+ file://add_blindscan_to_menu.diff;patch=1;pnum=1"
+
+S = "${WORKDIR}/enigma"
+
+FILES_${PN} += " ${datadir}/tuxbox ${datadir}/fonts"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+PACKAGES_DYNAMIC = "enigma-locale-*"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--with-target=native --with-boxtype=${MACHINE} --with-webif=standard --with-epg=private --with-enigma-debug=yes --with-reiserfs=no"
+
+do_configure_prepend() {
+ mkdir -p m4
+}
+
+do_compile_prepend() {
+ chmod ugo+x ${S}/po/xml2po
+}
+
+do_stage_append() {
+ install -d ${STAGING_INCDIR}/enigma
+ install -m 0644 ${WORKDIR}/enigma/include/*.h ${STAGING_INCDIR}/enigma
+ for dir in base dvb dvb/lowlevel codecs driver gdi gui socket system picviewer movieplayer; do
+ install -d ${STAGING_INCDIR}/enigma/lib/$dir;
+ install -m 0644 ${WORKDIR}/enigma/include/lib/$dir/*.h ${STAGING_INCDIR}/enigma/lib/$dir;
+ done;
+ rm -R ${STAGING_INCDIR}/enigma/src 2> /dev/null || /bin/true
+ install -m 0644 ${WORKDIR}/enigma/src/*.h ${STAGING_INCDIR}/enigma
+ ln -sf ${STAGING_INCDIR}/enigma ${STAGING_INCDIR}/enigma/src
+}
+
+do_install_append() {
+ install -d ${D}/usr/share/enigma/default
+ install -d ${D}/usr/share/enigma/default/cable
+ install -d ${D}/usr/share/enigma/default/terrestrial
+ mv ${D}/etc/enigma/* ${D}/usr/share/enigma/default 2> /dev/null || /bin/true
+ rm -R ${D}/etc/enigma 2> /dev/null || /bin/true
+ install -m 0644 ${WORKDIR}/config ${D}/usr/share/enigma/default/
+ if [ "${MACHINE}" = "dm600pvr" -o "${MACHINE}" = "dm500plus" ]; then
+ install -m 0755 ${WORKDIR}/showshutdownpic-${MACHINE} ${D}/usr/bin/showshutdownpic
+ # vulcan-based boxes don't look that well with too much alpha
+ echo "i:/ezap/osd/alpha=00000000" >> ${D}/usr/share/enigma/default/config
+ echo "i:/ezap/osd/simpleMainMenu=00000001" >> ${D}/usr/share/enigma/default/config
+ fi
+ install -m 0644 ${WORKDIR}/userbouquet* ${D}/usr/share/enigma/default/
+ install -m 0755 ${WORKDIR}/enigma.sh ${D}/usr/bin/
+ install -m 0755 ${WORKDIR}/boot-${MACHINE} ${D}/usr/bin/boot
+ install -d ${D}/etc
+ install -m 0755 ${WORKDIR}/enigma_enter_standby.sh ${D}/etc
+ install -m 0755 ${WORKDIR}/enigma_leave_standby.sh ${D}/etc
+}
--- /dev/null
+DEPENDS = "enigma"
+RDEPENDS = "enigma ipkg"
+DESCRIPTION = "Enigma Plugin IPKG"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+LICENSE = "GPL"
+PV = "0.2.1"
+PR = "r1"
+SRC_URI = "http://sources.dreamboxupdate.com/download/opendreambox/enigma/ipkgpl-${PV}-r1.tar.bz2"
+
+S = "${WORKDIR}/ipkgpl"
+
+FILES_${PN} = "/usr/lib/tuxbox/plugins/ipkgpl.so \
+ /usr/lib/tuxbox/plugins/ipkgpl.cfg"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--with-target=native "
+
+do_install() {
+ install -d ${D}/usr/lib/tuxbox/plugins
+ install ${S}/.libs/ipkgpl.so ${D}/usr/lib/tuxbox/plugins
+ install -m 0644 ${S}/ipkgpl.cfg ${D}/usr/lib/tuxbox/plugins
+}
--- /dev/null
+DESCRIPTION = "enigma2 default services/transponder"
+PRIORITY = "optional"
+LICENSE = "proprietary"
+MAINTAINER = "tmbinc@elitedvb.net"
+
+PR = "r1"
+
+SRC_URI = "file://*"
+
+S = "${WORKDIR}"
+
+INHIBIT_PACKAGE_STRIP = "1"
+
+do_install() {
+ install -d ${D}/usr/share/enigma2/dealer
+ install ${WORKDIR}/*.info ${D}/usr/share/enigma2/dealer
+ install ${WORKDIR}/lamedb.* ${D}/usr/share/enigma2/dealer
+}
+
+FILES_${PN} = "/"
+PACKAGE_ARCH = "all"
--- /dev/null
+eDVB services /3/
+transponders
+00820000:00c9:0006
+ s 10775000:28000000:0:3:130:2
+/
+00820000:012d:0006
+ s 11095910:28000000:0:3:130:2
+/
+00820000:1250:0064
+ s 11013000:27500000:0:3:130:2
+/
+00820000:1ce8:0071
+ s 12188000:27500000:1:3:130:2
+/
+00820000:1e78:0071
+ s 12264000:27500000:1:3:130:2
+/
+00820000:1edc:0071
+ s 12284000:27500000:0:3:130:2
+/
+00820000:3390:0071
+ s 11159000:27500000:1:3:130:2
+/
+00820000:2bc0:00b0
+ s 10758000:27500000:1:3:130:2
+/
+00820000:2c88:00b0
+ s 10795000:27500000:1:3:130:2
+/
+00820000:2d50:00b0
+ s 10834000:27500000:1:3:130:2
+/
+00820000:2e18:00b0
+ s 10872000:27500000:1:3:130:2
+/
+00820000:2ee0:00b0
+ s 10911000:27500000:1:3:130:2
+/
+00820000:3db8:00b0
+ s 11662000:27500000:1:3:130:2
+/
+00820000:0708:00c8
+ s 11541030:22000000:1:4:130:2
+/
+00820000:0389:0110
+ s 11431800:27500000:1:1:130:2
+/
+00820000:1770:0110
+ s 11919000:27500000:1:2:130:2
+/
+00820000:00c8:013e
+ s 11240000:27500000:1:3:130:2
+/
+00820000:01f4:013e
+ s 11295900:27500000:0:3:130:2
+/
+00820000:03e8:013e
+ s 11393000:27500000:1:3:130:2
+/
+00820000:044c:013e
+ s 11411050:27500000:0:4:130:2
+/
+00820000:0514:013e
+ s 11449000:27500000:0:2:130:2:1:2:0:2
+/
+00820000:0578:013e
+ s 11258000:27500000:0:2:130:2:1:2:0:2
+/
+00820000:05dc:013e
+ s 11487770:27500000:0:3:130:2
+/
+00820000:06a4:013e
+ s 11526000:27500000:0:3:130:2
+/
+00820000:1388:013e
+ s 11727480:27500000:1:3:130:2
+/
+00820000:13ef:013e
+ s 11747000:27500000:0:3:130:2
+/
+00820000:1450:013e
+ s 11766000:27500000:1:2:130:2
+/
+00820000:14b4:013e
+ s 11785000:27500000:0:3:130:2
+/
+00820000:1518:013e
+ s 11804200:27500000:1:2:130:2
+/
+00820000:157c:013e
+ s 11823000:27500000:0:3:130:2
+/
+00820000:17d4:013e
+ s 11938000:27500000:0:3:130:2
+/
+00820000:1964:013e
+ s 12015000:27500000:0:3:130:2
+/
+00820000:1af4:013e
+ s 12092000:27500000:0:3:130:2
+/
+00820000:1b58:013e
+ s 12111000:27500000:1:3:130:2
+/
+00820000:1bbc:013e
+ s 12144760:3333000:0:3:130:2
+/
+00820000:1c20:013e
+ s 12149000:27500000:1:3:130:2
+/
+00820000:1c84:013e
+ s 12169000:27500000:0:3:130:2
+/
+00820000:1e14:013e
+ s 12245000:27500000:0:3:130:2
+/
+00820000:1f40:013e
+ s 12303000:27500000:1:3:130:2
+/
+00820000:1fa4:013e
+ s 12322000:27500000:0:3:130:2
+/
+00820000:206c:013e
+ s 12360420:27500000:0:3:130:2
+/
+00820000:20d0:013e
+ s 12379000:27500000:1:3:130:2
+/
+00820000:2134:013e
+ s 12398780:27500000:0:3:130:2
+/
+00820000:21fc:013e
+ s 12437000:27500000:0:3:130:2
+/
+00820000:22c4:013e
+ s 12475500:27500000:0:3:130:2
+/
+00820000:2328:013e
+ s 12519840:27500000:1:3:130:2
+/
+00820000:238c:013e
+ s 12539020:27500000:0:3:130:2
+/
+00820000:2454:013e
+ s 12577000:27500000:0:3:130:2
+/
+00820000:24b8:013e
+ s 12596560:27500000:1:3:130:2
+/
+00820000:2648:013e
+ s 12673000:27500000:1:3:130:2
+/
+00820000:2af8:013e
+ s 10719000:27500000:1:3:130:2
+/
+00820000:2b5c:013e
+ s 10723000:29900000:0:3:130:2
+/
+00820000:2cec:013e
+ s 10829500:3333000:0:3:130:2
+/
+00820000:2e7c:013e
+ s 10892000:27500000:0:3:130:2
+/
+00820000:2f44:013e
+ s 10930000:27500000:0:3:130:2
+/
+00820000:2fa8:013e
+ s 10949000:27500000:1:3:130:2
+/
+00820000:300c:013e
+ s 10971000:27500000:0:3:130:2
+/
+00820000:3070:013e
+ s 10992160:27500000:1:2:130:2
+/
+00820000:3138:013e
+ s 11034000:27500000:1:3:130:2
+/
+00820000:319c:013e
+ s 11054000:27500000:0:4:130:2
+/
+00820000:3200:013e
+ s 11075000:27500000:1:3:130:2
+/
+00820000:32c8:013e
+ s 11117000:27500000:1:3:130:2
+/
+00820000:332c:013e
+ s 11137000:27500000:0:3:130:2
+/
+00820000:33f4:013e
+ s 11179000:27500000:0:3:130:2
+/
+00820000:3458:013e
+ s 11200000:27500000:1:4:130:2
+/
+00820000:3bc4:013e
+ s 11565740:27500000:0:3:130:2
+/
+00820000:3c28:013e
+ s 11585000:27500000:1:3:130:2
+/
+00820000:3c8c:013e
+ s 11604100:27500000:0:4:130:2
+/
+00820000:3cf0:013e
+ s 11623280:27500000:1:3:130:2
+/
+00820000:3d54:013e
+ s 11642500:27500000:0:3:130:2
+/
+00820000:23f0:013f
+ s 12558200:27500000:1:3:130:2
+/
+00820000:26ac:013f
+ s 12692000:27500000:0:3:130:2
+/
+00820000:3e1c:013f
+ s 11681000:27500000:0:3:130:2
+/
+00820000:25e4:02be
+ s 12654000:27500000:0:3:130:2
+/
+00820000:0064:fbff
+ s 11219250:27500000:0:3:130:2
+/
+00820000:0320:fbff
+ s 11355080:27500000:1:3:130:2
+/
+00820000:15e0:fbff
+ s 11842000:27500000:1:3:130:2
+/
+00820000:1644:fbff
+ s 11861000:27500000:0:3:130:2
+/
+00820000:16a8:fbff
+ s 11880000:27500000:1:3:130:2
+/
+00820000:170c:fbff
+ s 11900000:27500000:0:3:130:2
+/
+00820000:1838:fbff
+ s 11958000:27500000:1:3:130:2
+/
+00820000:189c:fbff
+ s 11976000:27500000:0:3:130:2
+/
+00820000:1900:fbff
+ s 11996000:27500000:1:2:130:2:1:2:2:2
+/
+00820000:19c8:fbff
+ s 12034000:27500000:1:3:130:2
+/
+00820000:1a2c:fbff
+ s 12054000:27500000:0:3:130:2
+/
+00820000:1a90:fbff
+ s 12072000:27500000:1:3:130:2
+/
+00820000:2008:fbff
+ s 12341000:27500000:1:3:130:2
+/
+00820000:2198:fbff
+ s 12418000:27500000:1:3:130:2
+/
+00820000:2260:fbff
+ s 12465910:27500000:1:3:130:2
+/
+00820000:251c:fbff
+ s 12616000:27500000:0:3:130:2
+/
+00820000:2580:fbff
+ s 12635000:27500000:1:3:130:2
+/
+00820000:2710:fbff
+ s 12713000:27500000:1:3:130:2
+/
+00820000:2774:fbff
+ s 12731000:27500000:0:3:130:2
+/
+00822a65:2db4:0000
+ s 10853440:27500000:0:3:130:2
+/
+00822faf:0001:0001
+ s 12207000:27500000:0:3:130:2
+/
+0082afc1:0065:0001
+ s 12225000:27500000:1:3:130:2
+/
+end
+services
+0009:00820000:3200:013e:0:0
+
+p:,f:40
+0015:00820000:0389:0110:0:0
+Servizio 21
+p:,f:40
+0017:00820000:0389:0110:0:0
+Servizio 23
+p:,f:40
+0018:00820000:0389:0110:0:0
+Servizio 24
+p:,f:40
+0019:00820000:0389:0110:0:0
+Servizio 25
+p:,f:40
+001a:00820000:0389:0110:0:0
+Servizio 26
+p:,f:40
+001b:00820000:0389:0110:0:0
+Servizio 27
+p:,f:40
+001c:00820000:0389:0110:0:0
+Servizio 28
+p:,f:40
+001d:00820000:0389:0110:0:0
+Servizio 29
+p:,f:40
+001e:00820000:0389:0110:0:0
+Servizio 30
+p:,f:40
+3623:00820000:00c8:013e:0:0
+SSU Orange
+p:EUTELSAT,f:40
+3624:00820000:00c8:013e:0:0
+SSU
+p:EUTELSAT,f:40
+225f:00820000:1af4:013e:0:0
+
+p:,f:40
+12cf:00820000:2e7c:013e:0:0
+119 test 1 E
+p:CYFRA +,f:40
+12d0:00820000:2e7c:013e:0:0
+119 test 2 E
+p:CYFRA +,f:40
+12d1:00820000:2e7c:013e:0:0
+119 test 3 E
+p:CYFRA +,f:40
+12d2:00820000:2e7c:013e:0:0
+119 test 1. E
+p:CYFRA +,f:40
+12d3:00820000:2e7c:013e:0:0
+119 test 2. E
+p:CYFRA +,f:40
+12d4:00820000:2e7c:013e:0:0
+119 test 3. E
+p:CYFRA +,f:40
+00ea:00820000:3e1c:013f:0:0
+SSU
+p:EUTELSAT,f:40
+00eb:00820000:3e1c:013f:0:0
+SSU Orange
+p:EUTELSAT,f:40
+0200:00820000:26ac:013f:1:0
+AB4
+p:AB Sat,f:40
+2200:00820000:1af4:013e:1:0
+Redlight USA
+p:TSA,f:40
+2500:00820000:2774:fbff:1:0
+Boomerang
+p:SkyItalia,f:40
+0001:00820000:3200:013e:1:0
+MTV Portugal
+p:MTV Networks Europe,f:40
+0001:00820000:300c:013e:1:0
+TRT-INT
+p:RRSat,f:40
+0001:00820000:2648:013e:1:0
+AL MAGHRIBIA
+p:PRVDR,f:40
+0001:00820000:1250:0064:1:0
+CGN
+p:,f:40
+0001:00820000:3d54:013e:1:0
+Bloomberg French TV
+p:,C:0e00,f:40
+0001:0082afc1:0065:0001:1:0
+VOA TV 1 (HB1-8)
+p:,f:40
+0001:00820000:1770:0110:1:0
+Italia 1
+p:,f:40
+0001:00820000:1fa4:013e:1:0
+RIT-TV
+p:EUTELSAT,f:40
+0001:00820000:1bbc:013e:1:0
+m2
+p:Magyar Televizio,f:40
+0001:00820000:00c9:0006:1:0
+Sports/ESPN/FoxSports/Conting
+p:,C:0e00,f:40
+0001:00820000:25e4:02be:1:0
+SHARJAH TV
+p:ARABSAT,f:40
+0001:00820000:2cec:013e:1:0
+Autonomia
+p:Duna Televizio,f:40
+2501:00820000:2774:fbff:1:0
+Hallmark
+p:SkyItalia,f:40
+0002:00820000:3200:013e:1:0
+MTV Polska
+p:MTV Networks Europe,f:40
+0002:00820000:300c:013e:1:0
+Suroyo tv
+p:RRSat,f:40
+0002:00820000:2648:013e:1:0
+TVM INTER+L
+p:PRVDR,f:40
+0002:00820000:1250:0064:1:0
+Marine Biz TV
+p:,f:40
+0002:00820000:3d54:013e:1:0
+Bloomberg Italian TV
+p:,C:0e00,f:40
+0002:00820000:1770:0110:1:0
+Canale 5
+p:,f:40
+0002:00820000:0578:013e:1:0
+Mktv Sat
+p:Harmonic,f:40
+0002:00820000:00c9:0006:1:0
+AFN Atlantic/PowerNet/Eagle/NPR
+p:,C:0e00,f:40
+0002:00820000:25e4:02be:1:0
+QATAR TV
+p:ARABSAT,f:40
+1402:00820000:05dc:013e:1:0
+ANIMAL PLANET
+p:CYFRA +,f:40
+2202:00820000:1af4:013e:1:0
+MCT Lux-Best
+p:TSA,f:40
+2502:00820000:2774:fbff:1:0
+Fox
+p:SkyItalia,f:40
+3b02:00820000:0578:013e:1:0
+TVP Sport
+p:ITI,f:40
+0003:00820000:3200:013e:1:0
+Game One
+p:MTV Networks Europe,f:40
+0003:00820000:300c:013e:1:0
+Music Box Russia
+p:RRSat,f:40
+0003:00820000:2648:013e:1:0
+AL Aoula
+p:PRVDR,f:40
+0003:00820000:1250:0064:1:0
+Telecolore
+p:,f:40
+0003:00820000:3d54:013e:1:0
+Bloomberg European TV
+p:,f:40
+0003:00820000:1770:0110:1:0
+Retequattro
+p:,f:40
+0003:00820000:0578:013e:1:0
+RIKSAT
+p:Harmonic,f:40
+0003:00820000:00c9:0006:1:0
+Spectrum/Touch/Contin
+p:,C:0e00,f:40
+0003:00820000:25e4:02be:1:0
+SAUDI 1
+p:ARABSAT,f:40
+0e03:00820000:15e0:fbff:1:0
+MotoTV
+p:SkyItalia,f:40
+1403:00820000:05dc:013e:1:0
+DISCOVERY
+p:CYFRA +,f:40
+2503:00820000:2774:fbff:1:0
+Jetix +1
+p:SkyItalia,f:40
+0004:00820000:3200:013e:1:0
+VH1 Polska
+p:MTV Networks Europe,f:40
+0004:00820000:300c:013e:1:0
+TIN + 18668336763
+p:RRSat,f:40
+0004:00820000:2648:013e:1:0
+ARRABIAA
+p:PRVDR,f:40
+0004:00820000:1250:0064:1:0
+Rusiya Al-Yaum
+p:,f:40
+0004:00820000:3d54:013e:1:0
+Bloomberg German TV
+p:,f:40
+0004:00820000:1770:0110:1:0
+Test
+p:,f:40
+0004:00820000:0578:013e:1:0
+ICC TV
+p:Harmonic,f:40
+0004:00820000:00c9:0006:1:0
+Pacific/Pure Gold
+p:,C:0e00,f:40
+0004:00820000:25e4:02be:1:0
+KUWAIT
+p:ARABSAT,f:40
+0104:0082afc1:0065:0001:1:0
+VOA Music Mix 260
+p:,f:40
+0e04:00820000:15e0:fbff:1:0
+Fox Crime +1
+p:SkyItalia,f:40
+2504:00820000:2774:fbff:1:0
+Cartoon +1
+p:SkyItalia,f:40
+3b04:00820000:0578:013e:1:0
+Sport Klub +
+p:ITI,f:40
+0005:00820000:3200:013e:1:0
+VIVA Polska
+p:MTV Networks Europe,f:40
+0005:00820000:300c:013e:1:0
+The Word Network
+p:RRSat,f:40
+0005:00820000:012d:0006:1:0
+News/BrightAC/Country/ARock
+p:,C:0e00,f:40
+0005:00820000:2648:013e:1:0
+TVM INTER
+p:PRVDR,f:40
+0005:00820000:1250:0064:1:0
+Gali Kurdistan TV
+p:,f:40
+0005:00820000:3d54:013e:1:0
+Bloomberg English TV
+p:,f:40
+0005:00820000:1770:0110:1:0
+Mediashopping
+p:,f:40
+0005:00820000:0578:013e:1:0
+PEN TV
+p:Harmonic,f:40
+0005:00820000:25e4:02be:1:0
+LIBYA
+p:ARABSAT,f:40
+0105:0082afc1:0065:0001:1:0
+VOA Music Mix 261
+p:,f:40
+1405:00820000:05dc:013e:1:0
+CNBC
+p:CYFRA +,f:40
+2505:00820000:2774:fbff:1:0
+The MGM Channel
+p:SkyItalia,f:40
+2905:00820000:1edc:0071:1:0
+E!
+p:Cyfrowy Polsat,f:40
+3b05:00820000:0578:013e:1:0
+Cartoon TCM
+p:ITI,f:40
+0006:00820000:3200:013e:1:0
+MTV 1
+p:MTV Networks Europe,f:40
+0006:00820000:012d:0006:1:0
+AFN Xtra/Time Code
+p:,C:0e00,f:40
+0006:00820000:2648:013e:1:0
+ASSADISSA
+p:PRVDR,f:40
+0006:00820000:1250:0064:1:0
+LA 9
+p:,f:40
+0006:00820000:3d54:013e:1:0
+SAT-7 KIDS
+p:,f:40
+0006:00820000:0578:013e:1:0
+Channel 6
+p:Harmonic,f:40
+0006:00820000:25e4:02be:1:0
+SUDAN
+p:ARABSAT,f:40
+0106:00820000:012d:0006:1:0
+AFN Freedom Radio
+p:,C:0e00,f:40
+0106:0082afc1:0065:0001:1:0
+VOA Music Mix 262
+p:,f:40
+1406:00820000:05dc:013e:1:0
+ZONE CLUB
+p:CYFRA +,f:40
+1f06:00820000:21fc:013e:1:0
+ALKAWTHAR
+p:IRIB,f:40
+2506:00820000:2774:fbff:1:0
+Roma Channel
+p:SkyItalia,f:40
+2906:00820000:1edc:0071:1:0
+Boomerang
+p:Cyfrowy Polsat,f:40
+3b06:00820000:0578:013e:1:0
+Sport Klub
+p:ITI,f:40
+0007:00820000:3200:013e:1:0
+VH1
+p:MTV Networks Europe,f:40
+0007:00820000:300c:013e:1:0
+Baby TV
+p:RRSat,f:40
+0007:00820000:1250:0064:1:0
+SARAFAN
+p:,f:40
+0007:00820000:3d54:013e:1:0
+Bloomberg Spain TV
+p:,C:0e00,f:40
+0007:00820000:0578:013e:1:0
+SALAAM TV
+p:Harmonic,f:40
+0007:00820000:00c9:0006:1:0
+Guide/PowerNet/HotAC/NewsRadio/UVC
+p:,C:0e00,f:40
+0007:00820000:25e4:02be:1:0
+OMAN
+p:ARABSAT,f:40
+0107:0082afc1:0065:0001:1:0
+IBB VOA RFERL Radio 263
+p:,f:40
+1407:00820000:05dc:013e:1:0
+ZONE REALITY
+p:CYFRA +,f:40
+1f07:00820000:21fc:013e:1:0
+FEED
+p:IRIB,f:40
+2507:00820000:2774:fbff:1:0
+GXT
+p:SkyItalia,f:40
+3607:00820000:00c8:013e:1:0
+ESP Int'l
+p:Eutelsat,f:40
+3b07:00820000:0578:013e:1:0
+TVN Med
+p:TVN,f:40
+3c07:00820000:2260:fbff:1:0
+MTV Gold
+p:SkyItalia,f:40
+0008:00820000:300c:013e:1:0
+MRTV / Univ TV
+p:RRSat,f:40
+0008:00820000:012d:0006:1:0
+Pentagon Channel
+p:,f:40
+0008:00820000:2648:013e:1:0
+Medi1SAT
+p:PRVDR,f:40
+0008:00820000:1250:0064:1:0
+AL FAYHAA
+p:,f:40
+0008:00820000:3d54:013e:1:0
+Miracle TV
+p:,f:40
+0008:0082afc1:0065:0001:1:0
+IBB OS Download 8 (DCP)
+p:,f:40
+0008:00820000:0578:013e:1:0
+THARISANAM
+p:Harmonic,f:40
+0008:00820000:14b4:013e:1:0
+R1
+p:Overon,f:40
+0008:00820000:25e4:02be:1:0
+ESC
+p:ARABSAT,f:40
+0108:0082afc1:0065:0001:1:0
+IBB VOA RFERL Radio 264
+p:,f:40
+0208:00820000:26ac:013f:1:0
+Beur TV
+p:AB SAT,f:40
+1408:00820000:05dc:013e:1:0
+EXTREME SPORTS
+p:CYFRA +,f:40
+1f08:00820000:21fc:013e:1:0
+PRESS TV
+p:IRIB,f:40
+2508:00820000:2774:fbff:1:0
+GXT +1
+p:SkyItalia,f:40
+2908:00820000:1edc:0071:1:0
+Radiostacja
+p:Cyfrowy Polsat,f:40
+3608:00820000:00c8:013e:1:0
+ESP Romanian
+p:Eutelsat,f:40
+3b08:00820000:0578:013e:1:0
+MTV2
+p:ITI,f:40
+3c08:00820000:2260:fbff:1:0
+MTV Pulse
+p:SkyItalia,f:40
+0009:00820000:300c:013e:1:0
+Al-Anwar
+p:RRSat,f:40
+0009:00820000:012d:0006:1:0
+AFN Family Channel
+p:,C:0e00,f:40
+0009:00820000:3d54:013e:1:0
+SAT-7 PARS
+p:,f:40
+0009:0082afc1:0065:0001:1:0
+IBB OS Download 9 (CCP)
+p:,f:40
+0009:00820000:0578:013e:1:0
+Andisheh
+p:Harmonic,f:40
+0009:00820000:14b4:013e:1:0
+KontaktChance.TV
+p:Overon/SmartCast,f:40
+0009:00820000:25e4:02be:1:0
+AL IRAQIA
+p:ARABSAT,f:40
+0109:0082afc1:0065:0001:1:0
+IBB VOA RFERL Radio 265
+p:,f:40
+1109:00820000:2710:fbff:1:0
+NatGeo Music
+p:SkyItalia,f:40
+1309:00820000:2e7c:013e:1:0
+DTV CABLE JE
+p:CYFRA +,f:40
+2009:00820000:24b8:013e:1:0
+Planeta Sport
+p:Globecast,f:40
+3609:00820000:00c8:013e:1:0
+ESP Dutch
+p:Eutelsat,f:40
+3909:00820000:32c8:013e:1:0
+BBC Prime
+p:Globecast UK,f:40
+3b09:00820000:0578:013e:1:0
+NASN
+p:TVN,f:40
+3c09:00820000:2260:fbff:1:0
+Vh1
+p:SkyItalia,f:40
+000a:00820000:3200:013e:1:0
+Comedy Central Polska
+p:MTV Networks Europe,f:40
+000a:00820000:300c:013e:1:0
+VenetoSat
+p:RRSat,f:40
+000a:00820000:012d:0006:1:0
+AFN Movie Channel
+p:,C:0e00,f:40
+000a:00820000:2648:013e:1:0
+ARRIADIA
+p:PRVDR,f:40
+000a:00820000:0578:013e:1:0
+OMID E IRAN
+p:Harmonic,f:40
+010a:0082afc1:0065:0001:1:0
+IBB VOA RFERL Radio 266
+p:,f:40
+110a:00820000:2710:fbff:1:0
+SKY TG 24
+p:SkyItalia,f:40
+130a:00820000:2e7c:013e:1:0
+DTV CABLE KU
+p:CYFRA +,f:40
+200a:00820000:24b8:013e:1:0
+KTO
+p:Globecast,f:40
+360a:00820000:00c8:013e:1:0
+ESP Polish
+p:Eutelsat,f:40
+390a:00820000:32c8:013e:1:0
+BBC Entertainment Poland
+p:Globecast UK,f:40
+3b0a:00820000:0578:013e:1:0
+Nsport 59
+p:TVN,f:40
+000b:00820000:3200:013e:1:0
+Nickelodeon Euro
+p:MTV Networks Europe,f:40
+000b:00820000:300c:013e:1:0
+3 Channel
+p:RRSat,f:40
+000b:00820000:0578:013e:1:0
+BET NAHRAIN
+p:Harmonic,f:40
+000b:00820000:00c9:0006:1:0
+Franconia
+p:,C:0e00,f:40
+010b:0082afc1:0065:0001:1:0
+IBB VOA RFERL Radio 267
+p:,f:40
+110b:00820000:2710:fbff:1:0
+Current
+p:SkyItalia,f:40
+130b:00820000:2e7c:013e:1:0
+DTV CABLE AL
+p:CYFRA +,f:40
+200b:00820000:24b8:013e:1:0
+BET
+p:Globecast,f:40
+290b:00820000:1edc:0071:1:0
+Zone Europa
+p:Cyfrowy Polsat,f:40
+360b:00820000:00c8:013e:1:0
+ESP Russian
+p:Eutelsat,f:40
+390b:00820000:32c8:013e:1:0
+BBC Knowledge Poland
+p:Globecast UK,f:40
+3b0b:00820000:0578:013e:1:0
+Boomerang
+p:ITI,f:40
+000c:00820000:300c:013e:1:0
+Telenova
+p:RRSat,f:40
+000c:00820000:012d:0006:1:0
+Aviano
+p:,C:0e00,f:40
+000c:00820000:1250:0064:1:0
+Canale8
+p:,f:40
+000c:00820000:0578:013e:1:0
+JAAM E JAM
+p:Harmonic,f:40
+010c:0082afc1:0065:0001:1:0
+VOA Music Mix 268
+p:,f:40
+120c:00820000:2b5c:013e:1:0
+AL JAZEERA SP+2
+p:H,f:40
+130c:00820000:2e7c:013e:1:0
+DTV CABLE ZI
+p:CYFRA +,f:40
+200c:00820000:24b8:013e:1:0
+BBC World News
+p:Globecast UK,f:40
+290c:00820000:1edc:0071:1:0
+Zone Club
+p:Cyfrowy Polsat,f:40
+360c:00820000:00c8:013e:1:0
+ESP Portuguese
+p:Eutelsat,f:40
+390c:00820000:32c8:013e:1:0
+BBC Lifestyle Poland
+p:Globecast UK,f:40
+3b0c:00820000:0578:013e:1:0
+Cinemax 1
+p:ITI,f:40
+000d:00820000:300c:013e:1:0
+NTD TV
+p:NTD TV,f:40
+000d:00820000:1250:0064:1:0
+RU TV
+p:,f:40
+000d:00820000:0578:013e:1:0
+PROPHETIC
+p:Harmonic,f:40
+000d:00820000:00c9:0006:1:0
+Hessen
+p:,C:0e00,f:40
+010d:0082afc1:0065:0001:1:0
+IBB VOA RFERL Radio 269
+p:,f:40
+020d:00820000:26ac:013f:1:0
+LUXE TV
+p:DVL.TV,f:40
+030d:00820000:1b58:013e:1:0
+Puglia Channel
+p:Telespazio,f:40
+120d:00820000:2b5c:013e:1:0
+ANT1 EU promo
+p:Harmonic,f:40
+360d:00820000:00c8:013e:1:0
+ESP Hungarian
+p:Eutelsat,f:40
+390d:00820000:32c8:013e:1:0
+BBC CBeebies Poland
+p:Globecast UK,f:40
+3b0d:00820000:0578:013e:1:0
+Cinemax 2
+p:ITI,f:40
+000e:00820000:300c:013e:1:0
+Russia Today
+p:RRSat,f:40
+000e:00820000:012d:0006:1:0
+Vicenza
+p:,C:0e00,f:40
+000e:00820000:0578:013e:1:0
+IRAN
+p:Harmonic,f:40
+010e:0082afc1:0065:0001:1:0
+IBB VOA RFERL Radio 270
+p:,f:40
+360e:00820000:00c8:013e:1:0
+Prod ESP
+p:Eutelsat,f:40
+390e:00820000:32c8:013e:1:0
+BBC Persian
+p:Globecast UK,f:40
+3b0e:00820000:0578:013e:1:0
+KidsCo
+p:ITI,f:40
+000f:00820000:300c:013e:1:0
+GOD TV
+p:RRSat,f:40
+000f:00820000:00c9:0006:1:0
+Heidelberg
+p:,C:0e00,f:40
+010f:0082afc1:0065:0001:1:0
+IBB VOA RFERL Radio 271
+p:,f:40
+0c0f:00820000:20d0:013e:1:0
+RFI Francais
+p:GlobeCast,f:40
+290f:00820000:1edc:0071:1:0
+Dla Abonentow
+p:Cyfrowy Polsat,f:40
+360f:00820000:00c8:013e:1:0
+ESP Czech
+p:Eutelsat,f:40
+3b0f:00820000:0578:013e:1:0
+DA VINCI
+p:ITI,f:40
+0010:00820000:300c:013e:1:0
+Wind int. tv
+p:RRSat,f:40
+0010:00820000:012d:0006:1:0
+AFNS Contingency Channel
+p:,C:0e00,f:40
+0010:00820000:1250:0064:1:0
+VideoBergamo
+p:,f:40
+0010:00820000:0578:013e:1:0
+Ariana
+p:Harmonic,f:40
+0110:0082afc1:0065:0001:1:0
+IBB VOA RFERL Radio 272
+p:,f:40
+0210:00820000:26ac:013f:1:0
+CINE POP
+p:,f:40
+2010:00820000:24b8:013e:1:0
+1TVRUS Europe
+p:Globecast,f:40
+2210:00820000:1af4:013e:1:0
+MCT Premium
+p:Harmonic,f:40
+3610:00820000:00c8:013e:1:0
+ESP Greek
+p:Eutelsat,f:40
+3b10:00820000:0578:013e:1:0
+OTV
+p:ITI,f:40
+0011:00822faf:0001:0001:1:0
+Fashion TV
+p:RRSat,f:40
+0011:00820000:1250:0064:1:0
+Cinquestelle
+p:,f:40
+0011:00820000:0578:013e:1:0
+IRAN.MNTV
+p:Harmonic,f:40
+0011:00820000:00c9:0006:1:0
+Bavaria
+p:,C:0e00,f:40
+0111:0082afc1:0065:0001:1:0
+IBB VOA RFERL Radio 273
+p:,f:40
+2011:00820000:24b8:013e:1:0
+CNNi
+p:Globecast,f:40
+3611:00820000:00c8:013e:1:0
+ESP Cyprus
+p:Eutelsat,f:40
+3b11:00820000:0578:013e:1:0
+Jetix
+p:ITI,f:40
+0012:00822faf:0001:0001:1:0
+F men
+p:RRSat,f:40
+0012:00820000:012d:0006:1:0
+Naples
+p:,C:0e00,f:40
+0012:00820000:0578:013e:1:0
+Tasvir Iran
+p:Harmonic,f:40
+0e12:00820000:0708:00c8:1:0
+TV7 LOMBARDIA
+p:M-Three satcom,f:40
+2912:00820000:1edc:0071:1:0
+Zone Reality
+p:Cyfrowy Polsat,f:40
+3612:00820000:00c8:013e:1:0
+ESP Bulgarian
+p:Eutelsat,f:40
+0013:00820000:1250:0064:1:0
+TBM
+p:,f:40
+0013:00820000:0578:013e:1:0
+MOHABAT TV
+p:Harmonic,f:40
+0013:00820000:00c9:0006:1:0
+Kaiserslautern
+p:,C:0e00,f:40
+0e13:00820000:0708:00c8:1:0
+THOU TV
+p:M-Three satcom,f:40
+2013:00820000:24b8:013e:1:0
+Euronews
+p:Globecast,f:40
+3613:00820000:00c8:013e:1:0
+ESP2 Turk
+p:Eutelsat,f:40
+0014:00822faf:0001:0001:1:0
+Pars TV
+p:RRSat,f:40
+0014:00820000:012d:0006:1:0
+Sigonella
+p:,C:0e00,f:40
+0014:00820000:1250:0064:1:0
+Angel TV
+p:,f:40
+0e14:00820000:0708:00c8:1:0
+Sardegna Channel
+p:M-Three satcom,f:40
+2914:00820000:1edc:0071:1:0
+Playboy
+p:Cyfrowy Polsat,f:40
+3614:00820000:00c8:013e:1:0
+ESP Serbia
+p:Eutelsat,f:40
+3b14:00820000:0578:013e:1:0
+ITVN EU
+p:ITI,f:40
+0015:00820000:00c9:0006:1:0
+Benelux
+p:,C:0e00,f:40
+0015:00820000:25e4:02be:1:0
+SHARJAH R2
+p:ARABSAT,f:40
+0e15:00820000:0708:00c8:1:0
+BERGAMOSAT
+p:M-Three satcom,f:40
+2015:00820000:24b8:013e:1:0
+JSTV1
+p:Globecast,f:40
+2915:00820000:1edc:0071:1:0
+Jetix Play
+p:Cyfrowy Polsat,f:40
+3615:00820000:00c8:013e:1:0
+ESP Turk
+p:Eutelsat,f:40
+0016:00820000:3200:013e:1:0
+MTV Polska.
+p:MTV Networks Europe,f:40
+0016:00820000:300c:013e:1:0
+Suryoyo Sat
+p:RRSat,f:40
+0016:00820000:0578:013e:1:0
+TAPESH
+p:Harmonic,f:40
+0016:00820000:00c9:0006:1:0
+Guide/Country
+p:,C:0e00,f:40
+0e16:00820000:0708:00c8:1:0
+ESP2 Romania
+p:EUTELSAT,f:40
+2016:00820000:24b8:013e:1:0
+JSTV2
+p:Globecast,f:40
+2316:00820000:238c:013e:1:0
+Nile TV International
+p:ERTU,f:40
+2916:00820000:1edc:0071:1:0
+TV1000
+p:Cyfrowy Polsat,f:40
+3616:00820000:00c8:013e:1:0
+ESP2 German
+p:Eutelsat,f:40
+0017:00820000:00c9:0006:1:0
+Eifel
+p:,C:0e00,f:40
+2217:00820000:1af4:013e:1:0
+MCT Sct
+p:TSA,f:40
+2317:00820000:238c:013e:1:0
+Nile News
+p:ERTU,f:40
+2917:00820000:1edc:0071:1:0
+Test Radio 2
+p:Cyfrowy Polsat,f:40
+3617:00820000:00c8:013e:1:0
+ESP2 Serbia
+p:Eutelsat,f:40
+0018:00820000:3200:013e:1:0
+VH1 Polska.
+p:MTV Networks Europe,f:40
+0018:00820000:300c:013e:1:0
+Asianet Plus
+p:RRSat,f:40
+0018:00820000:00c9:0006:1:0
+Guide/NPR
+p:,C:0e00,f:40
+0218:00820000:26ac:013f:1:0
+ORANGE SPORT TV
+p:AB SAT,f:40
+0e18:00820000:0708:00c8:1:0
+La Nuova TV
+p:M-Three satcom,f:40
+2218:00820000:1af4:013e:1:0
+MCT Sex
+p:TSA,f:40
+2918:00820000:1edc:0071:1:0
+Travel
+p:Cyfrowy Polsat,f:40
+0019:00820000:3200:013e:1:0
+VIVA Polska.
+p:MTV Networks Europe,f:40
+0119:0082afc1:0065:0001:1:0
+IBB VOA RFERL Radio 281
+p:,f:40
+0e19:00820000:0708:00c8:1:0
+Umbria Channel
+p:M-Three satcom,f:40
+2219:00820000:1af4:013e:1:0
+TELEITALIA
+p:Harmonic,f:40
+2919:00820000:1edc:0071:1:0
+Science
+p:Cyfrowy Polsat,f:40
+3619:00820000:00c8:013e:1:0
+France 24 (en Francais)
+p:Eutelsat,f:40
+001a:00820000:012d:0006:1:0
+AFN Freedom
+p:,C:0e00,f:40
+011a:0082afc1:0065:0001:1:0
+Sawa Levant Radio 282
+p:,f:40
+021a:00820000:26ac:013f:1:0
+France 3
+p:AB SAT,f:40
+0e1a:00820000:0708:00c8:1:0
+LA7
+p:,C:093b,C:0919,f:40
+1d1a:00820000:2fa8:013e:1:0
+Sun KTV
+p:Globecast UK,f:40
+291a:00820000:1edc:0071:1:0
+Discovery World
+p:Cyfrowy Polsat,f:40
+361a:00820000:00c8:013e:1:0
+France 24 (in English)
+p:Eutelsat,f:40
+001b:00820000:3200:013e:1:0
+VH1.
+p:MTV Networks Europe,f:40
+001b:00820000:00c9:0006:1:0
+Guide/The Touch
+p:,C:0e00,f:40
+011b:0082afc1:0065:0001:1:0
+Sawa Iraq Radio 283
+p:,f:40
+021b:00820000:26ac:013f:1:0
+France 4
+p:AB SAT,f:40
+231b:00820000:238c:013e:1:0
+MEDIOLANUM
+p:Tadiran Scopus,f:40
+001c:00820000:00c9:0006:1:0
+Guide/Pure Gold
+p:,C:0e00,f:40
+011c:0082afc1:0065:0001:1:0
+IBB TV Dedicated Channel 284
+p:,f:40
+021c:00820000:26ac:013f:1:0
+TMC
+p:AB SAT,f:40
+051c:00820000:3db8:00b0:1:0
+OM TV
+p:,f:40
+1d1c:00820000:2fa8:013e:1:0
+ANB
+p:Globecast,f:40
+001d:00820000:00c9:0006:1:0
+Guide/Hot AC
+p:,C:0e00,f:40
+021d:00820000:26ac:013f:1:0
+CINE FIRST
+p:,f:40
+0c1d:00820000:1e78:0071:1:0
+Polsat Sport HD test
+p:Cyfrowy Polsat S.A.,f:40
+0e1d:00820000:0708:00c8:1:0
+ESP2 Hungary
+p:EUTELSAT,f:40
+221d:00820000:1af4:013e:1:0
+Redlight LATINO
+p:TSA,f:40
+251d:00820000:13ef:013e:1:0
+DUBAI TV
+p:DU,f:40
+001e:00820000:3200:013e:1:0
+Comedy Central Polska.
+p:MTV Networks Europe,f:40
+001e:00820000:00c9:0006:1:0
+Guide/Z-rock ABC Hard Rock
+p:,C:0e00,f:40
+051e:00820000:3db8:00b0:1:0
+COMEDIE!
+p:,C:0500,f:40
+0c1e:00820000:1e78:0071:1:0
+HBO
+p:Cyfrowy Polsat S.A.,f:40
+251e:00820000:13ef:013e:1:0
+DUBAI SPORTS
+p:DU,f:40
+341e:00820000:0064:fbff:1:0
+Prima Fila 38
+p:SkyItalia,f:40
+391e:00820000:32c8:013e:1:0
+Wedding TV
+p:Globecast UK,f:40
+001f:00820000:00c9:0006:1:0
+Guide/Fox Sports Talk
+p:,C:0e00,f:40
+051f:00820000:3db8:00b0:1:0
+SPORT+
+p:,C:0500,f:40
+0c1f:00820000:1e78:0071:1:0
+HBO 2
+p:Cyfrowy Polsat S.A.,f:40
+0e1f:00820000:0708:00c8:1:0
+ROMAUNO
+p:Scopus Network Technologies,f:40
+1d1f:00820000:2fa8:013e:1:0
+Sun TV +442083356780
+p:Globecast UK,f:40
+231f:00820000:238c:013e:1:0
+Sports
+p:ERTU,f:40
+251f:00820000:13ef:013e:1:0
+SAMADUBAI
+p:DU,f:40
+341f:00820000:0064:fbff:1:0
+Prima Fila 31
+p:SkyItalia,f:40
+0020:00820000:00c9:0006:1:0
+Guide/ESPN Radio
+p:,C:0e00,f:40
+0520:00820000:3db8:00b0:1:0
+13ème RUE
+p:,f:40
+0c20:00820000:1e78:0071:1:0
+HBO Comedy
+p:Cyfrowy Polsat S.A.,f:40
+0e20:00820000:0708:00c8:1:0
+NATIONAL GEO
+p:EUTELSAT,f:40
+1d20:00820000:2fa8:013e:1:0
+Al Hiwar TV
+p:Globecast UK,f:40
+3420:00820000:0064:fbff:1:0
+Prima Fila 32
+p:SkyItalia,f:40
+3620:00820000:00c8:013e:1:0
+KP
+p:Eutelsat,f:40
+3920:00820000:32c8:013e:1:0
+D. Travel
+p:Globecast UK,f:40
+0021:00822faf:0001:0001:1:0
+3ABN International
+p:RRSat,f:40
+0221:00820000:26ac:013f:1:0
+TEST 1
+p:,f:40
+0321:00820000:3bc4:013e:1:0
+TBN Europe
+p:OVERON,f:40
+0c21:00820000:1e78:0071:1:0
+HBO HD test
+p:Cyfrowy Polsat S.A.,f:40
+1c21:00820000:1c20:013e:1:0
+DunaTV
+p:AH-EDP,f:40
+1d21:00820000:2fa8:013e:1:0
+CN/TCM CEE Combo
+p:Globecast UK,f:40
+3421:00820000:0064:fbff:1:0
+Prima Fila 35
+p:SkyItalia,f:40
+3621:00820000:00c8:013e:1:0
+M
+p:Eutelsat,f:40
+3921:00820000:32c8:013e:1:0
+D. World
+p:Globecast UK,f:40
+0022:00822faf:0001:0001:1:0
+Asianet
+p:RRSat,f:40
+0122:0082afc1:0065:0001:1:0
+Sawa Egypt Radio 290
+p:,f:40
+0322:00820000:3bc4:013e:1:0
+TBNEspain
+p:OVERON,f:40
+1c22:00820000:1c20:013e:1:0
+TV7 Tunis
+p:AH-EDP,f:40
+3422:00820000:0064:fbff:1:0
+Prima Fila 36
+p:SkyItalia,f:40
+3622:00820000:00c8:013e:1:0
+S
+p:Eutelsat,f:40
+3722:00820000:206c:013e:1:0
+SEX VIEW HQ
+p:,f:40
+3922:00820000:32c8:013e:1:0
+D. Science
+p:Globecast UK,f:40
+0023:00820000:00c9:0006:1:0
+Guide/AFNE PowerNet
+p:,C:0e00,f:40
+0123:0082afc1:0065:0001:1:0
+Sawa Gulf Radio 291
+p:,f:40
+0323:00820000:3bc4:013e:1:0
+TBN ITALIA
+p:OVERON,f:40
+1123:00820000:2710:fbff:1:0
+SKY TG 24
+p:SkyItalia,f:40
+1d23:00820000:2fa8:013e:1:0
+DMC TV
+p:Globecast UK,f:40
+2923:00820000:1edc:0071:1:0
+Radio ZET
+p:Cyfrowy Polsat,f:40
+3423:00820000:0064:fbff:1:0
+Prima Fila 37
+p:SkyItalia,f:40
+0024:00820000:00c9:0006:1:0
+Guide/Contingency
+p:,C:0e00,f:40
+0124:0082afc1:0065:0001:1:0
+Sawa N. Africa Radio 292
+p:,f:40
+0324:00820000:3bc4:013e:1:0
+Church Channel
+p:GCE,f:40
+2524:00820000:13ef:013e:1:0
+PMC
+p:DU,f:40
+2924:00820000:1edc:0071:1:0
+RMF Classic
+p:Cyfrowy Polsat,f:40
+0025:00820000:00c9:0006:1:0
+Guide/AFNE Eagle
+p:,C:0e00,f:40
+0125:0082afc1:0065:0001:1:0
+Sawa Egypt Radio 293
+p:,f:40
+0325:00820000:3bc4:013e:1:0
+JCTV
+p:,f:40
+1325:00820000:33f4:013e:1:0
+Test Tv 1 Enc 01
+p:Telespazio,f:40
+1c25:00820000:1c20:013e:1:0
+SALENTO CHANNEL
+p:AH-EDP,f:40
+2c25:00820000:1644:fbff:1:0
+Rock TV
+p:SkyItalia,f:40
+3625:00820000:00c8:013e:1:0
+H1
+p:EUTELSAT,f:40
+0126:0082afc1:0065:0001:1:0
+Farda Radio 294
+p:,f:40
+0326:00820000:3bc4:013e:1:0
+EL SHAFAA
+p:OVERON,f:40
+0e26:00820000:0708:00c8:1:0
+Toscana Channel
+p:M-Three Satcom,f:40
+1326:00820000:33f4:013e:1:0
+Test Tv 2 Enc 02
+p:,f:40
+1c26:00820000:1c20:013e:1:0
+STUDIO 100 TV
+p:AH-EDP,f:40
+2526:00820000:13ef:013e:1:0
+AL SHARQIYA
+p:DU,f:40
+2926:00820000:1edc:0071:1:0
+Radio Plus
+p:Cyfrowy Polsat,f:40
+2c26:00820000:1644:fbff:1:0
+Animal Planet
+p:SkyItalia,f:40
+3626:00820000:00c8:013e:1:0
+H2
+p:EUTELSAT,f:40
+0027:00820000:00c9:0006:1:0
+Guide/AFN News Radio
+p:,C:0e00,f:40
+0127:0082afc1:0065:0001:1:0
+VOA Persian TV 295
+p:,f:40
+0327:00820000:3bc4:013e:1:0
+TBN RUSSIA
+p:GCE,f:40
+0e27:00820000:0708:00c8:1:0
+50 Canale
+p:M-Three satcom,f:40
+1c27:00820000:1c20:013e:1:0
+FUEGO
+p:AH-EDP,f:40
+1d27:00820000:2fa8:013e:1:0
+Al Forat
+p:Globecast UK,f:40
+2927:00820000:1edc:0071:1:0
+Trójka - PR
+p:Cyfrowy Polsat,f:40
+3427:00820000:0064:fbff:1:0
+Prima Fila 39
+p:SkyItalia,f:40
+3627:00820000:00c8:013e:1:0
+H3
+p:EUTELSAT,f:40
+0028:00820000:00c9:0006:1:0
+AFN Iraq Radio
+p:,C:0e00,f:40
+0028:00820000:25e4:02be:1:0
+JORDAN
+p:ARABSAT,f:40
+0128:0082afc1:0065:0001:1:0
+IBB VOA RFERL Radio 296
+p:,f:40
+0328:00820000:3bc4:013e:1:0
+SMILE
+p:,f:40
+0e28:00820000:0708:00c8:1:0
+ARCOIRIS TV
+p:M-Three satcom,f:40
+1328:00820000:33f4:013e:1:0
+Test Tv 4 Enc 04
+p:Telespazio,f:40
+1c28:00820000:1c20:013e:1:0
+BLU
+p:AH-EDP,f:40
+2528:00820000:13ef:013e:1:0
+INFINITY
+p:DU,f:40
+2928:00820000:1edc:0071:1:0
+Radio Polonia
+p:Cyfrowy Polsat,f:40
+2c28:00820000:1644:fbff:1:0
+Discovery Real Time
+p:SkyItalia,f:40
+0029:00820000:012d:0006:1:0
+The Eagle - Vicenza (audio only)
+p:,C:0e00,f:40
+0029:00820000:25e4:02be:1:0
+ALMUSTAKILLA
+p:ARABSAT,f:40
+0129:0082afc1:0065:0001:1:0
+Sawa Sudan Radio 297
+p:,f:40
+0329:00820000:3bc4:013e:1:0
+NEJAT TV
+p:OVERON,f:40
+1329:00820000:33f4:013e:1:0
+Test Tv 5 Enc 05
+p:Telespazio,f:40
+1c29:00820000:1c20:013e:1:0
+TR2SAT
+p:AH-EDP,f:40
+1d29:00820000:2fa8:013e:1:0
+Al Forat Radio
+p:Globecast UK,f:40
+2529:00820000:13ef:013e:1:0
+AL ARABIYA
+p:DU,f:40
+2929:00820000:1edc:0071:1:0
+Jedynka - PR
+p:Cyfrowy Polsat,f:40
+002a:00820000:012d:0006:1:0
+Power 107 Vicenza (audio only)
+p:,C:0e00,f:40
+002a:00820000:25e4:02be:1:0
+STRIKE TV
+p:ARABSAT,f:40
+012a:0082afc1:0065:0001:1:0
+VOA Persian TV 298
+p:,f:40
+1c2a:00820000:1c20:013e:1:0
+BLU 3
+p:AH-EDP,f:40
+1d2a:00820000:2fa8:013e:1:0
+Disney Channel
+p:Globecast UK,f:40
+292a:00820000:1edc:0071:1:0
+RMF FM
+p:Cyfrowy Polsat,f:40
+2c2a:00820000:1644:fbff:1:0
+Discovery
+p:SkyItalia,f:40
+342a:00820000:0064:fbff:1:0
+JimJam
+p:SkyItalia,f:40
+002b:00820000:012d:0006:1:0
+AFN Vicenza Contingency
+p:,C:0e00,f:40
+012b:0082afc1:0065:0001:1:0
+Sawa Lebanon Radio 299
+p:,f:40
+032b:00820000:3bc4:013e:1:0
+Inspiration
+p:GlobeCast,f:40
+0e2b:00820000:0708:00c8:1:0
+TeleTirreno
+p:M-Three satcom,f:40
+1d2b:00820000:2fa8:013e:1:0
+Cartoon Network
+p:Globecast UK,f:40
+252b:00820000:13ef:013e:1:0
+MBC MAGHREB AL ARABIA
+p:DU,f:40
+2d2b:00820000:1a2c:fbff:1:0
+Bloomberg
+p:SkyItalia,f:40
+342b:00820000:0064:fbff:1:0
+Prima Fila 33
+p:SkyItalia,f:40
+032c:00820000:3bc4:013e:1:0
+DAYSTAR
+p:OVERON,f:40
+132c:00820000:33f4:013e:1:0
+TV Moda
+p:Telespazio,f:40
+1d2c:00820000:2fa8:013e:1:0
+Turner Classic Movies
+p:Globecast UK,f:40
+252c:00820000:13ef:013e:1:0
+ME SHOP
+p:DU,f:40
+2c2c:00820000:1644:fbff:1:0
+Class CNBC
+p:SkyItalia,f:40
+012d:0082afc1:0065:0001:1:0
+Sawa Iraq Radio 301
+p:,f:40
+012d:00820000:157c:013e:1:0
+R1
+p:NetMed,f:40
+1d2d:00820000:2fa8:013e:1:0
+All Music
+p:Globecast UK,f:40
+252d:00820000:13ef:013e:1:0
+EZ Shop
+p:Samacom,f:40
+332d:00820000:3390:0071:1:0
+Polsat
+p:Polsat,f:40
+342d:00820000:0064:fbff:1:0
+CNBC Europe
+p:SkyItalia,f:40
+012e:0082afc1:0065:0001:1:0
+Sawa Egypt Radio 302
+p:,f:40
+012e:00820000:157c:013e:1:0
+R2
+p:NetMed,f:40
+0e2e:00820000:16a8:fbff:1:0
+Alice
+p:SkyItalia,f:40
+132e:00820000:33f4:013e:1:0
+JSC Sport+1
+p:Telespazio,f:40
+222e:00820000:1af4:013e:1:0
+Bolsa
+p:TSA,f:40
+2c2e:00820000:1644:fbff:1:0
+Raisat Cinema
+p:SkyItalia,f:40
+332e:00820000:3390:0071:1:0
+Polsat2
+p:Polsat,f:40
+002f:00820000:25e4:02be:1:0
+OMAN -HOLY QURAN
+p:ARABSAT,f:40
+012f:0082afc1:0065:0001:1:0
+Sawa Gulf Radio 303
+p:,f:40
+012f:00820000:157c:013e:1:0
+R3
+p:NetMed,f:40
+0e2f:00820000:16a8:fbff:1:0
+Leonardo
+p:SkyItalia,f:40
+132f:00820000:33f4:013e:1:0
+JSC Sport+2
+p:Telespazio,f:40
+332f:00820000:3390:0071:1:0
+TV4
+p:Polsat,f:40
+0130:0082afc1:0065:0001:1:0
+Sawa N. Africa Radio 304
+p:,f:40
+0130:00820000:157c:013e:1:0
+R4
+p:NetMed,f:40
+0e30:00820000:16a8:fbff:1:0
+Nuvolari
+p:SkyItalia,f:40
+1330:00820000:33f4:013e:1:0
+JSC Sport+3
+p:Telespazio,f:40
+3330:00820000:3390:0071:1:0
+Polsat Sport
+p:Polsat,f:40
+0131:0082afc1:0065:0001:1:0
+Sawa Sudan Radio 305
+p:,f:40
+0e31:00820000:16a8:fbff:1:0
+Marcopolo
+p:SkyItalia,f:40
+2931:00820000:1edc:0071:1:0
+Techniczny
+p:CyfrowyPolsat,f:40
+2c31:00820000:1644:fbff:1:0
+Raisat Gambero
+p:SkyItalia,f:40
+3331:00820000:3390:0071:1:0
+Polsat Sport Extra
+p:Polsat,f:40
+0032:00822faf:0001:0001:1:0
+VTV4
+p:RRSat,f:40
+0032:00820000:00c9:0006:1:0
+Guide/Bright AC
+p:,C:0e00,f:40
+0132:0082afc1:0065:0001:1:0
+Farda Radio 306
+p:,f:40
+0132:00820000:157c:013e:1:0
+R5
+p:NetMed,f:40
+1132:00820000:2af8:013e:1:0
+Movies24
+p:CYFRA +,f:40
+2c32:00820000:1644:fbff:1:0
+Raisat YOYO
+p:SkyItalia,f:40
+3332:00820000:3390:0071:1:0
+Zdrowie i Uroda
+p:Polsat,f:40
+0033:00822faf:0001:0001:1:0
+CNL
+p:RRSat,f:40
+0033:00820000:00c9:0006:1:0
+Guide/Adult Rock
+p:,C:0e00,f:40
+0133:0082afc1:0065:0001:1:0
+Sawa Lebanon Radio 307
+p:,f:40
+0133:00820000:157c:013e:1:0
+R6
+p:NetMed,f:40
+0e33:00820000:16a8:fbff:1:0
+Fox +1
+p:SkyItalia,f:40
+1133:00820000:2af8:013e:1:0
+TV 4
+p:CYFRA +,f:40
+1333:00820000:33f4:013e:1:0
+Studio Europa
+p:Telespazio,f:40
+2c33:00820000:1644:fbff:1:0
+VideoItalia
+p:SkyItalia,f:40
+3333:00820000:3390:0071:1:0
+TV Biznes
+p:CYFRA+,f:40
+0034:00822faf:0001:0001:1:0
+Rojhelat
+p:RRSat,f:40
+0134:00820000:157c:013e:1:0
+SuperSport1
+p:NetMed,f:40
+0834:00820000:3d54:013e:1:0
+ERTSAT Europe
+p:,f:40
+0e34:00820000:16a8:fbff:1:0
+Fantasy
+p:SkyItalia,f:40
+1134:00820000:2af8:013e:1:0
+4fun.TV
+p:CYFRA +,f:40
+1334:00820000:33f4:013e:1:0
+GLOBE MEDIA
+p:Telespazio,f:40
+1c34:00820000:1c20:013e:1:0
+Khabar TV
+p:AH-EDP,f:40
+2234:00820000:1af4:013e:1:0
+Redlight Italy
+p:TSA,f:40
+3334:00820000:3390:0071:1:0
+Superstacja
+p:Cyfrowy Polsat,f:40
+0e35:00820000:16a8:fbff:1:0
+NatGeo Wild
+p:SkyItalia,f:40
+1135:00820000:2af8:013e:1:0
+EUROSPORT 2
+p:CYFRA +,f:40
+1c35:00820000:1c20:013e:1:0
+Telelombardia
+p:AH-EDP,f:40
+2135:00820000:3070:013e:1:0
+Rai Africa
+p:RAI,f:40
+2935:00820000:1edc:0071:1:0
+RMF MAXXX
+p:Cyfrowy Polsat,f:40
+3335:00820000:3390:0071:1:0
+Polsat News
+p:Cyfrowy Polsat,f:40
+3a35:00820000:1fa4:013e:1:0
+UNIVERSAL
+p:EUTELSAT,f:40
+1136:00820000:2af8:013e:1:0
+PLANETE
+p:CYFRA +,f:40
+1c36:00820000:1c20:013e:1:0
+LIDER TV AZE
+p:AH-EDP,f:40
+2136:00820000:3070:013e:1:0
+RAITALIA INTERNATIONAL
+p:RAI,f:40
+2c36:00820000:1644:fbff:1:0
+Comedy Central
+p:SkyItalia,f:40
+3a36:00820000:1fa4:013e:1:0
+SCI FI
+p:EUTELSAT,f:40
+1137:00820000:2af8:013e:1:0
+MINIMINI
+p:CYFRA +,f:40
+1c37:00820000:1c20:013e:1:0
+Nessuno TV
+p:AH-EDP,f:40
+1338:00820000:33f4:013e:1:0
+NEW TELEVISION
+p:Telespazio,f:40
+1c38:00820000:1c20:013e:1:0
+CCTV4
+p:AH-EDP,f:40
+2c38:00820000:1644:fbff:1:0
+Nickelodeon
+p:SkyItalia,f:40
+1339:00820000:33f4:013e:1:0
+GBR
+p:Telespazio,f:40
+2239:00820000:1af4:013e:1:0
+MCT Gay-Trans
+p:TSA,f:40
+133a:00820000:33f4:013e:1:0
+BTV INPS
+p:Telespazio,f:40
+223a:00820000:1af4:013e:1:0
+MCT Fantasy-Amateur
+p:TSA,f:40
+223b:00820000:1af4:013e:1:0
+Don t Panic TV
+p:TSA,f:40
+013c:00820000:157c:013e:1:0
+JETIX
+p:NetMed,f:40
+2c3c:00820000:1644:fbff:1:0
+NASN
+p:SkyItalia,f:40
+003d:00820000:00c9:0006:1:0
+Bars and Test Tone +4.0 dBu
+p:,f:40
+013d:00820000:157c:013e:1:0
+novacinema1
+p:NetMed,f:40
+113d:00820000:2af8:013e:1:0
+INFO+/C+ Sport2
+p:CYFRA +,f:40
+133d:00820000:33f4:013e:1:0
+Sensuality
+p:Telespazio,f:40
+223d:00820000:1af4:013e:1:0
+MCT Super-Dream
+p:Harmonic,f:40
+013e:00820000:157c:013e:1:0
+novasports1
+p:NetMed,f:40
+133e:00820000:33f4:013e:1:0
+SixtyNine
+p:Telespazio,f:40
+223e:00820000:1af4:013e:1:0
+MCT Strong
+p:TSA,f:40
+013f:00820000:157c:013e:1:0
+MEGA
+p:NetMed,f:40
+123f:00820000:2b5c:013e:1:0
+Discovery Historia
+p:ARQIVA,f:40
+133f:00820000:33f4:013e:1:0
+Telemarket
+p:Telespazio,f:40
+213f:00820000:3070:013e:1:0
+Rai Uno
+p:RAI,f:40
+0140:00820000:157c:013e:1:0
+ANT-1
+p:NetMed,f:40
+1240:00820000:2b5c:013e:1:0
+AXN
+p:ARQIVA,f:40
+2140:00820000:3070:013e:1:0
+Rai Due
+p:RAI,f:40
+0141:00820000:157c:013e:1:0
+STAR
+p:NetMed,f:40
+0641:00820000:2ee0:00b0:1:0
+M6
+p:,C:0100,C:0500,f:40
+1241:00820000:2b5c:013e:1:0
+AXN Crime
+p:ARQIVA,f:40
+2141:00820000:3070:013e:1:0
+Rai Tre
+p:RAI,f:40
+0142:00820000:157c:013e:1:0
+ALTER
+p:NetMed,f:40
+0642:00820000:2ee0:00b0:1:0
+Eurosport
+p:,C:0100,C:0500,f:40
+1242:00820000:2b5c:013e:1:0
+AXN Sci-Fi
+p:ARQIVA,f:40
+2142:00820000:3070:013e:1:0
+Rai Gulp
+p:RAI,f:40
+2242:00820000:1af4:013e:1:0
+MCT Reality-Blu
+p:Harmonic,f:40
+0143:00820000:157c:013e:1:0
+SSExtra 1
+p:NetMed,f:40
+0643:00820000:2ee0:00b0:1:0
+Histoire
+p:,C:0100,C:0500,f:40
+1243:00820000:2b5c:013e:1:0
+Religia
+p:TVN,f:40
+1f43:00820000:319c:013e:1:0
+RTL CH
+p:T-Systems,C:0d02,f:40
+2243:00820000:1af4:013e:1:0
+MCT Gold
+p:Harmonic,f:40
+0144:00820000:157c:013e:1:0
+R13
+p:NetMed,f:40
+0644:00820000:2ee0:00b0:1:0
+TF1
+p:,C:0100,C:0500,f:40
+0145:00820000:157c:013e:1:0
+ALPHA TV
+p:NetMed,f:40
+0046:00820000:1250:0064:1:0
+AIT
+p:,f:40
+0146:00820000:157c:013e:1:0
+R11
+p:NetMed,f:40
+0646:00820000:2ee0:00b0:1:0
+Odyssée
+p:,C:0100,C:0500,f:40
+0047:00820000:1250:0064:1:0
+Bridge TV
+p:,f:40
+0147:00820000:157c:013e:1:0
+R12
+p:NetMed,f:40
+0647:00820000:2ee0:00b0:1:0
+TF6
+p:,C:0100,C:0500,f:40
+0048:00820000:1250:0064:1:0
+MTA International
+p:,f:40
+0148:00820000:157c:013e:1:0
+Test2
+p:NetMed,f:40
+0648:00820000:2ee0:00b0:1:0
+LCI
+p:,C:0500,f:40
+0149:00820000:157c:013e:1:0
+DS Test
+p:NetMed,f:40
+0649:00820000:2ee0:00b0:1:0
+Télétoon+1
+p:,C:0100,C:0500,f:40
+0d49:00820000:1450:013e:1:0
+RAI1
+p:RAI,f:40
+064a:00820000:2ee0:00b0:1:0
+Privatespice
+p:,C:0500,f:40
+0d4a:00820000:1450:013e:1:0
+RAI2
+p:RAI,f:40
+294a:00820000:1edc:0071:1:0
+Portal ITV
+p:OTV,f:40
+064b:00820000:2ee0:00b0:1:0
+Planète Thalassa
+p:,C:0500,f:40
+0d4b:00820000:1450:013e:1:0
+RAI3
+p:RAI,f:40
+1f4b:00820000:319c:013e:1:0
+ZDF
+p:ZDFmobil,f:40
+0d4c:00820000:1450:013e:1:0
+RaiMed
+p:RAI,f:40
+114c:00820000:2af8:013e:1:0
+MTV TWO
+p:CYFRA +,f:40
+044d:00820000:2d50:00b0:1:0
+Canal+
+p:,f:40
+114d:00820000:2af8:013e:1:0
+HBO
+p:CYFRA +,f:40
+1d4d:00820000:2f44:013e:1:0
+novasports3
+p:NetMed,f:40
+044e:00820000:2d50:00b0:1:0
+Canal+ Décalé
+p:,f:40
+044e:00820000:3d54:013e:1:0
+Fileas
+p:,f:40
+0d4e:00820000:1450:013e:1:0
+RaiEdu2
+p:RAI,f:40
+114e:00820000:2af8:013e:1:0
+HALLMARK
+p:CYFRA +,f:40
+1d4e:00820000:2f44:013e:1:0
+VH1
+p:NetMed,f:40
+294e:00820000:1edc:0071:1:0
+Pogoda
+p:OTV2,f:40
+044f:00820000:2d50:00b0:1:0
+France 2
+p:,C:0100,C:0500,f:40
+114f:00820000:2af8:013e:1:0
+HBO2
+p:CYFRA +,f:40
+1d4f:00820000:2f44:013e:1:0
+MTV
+p:NetMed,f:40
+0450:00820000:2d50:00b0:1:0
+Eurosport 2
+p:,C:0100,C:0500,f:40
+0d50:00820000:1450:013e:1:0
+Senato
+p:RAI,f:40
+1150:00820000:2af8:013e:1:0
+HBO COMEDY
+p:CYFRA +,f:40
+2950:00820000:1edc:0071:1:0
+Test-EPG
+p:Cyfrowy Polsat S.A.,f:40
+0051:00822faf:0001:0001:1:0
+Thai Global Network
+p:RRSat,f:40
+0451:00820000:2d50:00b0:1:0
+France 3
+p:,C:0100,C:0500,f:40
+1d51:00820000:2f44:013e:1:0
+MGM
+p:NetMed,f:40
+2d51:00820000:2008:fbff:1:0
+Prima Fila 16
+p:SkyItalia,f:40
+0452:00820000:2d50:00b0:1:0
+Canal+ Cinéma
+p:,f:40
+0d52:00820000:1450:013e:1:0
+Rai Gulp
+p:Rai,f:40
+1d52:00820000:2f44:013e:1:0
+Animal Planet
+p:NetMed,f:40
+0453:00820000:2d50:00b0:1:0
+Canal+ Hi-Tech
+p:,f:40
+1153:00820000:2af8:013e:1:0
+ESP
+p:CYFRA +,f:40
+1d53:00820000:2f44:013e:1:0
+novacinema2
+p:NetMed,f:40
+2d53:00820000:2008:fbff:1:0
+Prima Fila 20
+p:SkyItalia,f:40
+0154:0082afc1:0065:0001:1:0
+IBB TV Dedicated Channel 340
+p:,f:40
+0454:00820000:2d50:00b0:1:0
+Canal+ Sport
+p:,f:40
+0654:00820000:2ee0:00b0:1:0
+M6
+p:,C:0100,C:0500,f:40
+1d54:00820000:2f44:013e:1:0
+National Geographic
+p:NetMed,f:40
+0455:00820000:2d50:00b0:1:0
+OL TV
+p:,C:0100,C:0500,f:40
+0655:00820000:2ee0:00b0:1:0
+TF1
+p:,C:0100,C:0500,f:40
+1d55:00820000:2f44:013e:1:0
+novacinema2 Cy
+p:NetMed,f:40
+0456:00820000:2d50:00b0:1:0
+I>TELE
+p:,C:0500,f:40
+1d56:00820000:2f44:013e:1:0
+A TEST
+p:NetMed,f:40
+2456:00820000:23f0:013f:1:0
+Administra.it - FLTV
+p:Administra.it - FLTV,f:40
+1d57:00820000:2f44:013e:1:0
+MAD VMA '08
+p:NetMed,f:40
+2d57:00820000:2008:fbff:1:0
+Prima Fila 24
+p:SkyItalia,f:40
+1f59:00820000:319c:013e:1:0
+MI-TV
+p:T-Systems,f:40
+2d59:00820000:2008:fbff:1:0
+Prima Fila 8
+p:SkyItalia,f:40
+025a:00820000:3c8c:013e:1:0
+IranMusic
+p:T-Systems,f:40
+1f5a:00820000:319c:013e:1:0
+SRI TV
+p:T-Systems,f:40
+2d5b:00820000:2008:fbff:1:0
+Prima Fila 26
+p:SkyItalia,f:40
+1f5c:00820000:319c:013e:1:0
+Venere TV
+p:T-Systems,f:40
+025d:00820000:3c8c:013e:1:0
+Napoli TLA
+p:T-Systems,f:40
+1f5d:00820000:319c:013e:1:0
+Sport Channel
+p:T-Systems,f:40
+2b5d:00820000:19c8:fbff:1:0
+SKYCinema 1
+p:SkyItalia,f:40
+2d5d:00820000:2008:fbff:1:0
+SKY Calcio 9
+p:SkyItalia,f:40
+025e:00820000:3c8c:013e:1:0
+ARD "Das Erste"
+p:T-Systems,f:40
+125e:00820000:3458:013e:1:0
+Telenord
+p:T-Systems/MTI,f:40
+1f5e:00820000:319c:013e:1:0
+Iran Beauty
+p:T-Systems,f:40
+015f:00820000:1c84:013e:1:0
+Discovery Channel
+p:NetMed,f:40
+025f:00820000:3c8c:013e:1:0
+DW-TV EUROPA
+p:Deutsche Welle,f:40
+125f:00820000:3458:013e:1:0
+Trentino TV
+p:T-Systems/MTI,f:40
+1f5f:00820000:319c:013e:1:0
+C TV Coptic CH
+p:T-Systems,f:40
+2b5f:00820000:19c8:fbff:1:0
+SKY Mania
+p:SkyItalia,f:40
+2d5f:00820000:2008:fbff:1:0
+SKY Calcio 10
+p:SkyItalia,f:40
+365f:00820000:1388:013e:1:0
+BBC Arabic
+p:BBC World Service,f:40
+0160:00820000:1c84:013e:1:0
+R9
+p:NetMed,f:40
+0260:00820000:3c8c:013e:1:0
+DW-TV ARABIA
+p:Deutsche Welle,f:40
+0460:00820000:2d50:00b0:1:0
+France 2
+p:,C:0100,C:0500,f:40
+1f60:00820000:319c:013e:1:0
+tv PERSIA
+p:T-Systems,f:40
+0161:00820000:1c84:013e:1:0
+novasports2
+p:NetMed,f:40
+0261:00820000:3c8c:013e:1:0
+RTL 2 CH
+p:T-Systems,f:40
+0461:00820000:2d50:00b0:1:0
+France 3
+p:,C:0100,C:0500,f:40
+1261:00820000:3458:013e:1:0
+Sat9
+p:T-Systems/MTI,f:40
+2b61:00820000:19c8:fbff:1:0
+SKYCinema 3
+p:SkyItalia,f:40
+2d61:00820000:2008:fbff:1:0
+SKY Calcio 11
+p:SkyItalia,f:40
+3b61:00820000:0578:013e:1:0
+HBO HD
+p:ITI,f:40
+0162:00820000:1c84:013e:1:0
+TCM
+p:NetMed,f:40
+0462:00820000:2d50:00b0:1:0
+I>TELE
+p:,C:0500,f:40
+1262:00820000:3458:013e:1:0
+ELITE SHOPPING
+p:T-Systems/MTI,f:40
+2d62:00820000:2008:fbff:1:0
+SKY Calcio 12
+p:SkyItalia,f:40
+0163:00820000:1c84:013e:1:0
+Test TX
+p:NetMed,f:40
+2d63:00820000:2008:fbff:1:0
+SKY Calcio 13
+p:SkyItalia,f:40
+0064:0082afc1:0065:0001:1:0
+VOA TV 100 (HB1-4)
+p:,f:40
+0164:00820000:1c84:013e:1:0
+R15
+p:NetMed,f:40
+0264:00820000:3c8c:013e:1:0
+7'armanat Nar
+p:T-Systems,f:40
+0f64:00820000:251c:fbff:1:0
+Vetrina Primafila
+p:SkyItalia,f:40
+1264:00820000:3458:013e:1:0
+Hot Week
+p:T-Systems/MTI,f:40
+2d64:00820000:2008:fbff:1:0
+SKY Calcio 14
+p:SkyItalia,f:40
+0065:00820000:1e14:013e:1:0
+Gulli
+p:Globecast,C:0500,f:40
+0165:00820000:1c84:013e:1:0
+R10
+p:NetMed,f:40
+0265:00820000:3c8c:013e:1:0
+arab-69.tv
+p:T-Systems,f:40
+0f65:00820000:251c:fbff:1:0
+Prima Fila 1
+p:SkyItalia,f:40
+1265:00820000:3458:013e:1:0
+Sevince TV
+p:T-Systems/MTI,f:40
+2b65:00820000:19c8:fbff:1:0
+SKY Calcio 1
+p:SkyItalia,f:40
+0066:00820000:1e14:013e:1:0
+AZ TV
+p:GlobeCast,f:40
+0166:00820000:1c84:013e:1:0
+R8
+p:NetMed,f:40
+0266:00820000:3c8c:013e:1:0
+' ' Hot Arab Sex
+p:T-Systems,f:40
+0f66:00820000:251c:fbff:1:0
+Prima Fila 2
+p:SkyItalia,f:40
+1266:00820000:3458:013e:1:0
+Betting Channel
+p:T-Systems/MTI,f:40
+2d66:00820000:2008:fbff:1:0
+SKY Sport 16:9
+p:SkyItalia,f:40
+0067:00820000:1e14:013e:1:0
+COMING SOON
+p:GlobeCast,f:40
+0267:00820000:3c8c:013e:1:0
+.69arabdream.tv
+p:T-Systems,f:40
+0f67:00820000:251c:fbff:1:0
+Prima Fila 12
+p:SkyItalia,f:40
+2b67:00820000:19c8:fbff:1:0
+E!
+p:SkyItalia,f:40
+0068:00820000:1e14:013e:1:0
+FILLES TV
+p:Globecast,C:0500,f:40
+0168:00820000:1c84:013e:1:0
+Cartoon
+p:NetMed,f:40
+0268:00820000:3c8c:013e:1:0
+Arab-Jins
+p:MEDIA BROADCAST,f:40
+0f68:00820000:251c:fbff:1:0
+Prima Fila 4
+p:SkyItalia,f:40
+0069:00820000:1e14:013e:1:0
+MEZZO
+p:Globecast,C:0604,C:0100,C:0500,f:40
+0169:00820000:1c84:013e:1:0
+MACEDONIA TV
+p:NetMed,f:40
+0269:00820000:3c8c:013e:1:0
+Zawaj elmot3a
+p:MEDIA BROADCAST,f:40
+0f69:00820000:251c:fbff:1:0
+Prima Fila 6
+p:SkyItalia,f:40
+2969:00820000:22c4:013e:1:0
+LIVE 24
+p:Belgacom,f:40
+2d69:00820000:2008:fbff:1:0
+SKY Sport Extra
+p:SkyItalia,f:40
+006a:00820000:1e14:013e:1:0
+Canal J
+p:GlobeCast,C:0500,f:40
+016a:00820000:1c84:013e:1:0
+SKAI TV
+p:NetMed,f:40
+026a:00820000:3c8c:013e:1:0
+Lebnaniat TV.
+p:T-Systems,f:40
+0f6a:00820000:251c:fbff:1:0
+Prima Fila 7
+p:SkyItalia,f:40
+1d6a:00820000:2f44:013e:1:0
+SSExtra 2
+p:NetMed,f:40
+226a:00820000:238c:013e:1:0
+Canal Algerie
+p:TDA,f:40
+296a:00820000:22c4:013e:1:0
+.Eurotour-Xstream
+p:Belgacom,f:40
+016b:00820000:1c84:013e:1:0
+ET-3
+p:NetMed,f:40
+026b:00820000:3c8c:013e:1:0
+Arab XXX
+p:T-Systems,f:40
+0f6b:00820000:251c:fbff:1:0
+Prima Fila 9
+p:SkyItalia,f:40
+226b:00820000:238c:013e:1:0
+A3
+p:TDA,f:40
+296b:00820000:22c4:013e:1:0
+Komala TV
+p:Belgacom,f:40
+2b6b:00820000:19c8:fbff:1:0
+SKY Max
+p:SkyItalia,f:40
+006c:00820000:1e14:013e:1:0
+SUBACQUEA TV
+p:GlobeCast,f:40
+026c:00820000:3c8c:013e:1:0
+Wala3 Arab tv
+p:T-Systems,f:40
+0f6c:00820000:251c:fbff:1:0
+Prima Fila 10
+p:SkyItalia,f:40
+296c:00820000:22c4:013e:1:0
+Zee TV
+p:Belgacom,f:40
+006d:00820000:1e14:013e:1:0
+HOLY GOD
+p:Globecast,f:40
+026d:00820000:3c8c:013e:1:0
+Xtele.tv
+p:T-Systems,f:40
+0f6d:00820000:251c:fbff:1:0
+Vetrina Primafila
+p:SkyItalia,f:40
+206d:00820000:2328:013e:1:0
+HRT-TV1
+p:OIV Zagreb,f:40
+296d:00820000:22c4:013e:1:0
+ROJ
+p:Belgacom,f:40
+006e:00820000:1e14:013e:1:0
+Virgin 17
+p:Globecast,C:0500,f:40
+026e:00820000:3c8c:013e:1:0
++18 Nisa
+p:MEDIA BROADCAST,f:40
+0f6e:00820000:251c:fbff:1:0
+FX
+p:SkyItalia,f:40
+126e:00820000:3458:013e:1:0
+ALL SEX
+p:T-Systems/MTI,f:40
+206e:00820000:2328:013e:1:0
+HRT-TV2
+p:OIV Zagreb,f:40
+2b6e:00820000:19c8:fbff:1:0
+Disney Channel
+p:SkyItalia,f:40
+016f:00820000:1c84:013e:1:0
+R7
+p:NetMed,f:40
+026f:00820000:3c8c:013e:1:0
+Al Jameela Jins
+p:MEDIA BROADCAST,f:40
+0f6f:00820000:251c:fbff:1:0
+Vetrina Primafila
+p:SkyItalia,f:40
+126f:00820000:3458:013e:1:0
+Made In Italy
+p:T-Systems/MTI,f:40
+206f:00820000:2328:013e:1:0
+HRT PLUS
+p:OIV Zagreb,f:40
+296f:00820000:22c4:013e:1:0
+2M MAROC
+p:BELGACOM,f:40
+2b6f:00820000:19c8:fbff:1:0
+New Ch1
+p:SkyItalia,f:40
+0070:00820000:1e14:013e:1:0
+Rainbow TV
+p:Tadiran Scopus,f:40
+0070:00820000:00c9:0006:1:0
+Guide/AFN Franconia Eagle
+p:,C:0e00,f:40
+0170:00820000:1c84:013e:1:0
+novasports7
+p:NetMed,f:40
+0270:00820000:3c8c:013e:1:0
+.arab babes
+p:T-Systems,f:40
+1270:00820000:3458:013e:1:0
+ODEON SAT
+p:T-Systems/MTI,f:40
+2b70:00820000:19c8:fbff:1:0
+SKY Show
+p:SkyItalia,f:40
+0071:00820000:1e14:013e:1:0
+DAN TV
+p:GlobeCast,f:40
+0071:00820000:00c9:0006:1:0
+Guide/AFN Franconia PowerNet
+p:,C:0e00,f:40
+0171:00820000:1c84:013e:1:0
+novasports7 Cy
+p:NetMed,f:40
+0f71:00820000:251c:fbff:1:0
+Vetrina Primafila
+p:SkyItalia,f:40
+2971:00820000:22c4:013e:1:0
+ARY DIGITAL
+p:Belgacom,f:40
+0072:00822faf:0001:0001:1:0
+TCT
+p:RRSat,f:40
+0072:00820000:1e14:013e:1:0
+TIJI
+p:GlobeCast ,C:0500,f:40
+0172:00820000:1c84:013e:1:0
+Mad Music Hits GR Cy
+p:NetMed,f:40
+0272:00820000:3c8c:013e:1:0
+Erde und Mensch
+p:T-Systems,f:40
+1f72:00820000:319c:013e:1:0
+Akubis Classic
+p:T-Systems,C:0b00,f:40
+0073:00822faf:0001:0001:1:0
+Arirang TV
+p:RRSat,f:40
+0173:00820000:1c84:013e:1:0
+Mad Music My Rock Cy
+p:NetMed,f:40
+0273:00820000:3c8c:013e:1:0
+Italiamia
+p:T-Systems,f:40
+1273:00820000:3458:013e:1:0
+MagicTV
+p:T-Systems/MTI,f:40
+1f73:00820000:319c:013e:1:0
+Akubis Direkt
+p:T-Systems,C:0b00,f:40
+0074:00822faf:0001:0001:1:0
+KURDsat
+p:RRSat,f:40
+0174:00820000:1c84:013e:1:0
+Mad Music Greek Cy
+p:NetMed,f:40
+0274:00820000:3c8c:013e:1:0
+FREE CHANNEL
+p:T-Systems,f:40
+1274:00820000:3458:013e:1:0
+Sat8
+p:T-Systems/MTI,f:40
+1f74:00820000:319c:013e:1:0
+AKUBIS Special IG
+p:T-Systems,C:0b00,f:40
+0075:00820000:1e14:013e:1:0
+KURD 1
+p:GlobeCast,f:40
+0175:00820000:1c84:013e:1:0
+Mad Music Rebetico Cy
+p:NetMed,f:40
+0275:00820000:3c8c:013e:1:0
+pdf.tv
+p:T-Systems,f:40
+1275:00820000:3458:013e:1:0
+TLC SAT
+p:T-Systems/MTI,f:40
+0076:00820000:1e14:013e:1:0
+Private Spice
+p:digital media centre,f:40
+0176:00820000:1c84:013e:1:0
+Mad Music Seasonal Cy
+p:NetMed,f:40
+1276:00820000:3458:013e:1:0
+STARSAT
+p:T-Systems/MTI,f:40
+2976:00820000:22c4:013e:1:0
+MEZOPOTAMIA
+p:Belgacom,f:40
+0077:00820000:1e14:013e:1:0
+Canale Italia
+p:,f:40
+0277:00820000:3c8c:013e:1:0
+Sexy Sexy TV
+p:T-Systems,f:40
+0078:00822faf:0001:0001:1:0
+Newroz
+p:RRSAt,f:40
+0178:00820000:1c84:013e:1:0
+NEÔ
+p:NetMed,f:40
+0278:00820000:3c8c:013e:1:0
+xxx Action TV
+p:T-Systems,f:40
+1278:00820000:3458:013e:1:0
+MOTORI TV
+p:T-Systems/MTI,f:40
+2978:00820000:22c4:013e:1:0
+Alpha ETC Punjabi
+p:Belgacom,f:40
+0179:00820000:1c84:013e:1:0
+MAD T.V
+p:NetMed,f:40
+0279:00820000:3c8c:013e:1:0
+Tele A+
+p:T-Systems,f:40
+0579:00820000:2c88:00b0:1:0
+Infosport
+p:,C:0100,C:0500,f:40
+017a:00820000:1c84:013e:1:0
+ET-1
+p:NetMed,f:40
+057a:00820000:2c88:00b0:1:0
+Planète Juniors
+p:,C:0100,C:0500,f:40
+127a:00820000:3458:013e:1:0
+PLAY TV ITALIA
+p:T-Systems/MTI,f:40
+237a:00820000:238c:013e:1:0
+RETE ORO
+p:Scopus Network Technologies,f:40
+027b:00820000:3c8c:013e:1:0
+COOLtv
+p:Media Braodcast,f:40
+057b:00820000:2c88:00b0:1:0
+Série Club
+p:,C:0100,C:0500,f:40
+127b:00820000:3458:013e:1:0
+PEOPLE TV-RETE7
+p:T-Systems/MTI,f:40
+227b:00820000:238c:013e:1:0
+TVA Vicenza
+p:MultiProgram,f:40
+017c:00820000:1c84:013e:1:0
+MAD TV
+p:NetMed,f:40
+027c:00820000:3c8c:013e:1:0
+Tele A
+p:Media Broadcast,f:40
+057c:00820000:2c88:00b0:1:0
+Fun TV
+p:,C:0100,C:0500,f:40
+117c:00820000:2af8:013e:1:0
+DTV CABLE PL
+p:CYFRA +,f:40
+127c:00820000:3458:013e:1:0
+ROMA SAT
+p:T-Systems/MTI,f:40
+227c:00820000:238c:013e:1:0
+CARPE DIEM
+p:MultiProgram,f:40
+017d:00820000:1c84:013e:1:0
+R14
+p:NetMed,f:40
+057d:00820000:2c88:00b0:1:0
+Téva
+p:,C:0100,C:0500,f:40
+117d:00820000:2af8:013e:1:0
+DTV CABLE MI
+p:CYFRA +,f:40
+127d:00820000:3458:013e:1:0
+MTI
+p:T-Systems/MTI,f:40
+227d:00820000:238c:013e:1:0
+GENIUS TV
+p:MultiProgram,f:40
+297d:00820000:22c4:013e:1:0
+Newroz
+p:BSS,f:40
+057e:00820000:2c88:00b0:1:0
+Télétoon
+p:,C:0100,C:0500,f:40
+127e:00820000:3458:013e:1:0
+Mediatel
+p:T-Systems/MTI,f:40
+1d7e:00820000:2f44:013e:1:0
+OTV Test
+p:NetMed,f:40
+227e:00820000:238c:013e:1:0
+LA 8
+p:MultiProgram,f:40
+377e:00820000:044c:013e:1:0
+Rang-A-Rang TV
+p:RRSat,f:40
+017f:00820000:1c84:013e:1:0
+novasports2 Cy
+p:NetMed,f:40
+057f:00820000:2c88:00b0:1:0
+Paris Première
+p:,C:0500,f:40
+1d7f:00820000:2f44:013e:1:0
+OTV PVR
+p:NetMed,f:40
+377f:00820000:044c:013e:1:0
+CALABRIA
+p:RRSat,f:40
+0180:00820000:1c84:013e:1:0
+ÂïõëÞ
+p:NetMed,f:40
+0580:00820000:2c88:00b0:1:0
+Piwi
+p:,C:0100,C:0500,f:40
+2980:00820000:22c4:013e:1:0
+Zee Cinema
+p:Belgacom,f:40
+3780:00820000:044c:013e:1:0
+TIZIANA SAT
+p:,f:40
+0c81:00820000:1f40:013e:1:0
+SLO-TV1
+p:RTV Slovenija,f:40
+2981:00820000:22c4:013e:1:0
+B4U Movies
+p:Belgacom,f:40
+3781:00820000:044c:013e:1:0
+RTA
+p:RRSat,f:40
+0082:00822faf:0001:0001:1:0
+FREE-XTV 2
+p:RRSat,f:40
+0182:00820000:1c84:013e:1:0
+MAD MUSIC Hits GR
+p:NetMed,f:40
+0582:00820000:2c88:00b0:1:0
+M6 Music Hits
+p:,C:0100,C:0500,f:40
+0c82:00820000:1f40:013e:1:0
+SLO-TV2
+p:RTV Slovenija,f:40
+0083:00822faf:0001:0001:1:0
+XDream TV
+p:RRSat,f:40
+0183:00820000:1c84:013e:1:0
+MAD MUSIC My Rock
+p:NetMed,f:40
+0c83:00820000:1f40:013e:1:0
+TV K-C
+p:RTV Slovenija,f:40
+3783:00820000:044c:013e:1:0
+Cancao Nova
+p:,f:40
+0084:00820000:00c9:0006:1:0
+Guide/AFN Hessen Eagle
+p:,C:0e00,f:40
+0184:00820000:1c84:013e:1:0
+MAD MUSIC Greek
+p:NetMed,f:40
+0584:00820000:2c88:00b0:1:0
+CANAL + FAMILY
+p:,C:0500,f:40
+3584:00820000:1388:013e:1:0
+Zagros Tv
+p:BT,f:40
+3784:00820000:044c:013e:1:0
+Bethel TV
+p:,f:40
+0085:00820000:00c9:0006:1:0
+Guide/AFN Hessen PowerNet
+p:,C:0e00,f:40
+0185:00820000:1c84:013e:1:0
+MAD MUSIC Rebetico
+p:NetMed,f:40
+0385:00820000:2134:013e:1:0
+SF 1
+p:Schweizer Fernsehen,f:40
+1285:00820000:3458:013e:1:0
+.Lolita
+p:T-Systems/MTI,f:40
+1c85:00820000:332c:013e:1:0
+Motors TV
+p:Arqiva France,f:40
+1c85:00820000:1ce8:0071:1:0
+Zone Romantica
+p:Cyfrowy Polsat,f:40
+3785:00820000:044c:013e:1:0
+Extra 3
+p:,f:40
+0086:00822faf:0001:0001:1:0
+Free-X TV
+p:RRSat,f:40
+0186:00820000:1c84:013e:1:0
+MAD MUSIC Seasonal
+p:NetMed,f:40
+0586:00820000:2c88:00b0:1:0
+Teletoon Africa
+p:,C:0500,f:40
+1c86:00820000:1ce8:0071:1:0
+AXN Crime
+p:Cyfrowy Polsat,f:40
+1f86:00820000:319c:013e:1:0
+bwtv
+p:T-Systems,f:40
+3786:00820000:044c:013e:1:0
+Dorcel TV
+p:,f:40
+0087:00822faf:0001:0001:1:0
+SAMA FM TV
+p:RRSat,f:40
+0c87:00820000:1f40:013e:1:0
+SLO-TV3
+p:RTV Slovenija,f:40
+1287:00820000:3458:013e:1:0
+Feyz TV
+p:T-Systems/MTI,f:40
+1c87:00820000:1ce8:0071:1:0
+AXN Sci-Fi
+p:Cyfrowy Polsat,f:40
+2487:00820000:23f0:013f:1:0
+TELE5
+p:EUTELSAT,f:40
+1288:00820000:3458:013e:1:0
+Mobile Arena TV
+p:T-Systems/MTI,f:40
+1d88:00820000:2f44:013e:1:0
+novasports3 Cy
+p:NetMed,f:40
+2488:00820000:23f0:013f:1:0
+POLONIA1
+p:EUTELSAT,f:40
+0c89:00820000:1f40:013e:1:0
+BVN-TV
+p:RTV Slovenija,f:40
+1c89:00820000:1ce8:0071:1:0
+Extreme Sports
+p:Cyfrowy Polsat,f:40
+2489:00820000:23f0:013f:1:0
+EDUSAT
+p:EUTELSAT,f:40
+3589:00820000:1388:013e:1:0
+TRSP
+p:BT,f:40
+3789:00820000:044c:013e:1:0
+TAPESH TV2
+p:GlobeCast,f:40
+378a:00820000:044c:013e:1:0
+ADJARA TV
+p:,f:40
+038b:00820000:2134:013e:1:0
+SF zwei
+p:Schweizer Fernsehen,f:40
+128b:00820000:3458:013e:1:0
+EBC.1
+p:T-Systems/MTI,f:40
+0c8c:00820000:1f40:013e:1:0
+XL Tv
+p:OIV Zagreb,f:40
+128c:00820000:3458:013e:1:0
+Heaven TV
+p:T-Systems/MTI,f:40
+008d:00820000:0389:0110:1:0
+Canale 5
+p:Mediaset,f:40
+0c8d:00820000:1f40:013e:1:0
+TV SLJEME
+p:OiV Zagreb,f:40
+208d:00820000:2328:013e:1:0
+Italia 8
+p:OiV Zagreb,f:40
+378d:00820000:044c:013e:1:0
+One Minute TV
+p:PRVDR,f:40
+008e:00820000:012d:0006:1:0
+The Eagle-Vicenza
+p:,C:0e00,f:40
+008e:00820000:0389:0110:1:0
+Italia 1
+p:Mediaset,f:40
+0c8e:00820000:1f40:013e:1:0
+PLEASURE TV
+p:OIV Zagreb,f:40
+208e:00820000:2328:013e:1:0
+Jewels Sorg1
+p:OiV Zagreb,f:40
+378e:00820000:044c:013e:1:0
+ECTV
+p:RRSat,f:40
+008f:00820000:012d:0006:1:0
+Power-Vicenza
+p:,C:0e00,f:40
+008f:00820000:0389:0110:1:0
+Rete 4
+p:Mediaset,f:40
+038f:00820000:2134:013e:1:0
+SF info
+p:Schweizer Fernsehen,f:40
+1d8f:00820000:2f44:013e:1:0
+novacinema1 Cy
+p:NetMed,f:40
+208f:00820000:2328:013e:1:0
+Jewels Sorg2
+p:OiV Zagreb,f:40
+0090:00820000:0389:0110:1:0
+Iris
+p:Mediaset,f:40
+0190:0082afc1:0065:0001:1:0
+VNN TEST 400
+p:,f:40
+2090:00820000:2328:013e:1:0
+Jewels Sorg3
+p:OiV Zagreb,f:40
+3790:00820000:044c:013e:1:0
+PDF Channel
+p: ,f:40
+2092:00820000:2328:013e:1:0
+Health&Beauty TV
+p:OiV Zagreb,f:40
+2492:00820000:23f0:013f:1:0
+AL JAZEERA CHILDREN
+p:Al Jazeera,f:40
+3792:00820000:044c:013e:1:0
+TV2DAY
+p:RRSat,f:40
+0c93:00820000:1f40:013e:1:0
+BLU LINE
+p:OIV Zagreb,f:40
+1c93:00820000:1ce8:0071:1:0
+Discovery
+p:Cyfrowy Polsat,f:40
+1d93:00820000:2f44:013e:1:0
+EEPG
+p:NetMed,f:40
+0c94:00820000:1f40:013e:1:0
+NTV HAYAT SAT
+p:RTV Slovenija,f:40
+1c94:00820000:1ce8:0071:1:0
+Animal Planet
+p:Cyfrowy Polsat,f:40
+0c95:00820000:1f40:013e:1:0
+DANCE TV
+p:OIV Zagreb,f:40
+1d95:00820000:2f44:013e:1:0
+NOVA SCOPE
+p:NetMed,f:40
+3795:00820000:044c:013e:1:0
+Casa Italia
+p:PRVDR,f:40
+0c96:00820000:1f40:013e:1:0
+ITALIAN MUSIC
+p:OIV Zagreb,f:40
+1c96:00820000:1ce8:0071:1:0
+AXN
+p:Cyfrowy Polsat,f:40
+2096:00820000:2328:013e:1:0
+RBC-TV
+p:OiV Zagreb,f:40
+0097:00820000:0389:0110:1:0
+Sportitalia
+p:,f:40
+1d97:00820000:2f44:013e:1:0
+Travel Channel
+p:NetMed,f:40
+2097:00820000:2328:013e:1:0
+OASI TV
+p:OIV Zagreb,f:40
+3797:00820000:044c:013e:1:0
+MTV PULSE
+p:,f:40
+0098:00820000:0389:0110:1:0
+Sportitalia24
+p:,f:40
+0098:00820000:00c9:0006:1:0
+Guide/AFN Heidelberg Eagle
+p:,C:0e00,f:40
+2098:00820000:2328:013e:1:0
+NOELLO SAT
+p:OiV Zagreb,f:40
+3598:00820000:1388:013e:1:0
+Telefortune
+p:BT,f:40
+3798:00820000:044c:013e:1:0
+MTV IDOL
+p:,f:40
+0099:00820000:00c9:0006:1:0
+Guide/AFN Heidelberg PowerNet
+p:,C:0e00,f:40
+1c99:00820000:332c:013e:1:0
+TV5MONDE FBS
+p:TV5MONDE,f:40
+1d99:00820000:2f44:013e:1:0
+novasports1 Cy
+p:NetMed,f:40
+2099:00820000:2328:013e:1:0
+TAXI CHANNEL
+p:OiV Zagreb,f:40
+3a99:00820000:0514:013e:1:0
+Wojna i Pokoj
+p:ITI,f:40
+019a:00820000:1964:013e:1:0
+ART PRIME SPORT - ARABESQUE
+p:ART,f:40
+0c9a:00820000:1f40:013e:1:0
+Diva Futura
+p:OIV Zagreb,f:40
+1c9a:00820000:332c:013e:1:0
+TV5MONDE EUROPE
+p:TV5MONDE,f:40
+1d9a:00820000:2f44:013e:1:0
+Stest1
+p:NetMed,f:40
+3a9a:00820000:0514:013e:1:0
+nTalk
+p:ITI,f:40
+3a9b:00820000:0514:013e:1:0
+TVN Lingua
+p:ITI,f:40
+1c9c:00820000:332c:013e:1:0
+ANN
+p:Arqiva France,f:40
+219c:00822a65:2db4:0000:1:0
+Supreme Master TV
+p:T-Systems,f:40
+1c9d:00820000:332c:013e:1:0
+Videolook
+p:Arqiva France,f:40
+359d:00820000:1388:013e:1:0
+Nepali
+p:BT,f:40
+0c9e:00820000:1f40:013e:1:0
+CRO MUSIC CHANNEL
+p:OiV Zagreb,f:40
+1c9e:00820000:332c:013e:1:0
+Kurdistan TV
+p:Arqiva France,f:40
+0c9f:00820000:1f40:013e:1:0
+Kanal e Jadid
+p:OiV Zagreb,f:40
+1c9f:00820000:332c:013e:1:0
+Iran TV
+p:Arqiva France,f:40
+0ca0:00820000:1f40:013e:1:0
+LOVEWORLD
+p:OiV Zagreb,f:40
+1ca0:00820000:332c:013e:1:0
+Videolina
+p:Arqiva France,f:40
+00a2:00820000:012d:0006:1:0
+The Eagle - La Maddalena
+p:,C:0e00,f:40
+1ca2:00820000:332c:013e:1:0
+RTB
+p:Arqiva,f:40
+2ca2:00820000:170c:fbff:1:0
+MTV
+p:SkyItalia,f:40
+35a2:00820000:1388:013e:1:0
+Infochannel
+p:BT,f:40
+00a3:00820000:012d:0006:1:0
+Power - La Maddalena
+p:,C:0e00,f:40
+1ca3:00820000:332c:013e:1:0
+Starmarket
+p:Arqiva France,f:40
+35a3:00820000:1388:013e:1:0
+Sardinia
+p:BT,f:40
+01a4:00820000:1964:013e:1:0
+ART CHILDREN/TARAB - ARABESQUE
+p:ART,f:40
+29a4:00820000:22c4:013e:1:0
+AIRBOX TV
+p:BSS,f:40
+06a5:00820000:3138:013e:1:0
+W9
+p:Globecast,C:0100,C:0500,f:40
+0ca5:00820000:1f40:013e:1:0
+TVS
+p:OIV Zagreb,f:40
+1ca5:00820000:332c:013e:1:0
+GEM TV
+p:Arqiva France,f:40
+29a5:00820000:22c4:013e:1:0
+Podroze TV
+p:Belgacom,f:40
+06a6:00820000:3138:013e:1:0
+M6 Boutique la chaine
+p:Globecast,f:40
+06a7:00820000:3138:013e:1:0
+Boomerang
+p:Globecast,C:0100,C:0500,f:40
+06a8:00820000:3138:013e:1:0
+Demain!
+p:Globecast,f:40
+16a8:00820000:2ee0:00b0:1:0
+Météo Express
+p:OpenMux,f:40
+1fa8:00820000:2454:013e:1:0
+TELESUD
+p:GlobeCast,f:40
+2aa8:00820000:1838:fbff:1:0
+SKY Sport 1
+p:SkyItalia,f:40
+06a9:00820000:3138:013e:1:0
+Tele Melody
+p:Globecast,C:0100,C:0500,f:40
+1fa9:00820000:2454:013e:1:0
+Abu_Dhabi_Sport
+p:GlobeCast,f:40
+2aa9:00820000:1838:fbff:1:0
+SKY Sport 2
+p:SkyItalia,f:40
+06aa:00820000:3138:013e:1:0
+CCTV9
+p:Globecast,f:40
+2aaa:00820000:1838:fbff:1:0
+SKY SuperCalcio
+p:SkyItalia,f:40
+06ab:00820000:3138:013e:1:0
+CLP TV
+p:Globecast,f:40
+1fab:00820000:2454:013e:1:0
+Hope_Channel
+p:GlobeCast,f:40
+2aab:00820000:1838:fbff:1:0
+Sport Active 1
+p:SkyItalia,f:40
+00ac:00820000:00c9:0006:1:0
+Guide/AFN Bavaria Eagle
+p:,C:0e00,f:40
+06ac:00820000:3138:013e:1:0
+RTR
+p:Globecast,f:40
+1cac:00820000:1ce8:0071:1:0
+ESPN
+p:Cyfrowy Polsat,f:40
+1fac:00820000:2454:013e:1:0
+Hope_Channel_2
+p:,f:40
+21ac:00822a65:2db4:0000:1:0
+eurotic TV
+p:T-Systems,f:40
+2aac:00820000:1838:fbff:1:0
+Sports Active 2
+p:SkyItalia,f:40
+35ac:00820000:1388:013e:1:0
+SET
+p:Sicilia Int,f:40
+00ad:00820000:00c9:0006:1:0
+Guide/AFN Bavaria PowerNet
+p:,C:0e00,f:40
+0dad:00820000:14b4:013e:1:0
+TVE Internacional
+p:RTVE,f:40
+1fad:00820000:2454:013e:1:0
+Liberty_TV _FR
+p:GlobeCast,f:40
+21ad:00822a65:2db4:0000:1:0
+INXTC TV
+p:T-Systems,f:40
+22ad:00820000:238c:013e:1:0
+DIRECT 8
+p:EUTELSAT ,f:40
+01ae:00820000:1964:013e:1:0
+ART MOVIES - ARABESQUE
+p:ART,f:40
+06ae:00820000:3138:013e:1:0
+Vesti
+p:Globecast,f:40
+0dae:00820000:14b4:013e:1:0
+Canal 24 Horas
+p:RTVE,f:40
+1cae:00820000:1ce8:0071:1:0
+KINO POLSKA
+p:Cyfrowy Polsat,f:40
+22ae:00820000:238c:013e:1:0
+TV8 Mt Blanc
+p:EUTELSAT ,f:40
+06af:00820000:3138:013e:1:0
+Berbere Television
+p:Globecast,C:0100,C:0500,f:40
+0daf:00820000:14b4:013e:1:0
+TVE Internacional Asia
+p:RTVE,f:40
+21af:00822a65:2db4:0000:1:0
+eurotic TV 2
+p:T-Systems,f:40
+2aaf:00820000:1838:fbff:1:0
+SKY Calcio Info
+p:SkyItalia,f:40
+1fb0:00820000:206c:013e:1:0
+SEX VIEW 264
+p:,f:40
+21b0:00822a65:2db4:0000:1:0
+Sexy-Arab.TV
+p:T-Systems,f:40
+22b0:00820000:238c:013e:1:0
+DIRECT 8
+p:EUTELSAT ,f:40
+04b1:00820000:2bc0:00b0:1:0
+C Cinéma Frisson
+p:,C:0100,C:0500,f:40
+06b1:00820000:3138:013e:1:0
+MTV BASE
+p:EUTELSAT,f:40
+1fb1:00820000:2454:013e:1:0
+Payam_TV
+p:GlobeCast,f:40
+21b1:00822a65:2db4:0000:1:0
+Fatayat 7'armanat
+p:T-Systems,f:40
+36b1:00820000:206c:013e:1:0
+SEX VIEW INFO
+p:Scopus Network Technologies,f:40
+04b2:00820000:2bc0:00b0:1:0
+C Cinéma Premier
+p:,C:0100,C:0500,f:40
+06b2:00820000:3138:013e:1:0
+Aljazeera Intl
+p:Globecast,f:40
+21b2:00822a65:2db4:0000:1:0
+Ta3arees TV
+p:T-Systems,f:40
+36b2:00820000:206c:013e:1:0
+SEX VIEW PLUS
+p:Scopus Network Technologies,f:40
+36b2:00820000:06a4:013e:1:0
+TSR1
+p:Television Suisse Romande,f:40
+04b3:00820000:2bc0:00b0:1:0
+C Cinéma Classic
+p:,C:0100,C:0500,f:40
+1fb3:00820000:2454:013e:1:0
+Orange Foot
+p:GlobeCast,f:40
+21b3:00822a65:2db4:0000:1:0
+ArabSexClub
+p:T-Systems,f:40
+2cb3:00820000:170c:fbff:1:0
+AXN
+p:SkyItalia,f:40
+36b3:00820000:206c:013e:1:0
+SEX VIEW EXTRA
+p:Scopus Network Technologies,f:40
+36b3:00820000:06a4:013e:1:0
+TSI1
+p:Televisione svizzera di lingua italiana,f:40
+04b4:00820000:2bc0:00b0:1:0
+TPS Star
+p:,C:0100,C:0500,f:40
+21b4:00822a65:2db4:0000:1:0
+ALO TV
+p:T-Systems,f:40
+36b4:00820000:206c:013e:1:0
+SEX VIEW 247
+p:Scopus Network Technologies,f:40
+04b5:00820000:2bc0:00b0:1:0
+C Cinéma Star
+p:,C:0100,C:0500,f:40
+1cb5:00820000:1ce8:0071:1:0
+Jetix
+p:Cyfrowy Polsat,f:40
+21b5:00822a65:2db4:0000:1:0
+'Arab-Girls.TV
+p:T-Systems,f:40
+36b5:00820000:206c:013e:1:0
+SEX VIEW DP
+p:Scopus Network Technologies,f:40
+00b6:00820000:012d:0006:1:0
+The Eagle - Naples
+p:,C:0e00,f:40
+04b6:00820000:2bc0:00b0:1:0
+C Cinéma Culte
+p:,C:0100,C:0500,f:40
+0db6:00820000:14b4:013e:1:0
+Al-Hayat
+p:Harmonic,f:40
+35b6:00820000:1388:013e:1:0
+Sardegna Uno
+p:BT,f:40
+36b6:00820000:206c:013e:1:0
+SEX VIEW SPECIAL
+p:Scopus Network Technologies,f:40
+00b7:00820000:012d:0006:1:0
+Power - Naples
+p:,C:0e00,f:40
+04b7:00820000:2bc0:00b0:1:0
+C Cinéma Emotion
+p:,C:0100,C:0500,f:40
+0db7:00820000:14b4:013e:1:0
+Channel One
+p:Harmonic,f:40
+2ab7:00820000:1838:fbff:1:0
+Sports Active 3
+p:SkyItalia,f:40
+36b7:00820000:206c:013e:1:0
+SEX VIEW HOT
+p:Scopus Network Technologies,f:40
+3ab7:00820000:0514:013e:1:0
+MGM
+p:ITI,f:40
+01b8:00820000:1964:013e:1:0
+ART MOVIES2 - ARABESQUE
+p:ART,f:40
+04b8:00820000:2bc0:00b0:1:0
+C Cinéma Famiz
+p:,C:0100,C:0500,f:40
+06b8:00820000:3138:013e:1:0
+W9
+p:Globecast,C:0100,C:0500,f:40
+0db8:00820000:14b4:013e:1:0
+Didar Global TV
+p:Harmonic,f:40
+36b8:00820000:206c:013e:1:0
+SEX VIEW CLIMAX
+p:Scopus Network Technologies,f:40
+36b8:00820000:06a4:013e:1:0
+TSR2
+p:Television Suisse Romande,f:40
+3ab8:00820000:0514:013e:1:0
+Discovery HD
+p:ITI,f:40
+04b9:00820000:2bc0:00b0:1:0
+C Cinéma Premier 16/9
+p:,C:0100,C:0500,f:40
+0bb9:00820000:20d0:013e:1:0
+Yemen TV
+p:GLOBECAST,f:40
+0db9:00820000:14b4:013e:1:0
+Payame Afghan
+p:Harmonic,f:40
+1fb9:00820000:189c:fbff:1:0
+NatGeoAdventur
+p:SkyItalia,f:40
+36b9:00820000:206c:013e:1:0
+SEX VIEW INTER
+p:Scopus Network Technologies,f:40
+36b9:00820000:06a4:013e:1:0
+TSI2
+p:Televisione svizzera di lingua italiana,f:40
+3ab9:00820000:0514:013e:1:0
+nSport
+p:ITI,f:40
+0bba:00820000:20d0:013e:1:0
+Syria Satellite Channel
+p:GLOBECAST,f:40
+0dba:00820000:14b4:013e:1:0
+Angel TV - KICC TV
+p:Harmonic,f:40
+1fba:00820000:2454:013e:1:0
+M6
+p:Orange,f:40
+2cba:00820000:170c:fbff:1:0
+Disney Ch. +1
+p:SkyItalia,f:40
+36ba:00820000:206c:013e:1:0
+SEX VIEW EXTREME
+p:Scopus Network Technologies,f:40
+3aba:00820000:0514:013e:1:0
+FILMBOX HD
+p:ITI,f:40
+0bbb:00820000:20d0:013e:1:0
+SAT 7
+p:GlobeCast,f:40
+1fbb:00820000:189c:fbff:1:0
+History +1
+p:SkyItalia,f:40
+2cbb:00820000:170c:fbff:1:0
+Toon Disney
+p:SkyItalia,f:40
+36bb:00820000:206c:013e:1:0
+SEX VIEW TV
+p:Scopus Network Technologies,f:40
+0bbc:00820000:20d0:013e:1:0
+Abu Dhabi
+p:GLOBECAST,f:40
+2cbc:00820000:170c:fbff:1:0
+Playhouse Disney
+p:SkyItalia,f:40
+36bc:00820000:206c:013e:1:0
+SEX VIEW GAY
+p:Scopus Network Technologies,f:40
+0bbd:00820000:20d0:013e:1:0
+ALBAGHDADIA
+p:GlobeCast,f:40
+1bbd:00820000:17d4:013e:1:0
+GAMES
+p:NetMed,f:40
+1fbd:00820000:189c:fbff:1:0
+NationalGeo +1
+p:SkyItalia,f:40
+2cbd:00820000:170c:fbff:1:0
+Raisat Smash
+p:SkyItalia,f:40
+34bd:00820000:3c28:013e:1:0
+RTS SAT
+p:GlobeCast,f:40
+00be:00820000:1e14:013e:1:0
+Gulli
+p:GC,C:0500,f:40
+00be:0082afc1:0065:0001:1:0
+Al Hurra-Europe TV
+p:,f:40
+0bbe:00820000:20d0:013e:1:0
+RTV Montenegro
+p:GCP,f:40
+1bbe:00820000:17d4:013e:1:0
+E! Entertainment
+p:NetMed,f:40
+2cbe:00820000:170c:fbff:1:0
+Matchmusic
+p:SkyItalia,f:40
+34be:00820000:3c28:013e:1:0
+BFM TV
+p:GlobeCast,f:40
+36be:00820000:206c:013e:1:0
+SEX VIEW HQ
+p:,f:40
+0bbf:00820000:20d0:013e:1:0
+Telepace
+p:GlobeCast,f:40
+1bbf:00820000:17d4:013e:1:0
+The History Channel
+p:NetMed,f:40
+1fbf:00820000:189c:fbff:1:0
+Sky News
+p:SkyItalia,f:40
+20bf:00820000:2328:013e:1:0
+Ishtar TV
+p:OiV Zagreb,f:40
+2cbf:00820000:170c:fbff:1:0
+Juventus Channel
+p:SkyItalia,f:40
+34bf:00820000:3c28:013e:1:0
+E'TV Emilia Romagna
+p:GlobeCast,f:40
+36bf:00820000:206c:013e:1:0
+MONDO ARTE
+p:OVERON,f:40
+00c0:00820000:00c9:0006:1:0
+Guide/AFN Kaiserslautern Eagle
+p:,C:0e00,f:40
+0bc0:00820000:20d0:013e:1:0
+Living God
+p:GLOBECAST,f:40
+0dc0:00820000:15e0:fbff:1:0
+Caccia e Pesca
+p:SkyItalia,f:40
+1bc0:00820000:17d4:013e:1:0
+Private Spice
+p:NetMed,f:40
+2cc0:00820000:170c:fbff:1:0
+Inter Channel
+p:SkyItalia,f:40
+34c0:00820000:3c28:013e:1:0
+MAHARISHI
+p:GLOBECAST,f:40
+36c0:00820000:206c:013e:1:0
+NAPOLI NOVA
+p:OVERON,f:40
+00c1:00820000:00c9:0006:1:0
+Guide/AFN Kaiserslautern PowerNet
+p:,C:0e00,f:40
+02c1:00820000:1b58:013e:1:0
+AlJazeera Documentary
+p:Telespazio,f:40
+0bc1:00820000:20d0:013e:1:0
+ZAHRAA TV
+p:GLOBECAST,f:40
+12c1:00820000:2e7c:013e:1:0
+CANAL+
+p:CYFRA +,f:40
+1bc1:00820000:17d4:013e:1:0
+Motors TV
+p:NetMed,f:40
+1fc1:00820000:189c:fbff:1:0
+Cartoon Network
+p:SkyItalia,f:40
+27c1:00820000:23f0:013f:1:0
+T. R. Padre Pio
+p:SKYGATE,f:40
+2bc1:00820000:1a90:fbff:1:0
+Prima Fila 3
+p:SkyItalia,f:40
+2cc1:00820000:170c:fbff:1:0
+RaisatExtra
+p:SkyItalia,f:40
+34c1:00820000:3c28:013e:1:0
+ISLAM TV
+p:GlobeCast,f:40
+36c1:00820000:206c:013e:1:0
+GALAXY
+p:OVERON,f:40
+38c1:00820000:0320:fbff:1:0
+Fox Life +1
+p:SkyItalia,f:40
+00c2:00820000:1e14:013e:1:0
+Virgin 17
+p:GC,C:0500,f:40
+01c2:00820000:1964:013e:1:0
+NILE DRAMA - ARABESQUE
+p:ART,f:40
+02c2:00820000:1b58:013e:1:0
+AlJazeera Mubasher
+p:Telespazio,f:40
+0bc2:00820000:20d0:013e:1:0
+Saudi arabia TV2
+p:GlobeCast,f:40
+12c2:00820000:2e7c:013e:1:0
+CANAL+ FILM
+p:CYFRA +,f:40
+1bc2:00820000:17d4:013e:1:0
+NOVACINEMA3
+p:NetMed,f:40
+2cc2:00820000:170c:fbff:1:0
+Raisat Premium
+p:SkyItalia,f:40
+34c2:00820000:3c28:013e:1:0
+Ariana TV
+p:GlobeCast,f:40
+36c2:00820000:206c:013e:1:0
+!ALLOVE
+p:GlobeCast,f:40
+02c3:00820000:1b58:013e:1:0
+ACM Channel
+p:Telespazio,f:40
+0dc3:00820000:14b4:013e:1:0
+GAY.TV
+p:TSA,f:40
+12c3:00820000:2e7c:013e:1:0
+JETIX
+p:CYFRA +,f:40
+1bc3:00820000:17d4:013e:1:0
+NOVASPORTS4
+p:NetMed,f:40
+1fc3:00820000:189c:fbff:1:0
+Jetix
+p:SkyItalia,f:40
+2bc3:00820000:1a90:fbff:1:0
+Prima Fila 5
+p:SkyItalia,f:40
+36c3:00820000:206c:013e:1:0
+SEXWORLD
+p:GlobeCast,f:40
+02c4:00820000:1b58:013e:1:0
+AL JAZEERA
+p:Telespazio,f:40
+0dc4:00820000:14b4:013e:1:0
+VIP.TV
+p:Harmonic,f:40
+12c4:00820000:2e7c:013e:1:0
+KUCHNIA.TV
+p:CYFRA +,f:40
+1bc4:00820000:17d4:013e:1:0
+novasports5
+p:NetMed,f:40
+36c4:00820000:206c:013e:1:0
+HOUSE CHANNEL
+p:Scopus Network Technologies,f:40
+02c5:00820000:1b58:013e:1:0
+Sicilia Channel
+p:Telespazio,f:40
+0dc5:00820000:14b4:013e:1:0
+Cardmania Shopping
+p:Harmonic,f:40
+12c5:00820000:2e7c:013e:1:0
+ALE KINO!
+p:CYFRA +,f:40
+1bc5:00820000:17d4:013e:1:0
+novasports6
+p:NetMed,f:40
+1fc5:00820000:189c:fbff:1:0
+Fox Life
+p:SkyItalia,f:40
+2bc5:00820000:1a90:fbff:1:0
+Prima Fila 11
+p:SkyItalia,f:40
+0dc6:00820000:14b4:013e:1:0
+Ictimai TV
+p:Harmonic,f:40
+12c6:00820000:2e7c:013e:1:0
+ZigZap
+p:CYFRA +,f:40
+1bc6:00820000:17d4:013e:1:0
+Nova Promo
+p:NetMed,f:40
+0dc7:00820000:14b4:013e:1:0
+Exotica
+p:Harmonic,f:40
+12c7:00820000:2e7c:013e:1:0
+TVP 1
+p:CYFRA +,f:40
+1bc7:00820000:17d4:013e:1:0
+Chasse & Peche
+p:NetMed,f:40
+1fc7:00820000:2454:013e:1:0
+ARM_1
+p:GlobeCast,f:40
+2bc7:00820000:1a90:fbff:1:0
+Prima Fila 13
+p:SkyItalia,f:40
+00c8:00820000:3e1c:013f:1:0
+RTL9
+p:AB SAT,f:40
+0dc8:00820000:14b4:013e:1:0
+IPN
+p:Harmonic,f:40
+12c8:00820000:2e7c:013e:1:0
+TVP 2
+p:CYFRA +,f:40
+1bc8:00820000:17d4:013e:1:0
+Playboy TV
+p:NetMed,f:40
+00c9:00820000:3e1c:013f:1:0
+AB1
+p:AB SAT,f:40
+02c9:00820000:1b58:013e:1:0
+UNOSAT
+p:Telespazio,f:40
+12c9:00820000:2e7c:013e:1:0
+CANAL+ SPORT
+p:CYFRA +,f:40
+1bc9:00820000:17d4:013e:1:0
+novasports4 Cy
+p:NetMed,f:40
+1fc9:00820000:2454:013e:1:0
+Show room
+p:GlobeCast,f:40
+1fc9:00820000:189c:fbff:1:0
+Cult
+p:SkyItalia,f:40
+2bc9:00820000:1a90:fbff:1:0
+Prima Fila 22
+p:SkyItalia,f:40
+00ca:00820000:3e1c:013f:1:0
+AB MOTEURS
+p:AB SAT,f:40
+00ca:00820000:012d:0006:1:0
+The Eagle - Sigonella
+p:,C:0e00,f:40
+02ca:00820000:1b58:013e:1:0
+OUT IP DATA TS1
+p:Telespazio,f:40
+0dca:00820000:15e0:fbff:1:0
+Jimmy
+p:SkyItalia,f:40
+1bca:00820000:17d4:013e:1:0
+novacinema3 Cy
+p:NetMed,f:40
+1cca:00820000:1ce8:0071:1:0
+Cinemax2
+p:Cyfrowy Polsat,f:40
+2dca:00820000:2198:fbff:1:0
+SKYCinema 2
+p:SkyItalia,f:40
+34ca:00820000:3c28:013e:1:0
+EWTN UK
+p:,f:40
+34ca:00820000:14b4:013e:1:0
+MARE TV
+p:Harmonic,f:40
+00cb:00820000:3e1c:013f:1:0
+ANIMAUX
+p:AB SAT,f:40
+00cb:00820000:012d:0006:1:0
+Power - Sigonella
+p:,C:0e00,f:40
+1bcb:00820000:17d4:013e:1:0
+Playboy TV Cy
+p:NetMed,f:40
+1ccb:00820000:1ce8:0071:1:0
+TVP1
+p:Cyfrowy Polsat,f:40
+1fcb:00820000:2454:013e:1:0
+Liberty_TV_NL
+p:GlobeCast,f:40
+1fcb:00820000:189c:fbff:1:0
+Fox Crime
+p:SkyItalia,f:40
+2bcb:00820000:1a90:fbff:1:0
+Prima Fila 28
+p:SkyItalia,f:40
+2dcb:00820000:2198:fbff:1:0
+SKY Classics
+p:SkyItalia,f:40
+34cb:00820000:3c28:013e:1:0
+Bio TV
+p:Scopus Network Technologies,f:40
+34cb:00820000:14b4:013e:1:0
+SAT EROTICA
+p:Harmonic,f:40
+35cb:00820000:1388:013e:1:0
+Trav + Leisure
+p:TVN,f:40
+00cc:00820000:3e1c:013f:1:0
+CHASSE & PECHE
+p:AB SAT,f:40
+01cc:00820000:1964:013e:1:0
+LBC EUROPE - ARABESQUE
+p:ART,f:40
+02cc:00820000:1b58:013e:1:0
+Telemarket 2
+p:Telespazio,f:40
+1bcc:00820000:17d4:013e:1:0
+novasports6 Cy
+p:NetMed,f:40
+1ccc:00820000:1ce8:0071:1:0
+Test_P
+p:Cyfrowy Polsat,f:40
+2dcc:00820000:2198:fbff:1:0
+SKY Cinema Hits
+p:SkyItalia,f:40
+34cc:00820000:3c28:013e:1:0
+.Viva L'Italia Channel
+p:GlobeCast,f:40
+34cc:00820000:14b4:013e:1:0
+IGHRA
+p:Harmonic,f:40
+35cc:00820000:1388:013e:1:0
+Disc Science
+p:TVN,f:40
+38cc:00820000:0320:fbff:1:0
+Radio on SKY
+p:SkyItalia,f:40
+00cd:00820000:3e1c:013f:1:0
+XXL
+p:AB SAT,f:40
+02cd:00820000:1b58:013e:1:0
+Radio Radio Tv
+p:Telespazio,f:40
+1ccd:00820000:1ce8:0071:1:0
+TVP2
+p:Cyfrowy Polsat,f:40
+1fcd:00820000:2454:013e:1:0
+CONTO TV
+p:CONTO TV,f:40
+1fcd:00820000:189c:fbff:1:0
+Fox News
+p:SkyItalia,f:40
+29cd:00820000:3cf0:013e:1:0
+PIANETA
+p:GlobeCast,f:40
+2bcd:00820000:1a90:fbff:1:0
+Prima Fila 30
+p:SkyItalia,f:40
+34cd:00820000:14b4:013e:1:0
+ERO PULSE
+p:Harmonic,f:40
+35cd:00820000:1388:013e:1:0
+An Planet
+p:TVN,f:40
+00ce:00820000:3e1c:013f:1:0
+TF1
+p:AB SAT,f:40
+02ce:00820000:1b58:013e:1:0
+MediterraneoSat
+p:Telespazio,f:40
+1bce:00820000:17d4:013e:1:0
+Private Spice Cy
+p:NetMed,f:40
+1fce:00820000:2454:013e:1:0
+CONTO TV 1
+p:CONTO TV,f:40
+29ce:00820000:3cf0:013e:1:0
+Cartomanzia_LOTTO
+p:GlobeCast,f:40
+34ce:00820000:3c28:013e:1:0
+SPIRIT CHANNEL
+p:GlobeCast,f:40
+34ce:00820000:14b4:013e:1:0
+ERO LIVE 1
+p:Harmonic,f:40
+35ce:00820000:1388:013e:1:0
+Disc Civ
+p:TVN,f:40
+00cf:00820000:3e1c:013f:1:0
+ESCALES
+p:AB SAT,f:40
+1ccf:00820000:1ce8:0071:1:0
+FoxLife
+p:Cyfrowy Polsat,f:40
+1fcf:00820000:2454:013e:1:0
+CONTO TV 2
+p:CONTO TV,f:40
+1fcf:00820000:189c:fbff:1:0
+Cooltoon
+p:SkyItalia,f:40
+29cf:00820000:3cf0:013e:1:0
+ARTE
+p:GlobeCast,f:40
+2bcf:00820000:1a90:fbff:1:0
+SKY Calcio 2
+p:SkyItalia,f:40
+34cf:00820000:3c28:013e:1:0
+NRJ 12
+p:globeCast,f:40
+34cf:00820000:14b4:013e:1:0
+Arablive
+p:Harmonic,f:40
+35cf:00820000:1388:013e:1:0
+Disc Chnl
+p:TVN,f:40
+36cf:00820000:206c:013e:1:0
+SEXYSAT2
+p:Scopus Network Technologies,f:40
+00d0:00820000:3e1c:013f:1:0
+Fit/Toute l'Histoire
+p:AB SAT,f:40
+02d0:00820000:1b58:013e:1:0
+Telefoggia
+p:Telespazio,f:40
+1bd0:00820000:17d4:013e:1:0
+ALFA
+p:NetMed,f:40
+1fd0:00820000:2454:013e:1:0
+CONTO TV 3
+p:CONTO TV,f:40
+21d0:00822a65:2db4:0000:1:0
+Tenfore
+p:T-Systems,f:40
+29d0:00820000:3cf0:013e:1:0
+RTL_102.5_TV
+p:GlobeCast_Italia,f:40
+34d0:00820000:3c28:013e:1:0
+NRJ 12 HQ
+p:GlobeCast,f:40
+36d0:00820000:206c:013e:1:0
+SEXYSAT3
+p:Scopus Network Technologies,f:40
+00d1:00820000:3e1c:013f:1:0
+NT1
+p:AB SAT,f:40
+02d1:00820000:1b58:013e:1:0
+TV della Liberta'
+p:Telespazio,f:40
+1bd1:00820000:17d4:013e:1:0
+LTV
+p:NetMed,f:40
+20d1:00820000:01f4:013e:1:0
+ALL TV
+p:Telespazio,f:40
+29d1:00820000:3cf0:013e:1:0
+Best_of_Shopping
+p:GlobeCast,f:40
+2bd1:00820000:1a90:fbff:1:0
+SKY Calcio 3
+p:SkyItalia,f:40
+36d1:00820000:206c:013e:1:0
+SEXYSAT4
+p:Scopus Network Technologies,f:40
+39d1:00820000:1fa4:013e:1:0
+TRACE-TV
+p:EUTELSAT ,f:40
+00d2:00820000:3e1c:013f:1:0
+ACTION
+p:AB SAT,f:40
+20d2:00820000:01f4:013e:1:0
+S2K
+p:Telespazio,C:9728,f:40
+29d2:00820000:3cf0:013e:1:0
+ITALIA_CHANNEL
+p:GlobeCast,f:40
+2dd2:00820000:2198:fbff:1:0
+Milan Channel
+p:SkyItalia,f:40
+39d2:00820000:1fa4:013e:1:0
+RTVi Europe
+p:EUTELSAT ,f:40
+00d3:00820000:3e1c:013f:1:0
+MANGAS
+p:AB SAT,f:40
+20d3:00820000:01f4:013e:1:0
+Denaro Tv
+p:Telespazio,f:40
+29d3:00820000:3cf0:013e:1:0
+TV_ROMANIA
+p:,f:40
+2bd3:00820000:1a90:fbff:1:0
+SKY Calcio 4
+p:SkyItalia,f:40
+2dd3:00820000:2198:fbff:1:0
+Classica
+p:SkyItalia,f:40
+39d3:00820000:1fa4:013e:1:0
+RTVi Detskii Mir - Teleclub
+p:EUTELSAT ,f:40
+00d4:00820000:3e1c:013f:1:0
+ENCYCLOPEDIA
+p:AB SAT,f:40
+00d4:00820000:00c9:0006:1:0
+Guide/AFN Benelux Eagle
+p:,C:0e00,f:40
+20d4:00820000:01f4:013e:1:0
+IMC
+p:Telespazio,f:40
+29d4:00820000:3cf0:013e:1:0
+Carisma_TV
+p:GlobeCast,f:40
+2dd4:00820000:2198:fbff:1:0
+Discovery Travel
+p:SkyItalia,f:40
+39d4:00820000:1fa4:013e:1:0
+RTVi Nashe Kino
+p:EUTELSAT ,f:40
+3bd4:00820000:2260:fbff:1:0
+Deejay TV
+p:SkyItalia,f:40
+00d5:00820000:3e1c:013f:1:0
+XXL
+p:AB SAT,f:40
+00d5:00820000:00c9:0006:1:0
+Guide/AFN Benelux PowerNet
+p:,C:0e00,f:40
+29d5:00820000:3cf0:013e:1:0
+KBS_WORLD
+p:GlobeCast,f:40
+2bd5:00820000:1a90:fbff:1:0
+SKY Calcio 5
+p:SkyItalia,f:40
+2dd5:00820000:2198:fbff:1:0
+La7
+p:SkyItalia,f:40
+3bd5:00820000:2260:fbff:1:0
+SKY Assist
+p:SkyItalia,f:40
+00d6:00820000:3e1c:013f:1:0
+XXL
+p:AB SAT,f:40
+20d6:00820000:01f4:013e:1:0
+Lazio Ch
+p:Telespazio,f:40
+29d6:00820000:3cf0:013e:1:0
+123_SAT
+p:GlobeCast,f:40
+2dd6:00820000:2198:fbff:1:0
+Discovery Civil.
+p:SkyItalia,f:40
+34d6:00820000:3c28:013e:1:0
+TV GLOBO
+p:GlobeCast,C:0500,C:1801,f:40
+00d7:00820000:3e1c:013f:1:0
+XXL PL
+p:AB SAT,f:40
+10d7:00820000:03e8:013e:1:0
+TVN
+p:TVN Grupa ITI,f:40
+20d7:00820000:01f4:013e:1:0
+Napoli Mia
+p:Telespazio,f:40
+2bd7:00820000:1a90:fbff:1:0
+SKY Calcio 6
+p:SkyItalia,f:40
+2dd7:00820000:2198:fbff:1:0
+CNN Intl.
+p:SkyItalia,f:40
+39d7:00820000:1fa4:013e:1:0
+RTVi ME
+p:EUTELSAT ,f:40
+00d8:00820000:3e1c:013f:1:0
+NT1
+p:AB SAT,f:40
+01d8:00820000:1964:013e:1:0
+ART SPORT 1 - ARABESQUE
+p:ART,f:40
+10d8:00820000:03e8:013e:1:0
+TVN 24
+p:TVN Grupa ITI,f:40
+20d8:00820000:01f4:013e:1:0
+Mediterraneo Sat 2
+p:Telespazio ,f:40
+00d9:00820000:3e1c:013f:1:0
+France 5
+p:AB SAT,f:40
+10d9:00820000:03e8:013e:1:0
+TVN Siedem
+p:TVN,f:40
+20d9:00820000:01f4:013e:1:0
+Challenger Tv
+p:Telespazio,f:40
+29d9:00820000:3cf0:013e:1:0
+K+
+p:GlobeCast,f:40
+2bd9:00820000:1a90:fbff:1:0
+SKY Calcio 7
+p:SkyItalia,f:40
+00da:00820000:3e1c:013f:1:0
+France ô
+p:AB SAT,f:40
+01da:00820000:1964:013e:1:0
+IQRAA - ARABESQUE
+p:ART,f:40
+10da:00820000:03e8:013e:1:0
+FILMBOX EXTRA
+p:TVN grupa ITI,f:40
+20da:00820000:01f4:013e:1:0
+Laurenti Ch
+p:Telespazio,f:40
+00db:00820000:3e1c:013f:1:0
+LCP
+p:AB SAT,f:40
+10db:00820000:03e8:013e:1:0
+FILMBOX
+p:TVN Grupa ITI,f:40
+20db:00820000:01f4:013e:1:0
+Radio Italia TV
+p:Telespazio,f:40
+29db:00820000:3cf0:013e:1:0
+Arte_&_Arte_Channel
+p:GlobeCast,f:40
+2bdb:00820000:1a90:fbff:1:0
+SKY Calcio 8
+p:SkyItalia,f:40
+34db:00820000:3c28:013e:1:0
+NRJ 12
+p:GlobeCast,f:40
+01dc:00820000:1964:013e:1:0
+ART CINEMA - ARABESQUE
+p:ART,f:40
+10dc:00820000:03e8:013e:1:0
+Mango 24
+p:,f:40
+34dc:00820000:3c28:013e:1:0
+BFM TV
+p:GlobeCast,f:40
+39dc:00820000:1fa4:013e:1:0
+World Fashion
+p:EUTELSAT ,f:40
+05dd:00820000:2e18:00b0:1:0
+M6 Music Rock
+p:,f:40
+1edd:00820000:21fc:013e:1:0
+IRIB1 PER
+p:IRIB,f:40
+20dd:00820000:01f4:013e:1:0
+Gold shop
+p:Telespazio,f:40
+3bdd:00820000:2260:fbff:1:0
+MTV Brand New
+p:SkyItalia,f:40
+00de:00820000:012d:0006:1:0
+The Eagle - Livorno
+p:,C:0e00,f:40
+01de:00820000:1964:013e:1:0
+ART- ARABESQUE
+p:ART,f:40
+10de:00820000:03e8:013e:1:0
+TVN METEO
+p:TVN Grupa ITI,f:40
+12de:00820000:2e7c:013e:1:0
+H test 1
+p:CYFRA +,f:40
+1ede:00820000:21fc:013e:1:0
+IRIB1 ENG
+p:,f:40
+20de:00820000:01f4:013e:1:0
+Punto Sat
+p:Telespazio,f:40
+34de:00820000:3c28:013e:1:0
+Walf TV
+p:GlobeCast,C:0500,f:40
+35de:00820000:1388:013e:1:0
+Sicilia Int
+p:BT,f:40
+3bde:00820000:2260:fbff:1:0
+MTV Hits
+p:SkyItalia,f:40
+00df:00820000:012d:0006:1:0
+Power - Livorno
+p:,C:0e00,f:40
+05df:00820000:2e18:00b0:1:0
+Equidia
+p:,f:40
+10df:00820000:03e8:013e:1:0
+TVN TURBO
+p:TVN GRUPA ITI,f:40
+12df:00820000:2e7c:013e:1:0
+H test 2
+p:CYFRA +,f:40
+1edf:00820000:21fc:013e:1:0
+IRIB2 PER
+p:IRIB,f:40
+20df:00820000:01f4:013e:1:0
+MilanoTV Sat
+p:Telespazio,f:40
+22df:00820000:238c:013e:1:0
+BLUTV
+p:Scopus Network Technologies,f:40
+01e0:00820000:1964:013e:1:0
+ART HEKAYAT ZAMANE- ARABESQUE
+p:ART,f:40
+05e0:00820000:2e18:00b0:1:0
+Sci Fi
+p:TPS,C:0500,f:40
+10e0:00820000:03e8:013e:1:0
+TVN Style
+p:TVN,f:40
+12e0:00820000:2e7c:013e:1:0
+H test 3
+p:CYFRA +,f:40
+1ee0:00820000:21fc:013e:1:0
+IRIB2 ENG
+p:,f:40
+20e0:00820000:01f4:013e:1:0
+julie
+p:Telespazio,f:40
+29e0:00820000:3cf0:013e:1:0
+Nostradamus
+p:Scopus Network Technologies,f:40
+38e0:00820000:0320:fbff:1:0
+SKY Test
+p:SkyItalia,f:40
+01e1:00820000:1964:013e:1:0
+ART SPORT 2 - ARABESQUE
+p:ART,f:40
+05e1:00820000:2e18:00b0:1:0
+France 4
+p:,C:0100,C:0500,f:40
+10e1:00820000:2710:fbff:1:0
+SKY Meteo24
+p:SkyItalia,f:40
+10e1:00820000:03e8:013e:1:0
+TVN Gra
+p:TVN Grupa ITI,f:40
+1ee1:00820000:21fc:013e:1:0
+IRINN
+p:IRIB,f:40
+05e2:00820000:2e18:00b0:1:0
+Ushuaia TV
+p:,f:40
+10e2:00820000:2710:fbff:1:0
+Test 6
+p:SkyItalia,f:40
+10e2:00820000:03e8:013e:1:0
+TVN CNBC Biznes
+p:TVN Grupa ITI,f:40
+20e2:00820000:01f4:013e:1:0
+ONE
+p:Telespazio,f:40
+01e3:00820000:1964:013e:1:0
+ART SPORT 3 - ARABESQUE
+p:ART,f:40
+05e3:00820000:2e18:00b0:1:0
+TV Breizh
+p:,f:40
+10e3:00820000:2710:fbff:1:0
+SNAI Sat
+p:SkyItalia,f:40
+12e3:00820000:2e7c:013e:1:0
+DTV CABLE
+p:CYFRA +,f:40
+1ee3:00820000:21fc:013e:1:0
+IRIB QURAN
+p:IRIB,f:40
+20e3:00820000:01f4:013e:1:0
+Ulisse
+p:Telespazio,f:40
+29e3:00820000:3cf0:013e:1:0
+ARTE
+p:,f:40
+05e4:00820000:2e18:00b0:1:0
+France 5
+p:,f:40
+12e4:00820000:2e7c:013e:1:0
+DTV CABLE 2
+p:CYFRA +,f:40
+20e4:00820000:01f4:013e:1:0
+LIBERA
+p:TELESPAZIO,f:40
+01e5:00820000:1964:013e:1:0
+ART SPORT 4 - ARABESQUE
+p:ART,f:40
+05e5:00820000:2e18:00b0:1:0
+France Ô
+p:,f:40
+0ce5:00820000:1518:013e:1:0
+RaiNotizie24
+p:RAI,f:40
+12e5:00820000:2e7c:013e:1:0
+DTV CABLE 3
+p:CYFRA +,f:40
+20e5:00820000:01f4:013e:1:0
+AB Channel
+p:TELESPAZIO,f:40
+38e5:00820000:0320:fbff:1:0
+SKY Sport HD
+p:SkyItalia,f:40
+05e6:00820000:2e18:00b0:1:0
+La Chaîne Parlementaire
+p:,f:40
+0ce6:00820000:1518:013e:1:0
+Camera Deputati
+p:RAI,f:40
+20e6:00820000:01f4:013e:1:0
+S24
+p:Telespazio,f:40
+3be6:00820000:2260:fbff:1:0
+Music on SKY
+p:SkyItalia,f:40
+01e7:00820000:1964:013e:1:0
+ART HEKAYAT - ARABESQUE
+p:ART,f:40
+0fe7:00820000:2580:fbff:1:0
+Prima Fila 19
+p:SkyItalia,f:40
+10e7:00820000:2710:fbff:1:0
+Test 5
+p:SkyItalia,f:40
+1ee7:00820000:21fc:013e:1:0
+SAHAR
+p:IRIB,f:40
+20e7:00820000:01f4:013e:1:0
+Puntosat3
+p:Telespazio,f:40
+38e7:00820000:0320:fbff:1:0
+SKY Cinema HD
+p:SkyItalia,f:40
+01e8:00820000:1964:013e:1:0
+FUTURE NEWS - ARABESQUE
+p:ART,f:40
+0ce8:00820000:1518:013e:1:0
+RaiTest
+p:Rai,f:40
+0fe8:00820000:2580:fbff:1:0
+Prima Fila 21
+p:SkyItalia,f:40
+10e8:00820000:2710:fbff:1:0
+Anc1003
+p:SkyItalia,f:40
+20e8:00820000:01f4:013e:1:0
+Poker Tv
+p:Telespazio,f:40
+0ce9:00820000:1518:013e:1:0
+RAI Sport più
+p:RAI,f:40
+0fe9:00820000:2580:fbff:1:0
+Prima Fila 23
+p:SkyItalia,f:40
+10e9:00820000:2710:fbff:1:0
+Anc1004
+p:SkyItalia,f:40
+20e9:00820000:01f4:013e:1:0
+S.Neu Jerusalem
+p:Telespazio,f:40
+35e9:00820000:00c8:013e:1:0
+ESP2 Int'l
+p:Eutelsat,f:40
+38e9:00820000:0320:fbff:1:0
+NationalGeo HD
+p:SkyItalia,f:40
+0cea:00820000:1518:013e:1:0
+RaiNettunoSat2
+p:RAI,f:40
+0fea:00820000:2580:fbff:1:0
+Prima Fila 25
+p:SkyItalia,f:40
+10ea:00820000:2710:fbff:1:0
+Anc1005
+p:SkyItalia,f:40
+1cea:00820000:2fa8:013e:1:0
+Noursat
+p:Globecast UK,f:40
+20ea:00820000:01f4:013e:1:0
+ROLSAT
+p:Telespazio,f:40
+35ea:00820000:00c8:013e:1:0
+EUSP2 PL
+p:Eutelsat,f:40
+38ea:00820000:0320:fbff:1:0
+Next HD
+p:SkyItalia,f:40
+05eb:00820000:2e18:00b0:1:0
+M6 Music Black
+p:,f:40
+0beb:00820000:20d0:013e:1:0
+EQUIDIA PRO
+p:PMU,f:40
+0ceb:00820000:1518:013e:1:0
+Rai Edu1
+p:RAI,f:40
+0feb:00820000:2580:fbff:1:0
+Prima Fila 14
+p:SkyItalia,f:40
+10eb:00820000:2710:fbff:1:0
+SKY Focus
+p:SkyItalia,f:40
+1ceb:00820000:2fa8:013e:1:0
+Rete Capri
+p:Globecast UK,f:40
+1eeb:00820000:21fc:013e:1:0
+AL-ALAM
+p:IRIB,f:40
+35eb:00820000:00c8:013e:1:0
+Prod ESP2
+p:Eutelsat,f:40
+0bec:00820000:20d0:013e:1:0
+EQUIDIA PRO P1
+p:PMU,f:40
+0cec:00820000:1518:013e:1:0
+RaiNettunoSat1
+p:RAI,f:40
+0fec:00820000:2580:fbff:1:0
+Prima Fila 15
+p:SkyItalia,f:40
+10ec:00820000:2710:fbff:1:0
+Anc1006
+p:SkyItalia,f:40
+35ec:00820000:00c8:013e:1:0
+ESP2 Test
+p:Eutelsat,f:40
+0ced:00820000:1518:013e:1:0
+SAT2000
+p:RAI,f:40
+0fed:00820000:2580:fbff:1:0
+Prima Fila 27
+p:SkyItalia,f:40
+10ed:00820000:2710:fbff:1:0
+Test 24
+p:SkyItalia,f:40
+13ed:00820000:05dc:013e:1:0
+TV POLONIA
+p:CYFRA +,f:40
+35ed:00820000:00c8:013e:1:0
+ESP2 Greek
+p:Eutelsat,f:40
+3bed:00820000:2260:fbff:1:0
+Music on SKY
+p:SkyItalia,f:40
+0cee:00820000:1518:013e:1:0
+Rai Gulp
+p:RAI,f:40
+0fee:00820000:2580:fbff:1:0
+Prima Fila 17
+p:SkyItalia,f:40
+1eee:00820000:21fc:013e:1:0
+RADIO QURAN
+p:,f:40
+2cee:00820000:1a2c:fbff:1:0
+Sportitalia
+p:SkyItalia,f:40
+01ef:00820000:33f4:013e:1:0
+Sisal TV
+p:Telespazio,f:40
+0fef:00820000:2580:fbff:1:0
+Prima Fila 18
+p:SkyItalia,f:40
+1eef:00820000:21fc:013e:1:0
+SEDAYE ASHNA
+p:,f:40
+00f0:0082afc1:0065:0001:1:0
+VOA TV 240 (HB1-8)
+p:,f:40
+01f0:00820000:33f4:013e:1:0
+SA OS download
+p:Telespazio,f:40
+13f0:00820000:05dc:013e:1:0
+KINO POLSKA
+p:CYFRA +,f:40
+2cf0:00820000:1a2c:fbff:1:0
+Eurosport
+p:SkyItalia,f:40
+00f1:00820000:2648:013e:1:0
+Arriadia 2
+p:PRVDR,f:40
+00f1:0082afc1:0065:0001:1:0
+VOA TV 241 (HB1-2, HB5-6)
+p:,f:40
+05f1:00820000:2e18:00b0:1:0
+France 5
+p:,f:40
+00f2:0082afc1:0065:0001:1:0
+VOA TV 242 (HB1-2, HB7-8)
+p:,f:40
+05f2:00820000:2e18:00b0:1:0
+La Chaine Parlementaire
+p:,f:40
+2cf2:00820000:1a2c:fbff:1:0
+Eurosport 2
+p:SkyItalia,f:40
+00f3:0082afc1:0065:0001:1:0
+IBB VOA RFERL Radio 243
+p:,f:40
+05f3:00820000:2e18:00b0:1:0
+France 4
+p:,f:40
+0df3:00820000:15e0:fbff:1:0
+SKY Inside
+p:SkyItalia,f:40
+38f3:00820000:0320:fbff:1:0
+Music Box
+p:SkyItalia,f:40
+00f4:0082afc1:0065:0001:1:0
+IBB VOA RFERL Radio 244
+p:,f:40
+0df4:00820000:15e0:fbff:1:0
+SKY Inside
+p:SkyItalia,f:40
+2cf4:00820000:1a2c:fbff:1:0
+EurosportNews
+p:SkyItalia,f:40
+39f4:00820000:1fa4:013e:1:0
+France 24 (in Arabic)
+p:EUTELSAT ,f:40
+00f5:0082afc1:0065:0001:1:0
+IBB VOA RFERL Radio 245
+p:,f:40
+0df5:00820000:15e0:fbff:1:0
+SKY Inside
+p:SkyItalia,f:40
+13f5:00820000:05dc:013e:1:0
+ITV
+p:CYFRA +,f:40
+1ef5:00820000:21fc:013e:1:0
+RADIO IRAN
+p:,f:40
+2cf5:00820000:1a2c:fbff:1:0
+SKY Sport 3
+p:SkyItalia,f:40
+35f5:00820000:00c8:013e:1:0
+ESP2 Rus
+p:Eutelsat,f:40
+0df6:00820000:15e0:fbff:1:0
+SKY Inside
+p:SkyItalia,f:40
+13f6:00820000:05dc:013e:1:0
+TVP INFO
+p:CYFRA +,f:40
+01f7:00820000:26ac:013f:1:0
+France 2
+p:AB SAT,f:40
+0df7:00820000:15e0:fbff:1:0
+SKY Inside
+p:SkyItalia,f:40
+13f7:00820000:05dc:013e:1:0
+CINEMAX
+p:CYFRA +,f:40
+1ef7:00820000:21fc:013e:1:0
+RADIO MAAREF(ENG)
+p:,f:40
+2cf7:00820000:1a2c:fbff:1:0
+ESPN Classic
+p:SkyItalia,f:40
+0df8:00820000:15e0:fbff:1:0
+SKY Inside
+p:SkyItalia,f:40
+13f8:00820000:05dc:013e:1:0
+PULS
+p:CYFRA +,f:40
+01f9:00820000:26ac:013f:1:0
+TMC
+p:AB SAT,f:40
+11f9:00820000:2b5c:013e:1:0
+ANT1 EUROPE
+p:H,f:40
+13f9:00820000:05dc:013e:1:0
+TVP Kultura
+p:CYFRA +,f:40
+2cf9:00820000:1a2c:fbff:1:0
+SKY Vivo
+p:SkyItalia,f:40
+38f9:00820000:0320:fbff:1:0
+Prima Fila 34
+p:SkyItalia,f:40
+00fa:00820000:3e1c:013f:1:0
+TISHK
+p:AB SAT,f:40
+00fa:0082afc1:0065:0001:1:0
+VOA TV 250 (HB1-8)
+p:,f:40
+01fa:00820000:26ac:013f:1:0
+CINE POLAR
+p:AB SAT,f:40
+0dfa:00820000:15e0:fbff:1:0
+Yacht & Sail
+p:SkyItalia,f:40
+0ffa:00820000:2580:fbff:1:0
+Prima Fila 40
+p:SkyItalia,f:40
+11fa:00820000:2b5c:013e:1:0
+AL JAZEERA SP+1
+p:H,f:40
+13fa:00820000:05dc:013e:1:0
+ESPN Classic Sport
+p:CYFRA +,f:40
+1efa:00820000:21fc:013e:1:0
+IRIB1/IRIB2
+p:,f:40
+2cfa:00820000:1a2c:fbff:1:0
+Discovery Sci
+p:SkyItalia,f:40
+38fa:00820000:0320:fbff:1:0
+Prima Fila 29
+p:SkyItalia,f:40
+39fa:00820000:1fa4:013e:1:0
+Italy&Italy
+p:EUTELSAT,f:40
+00fb:0082afc1:0065:0001:1:0
+VOA TV 251 (HB1-2, HB5-6)
+p:,f:40
+01fb:00820000:26ac:013f:1:0
+CINE FX
+p:AB SAT,f:40
+0ffb:00820000:2580:fbff:1:0
+Prima Fila 40
+p:SkyItalia,f:40
+11fb:00820000:2b5c:013e:1:0
+RTPi
+p:H,f:40
+1efb:00820000:21fc:013e:1:0
+IRIB5/IRIB4
+p:,f:40
+00fc:0082afc1:0065:0001:1:0
+VOA TV 252 (HB1-2, HB7-8)
+p:,f:40
+01fc:00820000:26ac:013f:1:0
+VIDEOCLICK
+p:AB SAT,f:40
+0dfc:00820000:15e0:fbff:1:0
+SKY Play IT
+p:SkyItalia,f:40
+11fc:00820000:2b5c:013e:1:0
+MTA INTL
+p:H,f:40
+1efc:00820000:21fc:013e:1:0
+IRIB3/IRIB6
+p:,f:40
+3afc:00820000:0514:013e:1:0
+Initial
+p:ITI,f:40
+00fd:0082afc1:0065:0001:1:0
+IBB VOA RFERL Radio 253
+p:,f:40
+01fd:00820000:26ac:013f:1:0
+TEST
+p:AB SAT,f:40
+11fd:00820000:2b5c:013e:1:0
+10.722 H
+p:H,f:40
+2cfd:00820000:1a2c:fbff:1:0
+BBC Prime
+p:SkyItalia,f:40
+35fd:00820000:00c8:013e:1:0
+ESP2 Romanian
+p:Eutelsat,f:40
+3afd:00820000:0578:013e:1:0
+TVP 1
+p:ITI,f:40
+01fe:00820000:26ac:013f:1:0
+BIS TV PROMO
+p:AB Sat,f:40
+11fe:00820000:2b5c:013e:1:0
+Deepam TV
+p:H,f:40
+21fe:00820000:1af4:013e:1:0
+Redlight Mixx
+p:TSA,f:40
+24fe:00820000:2774:fbff:1:0
+NationalGeo
+p:SkyItalia,f:40
+3afe:00820000:0578:013e:1:0
+TVP 2
+p:ITI,f:40
+01ff:00820000:26ac:013f:1:0
+AB3
+p:AB Sat,f:40
+21ff:00820000:1af4:013e:1:0
+Redlight German
+p:Harmonic,f:40
+24ff:00820000:2774:fbff:1:0
+History
+p:SkyItalia,f:40
+3aff:00820000:0578:013e:1:0
+TVP 3
+p:ITI,f:40
+0e00:00820000:14b4:013e:2:0
+Radio 5
+p:RTVE,f:40
+2a00:00820000:3cf0:013e:2:0
+Radio_Romania_International
+p:GlobeCast,f:40
+3c00:00820000:2260:fbff:2:0
+Soulsista
+p:SkyItalia,f:40
+0e01:00820000:14b4:013e:2:0
+Radio Exterior
+p:RTVE,f:40
+2a01:00820000:3cf0:013e:2:0
+RadioClassica
+p:GlobeCast,f:40
+0e02:00820000:14b4:013e:2:0
+Radio 4
+p:RTVE,f:40
+2a02:00820000:3cf0:013e:2:0
+RTL_102.5_HC
+p:GlobeCast_Italia,f:40
+0e03:00820000:14b4:013e:2:0
+RNE Contribucion
+p:RTVE,f:40
+2a03:00820000:3cf0:013e:2:0
+RTL_102.5_ROCK
+p:GlobeCast_Italia,f:40
+2a04:00820000:3cf0:013e:2:0
+Guardia_Costeria
+p:GlobeCast_Italia,f:40
+2a05:00820000:3cf0:013e:2:0
+RTL_102.5_CLASSIC
+p:GlobeCast_Italia,f:40
+0e06:00820000:3c8c:013e:2:0
+DW09
+p:T-Systems,f:40
+1206:00820000:2b5c:013e:2:0
+NPR
+p:H,f:40
+3c06:00820000:2260:fbff:2:0
+New Rock
+p:SkyItalia,f:40
+2907:00820000:1edc:0071:2:0
+Radiostacja
+p:Cyfrowy Polsat,f:40
+3a08:00820000:1fa4:013e:2:0
+RADIO IZVOR
+p:NTH ,f:40
+2209:00820000:1af4:013e:2:0
+Musicam 1
+p:TSA,f:40
+3a09:00820000:1fa4:013e:2:0
+Glas Drine BiH
+p:NTH,f:40
+0c0a:00820000:20d0:013e:2:0
+Voice of Youth
+p:GlobeCast,f:40
+220a:00820000:1af4:013e:2:0
+Musicam 2
+p:TSA,f:40
+3a0a:00820000:1fa4:013e:2:0
+MegaRadio
+p:NTH ,f:40
+3c0a:00820000:2260:fbff:2:0
+Heart n' song
+p:SkyItalia,f:40
+000b:00820000:2648:013e:2:0
+Radio national
+p:PRVDR,f:40
+000b:00820000:1770:0110:2:0
+Radio Mater
+p:,f:40
+000b:00820000:25e4:02be:2:0
+SHARJAH R1
+p:ARABSAT,f:40
+0c0b:00820000:20d0:013e:2:0
+Emirates FM
+p:GLOBECAST,f:40
+220b:00820000:1af4:013e:2:0
+Musicam 3
+p:TSA,f:40
+000c:00820000:2648:013e:2:0
+Radio Dakhla
+p:PRVDR,f:40
+000c:00820000:25e4:02be:2:0
+QATAR R1
+p:ARABSAT,f:40
+0c0c:00820000:20d0:013e:2:0
+Radio MARIA
+p:GLOBECAST,f:40
+220c:00820000:1af4:013e:2:0
+Musicam 4
+p:TSA,f:40
+3c0c:00820000:2260:fbff:2:0
+Out Of Mind
+p:SkyItalia,f:40
+000d:00820000:25e4:02be:2:0
+SAUDI1 R1
+p:ARABSAT,f:40
+220d:00820000:1af4:013e:2:0
+Musicam 5
+p:TSA,f:40
+3c0d:00820000:2260:fbff:2:0
+Onda Latina
+p:SkyItalia,f:40
+000e:00820000:2648:013e:2:0
+Chaine inter
+p:PRVDR,f:40
+000e:00820000:25e4:02be:2:0
+KUWAIT R1
+p:ARABSAT,f:40
+0c0e:00820000:20d0:013e:2:0
+Voice Of People
+p:GLOBECAST,f:40
+220e:00820000:1af4:013e:2:0
+Musicam 6
+p:TSA,f:40
+3c0e:00820000:2260:fbff:2:0
+Livetime
+p:SkyItalia,f:40
+000f:00820000:2648:013e:2:0
+Amazigh
+p:PRVDR,f:40
+3c0f:00820000:2260:fbff:2:0
+Rock Classic
+p:SkyItalia,f:40
+0010:00820000:2648:013e:2:0
+Radio Mohamed VI
+p:PRVDR,f:40
+0010:00820000:25e4:02be:2:0
+SUDAN R1
+p:ARABSAT,f:40
+0c10:00820000:20d0:013e:2:0
+Radio Montenegro
+p:GLOBECAST,f:40
+3c10:00820000:2260:fbff:2:0
+Rock Shock
+p:SkyItalia,f:40
+0011:00820000:300c:013e:2:0
+VOT West
+p:RRSat,f:40
+0011:00820000:25e4:02be:2:0
+OMAN R1
+p:ARABSAT,f:40
+0c11:00820000:20d0:013e:2:0
+Main General Program
+p:GLOBECAST,f:40
+3c11:00820000:2260:fbff:2:0
+B-Side
+p:SkyItalia,f:40
+0012:00820000:300c:013e:2:0
+Turizm Radyosu
+p:RRSat,f:40
+0012:00820000:25e4:02be:2:0
+ESC R1
+p:ARABSAT,f:40
+3c12:00820000:2260:fbff:2:0
+Jazz & Fusion
+p:SkyItalia,f:40
+0013:00820000:300c:013e:2:0
+VOT World
+p:RRSat,f:40
+0013:00820000:25e4:02be:2:0
+RADIO BAGHDAD
+p:ARABSAT,f:40
+0c13:00820000:20d0:013e:2:0
+Sana'a radio
+p:GlobeCast,f:40
+3c13:00820000:2260:fbff:2:0
+Jazz Gold
+p:SkyItalia,f:40
+0014:00820000:300c:013e:2:0
+TSR Turkce
+p:RRSat,f:40
+0c14:00820000:20d0:013e:2:0
+Aden Radio
+p:GlobeCast,f:40
+3c14:00820000:2260:fbff:2:0
+Soul Train
+p:SkyItalia,f:40
+0015:00822faf:0001:0001:2:0
+Rang A Rang radio
+p:RRSat,f:40
+0015:00820000:300c:013e:2:0
+Radyo-2 (TRT FM)
+p:RRSat,f:40
+3c15:00820000:2260:fbff:2:0
+Extrabeat
+p:SkyItalia,f:40
+1216:00820000:2b5c:013e:2:0
+RDPi Radio
+p:H,f:40
+3c16:00820000:2260:fbff:2:0
+Sinfonia
+p:SkyItalia,f:40
+0017:00820000:25e4:02be:2:0
+SAUDI1 R2
+p:ARABSAT,f:40
+2017:00820000:24b8:013e:2:0
+WRN Russkij
+p:Globecast,f:40
+3c17:00820000:2260:fbff:2:0
+Opera
+p:SkyItalia,f:40
+0018:00820000:25e4:02be:2:0
+KUWAIT R2
+p:ARABSAT,f:40
+0c18:00820000:20d0:013e:2:0
+RADIO SAN
+p:GLOBECAST,f:40
+1d18:00820000:2fa8:013e:2:0
+Suryan Radio
+p:Globecast UK,f:40
+2018:00820000:24b8:013e:2:0
+WRN English
+p:Globecast,f:40
+2318:00820000:238c:013e:2:0
+El Shark El Awsat
+p:ERTU,f:40
+3918:00820000:32c8:013e:2:0
+BBC WS Persian Radio
+p:Globecast UK,f:40
+3c18:00820000:2260:fbff:2:0
+Stardust
+p:SkyItalia,f:40
+0019:00820000:300c:013e:2:0
+ILO Romano Radio
+p:RRSat,f:40
+0019:00820000:00c9:0006:2:0
+Voice
+p:,C:0e00,f:40
+1d19:00820000:2fa8:013e:2:0
+IRN
+p:Globecast NE,f:40
+2019:00820000:24b8:013e:2:0
+WRN Deutsch
+p:Globecast,f:40
+2319:00820000:238c:013e:2:0
+Al moagehat
+p:ERTU,f:40
+3c19:00820000:2260:fbff:2:0
+Baby Mix
+p:SkyItalia,f:40
+001a:00820000:300c:013e:2:0
+Radio Tondar
+p:RRSat,f:40
+001a:00820000:25e4:02be:2:0
+SUDAN R2
+p:ARABSAT,f:40
+0e1a:00820000:3c8c:013e:2:0
+DW-FM01
+p:T-Systems,f:40
+201a:00820000:24b8:013e:2:0
+WRN Francais
+p:Globecast,f:40
+3c1a:00820000:2260:fbff:2:0
+Disc Joker
+p:SkyItalia,f:40
+001b:00820000:25e4:02be:2:0
+OMAN R2
+p:ARABSAT,f:40
+121b:00820000:2b5c:013e:2:0
+Radio A1
+p:BT,f:40
+201b:00820000:24b8:013e:2:0
+GBTS2
+p:Globecast,f:40
+291b:00820000:1edc:0071:2:0
+RMF FM
+p:Cyfrowy Polsat,f:40
+3b1b:00820000:0578:013e:2:0
+R1
+p:ITI,f:40
+001c:00820000:25e4:02be:2:0
+ESC R2
+p:ARABSAT,f:40
+201c:00820000:24b8:013e:2:0
+RCI 3
+p:Globecast,f:40
+3b1c:00820000:0578:013e:2:0
+R2
+p:ITI,f:40
+001d:00820000:25e4:02be:2:0
+AL-IRAQIA QURAN
+p:ARABSAT,f:40
+0c1d:00820000:2e18:00b0:2:0
+Europe1
+p:,f:40
+201d:00820000:24b8:013e:2:0
+Family Europe
+p:Globecast,f:40
+291d:00820000:1edc:0071:2:0
+RADIO PLUS
+p:Cyfrowy Polsat,f:40
+001e:00820000:1250:0064:2:0
+New Life Radio Russia
+p:,f:40
+0c1e:00820000:2e18:00b0:2:0
+Virgin Radio
+p:,f:40
+201e:00820000:24b8:013e:2:0
+RCI 2
+p:Globecast,f:40
+291e:00820000:1edc:0071:2:0
+RMF Classic
+p:Cyfrowy Polsat,f:40
+001f:00820000:300c:013e:2:0
+Nawa Kurd Radio
+p:RRSat,f:40
+0c1f:00820000:2e18:00b0:2:0
+RFM
+p:,f:40
+201f:00820000:24b8:013e:2:0
+RCI 1
+p:Globecast,f:40
+291f:00820000:1edc:0071:2:0
+Radio Polonia
+p:Cyfrowy Polsat,f:40
+2020:00820000:24b8:013e:2:0
+RTE
+p:Globecast,f:40
+2920:00820000:1edc:0071:2:0
+Jedynka - PR
+p:Cyfrowy Polsat,f:40
+0021:00820000:00c9:0006:2:0
+UI Split/Voice
+p:,C:0e00,f:40
+0c21:00820000:2e18:00b0:2:0
+RTL
+p:,f:40
+2021:00820000:24b8:013e:2:0
+IBC TAMIL RADIO
+p:Globecast,f:40
+2921:00820000:1edc:0071:2:0
+Trójka - PR
+p:Cyfrowy Polsat,f:40
+0022:00820000:00c9:0006:2:0
+SMPTE Time Code
+p:,C:0e00,f:40
+2022:00820000:24b8:013e:2:0
+Sedayelran
+p:Globecast,f:40
+2922:00820000:1edc:0071:2:0
+Radio ZET
+p:Cyfrowy Polsat,f:40
+0023:00820000:1250:0064:2:0
+London Tamil Radio
+p:,f:40
+0c23:00820000:2e18:00b0:2:0
+Radio Classique
+p:,f:40
+2023:00820000:24b8:013e:2:0
+PRA Radio
+p:Globecast,f:40
+0024:00820000:1250:0064:2:0
+European Radio for Belarus
+p:,f:40
+0e24:00820000:3c8c:013e:2:0
+DW-FM02
+p:T-Systems,f:40
+2024:00820000:24b8:013e:2:0
+The Voice
+p:Globecast,f:40
+0025:00820000:1250:0064:2:0
+Tamil ITR France
+p:,f:40
+0025:00820000:25e4:02be:2:0
+OMAN R3
+p:ARABSAT,f:40
+0c25:00820000:2e18:00b0:2:0
+Fun Radio
+p:,f:40
+2025:00820000:24b8:013e:2:0
+GBTS1
+p:Globecast,f:40
+0026:00820000:300c:013e:2:0
+Glas Drin BiH
+p:RRSat,f:40
+0026:00820000:1250:0064:2:0
+TAMIL RADIO TIR
+p:,f:40
+0026:00820000:25e4:02be:2:0
+ESC R3
+p:ARABSAT,f:40
+0c26:00820000:2e18:00b0:2:0
+RTL2
+p:,f:40
+2026:00820000:24b8:013e:2:0
+WRN Eng AAP
+p:Globecast,f:40
+0027:00820000:300c:013e:2:0
+R.jamawar_KSDP
+p:RRSat,f:40
+2027:00820000:24b8:013e:2:0
+Radio New Hope
+p:Globecast,f:40
+0028:00820000:300c:013e:2:0
+Thuthi FM-Tamil
+p:,f:40
+0a28:00820000:3d54:013e:2:0
+Era 1
+p:,f:40
+2028:00820000:24b8:013e:2:0
+PEC 3 RRI 3
+p:Globecast,f:40
+2029:00820000:24b8:013e:2:0
+Family Int 1
+p:Globecast,f:40
+202a:00820000:24b8:013e:2:0
+Family Int 2
+p:Globecast,f:40
+002b:00820000:1250:0064:2:0
+Tamil Radio EU
+p:,f:40
+1c2b:00820000:1c20:013e:2:0
+MR1-Kossuth
+p:AH-EDP,f:40
+202b:00820000:24b8:013e:2:0
+VTCSW1
+p:Globecast,f:40
+1c2c:00820000:1c20:013e:2:0
+MR2-Petofi
+p:AH-EDP,f:40
+202c:00820000:24b8:013e:2:0
+AWR Radio 128Kbit
+p:Globecast,f:40
+1c2d:00820000:1c20:013e:2:0
+R.Citta Futura
+p:AH-EDP,f:40
+202d:00820000:24b8:013e:2:0
+YLESAT 1
+p:Globecast,f:40
+0e2e:00820000:3c8c:013e:2:0
+DW-FM03
+p:T-Systems,f:40
+1c2e:00820000:1c20:013e:2:0
+ReteSport
+p:AH-EDP,f:40
+202e:00820000:24b8:013e:2:0
+YLESAT 2
+p:Globecast,f:40
+1c2f:00820000:1c20:013e:2:0
+Radio 6
+p:AH-EDP,f:40
+202f:00820000:24b8:013e:2:0
+GBTS3
+p:Globecast,f:40
+292f:00820000:1edc:0071:2:0
+RMF MAXXX
+p:Cyfrowy Polsat,f:40
+0030:00820000:1250:0064:2:0
+R.Kurdistan
+p:,f:40
+1c30:00820000:1c20:013e:2:0
+Ecoradio
+p:AH-EDP,f:40
+2030:00820000:24b8:013e:2:0
+WRN Sawt Al Alam
+p:Globecast,f:40
+0031:00820000:1250:0064:2:0
+RDK DUHOK
+p:,f:40
+0e31:00820000:0708:00c8:2:0
+VIRGIN RADIO
+p:M-Three satcom,f:40
+2031:00820000:24b8:013e:2:0
+WRN Events
+p:Globecast,f:40
+0032:00820000:1250:0064:2:0
+London TBC
+p:,f:40
+0032:00820000:25e4:02be:2:0
+JORDAN R1
+p:ARABSAT,f:40
+0e32:00820000:0708:00c8:2:0
+Global-Mir
+p:M-Three satcom,f:40
+1c32:00820000:1c20:013e:2:0
+R.Tunisie Culture
+p:AH-EDP,f:40
+0e33:00820000:0708:00c8:2:0
+RADIO CUORE
+p:M-Three satcom,f:40
+1c33:00820000:1c20:013e:2:0
+MR4/MR5
+p:AH-EDP,f:40
+2533:00820000:13ef:013e:2:0
+EDTV RADIO 1
+p:DU,f:40
+0e34:00820000:0708:00c8:2:0
+R.BuonConsiglio
+p:M-Three satcom,f:40
+2534:00820000:13ef:013e:2:0
+EDTV RADIO 2
+p:DU,f:40
+0035:00822faf:0001:0001:2:0
+VOV Radio
+p:,f:40
+0135:00820000:157c:013e:2:0
+Love Radio
+p:NetMed,f:40
+0e35:00820000:0708:00c8:2:0
+RADIO CUORE DUE
+p:M-Three satcom,f:40
+0036:00822faf:0001:0001:2:0
+neo zwei
+p:RRSat,f:40
+0136:0082afc1:0065:0001:2:0
+VOA Urdu Radio 310
+p:,f:40
+0136:00820000:157c:013e:2:0
+Greek Church
+p:NetMed,f:40
+0e36:00820000:0708:00c8:2:0
+KISS KISS RADIO
+p:M-Three satcom,f:40
+0137:00820000:157c:013e:2:0
+Skai Radio
+p:NetMed,f:40
+0e37:00820000:0708:00c8:2:0
+Millennium Radio
+p:M-Three satcom,f:40
+0138:00820000:157c:013e:2:0
+Melodi Radio
+p:NetMed,f:40
+0e38:00820000:0708:00c8:2:0
+R.S.F. inBlu
+p:M-Three satcom,f:40
+0e38:00820000:3c8c:013e:2:0
+DW-FM04
+p:T-Systems,f:40
+0139:00820000:157c:013e:2:0
+RR3
+p:NetMed,f:40
+0e39:00820000:0708:00c8:2:0
+LifeGate
+p:M-Three satcom,f:40
+013a:00820000:157c:013e:2:0
+RR1
+p:NetMed,f:40
+0e3a:00820000:0708:00c8:2:0
+Radio Padre Pio
+p:M-Three satcom,f:40
+0e3b:00820000:0708:00c8:2:0
+Radio Torino Intl.
+p:M-Three satcom,f:40
+0e3c:00820000:0708:00c8:2:0
+Radio 24
+p:M-Three satcom,f:40
+0e3d:00820000:0708:00c8:2:0
+RADIO RELAX
+p:M-Three satcom,f:40
+0e3e:00820000:0708:00c8:2:0
+R101
+p:M-Three satcom,f:40
+0e3f:00820000:0708:00c8:2:0
+ROCK FM
+p:M-Three satcom,f:40
+0e40:00820000:0708:00c8:2:0
+RADIO KOLBE
+p:M-Three satcom,f:40
+0e41:00820000:0708:00c8:2:0
+RADIO GYE NYAME
+p:M-Three satcom,f:40
+0042:00822faf:0001:0001:2:0
+Overcomer Radio
+p:RRSat,f:40
+0e42:00820000:0708:00c8:2:0
+DISCORADIO
+p:M-Three satcom,f:40
+0e42:00820000:3c8c:013e:2:0
+DW-M
+p:T-Systems,f:40
+2143:00820000:3070:013e:2:0
+FD Leggera
+p:Rai,f:40
+3c43:00820000:0578:013e:2:0
+MusicC. Klasyka
+p:Harmonic,f:40
+3c44:00820000:0578:013e:2:0
+Music Choice Pop
+p:Harmonic,f:40
+3c45:00820000:0578:013e:2:0
+Music Ch. Dance
+p:Harmonic,f:40
+0e46:00820000:3c8c:013e:2:0
+DW-FM06
+p:T-Systems,f:40
+3c46:00820000:0578:013e:2:0
+Music Ch. Urban
+p:Harmonic,f:40
+0047:00822faf:0001:0001:2:0
+Christian Voice
+p:RRSat,f:40
+3c47:00820000:0578:013e:2:0
+Music Ch. Swiat
+p:Harmonic,f:40
+0048:00822faf:0001:0001:2:0
+Hornafrik Somalia
+p:RRSat,f:40
+3c48:00820000:0578:013e:2:0
+Music Ch. Rock
+p:Harmonic,f:40
+3c49:00820000:0578:013e:2:0
+Music Ch. Oldies
+p:Harmonic,f:40
+0e4a:00820000:3c8c:013e:2:0
+DW-FM07
+p:T-Systems,f:40
+3c4a:00820000:0578:013e:2:0
+Music Choice 1
+p:Harmonic,f:40
+004b:00822faf:0001:0001:2:0
+Music Box Radio
+p:RRSat,f:40
+3c4b:00820000:0578:013e:2:0
+Music Choice 2
+p:Harmonic,f:40
+3c4c:00820000:0578:013e:2:0
+Music Choice 3
+p:Harmonic,f:40
+3c4d:00820000:0578:013e:2:0
+Music Choice 4
+p:Harmonic,f:40
+0e4e:00820000:3c8c:013e:2:0
+DW-FEED1
+p:T-Systems,f:40
+3c4e:00820000:0578:013e:2:0
+Music Choice 5
+p:Harmonic,f:40
+3c4f:00820000:0578:013e:2:0
+Music Choice 6
+p:Harmonic,f:40
+0050:00822faf:0001:0001:2:0
+3ABN Radio
+p:RRSat,f:40
+3c50:00820000:0578:013e:2:0
+Music Choice 7
+p:Harmonic,f:40
+3c51:00820000:0578:013e:2:0
+CYFRA+ GRY
+p:Harmonic,f:40
+0052:00822faf:0001:0001:2:0
+TGN Radio
+p:RRSat,f:40
+1c52:00820000:1c20:013e:2:0
+R.Tunisie Nationale
+p:AH-EDP,f:40
+3c52:00820000:0578:013e:2:0
+CYFRA+ GRY2
+p:Harmonic,f:40
+1c53:00820000:1c20:013e:2:0
+R.Tunisie Internationale
+p:AH-EDP,f:40
+3653:00820000:1388:013e:2:0
+BBC English (Europe)
+p:BBC World Service,f:40
+3c53:00820000:0578:013e:2:0
+INFO+
+p:Harmonic,f:40
+1154:00820000:2af8:013e:2:0
+tech 3
+p:CYFRA +,f:40
+1c54:00820000:1c20:013e:2:0
+Radio Spazio Aperto
+p:AH-EDP,f:40
+3654:00820000:1388:013e:2:0
+BBC English Mid-East
+p:BBC World Service,f:40
+0e56:00820000:3c8c:013e:2:0
+RNW-4
+p:Deutsche Welle,f:40
+1c56:00820000:1c20:013e:2:0
+Radio Azzurra
+p:AH-EDP,f:40
+3656:00820000:1388:013e:2:0
+BBC English News
+p:BBC World Service,f:40
+1d59:00820000:2f44:013e:2:0
+CY Feed
+p:NetMed,f:40
+365c:00820000:1388:013e:2:0
+BBC Arabic
+p:BBC World Service,f:40
+0960:00820000:3d54:013e:2:0
+Era Sport
+p:,f:40
+0061:00820000:2648:013e:2:0
+RADIO MOHAMMED VI
+p:PRVDR,f:40
+3661:00820000:1388:013e:2:0
+BBC Albanian
+p:BBC World Service,f:40
+3663:00820000:1388:013e:2:0
+BBC Azeri
+p:BBC World Service,f:40
+0065:0082afc1:0065:0001:2:0
+IBB VOA RFERL Radio 101
+p:,f:40
+0065:00820000:0578:013e:2:0
+Makedonsko Radio
+p:Harmonic,f:40
+0066:0082afc1:0065:0001:2:0
+IBB VOA RFERL Radio 102
+p:,f:40
+0066:00820000:0578:013e:2:0
+Bahai Radio
+p:Harmonic,f:40
+0067:00820000:1250:0064:2:0
+RUSSIAN RADIO
+p:,f:40
+0067:0082afc1:0065:0001:2:0
+IBB VOA RFERL Radio 103
+p:,f:40
+0067:00820000:0578:013e:2:0
+Radio Mojdeh
+p:Harmonic,f:40
+2167:00820000:3070:013e:2:0
+Multilingue 1
+p:RAI,f:40
+0068:0082afc1:0065:0001:2:0
+VOA Music Mix 104
+p:,f:40
+0068:00820000:0578:013e:2:0
+TOP 3 radio belgrad
+p:Harmonic,f:40
+1268:00820000:3458:013e:2:0
+R.ONDA D'URTO
+p:T-Systems/MTI,f:40
+2168:00820000:3070:013e:2:0
+Multilingue 2
+p:RAI,f:40
+0069:0082afc1:0065:0001:2:0
+IBB VOA RFERL Radio 105
+p:,f:40
+2169:00820000:3070:013e:2:0
+SatelRadio
+p:RAI,f:40
+006a:0082afc1:0065:0001:2:0
+IBB VOA RFERL Radio 106
+p:,f:40
+216a:00820000:3070:013e:2:0
+Radio OM unica
+p:RAI,f:40
+006b:0082afc1:0065:0001:2:0
+IBB VOA Radio 107
+p:,f:40
+216b:00820000:3070:013e:2:0
+Radio2 mono
+p:RAI,f:40
+006c:0082afc1:0065:0001:2:0
+IBB VOA RFERL Radio 108
+p:,f:40
+016c:00820000:1c84:013e:2:0
+ERA1
+p:NetMed,f:40
+216c:00820000:3070:013e:2:0
+Radio3 mono
+p:RAI,f:40
+226c:00820000:238c:013e:2:0
+Chaine 1
+p:TDA,f:40
+006d:0082afc1:0065:0001:2:0
+IBB VOA RFERL Radio 109
+p:,f:40
+016d:00820000:1c84:013e:2:0
+ERA2
+p:NetMed,f:40
+226d:00820000:238c:013e:2:0
+Chaine 2
+p:TDA,f:40
+006e:0082afc1:0065:0001:2:0
+IBB VOA RFERL Radio 110
+p:,f:40
+016e:00820000:1c84:013e:2:0
+ERA SPORT
+p:NetMed,f:40
+226e:00820000:238c:013e:2:0
+Chaine 3
+p:SkyGate,f:40
+296e:00820000:22c4:013e:2:0
+DENGE RADIO
+p:Belgacom,f:40
+006f:0082afc1:0065:0001:2:0
+IBB VOA RFERL Radio 111
+p:,f:40
+2070:00820000:2328:013e:2:0
+VOICE OF CRO
+p:OIV Zagreb,f:40
+2970:00820000:22c4:013e:2:0
+RADIO 2M MAROC
+p:BELGACOM,f:40
+0071:0082afc1:0065:0001:2:0
+IBB VOA RFERL Radio 113
+p:,f:40
+2071:00820000:2328:013e:2:0
+HRT-HR1
+p:OIV Zagreb,f:40
+0072:0082afc1:0065:0001:2:0
+Sawa Levant Radio 114
+p:,f:40
+2072:00820000:2328:013e:2:0
+HRT-HR2
+p:OIV Zagreb,f:40
+2972:00820000:22c4:013e:2:0
+RVi 1 (VRT)
+p:BELGACOM,f:40
+0073:0082afc1:0065:0001:2:0
+Sawa Iraq Radio 115
+p:,f:40
+2073:00820000:2328:013e:2:0
+HRT-HR3
+p:OIV Zagreb,f:40
+2973:00820000:22c4:013e:2:0
+RVi 2 (VRT)
+p:BELGACOM,f:40
+0074:0082afc1:0065:0001:2:0
+Sawa Egypt Radio 116
+p:,f:40
+2974:00820000:22c4:013e:2:0
+RADIO 74
+p:BELGACOM,f:40
+0075:0082afc1:0065:0001:2:0
+Sawa Gulf Radio 117
+p:,f:40
+0076:0082afc1:0065:0001:2:0
+Sawa N. Africa Radio 118
+p:,f:40
+0077:0082afc1:0065:0001:2:0
+Farda Radio 119
+p:,f:40
+3677:00820000:1388:013e:2:0
+BBC Persian
+p:BBC World Service,f:40
+0079:0082afc1:0065:0001:2:0
+IBB VOA RFERL Radio 121
+p:,f:40
+2979:00820000:22c4:013e:2:0
+ROUGE FM
+p:BSS_LDK,f:40
+007a:0082afc1:0065:0001:2:0
+Sawa Sudan Radio 122
+p:,f:40
+297a:00820000:22c4:013e:2:0
+ALMAHABA
+p:BSS_LDK,f:40
+007b:0082afc1:0065:0001:2:0
+Sawa Lebanon Radio 123
+p:,f:40
+017b:00820000:1c84:013e:2:0
+ERA3
+p:NetMed,f:40
+297b:00820000:22c4:013e:2:0
+TOP TWO
+p:BSS_LDK,f:40
+367c:00820000:1388:013e:2:0
+BBC Russian
+p:BBC World Service,f:40
+367e:00820000:1388:013e:2:0
+BBC Romanian
+p:BBC World Service,f:40
+127f:00820000:3458:013e:2:0
+Radio Standa
+p:T-Systems/MTI,f:40
+207f:00820000:2328:013e:2:0
+OTVORENI
+p:OIV Zagreb,f:40
+227f:00820000:238c:013e:2:0
+RADIO GENIUS
+p:MultiProgram,f:40
+1280:00820000:3458:013e:2:0
+R.Di per Di
+p:T-Systems/MTI,f:40
+2080:00820000:2328:013e:2:0
+MEDIASERVIS
+p:OIV Zagreb,f:40
+0081:00822faf:0001:0001:2:0
+SWISS MUSIC RADIO
+p:RRSat,f:40
+1281:00820000:3458:013e:2:0
+McDonalds
+p:T-Systems/MTI,f:40
+3681:00820000:1388:013e:2:0
+BBC Balkans
+p:BBC World Service,f:40
+1282:00820000:3458:013e:2:0
+Radio Expert
+p:T-Systems/MTI,f:40
+1283:00820000:3458:013e:2:0
+Radio Billa
+p:T-Systems/MTI,f:40
+1d83:00820000:2f44:013e:2:0
+Radio Gold
+p:NetMed,f:40
+0c84:00820000:1f40:013e:2:0
+SLO-RA1-INF
+p:RTV Slovenija,f:40
+0c84:00820000:2bc0:00b0:2:0
+Sud Radio
+p:,f:40
+1284:00820000:3458:013e:2:0
+RADIO ZAINET
+p:T-Systems/MTI,f:40
+1d84:00820000:2f44:013e:2:0
+REAL FM
+p:NetMed,f:40
+0c85:00820000:1f40:013e:2:0
+SLO-RA2
+p:RTV Slovenija,f:40
+3585:00820000:1388:013e:2:0
+Zagros Radio
+p:BT,f:40
+0c86:00820000:1f40:013e:2:0
+SLO-RA3
+p:RTV Slovenija,f:40
+1286:00820000:3458:013e:2:0
+Radio Intesa
+p:T-Systems/MTI,f:40
+0c88:00820000:2e18:00b0:2:0
+Alouette
+p:,f:40
+0c88:00820000:1f40:013e:2:0
+RADIO SI
+p:RTV Slovenija,f:40
+1d88:00820000:1fa4:013e:2:0
+Radio Dijla
+p:EUTELSAT,f:40
+0c89:00820000:2ee0:00b0:2:0
+Skyrock
+p:,C:0500,f:40
+208a:00820000:2328:013e:2:0
+Narodni radio
+p:OIV Zagreb,f:40
+208b:00820000:2328:013e:2:0
+RKC
+p:OIV Zagreb,f:40
+368b:00820000:1388:013e:2:0
+BBC Turkish
+p:BBC World Service,f:40
+368e:00820000:1388:013e:2:0
+BBC Ukrainian
+p:BBC World Service,f:40
+0c8f:00820000:1f40:013e:2:0
+CAPODISTRIA
+p:RTVS,f:40
+0c91:00820000:1f40:013e:2:0
+RA.OGNJISCE SI
+p:RTVS,f:40
+1291:00820000:3458:013e:2:0
+RadioSpazioAperto
+p:T-Systems/MTI,f:40
+2091:00820000:2328:013e:2:0
+HKR
+p:OiV Zagreb,f:40
+1d92:00820000:1fa4:013e:2:0
+Radio Azadegan
+p:EUTELSAT,f:40
+3693:00820000:1388:013e:2:0
+BBC Feed 1
+p:BBC WS,f:40
+1294:00820000:3458:013e:2:0
+AfgSalamWatandar
+p:T-Systems/MTI,f:40
+1d94:00820000:2f44:013e:2:0
+SS FM
+p:NetMed,f:40
+2094:00820000:2328:013e:2:0
+R MIR M
+p:OIV Zagreb,f:40
+3694:00820000:1388:013e:2:0
+BBC Feed 2
+p:BBC WS,f:40
+1295:00820000:3458:013e:2:0
+Radio Metro
+p:T-Systems/MTI,f:40
+2095:00820000:2328:013e:2:0
+DALMATIA
+p:OIV Zagreb,f:40
+3695:00820000:1388:013e:2:0
+BBC Feed 3
+p:BBC WS,f:40
+3696:00820000:1388:013e:2:0
+BBC Feed 4
+p:BBC WS,f:40
+3697:00820000:1388:013e:2:0
+BBC Feed 5
+p:BBC WS,f:40
+0898:00820000:3d54:013e:2:0
+Era 2
+p:,f:40
+0c98:00820000:1f40:013e:2:0
+RNW-1
+p:RTV Slovenija,f:40
+3698:00820000:1388:013e:2:0
+BBC Feed 6
+p:BBC WS,f:40
+0399:00820000:2134:013e:2:0
+SRG-DRS 1
+p:Schweizer Radio DRS,f:40
+0c99:00820000:1f40:013e:2:0
+RNW-2
+p:RTV Slovenija,f:40
+039a:00820000:2134:013e:2:0
+SRG-DRS 2
+p:Schweizer Radio DRS,f:40
+039b:00820000:2134:013e:2:0
+SRG-DRS 3
+p:Schweizer Radio DRS,f:40
+039c:00820000:2134:013e:2:0
+SRG-DRS Virus
+p:Schweizer Radio DRS,f:40
+299c:00820000:22c4:013e:2:0
+Eviva Radio
+p:BSS_LDK,f:40
+039d:00820000:2134:013e:2:0
+SRG-DRS Musikwelle
+p:Schweizer Radio DRS,f:40
+299d:00820000:22c4:013e:2:0
+TASVIR IRAN
+p:Belgacom,f:40
+039e:00820000:2134:013e:2:0
+SRG-Rumantsch
+p:Radio Rumantsch,f:40
+209e:00820000:2328:013e:2:0
+PEVEC RADIO
+p:OiV Zagreb,f:40
+29a1:00820000:22c4:013e:2:0
+Radio Zamaneh
+p:Belgacom,f:40
+03a6:00820000:2134:013e:2:0
+SRG-Swiss Classic
+p:Swiss Satellite Radio,f:40
+03a7:00820000:2134:013e:2:0
+SRG-Swiss Pop
+p:Swiss Satellite Radio,f:40
+03a8:00820000:2134:013e:2:0
+SRG-Swiss Jazz
+p:Swiss Satellite Radio,f:40
+03a9:00820000:2134:013e:2:0
+SRG-DRS 4 News
+p:Schweizer Radio DRS,f:40
+37aa:00820000:044c:013e:2:0
+TAMILFMRADIO
+p: ,f:40
+0dad:00820000:2ee0:00b0:2:0
+France Musique
+p:,f:40
+0dae:00820000:2bc0:00b0:2:0
+France Vivace
+p:,f:40
+0daf:00820000:2ee0:00b0:2:0
+FIP
+p:,f:40
+0db0:00820000:2c88:00b0:2:0
+France Inter
+p:,f:40
+00b1:00820000:2648:013e:2:0
+Radio FES
+p:PRVDR,f:40
+0db1:00820000:2c88:00b0:2:0
+France Info
+p:,f:40
+0db2:00820000:2ee0:00b0:2:0
+France Culture
+p:,f:40
+0db3:00820000:2bc0:00b0:2:0
+France Bleu
+p:,f:40
+0db4:00820000:2ee0:00b0:2:0
+Le Mouv
+p:,f:40
+0db6:00820000:3c8c:013e:2:0
+DW01
+p:T-Systems,f:40
+00b7:00820000:1e14:013e:2:0
+Israel 2000
+p:GlobeCast,f:40
+00b8:00820000:1e14:013e:2:0
+RCF
+p:GlobeCast,f:40
+00b9:00820000:1e14:013e:2:0
+Dan TAMIL ALAI Radio
+p:GlobeCast,f:40
+00ba:00820000:1e14:013e:2:0
+FRANCE MAGHREB
+p:Globecast,f:40
+00bb:00820000:1e14:013e:2:0
+RADIO ORIENT
+p:GlobeCast,f:40
+20bb:00820000:2328:013e:2:0
+RADIO MARIJA
+p:OIV Zagreb,f:40
+20bc:00820000:2328:013e:2:0
+Radio Banovina
+p:OIV Zagreb,f:40
+0dc0:00820000:3c8c:013e:2:0
+DW02
+p:T-Systems,f:40
+06c3:00820000:3138:013e:2:0
+Radio Berbere
+p:Globecast,f:40
+09c4:00820000:3d54:013e:2:0
+Era 5
+p:,f:40
+1fc8:00820000:2454:013e:2:0
+RD1_Radio_ARMENIA
+p:GlobeCast,f:40
+36cb:00820000:06a4:013e:2:0
+SSR-La 1ere
+p:Radio Suisse Romande,f:40
+36cc:00820000:06a4:013e:2:0
+SSR-Espace 2
+p:Radio Suisse Romande,f:40
+1bcd:00820000:17d4:013e:2:0
+Mad Radio
+p:NetMed,f:40
+36cd:00820000:06a4:013e:2:0
+SSR-Couleur3
+p:Radio Suisse Romande,f:40
+36ce:00820000:06a4:013e:2:0
+SSR-Option Musique
+p:Radio Suisse Romande,f:40
+36cf:00820000:06a4:013e:2:0
+SSR-Rete Uno
+p:Radio svizzera di lingua italiana,f:40
+36d0:00820000:06a4:013e:2:0
+SSR-Rete Due
+p:Radio svizzera di lingua italiana,f:40
+34d1:00820000:3c28:013e:2:0
+NRJ
+p:CSAT,f:40
+36d1:00820000:06a4:013e:2:0
+SSR-Rete Tre
+p:Radio svizzera di lingua italiana,f:40
+38d1:00820000:0320:fbff:2:0
+Radio DeeJay
+p:SkyItalia,f:40
+34d2:00820000:3c28:013e:2:0
+Rire & Chansons
+p:CSAT,f:40
+38d2:00820000:0320:fbff:2:0
+M2O
+p:SkyItalia,f:40
+34d3:00820000:3c28:013e:2:0
+Nostalgie
+p:CSAT,f:40
+38d3:00820000:0320:fbff:2:0
+Radio 105
+p:SkyItalia,f:40
+0dd4:00820000:3c8c:013e:2:0
+DW04
+p:T-Systems,f:40
+34d4:00820000:3c28:013e:2:0
+Cherie FM
+p:CSAT,f:40
+38d4:00820000:0320:fbff:2:0
+Virgin Radio
+p:SkyItalia,f:40
+34d5:00820000:3c28:013e:2:0
+radio Walfadjri
+p:GlobeCast,C:0500,f:40
+38d5:00820000:0320:fbff:2:0
+Radio Capital
+p:SkyItalia,f:40
+36d6:00820000:06a4:013e:2:0
+SSR-WRS
+p:Radio Suisse Romande,f:40
+38d6:00820000:0320:fbff:2:0
+Kiss Kiss
+p:SkyItalia,f:40
+38d7:00820000:0320:fbff:2:0
+RTL 102.5
+p:SkyItalia,f:40
+38d8:00820000:0320:fbff:2:0
+R 101
+p:SkyItalia,f:40
+38d9:00820000:0320:fbff:2:0
+Radio Italia
+p:SkyItalia,f:40
+29da:00820000:3cf0:013e:2:0
+ARTE_Radio.com
+p:GlobeCast,f:40
+38da:00820000:0320:fbff:2:0
+Radio 24
+p:SkyItalia,f:40
+38db:00820000:0320:fbff:2:0
+RDS
+p:SkyItalia,f:40
+02dc:00820000:1b58:013e:2:0
+R.Maria
+p:Telespazio,f:40
+38dc:00820000:0320:fbff:2:0
+Radio Montecarlo
+p:SkyItalia,f:40
+02dd:00820000:1b58:013e:2:0
+Vietnamese PR
+p:Telespazio,f:40
+02de:00820000:1b58:013e:2:0
+Radio Padania IP
+p:Telespazio,f:40
+0dde:00820000:3c8c:013e:2:0
+DW05
+p:T-Systems,f:40
+39de:00820000:1fa4:013e:2:0
+GRAND
+p:NTH ,f:40
+02e0:00820000:1b58:013e:2:0
+RDS
+p:Telespazio,f:40
+34e0:00820000:3c28:013e:2:0
+Test Radio Globo
+p:CSAT,C:1800,f:40
+02e1:00820000:1b58:013e:2:0
+DimSuono Roma
+p:Telespazio,f:40
+02e2:00820000:1b58:013e:2:0
+ANNI 60
+p:Telespazio,f:40
+39e2:00820000:1fa4:013e:2:0
+RAM RAJ RADIO
+p:NTH ,f:40
+39e3:00820000:1fa4:013e:2:0
+Lijepa nasa (LINA)
+p:NTH ,f:40
+02e4:00820000:1b58:013e:2:0
+R.Italia S.m.i.
+p:Telespazio,f:40
+39e4:00820000:1fa4:013e:2:0
+MB MITIC BILJANA
+p:NTH ,f:40
+39e5:00820000:1fa4:013e:2:0
+VULKAN radio
+p:NTH ,f:40
+39e6:00820000:1fa4:013e:2:0
+RADIO FLES
+p:NTH ,f:40
+02e7:00820000:1b58:013e:2:0
+Popolare
+p:Telespazio,f:40
+39e7:00820000:1fa4:013e:2:0
+Radio SRNA-BOSANKA
+p:NTH ,f:40
+0de8:00820000:3c8c:013e:2:0
+DW06
+p:T-Systems,f:40
+12e8:00820000:2e7c:013e:2:0
+CYFRA+ RADIO
+p:CYFRA +,f:40
+39e8:00820000:1fa4:013e:2:0
+Radio SvetPLUS
+p:NTH ,f:40
+3be8:00820000:2260:fbff:2:0
+50 songs
+p:SkyItalia,f:40
+0ce9:00820000:2ee0:00b0:2:0
+Radio Courtoisie
+p:,f:40
+3be9:00820000:2260:fbff:2:0
+Yesterjay '80
+p:SkyItalia,f:40
+0cea:00820000:2c88:00b0:2:0
+Radio FG
+p:,f:40
+12ea:00820000:2e7c:013e:2:0
+CYFRA+ RMF
+p:CYFRA +,f:40
+39ea:00820000:1fa4:013e:2:0
+TREF Radio
+p:NTH ,f:40
+3bea:00820000:2260:fbff:2:0
+Yesterjay '90
+p:SkyItalia,f:40
+02eb:00820000:1b58:013e:2:0
+R-Radio
+p:Telespazio,f:40
+39eb:00820000:1fa4:013e:2:0
+YU PLANET BEC
+p:NTH ,f:40
+3beb:00820000:2260:fbff:2:0
+Hit Italia
+p:SkyItalia,f:40
+12ec:00820000:2e7c:013e:2:0
+CYFRA+ PR
+p:CYFRA +,f:40
+1cec:00820000:2fa8:013e:2:0
+Radio Capri
+p:Globecast UK,f:40
+3bec:00820000:2260:fbff:2:0
+ItalianVintage
+p:SkyItalia,f:40
+02ed:00820000:1b58:013e:2:0
+Radio Eurospin
+p:Telespazio,f:40
+10ed:00820000:03e8:013e:2:0
+test_radio
+p:TVN Grupa ITI,f:40
+39ed:00820000:1fa4:013e:2:0
+PEIRAIKI EKKLISIA
+p:OTE,f:40
+02ee:00820000:1b58:013e:2:0
+R.Speranza
+p:Telespazio,f:40
+0cef:00820000:1518:013e:2:0
+RADIOUNO
+p:RAI,f:40
+0cf0:00820000:1518:013e:2:0
+RADIODUE
+p:RAI,f:40
+0cf1:00820000:1518:013e:2:0
+RADIOTRE
+p:RAI,f:40
+02f2:00820000:1b58:013e:2:0
+R.KOLBE-SAT
+p:Telespazio,f:40
+0cf2:00820000:1450:013e:2:0
+FD leggera
+p:RAI,f:40
+0cf3:00820000:1518:013e:2:0
+FD auditorium
+p:RAI,f:40
+02f4:00820000:1b58:013e:2:0
+Radio ZETA
+p:Telespazio,f:40
+0cf4:00820000:1518:013e:2:0
+BLUSAT2000
+p:RAI,f:40
+0cf5:00820000:1518:013e:2:0
+GR Parlam.
+p:RAI,f:40
+0cf6:00820000:1518:013e:2:0
+Isoradio
+p:RAI,f:40
+0cf7:00820000:1450:013e:2:0
+Notturno italiano
+p:RAI,f:40
+02f8:00820000:1b58:013e:2:0
+RADIO PADANIA
+p:Telespazio,f:40
+0cf8:00820000:1518:013e:2:0
+Radio Vaticana
+p:RAI,f:40
+02f9:00820000:1b58:013e:2:0
+Radio Radicale
+p:Telespazio,f:40
+08fc:00820000:3d54:013e:2:0
+Era 3
+p:,f:40
+0dfc:00820000:3c8c:013e:2:0
+DW08
+p:T-Systems,f:40
+0cfd:00820000:1518:013e:2:0
+DAB
+p:Rai,f:40
+0dfd:00820000:14b4:013e:2:0
+Radio 1
+p:RTVE,f:40
+0dfe:00820000:14b4:013e:2:0
+Radio Clasica
+p:RTVE,f:40
+29fe:00820000:3cf0:013e:2:0
+RTL_102.5
+p:GlobeCast_Italia,f:40
+3bfe:00820000:2260:fbff:2:0
+Capital '70
+p:SkyItalia,f:40
+0dff:00820000:14b4:013e:2:0
+Radio 3
+p:RTVE,f:40
+12ff:00820000:2e7c:013e:2:0
+tech 2
+p:CYFRA +,f:40
+29ff:00820000:3cf0:013e:2:0
+Romania_In_direct
+p:GlobeCast,f:40
+3bff:00820000:2260:fbff:2:0
+Vintage '60
+p:SkyItalia,f:40
+2002:00820000:2454:013e:12:0
+worldsat-o
+p:OpenMux IP Gateway,f:40
+2004:00820000:2454:013e:12:0
+WorldSat
+p:OpenMux IP Gateway,f:40
+0007:00820000:2648:013e:12:0
+MAP SAT
+p:PRVDR,f:40
+281f:00820000:23f0:013f:12:0
+AleniaSpazio
+p:Alenia,f:40
+1c24:00820000:1c20:013e:12:0
+AH-EMP4-DATA
+p:AH-EDP,f:40
+292b:00820000:1edc:0071:12:0
+CP_Download
+p:,f:40
+0e2f:00820000:0708:00c8:12:0
+ENVIATEL
+p:M-Three satcom,f:40
+3b38:00820000:0514:013e:12:0
+pVOD
+p:ITI,f:40
+243d:00820000:23f0:013f:12:0
+WebTv Ch1
+p:OpenMux IP Gateway,f:40
+243e:00820000:23f0:013f:12:0
+WebTv Ch1
+p:OpenMux IP Gateway,f:40
+243f:00820000:23f0:013f:12:0
+WebTv Ch2
+p:OpenMux IP Gateway,f:40
+2744:00820000:23f0:013f:12:0
+CRF-Perugia
+p:CRF-Perugia,f:40
+044e:00820000:20d0:013e:12:0
+POLYCOM
+p:GLOBECAST,f:40
+275d:00820000:23f0:013f:12:0
+CID09000200
+p:Alenia,f:40
+2064:00820000:24b8:013e:12:0
+Quadriga
+p:Globecast,f:40
+126d:00820000:3458:013e:12:0
+NIS_Intesa1
+p:T-Systems/MTI,f:40
+1d77:00820000:2f44:013e:12:0
+IPE 3
+p:???,f:40
+1f7b:00820000:319c:013e:12:0
+Akubis Daten
+p:T-Systems,C:0b00,f:40
+118a:00820000:2af8:013e:12:0
+ST
+p:CYFRA +,f:40
+278f:00820000:23f0:013f:12:0
+skn-92-8
+p:NCS-BBA-Lario-2,f:40
+2898:00820000:23f0:013f:12:0
+CID09004700
+p:PCP-ARPA-TO,f:40
+2bbf:00820000:2454:013e:12:0
+IEPG Data
+p:Skyitalia,f:40
+22c8:00820000:238c:013e:12:0
+HitCast Data 1
+p:OpenMux IP Gateway,f:40
+22ca:00820000:238c:013e:12:0
+Data_01
+p:OpenMux IP Gateway,f:40
+3aca:00820000:0514:013e:12:0
+Upload
+p:test,f:40
+22cb:00820000:238c:013e:12:0
+Data_02
+p:OpenMux IP Gateway,f:40
+21cd:00822a65:2db4:0000:12:0
+EUMETCAST
+p:T-Systems,f:40
+21ce:00822a65:2db4:0000:12:0
+GlobalK-Sat
+p:T-Systems,f:40
+21cf:00822a65:2db4:0000:12:0
+Acentic
+p:T-Systems,f:40
+27e1:00820000:23f0:013f:12:0
+CSF-Viminale
+p:VVF,f:40
+12f7:00820000:2e7c:013e:12:0
+REUTERS RSP
+p:CYFRA +,f:40
+2b0c:00820000:1900:fbff:25:0
+SKY Sport HD 1
+p:SkyItalia,f:40
+2b16:00820000:1900:fbff:25:0
+Next HD
+p:SkyItalia,f:40
+2b17:00820000:1900:fbff:25:0
+SKY Cinema HD
+p:SkyItalia,f:40
+2b18:00820000:1900:fbff:25:0
+NationalGeo HD
+p:SkyItalia,f:40
+2b19:00820000:1900:fbff:25:0
+SKY Sport HD 2
+p:SkyItalia,f:40
+03de:00820000:2134:013e:25:0
+HD suisse
+p:SRG SSR idee suisse,f:40
+240a:00820000:23f0:013f:128:0
+SIMS Signaling
+p:PCP-Campochiaro,f:40
+2315:00820000:238c:013e:128:0
+SKYGATE ERTU
+p:SkyMux,f:40
+231a:00820000:238c:013e:128:0
+SKY MEDIO
+p:SkyMux,f:40
+281a:00820000:23f0:013f:128:0
+SIMS Signaling
+p:Alenia,f:40
+243c:00820000:23f0:013f:128:0
+skygate25
+p:SkyMux,f:40
+2743:00820000:23f0:013f:128:0
+SIMS Signaling
+p:CRF-Perugia,f:40
+2455:00820000:23f0:013f:128:0
+skygate24
+p:SkyMux,f:40
+275c:00820000:23f0:013f:128:0
+SIMS Signaling
+p:Alenia,f:40
+2261:00820000:238c:013e:128:0
+SKYPLEX TXP91
+p:EUTELSAT,f:40
+1162:00820000:2af8:013e:128:0
+EPG
+p:CYFRA +,f:40
+2269:00820000:238c:013e:128:0
+skygateTDA
+p:SkyMux,f:40
+2379:00820000:238c:013e:128:0
+Skygate RTORO
+p:Eutelsat,f:40
+227a:00820000:238c:013e:128:0
+SkygateTDA
+p:Skylogic,f:40
+248a:00820000:23f0:013f:128:0
+SkyPlex CHID 4
+p:Eutelsat,f:40
+238d:00820000:23f0:013f:128:0
+SKYPLEX TXP92
+p:EUTELSAT,f:40
+278e:00820000:23f0:013f:128:0
+SIMS Signaling
+p:NCS-BBA-Lario-2,f:40
+2491:00820000:23f0:013f:128:0
+QAT-DOH-008
+p:Al Jazeera,f:40
+299a:00820000:22c4:013e:128:0
+MOVIEPEAK
+p:Twin Peak,f:40
+249b:00820000:23f0:013f:128:0
+ITA-FOC-17(SKY2)
+p:SkyMux,f:40
+22ac:00820000:238c:013e:128:0
+Skyplex RMB
+p:Eutelsat,f:40
+27b0:00820000:23f0:013f:128:0
+SIMS Signaling
+p:ITA-ROM-043,f:40
+29b5:00820000:22c4:013e:128:0
+StrongDigitalTV
+p:OpenMux,f:40
+29b7:00820000:22c4:013e:128:0
+Allsatcom4
+p:OpenMux,f:40
+29be:00820000:22c4:013e:128:0
+Opentech
+p:OpenMux,f:40
+27c0:00820000:23f0:013f:128:0
+Skyplex Internal
+p:SkyMux,f:40
+29c1:00820000:22c4:013e:128:0
+AllSat.Com
+p:OpenMux,f:40
+22c5:00820000:238c:013e:128:0
+Skyplex 10.1
+p:SkyMux,f:40
+22de:00820000:238c:013e:128:0
+SkygateBLUTV
+p:SkyMux,f:40
+27e0:00820000:23f0:013f:128:0
+SIMS Signaling
+p:Alenia,f:40
+12fe:00820000:2e7c:013e:128:0
+tech
+p:CYFRA +,f:40
+0016:00820000:1edc:0071:129:0
+SCM Download
+p:,f:40
+144f:00820000:05dc:013e:129:0
+5199
+p:CYFRA +,f:40
+00e1:00820000:2e7c:013e:129:0
+PHILIPS DOWNLOAD 1.1
+p:WIZJA 1,f:40
+0e00:00820000:15e0:fbff:130:0
+SKY Sound
+p:SkyItalia,f:40
+3900:00820000:0320:fbff:130:0
+GF Feed3
+p:SkyItalia,f:40
+0e32:00820000:16a8:fbff:130:0
+Prima Fila
+p:SkyItalia,f:40
+0e55:00820000:16a8:fbff:130:0
+Gestione Collegam. Telefonico
+p:SkyItalia,f:40
+38a5:00820000:0320:fbff:130:0
+Modalita' d'Acquisto
+p:SkyItalia,f:40
+2ab6:00820000:1838:fbff:130:0
+iadv appli4
+p:SkyItalia,f:40
+2ab8:00820000:1838:fbff:130:0
+iadv Video
+p:SkyItalia,f:40
+2ab9:00820000:1838:fbff:130:0
+i-Spot Puntoshop
+p:SkyItalia,f:40
+2aba:00820000:1838:fbff:130:0
+i-Spot Nokia Nseries
+p:SkyItalia,f:40
+2abb:00820000:1838:fbff:130:0
+iadv appli3
+p:SkyItalia,f:40
+29bd:00820000:22c4:013e:130:0
+HUMAX DOWNLOAD SVC
+p:HUMAX,f:40
+38be:00820000:0320:fbff:130:0
+GF Feed1
+p:SkyItalia,f:40
+38bf:00820000:0320:fbff:130:0
+SKY Assist active
+p:SkyItalia,f:40
+38c0:00820000:0320:fbff:130:0
+GF Feed2
+p:SkyItalia,f:40
+0dc4:00820000:15e0:fbff:130:0
+Zona Giochi
+p:SkyItalia,f:40
+0dc5:00820000:15e0:fbff:130:0
+Playjam
+p:SkyItalia,f:40
+38cd:00820000:0320:fbff:130:0
+Radio on Sky
+p:SkyItalia,f:40
+1fd1:00820000:189c:fbff:130:0
+SKY PASS
+p:SkyItalia,f:40
+38e2:00820000:0320:fbff:130:0
+BET ON SKY
+p:SkyItalia,f:40
+38e6:00820000:0320:fbff:130:0
+Better
+p:SkyItalia,f:40
+3be7:00820000:2260:fbff:130:0
+Music On SKY
+p:SkyItalia,f:40
+38e8:00820000:0320:fbff:130:0
+SNAI
+p:SkyItalia,f:40
+0ff2:00820000:2580:fbff:130:0
+Zona Bet Test
+p:SkyItalia,f:40
+0dfd:00820000:15e0:fbff:130:0
+SKY Play IT
+p:SkyItalia,f:40
+1003:00820000:2580:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+2006:00820000:189c:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+0e0e:00820000:15e0:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+2e17:00820000:2198:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+251a:00820000:2774:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+0e1c:00820000:0708:00c8:131:0
+XSI
+p:SKY,f:40
+3c1d:00820000:2260:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+2c23:00820000:1a90:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+112e:00820000:2710:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+2d4f:00820000:1a2c:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+3451:00820000:0064:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+2b57:00820000:1900:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+0e70:00820000:16a8:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+2c87:00820000:1644:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+0f89:00820000:251c:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+0dab:00820000:1450:013e:131:0
+download
+p:Rai,f:40
+2db3:00820000:2008:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+2bbf:00820000:19c8:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+2ceb:00820000:170c:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+2af7:00820000:1838:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+38ff:00820000:0320:fbff:131:0
+IEPG Data
+p:SkyItalia,f:40
+1001:00820000:2580:fbff:132:0
+Dl961
+p:SkyItalia,f:40
+1002:00820000:2580:fbff:132:0
+Dl962
+p:SkyItalia,f:40
+0e0c:00820000:15e0:fbff:132:0
+Dl561
+p:SkyItalia,f:40
+0e0d:00820000:15e0:fbff:132:0
+Dl562
+p:SkyItalia,f:40
+2e15:00820000:2198:fbff:132:0
+Dl861
+p:SkyItalia,f:40
+2e16:00820000:2198:fbff:132:0
+Dl862
+p:SkyItalia,f:40
+2518:00820000:2774:fbff:132:0
+Dl1011
+p:SkyItalia,f:40
+2519:00820000:2774:fbff:132:0
+Dl1012
+p:SkyItalia,f:40
+2c21:00820000:1a90:fbff:132:0
+Dl681
+p:SkyItalia,f:40
+2c22:00820000:1a90:fbff:132:0
+Dl682
+p:SkyItalia,f:40
+112c:00820000:2710:fbff:132:0
+Dl1001
+p:SkyItalia,f:40
+112d:00820000:2710:fbff:132:0
+Dl1002
+p:SkyItalia,f:40
+292d:00820000:1edc:0071:132:0
+01 34 01 16
+p:Cyfrowy Polsat,f:40
+062e:00820000:2e18:00b0:132:0
+01 06 04 50
+p:OpenMux,f:40
+062f:00820000:2e18:00b0:132:0
+01 06 01 48
+p:,f:40
+0630:00820000:2e18:00b0:132:0
+01 07 04 50
+p:OpenMux,f:40
+0631:00820000:2e18:00b0:132:0
+01 07 01 48
+p:OpenMux,f:40
+0632:00820000:2e18:00b0:132:0
+01 08 04 50
+p:OpenMux,f:40
+0633:00820000:2e18:00b0:132:0
+01 08 01 48
+p:OpenMux,f:40
+0634:00820000:2e18:00b0:132:0
+01 60 04 65
+p:OpenMux,f:40
+0635:00820000:2e18:00b0:132:0
+01 60 01 65
+p:OpenMux,f:40
+0638:00820000:2e18:00b0:132:0
+01 46 04 65
+p:OpenMux,f:40
+0639:00820000:2e18:00b0:132:0
+01 46 01 65
+p:,f:40
+063a:00820000:2e18:00b0:132:0
+01 03 04 50
+p:OpenMux,f:40
+063b:00820000:2e18:00b0:132:0
+01 03 01 48
+p:,f:40
+063c:00820000:2e18:00b0:132:0
+01 03 06 23
+p:,f:40
+063d:00820000:2e18:00b0:132:0
+01 04 01 48
+p:,f:40
+063e:00820000:2e18:00b0:132:0
+01 04 04 50
+p:OpenMux,f:40
+2d49:00820000:1a2c:fbff:132:0
+Dl671
+p:SkyItalia,f:40
+2d4a:00820000:1a2c:fbff:132:0
+Dl672
+p:SkyItalia,f:40
+344e:00820000:0064:fbff:132:0
+DI11
+p:SkyItalia,f:40
+344f:00820000:0064:fbff:132:0
+Dl11
+p:SkyItalia,f:40
+3450:00820000:0064:fbff:132:0
+Dl12
+p:SkyItalia,f:40
+2b55:00820000:1900:fbff:132:0
+Dl641
+p:SkyItalia,f:40
+2b56:00820000:1900:fbff:132:0
+Dl642
+p:SkyItalia,f:40
+0e57:00820000:16a8:fbff:132:0
+Dl583
+p:SkyItalia,f:40
+0e59:00820000:16a8:fbff:132:0
+Dl581
+p:SkyItalia,f:40
+0e5a:00820000:16a8:fbff:132:0
+Dl582
+p:SkyItalia,f:40
+295f:00820000:1edc:0071:132:0
+SAMSUNG370
+p:Cyfrowy Polsat,f:40
+2c82:00820000:1644:fbff:132:0
+Dl571
+p:SkyItalia,f:40
+2c83:00820000:1644:fbff:132:0
+Dl572
+p:SkyItalia,f:40
+0f87:00820000:251c:fbff:132:0
+Dl951
+p:SkyItalia,f:40
+0f88:00820000:251c:fbff:132:0
+Dl952
+p:SkyItalia,f:40
+0f8a:00820000:251c:fbff:132:0
+Dl583
+p:SkyItalia,f:40
+2dae:00820000:2008:fbff:132:0
+Dl821
+p:SkyItalia,f:40
+2daf:00820000:2008:fbff:132:0
+Dl822
+p:SkyItalia,f:40
+2bbc:00820000:19c8:fbff:132:0
+Dl661
+p:SkyItalia,f:40
+2bbd:00820000:19c8:fbff:132:0
+Dl662
+p:SkyItalia,f:40
+1cd3:00820000:1ce8:0071:132:0
+Samsung2
+p:Cyfrowy Polsat,f:40
+1cd9:00820000:1ce8:0071:132:0
+01 41 01 06
+p:FLASH4285,f:40
+2ce6:00820000:170c:fbff:132:0
+Dl591
+p:SkyItalia,f:40
+2ce7:00820000:170c:fbff:132:0
+Dl592
+p:SkyItalia,f:40
+1fec:00820000:189c:fbff:132:0
+Dl631
+p:SkyItalia,f:40
+1fed:00820000:189c:fbff:132:0
+Dl632
+p:SkyItalia,f:40
+2af5:00820000:1838:fbff:132:0
+Dl621
+p:SkyItalia,f:40
+2af6:00820000:1838:fbff:132:0
+Dl622
+p:SkyItalia,f:40
+38fd:00820000:0320:fbff:132:0
+Dl81
+p:SkyItalia,f:40
+38fe:00820000:0320:fbff:132:0
+Dl82
+p:SkyItalia,f:40
+1004:00820000:2e18:00b0:135:0
+Guide
+p:,f:40
+170c:00820000:2bc0:00b0:135:0
+RADIO2000
+p:OpenMux,f:40
+1715:00820000:2e18:00b0:135:0
+Notification Débits
+p:OpenMux,f:40
+1e16:00820000:3db8:00b0:135:0
+quizz_Satisfaction
+p:OpenMux,f:40
+1d4c:00820000:2bc0:00b0:135:0
+Playin TV Outlist
+p:OpenMux,f:40
+294f:00820000:1edc:0071:135:0
+Test
+p:Cyfrowy Polsat,f:40
+1b5f:00820000:2d50:00b0:135:0
+Debits de jetons
+p:OpenMux,C:0500,f:40
+1969:00820000:2e18:00b0:135:0
+UPSELLING
+p:OpenMux,f:40
+1775:00820000:2c88:00b0:135:0
+Quizz_TF1
+p:OpenMux,f:40
+1c8c:00820000:2bc0:00b0:135:0
+Tests terminaux
+p:OpenMux,f:40
+189c:00820000:2e18:00b0:135:0
+Boutique Votre Abonnement
+p:OpenMux,f:40
+16a9:00820000:2ee0:00b0:135:0
+Météo Express
+p:OpenMux,f:40
+12c0:00820000:2e18:00b0:135:0
+test-96-0
+p:OpenMux,f:40
+12c5:00820000:2e18:00b0:135:0
+opentst
+p:OpenMux,f:40
+17d4:00820000:2e18:00b0:135:0
+Votre_Contrat
+p:OpenMux,f:40
+05f0:00820000:2e18:00b0:135:0
+Equidia Outlist
+p:,f:40
+17d9:00820000:3db8:00b0:136:0
+CANAL+
+p:OpenMux,f:40
+17da:00820000:3db8:00b0:136:0
+CANAL+ DECALE
+p:OpenMux,f:40
+17db:00820000:3db8:00b0:136:0
+CANAL+ SPORT
+p:OpenMux,f:40
+17dc:00820000:3db8:00b0:136:0
+CANAL+ CINEMA
+p:OpenMux,f:40
+17dd:00820000:3db8:00b0:136:0
+CANAL+ HI-TECH
+p:OpenMux,f:40
+1518:00820000:2bc0:00b0:138:0
+X X L
+p:OpenMux,C:0500,f:40
+1521:00820000:2bc0:00b0:138:0
+PRIVATE SPICE
+p:OpenMux,C:0500,f:40
+0fa0:00820000:2ee0:00b0:138:0
+BANDIAGARA
+p:OpenMux,f:40
+18a1:00820000:2bc0:00b0:138:0
+Canal+
+p:OpenMux,f:40
+14b9:00820000:2bc0:00b0:138:0
+Playin TV
+p:OpenMux,f:40
+1af4:00820000:2bc0:00b0:138:0
+TPS & Vous
+p:,f:40
+11f8:00820000:3db8:00b0:138:0
+Mathilda
+p:OpenMux,f:40
+0a1f:00820000:2e18:00b0:139:0
+02 01 04 86
+p:OpenMux,f:40
+0a20:00820000:2e18:00b0:139:0
+02 01 01 84
+p:,f:40
+0a21:00820000:2e18:00b0:139:0
+02 02 04 86
+p:OpenMux,f:40
+0a22:00820000:2e18:00b0:139:0
+02 02 01 84
+p:,f:40
+0a25:00820000:2e18:00b0:139:0
+02 04 04 86
+p:OpenMux,f:40
+0a26:00820000:2e18:00b0:139:0
+02 04 01 84
+p:OpenMux,f:40
+0a27:00820000:2e18:00b0:139:0
+02 05 01 84
+p:OpenMux,f:40
+0a28:00820000:2e18:00b0:139:0
+02 05 04 86
+p:OpenMux,f:40
+0a29:00820000:2e18:00b0:139:0
+02 06 01 84
+p:OpenMux,f:40
+0a2a:00820000:2e18:00b0:139:0
+02 06 04 86
+p:OpenMux,f:40
+0a2b:00820000:2d50:00b0:139:0
+0208010a0F
+p:OpenMux,f:40
+0a2c:00820000:2d50:00b0:139:0
+0208041a0F
+p:OpenMux,f:40
+0e66:00820000:1ce8:0071:141:0
+EpgOpenTV
+p:Nagra,f:40
+8fff:00820000:1edc:0071:143:0
+EDCPS
+p:,f:40
+1cad:00820000:1ce8:0071:144:0
+0202000E
+p:Cyfrowy Polsat,f:40
+1cd6:00820000:1ce8:0071:144:0
+02010016
+p:Cyfrowy Polsat,f:40
+1d98:00820000:2f44:013e:145:0
+Eepg
+p:NetMed,f:40
+end
+Have a lot of bugs!
--- /dev/null
+eDVB services /3/
+transponders
+00c00000:03f0:0001
+ s 11317500:22000000:1:4:192:2
+/
+00c00000:03f3:0001
+ s 11362000:22000000:0:2:192:0:1:2:0:1
+/
+00c00000:03f8:0001
+ s 11435000:22000000:1:4:192:2
+/
+00c00000:03fa:0001
+ s 11479000:22000000:1:4:192:2
+/
+00c00000:03fc:0001
+ s 11508500:22000000:1:4:192:2
+/
+00c00000:03fe:0001
+ s 11538000:22000000:1:4:192:2
+/
+00c00000:0400:0001
+ s 11567500:22000000:1:4:192:2
+/
+00c00000:0402:0001
+ s 11597000:22000000:1:4:192:2
+/
+00c00000:0407:0001
+ s 11670750:22000000:0:4:192:2
+/
+00c00000:0408:0001
+ s 11685500:22000000:1:4:192:2
+/
+00c00000:040a:0001
+ s 10979000:22000000:1:4:192:2
+/
+00c00000:040e:0001
+ s 11038000:22000000:1:4:192:2
+/
+00c00000:0412:0001
+ s 11097000:22000000:1:4:192:2
+/
+00c00000:0416:0001
+ s 11156000:22000000:1:4:192:2
+/
+00c00000:041b:0001
+ s 10743750:22000000:0:4:192:2
+/
+00c00000:041d:0001
+ s 10773250:22000000:0:4:192:2
+/
+00c00000:041e:0001
+ s 10788000:22000000:1:4:192:2
+/
+00c00000:0420:0001
+ s 10817500:22000000:1:4:192:2
+/
+00c00000:0421:0001
+ s 10832000:22000000:0:4:192:2
+/
+00c00000:0422:0001
+ s 10847000:22000000:1:4:192:2
+/
+00c00000:0423:0001
+ s 10861750:22000000:0:4:192:2
+/
+00c00000:0424:0001
+ s 10876000:22000000:1:4:192:2
+/
+00c00000:0427:0001
+ s 10920750:22000000:0:4:192:2
+/
+00c00000:042a:0001
+ s 11739000:27500000:1:3:192:2
+/
+00c00000:042c:0001
+ s 11778000:27500000:1:3:192:2
+/
+00c00000:042e:0001
+ s 11817000:27500000:1:3:192:2
+/
+00c00000:0430:0001
+ s 11856000:27500000:1:3:192:2
+/
+00c00000:0431:0001
+ s 12109500:27500000:0:3:192:2
+/
+00c00000:0432:0001
+ s 11895000:27500000:1:3:192:2
+/
+00c00000:0434:0001
+ s 11934000:27500000:1:3:192:2
+/
+00c00000:0436:0001
+ s 11973000:27500000:1:3:192:2
+/
+00c00000:0437:0001
+ s 11953500:27500000:0:3:192:2
+/
+00c00000:0438:0001
+ s 12012000:27500000:1:3:192:2
+/
+00c00000:043a:0001
+ s 12051000:27500000:1:3:192:2
+/
+00c00000:043c:0001
+ s 12090000:27500000:1:3:192:2
+/
+00c00000:043e:0001
+ s 12129000:27500000:1:3:192:2
+/
+00c00000:0440:0001
+ s 12168000:27500000:1:3:192:2
+/
+00c00000:0441:0001
+ s 12187500:27500000:0:3:192:2
+/
+00c00000:0442:0001
+ s 12207000:27500000:1:3:192:2
+/
+00c00000:0443:0001
+ s 12226500:27500000:0:3:192:2
+/
+00c00000:0444:0001
+ s 12246000:27500000:1:3:192:2
+/
+00c00000:0445:0001
+ s 12265500:27500000:0:3:192:2
+/
+00c00000:0446:0001
+ s 12285000:27500000:1:3:192:2
+/
+00c00000:0447:0001
+ s 12304500:27500000:0:3:192:2
+/
+00c00000:0448:0001
+ s 12324000:27500000:1:3:192:2
+/
+00c00000:044a:0001
+ s 11758000:27500000:1:3:192:2
+/
+00c00000:044b:0001
+ s 12382500:27500000:0:3:192:2
+/
+00c00000:044c:0001
+ s 12402000:27500000:1:3:192:2
+/
+00c00000:044d:0001
+ s 11836500:27500000:0:3:192:2
+/
+00c00000:044e:0001
+ s 12441000:27500000:1:3:192:2
+/
+00c00000:0453:0001
+ s 12544750:22000000:0:4:192:2
+/
+00c00000:0454:0001
+ s 12551500:22000000:1:4:192:2
+/
+00c00000:0457:0001
+ s 12603750:22000000:0:4:192:2
+/
+00c00000:0458:0001
+ s 12610500:22000000:1:4:192:2
+/
+00c00000:0459:0001
+ s 12633250:22000000:0:4:192:2
+/
+00c00000:045a:0001
+ s 12640000:22000000:1:4:192:2
+/
+00c00000:045b:0001
+ s 12662750:22000000:0:4:192:2
+/
+00c00000:045d:0001
+ s 12692250:22000000:0:4:192:2
+/
+00c00000:045e:0001
+ s 12699000:22000000:1:4:192:2
+/
+00c00000:0460:0001
+ s 12728500:22000000:1:4:192:2
+/
+00c00000:04b1:0001
+ s 12421500:27500000:0:3:192:2
+/
+00c00000:04ff:0001
+ s 11992500:27500000:0:3:192:2
+/
+00c00000:0449:0035
+ s 12343500:27500000:0:3:192:2
+/
+00c00000:0451:0035
+ s 12515000:22000000:0:4:192:2
+/
+00c00000:0455:0035
+ s 12574000:22000000:0:4:192:2
+/
+00c00000:045c:0035
+ s 12669500:22000000:1:4:192:2
+/
+00c00000:045f:0035
+ s 12721750:22000000:0:4:192:2
+/
+00c00000:0001:0085
+ s 12070500:27500000:0:3:192:2
+/
+00c00000:0002:0085
+ s 11797500:27500000:0:3:192:2
+/
+00c00000:0003:0085
+ s 11719500:27500000:0:3:192:2
+/
+00c00000:0004:0085
+ s 12031500:27500000:0:3:192:2
+/
+00c00000:0005:0085
+ s 12460500:27500000:0:3:192:2
+/
+00c00000:0006:0085
+ s 11914500:27500000:0:9:192:2:1:1:0
+/
+00c00000:0007:0085
+ s 12148500:27500000:0:3:192:2
+/
+00c00000:0009:0085
+ s 11875500:27500000:0:3:192:2
+/
+00c00000:0011:0085
+ s 11758500:27500000:0:3:192:2
+/
+00c00000:0021:0085
+ s 12480000:27500000:1:3:192:2
+/
+end
+services
+75e8:00c00000:0422:0001:0:0
+
+p:,f:40
+75e9:00c00000:0422:0001:0:0
+
+p:,f:40
+75ea:00c00000:0422:0001:0:0
+
+p:,f:40
+75eb:00c00000:0422:0001:0:0
+
+p:,f:40
+75ec:00c00000:0422:0001:0:0
+
+p:,f:40
+0300:00c00000:0007:0085:1:0
+RNF
+p:BetaDigital,f:40
+0700:00c00000:0005:0085:1:0
+\86BLUCOM\87 DEMOKANAL
+p:BetaDigital,f:40
+1b00:00c00000:03fe:0001:1:0
+TELESUR
+p:GlobeCast Spain,f:40
+2200:00c00000:044c:0001:1:0
+REAL TIME
+p:CSAT,f:40
+7000:00c00000:0436:0001:1:0
+MTV Euro
+p:MTV Networks Europe,f:40
+7500:00c00000:0420:0001:1:0
+DCINE ESPAÑOL
+p:DCESP,f:40
+0201:00c00000:0004:0085:1:0
+EROTIK - \86AB 18!\87
+p:PREMIERE,C:1833,C:1831,C:1830,C:1810,f:40
+0301:00c00000:0007:0085:1:0
+\86Voyages\87 Television
+p:BetaDigital,f:40
+0701:00c00000:0005:0085:1:0
+\86D\87AS\86 VIERTE\87
+p:BetaDigital,f:40
+1901:00c00000:03fa:0001:1:0
+CANAL EVENEMENT
+p:CSAT,f:40
+2201:00c00000:044c:0001:1:0
+JETIX
+p:CSAT,f:40
+7001:00c00000:0436:0001:1:0
+MTV Germany
+p:MTV Networks Europe,f:40
+7501:00c00000:0420:0001:1:0
+CANAL COCINA
+p:CACOC,f:40
+0202:00c00000:0007:0085:1:0
+TIER.TV
+p:BetaDigital,f:40
+0302:00c00000:0007:0085:1:0
+.
+p:BetaDigital,f:40
+0702:00c00000:0005:0085:1:0
+\86JAMBA!\87 TV
+p:BetaDigital,f:40
+1902:00c00000:03fa:0001:1:0
+VIVOLTA
+p:CSAT,f:40
+2202:00c00000:044c:0001:1:0
+L'EQUIPE TV
+p:CSAT,f:40
+7002:00c00000:0436:0001:1:0
+MTV Pulse
+p:MTV Networks Europe,f:40
+7502:00c00000:0420:0001:1:0
+TVV INT.
+p:CCV,f:40
+7602:00c00000:0408:0001:1:0
+CNN+
+p:CNN+,f:40
+0203:00c00000:0004:0085:1:0
+MGM
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+0303:00c00000:0007:0085:1:0
+.
+p:BetaDigital,f:40
+1903:00c00000:03fa:0001:1:0
+TELEREALITE
+p:CSAT,f:40
+2203:00c00000:044c:0001:1:0
+PLANETE NO LIMIT
+p:CSAT,f:40
+7003:00c00000:0436:0001:1:0
+MTV Idol
+p:MTV Networks Europe,f:40
+7503:00c00000:0420:0001:1:0
+FOX
+p:FOXGE,f:40
+7603:00c00000:0408:0001:1:0
+PRO TV INT
+p:DIGITAL+,f:40
+0204:00c00000:0003:0085:1:0
+PREMIERE \86NOSTALGIE\87
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+0304:00c00000:0005:0085:1:0
+imusic TV
+p:BetaDigital,f:40
+1904:00c00000:03fa:0001:1:0
+BABY FIRST
+p:CSAT,f:40
+2204:00c00000:044c:0001:1:0
+NATIONAL GEO
+p:CSAT,f:40
+7004:00c00000:0436:0001:1:0
+VIVA Germany
+p:MTV Networks Europe,f:40
+7504:00c00000:0420:0001:1:0
+AXN
+p:AXN,f:40
+7604:00c00000:0408:0001:1:0
+RAD. ROMANIA
+p:DIGITAL+,f:40
+0305:00c00000:0007:0085:1:0
+BD 4
+p:BetaDigital,C:1833,f:40
+1905:00c00000:03fa:0001:1:0
+PLANETE JUSTICE
+p:CSAT,f:40
+2205:00c00000:044c:0001:1:0
+C CINEMA CLASSIC
+p:CSAT,f:40
+7005:00c00000:0436:0001:1:0
+COMEDY CENTRAL Germany
+p:MTV Networks Europe,f:40
+7505:00c00000:0420:0001:1:0
+TVE 1
+p:TVE 1,f:40
+0206:00c00000:0001:0085:1:0
+\86GOLDSTAR\87 TV
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+0306:00c00000:0007:0085:1:0
+\86GOD \87Channel
+p:BetaDigital,f:40
+2206:00c00000:044c:0001:1:0
+NRJ 12
+p:CSAT,f:40
+7506:00c00000:0420:0001:1:0
+SCI FI
+p:DIGITAL +,f:40
+0307:00c00000:0007:0085:1:0
+Der \86Schmuck\87kanal
+p:BetaDigital,f:40
+2207:00c00000:044c:0001:1:0
+C CINEMA FAMIZ
+p:CSAT,f:40
+7007:00c00000:0436:0001:1:0
+MTV NL
+p:MTV Networks Europe,f:40
+7607:00c00000:0408:0001:1:0
+S.MODELO 08
+p:DIGITAL+,f:40
+0008:00c00000:0001:0085:1:0
+PREMIERE \86START\87
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+0308:00c00000:0005:0085:1:0
+GIGA
+p:BetaDigital,f:40
+2f08:00c00000:0441:0001:1:0
+\86S\87uper\86 RTL\87
+p:RTL World,f:40
+7008:00c00000:0436:0001:1:0
+NICK Germany
+p:MTV Networks Europe,f:40
+0009:00c00000:0002:0085:1:0
+\86PREM\87IERE\86 4\87
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+2009:00c00000:0430:0001:1:0
+CANAL+
+p:CSAT,f:40
+2f09:00c00000:0441:0001:1:0
+Super RTL CH
+p:RTL,f:40
+7009:00c00000:0436:0001:1:0
+MTV ENTERTAINMENT (P)
+p:MTV Networks Europe,f:40
+7509:00c00000:0420:0001:1:0
+ECUAVISA INT
+p:Digital+,f:40
+000a:00c00000:0002:0085:1:0
+\86PREM\87IERE\86 1\87
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+200a:00c00000:0430:0001:1:0
+CANAL+ DECALE
+p:CSAT,f:40
+700a:00c00000:0436:0001:1:0
+NICK PREMIUM (P)
+p:MTV Networks Europe,f:40
+750a:00c00000:0420:0001:1:0
+CARACOL TV
+p:digital TV,f:40
+000b:00c00000:0002:0085:1:0
+\86PREM\87IERE\86 2\87
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+200b:00c00000:0430:0001:1:0
+CANAL+ CINEMA
+p:CSAT,f:40
+000c:00c00000:0011:0085:1:0
+\86ANIMAL\87 PLANET
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+200c:00c00000:0430:0001:1:0
+CANAL+ HI-TECH
+p:CSAT,f:40
+760c:00c00000:0408:0001:1:0
+TCM CLÁSICO
+p:CMACLS,f:40
+000d:00c00000:0011:0085:1:0
+DISCOVERY \86GESCHICHTE\87
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+000e:00c00000:0011:0085:1:0
+\86DISCOVERY\87 CHANNEL
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+200e:00c00000:0430:0001:1:0
+C CINEMA PREMIER
+p:CSAT,f:40
+500e:00c00000:0447:0001:1:0
+UPC Direct Radio
+p:UPC Direct,f:40
+760e:00c00000:0408:0001:1:0
+TV GALICIA
+p:DIGITAL+,f:40
+000f:00c00000:0011:0085:1:0
+FOCUS \86GESUND\87HEIT
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+200f:00c00000:0430:0001:1:0
+DISNEY CHANNEL
+p:CSAT,f:40
+500f:00c00000:0447:0001:1:0
+Game 3
+p:chellomedia IS,f:40
+0010:00c00000:0002:0085:1:0
+PREMIERE \86SERIE\87
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+2010:00c00000:0430:0001:1:0
+CANAL+ SPORT
+p:CSAT,f:40
+5010:00c00000:0447:0001:1:0
+Game 2
+p:chellomedia IS,f:40
+0011:00c00000:0003:0085:1:0
+PREMIERE \86SPORT PORTAL\87
+p:PREMIERE,C:1833,C:1830,f:40
+2011:00c00000:0430:0001:1:0
+EQUIDIA
+p:CSAT,f:40
+2211:00c00000:044c:0001:1:0
+NRJ 12
+p:CSAT,f:40
+5011:00c00000:0447:0001:1:0
+Game 1
+p:chellomedia IS,f:40
+0012:00c00000:0004:0085:1:0
+PREMIERE \86DIREKT\87
+p:PREMIERE,f:40
+5012:00c00000:0447:0001:1:0
+Games Portal
+p:UPC Direct,f:40
+0013:00c00000:0011:0085:1:0
+\86JUNIOR\87
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+5013:00c00000:0447:0001:1:0
+UPC_EPG
+p:UPC Direct,f:40
+0014:00c00000:0003:0085:1:0
+PREMIERE \86FILMFEST\87
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+5014:00c00000:0447:0001:1:0
+Guide
+p:UPC Direct,f:40
+0015:00c00000:0011:0085:1:0
+\86B\87EATE\86-UHSE\87.TV
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+2015:00c00000:0430:0001:1:0
+CANAL+ HI-TECH.
+p:CSAT,f:40
+0016:00c00000:0001:0085:1:0
+\86HEIMAT\87KANAL
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+0017:00c00000:0002:0085:1:0
+PREMIERE \86KRIMI\87
+p:PREMIERE,C:1833,C:1830,f:40
+2017:00c00000:0430:0001:1:0
+SCI FI
+p:CSAT,f:40
+0018:00c00000:0011:0085:1:0
+CLASSICA
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+001b:00c00000:0001:0085:1:0
+RTL CRIME
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+001c:00c00000:0011:0085:1:0
+JETIX
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+2f1c:00c00000:0441:0001:1:0
+VOX
+p:RTL World,f:40
+001d:00c00000:0001:0085:1:0
+PASSION
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+201d:00c00000:0430:0001:1:0
+CANAL+
+p:CSAT,f:40
+251d:00c00000:0440:0001:1:0
+TF6
+p:CSAT,f:40
+2f1d:00c00000:0441:0001:1:0
+VOX CH
+p:RTL,f:40
+251e:00c00000:0440:0001:1:0
+USHUAIA TV
+p:CSAT,f:40
+191f:00c00000:03fa:0001:1:0
+PLAYIN'Tvi
+p:CSAT,f:40
+1c1f:00c00000:0451:0035:1:0
+EPG
+p:CANALDIGITAAL,f:40
+251f:00c00000:0440:0001:1:0
+EUROSPORT 2
+p:CSAT,f:40
+0020:00c00000:0021:0085:1:0
+\86Sonnen\87klar \86TV\87
+p:PREMIERE,f:40
+0021:00c00000:0007:0085:1:0
+PFH
+p:,C:1810,f:40
+2521:00c00000:0440:0001:1:0
+C CINEMA 16/9
+p:CSAT,f:40
+4e21:00c00000:043a:0001:1:0
+ProSieben Schweiz
+p:ProSiebenSat.1,f:40
+0022:00c00000:0011:0085:1:0
+\86DISNEY\87 CHANNEL
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+4e22:00c00000:043a:0001:1:0
+ProSieben Austria
+p:ProSiebenSat.1,f:40
+2523:00c00000:0440:0001:1:0
+PIWI
+p:CSAT,f:40
+4e23:00c00000:043a:0001:1:0
+Kabel 1 Schweiz
+p:ProSiebenSat.1,f:40
+7023:00c00000:0402:0001:1:0
+Sky News
+p:BT,f:40
+0024:00c00000:0004:0085:1:0
+SCI FI
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+2524:00c00000:0440:0001:1:0
+EXTREME SPORTS
+p:CSAT,f:40
+2724:00c00000:0402:0001:1:0
+DW-TV
+p:Deutsche Telekom AG,f:40
+4e24:00c00000:043a:0001:1:0
+Kabel 1 Austria
+p:ProSiebenSat.1,f:40
+2525:00c00000:0440:0001:1:0
+FRANCE 4
+p:CSAT,f:40
+4e25:00c00000:043a:0001:1:0
+SAT.1 A
+p:ProSiebenSat.1,f:40
+2526:00c00000:0440:0001:1:0
+
+p:CSAT,f:40
+4e26:00c00000:043a:0001:1:0
+SAT.1 CH
+p:ProSiebenSat.1,f:40
+2527:00c00000:0440:0001:1:0
+ENCYCLOPEDIA
+p:CSAT,f:40
+4e27:00c00000:043a:0001:1:0
+PULS 4 Austria
+p:ProSiebenSat.1,f:40
+0028:00c00000:0021:0085:1:0
+\86HSE24\87
+p:BetaDigital,f:40
+7728:00c00000:0416:0001:1:0
+PEOPLE+ARTS
+p:P&A,f:40
+0029:00c00000:0003:0085:1:0
+PREMIERE \86FILMCLASSICS\87
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+6e29:00c00000:0431:0001:1:0
+EinsExtra-alt
+p:ARD,f:40
+7729:00c00000:0416:0001:1:0
+VIAJAR
+p:VJR,f:40
+002a:00c00000:0004:0085:1:0
+\8613 TH\87 STREET
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+6e2a:00c00000:0431:0001:1:0
+EinsFestival-alt
+p:ARD,f:40
+772a:00c00000:0416:0001:1:0
+PAR. COMEDY
+p:NC,f:40
+002b:00c00000:0002:0085:1:0
+\86PREM\87IERE\86 3\87
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+6e2b:00c00000:0431:0001:1:0
+EinsPlus-alt
+p:ARD,f:40
+772b:00c00000:0416:0001:1:0
+CAZA Y PESCA
+p:CAZPES,f:40
+6e2c:00c00000:0431:0001:1:0
+alt (MDR FERNSEHEN)
+p:ARD,f:40
+332d:00c00000:045b:0001:1:0
+TW1
+p:ORF,f:40
+6e2d:00c00000:0431:0001:1:0
+rbb Brandenburg
+p:ARD,f:40
+772d:00c00000:0416:0001:1:0
+LA 2
+p:La2,f:40
+002e:00c00000:0021:0085:1:0
+glück TV
+p:BetaDigital,f:40
+272e:00c00000:0402:0001:1:0
+CNBC Europe
+p:CNBC,f:40
+332e:00c00000:045b:0001:1:0
+GoTV
+p:GoTV,f:40
+6e2e:00c00000:0431:0001:1:0
+rbb Berlin
+p:ARD,f:40
+772e:00c00000:0416:0001:1:0
+CALLE 13
+p:CL13,f:40
+f22e:00c00000:0421:0001:1:0
+RTBF SAT
+p:RTBF,f:40
+002f:00c00000:0021:0085:1:0
+\86DAF\87-AnlegerTV
+p:BetaDigital,f:40
+332f:00c00000:045b:0001:1:0
+ALL FUN TV
+p:-,f:40
+772f:00c00000:0416:0001:1:0
+BLOOMBERG
+p:BL,f:40
+0030:00c00000:0005:0085:1:0
+ERF
+p:BetaDigital,f:40
+2f30:00c00000:0441:0001:1:0
+RTL Shop
+p:RTL World,f:40
+3330:00c00000:045b:0001:1:0
+INNSAT.TV
+p:Innsat,f:40
+7730:00c00000:0416:0001:1:0
+COSMOPOLITAN
+p:COSMO,f:40
+3331:00c00000:045b:0001:1:0
+NASN (P)
+p:PREMIERE,f:40
+7031:00c00000:041b:0001:1:0
+EinsExtra
+p:ARD,f:40
+7731:00c00000:0416:0001:1:0
+R. MADRID TV
+p:Digital+,f:40
+0032:00c00000:0001:0085:1:0
+1-2-3.tv
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+3332:00c00000:045b:0001:1:0
+AUSTRIA 9 TV
+p:AUSTRIA 9 TV,f:40
+7032:00c00000:041b:0001:1:0
+EinsFestival
+p:ARD,f:40
+7732:00c00000:0416:0001:1:0
+MÉTEO
+p:MET,f:40
+0033:00c00000:0021:0085:1:0
+TELE 5
+p:BetaDigital,f:40
+2333:00c00000:0400:0001:1:0
+CANAL ALGERIE
+p:CANALSATELLITE,f:40
+3333:00c00000:045b:0001:1:0
+Visit-X.TV
+p:-,f:40
+7033:00c00000:041b:0001:1:0
+EinsPlus
+p:ARD,f:40
+0034:00c00000:0009:0085:1:0
+\86STAR XL\87 LIVE
+p:PREMIERE,C:1831,C:1830,C:1801,C:1722,C:1702,f:40
+2334:00c00000:0400:0001:1:0
+TV5MONDE
+p:CANALSATELLITE,f:40
+3334:00c00000:045b:0001:1:0
+Spass im TV
+p:-,f:40
+7034:00c00000:041b:0001:1:0
+arte
+p:ARD,f:40
+7734:00c00000:0416:0001:1:0
+VIAJAR
+p:VJR,f:40
+0035:00c00000:0007:0085:1:0
+\86PREM\87IERE\86 A\87ustria
+p:PREMIERE,C:1833,f:40
+2135:00c00000:0442:0001:1:0
+FRANCE 5
+p:CSAT,f:40
+3335:00c00000:045b:0001:1:0
+NASN
+p:arena,f:40
+7035:00c00000:041b:0001:1:0
+Phoenix
+p:ARD,f:40
+7735:00c00000:0416:0001:1:0
+EHS
+p:Digital+,f:40
+0036:00c00000:0007:0085:1:0
+Q TV SHOP
+p:BetaDigital,f:40
+2136:00c00000:0442:0001:1:0
+TV BREIZH
+p:CSAT,f:40
+2336:00c00000:0400:0001:1:0
+Al Masriya
+p:CANALSATELLITE,f:40
+3336:00c00000:045b:0001:1:0
+Bundesliga 9
+p:arena,f:40
+2337:00c00000:0400:0001:1:0
+RAI 1
+p:CANALSATELLITE,f:40
+2138:00c00000:0442:0001:1:0
+PLANETE THALASSA
+p:CSAT,f:40
+3138:00c00000:0459:0001:1:0
+Bahn TV
+p:T-Systems,f:40
+3338:00c00000:045b:0001:1:0
+AKTIV DIREKT TV
+p:-,f:40
+2339:00c00000:0400:0001:1:0
+RTPI
+p:CANALSATELLITE,f:40
+2539:00c00000:0440:0001:1:0
+FRANCE 4
+p:CSAT,f:40
+3139:00c00000:0459:0001:1:0
+K-TV
+p:T-Systems,f:40
+3339:00c00000:045b:0001:1:0
+Kuren und Wellness
+p:-,f:40
+213a:00c00000:0442:0001:1:0
+PLAYBOY TV
+p:CSAT,f:40
+233a:00c00000:0400:0001:1:0
+TV7
+p:CANALSATELLITE,f:40
+2f3a:00c00000:0441:0001:1:0
+n-tv
+p:RTL World,f:40
+333a:00c00000:045b:0001:1:0
+Uschi TV
+p:StarSat,f:40
+6e3a:00c00000:0431:0001:1:0
+ARD-Online-Kanal
+p:ARD,f:40
+233b:00c00000:0400:0001:1:0
+ARTE
+p:CANALSATELLITE,f:40
+333b:00c00000:045b:0001:1:0
+Uschi´s Schwestern
+p:StarSat,f:40
+003c:00c00000:0009:0085:1:0
+\86KINOWELT\87 TV\86 (P)\87
+p:PREMIERE,C:1830,C:1801,C:1702,f:40
+213c:00c00000:0442:0001:1:0
+FRANCE Ô
+p:CSAT,f:40
+313c:00c00000:0459:0001:1:0
+dhd24.tv
+p:Media Broadcast,f:40
+333c:00c00000:045b:0001:1:0
+Liebeskanal
+p:StarSat,f:40
+003d:00c00000:0009:0085:1:0
+TCM (a/P)
+p:arena/Premiere,C:1830,C:1801,C:1702,f:40
+233d:00c00000:0400:0001:1:0
+Al Jazeera
+p:CANALSATELLITE,f:40
+333d:00c00000:045b:0001:1:0
+Weiber TV
+p:StarSat,f:40
+6e3d:00c00000:0431:0001:1:0
+ARD-TEST-1
+p:ARD,f:40
+003e:00c00000:0009:0085:1:0
+AXN (a/P)
+p:arena/Premiere,C:1830,C:1801,C:1702,f:40
+233e:00c00000:0400:0001:1:0
+TVEi
+p:CANALSATELLITE,f:40
+313e:00c00000:0459:0001:1:0
+Lustkanal.TV
+p:Media Broadcast,f:40
+333e:00c00000:045b:0001:1:0
+Liebesrundfunk
+p:StarSat,f:40
+6e3e:00c00000:0431:0001:1:0
+ARD-TEST-2
+p:ARD,f:40
+003f:00c00000:0009:0085:1:0
+\86ROMANCE\87 TV
+p:PREMIERE,C:1830,C:1801,C:1702,f:40
+233f:00c00000:0400:0001:1:0
+ARTE
+p:,f:40
+2f3f:00c00000:0441:0001:1:0
+RTL SHOP
+p:RTL World,f:40
+333f:00c00000:045b:0001:1:0
+Kurven-Reich
+p:StarSat,f:40
+0040:00c00000:0009:0085:1:0
+\86DISNEY P\87LAYHOUSE\86 (P)\87
+p:PREMIERE,C:1830,C:1801,C:1702,f:40
+2340:00c00000:0400:0001:1:0
+TRT International
+p:,f:40
+3340:00c00000:045b:0001:1:0
+Heiße Nummer
+p:StarSat,f:40
+6e40:00c00000:0431:0001:1:0
+NDR FS MV
+p:ARD,f:40
+0041:00c00000:0009:0085:1:0
+\86DISNEY T\87OON\86 (P)\87
+p:PREMIERE,C:1830,C:1801,C:1702,f:40
+1f41:00c00000:042e:0001:1:0
+SEASONS
+p:CSAT,f:40
+6e41:00c00000:0431:0001:1:0
+NDR FS HH
+p:ARD,f:40
+0042:00c00000:0009:0085:1:0
+\86BOOM\87ERANG\86 (a/P)\87
+p:arena/Premiere,C:1830,C:1801,C:1702,f:40
+1f42:00c00000:042e:0001:1:0
+C CINEMA EMOTION
+p:CSAT,f:40
+2742:00c00000:0402:0001:1:0
+BBC World
+p:BBC,f:40
+6e42:00c00000:0431:0001:1:0
+NDR FS NDS
+p:ARD,f:40
+0043:00c00000:0009:0085:1:0
+\86E.CLIPS\87 (P)
+p:PREMIERE,C:1830,C:1801,C:1702,f:40
+1f43:00c00000:042e:0001:1:0
+C CINEMA FRISSON
+p:CSAT,f:40
+2143:00c00000:0442:0001:1:0
+A LA CARTE 12
+p:CSAT,f:40
+6e43:00c00000:0431:0001:1:0
+NDR FS SH
+p:ARD,f:40
+0044:00c00000:0009:0085:1:0
+.
+p:BetaDigital,C:1830,C:1801,C:1702,f:40
+1f44:00c00000:042e:0001:1:0
+EURONEWS
+p:CSAT,f:40
+2144:00c00000:0442:0001:1:0
+OM'TV
+p:CSAT,f:40
+2f44:00c00000:0454:0001:1:0
+QVC Deutschland
+p:QVC,f:40
+3144:00c00000:0459:0001:1:0
+Erotik 24
+p:T-Systems,f:40
+6e44:00c00000:0431:0001:1:0
+MDR Sachsen
+p:ARD,f:40
+0045:00c00000:0009:0085:1:0
+\86s\87port\86d\87igital\86.tv\87
+p:BetaDigital,C:1830,f:40
+1f45:00c00000:042e:0001:1:0
+PARIS PREMIERE
+p:CSAT,f:40
+2145:00c00000:0442:0001:1:0
+OLTV
+p:CSAT,f:40
+6e45:00c00000:0431:0001:1:0
+MDR S-Anhalt
+p:ARD,f:40
+6f45:00c00000:0445:0001:1:0
+Radio Bremen TV-alt
+p:ARD,f:40
+0046:00c00000:0007:0085:1:0
+\86Alpen\87glühen \86TVX\87
+p:BetaDigital,C:1830,C:1801,C:1702,f:40
+1f46:00c00000:042e:0001:1:0
+JIMMY
+p:CSAT,f:40
+2346:00c00000:0400:0001:1:0
+2M Maroc
+p:CANALSATELLITE,f:40
+3146:00c00000:0459:0001:1:0
+rhein main tv
+p:T-Systems,f:40
+6e46:00c00000:0431:0001:1:0
+MDR Thüringen
+p:ARD,f:40
+6f46:00c00000:0445:0001:1:0
+SR Fernsehen
+p:ARD,f:40
+0047:00c00000:0007:0085:1:0
+Service 12
+p:BetaDigital,f:40
+1f47:00c00000:042e:0001:1:0
+MEZZO
+p:CSAT,f:40
+3147:00c00000:0459:0001:1:0
+Deutsche Girls 2
+p:T-Systems,f:40
+6e47:00c00000:0431:0001:1:0
+SWR Fernsehen RP
+p:ARD,f:40
+6f47:00c00000:0445:0001:1:0
+BR-alpha
+p:ARD,f:40
+0048:00c00000:0005:0085:1:0
+.
+p:BetaDigital,f:40
+1f48:00c00000:042e:0001:1:0
+LA CHAINE METEO
+p:CSAT,f:40
+3148:00c00000:0459:0001:1:0
+Gems TV
+p:T-Systems,f:40
+0049:00c00000:0005:0085:1:0
+.
+p:BetaDigital,f:40
+1f49:00c00000:042e:0001:1:0
+SPORT+
+p:CSAT,f:40
+2649:00c00000:0460:0001:1:0
+FR3 CAEN
+p:CSAT,f:40
+004a:00c00000:0005:0085:1:0
+.
+p:BetaDigital,f:40
+1f4a:00c00000:042e:0001:1:0
+I>TELE
+p:CSAT,f:40
+264a:00c00000:0460:0001:1:0
+FR3 NANTES
+p:CSAT,f:40
+314a:00c00000:0459:0001:1:0
+Dreamgirls.TV
+p:T-Systems,f:40
+004b:00c00000:0005:0085:1:0
+3A TV
+p:BetaDigital,f:40
+1f4b:00c00000:042e:0001:1:0
+HISTOIRE
+p:CSAT,f:40
+264b:00c00000:0460:0001:1:0
+FR3 NICE
+p:CSAT,f:40
+314b:00c00000:0459:0001:1:0
+Erotik Sat
+p:T-Systems,f:40
+004c:00c00000:0021:0085:1:0
+\86e\87qui\868\87
+p:BetaDigital,f:40
+1f4c:00c00000:042e:0001:1:0
+MEZZO.
+p:CSAT,f:40
+264c:00c00000:0460:0001:1:0
+FR3 ORLEANS
+p:CSAT,f:40
+274c:00c00000:0402:0001:1:0
+TV5MONDE EUROPE
+p:TV5MONDE,f:40
+314c:00c00000:0459:0001:1:0
+123Damenwahl
+p:T-Systems,f:40
+004d:00c00000:0021:0085:1:0
+.
+p:BetaDigital,f:40
+1c4d:00c00000:0457:0001:1:0
+IP4_slides
+p:SES ASTRA,f:40
+1f4d:00c00000:042e:0001:1:0
+NCMESS
+p:CSAT,f:40
+264d:00c00000:0460:0001:1:0
+FR3 DIJON
+p:CSAT,f:40
+314d:00c00000:0459:0001:1:0
+SexySat
+p:T-Systems,f:40
+4f4d:00c00000:0447:0001:1:0
+\86Gal\87axie \86Sport\87
+p:UPC Direct,f:40
+264e:00c00000:0460:0001:1:0
+FR3 POITIERS
+p:CSAT,f:40
+274e:00c00000:0402:0001:1:0
+Best of shopping
+p:GlobeCast,f:40
+314e:00c00000:0459:0001:1:0
+paradise
+p:T-Systems,f:40
+4f4e:00c00000:0447:0001:1:0
+\86Animal\87 \86Pl\87anet
+p:UPC Direct,f:40
+264f:00c00000:0460:0001:1:0
+FR3 REIMS
+p:CSAT,f:40
+274f:00c00000:0402:0001:1:0
+M6 BOUTIQUE LA CHAINE
+p:Globecast,f:40
+314f:00c00000:0459:0001:1:0
+Date Line
+p:T-Systems,f:40
+4f4f:00c00000:0447:0001:1:0
+\86Disc\87overy CE
+p:UPC Direct,f:40
+2650:00c00000:0460:0001:1:0
+FR3 GRENOBLE
+p:CSAT,f:40
+3150:00c00000:0459:0001:1:0
+Fotohandy
+p:T-Systems,f:40
+4f50:00c00000:0447:0001:1:0
+\86JimJam\87
+p:UPC Direct,f:40
+2651:00c00000:0460:0001:1:0
+FR3 LILLE
+p:CSAT,f:40
+3151:00c00000:0459:0001:1:0
+Mobile Sex
+p:T-Systems,f:40
+4f51:00c00000:0447:0001:1:0
+\86Jetix/Jetix Max\87
+p:UPC Direct,f:40
+2652:00c00000:0460:0001:1:0
+FR3 STRASBOURG
+p:CSAT,f:40
+3152:00c00000:0459:0001:1:0
+jeden Tag x
+p:T-Systems,f:40
+4f52:00c00000:0447:0001:1:0
+\86Nat\87 \86Geo\87
+p:UPC Direct,f:40
+2653:00c00000:0460:0001:1:0
+FR3 MONTPELLIER
+p:CSAT,f:40
+3153:00c00000:0459:0001:1:0
+Seitensprung.TV
+p:T-Systems,f:40
+4f53:00c00000:0447:0001:1:0
+\86HBO Comedy\87
+p:UPC Direct,f:40
+2654:00c00000:0460:0001:1:0
+FR3 VIA STELLA
+p:CSAT,f:40
+3154:00c00000:0459:0001:1:0
+Rundum Sex TV
+p:T-Systems,f:40
+4f54:00c00000:0447:0001:1:0
+\86Hall\87mark
+p:UPC Direct,f:40
+1f55:00c00000:042e:0001:1:0
+I>TELE
+p:CSAT,f:40
+3155:00c00000:0459:0001:1:0
+Traumgirls.TV
+p:T-Systems,f:40
+4f55:00c00000:0447:0001:1:0
+\86Hustler TV\87
+p:UPC Direct,f:40
+3156:00c00000:0459:0001:1:0
+Das Erotische TV
+p:T-Systems,f:40
+4f56:00c00000:0447:0001:1:0
+\86Zone\87Reality\87
+p:UPC Direct,f:40
+4f57:00c00000:0447:0001:1:0
+\86Ex\87treme \86Sports\87
+p:UPC Direct,f:40
+2f58:00c00000:0454:0001:1:0
+LibertyTV FR
+p:LibertyTV.com,f:40
+3158:00c00000:0459:0001:1:0
+Peep TV
+p:T-Systems,f:40
+2f59:00c00000:0454:0001:1:0
+Medi1SAT
+p:PRVDR,f:40
+3159:00c00000:0459:0001:1:0
+Manneskraft TV NEU
+p:Media Broadcast,f:40
+2f5a:00c00000:0454:0001:1:0
+[tru:] young tv
+p:Bibel TV,f:40
+315a:00c00000:0459:0001:1:0
+Supreme Master TV
+p:T-Systems,f:40
+2f5b:00c00000:0454:0001:1:0
+eUrotic NEU
+p:Neterra,f:40
+315b:00c00000:0459:0001:1:0
+phab 16
+p:T-Systems,f:40
+4f5b:00c00000:044b:0001:1:0
+\86CT1\87
+p:UPC Direct,f:40
+1b5c:00c00000:03fc:0001:1:0
+DEMAIN TV
+p:GlobeCast,f:40
+315c:00c00000:0459:0001:1:0
+dhd24 plus
+p:Media Broadcast,f:40
+445c:00c00000:0453:0001:1:0
+SAT.1
+p:ProSiebenSat.1,f:40
+4f5c:00c00000:044b:0001:1:0
+\86CT24\87
+p:UPC Direct,f:40
+1b5d:00c00000:03fc:0001:1:0
+NRJ Paris
+p:GCE,f:40
+315d:00c00000:0459:0001:1:0
+Top Girl Sex TV NEU
+p:Media Broadcast,f:40
+445d:00c00000:0453:0001:1:0
+ProSieben
+p:ProSiebenSat.1,f:40
+4f5d:00c00000:044b:0001:1:0
+\86NOVA Cinema\87
+p:UPC Direct,f:40
+315e:00c00000:0459:0001:1:0
+Gratis Hot TV NEU
+p:Media Broadcast,f:40
+335e:00c00000:045b:0001:1:0
+Telesünde
+p:StarSat,f:40
+445e:00c00000:0453:0001:1:0
+kabel eins
+p:ProSiebenSat.1,f:40
+4f5e:00c00000:044b:0001:1:0
+\86CT2\87
+p:UPC Direct,f:40
+1b5f:00c00000:03fc:0001:1:0
+POPULAR TV
+p:OVERON,f:40
+335f:00c00000:045b:0001:1:0
+Piep Show
+p:StarSat,f:40
+445f:00c00000:0453:0001:1:0
+N24
+p:ProSiebenSat.1,f:40
+4f5f:00c00000:044b:0001:1:0
+\86TV Markiza\86
+p:UPC Direct,f:40
+1b60:00c00000:03fc:0001:1:0
+CUBAVISION
+p:GCE,f:40
+3360:00c00000:045b:0001:1:0
+Flirtrepublik
+p:StarSat,f:40
+4460:00c00000:0453:0001:1:0
+9Live
+p:ProSiebenSat.1,f:40
+4f60:00c00000:044b:0001:1:0
+\86TV JOJ\86
+p:UPC Direct,f:40
+1b61:00c00000:03fc:0001:1:0
+BFM TV
+p:GLOBECAST,f:40
+2261:00c00000:0438:0001:1:0
+FRANCE 2
+p:CSAT,f:40
+4461:00c00000:0453:0001:1:0
+Sat.1 Comedy
+p:ProSiebenSat.1,C:1830,C:1801,C:1702,f:40
+4f61:00c00000:044b:0001:1:0
+\86TV Nova\87
+p:UPC Direct,f:40
+1b62:00c00000:03fc:0001:1:0
+REDERECORD
+p:GCE,f:40
+1c62:00c00000:0457:0001:1:0
+STB Comag
+p:SES ASTRA,f:40
+2262:00c00000:0438:0001:1:0
+FRANCE 3
+p:CSAT,f:40
+4462:00c00000:0453:0001:1:0
+kabel eins classics
+p:ProSiebenSat.1,C:1830,C:1801,C:1702,f:40
+4f62:00c00000:044b:0001:1:0
+\86XXX\87
+p:UPC Direct,f:40
+1b63:00c00000:03fc:0001:1:0
+ARIRANG TV
+p:GlobeCast,f:40
+4f63:00c00000:044b:0001:1:0
+\86Prima TV\87
+p:UPC Direct,f:40
+1b64:00c00000:03fc:0001:1:0
+AL JAZEERA ENG
+p:GCE,f:40
+2264:00c00000:0438:0001:1:0
+A LA CARTE 11
+p:CSAT,f:40
+4f64:00c00000:044b:0001:1:0
+DOQ
+p:UPC Direct,f:40
+7564:00c00000:0412:0001:1:0
+BARÇA TV
+p:BARNA,f:40
+1b65:00c00000:03fc:0001:1:0
+EXTREMADURA TV
+p:OVERON,f:40
+4f65:00c00000:044b:0001:1:0
+\86Filmmuzeum\86
+p:UPC Direct,f:40
+7565:00c00000:0412:0001:1:0
+TAQUILLA 5
+p:TQ5,f:40
+4f66:00c00000:044b:0001:1:0
+\86CT4 Sport\87
+p:UPC Direct,f:40
+6d66:00c00000:0437:0001:1:0
+ZDF
+p:ZDFvision,f:40
+7566:00c00000:0412:0001:1:0
+TAQUILLA 6
+p:TQ6,f:40
+2267:00c00000:0438:0001:1:0
+TRACE TV
+p:CSAT,f:40
+4f67:00c00000:04ff:0001:1:0
+\86Echo TV\87
+p:UPC Direct,f:40
+6d67:00c00000:0437:0001:1:0
+3sat
+p:ZDFvision,f:40
+7567:00c00000:0412:0001:1:0
+TAQUILLA 7
+p:TQ7,f:40
+2268:00c00000:0438:0001:1:0
+TELE MELODY
+p:CSAT,f:40
+4f68:00c00000:04ff:0001:1:0
+\86HBO2\87
+p:UPC Direct,f:40
+6d68:00c00000:0437:0001:1:0
+KiKa
+p:ZDFvision,f:40
+6f68:00c00000:042c:0001:1:0
+Spare 2
+p:TBS,f:40
+7468:00c00000:03f0:0001:1:0
+CANAL ODISEA
+p:Digital+,f:40
+7568:00c00000:0412:0001:1:0
+TAQUILLA X
+p:TQ10,f:40
+2069:00c00000:0430:0001:1:0
+DOWNLOAD TNTSAT STRONG
+p:IMEDIA,f:40
+2269:00c00000:0438:0001:1:0
+CINE+
+p:CSAT,f:40
+4f69:00c00000:04ff:0001:1:0
+\86HBO\87
+p:UPC Direct,f:40
+6f69:00c00000:042c:0001:1:0
+Cartoon Network
+p:TBS,f:40
+7469:00c00000:03f0:0001:1:0
+JETIX
+p:FK,f:40
+7569:00c00000:0412:0001:1:0
+TAQUILLA XX
+p:TQX,f:40
+226a:00c00000:0438:0001:1:0
+CINE+
+p:CSAT,f:40
+4f6a:00c00000:04ff:0001:1:0
+\86HBO\87
+p:UPC Direct,f:40
+6f6a:00c00000:042c:0001:1:0
+CNN Int.
+p:CNN,f:40
+746a:00c00000:03f0:0001:1:0
+DISNEY CH. +1
+p:DCH1,f:40
+756a:00c00000:0412:0001:1:0
+TAQUILLA XX
+p:TQXX,f:40
+1b6b:00c00000:03fc:0001:1:0
+BFM TV
+p:OVERON,f:40
+226b:00c00000:0438:0001:1:0
+A LA CARTE 10
+p:CSAT,f:40
+4f6b:00c00000:04ff:0001:1:0
+\86Duna TV\87
+p:UPC Direct,f:40
+6d6b:00c00000:0437:0001:1:0
+ZDFinfokanal
+p:ZDFvision,f:40
+746b:00c00000:03f0:0001:1:0
+PLAYHOUSE
+p:PLAYDC,f:40
+756b:00c00000:0412:0001:1:0
+C+ EVENTOS
+p:CPD3,f:40
+226c:00c00000:0438:0001:1:0
+A LA CARTE
+p:CSAT,f:40
+4f6c:00c00000:04ff:0001:1:0
+\86TV Paprika\87
+p:UPC Direct,f:40
+746c:00c00000:03f0:0001:1:0
+C+ ACCIÓN
+p:CPC1,f:40
+756c:00c00000:0412:0001:1:0
+TAQUILLA 9
+p:TQ9,f:40
+226d:00c00000:0438:0001:1:0
+ESPN CLASSIC
+p:CSAT,f:40
+4f6d:00c00000:04ff:0001:1:0
+\86Magyar ATV\87
+p:UPC Direct,f:40
+6f6d:00c00000:042c:0001:1:0
+TCM
+p:TBS,f:40
+746d:00c00000:03f0:0001:1:0
+C+ COMEDIA
+p:CPC2,f:40
+4f6e:00c00000:04ff:0001:1:0
+\86Cool\87
+p:UPC Direct,f:40
+6d6e:00c00000:0437:0001:1:0
+ZDFdokukanal
+p:ZDFvision,f:40
+6f6e:00c00000:042c:0001:1:0
+Spare 28526
+p:Arqiva,f:40
+746e:00c00000:03f0:0001:1:0
+C+ DCINE
+p:CPC3,f:40
+756e:00c00000:0412:0001:1:0
+C+ EVENTOS
+p:CPD3,f:40
+4f6f:00c00000:04ff:0001:1:0
+\86TV Deko\87
+p:UPC Direct,f:40
+6f6f:00c00000:042c:0001:1:0
+Boomerang
+p:TBS,f:40
+746f:00c00000:03f0:0001:1:0
+TOON DISNEY
+p:TOONDC,f:40
+756f:00c00000:0412:0001:1:0
+TAQUILLA 8
+p:TQ8,f:40
+2270:00c00000:0438:0001:1:0
+MOTORS TV
+p:CSAT,f:40
+2b70:00c00000:03f3:0001:1:0
+arte HD
+p:ZDFvision,f:40
+4f70:00c00000:04ff:0001:1:0
+\86Sport 1\87
+p:UPC Direct,f:40
+6d70:00c00000:0437:0001:1:0
+ZDFtheaterkanal
+p:ZDFvision,f:40
+7470:00c00000:03f0:0001:1:0
+OP. TRIUNFO
+p:DIGITAL+,f:40
+7570:00c00000:0412:0001:1:0
+
+p:Digital+,f:40
+4f71:00c00000:04ff:0001:1:0
+\86m2\87
+p:UPC Direct,f:40
+7471:00c00000:03f0:0001:1:0
+SONY TV
+p:DIGITAL+,f:40
+4f72:00c00000:04ff:0001:1:0
+\86Minimax / Animax\87
+p:UPC Direct,f:40
+7472:00c00000:03f0:0001:1:0
+C+ ACCIÓN
+p:CPC1,f:40
+4f73:00c00000:04ff:0001:1:0
+\86Sport 2\86
+p:UPC Direct,f:40
+7473:00c00000:03f0:0001:1:0
+C+ COMEDIA
+p:CPC2,f:40
+2774:00c00000:0444:0001:1:0
+\86DELUXE\87 MUSIC
+p:BetaDigital,f:40
+4f74:00c00000:04ff:0001:1:0
+\86Film+\86
+p:UPC Direct,f:40
+7474:00c00000:03f0:0001:1:0
+C+ DCINE
+p:CPC3,f:40
+2275:00c00000:0438:0001:1:0
+FRANCE 2
+p:CSAT,f:40
+2775:00c00000:0444:0001:1:0
+DMAX
+p:BetaDigital,f:40
+4f75:00c00000:0427:0001:1:0
+\86Cartoon Network/TCM\87
+p:UPC Direct,f:40
+7475:00c00000:03f0:0001:1:0
+INTERECON TV
+p:DIGITAL,f:40
+2276:00c00000:0438:0001:1:0
+FRANCE 3
+p:CSAT,f:40
+2776:00c00000:0444:0001:1:0
+! Primetime
+p:BetaDigital,f:40
+4f76:00c00000:0427:0001:1:0
+\86Viasat 3\87
+p:UPC Direct,f:40
+6f76:00c00000:0457:0001:1:0
+WDR Aachen
+p:ARD,f:40
+2777:00c00000:0444:0001:1:0
+\86ONTV\87 Regional
+p:BetaDigital,f:40
+4f77:00c00000:0427:0001:1:0
+\86Boomerang\87
+p:UPC Direct,f:40
+6f77:00c00000:0457:0001:1:0
+WDR Wuppertal
+p:ARD,f:40
+2778:00c00000:0444:0001:1:0
+\86F\87ranken \86SAT\87
+p:BetaDigital,f:40
+4f78:00c00000:0427:0001:1:0
+\86Viasat Explorer\87
+p:UPC Direct,f:40
+6f78:00c00000:0457:0001:1:0
+WDR Bonn
+p:ARD,f:40
+2779:00c00000:0444:0001:1:0
+LokalSAT
+p:BetaDigital,f:40
+4f79:00c00000:0427:0001:1:0
+\86Viasat History\87
+p:UPC Direct,f:40
+6f79:00c00000:0457:0001:1:0
+WDR Duisburg
+p:ARD,f:40
+277a:00c00000:0444:0001:1:0
+\86mü\87nchen.\86tv/RFO\87
+p:BetaDigital,f:40
+4f7a:00c00000:0427:0001:1:0
+\86STV1\87
+p:UPC Direct,f:40
+277b:00c00000:0444:0001:1:0
+DrDish Television
+p:BetaDigital,f:40
+4f7b:00c00000:0427:0001:1:0
+\86TA3\87
+p:UPC Direct,f:40
+277c:00c00000:0444:0001:1:0
+TVM/WWTV
+p:BetaDigital,f:40
+427c:00c00000:0446:0001:1:0
+AB MOTEURS
+p:ABSAT,C:0500,C:0100,f:40
+4f7c:00c00000:0427:0001:1:0
+\86Travel\87
+p:UPC Direct,f:40
+277d:00c00000:0444:0001:1:0
+tirol tv
+p:BetaDigital,f:40
+427d:00c00000:0446:0001:1:0
+AB1
+p:ABSAT,C:0500,C:0100,f:40
+4f7d:00c00000:0427:0001:1:0
+\86MGM\87
+p:UPC Direct,f:40
+277e:00c00000:0444:0001:1:0
+.
+p:BetaDigital,C:1830,C:1801,C:1702,f:40
+427e:00c00000:0446:0001:1:0
+ANIMAUX
+p:ABSAT,C:0100,f:40
+4f7e:00c00000:0427:0001:1:0
+\86bebe tv\87
+p:UPC Direct,f:40
+277f:00c00000:0444:0001:1:0
+entavio Home
+p:BetaDigital,f:40
+427f:00c00000:0446:0001:1:0
+ENCYCLOPEDIA
+p:ABSAT,C:0100,f:40
+2f80:00c00000:0454:0001:1:0
+Bloomberg TV Germany
+p:Bloomberg,f:40
+4280:00c00000:0446:0001:1:0
+ XXL
+p:ABSAT,C:0500,C:0100,f:40
+4f80:00c00000:0427:0001:1:0
+\86AXN\87
+p:UPC Direct,f:40
+7080:00c00000:0443:0001:1:0
+RTL Austria
+p:RTL,f:40
+0381:00c00000:0021:0085:1:0
+\86SpiritON\87.TV
+p:BetaDigital,f:40
+2581:00c00000:0458:0001:1:0
+RTL9
+p:CSAT,f:40
+4281:00c00000:0446:0001:1:0
+ESCALES
+p:ABSAT,C:0500,C:0100,f:40
+4f81:00c00000:0427:0001:1:0
+\86Blue Hustler\87
+p:UPC Direct,f:40
+0382:00c00000:0021:0085:1:0
+XXHOME
+p:BetaDigital,f:40
+1782:00c00000:0457:0001:1:0
+TechniTipp-TV
+p:TechniSat,f:40
+2582:00c00000:0458:0001:1:0
+AB1
+p:CSAT,f:40
+4282:00c00000:0446:0001:1:0
+toute L'HISTOIRE
+p:ABSAT,C:0100,f:40
+4f82:00c00000:0407:0001:1:0
+\86HirTV\87
+p:UPC Direct,f:40
+0383:00c00000:0021:0085:1:0
+meinTVshop
+p:BetaDigital,f:40
+2583:00c00000:0458:0001:1:0
+AB MOTEURS
+p:CSAT,f:40
+2783:00c00000:0444:0001:1:0
+Top Girl Sex TV
+p:BetaDigital,f:40
+4283:00c00000:0446:0001:1:0
+LCP
+p:ABSAT,f:40
+4f83:00c00000:0407:0001:1:0
+\86M1 \87
+p:UPC Direct,f:40
+0384:00c00000:0021:0085:1:0
+DSF
+p:BetaDigital,f:40
+2584:00c00000:0458:0001:1:0
+CINE FX
+p:CSAT,f:40
+2784:00c00000:0444:0001:1:0
+Hot Girls TV
+p:BetaDigital,f:40
+4284:00c00000:0446:0001:1:0
+NT1
+p:ABSAT,f:40
+4f84:00c00000:0407:0001:1:0
+\86MTV Hungary\87
+p:UPC Direct,f:40
+2585:00c00000:0458:0001:1:0
+MANGAS
+p:CSAT,f:40
+2785:00c00000:0444:0001:1:0
+Zack Erotik TV
+p:BetaDigital,f:40
+4f85:00c00000:0407:0001:1:0
+\86Cinemax\87
+p:UPC Direct,f:40
+7085:00c00000:0443:0001:1:0
+VOX Austria
+p:RTL,f:40
+2586:00c00000:0458:0001:1:0
+XXL
+p:CSAT,f:40
+2786:00c00000:0444:0001:1:0
+Blitzkontakt.TV
+p:BetaDigital,f:40
+4286:00c00000:0446:0001:1:0
+ACTION
+p:ABSAT,C:0100,f:40
+4f86:00c00000:0407:0001:1:0
+\86TV Budapest\87
+p:UPC Direct,f:40
+2587:00c00000:0458:0001:1:0
+ANIMAUX
+p:CSAT,f:40
+2787:00c00000:0444:0001:1:0
+.6live
+p:BetaDigital,f:40
+4287:00c00000:0446:0001:1:0
+MANGAS
+p:ABSAT,C:0100,f:40
+4f87:00c00000:0407:0001:1:0
+\86RTL Klub\87
+p:UPC Direct,f:40
+2588:00c00000:0458:0001:1:0
+ESCALES
+p:CSAT,f:40
+2788:00c00000:0444:0001:1:0
+Amore TV
+p:BetaDigital,f:40
+4f88:00c00000:0407:0001:1:0
+\86Spektrum Int \87
+p:UPC Direct,f:40
+7788:00c00000:0424:0001:1:0
+40 LATINO
+p:40LAT,f:40
+2589:00c00000:0458:0001:1:0
+ACTION
+p:CSAT,f:40
+2789:00c00000:0444:0001:1:0
+Herzschlag69
+p:BetaDigital,f:40
+4289:00c00000:0446:0001:1:0
+CINE POLAR
+p:ABSAT,C:0100,f:40
+4f89:00c00000:0407:0001:1:0
+\86Sport Klub\87
+p:UPC Direct,f:40
+7789:00c00000:0424:0001:1:0
+GOLF+
+p:GOLF+,f:40
+258a:00c00000:0458:0001:1:0
+TOUTE L'HISTOIRE
+p:CSAT,f:40
+278a:00c00000:0444:0001:1:0
+tele6.tv
+p:BetaDigital,f:40
+428a:00c00000:0446:0001:1:0
+CINE FX
+p:ABSAT,C:0100,f:40
+4f8a:00c00000:0407:0001:1:0
+\86Film+ \87
+p:UPC Direct,f:40
+708a:00c00000:0443:0001:1:0
+RTL2 Austria
+p:RTL,f:40
+778a:00c00000:0424:0001:1:0
+CANAL+...30
+p:CP30,f:40
+278b:00c00000:0444:0001:1:0
+maennerwelt.tv
+p:BetaDigital,f:40
+428b:00c00000:0446:0001:1:0
+RTL9
+p:ABsat,C:0100,f:40
+4f8b:00c00000:0407:0001:1:0
+\86TV2 \87
+p:UPC Direct,f:40
+778b:00c00000:0424:0001:1:0
+PLAYBOY TV
+p:Playboy TV,f:40
+138c:00c00000:0455:0035:1:0
+NET5
+p:CANALDIGITAAL,f:40
+278c:00c00000:0444:0001:1:0
+Gebrauchtwagen TV
+p:BetaDigital,f:40
+4f8c:00c00000:0407:0001:1:0
+\86Sport 1 CZE \87
+p:UPC Direct,f:40
+778c:00c00000:0424:0001:1:0
+40 LATINO
+p:40LAT,f:40
+138d:00c00000:0455:0035:1:0
+SBS6
+p:CANALDIGITAAL,f:40
+238d:00c00000:044a:0001:1:0
+GUIDE TV
+p:CSAT,f:40
+278d:00c00000:0444:0001:1:0
+Traumkontakt.tv
+p:BetaDigital,f:40
+4f8d:00c00000:0407:0001:1:0
+\86Viva Hungary\87
+p:UPC Direct,f:40
+778d:00c00000:0424:0001:1:0
+NAT GEOGRAPH
+p:NATGEO,f:40
+238e:00c00000:044a:0001:1:0
+CANAL+ HI-TECH HD
+p:IMEDIA,f:40
+278e:00c00000:0444:0001:1:0
+Po6
+p:BetaDigital,f:40
+4f8e:00c00000:044b:0001:1:0
+\86Eurosport 2\87
+p:UPC Direct,f:40
+768e:00c00000:041e:0001:1:0
+TAQUILLA 1
+p:TQ1,f:40
+778e:00c00000:0424:0001:1:0
+C+ FÚTBOL
+p:CPD1,f:40
+218f:00c00000:0442:0001:1:0
+FRANCE 5
+p:CSAT,f:40
+238f:00c00000:044a:0001:1:0
+NATIONAL GEO HD
+p:CSAT,f:40
+278f:00c00000:0444:0001:1:0
+2255live
+p:BetaDigital,f:40
+708f:00c00000:0443:0001:1:0
+Super RTL A
+p:RTL,f:40
+768f:00c00000:041e:0001:1:0
+TAQUILLA 2
+p:TQ2,f:40
+778f:00c00000:0424:0001:1:0
+C+ DEPORTES
+p:CPD2,f:40
+2390:00c00000:044a:0001:1:0
+MON CSAT
+p:CSAT,f:40
+2790:00c00000:0444:0001:1:0
+.
+p:BetaDigital,f:40
+4290:00c00000:0446:0001:1:0
+NT1
+p:ABSAT,f:40
+7690:00c00000:041e:0001:1:0
+TAQUILLA 3
+p:TQ3,f:40
+2791:00c00000:0444:0001:1:0
+AllesfürsHandy
+p:BetaDigital,f:40
+3391:00c00000:044e:0001:1:0
+History Channel
+p:arena,f:40
+4291:00c00000:0446:0001:1:0
+LCP
+p:ABSAT,f:40
+7691:00c00000:041e:0001:1:0
+TAQUILLA 4
+p:TQ4,f:40
+0292:00c00000:0005:0085:1:0
+\86Daystar Television\87 Network
+p:BetaDigital,f:40
+2792:00c00000:0444:0001:1:0
+A1 Teleshop
+p:BetaDigital,f:40
+3392:00c00000:044e:0001:1:0
+National Geographic Channel
+p:arena,f:40
+6e92:00c00000:04b1:0001:1:0
+WDR Bielefeld
+p:ARD,f:40
+7792:00c00000:0424:0001:1:0
+
+p:DIGITAL+,f:40
+0293:00c00000:0005:0085:1:0
+tv.gusto
+p:BetaDigital,f:40
+1393:00c00000:0455:0035:1:0
+Hallmark
+p:CANALDIGITAAL,f:40
+2393:00c00000:044a:0001:1:0
+
+p:CSAT,f:40
+2793:00c00000:0444:0001:1:0
+.
+p:BetaDigital,f:40
+3393:00c00000:044e:0001:1:0
+ANIMAX (a/P)
+p:arena/Premiere,f:40
+6e93:00c00000:04b1:0001:1:0
+WDR Dortmund
+p:ARD,f:40
+7793:00c00000:0424:0001:1:0
+FOX NEWS
+p:FOXNWS,f:40
+2394:00c00000:044a:0001:1:0
+
+p:CSAT,f:40
+2f94:00c00000:0454:0001:1:0
+Chamber TV
+p:Chambre des Députées,f:40
+3394:00c00000:044e:0001:1:0
+Cartoon Network (a/P)
+p:arena/Premiere,f:40
+6e94:00c00000:04b1:0001:1:0
+WDR Düsseldorf
+p:ARD,f:40
+7594:00c00000:0422:0001:1:0
+MÚSICA DIGITAL
+p:DIGITAL+,f:40
+7694:00c00000:041e:0001:1:0
+ANIMAX
+p:DIGITAL+,f:40
+0295:00c00000:0021:0085:1:0
+AstroTV
+p:BetaDigital,f:40
+2395:00c00000:044a:0001:1:0
+ADIBOU TV
+p:CSAT,f:40
+3395:00c00000:044e:0001:1:0
+EuroSport 2 (a/P)
+p:arena/Premiere,f:40
+6e95:00c00000:04b1:0001:1:0
+WDR Essen
+p:ARD,f:40
+7695:00c00000:041e:0001:1:0
+TAQUILLA XY
+p:TXY,f:40
+0296:00c00000:0005:0085:1:0
+1-2-3.tv
+p:BetaDigital,f:40
+2396:00c00000:044a:0001:1:0
+ESPACE CLIENT
+p:CSAT,f:40
+3396:00c00000:044e:0001:1:0
+Kinowelt
+p:arena,f:40
+6e96:00c00000:04b1:0001:1:0
+WDR Münster
+p:ARD,f:40
+7596:00c00000:0422:0001:1:0
+RADIOS
+p:DIGITAL+,f:40
+7696:00c00000:041e:0001:1:0
+CARTOON NET.
+p:CTN,f:40
+0297:00c00000:0005:0085:1:0
+Deutsches Gesundheitsfernsehen
+p:BetaDigital,f:40
+1397:00c00000:0455:0035:1:0
+TMF
+p:CANALDIGITAAL,f:40
+3397:00c00000:044e:0001:1:0
+RTL Living
+p:arena,f:40
+6e97:00c00000:04b1:0001:1:0
+WDR Siegen
+p:ARD,f:40
+0298:00c00000:0004:0085:1:0
+\86BIG B\87ROTHER
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+0f98:00c00000:0454:0001:1:0
+LUXE.TV SD
+p:DVL.TV,f:40
+3398:00c00000:044e:0001:1:0
+Biography Channel
+p:arena,f:40
+2199:00c00000:0448:0001:1:0
+
+p:CSAT,f:40
+2399:00c00000:044a:0001:1:0
+TF1 HD
+p:CSAT,f:40
+3399:00c00000:044e:0001:1:0
+FOX
+p:arena,f:40
+7699:00c00000:041e:0001:1:0
+BOOMERANG
+p:BOOM,f:40
+0f9a:00c00000:0454:0001:1:0
+RTL Tele Letzebuerg
+p:,f:40
+219a:00c00000:0448:0001:1:0
+ONZEO
+p:CSAT,f:40
+239a:00c00000:044a:0001:1:0
+M6 HD
+p:CSAT,f:40
+769a:00c00000:041e:0001:1:0
+TAQUILLA 10
+p:TQ10,f:40
+0f9b:00c00000:0454:0001:1:0
+!Kanal Telemedial
+p:SES ASTRA,f:40
+219b:00c00000:0448:0001:1:0
+MOSAIQUE
+p:CSAT,f:40
+239b:00c00000:044a:0001:1:0
+CINE PREMIER HD
+p:CSAT,f:40
+339b:00c00000:044e:0001:1:0
+Bundesliga HOME
+p:arena,f:40
+769b:00c00000:041e:0001:1:0
+SAN FERMÍN
+p:DIGITAL+,f:40
+139c:00c00000:0455:0035:1:0
+Veronica/JETIX
+p:CANALDIGITAAL,f:40
+239c:00c00000:044a:0001:1:0
+13EME RUE HD
+p:CSAT,f:40
+339c:00c00000:044e:0001:1:0
+Bundesliga INFO
+p:arena,f:40
+779c:00c00000:0424:0001:1:0
+C+ FÚTBOL
+p:CPD1,f:40
+0f9d:00c00000:0454:0001:1:0
+Astra Vision
+p:SES ASTRA,f:40
+339d:00c00000:044e:0001:1:0
+Bundesliga 1
+p:arena,f:40
+779d:00c00000:0424:0001:1:0
+C+ DEPORTES
+p:CPD2,f:40
+339e:00c00000:044e:0001:1:0
+Bundesliga 2
+p:arena,f:40
+209f:00c00000:0432:0001:1:0
+C CINEMA CULTE
+p:CSAT,f:40
+219f:00c00000:0448:0001:1:0
+SAILING CHANNEL
+p:CSAT,f:40
+339f:00c00000:044e:0001:1:0
+Bundesliga 3
+p:arena,f:40
+20a0:00c00000:0432:0001:1:0
+MCM
+p:CSAT,f:40
+21a0:00c00000:0448:0001:1:0
+MOSAIQUE
+p:CSAT,f:40
+23a0:00c00000:044a:0001:1:0
+CE SOIR
+p:CSAT,f:40
+33a0:00c00000:044e:0001:1:0
+Bundesliga 4
+p:arena,f:40
+13a1:00c00000:0455:0035:1:0
+BVN
+p:CANALDIGITAAL,f:40
+21a1:00c00000:0448:0001:1:0
+MMD
+p:CSAT,f:40
+33a1:00c00000:044e:0001:1:0
+Bundesliga 7
+p:arena,f:40
+20a2:00c00000:0432:0001:1:0
+MCM POP
+p:CSAT,f:40
+23a2:00c00000:044a:0001:1:0
+
+p:CSAT,f:40
+33a2:00c00000:044e:0001:1:0
+Bundesliga 8
+p:arena,f:40
+20a3:00c00000:0432:0001:1:0
+CHEZ VOUS TV
+p:CSAT,f:40
+21a3:00c00000:0448:0001:1:0
+CASH TV
+p:CSAT,f:40
+13a4:00c00000:0455:0035:1:0
+Film1.3
+p:CANALDIGITAAL,f:40
+23a4:00c00000:044a:0001:1:0
+
+p:CSAT,f:40
+0fa5:00c00000:0451:0035:1:0
+Film1.1
+p:CANALDIGITAAL,f:40
+13a5:00c00000:0455:0035:1:0
+BiB
+p:CANALDIGITAAL,f:40
+21a5:00c00000:0448:0001:1:0
+PRIVATE SPICE
+p:CSAT,f:40
+6ea5:00c00000:04b1:0001:1:0
+NDR FS HH+
+p:ARD,f:40
+0fa6:00c00000:0451:0035:1:0
+Sport1
+p:CANALDIGITAAL,f:40
+13a6:00c00000:0455:0035:1:0
+Tele2 / Het Gesprek
+p:CANALDIGITAAL,f:40
+20a6:00c00000:0432:0001:1:0
+VIRGIN 17
+p:CSAT,f:40
+23a6:00c00000:044a:0001:1:0
+
+p:CSAT,f:40
+27a6:00c00000:0444:0001:1:0
+Liebesglück.TV
+p:BetaDigital,f:40
+6ea6:00c00000:04b1:0001:1:0
+NDR FS MV+
+p:ARD,f:40
+0fa7:00c00000:0451:0035:1:0
+Film1.2
+p:CANALDIGITAAL,f:40
+20a7:00c00000:0432:0001:1:0
+FOXLIFE
+p:CSAT,f:40
+21a7:00c00000:0448:0001:1:0
+
+p:CSAT,f:40
+27a7:00c00000:0444:0001:1:0
+Partnersuche.TV
+p:BetaDigital,f:40
+6ea7:00c00000:04b1:0001:1:0
+NDR FS SH+
+p:ARD,f:40
+00a8:00c00000:0001:0085:1:0
+HIT24
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+20a8:00c00000:0432:0001:1:0
+TEST CDN 8
+p:CSAT,f:40
+21a8:00c00000:0448:0001:1:0
+CDN12
+p:CSAT,f:40
+27a8:00c00000:0444:0001:1:0
+ReiseSchnäppchen.TV
+p:BetaDigital,f:40
+6ea8:00c00000:04b1:0001:1:0
+alt (MDR SACHSEN+)
+p:ARD,f:40
+20a9:00c00000:0432:0001:1:0
+
+p:CSAT,f:40
+21a9:00c00000:0448:0001:1:0
+
+p:CSAT,f:40
+27a9:00c00000:0444:0001:1:0
+Venusclub.TV
+p:BetaDigital,f:40
+6ea9:00c00000:04b1:0001:1:0
+alt (MDR S-ANHALT+)
+p:ARD,f:40
+75a9:00c00000:0422:0001:1:0
+GUÍA DIGITAL+
+p:DIGITAL+,f:40
+21aa:00c00000:0448:0001:1:0
+DISNEY MAGIC HD
+p:CSAT,f:40
+27aa:00c00000:0444:0001:1:0
+Ringtone TV
+p:BetaDigital,f:40
+6eaa:00c00000:04b1:0001:1:0
+alt (MDR THÜRINGEN+)
+p:ARD,f:40
+75aa:00c00000:0422:0001:1:0
+
+p:Digital +,f:40
+0fab:00c00000:0451:0035:1:0
+NED1
+p:CANALDIGITAAL,f:40
+20ab:00c00000:0432:0001:1:0
+
+p:CSAT,f:40
+27ab:00c00000:0444:0001:1:0
+.Club1.TV
+p:BetaDigital,f:40
+75ab:00c00000:0422:0001:1:0
+Cambio Tarj.
+p:DIGITAL+,f:40
+0fac:00c00000:0451:0035:1:0
+NED2
+p:CANALDIGITAAL,f:40
+27ac:00c00000:0444:0001:1:0
+AbsolutSexy.TV
+p:BetaDigital,f:40
+75ac:00c00000:0422:0001:1:0
+RAD. LATINAS
+p:Digital+,f:40
+0fad:00c00000:0451:0035:1:0
+NED3
+p:CANALDIGITAAL,f:40
+20ad:00c00000:0432:0001:1:0
+MCM TOP
+p:CSAT,f:40
+27ad:00c00000:0444:0001:1:0
+ACHTUNG Singles.TV
+p:BetaDigital,f:40
+75ad:00c00000:0422:0001:1:0
+COMPRA SMS
+p:DIGITAL+,f:40
+0fae:00c00000:0451:0035:1:0
+Nickelodeon/Comedy Central
+p:CANALDIGITAAL,f:40
+20ae:00c00000:0432:0001:1:0
+TF1
+p:CSAT,f:40
+27ae:00c00000:0444:0001:1:0
+SexyGirls.TV
+p:BetaDigital,f:40
+75ae:00c00000:0422:0001:1:0
+
+p:Digital +,f:40
+0faf:00c00000:0451:0035:1:0
+NGC
+p:CANALDIGITAAL,f:40
+20af:00c00000:0432:0001:1:0
+M6
+p:IMEDIA,f:40
+27af:00c00000:0444:0001:1:0
+Liebestraum.TV
+p:BetaDigital,f:40
+75af:00c00000:0422:0001:1:0
+
+p:DIGITAL+,f:40
+0fb0:00c00000:0451:0035:1:0
+Tele2 2e kanaal
+p:CANALDIGITAAL,f:40
+27b0:00c00000:0444:0001:1:0
+ACHTUNG Erotik.TV
+p:BetaDigital,f:40
+75b0:00c00000:0422:0001:1:0
+TAQUILLA
+p:DIGITAL+,f:40
+27b1:00c00000:0444:0001:1:0
+Pro Erotik TV
+p:BetaDigital,f:40
+75b1:00c00000:0422:0001:1:0
+GUÍA DIGITAL+
+p:Digital+,f:40
+0fb2:00c00000:0451:0035:1:0
+Man-X
+p:CANALDIGITAAL,f:40
+21b2:00c00000:0448:0001:1:0
+
+p:CSAT,f:40
+27b2:00c00000:0444:0001:1:0
+EroticDome
+p:BetaDigital,f:40
+75b2:00c00000:0422:0001:1:0
+TAQUILLA
+p:Digital+,f:40
+20b3:00c00000:0432:0001:1:0
+TF1
+p:CSAT,f:40
+27b3:00c00000:0444:0001:1:0
+666 Girls.TV
+p:BetaDigital,f:40
+20b4:00c00000:0432:0001:1:0
+M6
+p:CSAT,f:40
+27b4:00c00000:0444:0001:1:0
+Gratis Hot TV
+p:BetaDigital,f:40
+27b5:00c00000:0444:0001:1:0
+XXXKanal.TV
+p:BetaDigital,f:40
+20b6:00c00000:0432:0001:1:0
+VIRGIN 17
+p:CSAT,f:40
+27b6:00c00000:0444:0001:1:0
+SAT Erotiktreff.TV
+p:BetaDigital,f:40
+27b7:00c00000:0444:0001:1:0
+Friends TV
+p:BetaDigital,f:40
+27b8:00c00000:0444:0001:1:0
+.
+p:BetaDigital,f:40
+24b9:00c00000:043c:0001:1:0
+TPS STAR
+p:CSAT,f:40
+27b9:00c00000:0444:0001:1:0
+Mallorca.TV
+p:BetaDigital,f:40
+24ba:00c00000:043c:0001:1:0
+SERIE CLUB
+p:CSAT,f:40
+27ba:00c00000:0444:0001:1:0
+.
+p:BetaDigital,f:40
+24bb:00c00000:043c:0001:1:0
+W9
+p:CSAT,f:40
+27bb:00c00000:0444:0001:1:0
+.
+p:BetaDigital,f:40
+77bb:00c00000:040a:0001:1:0
+CLÁSICO
+p:CLASIC,f:40
+24bc:00c00000:043c:0001:1:0
+INFOSPORT
+p:CSAT,f:40
+27bc:00c00000:0444:0001:1:0
+.
+p:BetaDigital,f:40
+77bc:00c00000:040a:0001:1:0
+24 HORAS
+p:24H,f:40
+24bd:00c00000:043c:0001:1:0
+C CINEMA STAR
+p:CSAT,f:40
+6fbd:00c00000:042c:0001:1:0
+1.068 Spare
+p:Arqiva,f:40
+77bd:00c00000:040a:0001:1:0
+TNT
+p:CMA30,f:40
+1bbe:00c00000:0423:0001:1:0
+TVP1
+p:TVP,f:40
+23be:00c00000:044a:0001:1:0
+DT1
+p:CSAT,f:40
+24be:00c00000:043c:0001:1:0
+TELETOON
+p:CSAT,f:40
+77be:00c00000:040a:0001:1:0
+CLAN TVE
+p:Digital+,f:40
+1bbf:00c00000:0423:0001:1:0
+TVP2
+p:TVP,f:40
+23bf:00c00000:044a:0001:1:0
+DT2
+p:CSAT,f:40
+24bf:00c00000:043c:0001:1:0
+M6 MUSIC HITS
+p:CSAT,f:40
+77bf:00c00000:040a:0001:1:0
+24 HORAS
+p:24H,f:40
+1bc0:00c00000:0423:0001:1:0
+TVP Info
+p:TVP,f:40
+24c0:00c00000:043c:0001:1:0
+DISCOVERY
+p:CSAT,f:40
+76c0:00c00000:040e:0001:1:0
+CANAL+
+p:CP,f:40
+77c0:00c00000:040a:0001:1:0
+TELENOVELAS
+p:TLNV,f:40
+1bc1:00c00000:0423:0001:1:0
+TVP Sport
+p:Telewizja Polska SA,f:40
+21c1:00c00000:0448:0001:1:0
+MOSAIQUE
+p:CSAT,f:40
+23c1:00c00000:044a:0001:1:0
+DT4
+p:CSAT,f:40
+24c1:00c00000:043c:0001:1:0
+PINK TV/PINK X
+p:CSAT,f:40
+76c1:00c00000:040e:0001:1:0
+DOCU TVE
+p:Docu TVE,f:40
+77c1:00c00000:040a:0001:1:0
+HOLLYWOOD
+p:HOLLYW,f:40
+1bc2:00c00000:0423:0001:1:0
+INT6
+p:Telewizja Polska SA,f:40
+23c2:00c00000:044a:0001:1:0
+DT5
+p:CSAT,f:40
+24c2:00c00000:043c:0001:1:0
+TELETOON+1
+p:CSAT,f:40
+77c2:00c00000:040a:0001:1:0
+HISTORIA
+p:HIST,f:40
+23c3:00c00000:044a:0001:1:0
+DT6
+p:CSAT,f:40
+76c3:00c00000:040e:0001:1:0
+DISNEY CH.
+p:DCH,f:40
+77c3:00c00000:040a:0001:1:0
+TELENOVELAS
+p:TLNV,f:40
+23c4:00c00000:044a:0001:1:0
+DT7
+p:CSAT,f:40
+76c4:00c00000:040e:0001:1:0
+SPORTMANÍA
+p:SPM,f:40
+23c5:00c00000:044a:0001:1:0
+DT8
+p:CSAT,f:40
+76c5:00c00000:040e:0001:1:0
+40 TV
+p:+MUS,f:40
+77c5:00c00000:040a:0001:1:0
+TV CANARIA
+p:CANAR,f:40
+22c6:00c00000:045a:0001:1:0
+CINE POLAR
+p:CSAT,f:40
+23c6:00c00000:044a:0001:1:0
+DT9
+p:CSAT,f:40
+76c6:00c00000:040e:0001:1:0
+DISCOVERY
+p:DCR,f:40
+77c6:00c00000:040a:0001:1:0
+CUATRO
+p:Digital+,f:40
+22c7:00c00000:045a:0001:1:0
+GULLI
+p:CSAT,f:40
+23c7:00c00000:044a:0001:1:0
+DT10
+p:CSAT,f:40
+75c7:00c00000:0422:0001:1:0
+
+p:DIGITAL+,f:40
+77c7:00c00000:040a:0001:1:0
+CUATRO
+p:Digital+,f:40
+22c8:00c00000:045a:0001:1:0
+BLOOMBERG TV
+p:CSAT,f:40
+23c8:00c00000:044a:0001:1:0
+DT11
+p:CSAT,f:40
+22c9:00c00000:045a:0001:1:0
+TEVA
+p:CSAT,f:40
+23c9:00c00000:044a:0001:1:0
+DT12
+p:CSAT,f:40
+32c9:00c00000:045d:0001:1:0
+ORF1
+p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
+77c9:00c00000:040a:0001:1:0
+TNT
+p:CMA30,f:40
+22ca:00c00000:045a:0001:1:0
+DISNEY CHANNEL+1
+p:CSAT,f:40
+23ca:00c00000:044a:0001:1:0
+DT13
+p:CSAT,f:40
+32ca:00c00000:045d:0001:1:0
+ORF2
+p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
+6dca:00c00000:044d:0001:1:0
+Das Erste
+p:ARD,f:40
+75ca:00c00000:0422:0001:1:0
+
+p:DIGITAL+,f:40
+76ca:00c00000:040e:0001:1:0
+CANAL+ 2
+p:CP2,f:40
+22cb:00c00000:045a:0001:1:0
+PLAYHOUSE DISNEY
+p:CSAT,f:40
+23cb:00c00000:044a:0001:1:0
+DT14
+p:CSAT,f:40
+32cb:00c00000:045d:0001:1:0
+ORF2 W
+p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
+6dcb:00c00000:044d:0001:1:0
+Bayerisches FS Süd
+p:ARD,f:40
+22cc:00c00000:045a:0001:1:0
+DISNEY CINEMAGIC
+p:CSAT,f:40
+23cc:00c00000:044a:0001:1:0
+DT15
+p:CSAT,f:40
+32cc:00c00000:045d:0001:1:0
+ORF2 N
+p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
+42cc:00c00000:041d:0001:1:0
+Belsat TV
+p:TVP,f:40
+6dcc:00c00000:044d:0001:1:0
+hr-fernsehen
+p:ARD,f:40
+75cc:00c00000:0422:0001:1:0
+
+p:DIGITAL+,f:40
+76cc:00c00000:040e:0001:1:0
+TELEDEPORTE
+p:TDEP,f:40
+f1cc:00c00000:0421:0001:1:0
+Bibel TV
+p:Bibel TV,f:40
+22cd:00c00000:045a:0001:1:0
+DISNEY MAGIC+1
+p:CSAT,f:40
+23cd:00c00000:044a:0001:1:0
+DT16
+p:CSAT,f:40
+32cd:00c00000:045d:0001:1:0
+ORF2 B
+p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
+42cd:00c00000:041d:0001:1:0
+TV TRWAM
+p:TVP,f:40
+74cd:00c00000:03f8:0001:1:0
+TELEFE INT
+p:DIGITAL+,f:40
+23ce:00c00000:044a:0001:1:0
+DT17
+p:CSAT,f:40
+32ce:00c00000:045d:0001:1:0
+ORF2 O
+p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
+42ce:00c00000:041d:0001:1:0
+TV Polonia
+p:TVP,f:40
+6dce:00c00000:044d:0001:1:0
+Bayerisches FS Nord
+p:ARD,f:40
+74ce:00c00000:03f8:0001:1:0
+PORTADA
+p:ESCAP,f:40
+75ce:00c00000:0422:0001:1:0
+IBERDROLA
+p:DIGITAL+,f:40
+22cf:00c00000:045a:0001:1:0
+E! ENTERTAINMENT
+p:CSAT,f:40
+23cf:00c00000:044a:0001:1:0
+DT18
+p:CSAT,f:40
+24cf:00c00000:043c:0001:1:0
+W9
+p:CSAT,f:40
+32cf:00c00000:045d:0001:1:0
+ORF2 S
+p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
+42cf:00c00000:041d:0001:1:0
+TVP Historia
+p:TVP,f:40
+6dcf:00c00000:044d:0001:1:0
+WDR Köln
+p:ARD,f:40
+74cf:00c00000:03f8:0001:1:0
+TCM MODERNO
+p:TCM,f:40
+75cf:00c00000:0422:0001:1:0
+
+p:Digital +,f:40
+23d0:00c00000:044a:0001:1:0
+DT19
+p:CSAT,f:40
+32d0:00c00000:045d:0001:1:0
+ORF2 T
+p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
+42d0:00c00000:041d:0001:1:0
+TVP Kultura
+p:TVP,f:40
+6dd0:00c00000:044d:0001:1:0
+BR-alpha*
+p:ARD,f:40
+20d1:00c00000:043e:0001:1:0
+
+p:CSAT,f:40
+23d1:00c00000:044a:0001:1:0
+DT20
+p:CSAT,f:40
+32d1:00c00000:045d:0001:1:0
+ORF2 V
+p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
+6dd1:00c00000:044d:0001:1:0
+SWR Fernsehen BW
+p:ARD,f:40
+20d2:00c00000:043e:0001:1:0
+A LA CARTE 1
+p:CSAT,f:40
+32d2:00c00000:045d:0001:1:0
+ORF2 St
+p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
+75d2:00c00000:0422:0001:1:0
+CANAL+ HD
+p:DIGITAL+,f:40
+20d3:00c00000:043e:0001:1:0
+A LA CARTE 2
+p:CSAT,f:40
+32d3:00c00000:045d:0001:1:0
+ORF2 K
+p:ORF,C:1801,C:1702,C:0d05,C:1762,f:40
+07d4:00c00000:0449:0035:1:0
+RTL4
+p:CANALDIGITAAL,f:40
+20d4:00c00000:043e:0001:1:0
+A LA CARTE 3
+p:CSAT,f:40
+32d4:00c00000:045d:0001:1:0
+ATV+
+p:ATV+,C:1801,C:1702,C:0d05,C:1762,f:40
+07d5:00c00000:0449:0035:1:0
+RTL5
+p:CANALDIGITAAL,f:40
+20d5:00c00000:043e:0001:1:0
+A LA CARTE 4
+p:CSAT,f:40
+32d5:00c00000:045d:0001:1:0
+HITRADIO OE3
+p:ORF,f:40
+07d6:00c00000:0449:0035:1:0
+RTL7
+p:CANALDIGITAAL,f:40
+20d6:00c00000:043e:0001:1:0
+A LA CARTE 5
+p:CSAT,f:40
+32d6:00c00000:045d:0001:1:0
+ORF2E
+p:ORF,f:40
+75d6:00c00000:0422:0001:1:0
+SAN FERMÍN
+p:DIGITAL+,f:40
+1fd7:00c00000:0434:0001:1:0
+EUROSPORT
+p:CSAT,f:40
+20d7:00c00000:043e:0001:1:0
+A LA CARTE 6
+p:CSAT,f:40
+1fd8:00c00000:0434:0001:1:0
+TMC
+p:CSAT,f:40
+20d8:00c00000:043e:0001:1:0
+A LA CARTE 7
+p:CSAT,f:40
+6fd8:00c00000:042c:0001:1:0
+TVBS
+p:Chinese Channel LTD.,f:40
+77d8:00c00000:040a:0001:1:0
+EUROSPORT
+p:ESP,f:40
+1fd9:00c00000:0434:0001:1:0
+PLANETE
+p:CSAT,f:40
+20d9:00c00000:043e:0001:1:0
+A LA CARTE 8
+p:CSAT,f:40
+22d9:00c00000:045a:0001:1:0
+GULLI
+p:CSAT,f:40
+32d9:00c00000:045d:0001:1:0
+Bundesliga 5
+p:arena,f:40
+75d9:00c00000:0422:0001:1:0
+
+p:Digital +,f:40
+07da:00c00000:0449:0035:1:0
+TV Oranje
+p:CANALDIGITAAL,f:40
+20da:00c00000:043e:0001:1:0
+A LA CARTE 9
+p:CSAT,f:40
+32da:00c00000:045d:0001:1:0
+Bundesliga 6
+p:arena,f:40
+1fdb:00c00000:0434:0001:1:0
+VOYAGE
+p:CSAT,f:40
+20db:00c00000:043e:0001:1:0
+A LA CARTE 13
+p:CSAT,f:40
+1fdc:00c00000:0434:0001:1:0
+LCI
+p:CSAT,f:40
+20dc:00c00000:043e:0001:1:0
+A LA CARTE 14
+p:CSAT,f:40
+75dc:00c00000:0422:0001:1:0
+COMPRA SMS
+p:DIGITAL+,f:40
+1fdd:00c00000:0434:0001:1:0
+CANAL J
+p:CSAT,f:40
+75dd:00c00000:0422:0001:1:0
+TEST TÉCNICO
+p:DIGITAL+,f:40
+20de:00c00000:043e:0001:1:0
+KIOSQUE
+p:CSAT,f:40
+75de:00c00000:0422:0001:1:0
+TEST_CSD1
+p:DIGITAL+,f:40
+07df:00c00000:0449:0035:1:0
+Discovery
+p:CANALDIGITAAL,f:40
+1fdf:00c00000:0434:0001:1:0
+PLANETE JUNIORS
+p:CSAT,f:40
+75df:00c00000:0422:0001:1:0
+TEST_CSD2
+p:DIGITAL+,f:40
+1fe0:00c00000:0434:0001:1:0
+CUISINE TV
+p:CSAT,f:40
+6fe0:00c00000:0443:0001:1:0
+NICK AUSTRIA
+p:MTV Networks,f:40
+75e0:00c00000:0422:0001:1:0
+TEST_CSD3
+p:DIGITAL+,f:40
+79e0:00c00000:0443:0001:1:0
+Eurosport
+p:SES Astra,f:40
+1fe1:00c00000:0434:0001:1:0
+FILLES TV
+p:CSAT,f:40
+6ee1:00c00000:04b1:0001:1:0
+Radio Bremen TV
+p:ARD,f:40
+6fe1:00c00000:0443:0001:1:0
+MTV AUSTRIA
+p:MTV Networks,f:40
+75e1:00c00000:0422:0001:1:0
+TEST_CSD4
+p:DIGITAL+,f:40
+1fe2:00c00000:0434:0001:1:0
+TIJI
+p:CSAT,f:40
+75e2:00c00000:0422:0001:1:0
+TEST_CSD5
+p:DIGITAL+,f:40
+1fe3:00c00000:0434:0001:1:0
+CANAL+ FAMILY
+p:CSAT,f:40
+2ee3:00c00000:0441:0001:1:0
+\86RTL\87 Television
+p:RTL World,f:40
+31e3:00c00000:045c:0035:1:0
+VTM OLD
+p:TV Vlaanderen,f:40
+31e3:00c00000:045f:0035:1:0
+VTM
+p:TV Vlaanderen,f:40
+75e3:00c00000:0422:0001:1:0
+TEST_CSD6
+p:DIGITAL+,f:40
+07e4:00c00000:0449:0035:1:0
+Animal Planet
+p:CANALDIGITAAL,f:40
+2ee4:00c00000:0441:0001:1:0
+RTL HH SH
+p:RTL World,f:40
+31e4:00c00000:045c:0035:1:0
+2BE OLD
+p:TV Vlaanderen,f:40
+31e4:00c00000:045f:0035:1:0
+2BE
+p:TV Vlaanderen,f:40
+75e4:00c00000:0422:0001:1:0
+TEST_CSD7
+p:DIGITAL+,f:40
+25e5:00c00000:045e:0001:1:0
+FR3 AMIENS
+p:CSAT,f:40
+2ee5:00c00000:0441:0001:1:0
+RTL HB NDS
+p:RTL World,f:40
+31e5:00c00000:045c:0035:1:0
+VT4 OLD
+p:TV Vlaanderen,f:40
+31e5:00c00000:045f:0035:1:0
+VT4
+p:TV Vlaanderen,f:40
+75e5:00c00000:0422:0001:1:0
+TEST_CSD8
+p:DIGITAL+,f:40
+25e6:00c00000:045e:0001:1:0
+FR3 BESANCON
+p:CSAT,f:40
+31e6:00c00000:045c:0035:1:0
+ActionNow OLD
+p:TV Vlaanderen,f:40
+31e6:00c00000:045f:0035:1:0
+ActionNow
+p:TV Vlaanderen,f:40
+75e6:00c00000:0422:0001:1:0
+TEST_CSD9
+p:DIGITAL+,f:40
+25e7:00c00000:045e:0001:1:0
+FR3 BORDEAUX
+p:CSAT,f:40
+31e7:00c00000:045c:0035:1:0
+één OLD
+p:TV Vlaanderen,f:40
+31e7:00c00000:045f:0035:1:0
+één
+p:TV Vlaanderen,f:40
+75e7:00c00000:0422:0001:1:0
+TEST_CSD10
+p:DIGITAL+,f:40
+23e8:00c00000:044a:0001:1:0
+DOWNLOAD TNTSAT GENERIQUE
+p:CSAT,f:40
+25e8:00c00000:045e:0001:1:0
+FR3 NANCY
+p:CSAT,f:40
+31e8:00c00000:045c:0035:1:0
+Ketnet/Canvas OLD
+p:TV Vlaanderen,f:40
+31e8:00c00000:045f:0035:1:0
+Ketnet/Canvas
+p:TV Vlaanderen,f:40
+07e9:00c00000:0449:0035:1:0
+EUROSPORT
+p:CANALDIGITAAL,f:40
+23e9:00c00000:044a:0001:1:0
+DOWNLOAD TNTSAT STRONG
+p:CSAT,f:40
+25e9:00c00000:045e:0001:1:0
+FR3 CLERMONT FD
+p:CSAT,f:40
+31e9:00c00000:045c:0035:1:0
+Vitaya OLD
+p:TV Vlaanderen,f:40
+31e9:00c00000:045f:0035:1:0
+Vitaya
+p:TV Vlaanderen,f:40
+23ea:00c00000:044a:0001:1:0
+DOWNLOAD TNTSAT SAGEM
+p:CSAT,f:40
+25ea:00c00000:045e:0001:1:0
+FR3 PARIS
+p:CSAT,f:40
+79ea:00c00000:0443:0001:1:0
+HSE24 Digital
+p:SES Astra,f:40
+1feb:00c00000:0434:0001:1:0
+TMC
+p:CSAT,f:40
+23eb:00c00000:044a:0001:1:0
+CDN2
+p:CSAT,f:40
+25eb:00c00000:045e:0001:1:0
+FR3 RENNES
+p:CSAT,f:40
+6eeb:00c00000:04b1:0001:1:0
+WDR Test A
+p:ARD,f:40
+6feb:00c00000:042a:0001:1:0
+MTV ESP
+p:MTV Networks Europe,f:40
+23ec:00c00000:044a:0001:1:0
+CDN6
+p:CSAT,f:40
+25ec:00c00000:045e:0001:1:0
+FR3 ROUEN
+p:CSAT,f:40
+6fec:00c00000:042a:0001:1:0
+MTV France
+p:MTV Networks Europe,f:40
+23ed:00c00000:044a:0001:1:0
+CDN7
+p:CSAT,f:40
+25ed:00c00000:045e:0001:1:0
+FR3 LIMOGES
+p:CSAT,f:40
+75ed:00c00000:0422:0001:1:0
+
+p:Digital+,f:40
+07ee:00c00000:0449:0035:1:0
+Cartoon/TCM
+p:CANALDIGITAAL,f:40
+23ee:00c00000:044a:0001:1:0
+CDN5
+p:CSAT,f:40
+25ee:00c00000:045e:0001:1:0
+FR3 LYON
+p:CSAT,f:40
+6fee:00c00000:042a:0001:1:0
+MTV Hits
+p:MTV Networks Europe,f:40
+75ee:00c00000:0422:0001:1:0
+
+p:Digital +,f:40
+25ef:00c00000:045e:0001:1:0
+FR3 MARSEILLE
+p:CSAT,f:40
+31ef:00c00000:045c:0035:1:0
+JIM OLD
+p:TV Vlaanderen,f:40
+31ef:00c00000:045f:0035:1:0
+JIM
+p:TV Vlaanderen,f:40
+6fef:00c00000:042a:0001:1:0
+MTV Dance
+p:MTV Networks Europe,f:40
+75ef:00c00000:0422:0001:1:0
+
+p:DIGITAL+,f:40
+25f0:00c00000:045e:0001:1:0
+FR3 TOULOUSE
+p:CSAT,f:40
+31f0:00c00000:045c:0035:1:0
+VIJFtv OLD
+p:TV Vlaanderen,f:40
+31f0:00c00000:045f:0035:1:0
+VIJFtv
+p:TV Vlaanderen,f:40
+6ff0:00c00000:042a:0001:1:0
+VH1
+p:MTV Networks Europe,f:40
+31f1:00c00000:045c:0035:1:0
+KANAAL Z OLD
+p:TV Vlaanderen,f:40
+31f1:00c00000:045f:0035:1:0
+KANAAL Z
+p:TV Vlaanderen,f:40
+6ff1:00c00000:042a:0001:1:0
+VH1 Classic
+p:MTV Networks Europe,f:40
+75f1:00c00000:0422:0001:1:0
+
+p:Digital+,f:40
+75f2:00c00000:0422:0001:1:0
+
+p:Digital+,f:40
+07f3:00c00000:0449:0035:1:0
+RTL8
+p:CANALDIGITAAL,f:40
+6ff3:00c00000:042a:0001:1:0
+MTV TWO
+p:MTV Networks Europe,f:40
+75f3:00c00000:0422:0001:1:0
+
+p:Contactanos,f:40
+2ef4:00c00000:0441:0001:1:0
+RTL2
+p:RTL World,f:40
+6ff4:00c00000:042a:0001:1:0
+Nick ESP
+p:MTV Networks Europe,f:40
+75f4:00c00000:0422:0001:1:0
+ABONO FÚTBOL+
+p:Digital+,f:40
+79f4:00c00000:0443:0001:1:0
+EuroNews
+p:Globecast,f:40
+1af5:00c00000:03fe:0001:1:0
+DIRECT 8
+p:GlobeCast,f:40
+6ff5:00c00000:042a:0001:1:0
+MTV Base France
+p:MTV Networks Europe,f:40
+1af6:00c00000:03fe:0001:1:0
+KTO
+p:OVERON,f:40
+6ff7:00c00000:042a:0001:1:0
+GAME ONE
+p:MTV Networks Europe,f:40
+07f8:00c00000:0449:0035:1:0
+PRIVATE SPICE
+p:CANALDIGITAAL,f:40
+1af8:00c00000:03fe:0001:1:0
+Russia Today
+p:OVERON,f:40
+6ff8:00c00000:042a:0001:1:0
+MTV Hits.
+p:MTV Networks Europe,f:40
+1af9:00c00000:03fe:0001:1:0
+France 24 (en Francais)
+p:FRANCE 24,f:40
+75f9:00c00000:0408:0001:1:0
+TVC INT.
+p:TVC,f:40
+1afa:00c00000:03fe:0001:1:0
+France 24 (in English)
+p:FRANCE 24,f:40
+6ffa:00c00000:042a:0001:1:0
+VH1.
+p:MTV Networks Europe,f:40
+75fa:00c00000:0408:0001:1:0
+ANDALUCÍA TV
+p:ANTV,f:40
+1afb:00c00000:03fe:0001:1:0
+EWTN Europe
+p:OVERON,f:40
+6ffb:00c00000:042a:0001:1:0
+VH1 Classic.
+p:MTV Networks Europe,f:40
+75fb:00c00000:0408:0001:1:0
+EUSKADI TV
+p:DIGITAL+,f:40
+02fc:00c00000:0005:0085:1:0
+ANIXE SD
+p:BetaDigital,f:40
+1afc:00c00000:03fe:0001:1:0
+NRJ Hits
+p:GlobeCast,f:40
+6ffc:00c00000:042a:0001:1:0
+NICKELODEON France
+p:MTV Networks Europe,f:40
+75fc:00c00000:0408:0001:1:0
+TM SAT/LAOTRA
+p:DIGITAL+,f:40
+02fd:00c00000:0007:0085:1:0
+\86Y\87AVIDO\86 CLIPS\87
+p:BetaDigital,f:40
+07fd:00c00000:0449:0035:1:0
+DORCEL TV
+p:CANALDIGITAAL,f:40
+1afd:00c00000:03fe:0001:1:0
+ARAGON TV
+p:OVERON,f:40
+21fd:00c00000:044c:0001:1:0
+EQUIDIA INFO
+p:CSAT,f:40
+6ffd:00c00000:042a:0001:1:0
+MTV TWO.
+p:MTV Networks Europe,f:40
+75fd:00c00000:0408:0001:1:0
+CANAL CLUB
+p:DIGITAL+,f:40
+02fe:00c00000:0005:0085:1:0
+UProm.TV
+p:BetaDigital,f:40
+21fe:00c00000:044c:0001:1:0
+COMEDIE !
+p:CSAT,f:40
+74fe:00c00000:0420:0001:1:0
+C+ ACCIÓN...30
+p:CMA,f:40
+75fe:00c00000:0408:0001:1:0
+C. ESTRELLAS
+p:GALAV,f:40
+02ff:00c00000:0007:0085:1:0
+\86rtn\87 myestate
+p:BetaDigital,f:40
+1aff:00c00000:03fe:0001:1:0
+DIRECT 8
+p:OVERON,f:40
+21ff:00c00000:044c:0001:1:0
+13EME RUE
+p:CSAT,f:40
+6fff:00c00000:0436:0001:1:0
+MTV Music
+p:MTV Networks Europe,f:40
+74ff:00c00000:0420:0001:1:0
+C+ COMEDIA...30
+p:CMADOS,f:40
+75ff:00c00000:0408:0001:1:0
+CNN+
+p:CNN+,f:40
+6f00:00c00000:0445:0001:2:0
+DW 1
+p:ARD DW,f:40
+6f01:00c00000:0445:0001:2:0
+DW 4
+p:ARD DW,f:40
+0803:00c00000:0449:0035:2:0
+RTL RADIO
+p:CANALDIGITAAL,f:40
+6f03:00c00000:0445:0001:2:0
+hr1
+p:ARD HR,f:40
+6f04:00c00000:0445:0001:2:0
+hr2
+p:ARD HR,f:40
+6f05:00c00000:0445:0001:2:0
+hr3
+p:ARD HR,f:40
+6f06:00c00000:0445:0001:2:0
+hr4
+p:ARD HR,f:40
+6f07:00c00000:0445:0001:2:0
+YOU FM
+p:ARD HR,f:40
+6f08:00c00000:0445:0001:2:0
+hr iNFO
+p:ARD HR,f:40
+f208:00c00000:0421:0001:2:0
+Radio Horeb
+p:Eurociel,f:40
+6f09:00c00000:0445:0001:2:0
+hr iNFO +
+p:ARD HR,f:40
+f20a:00c00000:0421:0001:2:0
+RDC
+p:Polskie Radio-Regionalna,f:40
+6f0c:00c00000:0445:0001:2:0
+MDR1 SACHSEN
+p:ARD MDR,f:40
+6f0d:00c00000:0445:0001:2:0
+MDR1 S-ANHALT
+p:ARD MDR,f:40
+6f0e:00c00000:0445:0001:2:0
+MDR1 THÜRINGEN
+p:ARD MDR,f:40
+6f0f:00c00000:0445:0001:2:0
+MDR FIGARO
+p:ARD MDR,f:40
+6f10:00c00000:0445:0001:2:0
+MDR JUMP
+p:ARD MDR,f:40
+6f11:00c00000:0445:0001:2:0
+MDR SPUTNIK
+p:ARD MDR,f:40
+6f12:00c00000:0445:0001:2:0
+MDR INFO
+p:ARD MDR,f:40
+6f15:00c00000:0445:0001:2:0
+NDR 2
+p:ARD NDR,f:40
+0816:00c00000:0449:0035:2:0
+RVi1 (VRT)
+p:CANALDIGITAAL,f:40
+6f16:00c00000:0445:0001:2:0
+NDR Kultur
+p:ARD NDR,f:40
+6f17:00c00000:0445:0001:2:0
+NDR Info
+p:ARD NDR,f:40
+6f18:00c00000:0445:0001:2:0
+N-JOY
+p:ARD NDR,f:40
+6f19:00c00000:0445:0001:2:0
+NDR 90,3
+p:ARD NDR,f:40
+6f1a:00c00000:0445:0001:2:0
+NDR 1 Welle Nord
+p:ARD NDR,f:40
+081b:00c00000:0449:0035:2:0
+RVi2 (VRT)
+p:CANALDIGITAAL,f:40
+6f1b:00c00000:0445:0001:2:0
+NDR 1 Radio MV
+p:ARD NDR,f:40
+6f1c:00c00000:0445:0001:2:0
+NDR 1 Niedersachsen
+p:ARD NDR,f:40
+6f1d:00c00000:0445:0001:2:0
+NDR Info Spezial
+p:ARD NDR,f:40
+6f20:00c00000:0445:0001:2:0
+Bremen Eins
+p:ARD RB,f:40
+6f21:00c00000:0445:0001:2:0
+Nordwestradio
+p:ARD RB,f:40
+6f22:00c00000:0445:0001:2:0
+Bremen Vier
+p:ARD RB,f:40
+6f24:00c00000:0445:0001:2:0
+InfoRadio
+p:ARD rbb,f:40
+6f25:00c00000:0445:0001:2:0
+kulturradio
+p:ARD rbb,f:40
+6f26:00c00000:0445:0001:2:0
+Antenne Brandenburg
+p:ARD rbb,f:40
+6f27:00c00000:0445:0001:2:0
+radioBERLIN 88,8
+p:ARD rbb,f:40
+6f28:00c00000:0445:0001:2:0
+radioeins
+p:ARD rbb,f:40
+6f29:00c00000:0445:0001:2:0
+Fritz
+p:ARD rbb,f:40
+6f2a:00c00000:0445:0001:2:0
+radiomultikulti
+p:ARD rbb,f:40
+f22a:00c00000:0421:0001:2:0
+CFN/RFC
+p:Canadian Forces Europe,f:40
+f22b:00c00000:0421:0001:2:0
+Radio neue Hoffnung
+p:RADIO Neue Hoffnung,f:40
+6f2d:00c00000:0445:0001:2:0
+SR1
+p:ARD SR,f:40
+6f2e:00c00000:0445:0001:2:0
+SR2
+p:ARD SR,f:40
+6f2f:00c00000:0445:0001:2:0
+SR3
+p:ARD SR,f:40
+f22f:00c00000:0421:0001:2:0
+RTBF International
+p:RTBF,f:40
+4331:00c00000:041d:0001:2:0
+Radio Maryja test
+p:TVP,f:40
+6f31:00c00000:0445:0001:2:0
+SWR1 BW
+p:ARD SWR,f:40
+6f32:00c00000:0445:0001:2:0
+SWR1 RP
+p:ARD SWR,f:40
+6f33:00c00000:0445:0001:2:0
+SWR2
+p:ARD SWR,f:40
+6f34:00c00000:0445:0001:2:0
+SWR3
+p:ARD SWR,f:40
+6f35:00c00000:0445:0001:2:0
+SWR4 BW
+p:ARD SWR,f:40
+6f36:00c00000:0445:0001:2:0
+SWR4 RP
+p:ARD SWR,f:40
+6f37:00c00000:0445:0001:2:0
+DASDING
+p:ARD SWR,f:40
+6f38:00c00000:0445:0001:2:0
+cont.ra
+p:ARD SWR,f:40
+213b:00c00000:0442:0001:2:0
+CANALSAT RADIOS
+p:CSAT,f:40
+6f3b:00c00000:0445:0001:2:0
+1LIVE
+p:ARD WDR,f:40
+6f3c:00c00000:0445:0001:2:0
+WDR 2
+p:ARD WDR,f:40
+6f3d:00c00000:0445:0001:2:0
+WDR 3
+p:ARD WDR,f:40
+6f3e:00c00000:0445:0001:2:0
+WDR 4
+p:ARD WDR,f:40
+6f3f:00c00000:0445:0001:2:0
+WDR 5
+p:ARD WDR,f:40
+2140:00c00000:0442:0001:2:0
+RADIO INT 2
+p:CSAT,f:40
+6f40:00c00000:0445:0001:2:0
+WDR Funkhaus Europa
+p:ARD WDR,f:40
+2141:00c00000:0442:0001:2:0
+RADIO INT
+p:CSAT,f:40
+3341:00c00000:045b:0001:2:0
+OE1
+p:ORF,f:40
+6f41:00c00000:0445:0001:2:0
+1LIVE diggi
+p:ARD WDR,f:40
+3342:00c00000:045b:0001:2:0
+OE1 DD
+p:ORF,f:40
+6f42:00c00000:0445:0001:2:0
+WDR 2 Klassik
+p:ARD WDR,f:40
+3343:00c00000:045b:0001:2:0
+OE2 W
+p:ORF,f:40
+6f43:00c00000:0445:0001:2:0
+WDR Event
+p:ARD WDR,f:40
+3344:00c00000:045b:0001:2:0
+OE2 N
+p:ORF,f:40
+3345:00c00000:045b:0001:2:0
+OE2 B
+p:ORF,f:40
+3346:00c00000:045b:0001:2:0
+OE2 O
+p:ORF,f:40
+2147:00c00000:0442:0001:2:0
+FRANCE MUSIQUE
+p:CSAT,f:40
+3347:00c00000:045b:0001:2:0
+OE2 S
+p:ORF,f:40
+2148:00c00000:0442:0001:2:0
+FIP
+p:CSAT,f:40
+3348:00c00000:045b:0001:2:0
+OE2 T
+p:ORF,f:40
+2149:00c00000:0442:0001:2:0
+France INFO
+p:CSAT,f:40
+3349:00c00000:045b:0001:2:0
+OE2 V
+p:ORF,f:40
+214a:00c00000:0442:0001:2:0
+France INTER
+p:CSAT,f:40
+334a:00c00000:045b:0001:2:0
+OE2 St
+p:ORF,f:40
+214b:00c00000:0442:0001:2:0
+FRANCE BLEU IDF
+p:CSAT,f:40
+334b:00c00000:045b:0001:2:0
+OE2 K
+p:ORF,f:40
+214c:00c00000:0442:0001:2:0
+RFI INT
+p:CSAT,f:40
+214d:00c00000:0442:0001:2:0
+RADIO CLASSIQUE
+p:CSAT,f:40
+334d:00c00000:045b:0001:2:0
+OE3
+p:ORF,f:40
+214e:00c00000:0442:0001:2:0
+EUROPE 1
+p:CSAT,f:40
+334e:00c00000:045b:0001:2:0
+FM4
+p:ORF,f:40
+214f:00c00000:0442:0001:2:0
+RMC
+p:CSAT,f:40
+334f:00c00000:045b:0001:2:0
+Ö1 International
+p:ORF,f:40
+2150:00c00000:0442:0001:2:0
+RTL
+p:CSAT,f:40
+2151:00c00000:0442:0001:2:0
+RIRE & CHANSONS
+p:CSAT,f:40
+2152:00c00000:0442:0001:2:0
+SUD RADIO
+p:CSAT,f:40
+2153:00c00000:0442:0001:2:0
+MC DOUALIYA
+p:CSAT,f:40
+2154:00c00000:0442:0001:2:0
+TSF
+p:CSAT,f:40
+3354:00c00000:045b:0001:2:0
+RADIO MARIA
+p:Radio Maria Österreich,f:40
+2155:00c00000:0442:0001:2:0
+NOSTALGIE
+p:CSAT,f:40
+2156:00c00000:0442:0001:2:0
+BFM
+p:CSAT,f:40
+2157:00c00000:0442:0001:2:0
+JAZZ RADIO
+p:CSAT,f:40
+2158:00c00000:0442:0001:2:0
+NRJ
+p:CSAT,f:40
+2159:00c00000:0442:0001:2:0
+VIRGIN RADIO
+p:CSAT,f:40
+215a:00c00000:0442:0001:2:0
+RTL 2
+p:CSAT,f:40
+215b:00c00000:0442:0001:2:0
+SKYROCK
+p:CSAT,f:40
+215c:00c00000:0442:0001:2:0
+FUN RADIO
+p:CSAT,f:40
+215d:00c00000:0442:0001:2:0
+LE MOUV
+p:CSAT,f:40
+215e:00c00000:0442:0001:2:0
+RADIO NOVA
+p:CSAT,f:40
+215f:00c00000:0442:0001:2:0
+RADIO FG
+p:CSAT,f:40
+2160:00c00000:0442:0001:2:0
+VIBRATION
+p:CSAT,f:40
+2161:00c00000:0442:0001:2:0
+CONTACT FM
+p:CSAT,f:40
+2162:00c00000:0442:0001:2:0
+RADIO LATINA
+p:CSAT,f:40
+2163:00c00000:0442:0001:2:0
+RFM
+p:CSAT,f:40
+2164:00c00000:0442:0001:2:0
+CHERIE FM
+p:CSAT,f:40
+2165:00c00000:0442:0001:2:0
+ALOUETTE
+p:CSAT,f:40
+2166:00c00000:0442:0001:2:0
+VOLTAGE
+p:CSAT,f:40
+2167:00c00000:0442:0001:2:0
+OUI FM
+p:CSAT,f:40
+2168:00c00000:0442:0001:2:0
+ADO
+p:CSAT,f:40
+2169:00c00000:0442:0001:2:0
+COULEUR 3
+p:CSAT,f:40
+216a:00c00000:0442:0001:2:0
+PARENTHESE RADIO
+p:CSAT,f:40
+216b:00c00000:0442:0001:2:0
+RADIO NOTRE-DAME
+p:CSAT,f:40
+316b:00c00000:0459:0001:2:0
+Inselradio
+p:T-Systems,f:40
+6f6b:00c00000:042c:0001:2:0
+CNN Radio
+p:CNN,f:40
+216c:00c00000:0442:0001:2:0
+RADIO ALPHA
+p:CSAT,f:40
+6d6c:00c00000:0437:0001:2:0
+DKULTUR
+p:ZDFvision,f:40
+216d:00c00000:0442:0001:2:0
+RCJ / SHALOM
+p:CSAT,f:40
+316d:00c00000:0459:0001:2:0
+radio top40
+p:T-Systems,f:40
+6d6d:00c00000:0437:0001:2:0
+DLF
+p:ZDFvision,f:40
+216e:00c00000:0442:0001:2:0
+BEUR FM
+p:CSAT,f:40
+316e:00c00000:0459:0001:2:0
+ffn digital
+p:T-Systems,f:40
+216f:00c00000:0442:0001:2:0
+BBC ARABIC
+p:CSAT,f:40
+316f:00c00000:0459:0001:2:0
+DefJay 100% R&B
+p:T-Systems,f:40
+2170:00c00000:0442:0001:2:0
+RFI MULTILINGUE
+p:CSAT,f:40
+3170:00c00000:0459:0001:2:0
+WRN Deutsch
+p:T-Systems,f:40
+1771:00c00000:0457:0001:2:0
+Radio Swiss Jazz
+p:TechniSat,f:40
+2171:00c00000:0442:0001:2:0
+RCI SAT
+p:CSAT,f:40
+3171:00c00000:0459:0001:2:0
+PEPPERMINT fm
+p:T-Systems,f:40
+6d71:00c00000:0437:0001:2:0
+Dok&Deb
+p:ZDFvision,f:40
+1772:00c00000:0457:0001:2:0
+RADIOROPA-Hörbuch 2
+p:TechniSat,f:40
+2172:00c00000:0442:0001:2:0
+MEDI 1
+p:CSAT,f:40
+3172:00c00000:0459:0001:2:0
+ffn Comedy
+p:T-Systems,f:40
+1773:00c00000:0457:0001:2:0
+Radio Swiss Pop
+p:TechniSat,f:40
+2173:00c00000:0442:0001:2:0
+France CULTURE
+p:CSAT,f:40
+3173:00c00000:0459:0001:2:0
+Radio Gloria
+p:Media Broadcast,f:40
+1774:00c00000:0457:0001:2:0
+Euroklassik 1
+p:TechniSat,f:40
+2174:00c00000:0442:0001:2:0
+WRN
+p:CSAT,f:40
+3174:00c00000:0459:0001:2:0
+HIT RADIO FFH
+p:T-Systems,f:40
+1775:00c00000:0457:0001:2:0
+Radio Viola
+p:TechniSat,f:40
+2175:00c00000:0442:0001:2:0
+BBCW SERVICE
+p:CSAT,f:40
+3175:00c00000:0459:0001:2:0
+planet radio
+p:T-Systems,f:40
+1776:00c00000:0457:0001:2:0
+Star*Sat Gold
+p:TechniSat,f:40
+2176:00c00000:0442:0001:2:0
+RADIO COURTOISIE
+p:CSAT,f:40
+3176:00c00000:0459:0001:2:0
+harmony.fm
+p:T-Systems,f:40
+1777:00c00000:0457:0001:2:0
+Star*Sat Country
+p:TechniSat,f:40
+1778:00c00000:0457:0001:2:0
+Star*Sat Hit-Express
+p:TechniSat,f:40
+1779:00c00000:0457:0001:2:0
+Radio Swiss Classic
+p:TechniSat,f:40
+177a:00c00000:0457:0001:2:0
+Star*Sat EASYTI
+p:TechniSat,f:40
+177b:00c00000:0457:0001:2:0
+Kinderradio 1/ Konzertsaal 1
+p:TechniSat,f:40
+177c:00c00000:0457:0001:2:0
+RADIOROPA-Hörbuch 1
+p:TechniSat,f:40
+177d:00c00000:0457:0001:2:0
+RADIOROPA-Hörbuch 3
+p:TechniSat,f:40
+177e:00c00000:0457:0001:2:0
+Star*Sat Melodie
+p:TechniSat,f:40
+177f:00c00000:0457:0001:2:0
+RADIOROPA-BERLIN
+p:TechniSat,f:40
+1780:00c00000:0457:0001:2:0
+Jazz Time
+p:TechniSat,f:40
+1781:00c00000:0457:0001:2:0
+Star*Sat Klassik
+p:TechniSat,f:40
+1783:00c00000:0457:0001:2:0
+RADIOROPA-Hörbuch 4
+p:TechniSat,f:40
+0096:00c00000:0001:0085:2:0
+\86P-D\87EUTSCHE\86 CHARTS\87
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+0097:00c00000:0001:0085:2:0
+\86P-ROCK\87 HYMNEN
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+0098:00c00000:0001:0085:2:0
+\86P-LOVE\87 SONGS
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+7598:00c00000:0422:0001:2:0
+RADIOS ESP
+p:DIGITAL+,f:40
+0099:00c00000:0001:0085:2:0
+P-60ER/70ER
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+009a:00c00000:0001:0085:2:0
+P-80ER/90ER
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+009b:00c00000:0001:0085:2:0
+\86P-RnB\87/HIP HOP
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+009c:00c00000:0001:0085:2:0
+\86P-COUNT\87RY
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+279c:00c00000:0444:0001:2:0
+DELUXE RADIO
+p:BetaDigital,f:40
+279d:00c00000:0444:0001:2:0
+DELUXE LOUNGE
+p:BetaDigital,f:40
+279e:00c00000:0444:0001:2:0
+TEDDY
+p:BetaDigital,f:40
+279f:00c00000:0444:0001:2:0
+APS.R12
+p:BetaDigital,f:40
+00a0:00c00000:0007:0085:2:0
+\86ROCK ANT\87ENNE
+p:BetaDigital,f:40
+27a0:00c00000:0444:0001:2:0
+APS.R13
+p:BetaDigital,f:40
+00a1:00c00000:0007:0085:2:0
+\86ERF\87 Radio
+p:BetaDigital,f:40
+27a1:00c00000:0444:0001:2:0
+APS.R14
+p:BetaDigital,f:40
+27a2:00c00000:0444:0001:2:0
+APS.R15
+p:BetaDigital,f:40
+13a7:00c00000:0455:0035:2:0
+NL-Radio 1
+p:CANALDIGITAAL,f:40
+13a8:00c00000:0455:0035:2:0
+NL-Radio 2
+p:CANALDIGITAAL,f:40
+00a9:00c00000:0007:0085:2:0
+\86sunshine\87 live
+p:BetaDigital,f:40
+13a9:00c00000:0455:0035:2:0
+NL-3FM
+p:CANALDIGITAAL,f:40
+00aa:00c00000:0007:0085:2:0
+\86ANTENNE\87 BAYERN
+p:BetaDigital,f:40
+13aa:00c00000:0455:0035:2:0
+NL-Radio 4
+p:CANALDIGITAAL,f:40
+00ab:00c00000:0005:0085:2:0
+domradio
+p:BetaDigital,f:40
+13ab:00c00000:0455:0035:2:0
+NL-Radio 5
+p:CANALDIGITAAL,f:40
+00ac:00c00000:0005:0085:2:0
+.
+p:BetaDigital,f:40
+00ad:00c00000:0005:0085:2:0
+\86Klassik\87 Radio
+p:BetaDigital,f:40
+00ae:00c00000:0005:0085:2:0
+\86OldieStar\87 Radio
+p:BetaDigital,f:40
+00b0:00c00000:0007:0085:2:0
+2255 Gewinnradio
+p:BetaDigital,f:40
+13ba:00c00000:0455:0035:2:0
+CAZ!
+p:CANALDIGITAAL,f:40
+0fbe:00c00000:0451:0035:2:0
+R538 Dance Department
+p:CANALDIGITAAL,f:40
+13bf:00c00000:0455:0035:2:0
+KINK FM
+p:CANALDIGITAAL,f:40
+0fc3:00c00000:0451:0035:2:0
+FunX
+p:CANALDIGITAAL,f:40
+13c4:00c00000:0455:0035:2:0
+RNW1
+p:CANALDIGITAAL,f:40
+13c5:00c00000:0455:0035:2:0
+RNW2
+p:CANALDIGITAAL,f:40
+13c6:00c00000:0455:0035:2:0
+RNW3
+p:CANALDIGITAAL,f:40
+0fc8:00c00000:0451:0035:2:0
+Classic FM
+p:CANALDIGITAAL,f:40
+0fcd:00c00000:0451:0035:2:0
+Q-Music
+p:CANALDIGITAAL,f:40
+13ce:00c00000:0455:0035:2:0
+Sky Radio
+p:CANALDIGITAAL,f:40
+13cf:00c00000:0455:0035:2:0
+Juize.FM
+p:CANALDIGITAAL,f:40
+13d0:00c00000:0455:0035:2:0
+Radio538
+p:CANALDIGITAAL,f:40
+13d8:00c00000:0455:0035:2:0
+NL-Radio 6
+p:CANALDIGITAAL,f:40
+13dd:00c00000:0455:0035:2:0
+Radio10Gold
+p:CANALDIGITAAL,f:40
+4fe2:00c00000:0407:0001:2:0
+\86Bartok Radio\87
+p:UPC Direct,f:40
+4fe3:00c00000:0407:0001:2:0
+\86Petofi Radio\87
+p:UPC Direct,f:40
+4fe4:00c00000:0407:0001:2:0
+\86Kossuth Radio\87
+p:UPC Direct,f:40
+13e7:00c00000:0455:0035:2:0
+Radio Veronica
+p:CANALDIGITAAL,f:40
+31ea:00c00000:045c:0035:2:0
+Radio 1 OLD
+p:TV Vlaanderen,f:40
+31ea:00c00000:045f:0035:2:0
+Radio 1
+p:TV Vlaanderen,f:40
+31eb:00c00000:045c:0035:2:0
+Radio 2 OLD
+p:TV Vlaanderen,f:40
+31eb:00c00000:045f:0035:2:0
+Radio 2
+p:TV Vlaanderen,f:40
+31ec:00c00000:045c:0035:2:0
+Donna OLD
+p:TV Vlaanderen,f:40
+31ec:00c00000:045f:0035:2:0
+Donna
+p:TV Vlaanderen,f:40
+31ed:00c00000:045c:0035:2:0
+Studio Brussel OLD
+p:TV Vlaanderen,f:40
+31ed:00c00000:045f:0035:2:0
+Studio Brussel
+p:TV Vlaanderen,f:40
+6eed:00c00000:04b1:0001:2:0
+MEHRKANALTEST
+p:ARD,f:40
+31ee:00c00000:045c:0035:2:0
+Klara OLD
+p:TV Vlaanderen,f:40
+31ee:00c00000:045f:0035:2:0
+Klara
+p:TV Vlaanderen,f:40
+6ef0:00c00000:0445:0001:2:0
+Bayern 1
+p:ARD BR,f:40
+6ef1:00c00000:0445:0001:2:0
+Bayern 2
+p:ARD BR,f:40
+31f2:00c00000:045c:0035:2:0
+Q-music
+p:TV Vlaanderen,f:40
+31f2:00c00000:045f:0035:2:0
+Q-music
+p:TV Vlaanderen,f:40
+6ef2:00c00000:0445:0001:2:0
+Bayern 3
+p:ARD BR,f:40
+31f3:00c00000:045c:0035:2:0
+4FM OLD
+p:TV Vlaanderen,f:40
+31f3:00c00000:045f:0035:2:0
+4FM
+p:TV Vlaanderen,f:40
+6ef3:00c00000:0445:0001:2:0
+Bayern 4 Klassik
+p:ARD BR,f:40
+6ef4:00c00000:0445:0001:2:0
+B5 aktuell
+p:ARD BR,f:40
+6ef5:00c00000:0445:0001:2:0
+Bayern Mobil
+p:ARD BR,f:40
+6ef6:00c00000:0445:0001:2:0
+on3radio
+p:ARD BR,f:40
+6ef7:00c00000:0445:0001:2:0
+BR Verkehr
+p:ARD BR,f:40
+6ef8:00c00000:0445:0001:2:0
+B5 plus
+p:ARD BR,f:40
+1afe:00c00000:03fe:0001:2:0
+Radio Aragon
+p:OVERON,f:40
+0c13:00c00000:0457:0001:12:0
+MMS02C
+p:SES ASTRA,f:40
+1c20:00c00000:0457:0001:12:0
+Proxy GAC 1.111
+p:SES ASTRA,f:40
+1c24:00c00000:0457:0001:12:0
+Icomera
+p:SES ASTRA,f:40
+1c27:00c00000:0457:0001:12:0
+MFTS Services
+p:SES ASTRA,f:40
+1c29:00c00000:0457:0001:12:0
+AN PTU
+p:SES ASTRA,f:40
+1c2c:00c00000:0457:0001:12:0
+tvtv premium
+p:SES ASTRA,f:40
+1c2e:00c00000:0457:0001:12:0
+STB Globalteq
+p:SES ASTRA,f:40
+1c35:00c00000:0457:0001:12:0
+STB Arion
+p:SES ASTRA,f:40
+1c36:00c00000:0457:0001:12:0
+Orbit Movies FP
+p:SES ASTRA,f:40
+1c39:00c00000:0457:0001:12:0
+STB Technisat
+p:,f:40
+1c3d:00c00000:0457:0001:12:0
+ASTON DOWNLOAD
+p:ASTON,f:40
+1c42:00c00000:0457:0001:12:0
+STB Loewe
+p:SES ASTRA,f:40
+3145:00c00000:0459:0001:12:0
+RAPS
+p:T-Systems,f:40
+1c47:00c00000:0457:0001:12:0
+ProArzt
+p:SES ASTRA,f:40
+1c50:00c00000:0457:0001:12:0
+tvtv Digital
+p:SES ASTRA,f:40
+1c51:00c00000:0457:0001:12:0
+STB Bang-Olufsen
+p:SES ASTRA,f:40
+1c53:00c00000:0457:0001:12:0
+STB Pesi
+p:SES ASTRA,f:40
+1c54:00c00000:0457:0001:12:0
+FP URMET
+p:SES ASTRA,f:40
+1c56:00c00000:0457:0001:12:0
+STB Siemens
+p:SES ASTRA,f:40
+6e5a:00c00000:0431:0001:12:0
+ARD-MHP-Data
+p:ARD,f:40
+185c:00c00000:0457:0001:12:0
+Proxy_txp2
+p:ses astra,f:40
+185d:00c00000:0457:0001:12:0
+VPN TXP-2
+p:ses astra,f:40
+1c60:00c00000:0457:0001:12:0
+STB Comag1
+p:SES ASTRA,f:40
+1c63:00c00000:0457:0001:12:0
+STB Panasonic
+p:SES ASTRA,f:40
+1c66:00c00000:0457:0001:12:0
+Datendienst T1M
+p:,f:40
+1c67:00c00000:0457:0001:12:0
+STB2 Globalteq
+p:SES ASTRA,f:40
+1c69:00c00000:0457:0001:12:0
+tvtv RP
+p:SES ASTRA,f:40
+1c6f:00c00000:0457:0001:12:0
+tvtv DIGITAL
+p:SES ASTRA,f:40
+1c70:00c00000:0457:0001:12:0
+KaCTFL
+p:,f:40
+1c73:00c00000:0457:0001:12:0
+VS Unique Promo
+p:SES ASTRA,f:40
+2773:00c00000:0402:0001:12:0
+Data System
+p:ASTRA,f:40
+0f77:00c00000:0005:0085:12:0
+BData6
+p:BetaDigital,f:40
+0f79:00c00000:0005:0085:12:0
+moreTV
+p:BetaDigital,f:40
+0f80:00c00000:0002:0085:12:0
+
+p:betaresearch,f:40
+0f82:00c00000:0021:0085:12:0
+BData1
+p:BetaDigital,f:40
+0f83:00c00000:0021:0085:12:0
+BData2
+p:BetaDigital,f:40
+0f86:00c00000:0001:0085:12:0
+BData3
+p:BetaDigital,f:40
+0f87:00c00000:0007:0085:12:0
+BData4
+p:BetaDigital,f:40
+3390:00c00000:045d:0001:12:0
+AlphaCrypt
+p:ORF,f:40
+2fa4:00c00000:0454:0001:12:0
+PVR service
+p:GIST,f:40
+0fa5:00c00000:0011:0085:12:0
+Samsung CAB IPDL
+p:,f:40
+0fa6:00c00000:0011:0085:12:0
+Philips dic 2221 IPDL
+p:,f:40
+0fa7:00c00000:0011:0085:12:0
+Thomson SAT IPDL
+p:,f:40
+0dac:00c00000:0002:0085:12:0
+CPT_TP69
+p:PREMIERE,f:40
+0dad:00c00000:0001:0085:12:0
+CPT_TP83
+p:PREMIERE,f:40
+0dae:00c00000:0003:0085:12:0
+CPT_TP65
+p:PREMIERE,f:40
+0daf:00c00000:0004:0085:12:0
+CPT_TP81
+p:PREMIERE,f:40
+0db0:00c00000:0011:0085:12:0
+CPT_TP67
+p:PREMIERE,f:40
+0fb5:00c00000:0004:0085:12:0
+Thomson CAB IPDL
+p:,f:40
+0fb6:00c00000:0004:0085:12:0
+Philips DIS2221 IPDL
+p:,f:40
+33b8:00c00000:045b:0001:12:0
+KAONMEDIA DOWNLOAD
+p:KAON,f:40
+33c2:00c00000:045b:0001:12:0
+OnL OTA
+p:ORF,f:40
+27c4:00c00000:0444:0001:12:0
+moreTV
+p:BetaDigital,f:40
+27c5:00c00000:0444:0001:12:0
+more TV 01
+p:,f:40
+27c6:00c00000:0444:0001:12:0
+more TV 02
+p:,f:40
+27c7:00c00000:0444:0001:12:0
+more TV 03
+p:,f:40
+27c8:00c00000:0444:0001:12:0
+more TV 04
+p:,f:40
+27cb:00c00000:0444:0001:12:0
+more TV 07
+p:,f:40
+79e1:00c00000:0443:0001:12:0
+Guide Plus+
+p:Gemstar-TV Guide Europe,f:40
+1ee6:00c00000:0457:0001:12:0
+SGI_1111
+p:SES ASTRA,f:40
+0ffa:00c00000:0451:0035:12:0
+Downl Philips
+p:CANALDIGITAAL,f:40
+0081:00c00000:0006:0085:25:0
+\86PREM\87IERE\86 HD\87
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+0082:00c00000:0006:0085:25:0
+\86DISC\87OVERY\86 HD\87
+p:PREMIERE,C:1833,C:1831,C:1830,f:40
+0083:00c00000:0006:0085:25:0
+ASTRA HD+
+p:BetaDigital,f:40
+0084:00c00000:0006:0085:25:0
+ANIXE HD
+p:BetaDigital,f:40
+258c:00c00000:0458:0001:25:0
+
+p:CSAT,f:40
+74cc:00c00000:03f8:0001:25:0
+CANAL+ HD
+p:DIGITAL+,f:40
+f1e0:00c00000:0421:0001:25:0
+ORF 1 HD
+p:ORF,f:40
+1c23:00c00000:0457:0001:128:0
+STB Setone
+p:SES ASTRA,f:40
+1c2a:00c00000:0457:0001:128:0
+STB Handan
+p:SES ASTRA,f:40
+1c2b:00c00000:0457:0001:128:0
+STB Hyundai
+p:SES ASTRA,f:40
+1c38:00c00000:0457:0001:128:0
+STB Skardin
+p:SES ASTRA,f:40
+1c3a:00c00000:0457:0001:128:0
+STB Philips
+p:SES ASTRA,f:40
+1c3b:00c00000:0457:0001:128:0
+STB Opentech
+p:SES ASTRA,f:40
+1c49:00c00000:0457:0001:128:0
+STB GSS
+p:SES ASTRA,f:40
+1c4b:00c00000:0457:0001:128:0
+STB Inverto
+p:SES ASTRA,f:40
+1c4f:00c00000:0457:0001:128:0
+Topfield
+p:SES ASTRA,f:40
+1c57:00c00000:0457:0001:128:0
+STB Adimo
+p:SES ASTRA,f:40
+1c58:00c00000:0457:0001:128:0
+GRUNDIG DVB
+p:SES ASTRA,f:40
+1c59:00c00000:0457:0001:128:0
+Nokia SW Update2
+p:SES ASTRA,f:40
+1c5b:00c00000:0457:0001:128:0
+Opentech
+p:SES ASTRA,f:40
+1c5c:00c00000:0457:0001:128:0
+SKYMASTER1
+p:SES ASTRA,f:40
+1c5d:00c00000:0457:0001:128:0
+STB DMT
+p:SES ASTRA,f:40
+1c5f:00c00000:0457:0001:128:0
+SKYMASTER2
+p:SES ASTRA,f:40
+1c65:00c00000:0457:0001:128:0
+STB Homecast
+p:SES ASTRA,f:40
+1c6d:00c00000:0457:0001:128:0
+STB Sandmartin
+p:SES ASTRA,f:40
+0bba:00c00000:0457:0001:128:0
+MMS1111A
+p:SES ASTRA,f:40
+000c:00c00000:0454:0001:129:0
+ASTRA SDT
+p:SES ASTRA,f:40
+000d:00c00000:0457:0001:129:0
+ASTRA SDT
+p:SES ASTRA,f:40
+1c34:00c00000:0457:0001:129:0
+Samsung2
+p:SES ASTRA,f:40
+33a4:00c00000:045d:0001:129:0
+VESTEL OAD2
+p:ORF,f:40
+33ae:00c00000:045d:0001:129:0
+VESTEL DOWNLOAD
+p:ORF,f:40
+74d3:00c00000:03f8:0001:129:0
+
+p:DIGITAL+,f:40
+00e1:00c00000:0447:0001:129:0
+PHILIPS DOWNLOAD 1.1
+p:WIZJA 1,f:40
+00e2:00c00000:0447:0001:129:0
+PHILIPS DOWNLOAD 1.2
+p:UPC DIRECT,f:40
+00e3:00c00000:0447:0001:129:0
+NAGRA DOWNLOAD
+p:UPC Direct,f:40
+00e4:00c00000:0447:0001:129:0
+HUMAX DOWNLOAD
+p:UPC Direct,f:40
+13eb:00c00000:0455:0035:129:0
+Downl
+p:CANALDIGITAAL,f:40
+1c30:00c00000:0457:0001:130:0
+HUMAX DOWNLOAD SVC
+p:SES ASTRA,f:40
+0066:00c00000:045c:0035:130:0
+HUMAX DOWNLOAD SVC
+p:,f:40
+0066:00c00000:045f:0035:130:0
+HUMAX DOWNLOAD SVC
+p:,f:40
+1932:00c00000:03fa:0001:132:0
+01 03 01 47
+p:CSAT,f:40
+193c:00c00000:03fa:0001:132:0
+01 03 04 51
+p:CSAT,f:40
+2067:00c00000:0430:0001:132:0
+01 04 04 51
+p:CSAT,f:40
+2068:00c00000:0430:0001:132:0
+01 04 01 47
+p:CSAT,f:40
+21cc:00c00000:0448:0001:132:0
+01 06 01 47
+p:CSAT,f:40
+21cd:00c00000:0448:0001:132:0
+01 07 01 47
+p:CSAT,f:40
+21ce:00c00000:0448:0001:132:0
+01 08 01 47
+p:CSAT,f:40
+21d6:00c00000:0448:0001:132:0
+01 06 04 51
+p:CSAT,f:40
+21d7:00c00000:0448:0001:132:0
+01 07 04 51
+p:CSAT,f:40
+21d8:00c00000:0448:0001:132:0
+01 08 04 51
+p:CSAT,f:40
+206a:00c00000:0430:0001:135:0
+CDSA
+p:CSAT,f:40
+2185:00c00000:0442:0001:135:0
+RADIO 1
+p:CSAT,f:40
+2186:00c00000:0442:0001:135:0
+RADIO 2
+p:CSAT,f:40
+2187:00c00000:0442:0001:135:0
+RADIO 3
+p:CSAT,f:40
+2188:00c00000:0442:0001:135:0
+RADIO FRANCE
+p:CSAT,f:40
+239d:00c00000:044a:0001:135:0
+BIENVENUE SUR ASTRA
+p:CSAT,f:40
+239f:00c00000:044a:0001:135:0
+EPG
+p:CSAT,f:40
+21c2:00c00000:0448:0001:135:0
+MOSA 2
+p:CSAT,f:40
+21c3:00c00000:0448:0001:135:0
+MOSA 3
+p:CSAT,f:40
+21c4:00c00000:0448:0001:135:0
+MOSA 4
+p:CSAT,f:40
+21c5:00c00000:0448:0001:135:0
+MOSA 5
+p:CSAT,f:40
+21c6:00c00000:0448:0001:135:0
+BIENVENUE SUR ASTRA
+p:CSAT,f:40
+2142:00c00000:0442:0001:138:0
+CANALSAT RADIOS
+p:CSAT,f:40
+2274:00c00000:0438:0001:138:0
+A LA CARTE
+p:CSAT,f:40
+239e:00c00000:044a:0001:138:0
+ESPACE CLIENT
+p:CSAT,f:40
+23a7:00c00000:044a:0001:138:0
+SITE 16/9
+p:IMEDIA,f:40
+21cf:00c00000:0448:0001:139:0
+02 01 01 83
+p:CSAT,f:40
+21d0:00c00000:0448:0001:139:0
+02 02 01 83
+p:CSAT,f:40
+21d1:00c00000:0448:0001:139:0
+02 04 01 83
+p:CSAT,f:40
+21d2:00c00000:0448:0001:139:0
+02 05 01 83
+p:IMEDIA,f:40
+21d3:00c00000:0448:0001:139:0
+02 06 01 83
+p:CSAT,f:40
+21d9:00c00000:0448:0001:139:0
+02 01 04 87
+p:CSAT,f:40
+21da:00c00000:0448:0001:139:0
+02 02 04 87
+p:CSAT,f:40
+21db:00c00000:0448:0001:139:0
+02 04 04 87
+p:CSAT,f:40
+21dc:00c00000:0448:0001:139:0
+02 05 04 87
+p:CSAT,f:40
+21dd:00c00000:0448:0001:139:0
+02 06 04 87
+p:CSAT,f:40
+1c83:00c00000:0457:0001:170:0
+Kathrein Download
+p:SES ASTRA,f:40
+1c33:00c00000:0457:0001:171:0
+SEMCO Download
+p:SES ASTRA,f:40
+1c3c:00c00000:0457:0001:171:0
+STB Radix
+p:RADIXdownload,f:40
+1c40:00c00000:0457:0001:171:0
+STB SMEL
+p:SES ASTRA,f:40
+1c4e:00c00000:0457:0001:171:0
+STB Aston2
+p:ASTON,f:40
+1c5a:00c00000:0457:0001:171:0
+STB Radix 128kbps
+p:RADIXdownload,f:40
+1c6c:00c00000:0457:0001:171:0
+HDS Europe
+p:SES ASTRA,f:40
+1c6e:00c00000:0457:0001:171:0
+STB Strong
+p:SES ASTRA,f:40
+0070:00c00000:045c:0035:171:0
+STB Technisat
+p:SES ASTRA,f:40
+0070:00c00000:045f:0035:171:0
+STB Technisat
+p:SES ASTRA,f:40
+1c76:00c00000:0457:0001:171:0
+STB SRADIX
+p:SES ASTRA,f:40
+0a82:00c00000:0004:0085:178:0
+Videotext
+p:BetaResearch,f:40
+0a94:00c00000:0011:0085:178:0
+TM V1.0
+p:Premiere World,f:40
+23b5:00c00000:044a:0001:192:0
+CODE DOWN
+p:CSAT,f:40
+23b6:00c00000:044a:0001:192:0
+DOWNLOAD MMAX SAGEM
+p:CSAT,f:40
+23b7:00c00000:044a:0001:192:0
+DOWNLOAD MMAX PHILIPS
+p:CSAT,f:40
+23b8:00c00000:044a:0001:192:0
+DOWNLOAD DUALS PHILIPS
+p:CSAT,f:40
+2007:00c00000:0434:0001:193:0
+DATA SYSTEM\8676\87
+p:CSAT,f:40
+251b:00c00000:043c:0001:193:0
+DATASYSTEM 84
+p:CSAT,f:40
+2327:00c00000:045a:0001:193:0
+DATASYSTEM \86114\87
+p:CSAT,f:40
+2133:00c00000:043e:0001:193:0
+DATA SYSTEM[86]
+p:CSAT,f:40
+233c:00c00000:0400:0001:193:0
+DATASYSTEMS TR 24
+p:CANALSATELLITE,f:40
+2647:00c00000:045e:0001:193:0
+DATA SYSTEM \86118\87
+p:CSAT,f:40
+1b58:00c00000:03fc:0001:193:0
+DATA SYSTEM
+p:CSAT,f:40
+1b58:00c00000:03fe:0001:193:0
+DATA SYSTEM
+p:CSAT,f:40
+225f:00c00000:044c:0001:193:0
+DATA SYSTEM[100]
+p:CSAT,f:40
+1963:00c00000:03fa:0001:193:0
+DATA SYSTEM \8618\87
+p:CSAT,f:40
+206b:00c00000:0430:0001:193:0
+DATA SYSTEM[72]
+p:CSAT,f:40
+6f71:00c00000:042c:0001:193:0
+DATA_SYS_68
+p:DT CSAT,f:40
+257f:00c00000:0440:0001:193:0
+DATASYSTEM 88
+p:CSAT,f:40
+0a83:00c00000:0004:0085:193:0
+NDS Applikation
+p:PREMIERE,f:40
+2197:00c00000:0442:0001:193:0
+DATA SYSTEM[90]
+p:CSAT,f:40
+1fa3:00c00000:042e:0001:193:0
+DATA SYSTEM[70]
+p:CSAT,f:40
+26ab:00c00000:0460:0001:193:0
+DATA SYSTEM \86120\87
+p:CSAT,f:40
+22c3:00c00000:0438:0001:193:0
+DATA SYSTEM\8680\87
+p:CSAT,f:40
+42cb:00c00000:0446:0001:193:0
+DATA SYSTEM TR94
+p:ABSAT,f:40
+20cf:00c00000:0432:0001:193:0
+DATA SYSTEM\8674\87
+p:CSAT,f:40
+25e3:00c00000:0458:0001:193:0
+DATA SYSTEM \86112\87
+p:CSAT,f:40
+6fea:00c00000:042a:0001:193:0
+Data_System_TR_66
+p:MTV Networks Europe,f:40
+23ef:00c00000:044a:0001:193:0
+DATA SYSTEM[98]
+p:CSAT,f:40
+21fb:00c00000:0448:0001:193:0
+DATA SYSTEM[96]
+p:CSAT,f:40
+6ffe:00c00000:0436:0001:193:0
+DATA SYSTEM TR 78
+p:MTV Networks Europe,f:40
+2012:00c00000:0430:0001:197:0
+PMU sur Canal+
+p:CSAT,f:40
+219c:00c00000:0448:0001:197:0
+MOSA 2
+p:CSAT,f:40
+219d:00c00000:0448:0001:197:0
+MOSA 3
+p:CSAT,f:40
+21a2:00c00000:0448:0001:197:0
+MOSA 5
+p:CSAT,f:40
+21a6:00c00000:0448:0001:197:0
+MOSA 4
+p:CSAT,f:40
+23c0:00c00000:044a:0001:197:0
+DT3
+p:CSAT,f:40
+213d:00c00000:0442:0001:198:0
+CANALSAT RADIOS
+p:CSAT,f:40
+213e:00c00000:0442:0001:198:0
+RADIOS 2
+p:CSAT,f:40
+213f:00c00000:0442:0001:198:0
+RADIOS 3
+p:CSAT,f:40
+2146:00c00000:0442:0001:198:0
+RF
+p:CSAT,f:40
+end
+Have a lot of bugs!
--- /dev/null
+<default>
+ <prerequisites>
+ <tag type="services" />
+ <bcastsystem type="DVB-S" />
+ <satellite type="130" />
+ </prerequisites>
+
+ <info>
+ <author>tmbinc@elitedvb.net</author>
+ <name>Hotbird (13.0E)</name>
+ </info>
+
+ <files type="directories">
+ <file type="services" name="lamedb.130">
+ </file>
+ </files>
+</default>
--- /dev/null
+<default>
+ <prerequisites>
+ <tag type="services" />
+ <bcastsystem type="DVB-S" />
+ <satellite type="192" />
+ </prerequisites>
+
+ <info>
+ <author>tmbinc@elitedvb.net</author>
+ <name>Astra (19.2E)</name>
+ </info>
+
+ <files type="directories">
+ <file type="services" name="lamedb.192">
+ </file>
+ </files>
+</default>
--- /dev/null
+DESCRIPTION = "Additional plugins for Enigma2"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+
+SRCDATE = "20090128"
+
+PACKAGES_DYNAMIC = "enigma2-plugin-*"
+
+# if you want experimental, use:
+REL_MAJOR="2"
+REL_MINOR="6"
+TAG = ""
+
+# if you want a 2.5-based release, use
+#REL_MAJOR="2"
+#REL_MINOR="5"
+#TAG = ";tag=${PN}_rel${REL_MAJOR}${REL_MINOR}"
+
+PV = "${REL_MAJOR}.${REL_MINOR}cvs${SRCDATE}"
+
+SRC_URI = "cvs://anonymous@cvs.schwerkraft.elitedvb.net/cvsroot/enigma2-plugins;module=enigma2-plugins;method=pserver${TAG};date=${SRCDATE}"
+FILES_${PN} += " /usr/share/enigma2 /usr/share/fonts "
+
+inherit autotools
+
+S = "${WORKDIR}/enigma2-plugins"
+
+DEPENDS = "${@get_version_depends(bb, d)} "
+DEPENDS += "enigma2 python-gdata "
+
+def get_version_depends(bb, d):
+ if bb.data.getVar('REL_MINOR', d, 1) > '4':
+ return "python-pyopenssl"
+ return ""
+
+python populate_packages_prepend () {
+ enigma2_plugindir = bb.data.expand('${libdir}/enigma2/python/Plugins', d)
+
+ do_split_packages(d, enigma2_plugindir, '(.*?/.*?)/.*', 'enigma2-plugin-%s', 'Enigma2 Plugin: %s', recursive=True, match_path=True, prepend=True)
+
+ def getControlLines(mydir, d, package):
+ import os
+ try:
+ src = open(mydir + package + "/CONTROL/control").read()
+ except IOError:
+ return
+ for line in src.split("\n"):
+ if line.startswith('Package: '):
+ full_package = line[9:]
+ if line.startswith('Depends: '):
+ depends = line[9:].split(', ')
+ # HACK: until enigma2-plugins made the switch we re-route some dependencies here
+ if 'twisted-web' in depends:
+ depends.remove('twisted-web')
+ depends.append('python-twisted-web')
+ bb.data.setVar('RDEPENDS_' + full_package, ' '.join(depends), d)
+ if line.startswith('Description: '):
+ bb.data.setVar('DESCRIPTION_' + full_package, line[13:], d)
+
+ mydir = bb.data.getVar('D', d, 1) + "/../enigma2-plugins/"
+ for package in bb.data.getVar('PACKAGES', d, 1).split():
+ getControlLines(mydir, d, package.split('-')[-1])
+}
--- /dev/null
+DESCRIPTION = "Skins for Enigma2"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+
+SRCDATE = "20090127"
+
+# if you want experimental, use:
+REL_MAJOR="2"
+REL_MINOR="6"
+TAG = ""
+
+# if you want a 2.5-based release, use
+#REL_MAJOR="2"
+#REL_MINOR="5"
+#TAG = ";tag=${PN}_rel${REL_MAJOR}${REL_MINOR}"
+
+PV = "${REL_MAJOR}.${REL_MINOR}cvs${SRCDATE}"
+
+SRC_URI = "cvs://anonymous@cvs.schwerkraft.elitedvb.net/cvsroot/enigma2-skins;module=enigma2-skins;method=pserver${TAG};date=${SRCDATE}"
+FILES_${PN} += " /usr/share/enigma2 /usr/share/fonts "
+PACKAGE_ARCH = "all"
+
+inherit autotools
+
+S = "${WORKDIR}/enigma2-skins"
+
+python populate_packages_prepend () {
+ if bb.data.expand('${REL_MINOR}', d) != "4":
+ enigma2_skindir = bb.data.expand('${datadir}/enigma2', d)
+ do_split_packages(d, enigma2_skindir, '(.*?)/.*', 'enigma2-skin-%s', 'Enigma2 Skin: %s', recursive=True, match_path=True, prepend=True)
+}
--- /dev/null
+DESCRIPTION = "streamproxy manages streaming data to a PC using enigma2"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+
+SRCDATE = "20080728"
+PV = "1.0cvs${SRCDATE}"
+
+SRC_URI = "cvs://anonymous@cvs.schwerkraft.elitedvb.net/cvsroot/streamproxy;module=enigma2-streamproxy;method=pserver"
+
+inherit autotools
+
+S = "${WORKDIR}/enigma2-streamproxy"
--- /dev/null
+DESCRIPTION = "Enigma2 is an experimental, but useful framebuffer-based frontend for DVB functions"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+DEPENDS = "jpeg libungif libmad libpng libsigc++-1.2 gettext-native \
+ dreambox-dvbincludes freetype libdvbsi++ python swig-native \
+ gstreamer gst-plugins-good gst-plugins-bad gst-plugins-ugly \
+ gst-plugin-dvbmediasink gst-plugin-fluendo-mpegdemux \
+ libfribidi libxmlccwrap libdreamdvd tuxbox-tuxtxt-32bpp"
+RDEPENDS = "python-codecs python-core python-datetime python-elementtree \
+ python-fcntl python-io python-math python-lang python-re \
+ python-stringold python-threading python-xml gst-plugin-decodebin \
+ gst-plugin-id3demux gst-plugin-mad gst-plugin-ogg gst-plugin-playbin \
+ gst-plugin-typefindfunctions gst-plugin-ivorbis gst-plugin-audioconvert \
+ gst-plugin-wavparse python-netclient gst-plugin-mpegstream gst-plugin-selector \
+ gst-plugin-flac gst-plugin-dvbmediasink gst-plugin-fluendo-mpegdemux \
+ gst-plugin-neonhttpsrc gst-plugin-mpegaudioparse gst-plugin-subparse \
+ eglibc-gconv-iso8859-15 \
+ ${@base_contains("MACHINE_FEATURES", "alsa", \
+ "gst-plugin-alsa alsa-conf", "gst-plugin-ossaudio", d)}"
+
+RDEPENDS_append_dm8000 = " gst-plugin-avi gst-plugin-matroska gst-plugin-qtdemux \
+ gst-plugin-cdxaparse gst-plugin-cdxaparse gst-plugin-cdio gst-plugin-vcdsrc"
+RDEPENDS_append_dm800 = " gst-plugin-matroska gst-plugin-qtdemux"
+
+DESCRIPTION_append_enigma2-plugin-extensions-cutlisteditor = "enables you to cut your movies."
+RDEPENDS_enigma2-plugin-extensions-cutlisteditor = "aio-grab"
+DESCRIPTION_append_enigma2-plugin-extensions-graphmultiepg = "shows a graphical timeline EPG."
+DESCRIPTION_append_enigma2-plugin-extensions-pictureplayer = "displays photos on the TV."
+DESCRIPTION_append_enigma2-plugin-systemplugins-frontprocessorupdate = "keeps your frontprocessor up to date."
+DESCRIPTION_append_enigma2-plugin-systemplugins-positionersetup = "helps you installing a motorized dish."
+DESCRIPTION_append_enigma2-plugin-systemplugins-satelliteequipmentcontrol = "allows you to fine-tune DiSEqC-settings."
+DESCRIPTION_append_enigma2-plugin-systemplugins-satfinder = "helps you to align your dish."
+DESCRIPTION_append_enigma2-plugin-systemplugins-skinselector = "shows a menu with selectable skins."
+DESCRIPTION_append_enigma2-plugin-systemplugins-videomode = "selects advanced video modes"
+RDEPENDS_enigma2-plugin-systemplugins-hotplug = "python-pkgutil"
+RDEPENDS_enigma2-plugin-extensions-dvdplayer = "libdreamdvd0"
+RDEPENDS_enigma2-plugin-extensions-dvdburn = "cdrkit dvdauthor dvd+rw-tools mjpegtools projectx python-imaging"
+RDEPENDS_enigma2-plugin-systemplugins-nfiflash = "python-twisted-web"
+
+export LD="${CXX}"
+
+PN = "enigma2"
+PR = "r0"
+SRCDATE = "20090214"
+SRCREV = "935c5f9abeb0d6189c57f8406855d8437db8b0db"
+
+# if you want experimental, use:
+REL_MAJOR="2"
+REL_MINOR="6"
+BRANCH = "master"
+
+# if you want a 2.5-based release, use
+#REL_MAJOR="2"
+#REL_MINOR="5"
+#BRANCH = "enigma2_rel${REL_MAJOR}${REL_MINOR}"
+
+PV = "${REL_MAJOR}.${REL_MINOR}git${SRCDATE}"
+
+SRC_URI = "git://git.opendreambox.org/git/enigma2.git;protocol=git;branch=${BRANCH} \
+ file://enigma2.sh \
+ file://tuxtxt_caching.patch;patch=1;pnum=1"
+
+SRC_URI_append_dm7025 = " file://enigma2-disable-iframesearch.patch;patch=1;pnum=1 \
+ file://enigma2-disable-hardware-mp3-decode.patch;patch=1;pnum=1"
+
+S = "${WORKDIR}/git"
+
+FILES_${PN} += "${datadir}/fonts"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit autotools pkgconfig
+
+bindir = "/usr/bin"
+sbindir = "/usr/sbin"
+
+EXTRA_OECONF = "--enable-maintainer-mode --with-target=native --with-libsdl=no"
+
+do_install_append() {
+ install -m 0755 ${WORKDIR}/enigma2.sh ${D}/usr/bin/
+}
+
+python populate_packages_prepend () {
+ enigma2_plugindir = bb.data.expand('${libdir}/enigma2/python/Plugins', d)
+
+ do_split_packages(d, enigma2_plugindir, '(.*?/.*?)/.*', 'enigma2-plugin-%s', '%s ', recursive=True, match_path=True, prepend=True)
+}
+
+do_stage_append() {
+ install -d ${STAGING_INCDIR}/enigma2
+ install -m 0644 ${S}/include/*.h ${STAGING_INCDIR}/enigma2
+ for dir in actions base components driver dvb dvb/lowlevel dvb_ci gdi gui mmi nav python service; do
+ install -d ${STAGING_INCDIR}/enigma2/lib/$dir;
+ install -m 0644 ${S}/lib/$dir/*.h ${STAGING_INCDIR}/enigma2/lib/$dir;
+ done
+}
--- /dev/null
+diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp
+index d395701..8b8ab31 100644
+--- a/lib/service/servicemp3.cpp
++++ b/lib/service/servicemp3.cpp
+@@ -372,6 +372,7 @@ eServiceMP3::eServiceMP3(const char *filename): m_filename(filename), m_pump(eAp
+ }
+ switch ( sourceinfo.audiotype )
+ {
++#if 0
+ case atMP3:
+ {
+ id3demux = gst_element_factory_make("id3demux", "id3demux");
+@@ -393,6 +394,7 @@ eServiceMP3::eServiceMP3(const char *filename): m_filename(filename), m_pump(eAp
+ all_ok = 1;
+ break;
+ }
++#endif
+ case atAAC:
+ {
+ if ( !audiodemux )
--- /dev/null
+Index: enigma2/lib/dvb/dvb.cpp
+===================================================================
+--- enigma2.orig/lib/dvb/dvb.cpp 2008-04-11 19:01:56.000000000 +0200
++++ enigma2/lib/dvb/dvb.cpp 2008-04-11 19:02:15.000000000 +0200
+@@ -845,7 +845,7 @@
+ }
+ #endif
+
+-#if 1 /* not yet */
++#if 0 /* not yet */
+ if (!m_iframe_search)
+ return len;
+
--- /dev/null
+#!/bin/sh
+
+/usr/bin/showiframe /boot/backdrop.mvi
+
+cd /home/root
+LD_PRELOAD=/usr/lib/libopen.so.0.0 /usr/bin/enigma2
+
+# enigma2 exit codes:
+#
+# 0 - restart enigma
+# 1 - halt
+# 2 - reboot
+#
+# >128 signal
+
+ret=$?
+case $ret in
+ 1)
+ /sbin/halt
+ ;;
+ 2)
+ /sbin/reboot
+ ;;
+ 4)
+ /sbin/rmmod lcd
+ /usr/sbin/fpupgrade --upgrade 2>&1 | tee /home/root/fpupgrade.log
+ sleep 1;
+ /sbin/rmmod fp
+ /sbin/modprobe fp
+ /sbin/reboot
+ ;;
+ *)
+ ;;
+esac
--- /dev/null
+diff --git a/data/setup.xml b/data/setup.xml
+index e2ab09b..823fa6f 100644
+--- a/data/setup.xml
++++ b/data/setup.xml
+@@ -23,6 +23,7 @@
+ <item level="0" text="Margin after record">config.recording.margin_after</item>
+ <item level="0" text="Show blinking clock in display during recording">config.usage.blinking_display_clock_during_recording</item>
+ <item level="2" text="Load Length of Movies in Movielist">config.usage.load_length_of_movies_in_moviellist</item>
++ <item level="1" text="Enable teletext caching">config.usage.enable_tt_caching</item>
+ <item level="1" text="Show positioner movement">config.usage.showdish</item>
+ <item level="1" text="Enable multiple bouquets">config.usage.multibouquet</item>
+ <item level="1" text="Change bouquets in quickzap">config.usage.quickzap_bouquet_change</item>
+diff --git a/lib/components/Makefile.am b/lib/components/Makefile.am
+index e377ab8..e45ae56 100644
+--- a/lib/components/Makefile.am
++++ b/lib/components/Makefile.am
+@@ -3,4 +3,4 @@ INCLUDES = \
+
+ noinst_LIBRARIES = libenigma_components.a
+
+-libenigma_components_a_SOURCES = scan.cpp file_eraser.cpp
++libenigma_components_a_SOURCES = scan.cpp file_eraser.cpp tuxtxtapp.cpp
+diff --git a/lib/components/tuxtxtapp.cpp b/lib/components/tuxtxtapp.cpp
+new file mode 100644
+index 0000000..b08694b
+--- /dev/null
++++ b/lib/components/tuxtxtapp.cpp
+@@ -0,0 +1,113 @@
++#include <lib/components/tuxtxtapp.h>
++#include <lib/base/init.h>
++#include <lib/base/init_num.h>
++#include <lib/driver/rc.h>
++#include <lib/gdi/lcd.h>
++#include <lib/gdi/fb.h>
++
++extern "C" int tuxtxt_run_ui(int pid, int demux);
++extern "C" int tuxtxt_init();
++extern "C" void tuxtxt_start(int tpid, int demux);
++extern "C" int tuxtxt_stop();
++extern "C" void tuxtxt_close();
++
++eAutoInitP0<eTuxtxtApp> init_eTuxtxtApp(eAutoInitNumbers::lowlevel, "Tuxtxt");
++eTuxtxtApp *eTuxtxtApp::instance;
++
++eTuxtxtApp::eTuxtxtApp() : pid(0), enableTtCaching(false), uiRunning(false)
++{
++ pthread_mutex_init( &cacheChangeLock, 0 );
++ if (!instance)
++ instance=this;
++}
++
++eTuxtxtApp::~eTuxtxtApp()
++{
++ if (instance==this)
++ instance=0;
++ kill();
++ pthread_mutex_destroy( &cacheChangeLock );
++}
++
++int eTuxtxtApp::startUi()
++{
++ if (pid && fbClass::getInstance()->lock() >= 0)
++ {
++ eDBoxLCD::getInstance()->lock();
++ eRCInput::getInstance()->lock();
++ pthread_mutex_lock( &cacheChangeLock );
++ uiRunning = true;
++ pthread_mutex_unlock( &cacheChangeLock );
++ run();
++ }
++ return 0;
++}
++
++void eTuxtxtApp::thread()
++{
++ hasStarted();
++ tuxtxt_run_ui(pid, demux);
++}
++
++void eTuxtxtApp::thread_finished()
++{
++ uiRunning = false;
++ eRCInput::getInstance()->unlock();
++ eDBoxLCD::getInstance()->unlock();
++ eDBoxLCD::getInstance()->update();
++ fbClass::getInstance()->unlock();
++}
++
++void eTuxtxtApp::initCache()
++{
++ if (enableTtCaching)
++ tuxtxt_init();
++}
++
++void eTuxtxtApp::freeCache()
++{
++ pthread_mutex_lock( &cacheChangeLock );
++ if ( !uiRunning )
++ {
++ tuxtxt_close();
++ pid = 0;
++ }
++ pthread_mutex_unlock( &cacheChangeLock );
++}
++
++void eTuxtxtApp::startCaching( int tpid, int tdemux)
++{
++ pid = tpid;
++ demux = tdemux;
++ if (enableTtCaching)
++ tuxtxt_start(pid, demux);
++}
++
++void eTuxtxtApp::stopCaching()
++{
++ pthread_mutex_lock( &cacheChangeLock );
++ if ( !uiRunning )
++ tuxtxt_stop();
++
++ pthread_mutex_unlock( &cacheChangeLock );
++}
++
++void eTuxtxtApp::setEnableTtCachingOnOff( int onoff )
++{
++ if (onoff && !enableTtCaching) // Switch caching on
++ {
++ enableTtCaching = true;
++ if (pid)
++ {
++ initCache();
++ startCaching(pid, demux);
++ }
++ }
++ else if (!onoff && enableTtCaching) // Switch caching off
++ {
++ enableTtCaching = false;
++ int savePid = pid;
++ freeCache();
++ pid = savePid;
++ }
++}
+diff --git a/lib/components/tuxtxtapp.h b/lib/components/tuxtxtapp.h
+new file mode 100644
+index 0000000..9cd8f0c
+--- /dev/null
++++ b/lib/components/tuxtxtapp.h
+@@ -0,0 +1,33 @@
++#ifndef __LIB_COMPONENTS_TUXTXTAPP_H__
++#define __LIB_COMPONENTS_TUXTXTAPP_H__
++
++#include <string>
++#include <lib/base/ebase.h>
++#include <lib/base/thread.h>
++
++class eTuxtxtApp: private eThread, public Object
++{
++#ifndef SWIG
++ int pid;
++ int demux;
++ bool enableTtCaching, uiRunning;
++ static eTuxtxtApp *instance;
++ pthread_mutex_t cacheChangeLock;
++
++ void thread();
++ void thread_finished();
++#endif
++public:
++ eTuxtxtApp();
++ ~eTuxtxtApp();
++ static eTuxtxtApp *getInstance() { return instance; }
++ int startUi();
++ void initCache();
++ void freeCache();
++ void startCaching( int tpid, int tdemux );
++ void stopCaching();
++ void resetPid() { pid = 0; demux = 0; }
++ void setEnableTtCachingOnOff( int onoff );
++};
++
++#endif // __LIB_COMPONENTS_TUXTXTAPP_H__
+diff --git a/lib/dvb/decoder.cpp b/lib/dvb/decoder.cpp
+index 065a49c..173f009 100644
+--- a/lib/dvb/decoder.cpp
++++ b/lib/dvb/decoder.cpp
+@@ -1,6 +1,7 @@
+ #include <lib/base/ebase.h>
+ #include <lib/base/eerror.h>
+ #include <lib/dvb/decoder.h>
++#include <lib/components/tuxtxtapp.h>
+ #if HAVE_DVB_API_VERSION < 3
+ #define audioStatus audio_status
+ #define videoStatus video_status
+@@ -974,7 +975,11 @@ int eTSMPEGDecoder::setState()
+ if (m_changed & changeText)
+ {
+ if (m_text)
++ {
+ m_text->stop();
++ if ( m_decoder == 0 ) // Tuxtxt caching actions only on primary decoder
++ eTuxtxtApp::getInstance()->stopCaching();
++ }
+ m_text = 0;
+ }
+ if (m_changed & changePCR)
+@@ -1015,7 +1020,16 @@ int eTSMPEGDecoder::setState()
+ m_text = new eDVBTText(m_demux);
+ if (m_text->startPid(m_textpid))
+ res = -1;
++
++ if ( m_decoder == 0 ) // Tuxtxt caching actions only on primary decoder
++ {
++ uint8_t demux = 0;
++ m_demux->getCADemuxID(demux);
++ eTuxtxtApp::getInstance()->startCaching(m_textpid, demux);
++ }
+ }
++ else if ( m_decoder == 0 ) // Tuxtxt caching actions only on primary decoder
++ eTuxtxtApp::getInstance()->resetPid();
+ m_changed &= ~changeText;
+ }
+ #endif
+@@ -1066,10 +1080,16 @@ eTSMPEGDecoder::eTSMPEGDecoder(eDVBDemux *demux, int decoder)
+ demux->connectEvent(slot(*this, &eTSMPEGDecoder::demux_event), m_demux_event_conn);
+ CONNECT(m_showSinglePicTimer->timeout, eTSMPEGDecoder::finishShowSinglePic);
+ m_is_ff = m_is_sm = m_is_trickmode = 0;
++
++ if ( m_decoder == 0 ) // Tuxtxt caching actions only on primary decoder
++ eTuxtxtApp::getInstance()->initCache();
+ }
+
+ eTSMPEGDecoder::~eTSMPEGDecoder()
+ {
++ if ( m_decoder == 0 ) // Tuxtxt caching actions only on primary decoder
++ eTuxtxtApp::getInstance()->freeCache();
++
+ finishShowSinglePic();
+ m_vpid = m_apid = m_pcrpid = m_textpid = pidNone;
+ m_changed = -1;
+diff --git a/lib/python/Components/UsageConfig.py b/lib/python/Components/UsageConfig.py
+index 21e057f..f2c864e 100644
+--- a/lib/python/Components/UsageConfig.py
++++ b/lib/python/Components/UsageConfig.py
+@@ -1,6 +1,6 @@
+ from Components.Harddisk import harddiskmanager
+ from config import ConfigSubsection, ConfigYesNo, config, ConfigSelection, ConfigText, ConfigNumber, ConfigSet, ConfigLocations
+-from enigma import Misc_Options, setTunerTypePriorityOrder;
++from enigma import Misc_Options, setTunerTypePriorityOrder, setEnableTtCachingOnOff
+ from SystemInfo import SystemInfo
+ import os
+
+@@ -17,6 +17,7 @@ def InitUsageConfig():
+ config.usage.show_infobar_on_zap = ConfigYesNo(default = True)
+ config.usage.show_infobar_on_skip = ConfigYesNo(default = True)
+ config.usage.show_infobar_on_event_change = ConfigYesNo(default = True)
++ config.usage.enable_tt_caching = ConfigYesNo(default = True)
+ config.usage.hdd_standby = ConfigSelection(default = "600", choices = [
+ ("0", _("no standby")), ("10", "10 " + _("seconds")), ("30", "30 " + _("seconds")),
+ ("60", "1 " + _("minute")), ("120", "2 " + _("minutes")),
+@@ -59,7 +60,11 @@ def InitUsageConfig():
+
+ config.usage.blinking_display_clock_during_recording = ConfigYesNo(default = False)
+ config.usage.load_length_of_movies_in_moviellist = ConfigYesNo(default = True)
+-
++
++ def EnableTtCachingChanged(configElement):
++ setEnableTtCachingOnOff(int(configElement.value))
++ config.usage.enable_tt_caching.addNotifier(EnableTtCachingChanged)
++
+ def TunerTypePriorityOrderChanged(configElement):
+ setTunerTypePriorityOrder(int(configElement.value))
+ config.usage.alternatives_priority.addNotifier(TunerTypePriorityOrderChanged)
+diff --git a/lib/python/enigma_python.i b/lib/python/enigma_python.i
+index bdf1b14..358dcfb 100644
+--- a/lib/python/enigma_python.i
++++ b/lib/python/enigma_python.i
+@@ -86,6 +86,7 @@ is usually caused by not marking PSignals as immutable.
+ #include <lib/dvb/pmt.h>
+ #include <lib/components/scan.h>
+ #include <lib/components/file_eraser.h>
++#include <lib/components/tuxtxtapp.h>
+ #include <lib/driver/avswitch.h>
+ #include <lib/driver/rfmod.h>
+ #include <lib/driver/misc_options.h>
+@@ -155,6 +156,9 @@ typedef long time_t;
+ %immutable eAVSwitch::vcr_sb_notifier;
+ %immutable ePythonMessagePump::recv_msg;
+ %immutable eDVBLocalTimeHandler::m_timeUpdated;
++%immutable eTuxtxtApp::appClosed;
++%immutable eTuxtxtApp::dataAvail;
++%immutable eTuxtxtApp::dataSent;
+ %include <lib/base/message.h>
+ %include <lib/base/nconfig.h>
+ %include <lib/driver/rc.h>
+@@ -199,6 +203,7 @@ typedef long time_t;
+ %include <lib/dvb/pmt.h>
+ %include <lib/components/scan.h>
+ %include <lib/components/file_eraser.h>
++%include <lib/components/tuxtxtapp.h>
+ %include <lib/driver/avswitch.h>
+ %include <lib/driver/rfmod.h>
+ %include <lib/driver/misc_options.h>
+@@ -303,6 +308,15 @@ void setTunerTypePriorityOrder(int order)
+ }
+ %}
+
++void setEnableTtCachingOnOff(int);
++%{
++void setEnableTtCachingOnOff(int onoff)
++{
++ eTuxtxtApp *tt = eTuxtxtApp::getInstance();
++ if (tt) tt->setEnableTtCachingOnOff(onoff);
++}
++%}
++
+ /************** temp *****************/
+
+ /* need a better place for this, i agree. */
+diff --git a/main/Makefile.am b/main/Makefile.am
+index 891b646..fed03bf 100644
+--- a/main/Makefile.am
++++ b/main/Makefile.am
+@@ -53,7 +53,7 @@ enigma2_LDADD = \
+ @LIBUNGIF_LIBS@ \
+ @XML2_LIBS@ \
+ @XMLCCWRAP_LIBS@ \
+- -ldl -lpthread -lcrypt -lresolv -lrt
++ -ldl -lpthread -lcrypt -lresolv -lrt -ltuxtxt32bpp
+
+ enigma2$(EXEEXT): $(enigma2_OBJECTS) $(enigma2_DEPENDENCIES) $(enigma2_LDADD_WHOLE)
+ # @rm -f enigma2$(EXEEXT)
--- /dev/null
+DESCRIPTION = "Fake locale support"
+SECTION = "base"
+PRIORITY = "required"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+PR = "r2"
+
+SRC_URI = "http://sources.dreamboxupdate.com/download/opendreambox/fakelocale.tar.gz file://locale.alias"
+
+S = "${WORKDIR}/fakelocale"
+
+LOCALEDIR = "${libdir}/locale"
+LOCALEDIR2 = "/usr/share/locale"
+
+LANGUAGES = "ar_AE cs_CZ da_DK de_DE el_GR es_ES et_EE fi_FI fr_FR fy_FY hr_HR \
+ hu_HU is_IS it_IT lt_LT nl_NL no_NO pl_PL pt_PT ro_RO ru_RU sk_SK sl_SI \
+ sr_YU sv_SE tr_TR ur_IN"
+
+RPROVIDES = "virtual-locale-ar virtual-locale-cs virtual-locale-da \
+ virtual-locale-de virtual-locale-el virtual-locale-es virtual-locale-et \
+ virtual-locale-fi virtual-locale-fr virtual-locale-fy virtual-locale-hr \
+ virtual-locale-hu virtual-locale-is virtual-locale-it virtual-locale-lt \
+ virtual-locale-nl virtual-locale-no virtual-locale-pl virtual-locale-pt \
+ virtual-locale-ro virtual-locale-ru virtual-locale-sk virtual-locale-sl \
+ virtual-locale-sr virtual-locale-sv virtual-locale-tr virtual-locale-ur"
+
+LOCALE_FILES = " LC_TIME LC_TELEPHONE LC_PAPER LC_NUMERIC LC_NAME LC_MONETARY LC_MESSAGES/SYS_LC_MESSAGES LC_MEASUREMENT \
+ LC_IDENTIFICATION LC_CTYPE LC_COLLATE LC_ADDRESS"
+
+do_install() {
+ install -d ${D}${LOCALEDIR}/fake/LC_MESSAGES
+ install -d ${D}${LOCALEDIR2}
+
+ for x in ${LOCALE_FILES}; do
+ install ${S}/$x ${D}${LOCALEDIR}/fake/$x
+ done
+
+ for lang in ${LANGUAGES}; do
+ ln -s fake ${D}${LOCALEDIR}/${lang}
+ done
+
+ install ${WORKDIR}/locale.alias ${D}${LOCALEDIR2}
+}
+
+FILES_${PN} = "${LOCALEDIR} ${LOCALEDIR2}"
+PACKAGE_ARCH = "all"
--- /dev/null
+English C
+Arabic ar_AE
+Czech cs_CZ
+Danish da_DK
+Deutsch de_DE
+Ellinika el_GR
+Spanish es_ES
+Estonian et_EE
+Suomi fi_FI
+French fr_FR
+Frisian fy_FY
+Croatia hr_HR
+Hungarian hu_HU
+Icelandic is_IS
+Italian it_IT
+Lithuanian lt_LT
+Dutch nl_NL
+Norwegian no_NO
+Polish pl_PL
+Portugues pt_PT
+Romania ro_RO
+Russian ru_RU
+Slovakian sk_SK
+Slovenian sl_SI
+Serbian sr_YU
+Svenska sv_SE
+Turkish tr_TR
+Urdu ur_IN
\ No newline at end of file
--- /dev/null
+--- flac-1.1.4/src/Makefile.am.orig 2004-12-25 01:11:45.000000000 +0100
++++ flac-1.1.4/src/Makefile.am 2004-12-25 01:12:10.000000000 +0100
+@@ -15,10 +15,6 @@
+ # restrictive of those mentioned above. See the file COPYING.Xiph in this
+ # distribution.
+
+-if FLaC__HAS_XMMS
+-XMMS_DIRS = plugin_common plugin_xmms
+-endif
+-
+ SUBDIRS = \
+ libFLAC \
+ libFLAC++ \
+@@ -26,7 +22,6 @@
+ flac \
+ metaflac \
+ monkeys_audio_utilities \
+- $(XMMS_DIRS) \
+ plugin_winamp2 \
+ test_grabbag \
+ test_libs_common \
--- /dev/null
+# CFLAGS and library paths for XMMS
+# written 15 December 1999 by Ben Gertzfield <che@debian.org>
+
+dnl Usage:
+dnl AM_PATH_XMMS([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl
+dnl Example:
+dnl AM_PATH_XMMS(0.9.5.1, , AC_MSG_ERROR([*** XMMS >= 0.9.5.1 not installed - please install first ***]))
+dnl
+dnl Defines XMMS_CFLAGS, XMMS_LIBS, XMMS_DATA_DIR, XMMS_PLUGIN_DIR,
+dnl XMMS_VISUALIZATION_PLUGIN_DIR, XMMS_INPUT_PLUGIN_DIR,
+dnl XMMS_OUTPUT_PLUGIN_DIR, XMMS_GENERAL_PLUGIN_DIR, XMMS_EFFECT_PLUGIN_DIR,
+dnl and XMMS_VERSION for your plugin pleasure.
+dnl
+
+dnl XMMS_TEST_VERSION(AVAILABLE-VERSION, NEEDED-VERSION [, ACTION-IF-OKAY [, ACTION-IF-NOT-OKAY]])
+AC_DEFUN(XMMS_TEST_VERSION, [
+
+# Determine which version number is greater. Prints 2 to stdout if
+# the second number is greater, 1 if the first number is greater,
+# 0 if the numbers are equal.
+
+# Written 15 December 1999 by Ben Gertzfield <che@debian.org>
+# Revised 15 December 1999 by Jim Monty <monty@primenet.com>
+
+ AC_PROG_AWK
+ xmms_got_version=[` $AWK ' \
+BEGIN { \
+ print vercmp(ARGV[1], ARGV[2]); \
+} \
+ \
+function vercmp(ver1, ver2, ver1arr, ver2arr, \
+ ver1len, ver2len, \
+ ver1int, ver2int, len, i, p) { \
+ \
+ ver1len = split(ver1, ver1arr, /\./); \
+ ver2len = split(ver2, ver2arr, /\./); \
+ \
+ len = ver1len > ver2len ? ver1len : ver2len; \
+ \
+ for (i = 1; i <= len; i++) { \
+ p = 1000 ^ (len - i); \
+ ver1int += ver1arr[i] * p; \
+ ver2int += ver2arr[i] * p; \
+ } \
+ \
+ if (ver1int < ver2int) \
+ return 2; \
+ else if (ver1int > ver2int) \
+ return 1; \
+ else \
+ return 0; \
+}' $1 $2`]
+
+ if test $xmms_got_version -eq 2; then # failure
+ ifelse([$4], , :, $4)
+ else # success!
+ ifelse([$3], , :, $3)
+ fi
+])
+
+AC_DEFUN(AM_PATH_XMMS,
+[
+AC_ARG_WITH(xmms-prefix,[ --with-xmms-prefix=PFX Prefix where XMMS is installed (optional)],
+ xmms_config_prefix="$withval", xmms_config_prefix="")
+AC_ARG_WITH(xmms-exec-prefix,[ --with-xmms-exec-prefix=PFX Exec prefix where XMMS is installed (optional)],
+ xmms_config_exec_prefix="$withval", xmms_config_exec_prefix="")
+
+if test x$xmms_config_exec_prefix != x; then
+ xmms_config_args="$xmms_config_args --exec-prefix=$xmms_config_exec_prefix"
+ if test x${XMMS_CONFIG+set} != xset; then
+ XMMS_CONFIG=$xmms_config_exec_prefix/bin/xmms-config
+ fi
+fi
+
+if test x$xmms_config_prefix != x; then
+ xmms_config_args="$xmms_config_args --prefix=$xmms_config_prefix"
+ if test x${XMMS_CONFIG+set} != xset; then
+ XMMS_CONFIG=$xmms_config_prefix/bin/xmms-config
+ fi
+fi
+
+AC_PATH_PROG(XMMS_CONFIG, xmms-config, no)
+min_xmms_version=ifelse([$1], ,0.9.5.1, $1)
+
+if test "$XMMS_CONFIG" = "no"; then
+ no_xmms=yes
+else
+ XMMS_CFLAGS=`$XMMS_CONFIG $xmms_config_args --cflags`
+ XMMS_LIBS=`$XMMS_CONFIG $xmms_config_args --libs`
+ XMMS_VERSION=`$XMMS_CONFIG $xmms_config_args --version`
+ XMMS_DATA_DIR=`$XMMS_CONFIG $xmms_config_args --data-dir`
+ XMMS_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --plugin-dir`
+ XMMS_VISUALIZATION_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args \
+ --visualization-plugin-dir`
+ XMMS_INPUT_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --input-plugin-dir`
+ XMMS_OUTPUT_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --output-plugin-dir`
+ XMMS_EFFECT_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --effect-plugin-dir`
+ XMMS_GENERAL_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --general-plugin-dir`
+
+ XMMS_TEST_VERSION($XMMS_VERSION, $min_xmms_version, ,no_xmms=version)
+fi
+
+AC_MSG_CHECKING(for XMMS - version >= $min_xmms_version)
+
+if test "x$no_xmms" = x; then
+ AC_MSG_RESULT(yes)
+ ifelse([$2], , :, [$2])
+else
+ AC_MSG_RESULT(no)
+
+ if test "$XMMS_CONFIG" = "no" ; then
+ echo "*** The xmms-config script installed by XMMS could not be found."
+ echo "*** If XMMS was installed in PREFIX, make sure PREFIX/bin is in"
+ echo "*** your path, or set the XMMS_CONFIG environment variable to the"
+ echo "*** full path to xmms-config."
+ else
+ if test "$no_xmms" = "version"; then
+ echo "*** An old version of XMMS, $XMMS_VERSION, was found."
+ echo "*** You need a version of XMMS newer than $min_xmms_version."
+ echo "*** The latest version of XMMS is always available from"
+ echo "*** http://www.xmms.org/"
+ echo "***"
+
+ echo "*** If you have already installed a sufficiently new version, this error"
+ echo "*** probably means that the wrong copy of the xmms-config shell script is"
+ echo "*** being found. The easiest way to fix this is to remove the old version"
+ echo "*** of XMMS, but you can also set the XMMS_CONFIG environment to point to the"
+ echo "*** correct copy of xmms-config. (In this case, you will have to"
+ echo "*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf"
+ echo "*** so that the correct libraries are found at run-time)"
+ fi
+ fi
+ XMMS_CFLAGS=""
+ XMMS_LIBS=""
+ ifelse([$3], , :, [$3])
+fi
+AC_SUBST(XMMS_CFLAGS)
+AC_SUBST(XMMS_LIBS)
+AC_SUBST(XMMS_VERSION)
+AC_SUBST(XMMS_DATA_DIR)
+AC_SUBST(XMMS_PLUGIN_DIR)
+AC_SUBST(XMMS_VISUALIZATION_PLUGIN_DIR)
+AC_SUBST(XMMS_INPUT_PLUGIN_DIR)
+AC_SUBST(XMMS_OUTPUT_PLUGIN_DIR)
+AC_SUBST(XMMS_GENERAL_PLUGIN_DIR)
+AC_SUBST(XMMS_EFFECT_PLUGIN_DIR)
+])
--- /dev/null
+require flac.inc
+PR = "r0"
+
+do_stage () {
+ autotools_stage_all
+}
--- /dev/null
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- freetype-2.0.9/builds/unix/install.mk 2004-11-11 20:18:08.000000000 +0100
++++ freetype-2.0.9/builds/unix/install.mk 2004-11-11 20:17:32.000000000 +0100
+@@ -17,42 +17,42 @@
+
+ # Unix installation and deinstallation targets.
+ install: $(PROJECT_LIBRARY)
+- $(MKINSTALLDIRS) $(libdir) \
+- $(includedir)/freetype2/freetype/config \
+- $(includedir)/freetype2/freetype/internal \
+- $(includedir)/freetype2/freetype/cache \
+- $(bindir)
+- $(LIBTOOL) --mode=install $(INSTALL) $(PROJECT_LIBRARY) $(libdir)
++ $(MKINSTALLDIRS) $(DESTDIR)$(libdir) \
++ $(DESTDIR)$(includedir)/freetype2/freetype/config \
++ $(DESTDIR)$(includedir)/freetype2/freetype/internal \
++ $(DESTDIR)$(includedir)/freetype2/freetype/cache \
++ $(DESTDIR)$(bindir)
++ $(LIBTOOL) --mode=install $(INSTALL) $(PROJECT_LIBRARY) $(DESTDIR)$(libdir)
+ -for P in $(PUBLIC_H) ; do \
+- $(INSTALL_DATA) $$P $(includedir)/freetype2/freetype ; \
++ $(INSTALL_DATA) $$P $(DESTDIR)$(includedir)/freetype2/freetype ; \
+ done
+ -for P in $(BASE_H) ; do \
+- $(INSTALL_DATA) $$P $(includedir)/freetype2/freetype/internal ; \
++ $(INSTALL_DATA) $$P $(DESTDIR)$(includedir)/freetype2/freetype/internal ; \
+ done
+ -for P in $(CONFIG_H) ; do \
+- $(INSTALL_DATA) $$P $(includedir)/freetype2/freetype/config ; \
++ $(INSTALL_DATA) $$P $(DESTDIR)$(includedir)/freetype2/freetype/config ; \
+ done
+ -for P in $(CACHE_H) ; do \
+- $(INSTALL_DATA) $$P $(includedir)/freetype2/freetype/cache ; \
++ $(INSTALL_DATA) $$P $(DESTDIR)$(includedir)/freetype2/freetype/cache ; \
+ done
+- $(INSTALL_DATA) $(BUILD)/ft2unix.h $(includedir)/ft2build.h
++ $(INSTALL_DATA) $(BUILD)/ft2unix.h $(DESTDIR)$(includedir)/ft2build.h
+ $(INSTALL_SCRIPT) -m 755 $(BUILD)/freetype-config \
+- $(bindir)/freetype-config
++ $(DESTDIR)$(bindir)/freetype-config
+
+
+ uninstall:
+- -$(LIBTOOL) --mode=uninstall $(RM) $(libdir)/$(LIBRARY).$A
+- -$(DELETE) $(includedir)/freetype2/freetype/cache/*
+- -$(DELDIR) $(includedir)/freetype2/freetype/cache
+- -$(DELETE) $(includedir)/freetype2/freetype/config/*
+- -$(DELDIR) $(includedir)/freetype2/freetype/config
+- -$(DELETE) $(includedir)/freetype2/freetype/internal/*
+- -$(DELDIR) $(includedir)/freetype2/freetype/internal
+- -$(DELETE) $(includedir)/freetype2/freetype/*
+- -$(DELDIR) $(includedir)/freetype2/freetype
+- -$(DELDIR) $(includedir)/freetype2
+- -$(DELETE) $(includedir)/ft2build.h
+- -$(DELETE) $(bindir)/freetype-config
++ -$(LIBTOOL) --mode=uninstall $(RM) $(DESTDIR)$(libdir)/$(LIBRARY).$A
++ -$(DELETE) $(DESTDIR)$(includedir)/freetype2/freetype/cache/*
++ -$(DELDIR) $(DESTDIR)$(includedir)/freetype2/freetype/cache
++ -$(DELETE) $(DESTDIR)$(includedir)/freetype2/freetype/config/*
++ -$(DELDIR) $(DESTDIR)$(includedir)/freetype2/freetype/config
++ -$(DELETE) $(DESTDIR)$(includedir)/freetype2/freetype/internal/*
++ -$(DELDIR) $(DESTDIR)$(includedir)/freetype2/freetype/internal
++ -$(DELETE) $(DESTDIR)$(includedir)/freetype2/freetype/*
++ -$(DELDIR) $(DESTDIR)$(includedir)/freetype2/freetype
++ -$(DELDIR) $(DESTDIR)$(includedir)/freetype2
++ -$(DELETE) $(DESTDIR)$(includedir)/ft2build.h
++ -$(DELETE) $(DESTDIR)$(bindir)/freetype-config
+
+
+ .PHONY: clean_project_unix distclean_project_unix
--- /dev/null
+SECTION = "libs"
+LICENSE = "freetype"
+DESCRIPTION = "Freetype font rendering library"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/freetype/freetype-${PV}.tar.bz2 \
+ file://install.mk.patch;patch=1"
+
+FILES_${PN} = "${libdir}/lib*.so.*"
+FILES_${PN}-dev += " ${bindir}"
+
+inherit autotools pkgconfig
+
+LIBTOOL = "${S}/builds/unix/${HOST_SYS}-libtool"
+EXTRA_OEMAKE = "'LIBTOOL=${LIBTOOL}'"
+
+do_configure () {
+ cd builds/unix
+ libtoolize --force
+ gnu-configize
+ aclocal -I .
+ autoconf
+ cd ${S}
+ oe_runconf
+}
+
+do_stage () {
+ oe_libinstall -so -a -C objs libfreetype ${STAGING_LIBDIR}
+
+ cp -a ${S}/include/*.h ${STAGING_INCDIR}
+ install -d ${STAGING_INCDIR}/freetype2
+ cp -a ${S}/include/freetype ${STAGING_INCDIR}/freetype2/
+
+ sed -e 's,${prefix},${STAGING_LIBDIR}/..,' < builds/unix/freetype-config > ${STAGING_BINDIR_CROSS}/freetype-config
+ chmod u+x ${STAGING_BINDIR_CROSS}/freetype-config
+}
--- /dev/null
+#diff -u -r1.89 fusermount.c
+--- /util/fusermount.c 27 Apr 2007 18:08:15 -0000 1.89
++++ /util/fusermount.c 3 Jun 2007 14:26:50 -0000
+@@ -30,7 +30,7 @@
+ #define FUSE_COMMFD_ENV "_FUSE_COMMFD"
+
+ #define FUSE_DEV_OLD "/proc/fs/fuse/dev"
+-#define FUSE_DEV_NEW "/dev/fuse"
++#define FUSE_DEV_NEW "/dev/misc/fuse"
+ #define FUSE_VERSION_FILE_OLD "/proc/fs/fuse/version"
+ #define FUSE_CONF "/etc/fuse.conf"
+
+--- /lib/mount.c.orig 2008-03-27 11:25:33.000000000 +0100
++++ /lib/mount.c 2008-03-27 11:25:44.000000000 +0100
+@@ -389,7 +389,7 @@
+ const char *mnt_opts)
+ {
+ char tmp[128];
+- const char *devname = "/dev/fuse";
++ const char *devname = "/dev/misc/fuse";
+ char *source = NULL;
+ char *type = NULL;
+ struct stat stbuf;
--- /dev/null
+diff -auNr fuse-2.7.3.orig/util/Makefile.am fuse-2.7.3/util/Makefile.am
+--- fuse-2.7.3.orig/util/Makefile.am 2008-12-30 01:43:44.000000000 +0100
++++ fuse-2.7.3/util/Makefile.am 2008-12-30 01:44:17.000000000 +0100
+@@ -33,10 +33,6 @@
+ $(INSTALL_PROGRAM) $(srcdir)/mount.fuse $(DESTDIR)$(MOUNT_FUSE_PATH)/mount.fuse
+ $(mkdir_p) $(DESTDIR)$(INIT_D_PATH)
+ $(INSTALL_PROGRAM) $(srcdir)/init_script $(DESTDIR)$(INIT_D_PATH)/fuse
+- @if test -x /usr/sbin/update-rc.d; then \
+- echo "/usr/sbin/update-rc.d fuse start 34 S . start 41 0 6 . || true"; \
+- /usr/sbin/update-rc.d fuse start 34 S . start 41 0 6 . || true; \
+- fi
+
+ install-data-local:
+ $(mkdir_p) $(DESTDIR)$(UDEV_RULES_PATH)
+@@ -46,7 +42,3 @@
+ rm -f $(DESTDIR)$(MOUNT_FUSE_PATH)/mount.fuse
+ rm -f $(DESTDIR)$(UDEV_RULES_PATH)/99-fuse.rules
+ rm -f $(DESTDIR)$(INIT_D_PATH)/fuse
+- @if test -x /usr/sbin/update-rc.d; then \
+- echo "/usr/sbin/update-rc.d fuse remove || true"; \
+- /usr/sbin/update-rc.d fuse remove || true; \
+- fi
--- /dev/null
+require fuse.inc
+
+RRECOMMENDS = "fuse"
+PR = "r0"
+
+S = "${WORKDIR}/fuse-${PV}"
+FILES_${PN} = "/dev ${base_libdir}/modules ${sysconfdir}"
+EXTRA_OECONF = " --enable-kernel-module --with-kernel=${STAGING_KERNEL_DIR}"
+
+inherit module
+
+do_configure() {
+ cd ${S} ; oe_runconf
+}
+
+do_compile(){
+ LDFLAGS=""
+ cd ${S}/kernel
+ oe_runmake
+}
+
+fakeroot do_install() {
+ LDFLAGS=""
+ install -d ${D}${sysconfdir}/udev/rules.d/
+ install -m 644 util/udev.rules ${D}${sysconfdir}/udev/rules.d/
+ cd ${S}/kernel
+ oe_runmake install DESTDIR=${D}
+}
+
--- /dev/null
+require fuse.inc
+
+PR = "r0"
+
+SRC_URI += "file://not-run-updaterc.d-on-host.patch;patch=1"
+SRC_URI_append_opendreambox = " file://dev_misc_fuse.patch;patch=1"
+
+EXTRA_OECONF = " --disable-kernel-module"
+
+#package utils in a sperate package and stop debian.bbclass renaming it to libfuse-utils, we want it to be fuse-utils
+PACKAGES =+ "fuse-utils-dbg fuse-utils libulockmgr libulockmgr-dev libulockmgr-dbg"
+FILES_${PN} += "${libdir}/libfuse.so.*"
+FILES_${PN}-dev += "${libdir}/libfuse*.la"
+
+FILES_libulockmgr = "${libdir}/libulockmgr.so.*"
+FILES_libulockmgr-dev += "${libdir}/libulock*.la"
+FILES_libulockmgr-dbg += "${libdir}/.debug/libulock*"
+
+FILES_fuse-utils = "${bindir} ${base_sbindir}"
+FILES_fuse-utils-dbg = "${bindir}/.debug ${base_sbindir}/.debug"
+DEBIAN_NOAUTONAME_fuse-utils = "1"
+DEBIAN_NOAUTONAME_fuse-utils-dbg = "1"
+
+fakeroot do_stage() {
+ autotools_stage_all
+}
+
+
--- /dev/null
+DESCRIPTION = "Plugin for gstreamer: dvbmediasink"
+SECTION = "multimedia"
+PRIORITY = "optional"
+MAINTAINER = "Felix Domke <tmbinc@openembedded.org>"
+DEPENDS = "gstreamer"
+PV = "0.10+cvs${SRCDATE}"
+PR = "r0"
+PR_dm7025 = "r1"
+
+inherit autotools pkgconfig
+
+SRCDATE = "20090208"
+SRCDATE_dm7025 = "20080907"
+
+SRC_URI = "cvs://anonymous@cvs.schwerkraft.elitedvb.net/cvsroot/dvbmediasink;module=dvbmediasink;method=pserver"
+
+S = "${WORKDIR}/dvbmediasink"
+
+FILES_${PN} = "${libdir}/gstreamer-0.10/*.so*"
+FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la \
+ ${libdir}/gstreamer-0.10/*.a"
+FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+do_stage() {
+ autotools_stage_all
+}
--- /dev/null
+DESCRIPTION = "Plugin for gstreamer: fluendo-mpegdemux"
+SECTION = "multimedia"
+PRIORITY = "optional"
+MAINTAINER = "Felix Domke <tmbinc@openembedded.org>"
+DEPENDS = "gstreamer"
+PR = "r0"
+
+inherit autotools pkgconfig
+
+SRC_URI = "http://core.fluendo.com/gstreamer/src/gst-fluendo-mpegdemux/gst-fluendo-mpegdemux-${PV}.tar.gz"
+S = "${WORKDIR}/gst-fluendo-mpegdemux-${PV}"
+
+FILES_${PN} = "${libdir}/gstreamer-0.10/*.so*"
+FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la \
+ ${libdir}/gstreamer-0.10/*.a"
+FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug"
+
+acpaths = "-I ${S}/common/m4 -I ${S}/m4"
+
+do_stage() {
+ autotools_stage_all
+}
--- /dev/null
+Index: gst/selector/gstinputselector.c
+===================================================================
+RCS file: /cvs/gstreamer/gst-plugins-bad/gst/selector/gstinputselector.c,v
+retrieving revision 1.15
+diff -u -B -b -p -r1.15 gstinputselector.c
+--- gst/selector/gstinputselector.c 15 Oct 2008 17:45:37 -0000 1.15
++++ gst/selector/gstinputselector.c 30 Oct 2008 11:54:05 -0000
+@@ -98,7 +98,7 @@ static GstPad *gst_input_selector_activa
+ GstPad * pad);
+ static GstPad *gst_input_selector_get_linked_pad (GstPad * pad,
+ gboolean strict);
+-static gboolean gst_input_selector_check_eos (GstElement * selector);
++static gboolean gst_input_selector_check_eos (GstInputSelector * selector);
+
+ #define GST_TYPE_SELECTOR_PAD \
+ (gst_selector_pad_get_type())
+@@ -154,6 +154,9 @@ static GstFlowReturn gst_selector_pad_ch
+ static GstFlowReturn gst_selector_pad_bufferalloc (GstPad * pad,
+ guint64 offset, guint size, GstCaps * caps, GstBuffer ** buf);
+
++static gboolean gst_input_selector_set_active_pad (GstInputSelector * self,
++ GstPad * pad, gint64 stop_time, gint64 start_time);
++
+ static GType
+ gst_selector_pad_get_type (void)
+ {
+@@ -346,13 +349,14 @@ gst_selector_pad_event (GstPad * pad, Gs
+ sel = GST_INPUT_SELECTOR (gst_pad_get_parent (pad));
+ selpad = GST_SELECTOR_PAD_CAST (pad);
+
+- /* only forward if we are dealing with the active sinkpad */
+- forward = gst_input_selector_is_active_sinkpad (sel, pad);
+-
+- /* forward all events in select_all mode by default */
+ if (sel->select_all) {
++ /* forward all events in select_all mode by default */
+ forward = TRUE;
+ }
++ else {
++ /* only forward if we are dealing with the active sinkpad */
++ forward = gst_input_selector_is_active_sinkpad (sel, pad);
++ }
+
+ switch (GST_EVENT_TYPE (event)) {
+ case GST_EVENT_FLUSH_START:
+@@ -361,7 +365,9 @@ gst_selector_pad_event (GstPad * pad, Gs
+ case GST_EVENT_FLUSH_STOP:
+ GST_INPUT_SELECTOR_LOCK (sel);
+ gst_selector_pad_reset (selpad);
++ gst_segment_init (&sel->segment, GST_FORMAT_UNDEFINED);
+ sel->pending_close = FALSE;
++ sel->running_time = -1;
+ GST_INPUT_SELECTOR_UNLOCK (sel);
+ break;
+ case GST_EVENT_NEWSEGMENT:
+@@ -370,6 +376,7 @@ gst_selector_pad_event (GstPad * pad, Gs
+ GstFormat format;
+ gdouble rate, arate;
+ gint64 start, stop, time;
++ gint64 sink_running;
+
+ gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format,
+ &start, &stop, &time);
+@@ -381,14 +388,40 @@ gst_selector_pad_event (GstPad * pad, Gs
+ G_GINT64_FORMAT, update, rate, arate, format, start, stop, time);
+
+ GST_INPUT_SELECTOR_LOCK (sel);
++ /* we take the object lock so that we can also take the running_time
++ * without taking the SELECTOR_LOCK */
+ GST_OBJECT_LOCK (selpad);
+ gst_segment_set_newsegment_full (&selpad->segment, update,
+ rate, arate, format, start, stop, time);
+ GST_OBJECT_UNLOCK (selpad);
+- /* we are not going to forward the segment, mark the segment as
+- * pending */
+- forward = FALSE;
++
++ sink_running = gst_segment_to_running_time (&selpad->segment,
++ selpad->segment.format, selpad->segment.last_stop);
++
++ GST_DEBUG_OBJECT (pad, "sink running_time %"GST_TIME_FORMAT,
++ GST_TIME_ARGS (sink_running));
++
++ if (sel->active_sinkpad == NULL) {
++ /* no active pad, see if we have a running time that is bigger than what
++ * we have on the srcpad. */
++ if (sink_running > sel->running_time) {
++ /* activate this pad */
++ GST_DEBUG_OBJECT (pad, "activating pad");
++
++ sel->active_sinkpad = gst_object_ref (pad);
++ forward = TRUE;
++ }
++ }
++ if (forward) {
++ gst_segment_set_newsegment_full (&sel->segment, update, rate,
++ arate, format, start, stop, time);
++ sel->running_time = gst_segment_to_running_time (&sel->segment,
++ sel->segment.format, sel->segment.last_stop);
++ selpad->segment_pending = FALSE;
++ }
++ else {
+ selpad->segment_pending = TRUE;
++ }
+ GST_INPUT_SELECTOR_UNLOCK (sel);
+
+ break;
+@@ -412,7 +445,7 @@ gst_selector_pad_event (GstPad * pad, Gs
+ selpad->eos = TRUE;
+ GST_DEBUG_OBJECT (pad, "received EOS");
+ /* don't forward eos in select_all mode until all sink pads have eos */
+- if (sel->select_all && !gst_input_selector_check_eos (GST_ELEMENT (sel))) {
++ if (sel->select_all && !gst_input_selector_check_eos (sel)) {
+ forward = FALSE;
+ }
+ break;
+@@ -558,7 +591,7 @@ gst_selector_pad_chain (GstPad * pad, Gs
+ GstSegment *cseg = &sel->segment;
+
+ GST_DEBUG_OBJECT (sel,
+- "pushing NEWSEGMENT update %d, rate %lf, applied rate %lf, "
++ "pushing close NEWSEGMENT update %d, rate %lf, applied rate %lf, "
+ "format %d, "
+ "%" G_GINT64_FORMAT " -- %" G_GINT64_FORMAT ", time %"
+ G_GINT64_FORMAT, TRUE, cseg->rate, cseg->applied_rate, cseg->format,
+@@ -573,7 +606,7 @@ gst_selector_pad_chain (GstPad * pad, Gs
+ /* if we have a pending segment, push it out now */
+ if (G_UNLIKELY (selpad->segment_pending)) {
+ GST_DEBUG_OBJECT (pad,
+- "pushing NEWSEGMENT update %d, rate %lf, applied rate %lf, "
++ "pushing pending NEWSEGMENT update %d, rate %lf, applied rate %lf, "
+ "format %d, "
+ "%" G_GINT64_FORMAT " -- %" G_GINT64_FORMAT ", time %"
+ G_GINT64_FORMAT, FALSE, seg->rate, seg->applied_rate, seg->format,
+@@ -820,6 +853,7 @@ gst_input_selector_init (GstInputSelecto
+ sel->active_sinkpad = NULL;
+ sel->padcount = 0;
+ gst_segment_init (&sel->segment, GST_FORMAT_UNDEFINED);
++ sel->running_time = -1;
+
+ sel->lock = g_mutex_new ();
+ sel->cond = g_cond_new ();
+@@ -1262,6 +1296,7 @@ gst_input_selector_reset (GstInputSelect
+ /* reset segment */
+ gst_segment_init (&sel->segment, GST_FORMAT_UNDEFINED);
+ sel->pending_close = FALSE;
++ sel->running_time = -1;
+ /* reset each of our sinkpads state */
+ for (walk = GST_ELEMENT_CAST (sel)->sinkpads; walk; walk = g_list_next (walk)) {
+ GstSelectorPad *selpad = GST_SELECTOR_PAD_CAST (walk->data);
+@@ -1362,14 +1397,16 @@ gst_input_selector_switch (GstInputSelec
+ }
+
+ static gboolean
+-gst_input_selector_check_eos (GstElement * selector)
++gst_input_selector_check_eos (GstInputSelector * selector)
+ {
+- GstIterator *it = gst_element_iterate_sink_pads (selector);
++ GstIterator *it;
+ GstIteratorResult ires;
+ gpointer item;
+ gboolean done = FALSE, is_eos = FALSE;
+ GstSelectorPad *pad;
+
++ it = gst_element_iterate_sink_pads (GST_ELEMENT_CAST (selector));
++
+ while (!done) {
+ ires = gst_iterator_next (it, &item);
+ switch (ires) {
+Index: gst/selector/gstinputselector.h
+===================================================================
+RCS file: /cvs/gstreamer/gst-plugins-bad/gst/selector/gstinputselector.h,v
+retrieving revision 1.4
+diff -u -B -b -p -r1.4 gstinputselector.h
+--- gst/selector/gstinputselector.h 20 Mar 2008 16:48:46 -0000 1.4
++++ gst/selector/gstinputselector.h 30 Oct 2008 11:54:05 -0000
+@@ -58,6 +58,8 @@ struct _GstInputSelector {
+ guint padcount;
+
+ GstSegment segment; /* the output segment */
++ gint64 running_time;
++
+ gboolean pending_close; /* if we should push a close first */
+
+ GMutex *lock;
--- /dev/null
+require gst-plugins.inc
+
+SRC_URI += "file://gst-plugins-directfb-fix.patch;patch=1;pnum=2"
+DEPENDS += "gst-plugins-base"
--- /dev/null
+require gst-plugins.inc
+
+do_configure_prepend() {
+ sed -i -e s:docs::g Makefile.am
+}
+
+SRC_URI += "file://gst-plugins-directfb-fix.patch;patch=1;pnum=2 \
+ file://input-selector-segment.patch;patch=1;pnum=0"
+
+DEPENDS += "gst-plugins-base"
+
+EXTRA_OECONF_opendreambox += "--disable-apexsink "
+
--- /dev/null
+diff -auNr gst-plugins-base-0.10.21/gst/subparse/Makefile.am gst-plugins-base-0.10.21_samihack/gst/subparse/Makefile.am
+--- gst-plugins-base-0.10.21/gst/subparse/Makefile.am 2008-09-10 10:02:38.000000000 +0000
++++ gst-plugins-base-0.10.21_samihack/gst/subparse/Makefile.am 2008-12-09 07:48:49.000000000 +0000
+@@ -1,10 +1,6 @@
+ plugin_LTLIBRARIES = libgstsubparse.la
+
+-if USE_XML
+ SAMIPARSE_SOURCES = samiparse.c samiparse.h
+-else
+-SAMIPARSE_SOURCES =
+-endif
+
+ libgstsubparse_la_SOURCES = \
+ gstssaparse.c \
+diff -auNr gst-plugins-base-0.10.21/gst/subparse/samiparse.c gst-plugins-base-0.10.21_samihack/gst/subparse/samiparse.c
+--- gst-plugins-base-0.10.21/gst/subparse/samiparse.c 2008-09-10 10:02:39.000000000 +0000
++++ gst-plugins-base-0.10.21_samihack/gst/subparse/samiparse.c 2008-12-09 07:50:06.000000000 +0000
+@@ -19,6 +19,7 @@
+
+ #include "samiparse.h"
+
++#ifndef GST_DISABLE_XML
+ #include <libxml/HTMLparser.h>
+ #include <string.h>
+
+@@ -464,3 +465,33 @@
+ }
+ return NULL;
+ }
++
++#else /* GST_DISABLE_XML */
++
++gchar *
++parse_sami (ParserState * state, const gchar * line)
++{
++ /* our template caps should not include sami in this case */
++ g_assert_not_reached ();
++}
++
++void
++sami_context_init (ParserState * state)
++{
++ return;
++}
++
++void
++sami_context_deinit (ParserState * state)
++{
++ return;
++}
++
++void
++sami_context_reset (ParserState * state)
++{
++ return;
++}
++
++#endif /* GST_DISABLE_XML */
++
--- /dev/null
+require gst-plugins.inc
+
+PROVIDES += "gst-plugins"
+
+# gst-plugins-base only builds the alsa plugin
+# if alsa has been built and is present. You will
+# not get an error if this is not present, just
+# a missing alsa plugin
+DEPENDS += "alsa-lib"
+
+PR = "r0"
+
--- /dev/null
+require gst-plugins.inc
+
+do_configure_prepend() {
+ sed -i -e s:docs::g Makefile.am
+}
+
+SRC_URI += "file://samihack.patch;patch=1"
+
+PROVIDES += "gst-plugins"
+
+# gst-plugins-base only builds the alsa plugin
+# if alsa has been built and is present. You will
+# not get an error if this is not present, just
+# a missing alsa plugin
+DEPENDS += "alsa-lib"
+
+PR = "r0"
+
--- /dev/null
+--- sys/v4l2/v4l2src_calls.c 2008/08/26 12:27:11 1.89
++++ sys/v4l2/v4l2src_calls.c 2008/10/31 10:08:50 1.90
+@@ -469,16 +469,24 @@
+ case V4L2_PIX_FMT_WNVA: /* Winnov hw compres */
+ return 0;
+
++#ifdef V4L2_PIX_FMT_SBGGR8
+ case V4L2_PIX_FMT_SBGGR8:
+ return BAYER_BASE_RANK;
++#endif
+
++#ifdef V4L2_PIX_FMT_SN9C10X
+ case V4L2_PIX_FMT_SN9C10X:
+ return S910_BASE_RANK;
++#endif
+
++#ifdef V4L2_PIX_FMT_PWC1
+ case V4L2_PIX_FMT_PWC1:
+ return PWC_BASE_RANK;
++#endif
++#ifdef V4L2_PIX_FMT_PWC2
+ case V4L2_PIX_FMT_PWC2:
+ return PWC_BASE_RANK;
++#endif
+
+ default:
+ break;
--- /dev/null
+require gst-plugins.inc
+PR = "r0"
+
+EXTRA_OECONF += "--with-check=no"
+DEPENDS += "gst-plugins-base"
--- /dev/null
+require gst-plugins.inc
+PR = "r0"
+
+do_configure_prepend() {
+ sed -i -e s:docs::g Makefile.am
+}
+
+SRC_URI += "file://v4l2src_fixformats.patch;patch=1;pnum=0"
+
+EXTRA_OECONF += "--with-check=no "
+DEPENDS += "gst-plugins-base"
--- /dev/null
+diff -auNr gst-plugins-ugly-0.10.10/ext/mad/gstmad.c gst-plugins-ugly-0.10.10-gstmad_16bit/ext/mad/gstmad.c
+--- gst-plugins-ugly-0.10.10/ext/mad/gstmad.c 2008-11-08 15:48:46.000000000 +0100
++++ gst-plugins-ugly-0.10.10-gstmad_16bit/ext/mad/gstmad.c 2008-12-09 13:03:48.000000000 +0100
+@@ -65,8 +65,8 @@
+ GST_STATIC_CAPS ("audio/x-raw-int, "
+ "endianness = (int) " G_STRINGIFY (G_BYTE_ORDER) ", "
+ "signed = (boolean) true, "
+- "width = (int) 32, "
+- "depth = (int) 32, "
++ "width = (int) 16, "
++ "depth = (int) 16, "
+ "rate = (int) { 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, "
+ "channels = (int) [ 1, 2 ]")
+ );
+@@ -407,7 +407,7 @@
+
+ mad = GST_MAD (GST_PAD_PARENT (pad));
+
+- bytes_per_sample = mad->channels * 4;
++ bytes_per_sample = mad->channels << 1;
+
+ switch (src_format) {
+ case GST_FORMAT_BYTES:
+@@ -832,13 +832,11 @@
+ return res;
+ }
+
+-static inline gint32
++static inline gint16
+ scale (mad_fixed_t sample)
+ {
+-#if MAD_F_FRACBITS < 28
+ /* round */
+- sample += (1L << (28 - MAD_F_FRACBITS - 1));
+-#endif
++ sample += (1L << (MAD_F_FRACBITS - 16));
+
+ /* clip */
+ if (sample >= MAD_F_ONE)
+@@ -846,13 +844,8 @@
+ else if (sample < -MAD_F_ONE)
+ sample = -MAD_F_ONE;
+
+-#if MAD_F_FRACBITS < 28
+ /* quantize */
+- sample >>= (28 - MAD_F_FRACBITS);
+-#endif
+-
+- /* convert from 29 bits to 32 bits */
+- return (gint32) (sample << 3);
++ return sample >> (MAD_F_FRACBITS + 1 - 16);
+ }
+
+ /* do we need this function? */
+@@ -1263,8 +1256,8 @@
+ caps = gst_caps_new_simple ("audio/x-raw-int",
+ "endianness", G_TYPE_INT, G_BYTE_ORDER,
+ "signed", G_TYPE_BOOLEAN, TRUE,
+- "width", G_TYPE_INT, 32,
+- "depth", G_TYPE_INT, 32,
++ "width", G_TYPE_INT, 16,
++ "depth", G_TYPE_INT, 16,
+ "rate", G_TYPE_INT, rate, "channels", G_TYPE_INT, nchannels, NULL);
+
+ gst_pad_set_caps (mad->srcpad, caps);
+@@ -1581,7 +1574,7 @@
+ to skip and send the remaining pcm samples */
+
+ GstBuffer *outbuffer = NULL;
+- gint32 *outdata;
++ gint16 *outdata;
+ mad_fixed_t const *left_ch, *right_ch;
+
+ if (mad->need_newsegment) {
+@@ -1612,7 +1605,7 @@
+ /* will attach the caps to the buffer */
+ result =
+ gst_pad_alloc_buffer_and_set_caps (mad->srcpad, 0,
+- nsamples * mad->channels * 4, GST_PAD_CAPS (mad->srcpad),
++ nsamples * mad->channels * 2, GST_PAD_CAPS (mad->srcpad),
+ &outbuffer);
+ if (result != GST_FLOW_OK) {
+ /* Head for the exit, dropping samples as we go */
+@@ -1625,7 +1618,7 @@
+ left_ch = mad->synth.pcm.samples[0];
+ right_ch = mad->synth.pcm.samples[1];
+
+- outdata = (gint32 *) GST_BUFFER_DATA (outbuffer);
++ outdata = (gint16 *) GST_BUFFER_DATA (outbuffer);
+
+ GST_DEBUG ("mad out timestamp %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (time_offset));
+@@ -1640,14 +1633,14 @@
+ gint count = nsamples;
+
+ while (count--) {
+- *outdata++ = scale (*left_ch++) & 0xffffffff;
++ *outdata++ = scale (*left_ch++) & 0xffff;
+ }
+ } else {
+ gint count = nsamples;
+
+ while (count--) {
+- *outdata++ = scale (*left_ch++) & 0xffffffff;
+- *outdata++ = scale (*right_ch++) & 0xffffffff;
++ *outdata++ = scale (*left_ch++) & 0xffff;
++ *outdata++ = scale (*right_ch++) & 0xffff;
+ }
+ }
+
--- /dev/null
+require gst-plugins.inc
+PR = "r0"
+
+DEPENDS += "gst-plugins-base ${@get_depends(bb, d)}"
+SRC_URI += "${@get_src_uri(bb, d)}"
+
+def get_src_uri(bb, d):
+ if bb.data.getVar('DISTRO', d, 1) in [ 'opendreambox' ]:
+ return ""
+ return "file://gstmad_16bit.patch;patch=1 " \
+ "file://gstsid_autofoo_HACK.patch;patch=1"
+
+def get_depends(bb, d):
+ if bb.data.getVar('DISTRO', d, 1) in [ 'opendreambox' ]:
+ return ""
+ return "libsidplay"
--- /dev/null
+DEPENDS = "gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad"
+PACKAGES_DYNAMIC = "gst-plugin-*"
--- /dev/null
+require gstreamer.inc
+
+PR = "r0"
+
+SRC_URI += "file://po-makefile-fix.patch;patch=1"
+
--- /dev/null
+DESCRIPTION = "This collection of code replaces the existing linux-hotplug \
+package with very tiny, compiled executable programs, instead of the \
+existing bash scripts."
+LICENSE = "GPL"
+RPROVIDES_${PN} = "hotplug"
+RCONFLICTS_${PN} = "hotplug"
+RREPLACES_${PN} = "hotplug"
+
+SRC_URI = "svn://svn.schwerkraft.elitedvb.net/svnroot;module=hotplug-ng"
+SRCDATE = "20080527"
+PV = "002+svn${SRCDATE}"
+
+S = "${WORKDIR}/hotplug-ng/trunk"
+
+LD = "${CC}"
+export HOSTCC = "${BUILD_CC}"
+CFLAGS = " -I${S}/libsysfs/sysfs"
+# Stripping should be done when _packaging_, not building
+EXTRA_OEMAKE += "'STRIP=/bin/true'"
+
+export etcdir = "${sysconfdir}"
+export sbindir = "${base_sbindir}"
+export bindir = "${base_bindir}"
+
+do_install () {
+ oe_runmake 'DESTDIR=${D}' install
+}
--- /dev/null
+export IMAGE_BASENAME = "dreambox-image"
+
+OPENDREAMBOX_COMMON = "\
+ task-boot \
+ task-opendreambox-base \
+ task-opendreambox-dvbapi \
+ task-opendreambox-ui \
+"
+
+# add bootstrap stuff
+DEPENDS = "${OPENDREAMBOX_COMMON}"
+IMAGE_INSTALL = "${OPENDREAMBOX_COMMON}"
+
+# we don't want any locales, at least not in the common way.
+IMAGE_LINGUAS = " "
+
+inherit image
+
+opendreambox_rootfs_postprocess() {
+ curdir=$PWD
+ cd ${IMAGE_ROOTFS}
+
+ # generate /etc/image-version
+ IMAGE_VERSION=`echo ${DISTRO_VERSION} | sed 's/\(.\)\.\(.\).\(.\)/\1\2\3/' `
+ IMAGE_DATE="$(date +%Y%m%d%H%M)"
+ IMAGE_TYPE="0"
+ echo "version=${IMAGE_TYPE}${IMAGE_VERSION}${IMAGE_DATE}" > etc/image-version
+ echo "comment=${DISTRO_NAME}" >> etc/image-version
+ echo "target=9" >> etc/image-version
+ echo "creator=OpenEmbedded <oe@dreamboxupdate.com>" >> etc/image-version
+ echo "url=http://www.dreamboxupdate.com/" >> etc/image-version
+ echo "catalog=http://www.dreamboxupdate.com/" >> etc/image-version
+
+ # because we're so used to it
+ ln -s opkg usr/bin/ipkg || true
+ ln -s opkg-cl usr/bin/ipkg-cl || true
+
+ cd $curdir
+}
+
+ROOTFS_POSTPROCESS_COMMAND += "opendreambox_rootfs_postprocess; "
+
+export NFO = '${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfo'
+
+generate_nfo() {
+ VER=`grep Version: "${IMAGE_ROOTFS}/usr/lib/ipkg/info/enigma2.control" | cut -b 10-12`
+ echo "Enigma2: Experimental ${VER}" > ${NFO}
+ echo "Machine: Dreambox ${MACHINE}" >> ${NFO}
+ DATE=`date +%Y-%m-%d' '%H':'%M`
+ echo "Date: ${DATE}" >> ${NFO}
+ echo "Issuer: Dream Multimedia TV" >> ${NFO}
+ echo "Link: ${DISTRO_FEED_URI}" >> ${NFO}
+ if [ "${DESC}" != "" ]; then
+ echo "Description: ${DESC}" >> ${NFO}
+ echo "${DESC}" >> ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.desc
+ fi
+ MD5SUM=`md5sum ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.nfi | cut -b 1-32`
+ echo "MD5: ${MD5SUM}" >> ${NFO}
+}
+
+do_rootfs_append_dm8000() {
+ generate_nfo
+}
+
--- /dev/null
+modprobe lcd
+mount -t proc proc /proc
+mount -t sysfs sysfs /sys
+depmod -Ae
+mount -at nonfs,nosmbfs,noncpfs,nocifs 2>/dev/null
+swapon -a
+tar xzf /etc/var.tar.gz -C /
+modprobe head
+modprobe dreambox_keyboard
+[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
+hostname -F /etc/hostname
+/usr/bin/wdog /usr/bin/dccamd -
+ifup -a
+mount -at nfs,smbfs,cpfs,cifs 2>/dev/null
+[ -e "/etc/sysctl.conf" ] && /sbin/sysctl -p "/etc/sysctl.conf"
+ldconfig
+ln -s demux0 /dev/dvb/card0/demux1
+ln -s dvr0 /dev/dvb/card0/dvr1
+ln -s fb/0 /dev/fb0
--- /dev/null
+modprobe lcd
+mount -t proc proc /proc
+mount -t sysfs sysfs /sys
+depmod -Ae
+mount -at nonfs,nosmbfs,noncpfs,nocifs 2>/dev/null
+swapon -a
+tar xzf /etc/var.tar.gz -C /
+# sleep after 10min
+hdparm -S120 /dev/ide/host0/bus0/target0/lun0/disc
+# CHECKME: mode to set, no UDMA on vulcan!
+# hdparm -X66 /dev/ide/host0/bus0/target0/lun0/disc
+# accustic management
+hdparm -M128 /dev/ide/host0/bus0/target0/lun0/disc
+modprobe head
+modprobe dreambox_keyboard
+[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
+hostname -F /etc/hostname
+/usr/bin/wdog /usr/bin/dccamd -
+ifup -a
+mount -at nfs,smbfs,cpfs,cifs 2>/dev/null
+[ -e "/etc/sysctl.conf" ] && /sbin/sysctl -p "/etc/sysctl.conf"
+ldconfig
+ln -s demux0 /dev/dvb/card0/demux1
+ln -s dvr0 /dev/dvb/card0/dvr1
+ln -s fb/0 /dev/fb0
--- /dev/null
+modprobe lcd
+echo 4 > /proc/progress
+
+mount -t proc proc /proc
+echo 8 > /proc/progress
+
+mount -t sysfs sysfs /sys
+echo 12 > /proc/progress
+
+depmod -Ae
+echo 16 > /proc/progress
+
+mount -at nonfs,nosmbfs,noncpfs,nocifs 2>/dev/null
+echo 20 > /proc/progress
+
+swapon -a
+echo 24 > /proc/progress
+
+tar xzf /etc/var.tar.gz -C /
+echo 28 > /proc/progress
+
+# sleep after 10min
+hdparm -S120 /dev/ide/host0/bus0/target0/lun0/disc
+echo 32 > /proc/progress
+# set UDMA66
+hdparm -X66 /dev/ide/host0/bus0/target0/lun0/disc
+echo 34 > /proc/progress
+# accustic management
+hdparm -M128 /dev/ide/host0/bus0/target0/lun0/disc
+
+echo 38 > /proc/progress
+modprobe head
+
+echo 42 > /proc/progress
+modprobe dreambox_keyboard
+
+echo 46 > /proc/progress
+modprobe fp
+
+echo 50 > /proc/progress
+modprobe rfmod
+
+echo 54 > /proc/progress
+[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe
+
+echo 58 > /proc/progress
+/boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
+
+echo 62 > /proc/progress
+hostname -F /etc/hostname
+
+echo 66 > /proc/progress
+/usr/bin/wdog /usr/bin/dccamd -
+
+echo 70 > /proc/progress
+ifup -a
+
+echo 78 > /proc/progress
+mount -at nfs,smbfs,cpfs,cifs 2>/dev/null
+
+echo 82 > /proc/progress
+[ -e "/etc/sysctl.conf" ] && /sbin/sysctl -p "/etc/sysctl.conf"
+
+echo 86 > /proc/progress
+ldconfig
+
+echo 90 > /proc/progress
+
+echo 94 > /proc/progress
--- /dev/null
+echo 4 > /proc/progress
+[ -e /dev/dbox/oled0 ] && ln -s /dev/dbox/oled0 /dev/dbox/lcd0
+
+mount -t sysfs sysfs /sys
+echo 12 > /proc/progress
+
+depmod -Ae
+echo 16 > /proc/progress
+
+for mod in cifs autofs4 vfat; do
+ modprobe $mod
+done
+echo 18 > /proc/progress
+
+mount -at nonfs,nosmbfs,noncpfs,nocifs
+echo 22 > /proc/progress
+
+swapon -a
+echo 24 > /proc/progress
+
+tar xzf /etc/var.tar.gz -C /
+echo 28 > /proc/progress
+
+# sleep after 10min
+hdparm -S120 /dev/discs/disc0/disc
+echo 32 > /proc/progress
+# set UDMA66
+hdparm -X66 /dev/discs/disc0/disc
+echo 34 > /proc/progress
+# accustic management
+hdparm -M128 /dev/discs/disc0/disc
+
+echo 44 > /proc/progress
+for mod in xilleon dreambox_keyboard fp rt73 zd1211b rfmod; do
+ modprobe $mod
+done
+
+echo 50 > /proc/progress
+
+echo 54 > /proc/progress
+[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
+
+echo 62 > /proc/progress
+hostname -F /etc/hostname
+
+echo 66 > /proc/progress
+/usr/bin/wdog /usr/bin/dccamd -
+
+echo 70 > /proc/progress
+
+echo 78 > /proc/progress
+
+echo 82 > /proc/progress
+[ -e "/etc/sysctl.conf" ] && /sbin/sysctl -p "/etc/sysctl.conf"
+
+echo 86 > /proc/progress
+ldconfig
+
+echo 90 > /proc/progress
+
+echo 94 > /proc/progress
--- /dev/null
+echo 10 > /proc/progress
+[ -e /dev/dbox/oled0 ] && ln -s /dev/dbox/oled0 /dev/dbox/lcd0
+
+mount -t sysfs sysfs /sys
+echo 12 > /proc/progress
+
+depmod -Ae
+echo 13 > /proc/progress
+
+for mod in cifs usb-storage sd_mod autofs4 vfat; do
+ modprobe $mod
+done
+
+mount -at nonfs,nosmbfs,noncpfs,nocifs
+echo 14 > /proc/progress
+
+swapon -a
+echo 15 > /proc/progress
+
+tar xzf /etc/var.tar.gz -C /
+echo 16 > /proc/progress
+
+# sleep after 10min
+hdparm -S120 /dev/discs/disc0/disc
+
+echo 17 > /proc/progress
+
+# set UDMA66, enable dma
+hdparm -d1 /dev/discs/disc0/disc
+hdparm -X66 /dev/discs/disc0/disc
+
+# accustic management
+hdparm -M128 /dev/discs/disc0/disc
+
+echo 18 > /proc/progress
+for mod in dreambox_keyboard fp bcm7401; do
+ modprobe $mod
+done
+
+echo 19 > /proc/progress
+
+cat /etc/videomode > /proc/stb/video/videomode
+
+echo 20 > /proc/progress
+
+for mod in rt73 zd1211b; do
+ modprobe $mod
+done
+
+echo 21 > /proc/progress
+
+[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
+
+hostname -F /etc/hostname
+
+echo 22 > /proc/progress
+/usr/bin/wdog /usr/bin/dccamd -
+
+echo 23 > /proc/progress
+
+[ -e "/etc/sysctl.conf" ] && /sbin/sysctl -p "/etc/sysctl.conf"
+
+echo 24 > /proc/progress
+
+ldconfig
+
+echo 25 > /proc/progress
+
+opkg-cl configure
--- /dev/null
+#! /bin/sh
+#
+# halt Execute the halt command.
+#
+# Version: @(#)halt 2.84-2 07-Jan-2002 miquels@cistron.nl
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+
+# See if we need to cut the power.
+if test -x /etc/init.d/ups-monitor
+then
+ /etc/init.d/ups-monitor poweroff
+fi
+
+# Don't shut down drives if we're using RAID.
+hddown="-h"
+if grep -qs '^md.*active' /proc/mdstat
+then
+ hddown=""
+fi
+
+showiframe /usr/share/switchoff.mvi
+
+halt -d -f -i -p $hddown
+
+: exit 0
--- /dev/null
+echo 10 > /proc/progress
+[ -e /dev/dbox/oled0 ] && ln -s /dev/dbox/oled0 /dev/dbox/lcd0
+
+mount -t sysfs sysfs /sys
+echo 11 > /proc/progress
+
+depmod -Ae
+echo 12 > /proc/progress
+
+for mod in isofs cifs usb-storage sd_mod autofs4 vfat ide-cd cdfs; do
+ modprobe $mod
+done
+
+echo 13 > /proc/progress
+
+(sleep 10; cat /etc/fscking.raw > /dev/dbox/oled0; sleep 1d) &
+pid=$!
+mount -at nonfs,nosmbfs,noncpfs,nocifs
+kill $pid
+
+echo 14 > /proc/progress
+
+swapon -a
+echo 15 > /proc/progress
+
+tar xzf /etc/var.tar.gz -C /
+echo 16 > /proc/progress
+
+# sleep after 10min
+hdparm -S120 /dev/discs/disc0/disc
+
+echo 17 > /proc/progress
+
+# set UDMA66, enable dma
+hdparm -d1 /dev/discs/disc0/disc
+hdparm -X66 /dev/discs/disc0/disc
+
+# accustic management
+hdparm -M128 /dev/discs/disc0/disc
+
+# disable dma for cd drive ...
+# we remove this when the dma timeout problem is fixed!
+hdparm -d0 /dev/ide/host0/bus0/target0/lun0/cd
+
+echo 18 > /proc/progress
+for mod in dreambox_keyboard fp bcm7400; do
+ modprobe $mod
+done
+
+echo 19 > /proc/progress
+
+cat /etc/videomode > /proc/stb/video/videomode
+
+echo 20 > /proc/progress
+
+for mod in rt73 zd1211b; do
+ modprobe $mod
+done
+
+echo "loading madwifi modules"
+for x in wlan ath_rate; do
+ for mod in `ls /lib/modules/$(uname -r)/net | grep $x | cut -d . -f 0`; do
+ modprobe $mod
+ done
+done
+modprobe ath_pci
+
+echo 21 > /proc/progress
+
+[ -e /etc/dropbear/dropbear_rsa_host_key ] && /usr/bin/showiframe /boot/bootlogo.mvi || /usr/bin/showiframe /boot/bootlogo_wait.mvi
+
+hostname -F /etc/hostname
+
+echo 22 > /proc/progress
+
+/usr/bin/wdog /usr/bin/dccamd -
+
+echo 23 > /proc/progress
+
+[ -e "/etc/sysctl.conf" ] && /sbin/sysctl -p "/etc/sysctl.conf"
+
+echo 24 > /proc/progress
+
+ldconfig
+
+echo 25 > /proc/progress
+
+opkg-cl configure
--- /dev/null
+#!/bin/sh
+mount -at cifs,nfs,smbfs
--- /dev/null
+DESCRIPTION = "SysV init scripts (stripped) for opendreambox"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+SECTION = "base"
+PRIORITY = "required"
+DEPENDS = "makedevs"
+RDEPENDS = "makedevs"
+PROVIDES = "initscripts"
+RPROVIDES_${PN} = "initscripts"
+LICENSE = "GPL"
+PR = "r19"
+
+FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/${P}', '${FILE_DIRNAME}/initscripts-${PV}', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+SRC_URI = "file://halt \
+ file://umountfs \
+ file://reboot \
+ file://single \
+ file://sendsigs \
+ file://rmnologin \
+ file://umountnfs.sh \
+ file://netmount.sh \
+ file://var.tar.gz.default \
+ file://bootup"
+
+SRC_URI_append_dm8000 = " file://fscking.raw"
+
+do_install () {
+#
+# Create directories and install device independent scripts
+#
+ install -d ${D}${sysconfdir}/init.d \
+ ${D}${sysconfdir}/rcS.d \
+ ${D}${sysconfdir}/rc0.d \
+ ${D}${sysconfdir}/rc1.d \
+ ${D}${sysconfdir}/rc2.d \
+ ${D}${sysconfdir}/rc3.d \
+ ${D}${sysconfdir}/rc4.d \
+ ${D}${sysconfdir}/rc5.d \
+ ${D}${sysconfdir}/rc6.d \
+ ${D}${sysconfdir}/default
+
+ install -m 0755 ${WORKDIR}/halt ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/reboot ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/rmnologin ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/sendsigs ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/single ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/bootup ${D}${sysconfdir}/init.d
+
+ install -m 0755 ${WORKDIR}/var.tar.gz.default ${D}${sysconfdir}/var.tar.gz
+
+#
+# Install device dependent scripts
+#
+ if [ "${MACHINE}" = "dm600pvr" -o "${MACHINE}" = "dm500plus" ]; then
+ head -n 4 ${WORKDIR}/umountfs > ${D}${sysconfdir}/init.d/umountfs
+ echo "cd /tmp" >> ${D}${sysconfdir}/init.d/umountfs
+ tail -n 14 ${WORKDIR}/umountfs >> ${D}${sysconfdir}/init.d/umountfs
+ chmod 0755 ${D}${sysconfdir}/init.d/umountfs
+ ln -sf /usr/bin/showshutdownpic ${D}${sysconfdir}/rc0.d/S89showshutdownpic
+ else
+ install -m 0755 ${WORKDIR}/umountfs ${D}${sysconfdir}/init.d/umountfs
+ install -d ${D}${sysconfdir}/network/if-up.d
+ install -m 0755 ${WORKDIR}/netmount.sh ${D}${sysconfdir}/network/if-up.d/02netmount
+ install -d ${D}${sysconfdir}/network/if-down.d
+ install -m 0755 ${WORKDIR}/umountnfs.sh ${D}${sysconfdir}/network/if-down.d/02umountnfs
+ fi
+
+ if [ "${MACHINE}" = "dm8000" ]; then
+ install -m 0755 ${WORKDIR}/fscking.raw ${D}${sysconfdir}/
+ fi
+
+ ln -sf ../init.d/rmnologin ${D}${sysconfdir}/rc2.d/S99rmnologin
+ ln -sf ../init.d/rmnologin ${D}${sysconfdir}/rc3.d/S99rmnologin
+ ln -sf ../init.d/rmnologin ${D}${sysconfdir}/rc4.d/S99rmnologin
+ ln -sf ../init.d/rmnologin ${D}${sysconfdir}/rc5.d/S99rmnologin
+ ln -sf ../init.d/sendsigs ${D}${sysconfdir}/rc6.d/S20sendsigs
+ ln -sf ../init.d/umountfs ${D}${sysconfdir}/rc6.d/S40umountfs
+ ln -sf ../init.d/reboot ${D}${sysconfdir}/rc6.d/S90reboot
+ ln -sf ../init.d/sendsigs ${D}${sysconfdir}/rc0.d/S20sendsigs
+ ln -sf ../init.d/umountfs ${D}${sysconfdir}/rc0.d/S40umountfs
+ ln -sf ../init.d/halt ${D}${sysconfdir}/rc0.d/S90halt
+ ln -sf ../init.d/bootup ${D}${sysconfdir}/rcS.d/S00bootup
+}
--- /dev/null
+dest root /
+dest cf /media/cf/
+dest ram /media/ram/
--- /dev/null
+dest root /
+dest cf /media/cf/
+dest ram /media/ram/
+dest hdd /media/hdd/
+dest usb /media/usb/
--- /dev/null
+dest root /
+dest cf /media/cf/
+dest ram /media/ram/
+dest hdd /media/hdd/
+dest usb /media/usb/
--- /dev/null
+dest root /
+dest cf /media/cf/
+dest ram /media/ram/
+dest hdd /media/hdd/
+dest usb /media/usb/
--- /dev/null
+dest root /
+dest ram /media/ram/
+dest hdd /media/hdd/
+dest usb /media/usb/
--- /dev/null
+dest root /
+dest cf /media/cf/
+dest ram /media/ram/
+dest hdd /media/hdd/
+dest usb /media/usb/
--- /dev/null
+LICENSE = "GPL"
+
+DESCRIPTION = "Library for reading some sort of media format."
+SECTION = "libs"
+PRIORITY = "optional"
+DEPENDS = ""
+
+SRCDATE = "20081101"
+PV = "0.7.5+cvs${SRCDATE}"
+PR = "r0"
+
+inherit autotools
+
+SRC_URI = "cvs://anonymous@liba52.cvs.sourceforge.net/cvsroot/liba52;module=a52dec;date=${SRCDATE}"
+
+S="${WORKDIR}/a52dec"
+
+EXTRA_OECONF = " --enable-shared --enable-fixed"
+
+PACKAGES = "${PN} ${PN}-dev a52dec a52dec-doc"
+
+FILES_${PN} = " ${libdir}/liba52.so.0 ${libdir}/liba52.so.0.0.0 "
+FILES_${PN}-dev = " ${includedir}/a52dec/*.h ${libdir}/liba52.so ${libdir}/liba52.la ${libdir}/liba52.a "
+FILES_a52dec = " ${bindir}/* "
+FILES_a52dec-doc = " ${mandir}/man1/* "
+
+do_stage() {
+ oe_libinstall -a -so -C liba52 liba52 ${STAGING_LIBDIR}
+
+ install -d ${STAGING_INCDIR}/a52dec
+ install -m 0644 ${S}/include/a52.h ${STAGING_INCDIR}/a52dec/a52.h
+ install -m 0644 ${S}/include/attributes.h ${STAGING_INCDIR}/a52dec/attributes.h
+ install -m 0644 ${S}/include/audio_out.h ${STAGING_INCDIR}/a52dec/audio_out.h
+ install -m 0644 ${S}/include/mm_accel.h ${STAGING_INCDIR}/a52dec/mm_accel.h
+}
--- /dev/null
+--- libcddb-1.3.0/lib/Makefile.am.old 2007-11-13 08:09:20 +0000
++++ libcddb-1.3.0/lib/Makefile.am 2007-11-13 08:09:41 +0000
+@@ -5,4 +5,5 @@
+ libcddb_la_SOURCES = cddb_track.c cddb_disc.c cddb_regex.c cddb_error.c \
+ cddb_conn.c cddb_cmd.c cddb_net.c cddb_log.c cddb_util.c \
+ cddb.c cddb_site.c ll.c
+-libcddb_la_LDFLAGS = -no-undefined -version-info 4:3:2 $(LIBICONV)
++libcddb_la_LDFLAGS = -no-undefined -version-info 4:3:2
++libcddb_la_LIBADD = $(LIBICONV)
--- /dev/null
+Index: libcddb-1.3.0/configure.ac
+===================================================================
+--- libcddb-1.3.0/configure.ac 2006-10-15 09:04:53.000000000 +0000
++++ libcddb-1.3.0/configure.ac 2008-07-26 00:01:38.000000000 +0000
+@@ -100,11 +100,10 @@
+
+ dnl Checks for library functions.
+ AC_FUNC_MALLOC
+-AC_FUNC_REALLOC
+ AC_FUNC_STAT
+ AC_FUNC_VPRINTF
+ AC_FUNC_SELECT_ARGTYPES
+-AC_CHECK_FUNCS([mkdir regcomp socket strdup strtol strchr memset alarm select realloc])
++AC_CHECK_FUNCS([mkdir regcomp socket strdup strtol strchr memset alarm select])
+ AC_CHECK_FUNC([gethostbyname], , AC_CHECK_LIB([nsl], [gethostbyname]))
+
+ dnl Check for libcdio
--- /dev/null
+DESCRIPTION = "A library for accessing a CDDB server"
+HOMEPAGE = "http://libcddb.sourceforge.net"
+SECTION = "libs"
+PRIORITY = "optional"
+LICENSE = "LGPL-2"
+MAINTAINER = "Andreas Frisch <andreas.frisch@multimedia-labs.de>"
+
+SRC_URI = "http://downloads.sourceforge.net/${PN}/${PN}-${PV}.tar.bz2\
+ file://${P}-asneeded-nonglibc.patch;patch=1"
+
+inherit autotools
+
+DEPEND="doc? ( app-doc/doxygen )"
--- /dev/null
+DESCRIPTION = "A library for accessing a CDDB server"
+HOMEPAGE = "http://libcddb.sourceforge.net"
+SECTION = "libs"
+PRIORITY = "optional"
+LICENSE = "LGPL-2"
+MAINTAINER = "Andreas Frisch <andreas.frisch@multimedia-labs.de>"
+
+SRC_URI = "http://downloads.sourceforge.net/${PN}/${PN}-${PV}.tar.bz2\
+ file://${P}-configure-realloc.patch;patch=1\
+ file://${P}-asneeded-nonglibc.patch;patch=1"
+
+#EXTRA_OECONF = "--without-cdio --without-iconv"
+
+inherit autotools pkgconfig
+
+DEPEND="doc? ( app-doc/doxygen )"
+
+do_stage () {
+ oe_libinstall -so -C lib libcddb ${STAGING_LIBDIR}
+ install -d ${STAGING_INCDIR}/cddb
+ install -m 0644 ${S}/include/cddb/*.h ${STAGING_INCDIR}/cddb
+}
\ No newline at end of file
--- /dev/null
+Index: libcdio-0.80/src/cdtextinfo.c
+===================================================================
+--- libcdio-0.80/src/cdtextinfo.c
++++ libcdio-0.80/src/cdtextinfo.c
+@@ -0,0 +1,372 @@
++/*
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++
++ cdtextinfo, 2008-07-25 by fraxinas <andreas.frisch@multimedia-labs.de>
++*/
++
++#include "config.h"
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <cddb/cddb.h>
++#include <cdio/cdio.h>
++#include <cdio/cdtext.h>
++#include "cddb.h"
++#include "getopt.h"
++
++struct opts_s
++{
++ bool album;
++ bool listing;
++ bool cddb;
++ bool cdtext;
++ bool xml;
++} options;
++
++/* Configuration option codes */
++enum {
++ OP_HANDLED = 0,
++
++ OP_CDDB_SERVER,
++ OP_CDDB_CACHE,
++ OP_CDDB_EMAIL,
++ OP_CDDB_NOCACHE,
++ OP_CDDB_TIMEOUT,
++
++ OP_USAGE,
++
++ /* These are the remaining configuration options */
++ OP_VERSION,
++
++};
++
++static bool parse_options (int argc, char *argv[])
++{
++ int opt; /* used for argument parsing */
++
++ const char* helpText =
++ "Usage: %s [OPTION...]\n"
++ " -a, --album Print audio CD album info\n"
++ " -l, --listing Print title info for all tracks\n"
++ " -T, --cdtext Use CD-Text\n"
++ " -D, --cddb Use CDDB\n"
++ " -x, --xml XML output\n"
++ "\n"
++ "CDDB options:\n"
++ " -P, --cddb-port=INT CDDB port number to use (default 8880)\n"
++ " --cddb-server=STRING CDDB server to contact for information\n"
++ " (default: freedb.freedb.org)\n"
++ " --cddb-cache=STRING Location of CDDB cache directory\n"
++ " (default ~/.cddbclient)\n"
++ " --cddb-email=STRING Email address to give CDDB server\n"
++ " (default me@dreambox)\n"
++ " --no-cddb-cache Disable caching of CDDB entries\n"
++ " locally (default caches)\n"
++ " --cddb-timeout=INT CDDB timeout value in seconds\n"
++ " (default 10 seconds)\n"
++ "\n"
++ "Help options:\n"
++ " -?, --help Show this help message\n"
++ " --usage Display brief usage message\n"
++ "\n"
++ "Example: %s -xalDT\n"
++ " Will query album info and track listing from both CD-Text and CDDB and display as XML\n";
++
++ const char* usageText =
++ "Usage: %s [-a|--album] [-l|--listing]\n"
++ " [-T|--cdtext] [-D|--cddb] [-x|--xml]\n"
++ " [-P|--cddb-port INT] [--cddb-server=STRING]\n"
++ " [--cddb-cache=STRING] [--cddb-email=STRING]\n"
++ " [--no-cddb-cache] [--cddb-timeout=INT]\n"
++ " [-?|--help] [--usage]\n";
++
++ const char* optionsString = "alTDP:x?";
++ struct option optionsTable[] = {
++ {"album", no_argument, NULL, 'a' },
++ {"listing", no_argument, NULL, 'l' },
++ {"cdtext", no_argument, NULL, 'T' },
++ {"cddb", no_argument, NULL, 'D' },
++ {"cddb-port", required_argument, NULL, 'P' },
++ {"cddb-server", required_argument, NULL, OP_CDDB_SERVER },
++ {"cddb-cache", required_argument, NULL, OP_CDDB_CACHE },
++ {"cddb-email", required_argument, NULL, OP_CDDB_EMAIL },
++ {"no-cddb-cache", no_argument, NULL, OP_CDDB_NOCACHE },
++ {"cddb-timeout", required_argument, NULL, OP_CDDB_TIMEOUT },
++ {"help", no_argument, NULL, '?' },
++ {"usage", no_argument, NULL, OP_USAGE },
++ { NULL, 0, NULL, 0 }
++ };
++
++ while ((opt = getopt_long(argc, argv, optionsString, optionsTable, NULL)) >= 0) {
++ switch (opt) {
++ case 'a': options.album = true; break;
++ case 'l': options.listing = true; break;
++ case 'T': options.cdtext = true; break;
++ case 'D': options.cddb = true; break;
++ case 'x': options.xml = true; break;
++ case 'P': cddb_opts.port = atoi(optarg); break;
++ case OP_CDDB_SERVER: cddb_opts.server = strdup(optarg); break;
++ case OP_CDDB_CACHE: cddb_opts.cachedir = strdup(optarg); break;
++ case OP_CDDB_EMAIL: cddb_opts.email = strdup(optarg); break;
++ case OP_CDDB_NOCACHE: cddb_opts.disable_cache = 1; break;
++ case OP_CDDB_TIMEOUT: cddb_opts.timeout = atoi(optarg); break;
++ case '?':
++ fprintf(stdout, helpText, argv[0], argv[0]);
++ exit(0);
++ break;
++ case OP_USAGE:
++ fprintf(stderr, usageText, argv[0]);
++ exit(1);
++ break;
++ case 0:
++ break;
++ }
++ }
++ return true;
++}
++
++static void cddb_errmsg(const char *msg)
++{
++ if ( options.xml )
++ printf("<error msg=\"%s\" />\n", msg);
++ else
++ printf("%s\n", msg);
++}
++
++int print_cddb_info(CdIo_t *p_cdio, track_t i_tracks, track_t i_first_track)
++{
++ int i_cddb_matches = 0, i_cddb_currentmatch = 1;
++
++ cddb_conn_t *p_conn = NULL;
++ cddb_disc_t *p_cddb_disc = NULL;
++
++ if ( init_cddb(p_cdio, &p_conn, &p_cddb_disc, cddb_errmsg, i_first_track, i_tracks, &i_cddb_matches) )
++ {
++ while ( i_cddb_currentmatch <= i_cddb_matches )
++ {
++ cddb_read(p_conn, p_cddb_disc);
++
++ if ( options.xml )
++ printf("\t<query source=\"CDDB\" match=\"%i\" num_matches=\"%i\">\n",i_cddb_currentmatch,i_cddb_matches);
++
++ if (options.album)
++ {
++ if ( options.xml )
++ printf("\t\t<albuminfo>\n");
++
++ if ( cddb_disc_get_title(p_cddb_disc) )
++ {
++ if ( options.xml )
++ printf("\t\t\t\t<title>%s</title>\n",cddb_disc_get_title(p_cddb_disc));
++ else
++ printf("TITLE:%s\n",cddb_disc_get_title(p_cddb_disc));
++ }
++ if ( cddb_disc_get_artist(p_cddb_disc) )
++ {
++ if ( options.xml )
++ printf("\t\t\t\t<artist>%s</artist>\n",cddb_disc_get_artist(p_cddb_disc));
++ else
++ printf("ARTIST:%s\n",cddb_disc_get_artist(p_cddb_disc));
++ }
++ if ( cddb_disc_get_genre(p_cddb_disc) )
++ {
++ if ( options.xml )
++ printf("\t\t\t\t<genre>%s</genre>\n",cddb_disc_get_genre(p_cddb_disc));
++ else
++ printf("GENRE:%s\n",cddb_disc_get_genre(p_cddb_disc));
++ }
++ if ( cddb_disc_get_category_str(p_cddb_disc) )
++ {
++ if ( options.xml )
++ printf("\t\t\t\t<category>%s</category>\n",cddb_disc_get_category_str(p_cddb_disc));
++ else
++ printf("CATEGORY:%s\n",cddb_disc_get_category_str(p_cddb_disc));
++ }
++ if ( cddb_disc_get_year(p_cddb_disc) )
++ {
++ if ( options.xml )
++ printf("\t\t\t\t<year>%i</year>\n",cddb_disc_get_year(p_cddb_disc));
++ else
++ printf("YEAR:%i\n",cddb_disc_get_year(p_cddb_disc));
++ }
++ if ( cddb_disc_get_ext_data(p_cddb_disc) )
++ {
++ if ( options.xml )
++ printf("\t\t\t\t<extra_data>%s</extra_data>\n",cddb_disc_get_ext_data(p_cddb_disc));
++ else
++ printf("EXTDATA:%s\n",cddb_disc_get_ext_data(p_cddb_disc));
++ }
++ if ( options.xml )
++ printf("\t\t</albuminfo>\n");
++ }
++ if (options.listing)
++ {
++ if ( options.xml )
++ printf("\t\t<tracklisting>\n");
++
++ cddb_track_t *p_cddb_track = cddb_disc_get_track_first(p_cddb_disc);
++ while ( p_cddb_track != NULL )
++ {
++ if ( options.xml )
++ {
++ printf("\t\t\t\t<track number=\"%i\">\n",cddb_track_get_number(p_cddb_track));
++ if (cddb_track_get_length(p_cddb_track))
++ printf("\t\t\t\t\t\t<length>%i</length>\n",cddb_track_get_length(p_cddb_track));
++ if (cddb_track_get_title(p_cddb_track))
++ printf("\t\t\t\t\t\t<title>%s</title>\n",cddb_track_get_title(p_cddb_track));
++ if (cddb_track_get_artist(p_cddb_track))
++ printf("\t\t\t\t\t\t<artist>%s</artist>\n",cddb_track_get_artist(p_cddb_track));
++ if (cddb_track_get_ext_data(p_cddb_track))
++ printf("\t\t\t\t\t\t<extra_data>%s</extra_data>\n",cddb_track_get_ext_data(p_cddb_track));
++ printf("\t\t\t\t</track>\n");
++ }
++ else
++ printf("%i:%s\n",cddb_track_get_number(p_cddb_track),cddb_track_get_title(p_cddb_track));
++
++ p_cddb_track = cddb_disc_get_track_next(p_cddb_disc);
++ }
++
++ if ( options.xml )
++ printf("\t\t</tracklisting>\n");
++ }
++ if ( options.xml )
++ printf("\t</query>\n");
++
++ cddb_query_next(p_conn, p_cddb_disc);
++ i_cddb_currentmatch++;
++ }
++ if ( i_cddb_currentmatch < 1 && options.xml )
++ printf("\t<query source=\"CDDB\" num_matches=\"%i\" />\n",i_cddb_matches);
++ }
++ cddb_disc_destroy(p_cddb_disc);
++ cddb_destroy(p_conn);
++ libcddb_shutdown();
++ return 0;
++}
++
++int print_cdtext_info(CdIo_t *p_cdio, track_t i_tracks, track_t i_track)
++{
++ const cdtext_t *cdtext = cdio_get_cdtext(p_cdio, 0);
++
++ if ( cdtext == NULL || cdtext && !cdtext->field[9] )
++ {
++ if ( options.xml )
++ printf("\t<query source=\"CD-TEXT\" num_matches=\"0\" />\n");
++ return -1;
++ }
++
++ if ( options.xml )
++ printf("\t<query source=\"CD-TEXT\" match=\"1\" num_matches=\"1\">\n");
++
++ if ( options.album )
++ {
++ if ( options.xml )
++ printf("\t\t<albuminfo>\n");
++ cdtext_field_t i;
++ for (i=0; i < MAX_CDTEXT_FIELDS; i++)
++ {
++ if (cdtext->field[i])
++ {
++ if ( options.xml )
++ printf("\t\t\t\t<%s>%s</%s>\n",cdtext_field2str(i),cdtext->field[i],cdtext_field2str(i));
++ else
++ printf("%s:%s\n", cdtext_field2str(i), cdtext->field[i]);
++ }
++ }
++ if ( options.xml )
++ printf("\t\t</albuminfo>\n");
++ }
++
++ if ( options.listing )
++ {
++ if ( options.xml )
++ printf("\t\t<tracklisting>\n");
++
++ for ( ; i_track < i_tracks; i_track++ )
++ {
++ const cdtext_t *cdtext = cdio_get_cdtext(p_cdio, i_track);
++ if (!cdtext)
++ continue;
++
++ if ( options.xml )
++ {
++ printf("\t\t\t\t<track number=\"%i\">\n",i_track);
++
++ cdtext_field_t i;
++ for (i=0; i < MAX_CDTEXT_FIELDS; i++)
++ {
++ if (cdtext->field[i])
++ {
++ if ( options.xml )
++ printf("\t\t\t\t\t\t<%s>%s</%s>\n",cdtext_field2str(i),cdtext->field[i],cdtext_field2str(i));
++ }
++ }
++ printf("\t\t\t\t</track>\n");
++ }
++
++ else if (cdtext->field[9])
++ printf("%d:%s\n", i_track, cdtext->field[9]);
++ }
++
++ if ( options.xml )
++ printf("\t\t</tracklisting>\n");
++ }
++
++ if ( options.xml )
++ printf("\t</query>\n");
++
++ return 0;
++}
++
++int main(int argc, char *argv[])
++{
++ cddb_opts.port = 8880;
++ cddb_opts.server = NULL;
++ cddb_opts.timeout = 10;
++ cddb_opts.disable_cache = false;
++ cddb_opts.cachedir = NULL;
++ cddb_opts.email = strdup("me@dreambox");
++
++ parse_options(argc, argv);
++
++ track_t i_track;
++ track_t i_tracks;
++ CdIo_t *p_cdio = cdio_open (NULL, DRIVER_DEVICE);
++ i_tracks = cdio_get_num_tracks(p_cdio);
++
++ if ( options.xml )
++ {
++ printf("<?xml version=\"1.0\" ?>\n");
++ printf("<cdinfo>\n");
++ }
++
++ if (NULL == p_cdio)
++ return -1;
++
++ i_track = cdio_get_first_track_num(p_cdio);
++ if ( options.cdtext )
++ print_cdtext_info(p_cdio, i_tracks, i_track);
++
++ i_track = cdio_get_first_track_num(p_cdio);
++ if ( options.cddb )
++ print_cddb_info(p_cdio, i_tracks, i_track);
++
++ cdio_destroy(p_cdio);
++
++ if ( options.xml )
++ printf("</cdinfo>\n");
++
++ return 0;
++}
+Index: libcdio-0.80/src/Makefile.am
+===================================================================
+--- libcdio-0.80/src/Makefile.am
++++ libcdio-0.80/src/Makefile.am 2008-07-29 09:56:06.000000000 +0000
+@@ -85,7 +85,12 @@
+ #mmc_tool_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LIBICONV)
+ #bin_mmc_tool = mmc-tool
+
+-bin_PROGRAMS = $(bin_cd_drive) $(bin_cd_info) $(bin_cdinfo_linux) $(bin_cd_read) $(bin_iso_info) $(bin_iso_read) $(bin_cdda_player) $(bin_mmc_tool)
++bin_cdtextinfo = cdtextinfo
++cdtextinfo_SOURCES = cdtextinfo.c cddb.c cddb.h $(GETOPT_C)
++cdtextinfo_LDADD = $(LIBCDIO_LIBS) $(LIBICONV) $(CDDB_LIBS)
++cdtextinfo_DEPENDENCIES = $(LIBCDIO_DEPS)
++
++bin_PROGRAMS = $(bin_cd_drive) $(bin_cd_info) $(bin_cdinfo_linux) $(bin_cd_read) $(bin_iso_info) $(bin_iso_read) $(bin_cdda_player) $(bin_mmc_tool) $(bin_cdtextinfo)
+
+ INCLUDES = -I$(top_srcdir) $(LIBCDIO_CFLAGS) $(VCDINFO_CFLAGS) $(CDDB_CFLAGS)
--- /dev/null
+Index: libcdio-0.80/configure.ac
+===================================================================
+--- libcdio-0.80.orig/configure.ac 2008-03-15 17:45:17.000000000 +0000
++++ libcdio-0.80/configure.ac 2008-07-16 09:21:06.000000000 +0000
+@@ -271,33 +271,9 @@
+
+ dnl bitfield order
+ AC_MSG_CHECKING(bitfield ordering in structs)
+-AC_TRY_RUN([
+-int
+- main() {
+- struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
+-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
+- __attribute__((packed))
+-#endif
+- bf = { 1,1,1,1 };
+- if (sizeof (bf) != 1) return 1;
+- return *((unsigned char*) &bf) != 0x4b; }
+-], bf_lsbf=1, AC_TRY_RUN([
+-int
+-main() {
+- struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
+-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
+- __attribute__((packed))
+-#endif
+- bf = { 1,1,1,1 };
+- if (sizeof (bf) != 1) return 1;
+- return *((unsigned char*) &bf) != 0xa5; }
+-], bf_lsbf=0, AC_MSG_ERROR([unsupported bitfield ordering])))
+-if test "x$bf_lsbf" = "x1"; then
+- AC_MSG_RESULT(LSBF)
+- AC_DEFINE(BITFIELD_LSBF, [], [compiler does least-significant bit first in struct bitfields])
+-else
+- AC_MSG_RESULT(MSBF)
+-fi
++bf_lsbf=1
++AC_MSG_RESULT(LSBF)
++AC_DEFINE(BITFIELD_LSBF, [], [compiler does least-significant bit first in struct bitfields])
+ dnl
+
+ dnl AM_PROG_LIBTOOL tests whether we have GNU ld
+@@ -466,24 +442,6 @@
+ ;;
+ esac
+
+-AC_MSG_CHECKING(extern long timezone variable)
+-AC_TRY_RUN([
+-#ifdef NEED_TIMEZONEVAR
+-#define timezonevar 1
+-#endif
+-
+-#include <time.h>
+-extern long timezone;
+-int main(int argc, char **argv) {
+- long test_timezone = timezone;
+- return 0;
+-}
+-], [AC_MSG_RESULT(yes);
+- AC_DEFINE([HAVE_TIMEZONE_VAR], 1,
+- [Define if you have an extern long timenzone variable.])],
+- [AC_MSG_RESULT(no)])
+-dnl
+-
+ AC_SUBST(LINUX_CDROM_TIMEOUT)
+ AC_SUBST(DARWIN_PKG_LIB_HACK)
+ AC_SUBST(HAVE_BSDI_CDROM)
+@@ -508,43 +466,6 @@
+ ,
+ [#include <time.h>])
+
+-if test $ac_cv_member_struct_tm_tm_gmtoff = yes ; then
+- AC_MSG_CHECKING([whether time.h defines daylight and timezone variables])
+- AC_TRY_RUN([
+-#include <time.h>
+-
+-
+- extern char *tzname[2];
+- extern long timezone;
+- extern int daylight;
+-
+-int
+- main() {
+- return (timezone != 0) + daylight;
+-}
+- ],[AC_DEFINE(HAVE_DAYLIGHT, 1,
+- [Define if time.h defines extern long timezone and int daylight vars.])
+- has_daylight=yes
+- ],[has_daylight=no])
+- AC_MSG_RESULT($has_daylight)
+- AC_MSG_CHECKING([whether time.h defines tzname variable])
+- AC_TRY_RUN([
+-#include <time.h>
+-
+-
+- extern char *tzname[2];
+-
+-int
+- main() {
+- return (tzname != NULL);
+-}
+- ],[AC_DEFINE(HAVE_TZNAME, 1,
+- [Define if time.h defines extern extern char *tzname[2] variable])
+- has_tzname=yes
+- ],[has_tzname=no])
+- AC_MSG_RESULT($has_tzname)
+-fi
+-
+ AC_ARG_ENABLE(joliet,
+ AS_HELP_STRING([--disable-joliet], [don't include Joliet extension support (default enabled)]),
+ [enable_joliet=$enableval],
--- /dev/null
+Index: libcdio-0.80/Makefile.am
+===================================================================
+--- libcdio-0.80.orig/Makefile.am
++++ libcdio-0.80/Makefile.am
+@@ -45,12 +45,15 @@ endif
+ # pkg-config(1) related rules
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = libcdio.pc \
+- libcdio++.pc \
+ libiso9660.pc \
+- libiso9660++.pc \
+- libudf.pc
++ libudf.pc \
+ $(paranoiapcs)
+
++#if ENABLE_CPP
++#pkgconfig_DATA += \
++# libcdio++.pc \
++# libiso9660++.pc
++#endif
+
+ $(pkgconfig_DATA): config.status
+
--- /dev/null
+Index: libcdio-0.80/cdtextinfo/Makefile.am
+===================================================================
+--- libcdio-0.80/src/Makefile.am 2008-03-15 16:21:28.000000000 +0000
++++ libcdio-0.80/src/Makefile.am 2008-07-25 17:16:18.000000000 +0000
+@@ -21,11 +21,6 @@
+
+ GETOPT_C = getopt.c getopt1.c
+
+-man_MANS = cd-drive.1 cd-info.1 cd-read.1 iso-read.1 iso-info.1
+-EXTRA_DIST = cd-drive.help2man cd-info.help2man cd-read.help2man \
+- iso-info.help2man iso-read.help2man $(GETOPT_C) getopt.h \
+- $(man_MANS)
+-
+ noinst_HEADERS = cddb.h getopt.h util.h
+
+ ####################################################
+@@ -39,10 +34,6 @@
+ CDDB_LIBS=@CDDB_LIBS@
+ CDDA_PLAYER_LIBS=@CDDA_PLAYER_LIBS@
+
+-$(man_MANS): %.1: % %.help2man
+- -$(HELP2MAN) --opt-include=$<.help2man --no-info --output=$@ ./$<
+-MOSTLYCLEANFILES = $(man_MANS)
+-
+ if BUILD_CDDA_PLAYER
+ cdda_player_SOURCES = cdda-player.c cddb.c cddb.h $(GETOPT_C)
+ cdda_player_LDADD = $(LIBCDIO_LIBS) $(CDDB_LIBS) $(CDDA_PLAYER_LIBS)
+@@ -53,12 +44,14 @@
+ cd_drive_SOURCES = cd-drive.c util.c util.h $(GETOPT_C)
+ cd_drive_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LIBICONV)
+ bin_cd_drive = cd-drive
++man_cd_drive = cd-drive.1
+ endif
+
+ if BUILD_CDINFO
+ cd_info_SOURCES = cd-info.c cddb.c cddb.h util.c util.h $(GETOPT_C)
+ cd_info_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(CDDB_LIBS) $(VCDINFO_LIBS) $(LIBICONV)
+ bin_cd_info = cd-info
++man_cd_info = cd-info.1
+ endif
+
+ if BUILD_CDINFO_LINUX
+@@ -71,24 +64,36 @@
+ cd_read_SOURCES = cd-read.c util.c util.h $(GETOPT_C)
+ cd_read_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LIBICONV)
+ bin_cd_read = cd-read
++man_cd_read = cd-read.1
+ endif
+
+ if BUILD_ISO_INFO
+ iso_info_SOURCES = iso-info.c util.c util.h $(GETOPT_C)
+ iso_info_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LIBICONV)
+ bin_iso_info = iso-info
++man_iso_info = iso-info.1
+ endif
+
+ if BUILD_ISO_READ
+ iso_read_SOURCES = iso-read.c util.c util.h $(GETOPT_C)
+ iso_read_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LIBICONV)
+ bin_iso_read = iso-read
++man_iso_read = iso-read.1
+ endif
+
+-mmc_tool_SOURCES = mmc-tool.c util.c util.h $(GETOPT_C)
+-mmc_tool_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LIBICONV)
+-bin_mmc_tool = mmc-tool
++#mmc_tool_SOURCES = mmc-tool.c util.c util.h $(GETOPT_C)
++#mmc_tool_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LIBICONV)
++#bin_mmc_tool = mmc-tool
+
+ bin_PROGRAMS = $(bin_cd_drive) $(bin_cd_info) $(bin_cdinfo_linux) $(bin_cd_read) $(bin_iso_info) $(bin_iso_read) $(bin_cdda_player) $(bin_mmc_tool)
+
+ INCLUDES = -I$(top_srcdir) $(LIBCDIO_CFLAGS) $(VCDINFO_CFLAGS) $(CDDB_CFLAGS)
++
++man_MANS = $(man_cd_drive) $(man_cd_info) $(man_cd_read) $(man_iso_read) $(man_iso_info)
++EXTRA_DIST = cd-drive.help2man cd-info.help2man cd-read.help2man \
++ iso-info.help2man iso-read.help2man $(GETOPT_C) getopt.h \
++ $(man_MANS)
++
++$(man_MANS): %.1: % %.help2man
++ -$(HELP2MAN) --opt-include=$<.help2man --no-info --output=$@ ./$<
++MOSTLYCLEANFILES = $(man_MANS)
--- /dev/null
+DESCRIPTION = "A library to encapsulate CD-ROM reading and control"
+HOMEPAGE = "http://www.gnu.org/software/libcdio/"
+SECTION = "libs"
+PRIORITY = "optional"
+LICENSE = "GPL"
+MAINTAINER = "Andreas Frisch <andreas.frisch@multimedia-labs.de>"
+PR="r1"
+DEPENDS = "libcddb"
+
+SRC_URI = "http://ftp.gnu.org/pub/gnu/libcdio/${PN}-${PV}.tar.gz\
+ file://${PN}-${PV}-configure-crosscompile.patch;patch=1\
+ file://${PN}-${PV}-minimal-new.patch;patch=1\
+ file://${PN}-${PV}-fix-pkgconfig.patch;patch=1\
+ file://${PN}-${PV}-add-cdtextinfo.patch;patch=1"
+
+inherit pkgconfig autotools
+
+EXTRA_OECONF="--enable-cddb --disable-cpp-progs --disable-vcd-info --disable-maintainer-mode --without-cd-paranoia --without-cdda-player --disable-cxx --disable-example-progs --disable-joliet --without-cd-drive --without-cd-read --without-iso-info --without-iso-read --without-cd-info"
+
+DEPENDS = "libcddb virtual/libintl"
+
+do_compile_append () {
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/src/.libs/cdtextinfo ${D}${bindir}
+}
+
+do_stage () {
+ oe_libinstall -so -C lib libcdio ${STAGING_LIBDIR}
+ install -d ${STAGING_INCDIR}/cdio
+ install -m 0644 ${S}/include/cdio/*.h ${STAGING_INCDIR}/cdio
+}
--- /dev/null
+# libdreamdvd.bb build file
+DESCRIPTION="libdvdnav wrapper for dream multimedia stbs"
+LICENSE = "GPL"
+DEPENDS = "libdvdnav"
+RDEPENDS = "libdvdnav"
+
+PR = "r0"
+PV = "0.9+cvs${SRCDATE}"
+SRCDATE = "20090128"
+SRC_URI="cvs://anonymous@cvs.schwerkraft.elitedvb.net/cvsroot/libdreamdvd;module=libdreamdvd;method=pserver"
+
+CFLAGS_dm8000_append = " -DHARDWARE_SUPPORT_LPCM"
+CFLAGS_dm800_append = " -DHARDWARE_SUPPORT_LPCM"
+
+S = "${WORKDIR}/libdreamdvd"
+
+inherit autotools pkgconfig
+
+do_stage_append() {
+ oe_runmake install prefix=${STAGING_DIR} \
+ bindir=${STAGING_BINDIR} \
+ includedir=${STAGING_INCDIR} \
+ libdir=${STAGING_LIBDIR} \
+ datadir=${STAGING_DATADIR}
+}
--- /dev/null
+--- libdvdnav-0.1.10/src/dvdnav.c.org 2008-08-13 16:48:39.000000000 +0200
++++ libdvdnav-0.1.10/src/dvdnav.c 2008-12-29 13:27:03.000000000 +0100
+@@ -642,7 +642,7 @@
+ fprintf(MSG_OUT, "libdvdnav: SPU_CLUT_CHANGE\n");
+ #endif
+ (*len) = 16 * sizeof(uint32_t);
+- memcpy(*buf, &(state->pgc->palette), 16 * sizeof(uint32_t));
++ memcpy(*buf, (state->pgc->palette), 16 * sizeof(uint32_t));
+ this->spu_clut_changed = 0;
+ pthread_mutex_unlock(&this->vm_lock);
+ return DVDNAV_STATUS_OK;
--- /dev/null
+--- libdvdnav-0.1.10-org/src/vm.c 2004-05-21 21:32:25.000000000 +0200
++++ libdvdnav-0.1.10/src/vm/vm.c 2008-04-15 13:25:33.000000000 +0200
+@@ -43,6 +43,10 @@
+
+ #include "dvdnav_internal.h"
+
++#if defined(__linux__)
++#include <mntent.h>
++#endif
++
+ #ifdef _MSC_VER
+ #include <io.h> /* read() */
+ #endif /* _MSC_VER */
+@@ -131,7 +135,7 @@
+ * all off_t are 64bit.
+ */
+ off_t off;
+- int fd, i;
++ int fd = 0, i;
+ uint8_t data[DVD_VIDEO_LB_LEN];
+
+ /* Read DVD name */
+@@ -141,6 +145,29 @@
+ if( off == ( 32 * (off_t) DVD_VIDEO_LB_LEN ) ) {
+ off = read( fd, data, DVD_VIDEO_LB_LEN );
+ close(fd);
++#if defined(__linux__)
++ if (off != ( (off_t) DVD_VIDEO_LB_LEN )) {
++ FILE *mntfile;
++ mntfile = fopen( MOUNTED, "r" );
++ if ( mntfile ) {
++ struct mntent *me;
++ while( ( me = getmntent( mntfile ) ) ) {
++ if( strstr( device, me->mnt_dir ) ) {
++ fprintf( stderr, "libdvdnav: Attempting to read dvd label from device %s mounted on %s \n", me->mnt_fsname, me->mnt_dir );
++ fd = open(me->mnt_fsname, O_RDONLY);
++ }
++ }
++ fclose( mntfile );
++ }
++ if (fd > 0) {
++ off = lseek( fd, 32 * (off_t) DVD_VIDEO_LB_LEN, SEEK_SET );
++ if( off == ( 32 * (off_t) DVD_VIDEO_LB_LEN ) ) {
++ off = read( fd, data, DVD_VIDEO_LB_LEN );
++ close(fd);
++ }
++ }
++ }
++#endif
+ if (off == ( (off_t) DVD_VIDEO_LB_LEN )) {
+ fprintf(MSG_OUT, "libdvdnav: DVD Title: ");
+ for(i=25; i < 73; i++ ) {
--- /dev/null
+diff -Naur libdvdnav-0.1.10-org/src/dvdnav.c libdvdnav-0.1.10/src/dvdnav.c
+--- libdvdnav-0.1.10-org/src/dvdnav.c 2004-01-31 18:12:58.000000000 +0100
++++ libdvdnav-0.1.10/src/dvdnav.c 2008-03-28 15:24:50.000000000 +0100
+@@ -16,9 +16,6 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: dvdnav.c,v 1.63 2004/01/31 17:12:58 jcdutton Exp $
+- *
+ */
+
+ #ifdef HAVE_CONFIG_H
+@@ -67,7 +64,7 @@
+ struct timeval time;
+
+ /* Create a new structure */
+- fprintf(MSG_OUT, "libdvdnav: Using dvdnav version %s from http://dvd.sf.net\n", VERSION);
++ fprintf(MSG_OUT, "libdvdnav: Using dvdnav version %s from http://xine.sf.net\n", VERSION);
+
+ (*dest) = NULL;
+ this = (dvdnav_t*)malloc(sizeof(dvdnav_t));
+@@ -203,7 +200,7 @@
+ }
+
+ /* converts a dvd_time_t to PTS ticks */
+-static int64_t dvdnav_convert_time(dvd_time_t *time) {
++int64_t dvdnav_convert_time(dvd_time_t *time) {
+ int64_t result;
+ int64_t frames;
+
+@@ -403,7 +400,10 @@
+
+ if(!this->started) {
+ /* Start the VM */
+- vm_start(this->vm);
++ if (!vm_start(this->vm)) {
++ printerr("Encrypted or faulty DVD");
++ return DVDNAV_STATUS_ERR;
++ }
+ this->started = 1;
+ }
+
+@@ -665,16 +665,10 @@
+ fprintf(MSG_OUT, "libdvdnav: SPU_STREAM_CHANGE stream_id_wide=%d\n",stream_change->physical_wide);
+ fprintf(MSG_OUT, "libdvdnav: SPU_STREAM_CHANGE stream_id_letterbox=%d\n",stream_change->physical_letterbox);
+ fprintf(MSG_OUT, "libdvdnav: SPU_STREAM_CHANGE stream_id_pan_scan=%d\n",stream_change->physical_pan_scan);
++ fprintf(MSG_OUT, "libdvdnav: SPU_STREAM_CHANGE returning DVDNAV_STATUS_OK\n");
+ #endif
+- if (stream_change->physical_wide != -1 &&
+- stream_change->physical_letterbox != -1 &&
+- stream_change->physical_pan_scan != -1) {
+-#ifdef LOG_DEBUG
+- fprintf(MSG_OUT, "libdvdnav: SPU_STREAM_CHANGE returning DVDNAV_STATUS_OK\n");
+-#endif
+- pthread_mutex_unlock(&this->vm_lock);
+- return DVDNAV_STATUS_OK;
+- }
++ pthread_mutex_unlock(&this->vm_lock);
++ return DVDNAV_STATUS_OK;
+ }
+
+ /* has the audio channel changed? */
+diff -Naur libdvdnav-0.1.10-org/src/dvdnav_events.h libdvdnav-0.1.10/src/dvdnav_events.h
+--- libdvdnav-0.1.10-org/src/dvdnav_events.h 2003-04-27 03:26:18.000000000 +0200
++++ libdvdnav-0.1.10/src/dvdnav_events.h 2008-01-23 06:11:52.000000000 +0100
+@@ -16,9 +16,6 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: dvdnav_events.h,v 1.12 2003/04/27 01:26:18 jcdutton Exp $
+- *
+ */
+
+ /*
+diff -Naur libdvdnav-0.1.10-org/src/dvdnav.h libdvdnav-0.1.10/src/dvdnav.h
+--- libdvdnav-0.1.10-org/src/dvdnav.h 2003-06-09 17:17:44.000000000 +0200
++++ libdvdnav-0.1.10/src/dvdnav.h 2008-01-23 06:11:52.000000000 +0100
+@@ -16,9 +16,6 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: dvdnav.h,v 1.31 2003/06/09 15:17:44 mroi Exp $
+- *
+ */
+
+ /*
+@@ -114,6 +111,8 @@
+ */
+ const char* dvdnav_err_to_string(dvdnav_t *self);
+
++/* converts a dvd_time_t to PTS ticks */
++int64_t dvdnav_convert_time(dvd_time_t *time);
+
+ /*********************************************************************
+ * changing and reading DVD player characteristics *
+diff -Naur libdvdnav-0.1.10-org/src/dvdnav_internal.h libdvdnav-0.1.10/src/dvdnav_internal.h
+--- libdvdnav-0.1.10-org/src/dvdnav_internal.h 2004-02-13 20:16:17.000000000 +0100
++++ libdvdnav-0.1.10/src/dvdnav_internal.h 2008-03-28 15:24:50.000000000 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (C) 2001 Rich Wareham <richwareham@users.sourceforge.net>
++ * Copyright (C) 2001-2004 Rich Wareham <richwareham@users.sourceforge.net>
+ *
+ * This file is part of libdvdnav, a DVD navigation library.
+ *
+@@ -16,9 +16,6 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: dvdnav_internal.h,v 1.12 2004/02/13 19:16:17 mroi Exp $
+- *
+ */
+
+ #ifndef DVDNAV_INTERNAL_H_INCLUDED
+@@ -34,6 +31,34 @@
+ #include <limits.h>
+ #include <string.h>
+
++#ifndef HAVE_GETTIMEOFDAY
++# ifdef WIN32
++# include <winsock.h>
++struct timezone;
++# else
++# include <sys/time.h>
++# endif
++/* replacement gettimeofday implementation */
++#include <sys/timeb.h>
++static inline int dvdnav_private_gettimeofday( struct timeval *tv, void *tz )
++{
++ struct timeb t;
++ ftime( &t );
++ tv->tv_sec = t.time;
++ tv->tv_usec = t.millitm * 1000;
++ return 0;
++}
++#define gettimeofday(TV, TZ) dvdnav_private_gettimeofday((TV), (TZ))
++#define HAVE_GETTIMEOFDAY 1
++#endif
++
++#ifndef HAVE_SNPRINTF
++# ifdef HAVE__SNPRINTF
++# define snprintf _snprintf
++# define HAVE_SNPRINTF 1
++# endif
++#endif
++
+ #ifdef WIN32
+
+ /* pthread_mutex_* wrapper for win32 */
+@@ -45,16 +70,6 @@
+ #define pthread_mutex_unlock(a) LeaveCriticalSection(a)
+ #define pthread_mutex_destroy(a)
+
+-/* replacement gettimeofday implementation */
+-#include <sys/timeb.h>
+-static inline int gettimeofday( struct timeval *tv, void *tz )
+-{
+- struct timeb t;
+- ftime( &t );
+- tv->tv_sec = t.time;
+- tv->tv_usec = t.millitm * 1000;
+- return 0;
+-}
+ #include <io.h> /* read() */
+ #define lseek64 _lseeki64
+
+@@ -184,15 +199,38 @@
+
+ /** USEFUL MACROS **/
+
++/* printerr*() are often called when this is NULL. Avoid segfaults by replacing these with
++ * more common prints
++ */
+ #ifdef __GNUC__
+-#define printerrf(format, args...) snprintf(this->err_str, MAX_ERR_LEN, format, ## args);
++#define printerrf(format, args...) \
++ do { \
++ if ( ! this ) fprintf(stderr, "Missing 'this' pointer while erroring:" format "\n", ## args); \
++ else snprintf(this->err_str, MAX_ERR_LEN, format, ## args); \
++ } while(0);
+ #else
+ #ifdef _MSC_VER
+ #define printerrf(str) snprintf(this->err_str, MAX_ERR_LEN, str);
+ #else
+-#define printerrf(...) snprintf(this->err_str, MAX_ERR_LEN, __VA_ARGS__);
++#define printerrf(...) \
++ do { \
++ if ( ! this ) { \
++ fprintf(stderr, "Missing 'this' pointer while erroring:"); \
++ fprintf(stderr, __VA_ARGS__); \
++ fprintf(stderr, "\n"); \
++ } else { \
++ snprintf(this->err_str, MAX_ERR_LEN, __VA_ARGS__); \
++ } \
++ } while(0);
+ #endif /* WIN32 */
+ #endif
+-#define printerr(str) strncpy(this->err_str, str, MAX_ERR_LEN);
++#define printerr(str) \
++ do { \
++ if ( ! this ) { \
++ fprintf(stderr, "Missing 'this' pointer while erroring: %s\n", str); \
++ } else { \
++ strncpy(this->err_str, str, MAX_ERR_LEN); \
++ } \
++ } while(0);
+
+ #endif /* DVDNAV_INTERNAL_H_INCLUDED */
+diff -Naur libdvdnav-0.1.10-org/src/dvdread/bswap.h libdvdnav-0.1.10/src/dvdread/bswap.h
+--- libdvdnav-0.1.10-org/src/dvdread/bswap.h 2004-01-11 22:43:13.000000000 +0100
++++ libdvdnav-0.1.10/src/dvdread/bswap.h 2008-01-23 06:11:52.000000000 +0100
+@@ -3,7 +3,7 @@
+
+ /*
+ * Copyright (C) 2000, 2001 Billy Biggs <vektor@dumbterm.net>,
+- * Håkan Hjort <d95hjort@dtek.chalmers.se>
++ * Håkan Hjort <d95hjort@dtek.chalmers.se>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+@@ -35,12 +35,24 @@
+ #include <sys/param.h>
+ #endif
+
+-#if defined(__linux__)
++#if defined(__linux__) || defined(__GLIBC__)
+ #include <byteswap.h>
+ #define B2N_16(x) x = bswap_16(x)
+ #define B2N_32(x) x = bswap_32(x)
+ #define B2N_64(x) x = bswap_64(x)
+
++#elif defined(__SVR4) && defined(__sun)
++#include <sys/byteorder.h>
++#define B2N_16(x) x = BSWAP_16(x)
++#define B2N_32(x) x = BSWAP_32(x)
++#define B2N_64(x) x = BSWAP_64(x)
++
++#elif defined(__APPLE__)
++#include <libkern/OSByteOrder.h>
++#define B2N_16(x) x = OSSwapBigToHostInt16(x)
++#define B2N_32(x) x = OSSwapBigToHostInt32(x)
++#define B2N_64(x) x = OSSwapBigToHostInt64(x)
++
+ #elif defined(__NetBSD__)
+ #include <sys/endian.h>
+ #define B2N_16(x) BE16TOH(x)
+@@ -61,11 +73,11 @@
+
+ /* This is a slow but portable implementation, it has multiple evaluation
+ * problems so beware.
+- * Old FreeBSD's and Solaris don't have <byteswap.h> or any other such
++ * Old FreeBSD and Windows don't have <byteswap.h> or any other such
+ * functionality!
+ */
+
+-#elif defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32) || defined(__CYGWIN__)
++#elif defined(__FreeBSD__) || defined(__bsdi__) || defined(WIN32) || defined(__CYGWIN__)
+ #define B2N_16(x) \
+ x = ((((x) & 0xff00) >> 8) | \
+ (((x) & 0x00ff) << 8))
+diff -Naur libdvdnav-0.1.10-org/src/dvdread/dvd_input.c libdvdnav-0.1.10/src/dvdread/dvd_input.c
+--- libdvdnav-0.1.10-org/src/dvdread/dvd_input.c 2004-04-09 14:15:26.000000000 +0200
++++ libdvdnav-0.1.10/src/dvdread/dvd_input.c 2008-01-23 06:11:52.000000000 +0100
+@@ -1,6 +1,6 @@
+ /*
+ * Copyright (C) 2002 Samuel Hocevar <sam@zoy.org>,
+- * Håkan Hjort <d95hjort@dtek.chalmers.se>
++ * Håkan Hjort <d95hjort@dtek.chalmers.se>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+@@ -35,6 +35,7 @@
+ int (*dvdinput_title) (dvd_input_t, int);
+ int (*dvdinput_read) (dvd_input_t, void *, int, int);
+ char * (*dvdinput_error) (dvd_input_t);
++int (*dvdinput_is_encrypted) (dvd_input_t);
+
+ #ifdef HAVE_DVDCSS_DVDCSS_H
+ /* linking to libdvdcss */
+@@ -55,6 +56,73 @@
+ #include "../../msvc/contrib/dlfcn.c"
+ #endif
+
++/* Copied from css.h */
++#define KEY_SIZE 5
++
++typedef uint8_t dvd_key_t[KEY_SIZE];
++
++typedef struct dvd_title_s
++{
++ int i_startlb;
++ dvd_key_t p_key;
++ struct dvd_title_s *p_next;
++} dvd_title_t;
++
++typedef struct css_s
++{
++ int i_agid; /* Current Authenication Grant ID. */
++ dvd_key_t p_bus_key; /* Current session key. */
++ dvd_key_t p_disc_key; /* This DVD disc's key. */
++ dvd_key_t p_title_key; /* Current title key. */
++} css_t;
++
++/* Copied from libdvdcss.h */
++
++#ifndef PATH_MAX
++#define PATH_MAX 4096
++#endif
++
++struct dvdcss_s
++{
++ /* File descriptor */
++ char * psz_device;
++ int i_fd;
++ int i_read_fd;
++ int i_pos;
++
++ /* File handling */
++ void *pf_seek;
++ void *pf_read;
++ void *pf_readv;
++
++ /* Decryption stuff */
++ int i_method;
++ css_t css;
++ int b_ioctls;
++ int b_scrambled;
++ dvd_title_t *p_titles;
++
++ /* Key cache directory and pointer to the filename */
++ char psz_cachefile[PATH_MAX];
++ char * psz_block;
++
++ /* Error management */
++ char * psz_error;
++ int b_errors;
++ int b_debug;
++
++#ifdef WIN32
++ int b_file;
++ char * p_readv_buffer;
++ int i_readv_buf_size;
++#endif
++
++#ifndef WIN32
++ int i_raw_fd;
++#endif
++};
++
++
+ typedef struct dvdcss_s *dvdcss_handle;
+ static dvdcss_handle (*DVDcss_open) (const char *);
+ static int (*DVDcss_close) (dvdcss_handle);
+@@ -149,8 +217,13 @@
+ return 0;
+ }
+
+-
+-
++static int css_is_encrypted (dvd_input_t dev)
++{
++ if (dev->dvdcss == NULL) {
++ return 0;
++ }
++ return dev->dvdcss->b_scrambled;
++}
+
+
+
+@@ -269,6 +342,10 @@
+ return 0;
+ }
+
++static int file_is_encrypted (dvd_input_t dev)
++{
++ return 0;
++}
+
+ /**
+ * Setup read functions with either libdvdcss or minimal DVD access.
+@@ -287,10 +364,12 @@
+ #else
+ /* dlopening libdvdcss */
+
+-#ifndef WIN32
+- dvdcss_library = dlopen("libdvdcss.so.2", RTLD_LAZY);
+-#else
++#ifdef HOST_OS_DARWIN
++ dvdcss_library = dlopen("libdvdcss.2.dylib", RTLD_LAZY);
++#elif defined(WIN32)
+ dvdcss_library = dlopen("libdvdcss.dll", RTLD_LAZY);
++#else
++ dvdcss_library = dlopen("libdvdcss.so.2", RTLD_LAZY);
+ #endif
+
+ if(dvdcss_library != NULL) {
+@@ -323,7 +402,7 @@
+ dvdcss_library = NULL;
+ } else if(!DVDcss_open || !DVDcss_close || !DVDcss_title || !DVDcss_seek
+ || !DVDcss_read || !DVDcss_error || !dvdcss_version) {
+- fprintf(stderr, "libdvdread: Missing symbols in libdvdcss.so.2, "
++ fprintf(stderr, "libdvdread: Missing symbols in libdvdcss, "
+ "this shouldn't happen !\n");
+ dlclose(dvdcss_library);
+ }
+@@ -347,6 +426,7 @@
+ dvdinput_title = css_title;
+ dvdinput_read = css_read;
+ dvdinput_error = css_error;
++ dvdinput_is_encrypted = css_is_encrypted;
+ return 1;
+
+ } else {
+@@ -359,6 +439,7 @@
+ dvdinput_title = file_title;
+ dvdinput_read = file_read;
+ dvdinput_error = file_error;
++ dvdinput_is_encrypted = file_is_encrypted;
+ return 0;
+ }
+ }
+diff -Naur libdvdnav-0.1.10-org/src/dvdread/dvd_input.h libdvdnav-0.1.10/src/dvdread/dvd_input.h
+--- libdvdnav-0.1.10-org/src/dvdread/dvd_input.h 2004-01-11 22:43:13.000000000 +0100
++++ libdvdnav-0.1.10/src/dvdread/dvd_input.h 2008-01-23 06:11:52.000000000 +0100
+@@ -3,7 +3,7 @@
+
+ /*
+ * Copyright (C) 2001, 2002 Samuel Hocevar <sam@zoy.org>,
+- * Håkan Hjort <d95hjort@dtek.chalmers.se>
++ * Håkan Hjort <d95hjort@dtek.chalmers.se>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+@@ -38,6 +38,7 @@
+ extern int (*dvdinput_title) (dvd_input_t, int);
+ extern int (*dvdinput_read) (dvd_input_t, void *, int, int);
+ extern char * (*dvdinput_error) (dvd_input_t);
++extern int (*dvdinput_is_encrypted) (dvd_input_t);
+
+ /**
+ * Setup function accessed by dvd_reader.c. Returns 1 if there is CSS support.
+diff -Naur libdvdnav-0.1.10-org/src/dvdread/dvd_reader.c libdvdnav-0.1.10/src/dvdread/dvd_reader.c
+--- libdvdnav-0.1.10-org/src/dvdread/dvd_reader.c 2004-03-03 17:48:36.000000000 +0100
++++ libdvdnav-0.1.10/src/dvdread/dvd_reader.c 2008-03-17 17:18:01.000000000 +0100
+@@ -1,7 +1,7 @@
+ /*
+- * Copyright (C) 2001, 2002, 2003 Billy Biggs <vektor@dumbterm.net>,
+- * Håkan Hjort <d95hjort@dtek.chalmers.se>,
+- * Björn Englund <d4bjorn@dtek.chalmers.se>
++ * Copyright (C) 2001-2004 Billy Biggs <vektor@dumbterm.net>,
++ * Håkan Hjort <d95hjort@dtek.chalmers.se>,
++ * Björn Englund <d4bjorn@dtek.chalmers.se>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+@@ -32,11 +32,16 @@
+ #include <limits.h>
+ #include <dirent.h>
+
+-/* misc win32 helpers */
+-#ifdef WIN32
++#ifndef HAVE_GETTIMEOFDAY
++# ifdef WIN32
++# include <winsock.h>
++struct timezone;
++# else
++# include <sys/time.h>
++# endif
+ /* replacement gettimeofday implementation */
+ #include <sys/timeb.h>
+-static inline int gettimeofday( struct timeval *tv, void *tz )
++static inline int _private_gettimeofday( struct timeval *tv, void *tz )
+ {
+ struct timeb t;
+ ftime( &t );
+@@ -44,11 +49,16 @@
+ tv->tv_usec = t.millitm * 1000;
+ return 0;
+ }
++#define gettimeofday(TV, TZ) _private_gettimeofday((TV), (TZ))
++#endif
++
++/* misc win32 helpers */
++#ifdef WIN32
+ #include <io.h> /* read() */
+ #define lseek64 _lseeki64
+ #endif
+
+-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__bsdi__)|| defined(__DARWIN__)
++#if defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__bsdi__)|| defined(__DARWIN__)
+ #define SYS_BSD 1
+ #endif
+
+@@ -478,6 +489,13 @@
+ me->mnt_fsname,
+ me->mnt_dir );
+ auth_drive = DVDOpenImageFile( me->mnt_fsname, have_css );
++ /* If the device is not encrypted, don't access the device
++ * directly as it would fail for non-UDF DVDs */
++ if ( auth_drive && dvdinput_is_encrypted( auth_drive->dev ) == 0) {
++ DVDClose( auth_drive );
++ auth_drive = NULL;
++ break;
++ }
+ dev_name = strdup(me->mnt_fsname);
+ break;
+ }
+@@ -585,10 +603,12 @@
+ sprintf( filename, "%s%s%s", path,
+ ( ( path[ strlen( path ) - 1 ] == '/' ) ? "" : "/" ),
+ ent->d_name );
++ closedir (dir);
+ return 0;
+ }
+ }
+
++ closedir (dir);
+ return -1;
+ }
+
+@@ -1017,6 +1037,28 @@
+ return offset;
+ }
+
++int32_t DVDFileSeekForce( dvd_file_t *dvd_file, int offset, int force_size )
++{
++ /* Check arguments. */
++ if( dvd_file == NULL || offset < 0 )
++ return -1;
++
++ if( dvd_file->dvd->isImageFile ) {
++ if( force_size < 0 )
++ force_size = (offset - 1) / DVD_VIDEO_LB_LEN + 1;
++ if( dvd_file->filesize < force_size) {
++ dvd_file->filesize = force_size;
++ fprintf(stderr, "libdvdread: Ignored UDF provided size of file.\n");
++ }
++ }
++
++ if( offset > dvd_file->filesize * DVD_VIDEO_LB_LEN ) {
++ return -1;
++ }
++ dvd_file->seek_pos = (uint32_t) offset;
++ return offset;
++}
++
+ ssize_t DVDReadBytes( dvd_file_t *dvd_file, void *data, size_t byte_size )
+ {
+ unsigned char *secbuf_base, *secbuf;
+@@ -1057,7 +1099,7 @@
+ memcpy( data, &(secbuf[ seek_byte ]), byte_size );
+ free( secbuf_base );
+
+- dvd_file->seek_pos += byte_size;
++ DVDFileSeekForce(dvd_file, dvd_file->seek_pos + byte_size, -1);
+ return byte_size;
+ }
+
+diff -Naur libdvdnav-0.1.10-org/src/dvdread/dvd_reader.h libdvdnav-0.1.10/src/dvdread/dvd_reader.h
+--- libdvdnav-0.1.10-org/src/dvdread/dvd_reader.h 2004-02-01 18:55:19.000000000 +0100
++++ libdvdnav-0.1.10/src/dvdread/dvd_reader.h 2008-03-28 15:24:50.000000000 +0100
+@@ -3,8 +3,8 @@
+
+ /*
+ * Copyright (C) 2001, 2002 Billy Biggs <vektor@dumbterm.net>,
+- * Håkan Hjort <d95hjort@dtek.chalmers.se>,
+- * Björn Englund <d4bjorn@dtek.chalmers.se>
++ * Håkan Hjort <d95hjort@dtek.chalmers.se>,
++ * Björn Englund <d4bjorn@dtek.chalmers.se>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+@@ -21,9 +21,11 @@
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+-#ifdef _MSC_VER
++#ifdef HAVE_CONFIG_H
+ #include <config.h>
++#endif
+
++#ifdef _MSC_VER
+ #include <stdio.h>
+ #include <stdlib.h>
+ #endif
+@@ -169,6 +171,8 @@
+ */
+ int32_t DVDFileSeek( dvd_file_t *, int32_t );
+
++int32_t DVDFileSeekForce( dvd_file_t *, int, int );
++
+ /**
+ * Reads the given number of bytes from the file. This call can only be used
+ * on the information files, and may not be used for reading from a VOB. This
+diff -Naur libdvdnav-0.1.10-org/src/dvdread/dvd_udf.c libdvdnav-0.1.10/src/dvdread/dvd_udf.c
+--- libdvdnav-0.1.10-org/src/dvdread/dvd_udf.c 2004-03-03 17:48:36.000000000 +0100
++++ libdvdnav-0.1.10/src/dvdread/dvd_udf.c 2008-03-07 15:19:43.000000000 +0100
+@@ -4,7 +4,7 @@
+ *
+ * Modifications by:
+ * Billy Biggs <vektor@dumbterm.net>.
+- * Björn Englund <d4bjorn@dtek.chalmers.se>.
++ * Björn Englund <d4bjorn@dtek.chalmers.se>.
+ *
+ * dvdudf: parse and read the UDF volume information of a DVD Video
+ * Copyright (C) 1999 Christian Wolff for convergence integrated media
+diff -Naur libdvdnav-0.1.10-org/src/dvdread/dvd_udf.h libdvdnav-0.1.10/src/dvdread/dvd_udf.h
+--- libdvdnav-0.1.10-org/src/dvdread/dvd_udf.h 2004-01-11 22:43:13.000000000 +0100
++++ libdvdnav-0.1.10/src/dvdread/dvd_udf.h 2008-01-23 06:11:52.000000000 +0100
+@@ -7,7 +7,7 @@
+ *
+ * Modifications by:
+ * Billy Biggs <vektor@dumbterm.net>.
+- * Björn Englund <d4bjorn@dtek.chalmers.se>.
++ * Björn Englund <d4bjorn@dtek.chalmers.se>.
+ *
+ * dvdudf: parse and read the UDF volume information of a DVD Video
+ * Copyright (C) 1999 Christian Wolff for convergence integrated media
+diff -Naur libdvdnav-0.1.10-org/src/dvdread/ifo_read.c libdvdnav-0.1.10/src/dvdread/ifo_read.c
+--- libdvdnav-0.1.10-org/src/dvdread/ifo_read.c 2004-02-23 19:14:42.000000000 +0100
++++ libdvdnav-0.1.10/src/dvdread/ifo_read.c 2008-03-17 17:18:01.000000000 +0100
+@@ -1,7 +1,7 @@
+ /*
+ * Copyright (C) 2000, 2001, 2002, 2003
+- * Björn Englund <d4bjorn@dtek.chalmers.se>,
+- * Håkan Hjort <d95hjort@dtek.chalmers.se>
++ * Björn Englund <d4bjorn@dtek.chalmers.se>,
++ * Håkan Hjort <d95hjort@dtek.chalmers.se>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+@@ -93,6 +93,10 @@
+ return (DVDFileSeek(dvd_file, (int)offset) == (int)offset);
+ }
+
++static inline int32_t DVDFileSeekForce_( dvd_file_t *dvd_file, uint32_t offset, int force_size ) {
++ return (DVDFileSeekForce(dvd_file, (int)offset, force_size) == (int)offset);
++}
++
+
+ ifo_handle_t *ifoOpen(dvd_reader_t *dvd, int title) {
+ ifo_handle_t *ifofile;
+@@ -683,7 +687,7 @@
+ pgc->command_tbl = NULL;
+ }
+
+- if(pgc->program_map_offset != 0) {
++ if(pgc->program_map_offset != 0 && pgc->nr_of_programs>0) {
+ pgc->program_map = malloc(pgc->nr_of_programs * sizeof(pgc_program_map_t));
+ if(!pgc->program_map) {
+ ifoFree_PGC_COMMAND_TBL(pgc->command_tbl);
+@@ -699,7 +703,7 @@
+ pgc->program_map = NULL;
+ }
+
+- if(pgc->cell_playback_offset != 0) {
++ if(pgc->cell_playback_offset != 0 && pgc->nr_of_cells>0) {
+ pgc->cell_playback = malloc(pgc->nr_of_cells * sizeof(cell_playback_t));
+ if(!pgc->cell_playback) {
+ ifoFree_PGC_COMMAND_TBL(pgc->command_tbl);
+@@ -720,7 +724,7 @@
+ pgc->cell_playback = NULL;
+ }
+
+- if(pgc->cell_position_offset != 0) {
++ if(pgc->cell_position_offset != 0 && pgc->nr_of_cells>0) {
+ pgc->cell_position = malloc(pgc->nr_of_cells * sizeof(cell_position_t));
+ if(!pgc->cell_position) {
+ ifoFree_PGC(pgc);
+@@ -1507,7 +1511,7 @@
+ unsigned int i;
+ int info_length;
+
+- if(!DVDFileSeek_(ifofile->file, sector * DVD_BLOCK_LEN))
++ if(!DVDFileSeekForce_(ifofile->file, sector * DVD_BLOCK_LEN, sector))
+ return 0;
+
+ if(!(DVDReadBytes(ifofile->file, vobu_admap, VOBU_ADMAP_SIZE)))
+diff -Naur libdvdnav-0.1.10-org/src/dvdread/ifo_read.h libdvdnav-0.1.10/src/dvdread/ifo_read.h
+--- libdvdnav-0.1.10-org/src/dvdread/ifo_read.h 2004-01-11 22:43:13.000000000 +0100
++++ libdvdnav-0.1.10/src/dvdread/ifo_read.h 2008-01-23 06:11:52.000000000 +0100
+@@ -2,8 +2,8 @@
+ #define IFO_READ_H_INCLUDED
+
+ /*
+- * Copyright (C) 2000, 2001, 2002 Björn Englund <d4bjorn@dtek.chalmers.se>,
+- * Håkan Hjort <d95hjort@dtek.chalmers.se>
++ * Copyright (C) 2000, 2001, 2002 Björn Englund <d4bjorn@dtek.chalmers.se>,
++ * Håkan Hjort <d95hjort@dtek.chalmers.se>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+diff -Naur libdvdnav-0.1.10-org/src/dvdread/ifo_types.h libdvdnav-0.1.10/src/dvdread/ifo_types.h
+--- libdvdnav-0.1.10-org/src/dvdread/ifo_types.h 2004-01-11 22:43:13.000000000 +0100
++++ libdvdnav-0.1.10/src/dvdread/ifo_types.h 2008-01-23 06:11:52.000000000 +0100
+@@ -2,8 +2,8 @@
+ #define IFO_TYPES_H_INCLUDED
+
+ /*
+- * Copyright (C) 2000, 2001 Björn Englund <d4bjorn@dtek.chalmers.se>,
+- * Håkan Hjort <d95hjort@dtek.chalmers.se>
++ * Copyright (C) 2000, 2001 Björn Englund <d4bjorn@dtek.chalmers.se>,
++ * Håkan Hjort <d95hjort@dtek.chalmers.se>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+diff -Naur libdvdnav-0.1.10-org/src/dvdread/md5.c libdvdnav-0.1.10/src/dvdread/md5.c
+--- libdvdnav-0.1.10-org/src/dvdread/md5.c 2004-01-11 22:43:13.000000000 +0100
++++ libdvdnav-0.1.10/src/dvdread/md5.c 2008-03-28 15:24:50.000000000 +0100
+@@ -26,14 +26,8 @@
+
+ #include <sys/types.h>
+
+-#if STDC_HEADERS || defined _LIBC
+-# include <stdlib.h>
+-# include <string.h>
+-#else
+-# ifndef HAVE_MEMCPY
+-# define memcpy(d, s, n) bcopy ((s), (d), (n))
+-# endif
+-#endif
++#include <stdlib.h>
++#include <string.h>
+
+ #include "md5.h"
+ /* #include "unlocked-io.h" */
+diff -Naur libdvdnav-0.1.10-org/src/dvdread/nav_print.c libdvdnav-0.1.10/src/dvdread/nav_print.c
+--- libdvdnav-0.1.10-org/src/dvdread/nav_print.c 2004-01-11 22:43:13.000000000 +0100
++++ libdvdnav-0.1.10/src/dvdread/nav_print.c 2008-01-23 06:11:52.000000000 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (C) 2000, 2001, 2002, 2003 Håkan Hjort <d95hjort@dtek.chalmers.se>
++ * Copyright (C) 2000, 2001, 2002, 2003 Håkan Hjort <d95hjort@dtek.chalmers.se>
+ *
+ * Much of the contents in this file is based on VOBDUMP.
+ *
+@@ -65,7 +65,8 @@
+ printf("pci_gi:\n");
+ printf("nv_pck_lbn 0x%08x\n", pci_gi->nv_pck_lbn);
+ printf("vobu_cat 0x%04x\n", pci_gi->vobu_cat);
+- printf("vobu_uop_ctl 0x%08x\n", *(uint32_t*)&pci_gi->vobu_uop_ctl);
++/* This will break strict aliasing, better avoid as this seems to be useless
++ printf("vobu_uop_ctl 0x%08x\n", *(uint32_t*)&pci_gi->vobu_uop_ctl); */
+ printf("vobu_s_ptm 0x%08x\n", pci_gi->vobu_s_ptm);
+ printf("vobu_e_ptm 0x%08x\n", pci_gi->vobu_e_ptm);
+ printf("vobu_se_e_ptm 0x%08x\n", pci_gi->vobu_se_e_ptm);
+diff -Naur libdvdnav-0.1.10-org/src/dvdread/nav_print.h libdvdnav-0.1.10/src/dvdread/nav_print.h
+--- libdvdnav-0.1.10-org/src/dvdread/nav_print.h 2004-01-11 22:43:13.000000000 +0100
++++ libdvdnav-0.1.10/src/dvdread/nav_print.h 2008-01-23 06:11:52.000000000 +0100
+@@ -3,7 +3,7 @@
+
+ /*
+ * Copyright (C) 2001, 2002 Billy Biggs <vektor@dumbterm.net>,
+- * Håkan Hjort <d95hjort@dtek.chalmers.se>
++ * Håkan Hjort <d95hjort@dtek.chalmers.se>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+diff -Naur libdvdnav-0.1.10-org/src/dvdread/nav_read.c libdvdnav-0.1.10/src/dvdread/nav_read.c
+--- libdvdnav-0.1.10-org/src/dvdread/nav_read.c 2004-03-03 17:50:41.000000000 +0100
++++ libdvdnav-0.1.10/src/dvdread/nav_read.c 2008-01-23 06:11:52.000000000 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (C) 2000, 2001, 2002, 2003 Håkan Hjort <d95hjort@dtek.chalmers.se>
++ * Copyright (C) 2000, 2001, 2002, 2003 Håkan Hjort <d95hjort@dtek.chalmers.se>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+diff -Naur libdvdnav-0.1.10-org/src/dvdread/nav_read.h libdvdnav-0.1.10/src/dvdread/nav_read.h
+--- libdvdnav-0.1.10-org/src/dvdread/nav_read.h 2004-01-11 22:43:13.000000000 +0100
++++ libdvdnav-0.1.10/src/dvdread/nav_read.h 2008-01-23 06:11:52.000000000 +0100
+@@ -2,7 +2,7 @@
+ #define NAV_READ_H_INCLUDED
+
+ /*
+- * Copyright (C) 2000, 2001, 2002 Håkan Hjort <d95hjort@dtek.chalmers.se>.
++ * Copyright (C) 2000, 2001, 2002 Håkan Hjort <d95hjort@dtek.chalmers.se>.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+diff -Naur libdvdnav-0.1.10-org/src/dvdread/nav_types.h libdvdnav-0.1.10/src/dvdread/nav_types.h
+--- libdvdnav-0.1.10-org/src/dvdread/nav_types.h 2004-01-11 22:43:13.000000000 +0100
++++ libdvdnav-0.1.10/src/dvdread/nav_types.h 2008-01-23 06:11:52.000000000 +0100
+@@ -2,7 +2,7 @@
+ #define NAV_TYPES_H_INCLUDED
+
+ /*
+- * Copyright (C) 2000, 2001, 2002 Håkan Hjort <d95hjort@dtek.chalmers.se>
++ * Copyright (C) 2000, 2001, 2002 Håkan Hjort <d95hjort@dtek.chalmers.se>
+ *
+ * The data structures in this file should represent the layout of the
+ * pci and dsi packets as they are stored in the stream. Information
+diff -Naur libdvdnav-0.1.10-org/src/dvd_types.h libdvdnav-0.1.10/src/dvd_types.h
+--- libdvdnav-0.1.10-org/src/dvd_types.h 2003-04-21 15:18:06.000000000 +0200
++++ libdvdnav-0.1.10/src/dvd_types.h 2008-01-23 06:11:52.000000000 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (C) 2000, 2001 Björn Englund, Håkan Hjort
++ * Copyright (C) 2000, 2001 Björn Englund, Håkan Hjort
+ *
+ * This file is part of libdvdnav, a DVD navigation library. It is a modified
+ * file originally part of the Ogle DVD player project.
+@@ -17,9 +17,6 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: dvd_types.h,v 1.7 2003/04/21 13:18:06 mroi Exp $
+- *
+ */
+
+ /*
+diff -Naur libdvdnav-0.1.10-org/src/highlight.c libdvdnav-0.1.10/src/highlight.c
+--- libdvdnav-0.1.10-org/src/highlight.c 2004-01-20 02:22:24.000000000 +0100
++++ libdvdnav-0.1.10/src/highlight.c 2008-03-28 15:24:50.000000000 +0100
+@@ -16,9 +16,6 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: highlight.c,v 1.32 2004/01/20 01:22:24 jcdutton Exp $
+- *
+ */
+
+ #ifdef HAVE_CONFIG_H
+diff -Naur libdvdnav-0.1.10-org/src/navigation.c libdvdnav-0.1.10/src/navigation.c
+--- libdvdnav-0.1.10-org/src/navigation.c 2004-01-07 20:34:28.000000000 +0100
++++ libdvdnav-0.1.10/src/navigation.c 2008-03-28 15:24:50.000000000 +0100
+@@ -16,9 +16,6 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: navigation.c,v 1.21 2004/01/07 19:34:28 mroi Exp $
+- *
+ */
+
+ #ifdef HAVE_CONFIG_H
+@@ -60,8 +57,8 @@
+ printerr("Passed a NULL pointer.");
+ return DVDNAV_STATUS_ERR;
+ }
+- if(!this->started) {
+- printerr("Virtual DVD machine not started.");
++ if (!this->vm->vmgi) {
++ printerr("Bad VM state.");
+ return DVDNAV_STATUS_ERR;
+ }
+
+@@ -75,8 +72,8 @@
+ printerr("Passed a NULL pointer.");
+ return DVDNAV_STATUS_ERR;
+ }
+- if(!this->started) {
+- printerr("Virtual DVD machine not started.");
++ if (!this->vm->vmgi) {
++ printerr("Bad VM state.");
+ return DVDNAV_STATUS_ERR;
+ }
+ if ((title < 1) || (title > vm_get_vmgi(this->vm)->tt_srpt->nr_of_srpts) ) {
+@@ -103,6 +100,11 @@
+ pthread_mutex_unlock(&this->vm_lock);
+ return DVDNAV_STATUS_ERR;
+ }
++ if (!this->started) {
++ printerr("Virtual DVD machine not started.");
++ pthread_mutex_unlock(&this->vm_lock);
++ return DVDNAV_STATUS_ERR;
++ }
+ if (!this->vm->state.pgc) {
+ printerr("No current PGC.");
+ pthread_mutex_unlock(&this->vm_lock);
+@@ -150,6 +152,11 @@
+ pthread_mutex_unlock(&this->vm_lock);
+ return DVDNAV_STATUS_ERR;
+ }
++ if (!this->started) {
++ /* don't report an error but be nice */
++ vm_start(this->vm);
++ this->started = 1;
++ }
+ if (!this->vm->state.pgc) {
+ printerr("No current PGC.");
+ pthread_mutex_unlock(&this->vm_lock);
+diff -Naur libdvdnav-0.1.10-org/src/read_cache.c libdvdnav-0.1.10/src/read_cache.c
+--- libdvdnav-0.1.10-org/src/read_cache.c 2004-03-03 17:48:36.000000000 +0100
++++ libdvdnav-0.1.10/src/read_cache.c 2008-03-28 15:24:50.000000000 +0100
+@@ -17,9 +17,6 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: read_cache.c,v 1.30 2004/03/03 16:48:36 mroi Exp $
+- *
+ */
+ /*
+ * There was a multithreaded read ahead cache in here for some time, but
+diff -Naur libdvdnav-0.1.10-org/src/read_cache.h libdvdnav-0.1.10/src/read_cache.h
+--- libdvdnav-0.1.10-org/src/read_cache.h 2002-07-12 17:46:44.000000000 +0200
++++ libdvdnav-0.1.10/src/read_cache.h 2008-01-23 06:11:52.000000000 +0100
+@@ -16,9 +16,6 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: read_cache.h,v 1.4 2002/07/12 15:46:44 mroi Exp $
+- *
+ */
+
+ #ifndef __DVDNAV_READ_CACHE_H
+diff -Naur libdvdnav-0.1.10-org/src/remap.c libdvdnav-0.1.10/src/remap.c
+--- libdvdnav-0.1.10-org/src/remap.c 2003-08-27 15:54:19.000000000 +0200
++++ libdvdnav-0.1.10/src/remap.c 2008-03-07 15:19:43.000000000 +0100
+@@ -14,22 +14,23 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: remap.c,v 1.4 2003/08/27 13:54:19 mroi Exp $
+ */
+
+ #include <stdlib.h>
+ #include <string.h>
+ #include <stdio.h>
+
+-#ifndef _MSC_VER
++#ifdef HAVE_SYS_PARAM_H
+ #include <sys/param.h>
++#endif
++
++#ifdef HAVE_SYS_FCNTL_H
+ #include <sys/fcntl.h>
+ #else
+ #ifndef MAXPATHLEN
+ #define MAXPATHLEN 255
+ #endif
+-#endif /* _MSC_VER */
++#endif /* HAVE fcntl.h */
+
+ #include <assert.h>
+ #include "remap.h"
+@@ -190,10 +191,7 @@
+
+ /* Build the map filename */
+ home = getenv("HOME"); assert(home);
+- strncpy(fname, home, sizeof(fname));
+- strncat(fname, "/.dvdnav/", sizeof(fname));
+- strncat(fname, title, sizeof(fname));
+- strncat(fname, ".map", sizeof(fname));
++ snprintf (fname, sizeof(fname), "%s/.dvdnav/%s.map", home, title);
+
+ /* Open the map file */
+ fp = fopen( fname, "r");
+diff -Naur libdvdnav-0.1.10-org/src/remap.h libdvdnav-0.1.10/src/remap.h
+--- libdvdnav-0.1.10-org/src/remap.h 2003-02-20 16:32:19.000000000 +0100
++++ libdvdnav-0.1.10/src/remap.h 2008-01-23 06:11:52.000000000 +0100
+@@ -14,8 +14,6 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: remap.h,v 1.2 2003/02/20 15:32:19 mroi Exp $
+ */
+
+ #ifndef __REMAP__H
+diff -Naur libdvdnav-0.1.10-org/src/searching.c libdvdnav-0.1.10/src/searching.c
+--- libdvdnav-0.1.10-org/src/searching.c 2004-01-07 20:35:12.000000000 +0100
++++ libdvdnav-0.1.10/src/searching.c 2008-03-28 15:24:50.000000000 +0100
+@@ -16,9 +16,6 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: searching.c,v 1.35 2004/01/07 19:35:12 mroi Exp $
+- *
+ */
+
+ #ifdef HAVE_CONFIG_H
+@@ -27,6 +24,7 @@
+
+ #include <assert.h>
+ #include "dvdnav_internal.h"
++#include "dvdnav.h"
+
+ /*
+ #define LOG_DEBUG
+@@ -34,12 +32,6 @@
+
+ /* Searching API calls */
+
+-dvdnav_status_t dvdnav_time_search(dvdnav_t *this,
+- uint64_t time) {
+- /* FIXME: Time search the current PGC based on the xxx table */
+- return DVDNAV_STATUS_OK;
+-}
+-
+ /* Scan the ADMAP for a particular block number. */
+ /* Return placed in vobu. */
+ /* Returns error status */
+@@ -101,6 +93,86 @@
+ return DVDNAV_STATUS_ERR;
+ }
+
++dvdnav_status_t dvdnav_time_search(dvdnav_t *this,
++ uint64_t time) {
++
++ uint64_t target = time;
++ uint64_t length = 0;
++ uint32_t first_cell_nr, last_cell_nr, cell_nr;
++ int32_t found;
++ cell_playback_t *cell;
++ dvd_state_t *state;
++
++ if(this->position_current.still != 0) {
++ printerr("Cannot seek in a still frame.");
++ return DVDNAV_STATUS_ERR;
++ }
++
++ pthread_mutex_lock(&this->vm_lock);
++ state = &(this->vm->state);
++ if(!state->pgc) {
++ printerr("No current PGC.");
++ pthread_mutex_unlock(&this->vm_lock);
++ return DVDNAV_STATUS_ERR;
++ }
++
++
++ if (this->pgc_based) {
++ first_cell_nr = 1;
++ last_cell_nr = state->pgc->nr_of_cells;
++ } else {
++ /* Find start cell of program. */
++ first_cell_nr = state->pgc->program_map[state->pgN-1];
++ /* Find end cell of program */
++ if(state->pgN < state->pgc->nr_of_programs)
++ last_cell_nr = state->pgc->program_map[state->pgN] - 1;
++ else
++ last_cell_nr = state->pgc->nr_of_cells;
++ }
++
++ found = 0;
++ for(cell_nr = first_cell_nr; (cell_nr <= last_cell_nr) && !found; cell_nr ++) {
++ cell = &(state->pgc->cell_playback[cell_nr-1]);
++ length = dvdnav_convert_time(&cell->playback_time);
++ if (target >= length) {
++ target -= length;
++ } else {
++ /* FIXME: there must be a better way than interpolation */
++ target = target * (cell->last_sector - cell->first_sector + 1) / length;
++ target += cell->first_sector;
++
++ found = 1;
++ break;
++ }
++ }
++
++ if(found) {
++ int32_t vobu;
++#ifdef LOG_DEBUG
++ fprintf(MSG_OUT, "libdvdnav: Seeking to cell %i from choice of %i to %i\n",
++ cell_nr, first_cell_nr, last_cell_nr);
++#endif
++ if (dvdnav_scan_admap(this, state->domain, target, &vobu) == DVDNAV_STATUS_OK) {
++ int32_t start = state->pgc->cell_playback[cell_nr-1].first_sector;
++
++ if (vm_jump_cell_block(this->vm, cell_nr, vobu - start)) {
++#ifdef LOG_DEBUG
++ fprintf(MSG_OUT, "libdvdnav: After cellN=%u blockN=%u target=%x vobu=%x start=%x\n" ,
++ state->cellN, state->blockN, target, vobu, start);
++#endif
++ this->vm->hop_channel += HOP_SEEK;
++ pthread_mutex_unlock(&this->vm_lock);
++ return DVDNAV_STATUS_OK;
++ }
++ }
++ }
++
++ fprintf(MSG_OUT, "libdvdnav: Error when seeking\n");
++ printerr("Error when seeking.");
++ pthread_mutex_unlock(&this->vm_lock);
++ return DVDNAV_STATUS_ERR;
++}
++
+ dvdnav_status_t dvdnav_sector_search(dvdnav_t *this,
+ uint64_t offset, int32_t origin) {
+ uint32_t target = 0;
+diff -Naur libdvdnav-0.1.10-org/src/settings.c libdvdnav-0.1.10/src/settings.c
+--- libdvdnav-0.1.10-org/src/settings.c 2003-12-31 22:37:16.000000000 +0100
++++ libdvdnav-0.1.10/src/settings.c 2008-03-28 15:24:50.000000000 +0100
+@@ -16,9 +16,6 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: settings.c,v 1.9 2003/12/31 21:37:16 jcdutton Exp $
+- *
+ */
+
+ #ifdef HAVE_CONFIG_H
+diff -Naur libdvdnav-0.1.10-org/src/vm/decoder.c libdvdnav-0.1.10/src/vm/decoder.c
+--- libdvdnav-0.1.10-org/src/vm/decoder.c 2004-03-03 17:50:42.000000000 +0100
++++ libdvdnav-0.1.10/src/vm/decoder.c 2008-03-28 15:24:50.000000000 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (C) 2000, 2001 Martin Norbäck, Håkan Hjort
++ * Copyright (C) 2000, 2001 Martin Norbäck, Håkan Hjort
+ * 2002-2004 the dvdnav project
+ *
+ * This file is part of libdvdnav, a DVD navigation library. It is modified
+@@ -18,9 +18,6 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: decoder.c,v 1.2 2004/03/03 16:50:42 mroi Exp $
+- *
+ */
+
+ #ifdef HAVE_CONFIG_H
+diff -Naur libdvdnav-0.1.10-org/src/vm/decoder.h libdvdnav-0.1.10/src/vm/decoder.h
+--- libdvdnav-0.1.10-org/src/vm/decoder.h 2004-01-11 22:43:13.000000000 +0100
++++ libdvdnav-0.1.10/src/vm/decoder.h 2008-01-23 06:11:52.000000000 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (C) 2000, 2001 Martin Norbäck, Håkan Hjort
++ * Copyright (C) 2000, 2001 Martin Norbäck, Håkan Hjort
+ *
+ * This file is part of libdvdnav, a DVD navigation library. It is modified
+ * from a file originally part of the Ogle DVD player.
+@@ -17,9 +17,6 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: decoder.h,v 1.1 2004/01/11 21:43:13 mroi Exp $
+- *
+ */
+
+ #ifndef DECODER_H_INCLUDED
+diff -Naur libdvdnav-0.1.10-org/src/vm/vm.c libdvdnav-0.1.10/src/vm/vm.c
+--- libdvdnav-0.1.10-org/src/vm/vm.c 2004-05-21 21:32:25.000000000 +0200
++++ libdvdnav-0.1.10/src/vm/vm.c 2008-03-28 15:24:50.000000000 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (C) 2000, 2001 Håkan Hjort
++ * Copyright (C) 2000, 2001 Håkan Hjort
+ * Copyright (C) 2001 Rich Wareham <richwareham@users.sourceforge.net>
+ * 2002-2004 the dvdnav project
+ *
+@@ -19,9 +19,6 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: vm.c,v 1.6 2004/05/21 19:32:25 mroi Exp $
+- *
+ */
+
+ #ifdef HAVE_CONFIG_H
+@@ -184,9 +181,9 @@
+ }
+ }
+
+-static void ifoOpenNewVTSI(vm_t *vm, dvd_reader_t *dvd, int vtsN) {
++static int ifoOpenNewVTSI(vm_t *vm, dvd_reader_t *dvd, int vtsN) {
+ if((vm->state).vtsN == vtsN) {
+- return; /* We alread have it */
++ return 1; /* We alread have it */
+ }
+
+ if(vm->vtsi != NULL)
+@@ -194,30 +191,32 @@
+
+ vm->vtsi = ifoOpenVTSI(dvd, vtsN);
+ if(vm->vtsi == NULL) {
+- fprintf(MSG_OUT, "libdvdnav: ifoOpenVTSI failed - CRASHING!!!\n");
+- assert(0);
++ fprintf(MSG_OUT, "libdvdnav: ifoOpenVTSI failed\n");
++ return 0;
+ }
+ if(!ifoRead_VTS_PTT_SRPT(vm->vtsi)) {
+- fprintf(MSG_OUT, "libdvdnav: ifoRead_VTS_PTT_SRPT failed - CRASHING!!!\n");
+- assert(0);
++ fprintf(MSG_OUT, "libdvdnav: ifoRead_VTS_PTT_SRPT failed\n");
++ return 0;
+ }
+ if(!ifoRead_PGCIT(vm->vtsi)) {
+- fprintf(MSG_OUT, "libdvdnav: ifoRead_PGCIT failed - CRASHING!!!\n");
+- assert(0);
++ fprintf(MSG_OUT, "libdvdnav: ifoRead_PGCIT failed\n");
++ return 0;
+ }
+ if(!ifoRead_PGCI_UT(vm->vtsi)) {
+- fprintf(MSG_OUT, "libdvdnav: ifoRead_PGCI_UT failed - CRASHING!!!\n");
+- assert(0);
++ fprintf(MSG_OUT, "libdvdnav: ifoRead_PGCI_UT failed\n");
++ return 0;
+ }
+ if(!ifoRead_VOBU_ADMAP(vm->vtsi)) {
+- fprintf(MSG_OUT, "libdvdnav: ifoRead_VOBU_ADMAP vtsi failed - CRASHING\n");
+- assert(0);
++ fprintf(MSG_OUT, "libdvdnav: ifoRead_VOBU_ADMAP vtsi failed\n");
++ return 0;
+ }
+ if(!ifoRead_TITLE_VOBU_ADMAP(vm->vtsi)) {
+- fprintf(MSG_OUT, "libdvdnav: ifoRead_TITLE_VOBU_ADMAP vtsi failed - CRASHING\n");
+- assert(0);
++ fprintf(MSG_OUT, "libdvdnav: ifoRead_TITLE_VOBU_ADMAP vtsi failed\n");
++ return 0;
+ }
+ (vm->state).vtsN = vtsN;
++
++ return 1;
+ }
+
+
+@@ -253,10 +252,11 @@
+
+ /* Basic Handling */
+
+-void vm_start(vm_t *vm) {
++int vm_start(vm_t *vm) {
+ /* Set pgc to FP (First Play) pgc */
+ set_FP_PGC(vm);
+ process_command(vm, play_PGC(vm));
++ return !vm->stopped;
+ }
+
+ void vm_stop(vm_t *vm) {
+@@ -382,7 +382,8 @@
+ vtsN = (target->state).vtsN;
+ if (vtsN > 0) {
+ (target->state).vtsN = 0;
+- ifoOpenNewVTSI(target, target->dvd, vtsN);
++ if (!ifoOpenNewVTSI(target, target->dvd, vtsN))
++ assert(0);
+
+ /* restore pgc pointer into the new vtsi */
+ if (!set_PGCN(target, pgcN))
+@@ -712,8 +713,8 @@
+ }
+ }
+
+- if((vm->state).domain != VTS_DOMAIN && streamN == -1)
+- streamN = 0;
++ if((vm->state).domain != VTS_DOMAIN && streamN == -1)
++ streamN = 0;
+
+ /* FIXME: Should also check in vtsi/vmgi status what kind of stream it is. */
+ return streamN;
+@@ -1280,9 +1281,10 @@
+ if(link_values.data1 != 0)
+ (vm->state).HL_BTNN_REG = link_values.data1 << 10;
+ assert((vm->state).pgc->next_pgc_nr != 0);
+- if(!set_PGCN(vm, (vm->state).pgc->next_pgc_nr))
+- assert(0);
+- link_values = play_PGC(vm);
++ if(set_PGCN(vm, (vm->state).pgc->next_pgc_nr))
++ link_values = play_PGC(vm);
++ else
++ link_values.command = Exit;
+ break;
+ case LinkPrevPGC:
+ /* Link to Previous Program Chain */
+@@ -1290,9 +1292,10 @@
+ if(link_values.data1 != 0)
+ (vm->state).HL_BTNN_REG = link_values.data1 << 10;
+ assert((vm->state).pgc->prev_pgc_nr != 0);
+- if(!set_PGCN(vm, (vm->state).pgc->prev_pgc_nr))
+- assert(0);
+- link_values = play_PGC(vm);
++ if(set_PGCN(vm, (vm->state).pgc->prev_pgc_nr))
++ link_values = play_PGC(vm);
++ else
++ link_values.command = Exit;
+ break;
+ case LinkGoUpPGC:
+ /* Link to GoUp Program Chain */
+@@ -1300,9 +1303,10 @@
+ if(link_values.data1 != 0)
+ (vm->state).HL_BTNN_REG = link_values.data1 << 10;
+ assert((vm->state).pgc->goup_pgc_nr != 0);
+- if(!set_PGCN(vm, (vm->state).pgc->goup_pgc_nr))
+- assert(0);
+- link_values = play_PGC(vm);
++ if(set_PGCN(vm, (vm->state).pgc->goup_pgc_nr))
++ link_values = play_PGC(vm);
++ else
++ link_values.command = Exit;
+ break;
+ case LinkTailPGC:
+ /* Link to Tail of Program Chain */
+@@ -1325,7 +1329,8 @@
+ }
+
+ (vm->state).domain = VTS_DOMAIN;
+- ifoOpenNewVTSI(vm, vm->dvd, (vm->state).rsm_vtsN);
++ if (!ifoOpenNewVTSI(vm, vm->dvd, (vm->state).rsm_vtsN))
++ assert(0);
+ set_PGCN(vm, (vm->state).rsm_pgcN);
+
+ /* These should never be set in SystemSpace and/or MenuSpace */
+@@ -1343,10 +1348,11 @@
+ (vm->state).pgN = 1;
+ link_values = play_PG(vm);
+ } else {
+- /* (vm->state).pgN = ?? this gets the righ value in set_PGN() below */
++ /* (vm->state).pgN = ?? this gets the right value in set_PGN() below */
+ (vm->state).cellN = (vm->state).rsm_cellN;
+ link_values.command = PlayThis;
+- link_values.data1 = (vm->state).rsm_blockN;
++ link_values.data1 = (vm->state).rsm_blockN & 0xffff;
++ link_values.data2 = (vm->state).rsm_blockN >> 16;
+ if(!set_PGN(vm)) {
+ /* Were at the end of the PGC, should not happen for a RSM */
+ assert(0);
+@@ -1403,9 +1409,10 @@
+ /* Stop SPRM9 Timer */
+ /* Set SPRM1 and SPRM2 */
+ assert((vm->state).domain == VMGM_DOMAIN || (vm->state).domain == FP_DOMAIN); /* ?? */
+- if(!set_TT(vm, link_values.data1))
+- assert(0);
+- link_values = play_PGC(vm);
++ if(set_TT(vm, link_values.data1))
++ link_values = play_PGC(vm);
++ else
++ link_values.command = Exit;
+ break;
+ case JumpVTS_TT:
+ /* Jump to Title:data1 in same VTS Title Domain */
+@@ -1462,7 +1469,8 @@
+ /* the normal case */
+ assert((vm->state).domain == VMGM_DOMAIN || (vm->state).domain == FP_DOMAIN); /* ?? */
+ (vm->state).domain = VTSM_DOMAIN;
+- ifoOpenNewVTSI(vm, vm->dvd, link_values.data1); /* Also sets (vm->state).vtsN */
++ if (!ifoOpenNewVTSI(vm, vm->dvd, link_values.data1)) /* Also sets (vm->state).vtsN */
++ assert(0);
+ } else {
+ /* This happens on some discs like "Captain Scarlet & the Mysterons" or
+ * the German RC2 of "Anatomie" in VTSM. */
+@@ -1549,7 +1557,7 @@
+ #endif
+
+ }
+- (vm->state).blockN = link_values.data1;
++ (vm->state).blockN = link_values.data1 | (link_values.data2 << 16);
+ return 1;
+ }
+
+@@ -1575,8 +1583,9 @@
+
+ (vm->state).domain = VTS_DOMAIN;
+
+- if(vtsN != (vm->state).vtsN)
+- ifoOpenNewVTSI(vm, vm->dvd, vtsN); /* Also sets (vm->state).vtsN */
++ if (vtsN != (vm->state).vtsN)
++ if (!ifoOpenNewVTSI(vm, vm->dvd, vtsN)) /* Also sets (vm->state).vtsN */
++ return 0;
+
+ if ((vts_ttn < 1) || (vts_ttn > vm->vtsi->vts_ptt_srpt->nr_of_srpts) ||
+ (part < 1) || (part > vm->vtsi->vts_ptt_srpt->title[vts_ttn - 1].nr_of_ptts) ) {
+@@ -1601,6 +1610,9 @@
+
+ static int set_FP_PGC(vm_t *vm) {
+ (vm->state).domain = FP_DOMAIN;
++ if (!vm->vmgi->first_play_pgc) {
++ return set_PGCN(vm, 1);
++ }
+ (vm->state).pgc = vm->vmgi->first_play_pgc;
+ (vm->state).pgcN = vm->vmgi->vmgi_mat->first_play_pgc;
+ return 1;
+diff -Naur libdvdnav-0.1.10-org/src/vm/vmcmd.c libdvdnav-0.1.10/src/vm/vmcmd.c
+--- libdvdnav-0.1.10-org/src/vm/vmcmd.c 2004-03-03 17:50:42.000000000 +0100
++++ libdvdnav-0.1.10/src/vm/vmcmd.c 2008-03-28 15:24:50.000000000 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (C) 2000, 2001 Martin Norbäck, Håkan Hjort
++ * Copyright (C) 2000, 2001 Martin Norbäck, Håkan Hjort
+ * 2002-2004 the dvdnav project
+ *
+ * This file is part of libdvdnav, a DVD navigation library. It is modified
+@@ -18,9 +18,6 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: vmcmd.c,v 1.2 2004/03/03 16:50:42 mroi Exp $
+- *
+ */
+
+ #ifdef HAVE_CONFIG_H
+diff -Naur libdvdnav-0.1.10-org/src/vm/vmcmd.h libdvdnav-0.1.10/src/vm/vmcmd.h
+--- libdvdnav-0.1.10-org/src/vm/vmcmd.h 2004-01-11 22:43:13.000000000 +0100
++++ libdvdnav-0.1.10/src/vm/vmcmd.h 2008-01-23 06:11:52.000000000 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (C) 2000, 2001 Martin Norbäck, Håkan Hjort
++ * Copyright (C) 2000, 2001 Martin Norbäck, Håkan Hjort
+ *
+ * This file is part of libdvdnav, a DVD navigation library. It is modified
+ * from a file originally part of the Ogle DVD player.
+@@ -17,9 +17,6 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: vmcmd.h,v 1.1 2004/01/11 21:43:13 mroi Exp $
+- *
+ */
+
+ #ifndef VMCMD_H_INCLUDED
+diff -Naur libdvdnav-0.1.10-org/src/vm/vm.h libdvdnav-0.1.10/src/vm/vm.h
+--- libdvdnav-0.1.10-org/src/vm/vm.h 2004-01-11 22:43:13.000000000 +0100
++++ libdvdnav-0.1.10/src/vm/vm.h 2008-01-23 06:11:52.000000000 +0100
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (C) 2000, 2001 Håkan Hjort
++ * Copyright (C) 2000, 2001 Håkan Hjort
+ * Copyright (C) 2001 Rich Wareham <richwareham@users.sourceforge.net>
+ *
+ * This file is part of libdvdnav, a DVD navigation library. It is modified
+@@ -18,9 +18,6 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+- *
+- * $Id: vm.h,v 1.1 2004/01/11 21:43:13 mroi Exp $
+- *
+ */
+
+ #ifndef VM_H_INCLUDED
+@@ -127,7 +124,7 @@
+ dvd_reader_t *vm_get_dvd_reader(vm_t *vm);
+
+ /* Basic Handling */
+-void vm_start(vm_t *vm);
++int vm_start(vm_t *vm);
+ void vm_stop(vm_t *vm);
+ int vm_reset(vm_t *vm, const char *dvdroot);
+
+diff -Naur libdvdnav-0.1.10-org/configure.ac libdvdnav-0.1.10/configure.ac
+--- libdvdnav-0.1.10-org/configure.ac 2004-06-10 23:13:02.000000000 +0200
++++ libdvdnav-0.1.10/configure.ac 2008-04-19 21:29:04.000000000 +0200
+@@ -13,9 +13,9 @@
+ dnl --------------------------------------------------------------
+ dnl Making releases: DVDNAV_SUB += 1; change LT_* accordingly
+ dnl --------------------------------------------------------------
+-DVDNAV_MAJOR=0
++DVDNAV_MAJOR=1
+ DVDNAV_MINOR=1
+-DVDNAV_SUB=10
++DVDNAV_SUB=12
+ DVDNAV_PRE=""
+
+ AC_SUBST(DVDNAV_MAJOR)
--- /dev/null
+# libdvdnav .bb build file
+# Copyright (C) 2006, Advanced Micro Devices, Inc. All Rights Reserved
+# Released under the MIT license (see /COPYING)
+
+HOMEPAGE="http://xinehq.de/"
+DESCRIPTION="DVD navigation multimeda library"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+LICENSE = "GPL"
+
+S = "${WORKDIR}/libdvdnav-0.1.10"
+
+SRC_URI="${SOURCEFORGE_MIRROR}/dvd/libdvdnav-0.1.10.tar.gz \
+ file://dvdnav-xine-lib-1.1.12.patch;patch=1;pnum=1 \
+ file://dvdnav-fix-read-dvdlabel.patch;patch=1;pnum=1 \
+ file://dvdnav-fix-clut-copy.patch;patch=1;pnum=1"
+
+inherit autotools
+
+do_stage() {
+ autotools_stage_all
+}
--- /dev/null
+DESCRIPTION = "Extensible binary format library (kinda like XML)"
+HOMEPAGE = "http://www.matroska.org/"
+SECTION = "libs"
+PRIORITY = "optional"
+
+LICENSE="LGPL-2.1"
+
+inherit pkgconfig
+
+SRC_URI = "http://www.bunkus.org/videotools/mkvtoolnix/sources/${PN}-${PV}.tar.bz2"
+
+#S="${S}/make/linux"
+
+do_compile() {
+ cd ${S}/make/linux
+ oe_runmake CC="${CC}" CXX="${CXX}" AR="${AR} rcvu"
+}
+
+do_stage () {
+ oe_libinstall -a -so -C make/linux libebml ${STAGING_LIBDIR}
+}
+
+do_install() {
+ install -m 0644 ebml/*.h ${STAGING_INCDIR}
+ install -d ${STAGING_INCDIR}/ebml
+ (cd ${S}/ebml; cp *.h ${STAGING_INCDIR}/ebml/; mkdir -p ${STAGING_INCDIR}/ebml/c; cp c/libebml_t.h ${STAGING_INCDIR}/ebml/c;)
+}
--- /dev/null
+# libmatroska core Makefile (used in cygwin)
+# $Id: Makefile 1254 2006-06-02 14:32:52Z mosu $
+# Author: Steve Lhomme <robux4 @ users.sf.net>
+# Author: Moritz Bunkus <moritz @ bunkus.org>
+
+#
+# The library is built without debug information. If you want
+# debug information to be included then compile with
+# 'make DEBUG=yes'.
+#
+
+# Paths
+libdir=$(LIBDIR)
+includedir=$(INCDIR)/matroska
+
+# Programs
+CXX=g++
+LD=$(CXX)
+AR = ar rcvu
+RANLIB = ranlib
+INSTALL = install
+INSTALL_OPTS = -m 644
+INSTALL_OPTS_LIB = -m 644
+INSTALL_DIR_OPTS = -m 755
+
+ifneq (,$(shell $(CXX) -v 2>&1 | tail -n 1 | grep -i mingw))
+$(error Please use the Makefile in ../mingw32)
+endif
+
+CWD=$(shell pwd)
+
+# Options
+LIBEBML_INCLUDE_DIR=$(INCDIR)/ebml
+LIBEBML_LIB_DIR=$(LIBDIR)
+EXTENSION=.cpp
+
+
+ifeq (yes,$(DEBUG))
+DEBUGFLAGS=-g -DDEBUG
+endif
+
+SRC_DIR=$(CWD)/src/
+INCLUDE_DIR=$(CWD)/matroska
+MUX_SRC_DIR=$(CWD)/test/mux/
+TAG_SRC_DIR=$(CWD)/test/tags/
+
+# Librarires
+INCLUDE=-I$(CWD)/. -I$(LIBEBML_INCLUDE_DIR)
+LIBS=
+MUX_LIBS=-lmatroska -lebml $(LIBICONV)
+
+# Names
+LIBRARY=libmatroska.a
+LIBRARY_SO=libmatroska.so
+LIBRARY_SO_VER=libmatroska.so.0
+
+# source-files
+sources:=$(wildcard ${SRC_DIR}*$(EXTENSION))
+
+# header files; replace .cxx extension with .h
+headers:=$(patsubst %$(EXTENSION),%.h,$(sources))
+
+# object files; replace .cxx extension with .o
+objects:=$(patsubst %$(EXTENSION),%.o,$(sources))
+
+objects_so:=$(patsubst %$(EXTENSION),%.lo,$(sources))
+
+WARNINGFLAGS=-Wall -Wno-unknown-pragmas -ansi -fno-gnu-keywords -D_GNU_SOURCE \
+ -Wshadow
+COMPILEFLAGS=$(DEBUGFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(WARNINGFLAGS) $(INCLUDE)
+LINKFLAGS=-L. -L$(LIBEBML_LIB_DIR) $(LDFLAGS)
+DEPENDFLAGS = $(CXXFLAGS) $(INCLUDE)
+
+ifeq (Darwin,$(shell uname -s))
+all: staticlib
+else
+all: staticlib sharedlib
+endif
+
+staticlib: $(LIBRARY)
+
+sharedlib: $(LIBRARY_SO)
+
+lib:
+ @echo "Use the 'staticlib', 'sharedlib' or 'all' targets."
+ @false
+
+# Build rules
+%.o: %$(EXTENSION)
+ $(CXX) -c $(COMPILEFLAGS) -o $@ $<
+
+%.lo: %$(EXTENSION)
+ $(CXX) -c $(COMPILEFLAGS) -fPIC -o $@ $<
+
+$(LIBRARY): $(objects)
+ $(AR) $@ $(objects)
+ $(RANLIB) $@
+
+$(LIBRARY_SO): $(objects_so)
+ $(CXX) -shared -Wl,-soname,$(LIBRARY_SO_VER) -o $(LIBRARY_SO_VER) $(objects_so) -L$(LIBEBML_LIB_DIR) -lebml
+ rm -f $(LIBRARY_SO)
+ ln -s $(LIBRARY_SO_VER) $(LIBRARY_SO)
+
+clean: cleantest
+ rm -f $(objects) $(objects_so)
+ rm -f $(LIBRARY)
+ rm -f $(LIBRARY_SO)
+ rm -f $(LIBRARY_SO_VER)
+ rm -f CORE
+
+cleantest:
+ rm -f test6 test8 test9 test6.o test8.o test9.o
+
+distclean dist-clean: clean
+ rm -f .depend
+
+depend:
+ @echo Calculating dependecies:
+ @rm -f .depend
+ @touch .depend
+ @for i in $(sources); do \
+ o="`echo $$i | sed -e 's/\.c$$/.o/' -e 's/\.cpp$$/.o/'`" ; \
+ echo ' ' $$i: $$o ; \
+ $(CXX) $(DEPENDFLAGS) -MM -MT $$o $$i >> .depend ; \
+ done
+
+test: test6 test9
+
+test6: test6.o $(LIBRARY) $(LIBRARY_SO)
+ $(LD) -o $@ $(LINKFLAGS) $< $(MUX_LIBS)
+
+test6.o: $(MUX_SRC_DIR)test6.cpp
+ $(CXX) -c $(COMPILEFLAGS) -o $@ $<
+
+test8: test8.o $(LIBRARY) $(LIBRARY_SO)
+ $(LD) -o $@ $(LINKFLAGS) $< $(MUX_LIBS)
+
+test8.o: $(MUX_SRC_DIR)test8.cpp
+ $(CXX) -c $(COMPILEFLAGS) -o $@ $<
+
+test9: test9.o $(LIBRARY) $(LIBRARY_SO)
+ $(LD) -o $@ $(LINKFLAGS) $< $(MUX_LIBS)
+
+test9.o: $(TAG_SRC_DIR)test9.cpp
+ $(CXX) -c $(COMPILEFLAGS) -o $@ $<
+
+ifeq (Darwin,$(shell uname -s))
+install: install_staticlib install_headers
+else
+install: install_staticlib install_sharedlib install_headers
+endif
+
+install_headers:
+ $(INSTALL) $(INSTALL_DIR_OPTS) -d $(includedir)
+ for i in $(INCLUDE_DIR)/*.h; do \
+ $(INSTALL) $(INSTALL_OPTS) $$i $(includedir) ; \
+ done
+ $(INSTALL) $(INSTALL_DIR_OPTS) -d $(includedir)/c
+ for i in $(INCLUDE_DIR)/c/*.h; do \
+ $(INSTALL) $(INSTALL_OPTS) $$i $(includedir)/c ; \
+ done
+
+install_staticlib: $(LIBRARY)
+ $(INSTALL) $(INSTALL_DIR_OPTS) -d $(libdir)
+ $(INSTALL) $(INSTALL_OPTS_LIB) $(LIBRARY) $(libdir)
+
+install_sharedlib: $(LIBRARY_SO)
+ $(INSTALL) $(INSTALL_DIR_OPTS) -d $(libdir)
+ $(INSTALL) $(INSTALL_OPTS_LIB) $(LIBRARY_SO_VER) $(libdir)
+ ln -fs $(LIBRARY_SO_VER) $(libdir)/$(LIBRARY_SO)
+
+ifneq ($(wildcard .depend),)
+include .depend
+endif
+
+# DO NOT DELETE
--- /dev/null
+DESCRIPTION = "Extensible multimedia container format based on EBML"
+HOMEPAGE = "http://www.matroska.org/"
+SECTION = "libs"
+PRIORITY = "optional"
+MAINTAINER = "Andreas Frisch <andreas.frisch@multimedia-labs.de>"
+
+LICENSE = "GPL-2"
+
+DEPENDS = "libebml"
+
+inherit pkgconfig autotools module-base
+
+#EXTRA_OEMAKE += "CFLAGS='${CFLAGS} -I${STAGING_INCDIR}' LDFLAGS='${LDFLAGS} -L${STAGING_LIBDIR}"
+#LDFLAGS += " -L${STAGING_LIBDIR}"
+#EXTRA_OEMAKE += " LDFLAGS='${LDFLAGS}"
+
+EXTRA_OECONF = " --enable-shared "
+
+SRC_URI = "http://www.bunkus.org/videotools/mkvtoolnix/sources/${PN}-${PV}.tar.bz2\
+ file://Makefile"
+
+do_compile() {
+ cp ${WORKDIR}/Makefile ${WORKDIR}/${PN}-${PV}
+ oe_runmake CC="${CC}" CXX="${CXX}" AR="${AR} rcvu" INCDIR="${STAGING_INCDIR}" LIBDIR="${STAGING_LIBDIR}"
+}
+
+do_stage() {
+ oe_libinstall -a -so -C ./ libmatroska ${STAGING_LIBDIR}
+# cd make/linux
+# oe_libinstall -so ${STAGING_LIBDIR}
+}
+
+do_install() {
+ oe_runmake install_headers CC="${CC}" CXX="${CXX}" AR="${AR} rcvu" INCDIR="${STAGING_INCDIR}" LIBDIR="${STAGING_LIBDIR}"
+}
--- /dev/null
+HOMEPAGE="http://puzzle.dl.sourceforge.net/sourceforge/libmms/"
+DESCRIPTION="libmms"
+MAINTAINER = "Raymond Danks <info-linux@geode.amd.com>"
+LICENSE = "GPL"
+
+SRC_URI="${SOURCEFORGE_MIRROR}/libmms/libmms-${PV}.tar.gz"
+
+inherit autotools pkgconfig
+
+do_stage() {
+ autotools_stage_all
+}
--- /dev/null
+diff -Naur liboil-0.3.14-org/liboil/liboilcpu-powerpc.c liboil-0.3.14/liboil/liboilcpu-powerpc.c
+--- liboil-0.3.14-org/liboil/liboilcpu-powerpc.c 2008-03-13 08:22:52.000000000 +0100
++++ liboil-0.3.14/liboil/liboilcpu-powerpc.c 2008-07-14 11:50:17.000000000 +0200
+@@ -35,7 +35,10 @@
+ #include <liboil/liboilutils.h>
+
+ #if defined(__linux__)
++#include <linux/version.h>
++#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
+ #include <linux/auxvec.h>
++#endif
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+@@ -101,7 +104,7 @@
+ }
+ #endif
+
+-#if defined(__linux__)
++#if defined(__linux__) && LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
+ static void
+ oil_check_altivec_proc_auxv (void)
+ {
+@@ -169,7 +172,7 @@
+ oil_check_altivec_sysctl_freebsd();
+ #elif defined(__APPLE__)
+ oil_check_altivec_sysctl_darwin();
+-#elif defined(__linux__)
++#elif defined(__linux__) && LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
+ oil_check_altivec_proc_auxv();
+ #else
+ oil_check_altivec_fault();
--- /dev/null
+diff -Naur liboil-0.3.9.org/configure.ac liboil-0.3.9/configure.ac
+--- liboil-0.3.9.org/configure.ac 2006-05-23 02:19:31.000000000 +0200
++++ liboil-0.3.9/configure.ac 2007-02-26 20:01:38.000000000 +0100
+@@ -167,7 +167,7 @@
+ AS_SSE3_INTRINSICS(SSE3_CFLAGS, HAVE_SSE3_INTRINSICS=yes, HAVE_SSE3_INTRINSICS=no)
+ AS_3DNOW_INTRINSICS(_3DNOW_CFLAGS, HAVE_3DNOW_INTRINSICS=yes, HAVE_3DNOW_INTRINSICS=no)
+ AS_3DNOWEXT_INTRINSICS(_3DNOWEXT_CFLAGS, HAVE_3DNOWEXT_INTRINSICS=yes, HAVE_3DNOWEXT_INTRINSICS=no)
+-AS_ALTIVEC_INTRINSICS(ALTIVEC_CFLAGS, HAVE_ALTIVEC_INTRINSICS=yes, HAVE_ALTIVEC_INTRINSICS=no)
++ALTIVEC_CFLAGS=""
+
+ AM_CONDITIONAL(HAVE_MMX_INTRINSICS, test "x$HAVE_MMX_INTRINSICS" = "xyes")
+ AM_CONDITIONAL(HAVE_SSE_INTRINSICS, test "x$HAVE_SSE_INTRINSICS" = "xyes")
+@@ -175,7 +175,7 @@
+ AM_CONDITIONAL(HAVE_SSE3_INTRINSICS, test "x$HAVE_SSE3_INTRINSICS" = "xyes")
+ AM_CONDITIONAL(HAVE_3DNOW_INTRINSICS, test "x$HAVE_3DNOW_INTRINSICS" = "xyes")
+ AM_CONDITIONAL(HAVE_3DNOWEXT_INTRINSICS, test "x$HAVE_3DNOWEXT_INTRINSICS" = "xyes")
+-AM_CONDITIONAL(HAVE_ALTIVEC_INTRINSICS, test "x$HAVE_ALTIVEC_INTRINSICS" = "xyes")
++HAVE_ALTIVEC_INTRINSICS="xno"
+
+ AC_SUBST(MMX_CFLAGS)
+ AC_SUBST(SSE_CFLAGS)
--- /dev/null
+diff -Naur liboil-0.3.9-org/configure.ac liboil-0.3.9/configure.ac
+--- liboil-0.3.9-org/configure.ac 2007-02-26 20:06:52.000000000 +0100
++++ liboil-0.3.9/configure.ac 2007-02-26 20:16:35.000000000 +0100
+@@ -99,14 +99,6 @@
+
+ AS_HOST_DEFINES()
+
+-AS_GCC_ASM_POWERPC_FPU([HAVE_GCC_ASM_POWERPC_FPU=yes],
+- [HAVE_GCC_ASM_POWERPC_FPU=no])
+-if test x$HAVE_GCC_ASM_POWERPC_FPU = xyes ; then
+- AC_DEFINE(HAVE_GCC_ASM_POWERPC_FPU, 1,
+- [Define if compiler supports PowerPC FPU instructions])
+-fi
+-AM_CONDITIONAL(HAVE_GCC_ASM_POWERPC_FPU,
+- test "x$HAVE_GCC_ASM_POWERPC" = "xyes")
+
+ AC_C_BIGENDIAN
+ AS_UNALIGNED_ACCESS
--- /dev/null
+diff -Naur liboil-0.3.15-org/liboil/liboilcpu-powerpc.c liboil-0.3.15/liboil/liboilcpu-powerpc.c
+--- liboil-0.3.15-org/liboil/liboilcpu-powerpc.c 2009-01-15 23:52:42.000000000 +0100
++++ liboil-0.3.15/liboil/liboilcpu-powerpc-fixed.c 2009-01-15 23:56:05.000000000 +0100
+@@ -35,7 +35,10 @@
+ #include <liboil/liboilutils.h>
+
+ #if defined(__linux__)
++#include <linux/version.h>
++#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
+ #include <linux/auxvec.h>
++#endif
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+@@ -70,7 +73,7 @@
+ return ts;
+ }
+
+-#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && !defined(__APPLE__) && !defined(__linux__)
++#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && !defined(__APPLE__) && !(defined(__linux__) && LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13))
+ static void
+ test_altivec (void * ignored)
+ {
+@@ -108,7 +111,7 @@
+ }
+ #endif
+
+-#if defined(__linux__)
++#if defined(__linux__) && LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
+ static void
+ oil_check_altivec_proc_auxv (void)
+ {
+@@ -158,7 +161,7 @@
+ }
+ #endif
+
+-#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && !defined(__APPLE__) && !defined(__linux__)
++#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && !defined(__APPLE__) && !(defined(__linux__) && LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13))
+ static void
+ oil_check_altivec_fault (void)
+ {
+@@ -178,7 +181,7 @@
+ oil_check_altivec_sysctl_freebsd();
+ #elif defined(__APPLE__)
+ oil_check_altivec_sysctl_darwin();
+-#elif defined(__linux__)
++#elif defined(__linux__) && LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
+ oil_check_altivec_proc_auxv();
+ #else
+ oil_check_altivec_fault();
--- /dev/null
+diff -Naur libxmlccwrap-0.0.12_org/configure.ac libxmlccwrap-0.0.12/configure.ac
+--- libxmlccwrap-0.0.12_org/configure.ac 2005-07-28 21:27:58.000000000 +0200
++++ libxmlccwrap-0.0.12/configure.ac 2007-10-29 15:36:49.000000000 +0100
+@@ -15,7 +15,7 @@
+ AM_PROG_LIBTOOL
+
+ AC_CHECK_LIB(xml2,main)
+-AC_CHECK_LIB(xslt,main)
++#AC_CHECK_LIB(xslt,main)
+
+ AC_OUTPUT([Makefile \
+ xmlccwrap/Makefile \
+diff -Naur libxmlccwrap-0.0.12_org/xmlccwrap/xmlccwrap.cc libxmlccwrap-0.0.12/xmlccwrap/xmlccwrap.cc
+--- libxmlccwrap-0.0.12_org/xmlccwrap/xmlccwrap.cc 2003-12-18 23:48:08.000000000 +0100
++++ libxmlccwrap-0.0.12/xmlccwrap/xmlccwrap.cc 2007-10-24 22:54:15.000000000 +0200
+@@ -23,8 +23,10 @@
+ #include <libxml/tree.h>
+ #include <libxml/HTMLparser.h>
+ #include <libxml/encoding.h>
++/*
+ #include <libxslt/xsltutils.h>
+ #include <libxslt/transform.h>
++*/
+ #include "xmlccwrap.h"
+ #include "libxmlexport.h"
+
+@@ -47,7 +49,7 @@
+ Element *readnode(xmlNodePtr);
+ void writenode(xmlDocPtr, Element *, xmlNodePtr, int = 0);
+
+-
++/*
+ XSLTTree::XSLTTree()
+ {
+ xsltP = 0;
+@@ -83,7 +85,7 @@
+ {
+ return xsltP;
+ }
+-
++*/
+
+ XMLTree::XMLTree() : _filename(), _root(), _compression(0)
+ { }
+@@ -380,7 +382,7 @@
+ return retval;
+ }
+
+-
++/*
+ bool XMLTree::xslt(const XSLTTree & xsltTree, const std::string & outputfile, ParameterMap & parameterMap)
+ {
+ bool ret = false;
+@@ -425,7 +427,7 @@
+ ParameterMap parameterMap;
+ return xslt(xsltTree, outputfile, parameterMap);
+ }
+-
++*/
+
+ const std::string & XMLTree::getErrorString()
+ {
+diff -Naur libxmlccwrap-0.0.12_org/xmlccwrap/xmlccwrap.h libxmlccwrap-0.0.12/xmlccwrap/xmlccwrap.h
+--- libxmlccwrap-0.0.12_org/xmlccwrap/xmlccwrap.h 2003-12-18 23:42:37.000000000 +0100
++++ libxmlccwrap-0.0.12/xmlccwrap/xmlccwrap.h 2007-10-24 22:54:15.000000000 +0200
+@@ -43,7 +41,7 @@
+ typedef std::multimap<std::string, std::string> ParameterMap;
+ typedef ParameterMap::value_type ValuePair;
+
+-
++/*
+ class XSLTTree
+ {
+ private:
+@@ -60,7 +58,7 @@
+ bool read(const std::string &fn);
+ const void * exportxsltStylesheetPtr() const;
+ };
+-
++*/
+
+ class XMLTree
+ {
+@@ -102,10 +100,10 @@
+ bool write(const std::string &fn);
+ const std::string & writeBuffer() const;
+
+-
++/*
+ bool xslt(const XSLTTree & xsltTree, const std::string & outputfile, ParameterMap & parameterMap);
+ bool xslt(const XSLTTree & xsltTree, const std::string & outputfile);
+-
++*/
+ const std::string & getErrorString();
+ };
+
--- /dev/null
+diff -Naur libxmlccwrap-0.0.12_org/Makefile.am libxmlccwrap-0.0.12/Makefile.am
+--- libxmlccwrap-0.0.12_org/Makefile.am 2002-12-11 23:18:41.000000000 +0100
++++ libxmlccwrap-0.0.12/Makefile.am 2007-10-29 15:35:11.000000000 +0100
+@@ -1 +1 @@
+-SUBDIRS = xmlccwrap html testlib
++SUBDIRS = xmlccwrap
--- /dev/null
+--- libxmlccwrap-0.0.12_org/xmlccwrap/xmlccwrap.cc 2003-12-18 23:48:08.000000000 +0100
++++ libxmlccwrap-0.0.12/xmlccwrap/xmlccwrap.cc 2007-10-24 22:54:15.000000000 +0200
+@@ -498,6 +500,7 @@
+ for (ElementIterator curnode = nodes.begin(); curnode != nodes.end(); curnode++)
+ add
+ (**curnode);
++ return *this;
+ }
+
+
--- /dev/null
+DESCRIPTION = "A small libxml2 c++ wrapper"
+SECTION = "libs"
+PRIORITY = "optional"
+LICENSE = "LGPL"
+PR = "r0"
+DEPENDS = "libxml2"
+RDEPENDS = "libxml2"
+
+SRC_URI = "http://www.ant.uni-bremen.de/whomes/rinas/libxmlccwrap/download/libxmlccwrap-${PV}.tar.gz \
+ file://dont_build_unneeded.patch;patch=1;pnum=1 \
+ file://disable_libxslt.patch;patch=1;pnum=1 \
+ file://fix_assignment_operator.patch;patch=1;pnum=1"
+
+inherit autotools
+
+FILES_${PN} = "/usr/lib/*.so*"
+FILES_${PN}-dev = "/usr/include/*.h /usr/include/xmlccwrap/*.h"
+
+do_stage () {
+ install -d ${STAGING_INCDIR}/xmlccwrap
+ install ${S}/xmlccwrap/*.h ${STAGING_INCDIR}/xmlccwrap
+ install ${S}/xmlccwrap/.libs/libxmlccwrap-${PV}.so ${STAGING_LIBDIR}
+ ln -sf ${STAGING_LIBDIR}/libxmlccwrap-${PV}.so ${STAGING_LIBDIR}/libxmlccwrap.so
+}
--- /dev/null
+LICENSE = GPL
+SECTION = "console/network"
+DEPENDS = "jpeg libpng zlib tuxbox-plugins"
+DESCRIPTION = "Dreambox plugin version of Links: Links is graphics and text mode WWW \
+browser, similar to Lynx."
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+
+SRC_URI = "http://dreamboxupdate.com/sources-mirror/links-2.1pre15.tar.bz2 \
+ http://sources.dreamboxupdate.com/download/opendreambox/links-dream-2.1pre15/links-dream-plugin.diff;patch=1"
+
+PACKAGES = "links-dream-plugin"
+
+FILES_links-dream-plugin = "/usr/lib/tuxbox/plugins/links.* /etc/links/screen.config /etc/links/tables.tar.gz"
+
+S = "${WORKDIR}/links-2.1pre15"
+
+inherit autotools pkgconfig
+
+do_configure_prepend() {
+ sed -i -e s:-L$\(prefix\)/lib:-L${STAGING_LIBDIR}:g Makefile.am
+}
+
+bindir = "/usr/bin"
+sbindir = "/usr/sbin"
--- /dev/null
+Submitted By: Jim Gifford (patches at jg555 dot com)
+Date: 2005-10-01
+Initial Package Version: 2.6.12.0
+Origin: Jim Gifford
+Upstream Status: Sent
+Description: Fixes Compile Issue with Sysklogd
+
+diff -Naur linux-libc-headers-2.6.12.0.orig/include/asm-mips/atomic.h linux-libc-headers-2.6.12.0/include/asm-mips/atomic.h
+--- linux-libc-headers-2.6.12.0.orig/include/asm-mips/atomic.h 2005-07-06 00:17:30.000000000 +0000
++++ linux-libc-headers-2.6.12.0/include/asm-mips/atomic.h 2005-10-01 22:04:26.000000000 +0000
+@@ -18,7 +18,7 @@
+ typedef struct { volatile int counter; } atomic_t;
+
+ #ifdef __mips64
+-typedef struct { volatile __s64 counter; } atomic64_t;
++typedef struct { volatile long counter; } atomic64_t;
+ #endif
+
+ #endif /* _ASM_ATOMIC_H */
--- /dev/null
+Submitted By: Jim Gifford (patches at jg555 dot com)
+Date: 2005-09-12
+Initial Package Version: 2.6.12.0
+Origin: http://www.uclibc.org/cgi-bin/viewcvs.cgi/trunk/buildroot/toolchain/kernel-headers/linux-libc-headers-2.6.12.0-mips-nptl.patch?rev=11104&view=auto
+Upstream Status: Unknown
+Description: Adds TLS Support to Kernel Headers for MIPS
+
+diff -Naur linux-libc-headers-2.6.12.0.orig/include/asm-mips/inst.h linux-libc-headers-2.6.12.0/include/asm-mips/inst.h
+--- linux-libc-headers-2.6.12.0.orig/include/asm-mips/inst.h 2004-10-31 19:54:20.000000000 +0000
++++ linux-libc-headers-2.6.12.0/include/asm-mips/inst.h 2005-09-12 23:57:11.000000000 +0000
+@@ -28,7 +28,7 @@
+ sdl_op, sdr_op, swr_op, cache_op,
+ ll_op, lwc1_op, lwc2_op, pref_op,
+ lld_op, ldc1_op, ldc2_op, ld_op,
+- sc_op, swc1_op, swc2_op, major_3b_op, /* Opcode 0x3b is unused */
++ sc_op, swc1_op, swc2_op, rdhwr_op,
+ scd_op, sdc1_op, sdc2_op, sd_op
+ };
+
+@@ -62,10 +62,10 @@
+ spimi_op, unused_rt_op_0x05, unused_rt_op_0x06, unused_rt_op_0x07,
+ tgei_op, tgeiu_op, tlti_op, tltiu_op,
+ teqi_op, unused_0x0d_rt_op, tnei_op, unused_0x0f_rt_op,
+- bltzal_op, bgezal_op, bltzall_op, bgezall_op
+- /*
+- * The others (0x14 - 0x1f) are unused.
+- */
++ bltzal_op, bgezal_op, bltzall_op, bgezall_op,
++ rt_op_0x14, rt_op_0x15, rt_op_0x16, rt_op_0x17,
++ rt_op_0x18, rt_op_0x19, rt_op_0x1a, rt_op_0x1b,
++ bposge32_op, rt_op_0x1d, rt_op_0x1e, rt_op_0x1f
+ };
+
+ /*
+diff -Naur linux-libc-headers-2.6.12.0.orig/include/asm-mips/unistd.h linux-libc-headers-2.6.12.0/include/asm-mips/unistd.h
+--- linux-libc-headers-2.6.12.0.orig/include/asm-mips/unistd.h 2005-07-06 00:17:29.000000000 +0000
++++ linux-libc-headers-2.6.12.0/include/asm-mips/unistd.h 2005-09-12 23:57:11.000000000 +0000
+@@ -303,16 +303,17 @@
+ #define __NR_add_key (__NR_Linux + 280)
+ #define __NR_request_key (__NR_Linux + 281)
+ #define __NR_keyctl (__NR_Linux + 282)
++#define __NR_set_thread_area (__NR_Linux + 283)
+
+ /*
+ * Offset of the last Linux o32 flavoured syscall
+ */
+-#define __NR_Linux_syscalls 282
++#define __NR_Linux_syscalls 283
+
+ #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
+
+ #define __NR_O32_Linux 4000
+-#define __NR_O32_Linux_syscalls 282
++#define __NR_O32_Linux_syscalls 283
+
+ #if _MIPS_SIM == _MIPS_SIM_ABI64
+
+@@ -562,16 +563,17 @@
+ #define __NR_add_key (__NR_Linux + 239)
+ #define __NR_request_key (__NR_Linux + 240)
+ #define __NR_keyctl (__NR_Linux + 241)
++#define __NR_set_thread_area (__NR_Linux + 242)
+
+ /*
+ * Offset of the last Linux 64-bit flavoured syscall
+ */
+-#define __NR_Linux_syscalls 241
++#define __NR_Linux_syscalls 242
+
+ #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
+
+ #define __NR_64_Linux 5000
+-#define __NR_64_Linux_syscalls 241
++#define __NR_64_Linux_syscalls 242
+
+ #if _MIPS_SIM == _MIPS_SIM_NABI32
+
+@@ -825,16 +827,17 @@
+ #define __NR_add_key (__NR_Linux + 243)
+ #define __NR_request_key (__NR_Linux + 244)
+ #define __NR_keyctl (__NR_Linux + 245)
++#define __NR_set_thread_area (__NR_Linux + 246)
+
+ /*
+ * Offset of the last N32 flavoured syscall
+ */
+-#define __NR_Linux_syscalls 245
++#define __NR_Linux_syscalls 246
+
+ #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
+
+ #define __NR_N32_Linux 6000
+-#define __NR_N32_Linux_syscalls 245
++#define __NR_N32_Linux_syscalls 246
+
+ #ifndef __ASSEMBLY__
+
--- /dev/null
+SECTION = "devel"
+DESCRIPTION = "Sanitized set of 2.6 kernel headers for the C library's use."
+HOMEPAGE = "http://ep09.pld-linux.org/~mmazur/linux-libc-headers/"
+# license note from the package:
+# Linux-libc-headers are derived from linux kernel headers. For license of a
+# particular header, check it's content, and if copyright notice isn't present,
+# standard linux kernel license applies.
+# since we assume GPL for linux i think we can also assume it here
+LICENSE = "GPL"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+INHIBIT_DEFAULT_DEPS = "1"
+PR = "r1"
+
+SRC_URI = "http://ep09.pld-linux.org/~mmazur/linux-libc-headers/linux-libc-headers-${PV}.tar.bz2 \
+ file://keyboard.patch;patch=1"
+
+def get_nptl_patches(bb, d):
+ if 'nptl' in bb.data.getVar('GLIBC_ADDONS', d, 1).split(','):
+ return "file://linux-libc-headers-2.6.12.0-mips_tls-1.patch;patch=1;pnum=1"
+ return ""
+
+SRC_URI_append_mipsel = " file://linux-libc-headers-2.6.12.0-mips_atomic_fix-1.patch;patch=1;pnum=1 \
+ ${@get_nptl_patches(bb, d)}"
+
+S = "${WORKDIR}/linux-libc-headers-${PV}"
+
+do_configure () {
+ case ${TARGET_ARCH} in
+ alpha*) ARCH=alpha ;;
+ arm*) ARCH=arm ;;
+ cris*) ARCH=cris ;;
+ hppa*) ARCH=parisc ;;
+ i*86*) ARCH=i386 ;;
+ ia64*) ARCH=ia64 ;;
+ mips*) ARCH=mips ;;
+ m68k*) ARCH=m68k ;;
+ powerpc*) ARCH=ppc ;;
+ s390*) ARCH=s390 ;;
+ sh*) ARCH=sh ;;
+ sparc64*) ARCH=sparc64 ;;
+ sparc*) ARCH=sparc ;;
+ x86_64*) ARCH=x86_64 ;;
+ esac
+ if test ! -e include/asm-$ARCH; then
+ oefatal unable to create asm symlink in kernel headers
+ fi
+ cp -pPR "include/asm-$ARCH" "include/asm"
+ if test "$ARCH" = "arm"; then
+ cp -pPR include/asm/arch-ebsa285 include/asm/arch
+ elif test "$ARCH" = "sh"; then
+ cp -pPR include/asm/cpu-${TARGET_ARCH} include/asm/cpu || die "unable to create include/asm/cpu"
+ fi
+}
+
+do_stage () {
+ install -d ${STAGING_INCDIR}
+ rm -rf ${STAGING_INCDIR}/linux ${STAGING_INCDIR}/asm
+ cp -pfLR include/linux ${STAGING_INCDIR}/
+ cp -pfLR include/asm ${STAGING_INCDIR}/
+ rm -rf ${CROSS_DIR}/${TARGET_SYS}/include/linux
+ rm -rf ${CROSS_DIR}/${TARGET_SYS}/include/asm
+ install -d ${CROSS_DIR}/${TARGET_SYS}/include
+ cp -pfLR include/linux ${CROSS_DIR}/${TARGET_SYS}/include/
+ cp -pfLR include/asm ${CROSS_DIR}/${TARGET_SYS}/include/
+}
+
+do_install() {
+ install -d ${D}${includedir}
+ cp -pfLR include/linux ${D}${includedir}/
+ cp -pfLR include/asm ${D}${includedir}/
+}
+
--- /dev/null
+DESCRIPTION = "Linux kernel for Dreambox DM500PLUS"
+LICENSE = "GPL"
+PN = "linux-dm500plus"
+PV = "2.6.12"
+PR = "r2"
+
+# -rX is the patch revision - it's not related to this package's PR
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.12.tar.bz2 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dream-ppc-r5.patch.bz2;patch=1;pnum=1"
+
+S = "${WORKDIR}/linux-2.6.12"
+
+inherit kernel
+
+FILES_kernel-image = "/boot/zImage.elf /boot/autoexec.bat"
+
+export OS = "Linux"
+ARCH = "ppc"
+KERNEL_IMAGETYPE = "zImage"
+KERNEL_OUTPUT = "arch/ppc/boot/images/zImage.elf"
+
+do_configure_prepend() {
+ oe_machinstall -m 0644 ${S}/arch/ppc/configs/dm500plus_defconfig ${S}/.config || die "no default configuration for ${MACHINE} available."
+ oe_runmake oldconfig
+}
+
+do_install_append () {
+ install -d ${D}/boot
+ install -m 0755 arch/ppc/boot/images/zImage.elf ${D}/boot/zImage.elf
+ echo "/flash/bootlogo.elf" > ${D}/boot/autoexec.bat
+ echo "/flash/zImage.elf" >> ${D}/boot/autoexec.bat
+}
+
+pkg_preinst_kernel-image () {
+ [ -d /proc/stb ] && mount -o rw,remount /boot
+ true
+}
+
+pkg_postinst_kernel-image () {
+ [ -d /proc/stb ] && mount -o ro,remount /boot
+ true
+}
+
+pkg_prerm_kernel-image () {
+ [ -d /proc/stb ] && mount -o rw,remount /boot
+ true
+}
+
+pkg_postrm_kernel-image () {
+ [ -d /proc/stb ] && mount -o ro,remount /boot
+ true
+}
--- /dev/null
+DESCRIPTION = "Linux kernel for Dreambox DM7020"
+LICENSE = "GPL"
+PN = "linux-dm600pvr"
+PV = "2.6.12"
+PR = "r5"
+
+# -rX is the patch revision - it's not related to this package's PR
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.12.tar.bz2 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dream-ppc-r5.patch.bz2;patch=1;pnum=1"
+
+S = "${WORKDIR}/linux-2.6.12"
+
+inherit kernel
+
+FILES_kernel-image = "/boot/zImage.elf /boot/autoexec.bat"
+
+export OS = "Linux"
+ARCH = "ppc"
+KERNEL_IMAGETYPE = "zImage"
+KERNEL_OUTPUT = "arch/ppc/boot/images/zImage.elf"
+
+do_configure_prepend() {
+ oe_machinstall -m 0644 ${S}/arch/ppc/configs/dm600pvr_defconfig ${S}/.config || die "no default configuration for ${MACHINE} available."
+ oe_runmake oldconfig
+}
+
+do_install_append () {
+ install -d ${D}/boot
+ install -m 0755 arch/ppc/boot/images/zImage.elf ${D}/boot/zImage.elf
+ echo "/flash/bootlogo.elf" > ${D}/boot/autoexec.bat
+ echo "/flash/zImage.elf" >> ${D}/boot/autoexec.bat
+}
+
+pkg_preinst_kernel-image () {
+ [ -d /proc/stb ] && mount -o rw,remount /boot
+ true
+}
+
+pkg_postinst_kernel-image () {
+ [ -d /proc/stb ] && mount -o ro,remount /boot
+ true
+}
+
+pkg_prerm_kernel-image () {
+ [ -d /proc/stb ] && mount -o rw,remount /boot
+ true
+}
+
+pkg_postrm_kernel-image () {
+ [ -d /proc/stb ] && mount -o ro,remount /boot
+ true
+}
--- /dev/null
+DESCRIPTION = "Linux kernel for Dreambox DM7020"
+LICENSE = "GPL"
+PN = "linux-dm7020"
+PV = "2.6.9"
+PR = "r5"
+
+# -r1 is the patch revision - it's not related to this package's PR
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.9.tar.bz2 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linuxppc-2.6.9-r1.diff.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linuxppc-2.6.9-dream-s8.diff.bz2;patch=1;pnum=1 \
+ file://allow_gcc4.patch;patch=1"
+
+S = "${WORKDIR}/linux-2.6.9"
+
+inherit kernel
+
+FILES_kernel-image = "/boot/zImage.elf /boot/autoexec.bat"
+
+export OS = "Linux"
+ARCH = "ppc"
+KERNEL_IMAGETYPE = "zImage"
+KERNEL_OUTPUT = "arch/ppc/boot/images/zImage.elf"
+
+do_configure_prepend() {
+ oe_machinstall -m 0644 ${S}/arch/ppc/configs/dm7020_defconfig ${S}/.config || die "no default configuration for ${MACHINE} available."
+ oe_runmake oldconfig
+}
+
+do_install_append () {
+ install -d ${D}/boot
+ install -m 0755 arch/ppc/boot/images/zImage.elf ${D}/boot/zImage.elf
+ echo "/flash/bootlogo.elf" > ${D}/boot/autoexec.bat
+ echo "/flash/zImage.elf" >> ${D}/boot/autoexec.bat
+}
+
+pkg_preinst_kernel-image () {
+ [ -d /proc/stb ] && mount -o rw,remount /boot
+ true
+}
+
+pkg_postinst_kernel-image () {
+ [ -d /proc/stb ] && mount -o ro,remount /boot
+ true
+}
+
+pkg_prerm_kernel-image () {
+ [ -d /proc/stb ] && mount -o rw,remount /boot
+ true
+}
+
+pkg_postrm_kernel-image () {
+ [ -d /proc/stb ] && mount -o ro,remount /boot
+ true
+}
--- /dev/null
+diff -auNr linux-2.6.9/arch/ppc/kernel/time.c linux-2.6.9-gcc4/arch/ppc/kernel/time.c
+--- linux-2.6.9/arch/ppc/kernel/time.c 2004-10-18 23:54:54.000000000 +0200
++++ linux-2.6.9-gcc4/arch/ppc/kernel/time.c 2008-12-15 13:51:25.000000000 +0100
+@@ -89,7 +89,7 @@
+
+ extern unsigned long wall_jiffies;
+
+-static long time_offset;
++static long timezone_offset;
+
+ spinlock_t rtc_lock = SPIN_LOCK_UNLOCKED;
+
+@@ -171,7 +171,7 @@
+ xtime.tv_sec - last_rtc_update >= 659 &&
+ abs((xtime.tv_nsec / 1000) - (1000000-1000000/HZ)) < 500000/HZ &&
+ jiffies - wall_jiffies == 1) {
+- if (ppc_md.set_rtc_time(xtime.tv_sec+1 + time_offset) == 0)
++ if (ppc_md.set_rtc_time(xtime.tv_sec+1 + timezone_offset) == 0)
+ last_rtc_update = xtime.tv_sec+1;
+ else
+ /* Try again one minute later */
+@@ -292,7 +292,7 @@
+ unsigned old_stamp, stamp, elapsed;
+
+ if (ppc_md.time_init != NULL)
+- time_offset = ppc_md.time_init();
++ timezone_offset = ppc_md.time_init();
+
+ if (__USE_RTC()) {
+ /* 601 processor: dec counts down by 128 every 128ns */
+@@ -337,10 +337,10 @@
+ set_dec(tb_ticks_per_jiffy);
+
+ /* If platform provided a timezone (pmac), we correct the time */
+- if (time_offset) {
+- sys_tz.tz_minuteswest = -time_offset / 60;
++ if (timezone_offset) {
++ sys_tz.tz_minuteswest = -timezone_offset / 60;
+ sys_tz.tz_dsttime = 0;
+- xtime.tv_sec -= time_offset;
++ xtime.tv_sec -= timezone_offset;
+ }
+ set_normalized_timespec(&wall_to_monotonic,
+ -xtime.tv_sec, -xtime.tv_nsec);
+diff -auNr linux-2.6.9/include/asm-m68k/setup.h linux-2.6.9-gcc4/include/asm-m68k/setup.h
+--- linux-2.6.9/include/asm-m68k/setup.h 2004-10-18 23:54:37.000000000 +0200
++++ linux-2.6.9-gcc4/include/asm-m68k/setup.h 2008-12-15 13:52:40.000000000 +0100
+@@ -362,12 +362,13 @@
+ #ifndef __ASSEMBLY__
+ extern int m68k_num_memory; /* # of memory blocks found (and used) */
+ extern int m68k_realnum_memory; /* real # of memory blocks found */
+-extern struct mem_info m68k_memory[NUM_MEMINFO];/* memory description */
+
+ struct mem_info {
+ unsigned long addr; /* physical address of memory chunk */
+ unsigned long size; /* length of memory chunk (in bytes) */
+ };
++
++extern struct mem_info m68k_memory[NUM_MEMINFO];/* memory description */
+ #endif
+
+ #endif /* __KERNEL__ */
+diff -auNr linux-2.6.9/include/linux/fb.h linux-2.6.9-gcc4/include/linux/fb.h
+--- linux-2.6.9/include/linux/fb.h 2004-10-18 23:53:45.000000000 +0200
++++ linux-2.6.9-gcc4/include/linux/fb.h 2008-12-15 13:56:47.000000000 +0100
+@@ -374,6 +374,23 @@
+ __u32 whitey;
+ };
+
++struct fb_videomode {
++ const char *name; /* optional */
++ u32 refresh; /* optional */
++ u32 xres;
++ u32 yres;
++ u32 pixclock;
++ u32 left_margin;
++ u32 right_margin;
++ u32 upper_margin;
++ u32 lower_margin;
++ u32 hsync_len;
++ u32 vsync_len;
++ u32 sync;
++ u32 vmode;
++ u32 flag;
++};
++
+ struct fb_monspecs {
+ struct fb_chroma chroma;
+ struct fb_videomode *modedb; /* mode database */
+@@ -776,23 +793,6 @@
+ extern struct fb_cmap *fb_default_cmap(int len);
+ extern void fb_invert_cmaps(void);
+
+-struct fb_videomode {
+- const char *name; /* optional */
+- u32 refresh; /* optional */
+- u32 xres;
+- u32 yres;
+- u32 pixclock;
+- u32 left_margin;
+- u32 right_margin;
+- u32 upper_margin;
+- u32 lower_margin;
+- u32 hsync_len;
+- u32 vsync_len;
+- u32 sync;
+- u32 vmode;
+- u32 flag;
+-};
+-
+ struct fb_modelist {
+ struct list_head list;
+ struct fb_videomode mode;
+diff -auNr linux-2.6.9/include/linux/i2c.h linux-2.6.9-gcc4/include/linux/i2c.h
+--- linux-2.6.9/include/linux/i2c.h 2004-10-18 23:53:26.000000000 +0200
++++ linux-2.6.9-gcc4/include/linux/i2c.h 2008-12-15 13:54:25.000000000 +0100
+@@ -36,7 +36,6 @@
+
+ /* --- General options ------------------------------------------------ */
+
+-struct i2c_msg;
+ struct i2c_algorithm;
+ struct i2c_adapter;
+ struct i2c_client;
+@@ -45,6 +44,22 @@
+ union i2c_smbus_data;
+
+ /*
++ * I2C Message - used for pure i2c transaction, also from /dev interface
++ */
++struct i2c_msg {
++ __u16 addr; /* slave address */
++ __u16 flags;
++#define I2C_M_TEN 0x10 /* we have a ten bit chip address */
++#define I2C_M_RD 0x01
++#define I2C_M_NOSTART 0x4000
++#define I2C_M_REV_DIR_ADDR 0x2000
++#define I2C_M_IGNORE_NAK 0x1000
++#define I2C_M_NO_RD_ACK 0x0800
++ __u16 len; /* msg length */
++ __u8 *buf; /* pointer to msg data */
++};
++
++/*
+ * The master routines are the ones normally used to transmit data to devices
+ * on a bus (or read from them). Apart from two basic transfer functions to
+ * transmit one message at a time, a more complex version can be used to
+@@ -387,22 +402,6 @@
+ /* Return 1 if adapter supports everything we need, 0 if not. */
+ extern int i2c_check_functionality (struct i2c_adapter *adap, u32 func);
+
+-/*
+- * I2C Message - used for pure i2c transaction, also from /dev interface
+- */
+-struct i2c_msg {
+- __u16 addr; /* slave address */
+- __u16 flags;
+-#define I2C_M_TEN 0x10 /* we have a ten bit chip address */
+-#define I2C_M_RD 0x01
+-#define I2C_M_NOSTART 0x4000
+-#define I2C_M_REV_DIR_ADDR 0x2000
+-#define I2C_M_IGNORE_NAK 0x1000
+-#define I2C_M_NO_RD_ACK 0x0800
+- __u16 len; /* msg length */
+- __u8 *buf; /* pointer to msg data */
+-};
+-
+ /* To determine what functionality is present */
+
+ #define I2C_FUNC_I2C 0x00000001
--- /dev/null
+DESCRIPTION = "Linux kernel for Dreambox DM7025"
+LICENSE = "GPL"
+PN = "linux-dm7025"
+KV = "2.6.12"
+PV = "2.6.12.6"
+PR = "s6"
+
+DEPENDS = "zlib-native"
+
+# note, the rX in the filename is *NOT* the packet revision - it's the patch revision.
+SRC_URI += "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
+ file://dm7025_defconfig \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linuxmips-${KV}-dream-r6.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-${KV}-update_dvbapi-r1.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvb-multipid-r4.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvb-core-fix-several-locking-problems.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvbapi-pilot-rolloff-extension-r0.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-update-wireless.patch.bz2;patch=1;pnum=1 \
+#squashfs-lzma stuff
+ http://squashfs-lzma.org/dl/sqlzma3.2-r2b.tar.bz2 \
+ http://dreamboxupdate.com/download/kernel-patches/sqlzma2k-3.2-r2-2.6.12.6.patch.bz2 \
+ http://dreamboxupdate.com/download/patches/fix_lzma_squashfs_makefiles_for_oe-r2.patch.bz2 \
+ ${SOURCEFORGE_MIRROR}/squashfs/squashfs3.2-r2.tar.gz \
+ ${SOURCEFORGE_MIRROR}/sevenzip/lzma443.tar.bz2 \
+ file://${WORKDIR}/squashfs-lzma/kernel-patches/linux-2.6.12/squashfs3.2-patch;pnum=1;patch=1 "
+
+S = "${WORKDIR}/linux-${PV}"
+
+inherit kernel
+
+FILES_kernel-image = "/boot/vmlinux.gz /boot/autoexec.bat"
+
+export OS = "Linux"
+KERNEL_IMAGETYPE = "vmlinux"
+KERNEL_OUTPUT = "vmlinux"
+KERNEL_OBJECT_SUFFIX = "ko"
+
+addtask munge after do_unpack before do_patch
+
+do_munge () {
+ if [ -d ${WORKDIR}/squashfs3.2-r2 ]; then
+ mv ${WORKDIR}/squashfs3.2-r2/* ${WORKDIR}
+ rm -R ${WORKDIR}/squashfs3.2-r2
+ for i in sqlzma1-443.patch sqlzma2u-3.2-r2.patch fix_lzma_squashfs_makefiles_for_oe-r2.patch;
+ do
+ echo "Applying $i"
+ patch -d ${WORKDIR} -p1 < ${WORKDIR}/$i
+ done
+ fi
+ CUR=`pwd`
+ cd ${WORKDIR}
+ install -d ${WORKDIR}/squashfs-lzma
+ for i in `find -maxdepth 1 | grep -v linux | xargs`;
+ do
+ case $i in
+ ".");;
+ "./squashfs-lzma");;
+ "./temp");;
+ "./image");;
+ "./install");;
+ "./dm7025_defconfig");;
+ *)mv $i ${WORKDIR}/squashfs-lzma;;
+ esac
+ done
+ cd $CUR
+}
+
+do_compile_prepend () {
+ if [ -f ${S}/.patched ];
+ then
+ patch -R -d ${S} -p1 < ${WORKDIR}/squashfs-lzma/sqlzma2k-3.2-r2-2.6.12.6.patch
+ rm ${S}/.patched
+ fi
+}
+
+do_compile_append () {
+ patch -d ${S} -p1 < ${WORKDIR}/squashfs-lzma/sqlzma2k-3.2-r2-2.6.12.6.patch
+ touch ${S}/.patched
+ oe_runmake -C ${WORKDIR}/squashfs-lzma KDir=${S} BUILD_CC="${CC}" BUILD_CXX="${CXX}" BUILD_LD="${LD}" BUILD_AR="${AR}" BUILD_LDFLAGS="${TARGET_LDFLAGS}" BUILD_CFLAGS="${TARGET_CFLAGS}" BUILD_CXXFLAGS="${TARGET_CXXFLAGS}"
+ for i in mksquashfs unsquashfs;
+ do
+ mv ${WORKDIR}/squashfs-lzma/squashfs-tools/$i ${WORKDIR}/squashfs-lzma/squashfs-tools/$i-${ARCH}
+ done
+ oe_runmake -C ${WORKDIR}/squashfs-lzma KDir=${S} clean
+ oe_runmake -C ${WORKDIR}/squashfs-lzma KDir=${S}
+ patch -R -d ${S} -p1 < ${WORKDIR}/squashfs-lzma/sqlzma2k-3.2-r2-2.6.12.6.patch
+ rm ${S}/.patched
+}
+
+do_configure_prepend () {
+ if [ "${@bb.data.getVar('DISTRO_VERSION', d, 1)}" == "1.4.0" ];
+ then
+ cat ${WORKDIR}/dm7025_defconfig | grep -v "CONFIG_CMDLINE" > ${S}/.config
+ echo "CONFIG_CMDLINE=\"console=null root=/dev/mtdblock3 rootfstype=jffs2 rw\"" >> ${S}/.config
+ else
+ oe_machinstall -m 0644 ${WORKDIR}/dm7025_defconfig ${S}/.config
+ fi;
+ oe_runmake oldconfig
+}
+
+do_install_append () {
+ install -d ${D}/boot
+ install -m 0755 vmlinux ${D}/boot/vmlinux
+ echo "/flash/bootlogo.elf" > ${D}/boot/autoexec.bat
+ gzip ${D}/boot/vmlinux
+ echo "/flash/vmlinux.gz" >> ${D}/boot/autoexec.bat
+ for i in sqlzma.ko unlzma.ko;
+ do
+ install -m 0644 ${WORKDIR}/squashfs-lzma/C/7zip/Compress/LZMA_C/kmod/$i ${D}/lib/modules/2.6.12.6/kernel/fs/squashfs
+ done;
+ install -d ${D}/usr/bin
+ for i in mksquashfs unsquashfs;
+ do
+ install ${WORKDIR}/squashfs-lzma/squashfs-tools/$i-${ARCH} ${D}/usr/bin/$i
+ done;
+}
+
+PACKAGES_append = " unsquashfs mksquashfs"
+FILES_mksquashfs = "/usr/bin/mksquashfs"
+FILES_unsquashfs = "/usr/bin/unsquashfs"
+
+do_stage_append() {
+ install ${WORKDIR}/squashfs-lzma/C/7zip/Compress/LZMA_Alone/lzma ${STAGING_BINDIR}
+ install ${WORKDIR}/squashfs-lzma/C/7zip/Compress/LZMA_C/lzmadec ${STAGING_BINDIR}
+ install ${WORKDIR}/squashfs-lzma/squashfs-tools/mksquashfs ${STAGING_BINDIR}
+ install ${WORKDIR}/squashfs-lzma/squashfs-tools/unsquashfs ${STAGING_BINDIR}
+}
+
+pkg_preinst_kernel-image () {
+ [ -d /proc/stb ] && mount -o rw,remount /boot
+ true
+}
+
+pkg_postinst_kernel-image () {
+ [ -d /proc/stb ] && mount -o ro,remount /boot
+ true
+}
+
+pkg_prerm_kernel-image () {
+ [ -d /proc/stb ] && mount -o rw,remount /boot
+ true
+}
+
+pkg_postrm_kernel-image () {
+ [ -d /proc/stb ] && mount -o ro,remount /boot
+ true
+}
--- /dev/null
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.12.6
+# Wed Jun 27 13:58:38 2007
+#
+CONFIG_MIPS=y
+# CONFIG_MIPS64 is not set
+# CONFIG_64BIT is not set
+CONFIG_MIPS32=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_CLEAN_COMPILE=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
+CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
+# CONFIG_IKCONFIG is not set
+CONFIG_EMBEDDED=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_OBSOLETE_MODPARM=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Machine selection
+#
+# CONFIG_MACH_JAZZ is not set
+# CONFIG_MACH_VR41XX is not set
+# CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_MIPS_COBALT is not set
+# CONFIG_MACH_DECSTATION is not set
+# CONFIG_MIPS_EV64120 is not set
+# CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_LASAT is not set
+# CONFIG_MIPS_ITE8172 is not set
+# CONFIG_MIPS_ATLAS is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
+# CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
+# CONFIG_MOMENCO_JAGUAR_ATX is not set
+# CONFIG_PMC_YOSEMITE is not set
+# CONFIG_DDB5074 is not set
+# CONFIG_DDB5476 is not set
+# CONFIG_DDB5477 is not set
+# CONFIG_NEC_OSPREY is not set
+# CONFIG_SGI_IP22 is not set
+CONFIG_ATI_XILLEON=y
+CONFIG_STW5X226=y
+# CONFIG_SOC_AU1X00 is not set
+# CONFIG_SIBYTE_SB1xxx_SOC is not set
+# CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TOSHIBA_RBTX4927 is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_HAVE_DEC_LOCK=y
+CONFIG_DMA_NONCOHERENT=y
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_SWAP_IO_SPACE=y
+CONFIG_MIPS_L1_CACHE_SHIFT=5
+CONFIG_FB=y
+
+#
+# CPU selection
+#
+CONFIG_CPU_MIPS32=y
+# CONFIG_CPU_MIPS64 is not set
+# CONFIG_CPU_R3000 is not set
+# CONFIG_CPU_TX39XX is not set
+# CONFIG_CPU_VR41XX is not set
+# CONFIG_CPU_R4300 is not set
+# CONFIG_CPU_R4X00 is not set
+# CONFIG_CPU_TX49XX is not set
+# CONFIG_CPU_R5000 is not set
+# CONFIG_CPU_R5432 is not set
+# CONFIG_CPU_R6000 is not set
+# CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
+# CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_RM9000 is not set
+# CONFIG_CPU_SB1 is not set
+CONFIG_PAGE_SIZE_4KB=y
+# CONFIG_PAGE_SIZE_8KB is not set
+# CONFIG_PAGE_SIZE_16KB is not set
+# CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_CPU_HAS_PREFETCH=y
+# CONFIG_VTAG_ICACHE is not set
+# CONFIG_64BIT_PHYS_ADDR is not set
+CONFIG_CPU_ADVANCED=y
+CONFIG_CPU_HAS_LLSC=y
+# CONFIG_CPU_HAS_LLDSCD is not set
+CONFIG_CPU_HAS_WB=y
+CONFIG_CPU_HAS_SYNC=y
+# CONFIG_PREEMPT is not set
+
+#
+# Bus options (PCI, PCMCIA, EISA, ISA, TC)
+#
+CONFIG_HW_HAS_PCI=y
+CONFIG_PCI=y
+# CONFIG_PCI_LEGACY_PROC is not set
+CONFIG_PCI_NAMES=y
+CONFIG_MMU=y
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=m
+CONFIG_TRAD_SIGNALS=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+CONFIG_FW_LOADER=y
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_CFI_INTELEXT is not set
+# CONFIG_MTD_CFI_AMDSTD is not set
+# CONFIG_MTD_CFI_STAA is not set
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PHYSMAP is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLKMTD is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+
+#
+# NAND Flash Device Drivers
+#
+CONFIG_MTD_NAND=y
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_NANDSIM is not set
+CONFIG_MTD_NAND_DM7025=y
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_AS is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+# CONFIG_ATA_OVER_ETH is not set
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+CONFIG_IDE=y
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=y
+# CONFIG_IDEDISK_MULTI_MODE is not set
+CONFIG_BLK_DEV_IDECD=m
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+CONFIG_BLK_DEV_IDESCSI=m
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=y
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_IDEPCI_SHARE_IRQ is not set
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_BLK_DEV_GENERIC=y
+# CONFIG_BLK_DEV_OPTI621 is not set
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+# CONFIG_BLK_DEV_CMD64X is not set
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_CY82C693 is not set
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+# CONFIG_BLK_DEV_HPT34X is not set
+# CONFIG_BLK_DEV_HPT366 is not set
+# CONFIG_BLK_DEV_SC1200 is not set
+# CONFIG_BLK_DEV_PIIX is not set
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+CONFIG_BLK_DEV_XILLEON=y
+# CONFIG_IDE_ARM is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_IVB is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=m
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_CHR_DEV_SG=m
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI Transport Attributes
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_SCSI_SATA is not set
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_EATA is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_IPR is not set
+# CONFIG_SCSI_QLOGIC_FC is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+CONFIG_SCSI_QLA2XXX=m
+# CONFIG_SCSI_QLA21XX is not set
+# CONFIG_SCSI_QLA22XX is not set
+# CONFIG_SCSI_QLA2300 is not set
+# CONFIG_SCSI_QLA2322 is not set
+# CONFIG_SCSI_QLA6312 is not set
+# CONFIG_SCSI_LPFC is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_NSP32 is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID5=m
+CONFIG_MD_RAID6=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_EMC=m
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+
+#
+# Networking support
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_ARPD=y
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=y
+# CONFIG_IP_TCPDIAG_IPV6 is not set
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_IPV6_TUNNEL=m
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+# CONFIG_IP_NF_CT_ACCT is not set
+CONFIG_IP_NF_CONNTRACK_MARK=y
+CONFIG_IP_NF_CT_PROTO_SCTP=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_AMANDA=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_MAC=m
+CONFIG_IP_NF_MATCH_PKTTYPE=m
+CONFIG_IP_NF_MATCH_MARK=m
+CONFIG_IP_NF_MATCH_MULTIPORT=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH_ESP=m
+CONFIG_IP_NF_MATCH_LENGTH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_TCPMSS=m
+CONFIG_IP_NF_MATCH_HELPER=m
+CONFIG_IP_NF_MATCH_STATE=m
+CONFIG_IP_NF_MATCH_CONNTRACK=m
+CONFIG_IP_NF_MATCH_OWNER=m
+# CONFIG_IP_NF_MATCH_PHYSDEV is not set
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_SCTP=m
+CONFIG_IP_NF_MATCH_COMMENT=m
+CONFIG_IP_NF_MATCH_CONNMARK=m
+CONFIG_IP_NF_MATCH_HASHLIMIT=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_IP_NF_NAT_SNMP_BASIC=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_TFTP=m
+CONFIG_IP_NF_NAT_AMANDA=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_DSCP=m
+CONFIG_IP_NF_TARGET_MARK=m
+CONFIG_IP_NF_TARGET_CLASSIFY=m
+CONFIG_IP_NF_TARGET_CONNMARK=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_TARGET_NOTRACK=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_LIMIT=m
+CONFIG_IP6_NF_MATCH_MAC=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_MULTIPORT=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_MARK=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AHESP=m
+CONFIG_IP6_NF_MATCH_LENGTH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+# CONFIG_IP6_NF_MATCH_PHYSDEV is not set
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_MARK=m
+CONFIG_IP6_NF_RAW=m
+
+#
+# Bridge: Netfilter Configuration
+#
+# CONFIG_BRIDGE_NF_EBTABLES is not set
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CLK_JIFFIES=y
+# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
+# CONFIG_NET_SCH_CLK_CPU is not set
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_NET_CLS_IND=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+CONFIG_NETPOLL=y
+CONFIG_NETPOLL_RX=y
+CONFIG_NETPOLL_TRAP=y
+CONFIG_NET_POLL_CONTROLLER=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIUSB=m
+CONFIG_BT_HCIUSB_SCO=y
+# CONFIG_BT_HCIUART is not set
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+# CONFIG_BT_HCIVHCI is not set
+CONFIG_NETDEVICES=y
+CONFIG_NETIF_DMA=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=m
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_NET_VENDOR_3COM is not set
+
+#
+# Tulip family network device support
+#
+# CONFIG_NET_TULIP is not set
+# CONFIG_HP100 is not set
+CONFIG_NET_PCI=y
+# CONFIG_PCNET32 is not set
+# CONFIG_AMD8111_ETH is not set
+# CONFIG_ADAPTEC_STARFIRE is not set
+# CONFIG_B44 is not set
+# CONFIG_FORCEDETH is not set
+# CONFIG_DGRS is not set
+# CONFIG_EEPRO100 is not set
+# CONFIG_E100 is not set
+# CONFIG_FEALNX is not set
+# CONFIG_NATSEMI is not set
+# CONFIG_NE2K_PCI is not set
+# CONFIG_8139CP is not set
+CONFIG_8139TOO=y
+CONFIG_8139TOO_PIO=y
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+# CONFIG_8139TOO_8129 is not set
+# CONFIG_8139_OLD_RX_RESET is not set
+# CONFIG_SIS900 is not set
+# CONFIG_EPIC100 is not set
+# CONFIG_SUNDANCE is not set
+# CONFIG_TLAN is not set
+# CONFIG_VIA_RHINE is not set
+# CONFIG_LAN_SAA9730 is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_R8169 is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_VIA_VELOCITY is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2 is not set
+
+#
+# Ethernet (10000 Mbit)
+#
+# CONFIG_IXGB is not set
+# CONFIG_S2IO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+# CONFIG_STRIP is not set
+
+#
+# Wireless 802.11b ISA/PCI cards support
+#
+# CONFIG_HERMES is not set
+# CONFIG_ATMEL is not set
+
+#
+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
+#
+# CONFIG_PRISM54 is not set
+CONFIG_NET_WIRELESS=y
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+# CONFIG_SLIP is not set
+# CONFIG_NET_FC is not set
+CONFIG_SHAPER=m
+CONFIG_NETCONSOLE=m
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=m
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+# CONFIG_INPUT_TSDEV is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=m
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+# CONFIG_SERIO_I8042 is not set
+CONFIG_SERIO_SERPORT=y
+# CONFIG_SERIO_PCIPS2 is not set
+# CONFIG_SERIO_LIBPS2 is not set
+# CONFIG_SERIO_RAW is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+CONFIG_RTC=m
+# CONFIG_GEN_RTC is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_DRM is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_I810 is not set
+# CONFIG_I2C_PIIX4 is not set
+# CONFIG_I2C_ISA is not set
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_PROSAVAGE is not set
+# CONFIG_I2C_SAVAGE4 is not set
+# CONFIG_SCx200_ACB is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+# CONFIG_I2C_VOODOO3 is not set
+# CONFIG_I2C_PCA_ISA is not set
+
+#
+# Hardware Sensors Chip support
+#
+# CONFIG_I2C_SENSOR is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ASB100 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_FSCHER is not set
+# CONFIG_SENSORS_FSCPOS is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83627HF is not set
+
+#
+# Other I2C Chip support
+#
+# CONFIG_SENSORS_DS1337 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_RTC8564 is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+CONFIG_DVB=y
+CONFIG_DVB_CORE=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+# CONFIG_DVB_AV7110 is not set
+# CONFIG_DVB_BUDGET is not set
+# CONFIG_DVB_BUDGET_CI is not set
+# CONFIG_DVB_BUDGET_AV is not set
+
+#
+# Supported USB Adapters
+#
+# CONFIG_DVB_TTUSB_BUDGET is not set
+# CONFIG_DVB_TTUSB_DEC is not set
+# CONFIG_DVB_DIBUSB is not set
+# CONFIG_DVB_CINERGYT2 is not set
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+# CONFIG_DVB_B2C2_FLEXCOP is not set
+# CONFIG_DVB_B2C2_SKYSTAR is not set
+
+#
+# Supported BT878 Adapters
+#
+
+#
+# Supported DVB Frontends
+#
+
+#
+# Customise DVB Frontends
+#
+
+#
+# DVB-S (satellite) frontends
+#
+CONFIG_DVB_STV0299=m
+# CONFIG_DVB_CX24110 is not set
+CONFIG_DVB_TDA8083=m
+# CONFIG_DVB_TDA80XX is not set
+CONFIG_DVB_MT312=m
+CONFIG_DVB_VES1X93=m
+
+#
+# DVB-T (terrestrial) frontends
+#
+# CONFIG_DVB_SP8870 is not set
+# CONFIG_DVB_SP887X is not set
+# CONFIG_DVB_CX22700 is not set
+# CONFIG_DVB_CX22702 is not set
+CONFIG_DVB_L64781=m
+# CONFIG_DVB_TDA1004X is not set
+# CONFIG_DVB_NXT6000 is not set
+# CONFIG_DVB_MT352 is not set
+# CONFIG_DVB_DIB3000MB is not set
+# CONFIG_DVB_DIB3000MC is not set
+
+#
+# DVB-C (cable) frontends
+#
+# CONFIG_DVB_ATMEL_AT76C651 is not set
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+# CONFIG_DVB_STV0297 is not set
+
+#
+# ATSC (North American/Korean Terresterial DTV) frontends
+#
+# CONFIG_DVB_NXT2002 is not set
+# CONFIG_DVB_OR51211 is not set
+# CONFIG_DVB_OR51132 is not set
+
+#
+# Graphics support
+#
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_SOFT_CURSOR=y
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON_OLD is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_E1356 is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
+
+#
+# Logo configuration
+#
+# CONFIG_LOGO is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=y
+CONFIG_SND_PCM_OSS=y
+CONFIG_SND_RTCTIMER=m
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# PCI devices
+#
+# CONFIG_SND_ALI5451 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AZT3328 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_EMU10K1 is not set
+# CONFIG_SND_EMU10K1X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_TRIDENT is not set
+# CONFIG_SND_YMFPCI is not set
+# CONFIG_SND_ALS4000 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_MAESTRO3 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_ICE1712 is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_HDA_INTEL is not set
+
+#
+# ALSA MIPS devices
+#
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB=y
+CONFIG_USB_DEBUG=y
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_BANDWIDTH is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_EHCI_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_AUDIO=m
+
+#
+# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem
+#
+CONFIG_USB_MIDI=m
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=y
+CONFIG_USB_STORAGE_FREECOM=y
+CONFIG_USB_STORAGE_ISD200=y
+CONFIG_USB_STORAGE_DPCM=y
+CONFIG_USB_STORAGE_USBAT=y
+CONFIG_USB_STORAGE_SDDR09=y
+CONFIG_USB_STORAGE_SDDR55=y
+CONFIG_USB_STORAGE_JUMPSHOT=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=y
+CONFIG_USB_HIDINPUT=y
+# CONFIG_HID_FF is not set
+# CONFIG_USB_HIDDEV is not set
+
+#
+# USB HID Boot Protocol drivers
+#
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+CONFIG_USB_AIPTEK=m
+CONFIG_USB_WACOM=m
+CONFIG_USB_KBTAB=m
+CONFIG_USB_POWERMATE=m
+CONFIG_USB_MTOUCH=m
+CONFIG_USB_EGALAX=m
+CONFIG_USB_XPAD=m
+CONFIG_USB_ATI_REMOTE=m
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB Multimedia devices
+#
+CONFIG_USB_DABUSB=m
+
+#
+# Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_USB_ZD1201 is not set
+CONFIG_USB_MON=y
+
+#
+# USB port drivers
+#
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGETKIT is not set
+# CONFIG_USB_PHIDGETSERVO is not set
+# CONFIG_USB_IDMOUSE is not set
+
+#
+# USB ATM/DSL drivers
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# InfiniBand support
+#
+# CONFIG_INFINIBAND is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_REISERFS_FS_XATTR is not set
+# CONFIG_JFS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+
+#
+# XFS support
+#
+CONFIG_XFS_FS=m
+CONFIG_XFS_EXPORT=y
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_SECURITY is not set
+# CONFIG_XFS_POSIX_ACL is not set
+CONFIG_MINIX_FS=m
+# CONFIG_ROMFS_FS is not set
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+# CONFIG_ZISOFS is not set
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+CONFIG_NTFS_DEBUG=y
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_SYSFS=y
+CONFIG_DEVFS_FS=y
+CONFIG_DEVFS_MOUNT=y
+# CONFIG_DEVFS_DEBUG is not set
+# CONFIG_DEVPTS_FS_XATTR is not set
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_NAND=y
+# CONFIG_JFFS2_FS_NOR_ECC is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_CRAMFS is not set
+CONFIG_SQUASHFS=m
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_SQUASHFS_VMALLOC is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_DIRECTIO is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_TCP=y
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=y
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+# CONFIG_DEBUG_KERNEL is not set
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_CROSSCOMPILE=y
+CONFIG_CMDLINE="console=null root=/dev/mtdblock2 rootfstype=jffs2 ro"
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+CONFIG_CRC_CCITT=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_ISA_DMA_API=y
+# CONFIG_SERIAL_CONSOLE is not set
--- /dev/null
+DESCRIPTION = "Linux kernel for Dreambox DM8000"
+LICENSE = "GPL"
+PN = "linux-dm800"
+KV = "2.6.12"
+PV = "2.6.12"
+PR = "r9"
+
+# note, the rX in the filename is *NOT* the packet revision - it's the patch revision.
+SRC_URI += "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${KV}.tar.bz2 \
+ file://dm800_defconfig \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-brcm-5.1.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-update_dvbapi-r1.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvb-multipid-r4.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvb-core-fix-several-locking-problems.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvbapi-pilot-rolloff-extension-r0.patch.bz2;patch=1;pnum=1\
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-update-wireless.patch.bz2;patch=1;pnum=1\
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-add-ioprio.patch.bz2;patch=1;pnum=1 \
+ file://linux-2.6.12-dream-misc.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-fix-serial.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-dm800-flash-layout.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-dream-temp.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-brcm-mtd-blkdevfs-fix.diff;patch=1;pnum=1 \
+ file://linux-2.6.12-set-custom-extraversion.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-7401C0-enable-llsc.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-fixup-prom-args.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-fixup-memsize.patch;patch=1;pnum=1 \
+ file://linuxmips-2.6.12-fix-fadvise.patch;patch=1;pnum=1 \
+ file://linuxmips-2.6.12-fix-futex.patch;patch=1;pnum=1 \
+ file://linuxmips-2.6.12-gcc4-compile-fix.patch;patch=1;pnum=1 \
+ file://linuxmips-2.6.12-gdb-fix.patch;patch=1;pnum=1"
+
+S = "${WORKDIR}/stblinux-2.6.12"
+
+inherit kernel
+
+FILES_kernel-image = "/boot/vmlinux.gz /boot/autoexec.bat"
+
+export OS = "Linux"
+KERNEL_IMAGETYPE = "vmlinux"
+KERNEL_OUTPUT = "vmlinux"
+KERNEL_OBJECT_SUFFIX = "ko"
+
+do_munge() {
+ mv ${WORKDIR}/linux-2.6.12 ${WORKDIR}/stblinux-2.6.12
+ if [ -d ${S}/drivers/sound ]; then
+ rm -R ${S}/drivers/sound;
+ fi;
+}
+
+addtask munge before do_patch after do_unpack
+
+do_configure_prepend() {
+ oe_machinstall -m 0644 ${WORKDIR}/dm800_defconfig ${S}/.config
+ oe_runmake oldconfig
+}
+
+do_install_append () {
+ install -d ${D}/boot
+ install -m 0755 vmlinux ${D}/boot/vmlinux
+ echo "/flash/bootlogo.elf" > ${D}/boot/autoexec.bat
+ gzip ${D}/boot/vmlinux
+ echo "/flash/vmlinux.gz" >> ${D}/boot/autoexec.bat
+}
+
+pkg_preinst_kernel-image () {
+ [ -d /proc/stb ] && mount -o rw,remount /boot
+ true
+}
+
+pkg_postinst_kernel-image () {
+ [ -d /proc/stb ] && mount -o ro,remount /boot
+ true
+}
+
+pkg_prerm_kernel-image () {
+ [ -d /proc/stb ] && mount -o rw,remount /boot
+ true
+}
+
+pkg_postrm_kernel-image () {
+ [ -d /proc/stb ] && mount -o ro,remount /boot
+ true
+}
--- /dev/null
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.12-5.1-brcmstb-dm800
+# Thu Feb 28 19:09:49 2008
+#
+CONFIG_MIPS=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_CLEAN_COMPILE=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
+CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
+# CONFIG_IKCONFIG is not set
+CONFIG_EMBEDDED=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_OBSOLETE_MODPARM=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Machine selection
+#
+# CONFIG_MIPS_BCM3560A0 is not set
+# CONFIG_MIPS_BCM3560B0 is not set
+# CONFIG_MIPS_BCM3563 is not set
+# CONFIG_MIPS_BCM3563C0 is not set
+# CONFIG_MIPS_BCM7038B0 is not set
+# CONFIG_MIPS_BCM7038CX is not set
+# CONFIG_MIPS_BCM97398 is not set
+# CONFIG_MIPS_BCM7110 is not set
+# CONFIG_MIPS_BCM7111 is not set
+# CONFIG_MIPS_BCM7112 is not set
+# CONFIG_MIPS_BCM7115 is not set
+# CONFIG_MIPS_BCM7118AX is not set
+# CONFIG_MIPS_BCM7118A0_NAND is not set
+# CONFIG_MIPS_BCM7312 is not set
+# CONFIG_MIPS_BCM7315 is not set
+# CONFIG_MIPS_BCM7317 is not set
+# CONFIG_MIPS_BCM7318 is not set
+# CONFIG_MIPS_BCM7319 is not set
+# CONFIG_MIPS_BCM7320 is not set
+# CONFIG_MIPS_BCM7328 is not set
+# CONFIG_MIPS_BCM7329 is not set
+# CONFIG_MIPS_BCM97456 is not set
+# CONFIG_MIPS_BCM97456BX is not set
+# CONFIG_MIPS_BCM97456BX_NAND is not set
+# CONFIG_MIPS_BCM7400AX is not set
+# CONFIG_MIPS_BCM7400BX is not set
+# CONFIG_MIPS_BCM7400BX_NAND is not set
+# CONFIG_MIPS_BCM7400AX_NAND is not set
+# CONFIG_MIPS_BCM7405AX is not set
+# CONFIG_MIPS_BCM97455 is not set
+# CONFIG_MIPS_BCM7401AX is not set
+# CONFIG_MIPS_BCM7401BX is not set
+# CONFIG_MIPS_BCM7401BX_NAND is not set
+# CONFIG_MIPS_BCM97455B0 is not set
+CONFIG_MIPS_BCM7401CX=y
+# CONFIG_MIPS_BCM7401CX_NAND is not set
+# CONFIG_MIPS_BCM97455CX is not set
+# CONFIG_MIPS_BCM97455CX_NAND is not set
+# CONFIG_MIPS_BCM97458AX is not set
+# CONFIG_MIPS_BCM97458AX_NAND is not set
+# CONFIG_MIPS_BCM7402S is not set
+# CONFIG_MIPS_BCM7402B0S is not set
+# CONFIG_MIPS_BCM7402A0 is not set
+# CONFIG_MIPS_BCM7402CX is not set
+# CONFIG_MIPS_BCM7402CX_NAND is not set
+# CONFIG_MIPS_BCM7403AX is not set
+# CONFIG_MIPS_BCM7451AX_SMB is not set
+# CONFIG_MIPS_BCM7403AX_NAND is not set
+# CONFIG_MIPS_BCM7452AX is not set
+# CONFIG_MIPS_BCM7452AX_NAND is not set
+# CONFIG_MIPS_BCM7440AX is not set
+# CONFIG_MIPS_BCM7440BX is not set
+# CONFIG_MIPS_BCM7440BX_NAND is not set
+# CONFIG_MIPS_BCM93730 is not set
+# CONFIG_MIPS_MTX1 is not set
+# CONFIG_MIPS_BOSPORUS is not set
+# CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
+# CONFIG_MIPS_PB1500 is not set
+# CONFIG_MIPS_PB1550 is not set
+# CONFIG_MIPS_PB1200 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_DB1550 is not set
+# CONFIG_MIPS_DB1200 is not set
+# CONFIG_MIPS_MIRAGE is not set
+# CONFIG_MIPS_COBALT is not set
+# CONFIG_MACH_DECSTATION is not set
+# CONFIG_MIPS_EV64120 is not set
+# CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_MIPS_ITE8172 is not set
+# CONFIG_MACH_JAZZ is not set
+# CONFIG_LASAT is not set
+# CONFIG_MIPS_ATLAS is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
+# CONFIG_MOMENCO_JAGUAR_ATX is not set
+# CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
+# CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_MIPS_XXS1500 is not set
+# CONFIG_DDB5074 is not set
+# CONFIG_DDB5476 is not set
+# CONFIG_DDB5477 is not set
+# CONFIG_MACH_VR41XX is not set
+# CONFIG_PMC_YOSEMITE is not set
+# CONFIG_QEMU is not set
+# CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SWARM is not set
+# CONFIG_SIBYTE_SENTOSA is not set
+# CONFIG_SIBYTE_RHONE is not set
+# CONFIG_SIBYTE_CARMEL is not set
+# CONFIG_SIBYTE_PTSWARM is not set
+# CONFIG_SIBYTE_LITTLESUR is not set
+# CONFIG_SIBYTE_CRHINE is not set
+# CONFIG_SIBYTE_CRHONE is not set
+# CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_TOSHIBA_RBTX4927 is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_HAVE_DEC_LOCK=y
+CONFIG_DMA_NONCOHERENT=y
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_SYS_SUPPORTS_CPUFREQ=y
+CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
+CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
+CONFIG_IRQ_CPU=y
+CONFIG_MIPS_BRCM97XXX=y
+CONFIG_MIPS_BCM7401C0=y
+CONFIG_MIPS_BCM7401=y
+CONFIG_MIPS_BRCM=y
+CONFIG_BRCM_7XXX_SERIAL=y
+# CONFIG_LONG_LONG_SUPPORT is not set
+CONFIG_SERIAL=y
+CONFIG_MIPS_L1_CACHE_SHIFT=5
+
+#
+# Power management
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+CONFIG_CPU_FREQ_BRCM=y
+
+#
+# CPU selection
+#
+# CONFIG_CPU_MIPS32_R2 is not set
+CONFIG_CPU_MIPS32_R1=y
+# CONFIG_CPU_MIPS64_R1 is not set
+# CONFIG_CPU_R3000 is not set
+# CONFIG_CPU_TX39XX is not set
+# CONFIG_CPU_VR41XX is not set
+# CONFIG_CPU_R4300 is not set
+# CONFIG_CPU_R4X00 is not set
+# CONFIG_CPU_TX49XX is not set
+# CONFIG_CPU_R5000 is not set
+# CONFIG_CPU_R5432 is not set
+# CONFIG_CPU_R6000 is not set
+# CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
+# CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_RM9000 is not set
+# CONFIG_CPU_SB1 is not set
+CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
+CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
+
+#
+# Kernel type
+#
+CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
+# CONFIG_64BIT is not set
+CONFIG_PAGE_SIZE_4KB=y
+# CONFIG_PAGE_SIZE_8KB is not set
+# CONFIG_PAGE_SIZE_16KB is not set
+# CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_CPU_HAS_PREFETCH=y
+# CONFIG_64BIT_PHYS_ADDR is not set
+# CONFIG_CPU_ADVANCED is not set
+CONFIG_CPU_HAS_LLSC=y
+CONFIG_CPU_HAS_SYNC=y
+# CONFIG_PREEMPT is not set
+
+#
+# Bus options (PCI, PCMCIA, EISA, ISA, TC)
+#
+CONFIG_HW_HAS_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_LEGACY_PROC=y
+# CONFIG_PCI_NAMES is not set
+CONFIG_MMU=y
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+CONFIG_TRAD_SIGNALS=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+CONFIG_FW_LOADER=y
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_MTD_BLOCK_ROMBLOCK is not set
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+CONFIG_MTD_CFI_GEOMETRY=y
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_OTP is not set
+# CONFIG_MTD_CFI_INTELEXT is not set
+CONFIG_MTD_CFI_AMDSTD=y
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_BCM7XXX=y
+# CONFIG_MTD_MULTI_PHYSMAP is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_RAMTD is not set
+# CONFIG_MTD_BLKMTD is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+
+#
+# NAND Flash Device Drivers
+#
+CONFIG_MTD_NAND=y
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_NANDSIM is not set
+
+#
+# OneNAND Flash Device Drivers
+#
+# CONFIG_MTD_ONENAND is not set
+
+#
+# Broadcom NAND Flash Device Drivers
+#
+CONFIG_MTD_BRCMNAND=y
+CONFIG_MTD_BRCMNAND_VERIFY_WRITE=y
+CONFIG_MTD_BRCMNAND_VERSION=1
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_UB is not set
+# CONFIG_BLK_DEV_RAM is not set
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_AS is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_ATA_OVER_ETH=m
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+CONFIG_IDE=y
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+CONFIG_BLK_DEV_IDE_SATA=y
+CONFIG_BLK_DEV_IDEDISK=y
+CONFIG_IDEDISK_MULTI_MODE=y
+CONFIG_BLK_DEV_IDECD=y
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+# CONFIG_BLK_DEV_IDESCSI is not set
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=y
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_IDEPCI_SHARE_IRQ is not set
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_BLK_DEV_GENERIC=y
+# CONFIG_BLK_DEV_OPTI621 is not set
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+# CONFIG_BLK_DEV_CMD64X is not set
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_CY82C693 is not set
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+# CONFIG_BLK_DEV_HPT34X is not set
+# CONFIG_BLK_DEV_HPT366 is not set
+# CONFIG_BLK_DEV_SC1200 is not set
+# CONFIG_BLK_DEV_PIIX is not set
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+CONFIG_BLK_DEV_SVWKS=y
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+# CONFIG_IDE_ARM is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_IVB is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI=m
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=m
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_CHR_DEV_SG=m
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI Transport Attributes
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_SCSI_SATA is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_IPR is not set
+# CONFIG_SCSI_QLOGIC_FC is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+CONFIG_SCSI_QLA2XXX=m
+# CONFIG_SCSI_QLA21XX is not set
+# CONFIG_SCSI_QLA22XX is not set
+# CONFIG_SCSI_QLA2300 is not set
+# CONFIG_SCSI_QLA2322 is not set
+# CONFIG_SCSI_QLA6312 is not set
+# CONFIG_SCSI_LPFC is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_NSP32 is not set
+CONFIG_SCSI_DEBUG=m
+
+#
+# Multi-device support (RAID and LVM)
+#
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID5=m
+CONFIG_MD_RAID6=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_EMC=m
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+
+#
+# Networking support
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_ARPD=y
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=y
+# CONFIG_IP_TCPDIAG_IPV6 is not set
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_IPV6_TUNNEL=m
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+# CONFIG_IP_NF_CT_ACCT is not set
+CONFIG_IP_NF_CONNTRACK_MARK=y
+CONFIG_IP_NF_CT_PROTO_SCTP=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_AMANDA=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_MAC=m
+CONFIG_IP_NF_MATCH_PKTTYPE=m
+CONFIG_IP_NF_MATCH_MARK=m
+CONFIG_IP_NF_MATCH_MULTIPORT=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH_ESP=m
+CONFIG_IP_NF_MATCH_LENGTH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_TCPMSS=m
+CONFIG_IP_NF_MATCH_HELPER=m
+CONFIG_IP_NF_MATCH_STATE=m
+CONFIG_IP_NF_MATCH_CONNTRACK=m
+CONFIG_IP_NF_MATCH_OWNER=m
+# CONFIG_IP_NF_MATCH_PHYSDEV is not set
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_SCTP=m
+CONFIG_IP_NF_MATCH_COMMENT=m
+CONFIG_IP_NF_MATCH_CONNMARK=m
+CONFIG_IP_NF_MATCH_HASHLIMIT=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_IP_NF_NAT_SNMP_BASIC=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_TFTP=m
+CONFIG_IP_NF_NAT_AMANDA=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_DSCP=m
+CONFIG_IP_NF_TARGET_MARK=m
+CONFIG_IP_NF_TARGET_CLASSIFY=m
+CONFIG_IP_NF_TARGET_CONNMARK=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_TARGET_NOTRACK=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_LIMIT=m
+CONFIG_IP6_NF_MATCH_MAC=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_MULTIPORT=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_MARK=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AHESP=m
+CONFIG_IP6_NF_MATCH_LENGTH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+# CONFIG_IP6_NF_MATCH_PHYSDEV is not set
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_MARK=m
+CONFIG_IP6_NF_RAW=m
+
+#
+# Bridge: Netfilter Configuration
+#
+# CONFIG_BRIDGE_NF_EBTABLES is not set
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+# CONFIG_SCTP_HMAC_SHA1 is not set
+CONFIG_SCTP_HMAC_MD5=y
+# CONFIG_ATM is not set
+CONFIG_BRIDGE=m
+CONFIG_VLAN_8021Q=m
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CLK_JIFFIES=y
+# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
+# CONFIG_NET_SCH_CLK_CPU is not set
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_NET_CLS_IND=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+CONFIG_NETPOLL=y
+CONFIG_NETPOLL_RX=y
+CONFIG_NETPOLL_TRAP=y
+CONFIG_NET_POLL_CONTROLLER=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIUSB=m
+CONFIG_BT_HCIUSB_SCO=y
+# CONFIG_BT_HCIUART is not set
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+# CONFIG_BT_HCIVHCI is not set
+CONFIG_NETDEVICES=y
+CONFIG_NETIF_DMA=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=m
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+CONFIG_BCMINTEMAC_7038=y
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_NET_VENDOR_3COM is not set
+
+#
+# Tulip family network device support
+#
+# CONFIG_NET_TULIP is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_PCI is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_R8169 is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2 is not set
+
+#
+# Ethernet (10000 Mbit)
+#
+# CONFIG_IXGB is not set
+# CONFIG_S2IO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+# CONFIG_STRIP is not set
+
+#
+# Wireless 802.11b ISA/PCI cards support
+#
+# CONFIG_HERMES is not set
+# CONFIG_ATMEL is not set
+
+#
+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
+#
+# CONFIG_PRISM54 is not set
+CONFIG_NET_WIRELESS=y
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+# CONFIG_SLIP is not set
+# CONFIG_NET_FC is not set
+# CONFIG_SHAPER is not set
+CONFIG_NETCONSOLE=m
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=m
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+# CONFIG_INPUT_TSDEV is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=m
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+CONFIG_INPUT_JOYSTICK=y
+# CONFIG_JOYSTICK_ANALOG is not set
+# CONFIG_JOYSTICK_A3D is not set
+# CONFIG_JOYSTICK_ADI is not set
+# CONFIG_JOYSTICK_COBRA is not set
+# CONFIG_JOYSTICK_GF2K is not set
+# CONFIG_JOYSTICK_GRIP is not set
+# CONFIG_JOYSTICK_GRIP_MP is not set
+# CONFIG_JOYSTICK_GUILLEMOT is not set
+# CONFIG_JOYSTICK_INTERACT is not set
+# CONFIG_JOYSTICK_SIDEWINDER is not set
+# CONFIG_JOYSTICK_TMDC is not set
+# CONFIG_JOYSTICK_IFORCE is not set
+# CONFIG_JOYSTICK_WARRIOR is not set
+# CONFIG_JOYSTICK_MAGELLAN is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_STINGER is not set
+# CONFIG_JOYSTICK_TWIDJOY is not set
+# CONFIG_JOYSTICK_JOYDUMP is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_PCSPKR is not set
+# CONFIG_INPUT_UINPUT is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+# CONFIG_SERIO_I8042 is not set
+# CONFIG_SERIO_SERPORT is not set
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+CONFIG_SERIAL_CONSOLE=y
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_RTC is not set
+# CONFIG_GEN_RTC is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_DRM is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_I810 is not set
+# CONFIG_I2C_PIIX4 is not set
+# CONFIG_I2C_ISA is not set
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_PROSAVAGE is not set
+# CONFIG_I2C_SAVAGE4 is not set
+# CONFIG_SCx200_ACB is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+# CONFIG_I2C_VOODOO3 is not set
+# CONFIG_I2C_PCA_ISA is not set
+
+#
+# Hardware Sensors Chip support
+#
+# CONFIG_I2C_SENSOR is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ASB100 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_FSCHER is not set
+# CONFIG_SENSORS_FSCPOS is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83627HF is not set
+
+#
+# Other I2C Chip support
+#
+# CONFIG_SENSORS_DS1337 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_RTC8564 is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+CONFIG_DVB=y
+CONFIG_DVB_CORE=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+# CONFIG_DVB_AV7110 is not set
+# CONFIG_DVB_BUDGET is not set
+# CONFIG_DVB_BUDGET_CI is not set
+# CONFIG_DVB_BUDGET_AV is not set
+
+#
+# Supported USB Adapters
+#
+# CONFIG_DVB_TTUSB_BUDGET is not set
+# CONFIG_DVB_TTUSB_DEC is not set
+# CONFIG_DVB_DIBUSB is not set
+# CONFIG_DVB_CINERGYT2 is not set
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+# CONFIG_DVB_B2C2_FLEXCOP is not set
+# CONFIG_DVB_B2C2_SKYSTAR is not set
+
+#
+# Supported BT878 Adapters
+#
+
+#
+# Supported DVB Frontends
+#
+
+#
+# Customise DVB Frontends
+#
+
+#
+# DVB-S (satellite) frontends
+#
+CONFIG_DVB_STV0299=m
+# CONFIG_DVB_CX24110 is not set
+CONFIG_DVB_TDA8083=m
+# CONFIG_DVB_TDA80XX is not set
+CONFIG_DVB_MT312=m
+CONFIG_DVB_VES1X93=m
+
+#
+# DVB-T (terrestrial) frontends
+#
+# CONFIG_DVB_SP8870 is not set
+# CONFIG_DVB_SP887X is not set
+# CONFIG_DVB_CX22700 is not set
+# CONFIG_DVB_CX22702 is not set
+CONFIG_DVB_L64781=m
+# CONFIG_DVB_TDA1004X is not set
+# CONFIG_DVB_NXT6000 is not set
+# CONFIG_DVB_MT352 is not set
+# CONFIG_DVB_DIB3000MB is not set
+# CONFIG_DVB_DIB3000MC is not set
+
+#
+# DVB-C (cable) frontends
+#
+# CONFIG_DVB_ATMEL_AT76C651 is not set
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+# CONFIG_DVB_STV0297 is not set
+
+#
+# ATSC (North American/Korean Terresterial DTV) frontends
+#
+# CONFIG_DVB_NXT2002 is not set
+# CONFIG_DVB_OR51211 is not set
+# CONFIG_DVB_OR51132 is not set
+
+#
+# Graphics support
+#
+CONFIG_FB=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_SOFT_CURSOR=y
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON_OLD is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_SMIVGX is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_E1356 is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Logo configuration
+#
+# CONFIG_LOGO is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=y
+CONFIG_SND_PCM_OSS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# PCI devices
+#
+# CONFIG_SND_ALI5451 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AZT3328 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_EMU10K1 is not set
+# CONFIG_SND_EMU10K1X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_TRIDENT is not set
+# CONFIG_SND_YMFPCI is not set
+# CONFIG_SND_ALS4000 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_MAESTRO3 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_ICE1712 is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_HDA_INTEL is not set
+
+#
+# ALSA MIPS devices
+#
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB=y
+CONFIG_USB_DEBUG=y
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_BANDWIDTH is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD=y
+# CONFIG_USB_EHCI_SPLIT_ISO is not set
+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+CONFIG_USB_BRCM=y
+# CONFIG_USB_BRCM_PWR_CTL is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_AUDIO=m
+
+#
+# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem
+#
+CONFIG_USB_MIDI=m
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=y
+CONFIG_USB_STORAGE_FREECOM=y
+CONFIG_USB_STORAGE_ISD200=y
+CONFIG_USB_STORAGE_DPCM=y
+CONFIG_USB_STORAGE_USBAT=y
+CONFIG_USB_STORAGE_SDDR09=y
+CONFIG_USB_STORAGE_SDDR55=y
+CONFIG_USB_STORAGE_JUMPSHOT=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_USB_HIDINPUT=y
+# CONFIG_HID_FF is not set
+# CONFIG_USB_HIDDEV is not set
+
+#
+# USB HID Boot Protocol drivers
+#
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+CONFIG_USB_AIPTEK=m
+CONFIG_USB_WACOM=m
+CONFIG_USB_KBTAB=m
+CONFIG_USB_POWERMATE=m
+CONFIG_USB_MTOUCH=m
+CONFIG_USB_EGALAX=m
+CONFIG_USB_XPAD=m
+CONFIG_USB_ATI_REMOTE=m
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB Multimedia devices
+#
+CONFIG_USB_DABUSB=m
+
+#
+# Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_USB_ZD1201 is not set
+CONFIG_USB_MON=m
+
+#
+# USB port drivers
+#
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_AUERSWALD=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_PHIDGETKIT=m
+CONFIG_USB_PHIDGETSERVO=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_TEST is not set
+
+#
+# USB ATM/DSL drivers
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# InfiniBand support
+#
+# CONFIG_INFINIBAND is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=m
+# CONFIG_EXT2_FS_XATTR is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_REISERFS_FS_XATTR is not set
+# CONFIG_JFS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+
+#
+# XFS support
+#
+CONFIG_XFS_FS=m
+CONFIG_XFS_EXPORT=y
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_SECURITY is not set
+# CONFIG_XFS_POSIX_ACL is not set
+CONFIG_MINIX_FS=m
+# CONFIG_ROMFS_FS is not set
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+# CONFIG_ZISOFS is not set
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+CONFIG_NTFS_DEBUG=y
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_SYSFS=y
+CONFIG_DEVFS_FS=y
+CONFIG_DEVFS_MOUNT=y
+# CONFIG_DEVFS_DEBUG is not set
+# CONFIG_DEVPTS_FS_XATTR is not set
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_YAFFS_FS is not set
+# CONFIG_JFFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+CONFIG_JFFS2_SUMMARY=y
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_SQUASHFS_VMALLOC is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+CONFIG_UFS_FS_WRITE=y
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_DIRECTIO is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_TCP=y
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=y
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+# CONFIG_DEBUG_KERNEL is not set
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_CROSSCOMPILE=y
+CONFIG_CMDLINE="root=/dev/mtdblock3 rootfstype=jffs2 rw mem=128M console=null"
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+CONFIG_CRC_CCITT=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
--- /dev/null
+diff -Naur 2.6.12-5.0-org/arch/mips/Makefile 2.6.12-5.0-patched/arch/mips/Makefile
+--- 2.6.12-5.0-org/arch/mips/Makefile 2007-07-26 00:50:51.000000000 +0200
++++ 2.6.12-5.0-patched/arch/mips/Makefile 2007-12-11 15:27:14.000000000 +0100
+@@ -947,6 +947,7 @@
+ load-$(CONFIG_MIPS_BCM97455C0) := 0x80001000
+
+ else
++ cflags-$(CONFIG_MIPS_BCM7401C0) += -Iinclude/asm-mips/mach-brcmstb
+ # THT: Changed to 7401C0 from 7401CX to also pick up the NAND version
+ core-$(CONFIG_MIPS_BCM7401C0) += arch/mips/brcmstb/common/
+ core-$(CONFIG_MIPS_BCM7401C0) += arch/mips/brcmstb/brcm97401c0/
--- /dev/null
+Index: stblinux-2.6.12/drivers/mtd/mtd_blkdevs.c
+===================================================================
+--- stblinux-2.6.12.orig/drivers/mtd/mtd_blkdevs.c 2007-07-26 00:55:00.000000000 +0200
++++ stblinux-2.6.12/drivers/mtd/mtd_blkdevs.c 2008-01-16 23:58:30.000000000 +0100
+@@ -21,6 +21,7 @@
+ #include <linux/init.h>
+ #include <asm/semaphore.h>
+ #include <asm/uaccess.h>
++#include <linux/devfs_fs_kernel.h>
+
+ static LIST_HEAD(blktrans_majors);
+
+@@ -302,6 +303,9 @@
+ snprintf(gd->disk_name, sizeof(gd->disk_name),
+ "%s%d", tr->name, new->devnum);
+
++ snprintf(gd->devfs_name, sizeof(gd->devfs_name),
++ "%s/%c", tr->name, (tr->part_bits?'a':'0') + new->devnum);
++
+ /* 2.5 has capacity in units of 512 bytes while still
+ having BLOCK_SIZE_BITS set to 10. Just to keep us amused. */
+ set_capacity(gd, (new->size * new->blksize) >> 9);
+@@ -418,6 +422,8 @@
+ return ret;
+ }
+
++ devfs_mk_dir(tr->name);
++
+ INIT_LIST_HEAD(&tr->devs);
+ list_add(&tr->list, &blktrans_majors);
+
+@@ -450,6 +456,7 @@
+ tr->remove_dev(dev);
+ }
+
++ devfs_remove(tr->name);
+ blk_cleanup_queue(tr->blkcore_priv->rq);
+ unregister_blkdev(tr->major, tr->name);
+
+Index: stblinux-2.6.12/drivers/mtd/mtdchar.c
+===================================================================
+--- stblinux-2.6.12.orig/drivers/mtd/mtdchar.c 2008-01-21 01:37:38.000000000 +0100
++++ stblinux-2.6.12/drivers/mtd/mtdchar.c 2008-01-21 01:37:40.000000000 +0100
+@@ -26,6 +26,8 @@
+
+ static struct class *mtd_class;
+
++#include <linux/devfs_fs_kernel.h>
++
+ static void mtd_notify_add(struct mtd_info* mtd)
+ {
+ if (!mtd)
+@@ -50,6 +52,12 @@
+ MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1),
+ NULL, "mtd%dro", mtd->index);
+ #endif
++
++ devfs_mk_cdev(MKDEV(MTD_CHAR_MAJOR, mtd->index*2),
++ S_IFCHR | S_IRUGO | S_IWUGO, "mtd/%d", mtd->index);
++
++ devfs_mk_cdev(MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1),
++ S_IFCHR | S_IRUGO, "mtd/%dro", mtd->index);
+ }
+
+ static void mtd_notify_remove(struct mtd_info* mtd)
+@@ -59,6 +67,9 @@
+
+ class_device_destroy(mtd_class, MKDEV(MTD_CHAR_MAJOR, mtd->index*2));
+ class_device_destroy(mtd_class, MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1));
++
++ devfs_remove("mtd/%d", mtd->index);
++ devfs_remove("mtd/%dro", mtd->index);
+ }
+
+ static struct mtd_notifier notifier = {
+@@ -66,6 +77,17 @@
+ .remove = mtd_notify_remove,
+ };
+
++static inline void mtdchar_devfs_init(void)
++{
++ devfs_mk_dir("mtd");
++}
++
++static inline void mtdchar_devfs_exit(void)
++{
++ devfs_remove("mtd");
++}
++
++
+ /*
+ * We use file->private_data to store a pointer to the MTDdevice.
+ * Since alighment is at least 32 bits, we have 2 bits free for OTP
+@@ -807,6 +829,7 @@
+ return PTR_ERR(mtd_class);
+ }
+
++ mtdchar_devfs_init();
+ register_mtd_user(¬ifier);
+ return 0;
+ }
+@@ -815,6 +838,7 @@
+ {
+ unregister_mtd_user(¬ifier);
+ class_destroy(mtd_class);
++ mtdchar_devfs_exit();
+ unregister_chrdev(MTD_CHAR_MAJOR, "mtd");
+ }
+
--- /dev/null
+diff -Naur stblinux-2.6.12-org/drivers/mtd/brcmnand/bcm7xxx-nand.c stblinux-2.6.12/drivers/mtd/brcmnand/bcm7xxx-nand.c
+--- stblinux-2.6.12-org/drivers/mtd/brcmnand/bcm7xxx-nand.c 2008-02-28 18:40:17.000000000 +0100
++++ stblinux-2.6.12/drivers/mtd/brcmnand/bcm7xxx-nand.c 2008-02-28 18:45:03.000000000 +0100
+@@ -78,19 +78,28 @@
+
+ static struct mtd_partition bcm7XXX_nand_parts[] =
+ {
+- { name: "rootfs", offset: 0, size: DEFAULT_ROOTFS_SIZE },
+-#ifdef CONFIG_MTD_ECM_PARTITION
+-#define AVAIL1_PART (1)
+-#define OCAP_PART (2)
+- { name: "avail1", offset: DEFAULT_ROOTFS_SIZE, size: DEFAULT_AVAIL1_SIZE },
+- { name: "ocap", offset: DEFAULT_ROOTFS_SIZE+DEFAULT_AVAIL1_SIZE, size: DEFAULT_OCAP_SIZE },
+-#endif
+- { name: "kernel", offset: 0x00800000, size: 4<<20 },
+- { name: "cfe", offset: 0x00C00000, size: 2<<20 },
+- { name: "nvm", offset: 0x00E00000, size: 1<<20 },
+- /* BBT 1MB not mountable by anyone */
+- { name: "data", offset: 0x400000000, size: 0 },
+-};
++ /* modified for Dreambox DM800 */
++ {
++ .name = "complete",
++ .offset = 0,
++ .size = 64*1024*1024
++ },
++ {
++ .name = "loader",
++ .offset = 0,
++ .size = 256*1024
++ },
++ {
++ .name = "boot partition",
++ .offset = 256*1024,
++ .size = (4*1024-256)*1024
++ },
++ {
++ .name = "root partition",
++ .offset = 4*1024*1024,
++ .size = 60*1024*1024
++ },
++ };
+
+ struct brcmnand_info {
+ struct mtd_info mtd;
+@@ -106,100 +115,6 @@
+ }
+ //EXPORT_SYMBOL(get_brcmnand_handle);
+
+-
+-/*
+- * Size and offset are variable, depending on the size of the chip, but
+- * cfe_kernel always starts at 1FC0_0000 and is 4MB size.
+- * The entire reserved area (kernel + CFE + BBT) occupies the last 8 MB of the flash.
+- */
+-static void __devinit
+-brcmnanddrv_setup_mtd_partitions(struct brcmnand_info* nandinfo, int* numParts)
+-{
+- struct mtd_info* mtd = &nandinfo->mtd;
+- unsigned long size;
+- int i = 0;
+- unsigned int ecm_size = DEFAULT_ECM_SIZE;
+- unsigned int ocap_size = DEFAULT_OCAP_SIZE;
+- unsigned int avail1_size = DEFAULT_AVAIL1_SIZE;
+-
+- if (mtd->size <= (512<<20)) {
+- size = mtd->size; // mtd->size may be different than nandinfo->size
+- // Relies on this being called after brcmnand_scan
+- *numParts = ARRAY_SIZE(bcm7XXX_nand_parts) - 1;
+- }
+- else {
+- size = 512 << 20;
+- *numParts = ARRAY_SIZE(bcm7XXX_nand_parts);
+- }
+-
+-#ifdef CONFIG_MTD_ECM_PARTITION
+- /* Do not generate AVAIL1 partition if usable flash size is less than 64MB */
+- if (size < (64<<20)) {
+- ecm_size = DEFAULT_OCAP_SIZE;
+- bcm7XXX_nand_parts[AVAIL1_PART].size = avail1_size = 0;
+- (*numParts)--;
+- }
+- else {
+- int factor = size / (64 << 20); // Remember size is capped at 512MB
+-
+- bcm7XXX_nand_parts[OCAP_PART].size = ocap_size = factor*DEFAULT_OCAP_SIZE;
+- bcm7XXX_nand_parts[AVAIL1_PART].size = avail1_size = factor*DEFAULT_AVAIL1_SIZE;
+- ecm_size = ocap_size + avail1_size;
+- }
+-
+-#endif
+- nandinfo->parts = bcm7XXX_nand_parts;
+- bcm7XXX_nand_parts[0].size = size - DEFAULT_RESERVED_SIZE - ecm_size;
+- bcm7XXX_nand_parts[0].oobsel = &mtd->oobinfo;
+-printk("Part[%d] name=%s, size=%x, offset=%x\n", i, bcm7XXX_nand_parts[0].name,
+-bcm7XXX_nand_parts[0].size, bcm7XXX_nand_parts[0].offset);
+-
+- for (i=1; i< ARRAY_SIZE(bcm7XXX_nand_parts) - 1; i++) {
+-#ifdef CONFIG_MTD_ECM_PARTITION
+- //if (0 == bcm7XXX_nand_parts[i].size)
+- // continue;
+- /* Skip avail1 if size is less than 64 MB) */
+- if (0 == avail1_size && AVAIL1_PART == i) {
+- bcm7XXX_nand_parts[i].offset = bcm7XXX_nand_parts[i-1].size + bcm7XXX_nand_parts[i-1].offset;
+- continue;
+- }
+-#endif
+- bcm7XXX_nand_parts[i].offset = bcm7XXX_nand_parts[i-1].size + bcm7XXX_nand_parts[i-1].offset;
+- // For now every partition uses the same oobinfo
+- bcm7XXX_nand_parts[i].oobsel = &mtd->oobinfo;
+-printk("Part[%d] name=%s, size=%x, offset=%x\n", i, bcm7XXX_nand_parts[i].name,
+-bcm7XXX_nand_parts[i].size, bcm7XXX_nand_parts[i].offset);
+- }
+-
+-
+- if (mtd->size > (512 << 20)) { // For total flash size > 512MB, we must split the rootfs into 2 partitions
+- i = *numParts - 1;
+- bcm7XXX_nand_parts[i].offset = 512 << 20;
+- bcm7XXX_nand_parts[i].size = mtd->size - (513 << 20);
+- bcm7XXX_nand_parts[i].oobsel = &mtd->oobinfo;
+-#ifdef CONFIG_MTD_ECM_PARTITION
+-printk("Part[%d] name=%s, size=%x, offset=%x\n", avail1_size? i: i-1, bcm7XXX_nand_parts[i].name,
+-bcm7XXX_nand_parts[i].size, bcm7XXX_nand_parts[i].offset);
+-#else
+-printk("Part[%d] name=%s, size=%x, offset=%x\n", i, bcm7XXX_nand_parts[i].name,
+-bcm7XXX_nand_parts[i].size, bcm7XXX_nand_parts[i].offset);
+-#endif
+-
+- }
+-
+-#ifdef CONFIG_MTD_ECM_PARTITION
+- /* Shift partitions 1 up if avail1_size is 0 */
+- if (0 == avail1_size) {
+- for (i=AVAIL1_PART; i < *numParts; i++) {
+- bcm7XXX_nand_parts[i].offset = bcm7XXX_nand_parts[i+1].offset;
+- bcm7XXX_nand_parts[i].size = bcm7XXX_nand_parts[i+1].size;
+- }
+- bcm7XXX_nand_parts[*numParts].offset = 0;
+- bcm7XXX_nand_parts[*numParts].size = 0;
+- }
+-#endif
+-}
+-
+ static int __devinit brcmnanddrv_probe(struct device *dev)
+ {
+ struct platform_device *pdev = to_platform_device(dev);
+@@ -234,14 +149,12 @@
+ if (brcmnand_scan(&info->mtd, MAX_NAND_CS)) {
+ err = -ENXIO;
+ goto out_free_info;
+- }
+-
+- printk(" numchips=%d, size=%08x\n", info->brcmnand.numchips, info->mtd.size);
+- brcmnanddrv_setup_mtd_partitions(info, &numParts);
+-//printk(" add_mtd_partitions\n");
+- add_mtd_partitions(&info->mtd, info->parts, numParts);
+-//printk(" dev_set_drvdata\n");
+- dev_set_drvdata(&pdev->dev, info);
++ }
++
++ printk(" numchips=%d, size=%08x\n", info->brcmnand.numchips, info->mtd.size);
++ add_mtd_partitions(&info->mtd, bcm7XXX_nand_parts, 4);
++//printk(" dev_set_drvdata\n");
++ dev_set_drvdata(&pdev->dev, info);
+ //printk("<-- brcmnanddrv_probe\n");
+ return 0;
+
+diff -Naur stblinux-2.6.12-org/drivers/mtd/brcmnand/brcmnand_base.c stblinux-2.6.12/drivers/mtd/brcmnand/brcmnand_base.c
+--- stblinux-2.6.12-org/drivers/mtd/brcmnand/brcmnand_base.c 2008-02-28 18:40:17.000000000 +0100
++++ stblinux-2.6.12/drivers/mtd/brcmnand/brcmnand_base.c 2008-02-28 18:46:02.000000000 +0100
+@@ -296,7 +296,15 @@
+ .options = NAND_USE_FLASH_BBT,
+ .timing1 = 0, .timing2 = 0,
+ },
+-
++
++ { /* 20 */
++ .chipId = HYNIX_HY27US08121A,
++ .mafId = FLASHTYPE_HYNIX,
++ .chipIdStr = "Hynix HY27US08121A (dream)",
++ .options = NAND_USE_FLASH_BBT,
++ .timing1 = 0, .timing2 = 0,
++ },
++
+ { /* LAST DUMMY ENTRY */
+ .chipId = 0,
+ .mafId = 0,
--- /dev/null
+diff -Naur 2.6.12-5.0-org/arch/mips/kernel/reset.c 2.6.12-5.0-patched/arch/mips/kernel/reset.c
+--- 2.6.12-5.0-org/arch/mips/kernel/reset.c 2007-07-26 00:51:08.000000000 +0200
++++ 2.6.12-5.0-patched/arch/mips/kernel/reset.c 2007-12-11 12:34:52.000000000 +0100
+@@ -27,6 +27,7 @@
+ }
+
+ EXPORT_SYMBOL(machine_restart);
++EXPORT_SYMBOL(_machine_restart);
+
+ void machine_halt(void)
+ {
+@@ -34,6 +35,7 @@
+ }
+
+ EXPORT_SYMBOL(machine_halt);
++EXPORT_SYMBOL(_machine_halt);
+
+ void machine_power_off(void)
+ {
+@@ -41,3 +43,4 @@
+ }
+
+ EXPORT_SYMBOL(machine_power_off);
++EXPORT_SYMBOL(_machine_power_off);
+diff -Naur 2.6.12-5.0-org/drivers/video/Kconfig 2.6.12-5.0-patched/drivers/video/Kconfig
+--- 2.6.12-5.0-org/drivers/video/Kconfig 2007-07-26 00:54:49.000000000 +0200
++++ 2.6.12-5.0-patched/drivers/video/Kconfig 2007-12-11 12:34:52.000000000 +0100
+@@ -39,7 +39,7 @@
+ device-aware may cause unexpected results. If unsure, say N.
+
+ config FB_CFB_FILLRECT
+- tristate
++ tristate "FB_CFB_FILLRECT"
+ depends on FB
+ default n
+ ---help---
+@@ -48,7 +48,7 @@
+ (accelerated) version.
+
+ config FB_CFB_COPYAREA
+- tristate
++ tristate "FB_CFB_COPYAREA"
+ depends on FB
+ default n
+ ---help---
+@@ -57,7 +57,7 @@
+ version.
+
+ config FB_CFB_IMAGEBLIT
+- tristate
++ tristate "FB_CFB_IMAGEBLIT"
+ depends on FB
+ default n
+ ---help---
+@@ -66,7 +66,7 @@
+ (accelerated) version.
+
+ config FB_SOFT_CURSOR
+- tristate
++ tristate "FB_SOFT_CURSOR"
+ depends on FB
+ default n
+ ---help---
+diff -Naur 2.6.12-5.0-org/drivers/char/keyboard.c 2.6.12-5.0-patched/drivers/char/keyboard.c
+--- 2.6.12-5.0-org/drivers/char/keyboard.c 2007-07-26 00:53:29.000000000 +0200
++++ 2.6.12-5.0-patched/drivers/char/keyboard.c 2007-12-11 12:34:52.000000000 +0100
+@@ -1186,6 +1186,9 @@
+ for (i = KEY_RESERVED; i < BTN_MISC; i++)
+ if (test_bit(i, dev->keybit)) break;
+
++ if ( test_bit(EV_NO_CONSOLE, dev->evbit) )
++ return NULL;
++
+ if ((i == BTN_MISC) && !test_bit(EV_SND, dev->evbit))
+ return NULL;
+
+diff -Naur 2.6.12-5.0-org/include/linux/input.h 2.6.12-5.0-patched/include/linux/input.h
+--- 2.6.12-5.0-org/include/linux/input.h 2007-07-26 00:56:59.000000000 +0200
++++ 2.6.12-5.0-patched/include/linux/input.h 2007-12-11 12:34:52.000000000 +0100
+@@ -92,6 +92,7 @@
+ #define EV_FF 0x15
+ #define EV_PWR 0x16
+ #define EV_FF_STATUS 0x17
++#define EV_NO_CONSOLE 0x1e
+ #define EV_MAX 0x1f
+
+ /*
--- /dev/null
+Index: stblinux-2.6.12/arch/mips/kernel/vmlinux.lds.S
+===================================================================
+--- stblinux-2.6.12.orig/arch/mips/kernel/vmlinux.lds.S 2008-01-16 23:52:20.000000000 +0100
++++ stblinux-2.6.12/arch/mips/kernel/vmlinux.lds.S 2008-01-16 23:52:22.000000000 +0100
+@@ -145,8 +145,8 @@
+ . = ALIGN(4096);
+ __initramfs_start = .;
+ .init.ramfs : { *(.init.ramfs) }
+- . = ALIGN(4096);
+ __initramfs_end = .;
++ . = ALIGN(4096);
+
+ __bss_start = .; /* BSS */
+ .sbss : {
+Index: stblinux-2.6.12/drivers/net/brcmint7038/bcmemac.c
+===================================================================
+--- stblinux-2.6.12.orig/drivers/net/brcmint7038/bcmemac.c 2008-01-16 23:52:20.000000000 +0100
++++ stblinux-2.6.12/drivers/net/brcmint7038/bcmemac.c 2008-01-16 23:52:13.000000000 +0100
+@@ -2978,99 +2978,10 @@
+
+ static void bcmemac_getMacAddr(struct net_device* dev)
+ {
+- uint8 flash_eaddr[ETH_ALEN];
+- void *virtAddr;
+- uint16 word;
+- int i;
+-
+-#if !defined( CONFIG_BRCM_PCI_SLAVE) && !defined( CONFIG_MTD_BRCMNAND )
+-#if 1
+- virtAddr = (void*)FLASH_MACADDR_ADDR;
+-#else
+- //virtAddr = (void*) 0xBDFFF824; /* BCM97110 in-flash Ethernet MAC address */
+- virtAddr = (void*) KSEG1ADDR(getPhysFlashBase() + FLASH_MACADDR_OFFSET);
+-#endif
+-
+- /* It is a common problem that the flash and/or Chip Select are
+- * not initialized properly, so leave this printk on
+- */
+- printk("%s: Reading MAC address from %08lX, FLASH_BASE=%08lx\n",
+- dev->name,(uint32) virtAddr, (unsigned long) 0xA0000000L|getPhysFlashBase());
+-
+- word=0;
+- word=readw(virtAddr);
+- flash_eaddr[0]=(uint8) (word & 0x00FF);
+- flash_eaddr[1]=(uint8) ((word & 0xFF00) >> 8);
+- word=readw(virtAddr+2);
+- flash_eaddr[2]=(uint8) (word & 0x00FF);
+- flash_eaddr[3]=(uint8) ((word & 0xFF00) >> 8);
+- word=readw(virtAddr+4);
+- flash_eaddr[4]=(uint8) (word & 0x00FF);
+- flash_eaddr[5]=(uint8) ((word & 0xFF00) >> 8);
+-
+- printk("%s: MAC address %02X:%02X:%02X:%02X:%02X:%02X fetched from addr %lX\n",
+- dev->name,
+- flash_eaddr[0],flash_eaddr[1],flash_eaddr[2],
+- flash_eaddr[3],flash_eaddr[4],flash_eaddr[5],
+- (uint32) virtAddr);
+-
+-#elif defined( CONFIG_MTD_BRCMNAND )
+-{
+- extern int gNumHwAddrs;
+- extern unsigned char* gHwAddrs[];
+-
+- if (gNumHwAddrs >= 1) {
+- for (i=0; i < 6; i++) {
+- flash_eaddr[i] = (uint8) gHwAddrs[0][i];
+- }
+-
+- printk("%s: MAC address %02X:%02X:%02X:%02X:%02X:%02X fetched from bootloader\n",
+- dev->name,
+- flash_eaddr[0],flash_eaddr[1],flash_eaddr[2],
+- flash_eaddr[3],flash_eaddr[4],flash_eaddr[5]
+- );
+- }
+- else {
+- printk(KERN_ERR "%s: No MAC addresses defined\n", __FUNCTION__);
+- }
+-}
++ /* we rip the address set by the bootloader */
++ unsigned long addr[2] = { be32_to_cpu(*(unsigned int*)0xB008005C), be32_to_cpu(*(unsigned int*)0xB0080058)};
+
+-#else
+-/* PCI slave cannot access the EBI bus,
+- * and for now, same for NAND flash, until CFE supports it
+- */
+-/* Use hard coded value if Flash not properly initialized */
+- //if ((*flash_eaddr & 0xff) == 0xff)
+- {
+-//#ifdef USE_HARDCODED_MACADDR
+- flash_eaddr[0] = 0x00;
+- flash_eaddr[1] = 0xc0;
+- flash_eaddr[2] = 0xa8;
+- flash_eaddr[3] = 0x74;
+- flash_eaddr[4] = 0x3b;
+- flash_eaddr[5] = 0x51;
+- printk("%s: Default MAC address %02X:%02X:%02X:%02X:%02X:%02X used\n",
+- dev->name,
+- flash_eaddr[0],flash_eaddr[1],flash_eaddr[2],
+- flash_eaddr[3],flash_eaddr[4],flash_eaddr[5]);
+-//#else
+-// printk("%s: Cannot read EMAC address from flash. Please run EVAL codes\n", CARDNAME);
+-// return -ENODEV;
+-//#endif
+- }
+-#endif
+-
+- /* fill in the MAC address */
+- for (i = 0; i < 6; i++) {
+- dev->dev_addr[i] = flash_eaddr[i];
+- }
+-
+- /* print the Ethenet address */
+- printk("%s: MAC Address: ", dev->name);
+- for (i = 0; i < 5; i++) {
+- printk("%2.2X:", dev->dev_addr[i]);
+- }
+- printk("%2.2X\n", dev->dev_addr[i]);
++ memcpy(dev->dev_addr, ((unsigned char*)addr)+2, 6);
+ }
+
+
+Index: stblinux-2.6.12/arch/mips/brcmstb/common/setup.c
+===================================================================
+--- stblinux-2.6.12.orig/arch/mips/brcmstb/common/setup.c 2008-01-16 23:53:24.000000000 +0100
++++ stblinux-2.6.12/arch/mips/brcmstb/common/setup.c 2008-01-16 23:54:06.000000000 +0100
+@@ -136,13 +136,13 @@
+
+ static void brcm_machine_halt(void)
+ {
+- printk("Broadcom eval board halted.\n");
++ printk("Halted.\n");
+ while (1);
+ }
+
+ static void brcm_machine_power_off(void)
+ {
+- printk("Broadcom eval board halted. Please turn off power.\n");
++ printk("Halted. Please turn off power.\n");
+ while (1);
+ }
+
--- /dev/null
+Index: stblinux-2.6.12/drivers/char/brcmserial.c
+===================================================================
+--- stblinux-2.6.12.orig/drivers/char/brcmserial.c 2007-12-16 22:49:40.000000000 +0100
++++ stblinux-2.6.12/drivers/char/brcmserial.c 2007-12-16 22:56:00.000000000 +0100
+@@ -1208,6 +1208,6 @@
+ 600, 1200, 1800, 2400, 4800, 9600, 19200,
+ 38400, 57600, 115200, 230400, 460800, 0 };
+
+-static int tty_get_baud_rate(struct tty_struct *tty)
++int tty_get_baud_rate(struct tty_struct *tty)
+ {
+ struct async_struct * info = (struct async_struct *)tty->driver_data;
+ unsigned int cflag, i;
+diff -Naur 2.6.12-5.0-org/drivers/char/tty_io.c 2.6.12-5.0-patched/drivers/char/tty_io.c
+--- 2.6.12-5.0-org/drivers/char/tty_io.c 2007-07-26 00:53:30.000000000 +0200
++++ 2.6.12-5.0-patched/drivers/char/tty_io.c 2007-12-11 12:34:52.000000000 +0100
+@@ -2592,6 +2592,7 @@
+ * flags may be updated.
+ */
+
++#if 0
+ int tty_get_baud_rate(struct tty_struct *tty)
+ {
+ int baud = tty_termios_baud_rate(tty->termios);
+@@ -2607,6 +2608,7 @@
+
+ return baud;
+ }
++#endif
+
+ EXPORT_SYMBOL(tty_get_baud_rate);
+
--- /dev/null
+Index: stblinux-2.6.12/arch/mips/kernel/setup.c
+===================================================================
+--- stblinux-2.6.12.orig/arch/mips/kernel/setup.c 2008-04-15 02:13:42.000000000 +0200
++++ stblinux-2.6.12/arch/mips/kernel/setup.c 2008-04-15 02:25:13.000000000 +0200
+@@ -472,11 +472,29 @@
+ */
+ unsigned long get_RAM_size(void);
+
++extern int *_prom_envp;
++#define prom_envp(index) ((char *)(long)_prom_envp[(index)])
++static char *prom_getenv(char *envname)
++{
++ int i, index=0;
++
++ i = strlen(envname);
++
++ while (prom_envp(index)) {
++ if ((strncmp(envname, prom_envp(index), i) == 0) && (prom_envp(index)[i] == '='))
++ return(prom_envp(index) + i + 1);
++ index++;
++ }
++
++ return NULL;
++}
++
+ static inline void brcm_default_boot_mem(void)
+ {
+ int ramSizeMB = get_RAM_size() >> 20;
+ int size;
+ char msg[40];
++ const char *memsize_str;
+
+ if (ramSizeMB <= 32)
+ {
+@@ -502,11 +520,20 @@
+ size = 32;
+ #endif
+ }
+- sprintf(msg, "Using %dMB for memory, overwrite by passing mem=xx\n",
+- size);
+- uart_puts(msg);
+- brcm_insert_ram_node(0, size<<20, BOOT_MEM_RAM, &brcm_bm);
+
++ memsize_str = prom_getenv("memsize");
++ if (memsize_str)
++ {
++ int memsize = simple_strtol(memsize_str, NULL, 0);
++ brcm_insert_ram_node(0, memsize<<20, BOOT_MEM_RAM, &brcm_bm);
++ printk("---> memsize from bootloader: %d\n", memsize);
++ } else
++ {
++ sprintf(msg, "Using %dMB for memory, overwrite by passing mem=xx\n",
++ size);
++ uart_puts(msg);
++ brcm_insert_ram_node(0, size<<20, BOOT_MEM_RAM, &brcm_bm);
++ }
+ }
+
+
--- /dev/null
+Index: stblinux-2.6.12/arch/mips/brcmstb/common/prom.c
+===================================================================
+--- stblinux-2.6.12.orig/arch/mips/brcmstb/common/prom.c 2008-01-16 00:14:31.000000000 +0100
++++ stblinux-2.6.12/arch/mips/brcmstb/common/prom.c 2008-01-16 00:23:08.000000000 +0100
+@@ -216,6 +216,29 @@
+ }
+
+
++int prom_argc;
++int *_prom_argv, *_prom_envp;
++
++void __init prom_init_cmdline(void)
++{
++ char *cp;
++ int actr;
++
++ actr = 1; /* Always ignore argv[0] */
++
++ cp = &(arcs_cmdline[0]);
++ while(actr < prom_argc) {
++ strcpy(cp, _prom_argv[actr]);
++ cp += strlen(_prom_argv[actr]);
++ *cp++ = ' ';
++ actr++;
++ }
++ if (cp != &(arcs_cmdline[0])) {
++ /* get rid of trailing space */
++ --cp;
++ *cp = '\0';
++ }
++}
+
+ void __init prom_init(void)
+ {
+@@ -731,23 +754,14 @@
+ uart_puts("Default command line = \n");
+ uart_puts(CONFIG_CMDLINE);
+ uart_puts("\n");
+- p = &arcs_cmdline[0];
+- while (p != NULL && *p != '\0') {
+- if (!isspace(*p))
+- break;
+- p++;
+- }
+- if (p == NULL || *p == '\0') {
+- uart_puts("Defaulting to boot from HD\n");
+- /* Default is to boot from HD */
+- strcpy(arcs_cmdline,
+- "root=/dev/hda1" DEFAULT_KARGS);
+- }
+- else if (appendConsoleNeeded) {
+- /* Make sure that the boot params specify a console */
+- appendConsoleArg(arcs_cmdline);
+- }
+
++ prom_argc = fw_arg0;
++ _prom_argv = (int *) fw_arg1;
++ _prom_envp = (int *) fw_arg2;
++ printk("%d %p %p\n", prom_argc, _prom_argv, _prom_envp);
++ prom_init_cmdline();
++
++
+ #else /* No CONFIG_CMDLINE, and not Initrd */
+ /* Default is to boot from HD */
+ strcpy(arcs_cmdline,
--- /dev/null
+Index: stblinux-2.6.12/Makefile
+===================================================================
+--- stblinux-2.6.12.orig/Makefile 2007-12-17 20:09:55.000000000 +0100
++++ stblinux-2.6.12/Makefile 2007-12-17 22:37:51.000000000 +0100
+@@ -2,7 +2,7 @@
+ PATCHLEVEL = 6
+ SUBLEVEL = 12
+ # STABLE_VERSION = .2
+-EXTRAVERSION =-5.1-brcmstb
++EXTRAVERSION =-5.1-brcmstb-dm800
+ NAME=Woozy Numbat
+
+ # *DOCUMENTATION*
--- /dev/null
+diff -Naur 2.6.12-5.0-org/arch/mips/kernel/syscall.c 2.6.12-5.0-patched/arch/mips/kernel/syscall.c
+--- 2.6.12-5.0-org/arch/mips/kernel/syscall.c 2007-07-26 00:51:09.000000000 +0200
++++ 2.6.12-5.0-patched/arch/mips/kernel/syscall.c 2007-12-11 12:34:52.000000000 +0100
+@@ -405,6 +405,13 @@
+ }
+ }
+
++asmlinkage long mips_fadvise64(int fd,
++ unsigned int low_off, unsigned int high_off,
++ unsigned int len, int advice, unsigned int dummy)
++{
++ return sys_fadvise64_64(fd, (((u64)high_off) << 32) | low_off, (u64)len, advice);
++}
++
+ /*
+ * No implemented yet ...
+ */
+diff -Naur 2.6.12-5.0-org/arch/mips/kernel/scall32-o32.S 2.6.12-5.0-patched/arch/mips/kernel/scall32-o32.S
+--- 2.6.12-5.0-org/arch/mips/kernel/scall32-o32.S 2007-07-26 00:51:08.000000000 +0200
++++ 2.6.12-5.0-patched/arch/mips/kernel/scall32-o32.S 2007-12-11 12:34:52.000000000 +0100
+@@ -594,7 +594,7 @@
+ sys sys_remap_file_pages 5
+ sys sys_set_tid_address 1
+ sys sys_restart_syscall 0
+- sys sys_fadvise64_64 7
++ sys mips_fadvise64 7
+ sys sys_statfs64 3 /* 4255 */
+ sys sys_fstatfs64 2
+ sys sys_timer_create 3
--- /dev/null
+diff -Naur 2.6.12-5.0-org/include/asm-mips/futex.h 2.6.12-5.0-patched/include/asm-mips/futex.h
+--- 2.6.12-5.0-org/include/asm-mips/futex.h 1970-01-01 01:00:00.000000000 +0100
++++ 2.6.12-5.0-patched/include/asm-mips/futex.h 2007-12-11 12:34:52.000000000 +0100
+@@ -0,0 +1,134 @@
++#ifndef _ASM_FUTEX_H
++#define _ASM_FUTEX_H
++
++#ifdef __KERNEL__
++
++#include <linux/config.h>
++#include <linux/futex.h>
++#include <asm/errno.h>
++#include <asm/uaccess.h>
++#include <asm/war.h>
++
++#ifdef CONFIG_SMP
++#define __FUTEX_SMP_SYNC " sync \n"
++#else
++#define __FUTEX_SMP_SYNC
++#endif
++
++#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \
++{ \
++ if (cpu_has_llsc && R10000_LLSC_WAR) { \
++ __asm__ __volatile__( \
++ " .set push \n" \
++ " .set noat \n" \
++ " .set mips3 \n" \
++ "1: ll %1, %4 # __futex_atomic_op \n" \
++ " .set mips0 \n" \
++ " " insn " \n" \
++ " .set mips3 \n" \
++ "2: sc $1, %2 \n" \
++ " beqzl $1, 1b \n" \
++ __FUTEX_SMP_SYNC \
++ "3: \n" \
++ " .set pop \n" \
++ " .set mips0 \n" \
++ " .section .fixup,\"ax\" \n" \
++ "4: li %0, %6 \n" \
++ " j 2b \n" \
++ " .previous \n" \
++ " .section __ex_table,\"a\" \n" \
++ " "__UA_ADDR "\t1b, 4b \n" \
++ " "__UA_ADDR "\t2b, 4b \n" \
++ " .previous \n" \
++ : "=r" (ret), "=&r" (oldval), "=R" (*uaddr) \
++ : "0" (0), "R" (*uaddr), "Jr" (oparg), "i" (-EFAULT) \
++ : "memory"); \
++ } else if (cpu_has_llsc) { \
++ __asm__ __volatile__( \
++ " .set push \n" \
++ " .set noat \n" \
++ " .set mips3 \n" \
++ "1: ll %1, %4 # __futex_atomic_op \n" \
++ " .set mips0 \n" \
++ " " insn " \n" \
++ " .set mips3 \n" \
++ "2: sc $1, %2 \n" \
++ " beqz $1, 1b \n" \
++ __FUTEX_SMP_SYNC \
++ "3: \n" \
++ " .set pop \n" \
++ " .set mips0 \n" \
++ " .section .fixup,\"ax\" \n" \
++ "4: li %0, %6 \n" \
++ " j 2b \n" \
++ " .previous \n" \
++ " .section __ex_table,\"a\" \n" \
++ " "__UA_ADDR "\t1b, 4b \n" \
++ " "__UA_ADDR "\t2b, 4b \n" \
++ " .previous \n" \
++ : "=r" (ret), "=&r" (oldval), "=R" (*uaddr) \
++ : "0" (0), "R" (*uaddr), "Jr" (oparg), "i" (-EFAULT) \
++ : "memory"); \
++ } else \
++ ret = -ENOSYS; \
++}
++
++static inline int
++futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
++{
++ int op = (encoded_op >> 28) & 7;
++ int cmp = (encoded_op >> 24) & 15;
++ int oparg = (encoded_op << 8) >> 20;
++ int cmparg = (encoded_op << 20) >> 20;
++ int oldval = 0, ret;
++ if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
++ oparg = 1 << oparg;
++
++ if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int)))
++ return -EFAULT;
++
++ inc_preempt_count();
++
++ switch (op) {
++ case FUTEX_OP_SET:
++ __futex_atomic_op("move $1, %z5", ret, oldval, uaddr, oparg);
++ break;
++
++ case FUTEX_OP_ADD:
++ __futex_atomic_op("addu $1, %1, %z5",
++ ret, oldval, uaddr, oparg);
++ break;
++ case FUTEX_OP_OR:
++ __futex_atomic_op("or $1, %1, %z5",
++ ret, oldval, uaddr, oparg);
++ break;
++ case FUTEX_OP_ANDN:
++ __futex_atomic_op("and $1, %1, %z5",
++ ret, oldval, uaddr, ~oparg);
++ break;
++ case FUTEX_OP_XOR:
++ __futex_atomic_op("xor $1, %1, %z5",
++ ret, oldval, uaddr, oparg);
++ break;
++ default:
++ ret = -ENOSYS;
++ }
++
++ dec_preempt_count();
++
++ if (!ret) {
++ switch (cmp) {
++ case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break;
++ case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break;
++ case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break;
++ case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break;
++ case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break;
++ case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break;
++ default: ret = -ENOSYS;
++ }
++ }
++ return ret;
++}
++
++#endif
++#endif
+diff -Naur 2.6.12-5.0-org/include/linux/futex.h 2.6.12-5.0-patched/include/linux/futex.h
+--- 2.6.12-5.0-org/include/linux/futex.h 2007-07-26 00:57:03.000000000 +0200
++++ 2.6.12-5.0-patched/include/linux/futex.h 2007-12-11 12:34:52.000000000 +0100
+@@ -4,14 +4,40 @@
+ /* Second argument to futex syscall */
+
+
+-#define FUTEX_WAIT (0)
+-#define FUTEX_WAKE (1)
+-#define FUTEX_FD (2)
+-#define FUTEX_REQUEUE (3)
+-#define FUTEX_CMP_REQUEUE (4)
++#define FUTEX_WAIT 0
++#define FUTEX_WAKE 1
++#define FUTEX_FD 2
++#define FUTEX_REQUEUE 3
++#define FUTEX_CMP_REQUEUE 4
++#define FUTEX_WAKE_OP 5
+
+ long do_futex(unsigned long uaddr, int op, int val,
+ unsigned long timeout, unsigned long uaddr2, int val2,
+ int val3);
+
++#define FUTEX_OP_SET 0 /* *(int *)UADDR2 = OPARG; */
++#define FUTEX_OP_ADD 1 /* *(int *)UADDR2 += OPARG; */
++#define FUTEX_OP_OR 2 /* *(int *)UADDR2 |= OPARG; */
++#define FUTEX_OP_ANDN 3 /* *(int *)UADDR2 &= ~OPARG; */
++#define FUTEX_OP_XOR 4 /* *(int *)UADDR2 ^= OPARG; */
++
++#define FUTEX_OP_OPARG_SHIFT 8 /* Use (1 << OPARG) instead of OPARG. */
++
++#define FUTEX_OP_CMP_EQ 0 /* if (oldval == CMPARG) wake */
++#define FUTEX_OP_CMP_NE 1 /* if (oldval != CMPARG) wake */
++#define FUTEX_OP_CMP_LT 2 /* if (oldval < CMPARG) wake */
++#define FUTEX_OP_CMP_LE 3 /* if (oldval <= CMPARG) wake */
++#define FUTEX_OP_CMP_GT 4 /* if (oldval > CMPARG) wake */
++#define FUTEX_OP_CMP_GE 5 /* if (oldval >= CMPARG) wake */
++
++/* FUTEX_WAKE_OP will perform atomically
++ int oldval = *(int *)UADDR2;
++ *(int *)UADDR2 = oldval OP OPARG;
++ if (oldval CMP CMPARG)
++ wake UADDR2; */
++
++#define FUTEX_OP(op, oparg, cmp, cmparg) \
++ (((op & 0xf) << 28) | ((cmp & 0xf) << 24) \
++ | ((oparg & 0xfff) << 12) | (cmparg & 0xfff))
++
+ #endif
+diff -Naur 2.6.12-5.0-org/kernel/futex.c 2.6.12-5.0-patched/kernel/futex.c
+--- 2.6.12-5.0-org/kernel/futex.c 2007-07-26 00:57:20.000000000 +0200
++++ 2.6.12-5.0-patched/kernel/futex.c 2007-12-11 12:34:52.000000000 +0100
+@@ -40,6 +40,7 @@
+ #include <linux/pagemap.h>
+ #include <linux/syscalls.h>
+ #include <linux/signal.h>
++#include <asm/futex.h>
+
+ #define FUTEX_HASHBITS (CONFIG_BASE_SMALL ? 4 : 8)
+
+@@ -201,22 +202,6 @@
+ * for a rare case, so we simply fetch the page.
+ */
+
+- /*
+- * Do a quick atomic lookup first - this is the fastpath.
+- */
+- spin_lock(¤t->mm->page_table_lock);
+- page = follow_page(mm, uaddr, 0);
+- if (likely(page != NULL)) {
+- key->shared.pgoff =
+- page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT);
+- spin_unlock(¤t->mm->page_table_lock);
+- return 0;
+- }
+- spin_unlock(¤t->mm->page_table_lock);
+-
+- /*
+- * Do it the general way.
+- */
+ err = get_user_pages(current, mm, uaddr, 1, 0, 0, &page, NULL);
+ if (err >= 0) {
+ key->shared.pgoff =
+@@ -327,6 +312,123 @@
+ }
+
+ /*
++ * Wake up all waiters hashed on the physical page that is mapped
++ * to this virtual address:
++ */
++static int futex_wake_op(unsigned long uaddr1, unsigned long uaddr2, int nr_wake, int nr_wake2, int op)
++{
++ union futex_key key1, key2;
++ struct futex_hash_bucket *bh1, *bh2;
++ struct list_head *head;
++ struct futex_q *this, *next;
++ int ret, op_ret, attempt = 0;
++
++retryfull:
++ down_read(¤t->mm->mmap_sem);
++
++ ret = get_futex_key(uaddr1, &key1);
++ if (unlikely(ret != 0))
++ goto out;
++ ret = get_futex_key(uaddr2, &key2);
++ if (unlikely(ret != 0))
++ goto out;
++
++ bh1 = hash_futex(&key1);
++ bh2 = hash_futex(&key2);
++
++retry:
++ if (bh1 < bh2)
++ spin_lock(&bh1->lock);
++ spin_lock(&bh2->lock);
++ if (bh1 > bh2)
++ spin_lock(&bh1->lock);
++
++ op_ret = futex_atomic_op_inuser(op, (int __user *)uaddr2);
++ if (unlikely(op_ret < 0)) {
++ int dummy;
++
++ spin_unlock(&bh1->lock);
++ if (bh1 != bh2)
++ spin_unlock(&bh2->lock);
++
++ if (unlikely(op_ret != -EFAULT)) {
++ ret = op_ret;
++ goto out;
++ }
++
++ /* futex_atomic_op_inuser needs to both read and write
++ * *(int __user *)uaddr2, but we can't modify it
++ * non-atomically. Therefore, if get_user below is not
++ * enough, we need to handle the fault ourselves, while
++ * still holding the mmap_sem. */
++ if (attempt++) {
++ struct vm_area_struct * vma;
++ struct mm_struct *mm = current->mm;
++
++ ret = -EFAULT;
++ if (attempt >= 2 ||
++ !(vma = find_vma(mm, uaddr2)) ||
++ vma->vm_start > uaddr2 ||
++ !(vma->vm_flags & VM_WRITE))
++ goto out;
++
++ switch (handle_mm_fault(mm, vma, uaddr2, 1)) {
++ case VM_FAULT_MINOR:
++ current->min_flt++;
++ break;
++ case VM_FAULT_MAJOR:
++ current->maj_flt++;
++ break;
++ default:
++ goto out;
++ }
++ goto retry;
++ }
++
++ /* If we would have faulted, release mmap_sem,
++ * fault it in and start all over again. */
++ up_read(¤t->mm->mmap_sem);
++
++ ret = get_user(dummy, (int __user *)uaddr2);
++ if (ret)
++ return ret;
++
++ goto retryfull;
++ }
++
++ head = &bh1->chain;
++
++ list_for_each_entry_safe(this, next, head, list) {
++ if (match_futex (&this->key, &key1)) {
++ wake_futex(this);
++ if (++ret >= nr_wake)
++ break;
++ }
++ }
++
++ if (op_ret > 0) {
++ head = &bh2->chain;
++
++ op_ret = 0;
++ list_for_each_entry_safe(this, next, head, list) {
++ if (match_futex (&this->key, &key2)) {
++ wake_futex(this);
++ if (++op_ret >= nr_wake2)
++ break;
++ }
++ }
++ ret += op_ret;
++ }
++
++ spin_unlock(&bh1->lock);
++ if (bh1 != bh2)
++ spin_unlock(&bh2->lock);
++out:
++ up_read(¤t->mm->mmap_sem);
++ return ret;
++}
++
++/*
+ * Requeue all waiters hashed on one physical page to another
+ * physical page.
+ */
+@@ -740,6 +842,9 @@
+ case FUTEX_CMP_REQUEUE:
+ ret = futex_requeue(uaddr, uaddr2, val, val2, &val3);
+ break;
++ case FUTEX_WAKE_OP:
++ ret = futex_wake_op(uaddr, uaddr2, val, val2, val3);
++ break;
+ default:
+ ret = -ENOSYS;
+ }
+@@ -755,9 +860,11 @@
+ unsigned long timeout = MAX_SCHEDULE_TIMEOUT;
+ int val2 = 0;
+
+- if ((op == FUTEX_WAIT) && utime) {
++ if (utime && (op == FUTEX_WAIT)) {
+ if (copy_from_user(&t, utime, sizeof(t)) != 0)
+ return -EFAULT;
++ if (!timespec_valid(&t))
++ return -EINVAL;
+ timeout = timespec_to_jiffies(&t) + 1;
+ }
+ /*
--- /dev/null
+diff -Naur 2.6.12-5.0-org/include/asm-mips/uaccess.h 2.6.12-5.0-patched/include/asm-mips/uaccess.h
+--- 2.6.12-5.0-org/include/asm-mips/uaccess.h 2007-07-26 00:56:08.000000000 +0200
++++ 2.6.12-5.0-patched/include/asm-mips/uaccess.h 2007-12-11 12:34:52.000000000 +0100
+@@ -234,39 +234,72 @@
+
+ #define __get_user_nocheck(x,ptr,size) \
+ ({ \
+- __typeof(*(ptr)) __gu_val = (__typeof(*(ptr))) 0; \
+ long __gu_err = 0; \
+- \
+ might_sleep(); \
+ switch (size) { \
+- case 1: __get_user_asm("lb", ptr); break; \
+- case 2: __get_user_asm("lh", ptr); break; \
+- case 4: __get_user_asm("lw", ptr); break; \
+- case 8: __GET_USER_DW(ptr); break; \
++ case 1: { \
++ s8 __gu_val = (s8) 0; \
++ __get_user_asm("lb", ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
++ case 2: { \
++ s16 __gu_val = (s16) 0; \
++ __get_user_asm("lh", ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
++ case 4: { \
++ s32 __gu_val = (s32) 0; \
++ __get_user_asm("lw", ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
++ case 8: { \
++ s64 __gu_val = (s64) 0; \
++ __GET_USER_DW(ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
+ default: __get_user_unknown(); break; \
+ } \
+- (x) = (__typeof__(*(ptr))) __gu_val; \
+ __gu_err; \
+ })
+
+ #define __get_user_check(x,ptr,size) \
+ ({ \
+ const __typeof__(*(ptr)) __user * __gu_addr = (ptr); \
+- __typeof__(*(ptr)) __gu_val = 0; \
+ long __gu_err = -EFAULT; \
+- \
+ might_sleep(); \
+- \
+ if (likely(access_ok(VERIFY_READ, __gu_addr, size))) { \
+ switch (size) { \
+- case 1: __get_user_asm("lb", __gu_addr); break; \
+- case 2: __get_user_asm("lh", __gu_addr); break; \
+- case 4: __get_user_asm("lw", __gu_addr); break; \
+- case 8: __GET_USER_DW(__gu_addr); break; \
++ case 1: { \
++ s8 __gu_val = (s8) 0; \
++ __get_user_asm("lb", ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
++ case 2: { \
++ s16 __gu_val = (s16) 0; \
++ __get_user_asm("lh", ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
++ case 4: { \
++ s32 __gu_val = (s32) 0; \
++ __get_user_asm("lw", ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
++ case 8: { \
++ s64 __gu_val = (s64) 0; \
++ __GET_USER_DW(ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
+ default: __get_user_unknown(); break; \
+ } \
+ } \
+- (x) = (__typeof__(*(ptr))) __gu_val; \
+ __gu_err; \
+ })
+
--- /dev/null
+diff -Naur 2.6.12-5.0-org/arch/mips/kernel/gdb-low.S 2.6.12-5.0-patched/arch/mips/kernel/gdb-low.S
+--- 2.6.12-5.0-org/arch/mips/kernel/gdb-low.S 2007-07-26 00:51:07.000000000 +0200
++++ 2.6.12-5.0-patched/arch/mips/kernel/gdb-low.S 2007-12-11 12:34:52.000000000 +0100
+@@ -52,12 +52,14 @@
+ /*
+ * Called from user mode, go somewhere else.
+ */
+- lui k1, %hi(saved_vectors)
+ mfc0 k0, CP0_CAUSE
+ andi k0, k0, 0x7c
+- add k1, k1, k0
+- lw k0, %lo(saved_vectors)(k1)
+- jr k0
++
++#ifdef CONFIG_MIPS64
++ dsll k0, k0, 1
++#endif
++ lw k1, %lo(saved_vectors)(k0)
++ jr k1
+ nop
+ 1:
+ move k0, sp
--- /dev/null
+DESCRIPTION = "Linux kernel for Dreambox DM8000"
+LICENSE = "GPL"
+PN = "linux-dm8000"
+KV = "2.6.12"
+PV = "2.6.12"
+PR = "r7"
+
+# note, the rX in the filename is *NOT* the packet revision - it's the patch revision.
+SRC_URI += "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${KV}.tar.bz2 \
+ file://dm8000_defconfig \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-brcm-5.1.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-update_dvbapi-r1.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvb-multipid-r4.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvb-core-fix-several-locking-problems.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-dvbapi-pilot-rolloff-extension-r0.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-update-wireless.patch.bz2;patch=1;pnum=1 \
+ http://sources.dreamboxupdate.com/download/kernel-patches/linux-2.6.12-add-ioprio.patch.bz2;patch=1;pnum=1 \
+ file://linux-2.6.12-dvbapi-support-more-demux.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-dream-misc.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-dm8000-nand.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-dream-temp.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-brcm-mtd-blkdevfs-fix.diff;patch=1;pnum=1 \
+ file://linux-2.6.12-brcm-fix-usb-for-revb0.diff;patch=1;pnum=1 \
+ file://linux-2.6.12-set-custom-extraversion.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-fixup-prom-args.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-7400AB-enable-llsc.patch;patch=1;pnum=1 \
+ file://linuxmips-2.6.12-fix-fadvise.patch;patch=1;pnum=1 \
+ file://linuxmips-2.6.12-fix-futex.patch;patch=1;pnum=1 \
+ file://linuxmips-2.6.12-gcc4-compile-fix.patch;patch=1;pnum=1 \
+ file://linuxmips-2.6.12-gdb-fix.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-brcm-fix-minipci.patch;patch=1;pnum=1 \
+ file://linux-2.6.12-fixup-memsize.patch;patch=1;pnum=1 \
+ http://trappist.elis.ugent.be/~mronsse/cdfs/download/cdfs-2.6.12.tar.bz2"
+
+S = "${WORKDIR}/stblinux-2.6.12"
+
+inherit kernel
+
+FILES_kernel-image = "/boot/vmlinux.gz /boot/autoexec.bat"
+
+export OS = "Linux"
+KERNEL_IMAGETYPE = "vmlinux"
+KERNEL_OUTPUT = "vmlinux"
+KERNEL_OBJECT_SUFFIX = "ko"
+
+do_munge() {
+ mv ${WORKDIR}/linux-2.6.12 ${WORKDIR}/stblinux-2.6.12
+ if [ -d ${S}/drivers/sound ]; then
+ rm -R ${S}/drivers/sound;
+ fi;
+}
+
+addtask munge before do_patch after do_unpack
+
+do_configure_prepend() {
+ oe_machinstall -m 0644 ${WORKDIR}/dm8000_defconfig ${S}/.config
+ if [ -d ${WORKDIR}/cdfs-${PV} ]; then
+ mv ${WORKDIR}/cdfs-${PV} ${S}/fs/cdfs
+ cd ${S} & patch -p0 < ${S}/fs/cdfs/patch.cdfs
+ fi;
+ oe_runmake oldconfig
+}
+
+do_install_append () {
+ install -d ${D}/boot
+ install -m 0755 vmlinux ${D}/boot/vmlinux
+ echo "/flash/bootlogo.elf" > ${D}/boot/autoexec.bat
+ gzip ${D}/boot/vmlinux
+ echo "/flash/vmlinux.gz" >> ${D}/boot/autoexec.bat
+}
+
+pkg_preinst_kernel-image () {
+ [ -d /proc/stb ] && mount -o rw,remount /boot
+ true
+}
+
+pkg_postinst_kernel-image () {
+ [ -d /proc/stb ] && mount -o ro,remount /boot
+ true
+}
+
+pkg_prerm_kernel-image () {
+ [ -d /proc/stb ] && mount -o rw,remount /boot
+ true
+}
+
+pkg_postrm_kernel-image () {
+ [ -d /proc/stb ] && mount -o ro,remount /boot
+ true
+}
--- /dev/null
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.12-5.1-brcmstb-dm8000
+# Mon Oct 20 18:29:26 2008
+#
+CONFIG_MIPS=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_CLEAN_COMPILE=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
+CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
+# CONFIG_IKCONFIG is not set
+CONFIG_EMBEDDED=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_OBSOLETE_MODPARM=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Machine selection
+#
+# CONFIG_MIPS_BCM3560A0 is not set
+# CONFIG_MIPS_BCM3560B0 is not set
+# CONFIG_MIPS_BCM3563 is not set
+# CONFIG_MIPS_BCM3563C0 is not set
+# CONFIG_MIPS_BCM7038B0 is not set
+# CONFIG_MIPS_BCM7038CX is not set
+# CONFIG_MIPS_BCM97398 is not set
+# CONFIG_MIPS_BCM7110 is not set
+# CONFIG_MIPS_BCM7111 is not set
+# CONFIG_MIPS_BCM7112 is not set
+# CONFIG_MIPS_BCM7115 is not set
+# CONFIG_MIPS_BCM7118AX is not set
+# CONFIG_MIPS_BCM7118A0_NAND is not set
+# CONFIG_MIPS_BCM7312 is not set
+# CONFIG_MIPS_BCM7315 is not set
+# CONFIG_MIPS_BCM7317 is not set
+# CONFIG_MIPS_BCM7318 is not set
+# CONFIG_MIPS_BCM7319 is not set
+# CONFIG_MIPS_BCM7320 is not set
+# CONFIG_MIPS_BCM7328 is not set
+# CONFIG_MIPS_BCM7329 is not set
+# CONFIG_MIPS_BCM97456 is not set
+# CONFIG_MIPS_BCM97456BX is not set
+# CONFIG_MIPS_BCM97456BX_NAND is not set
+# CONFIG_MIPS_BCM7400AX is not set
+CONFIG_MIPS_BCM7400BX=y
+# CONFIG_MIPS_BCM7400BX_NAND is not set
+# CONFIG_MIPS_BCM7400AX_NAND is not set
+# CONFIG_MIPS_BCM7405AX is not set
+# CONFIG_MIPS_BCM97455 is not set
+# CONFIG_MIPS_BCM7401AX is not set
+# CONFIG_MIPS_BCM7401BX is not set
+# CONFIG_MIPS_BCM7401BX_NAND is not set
+# CONFIG_MIPS_BCM97455B0 is not set
+# CONFIG_MIPS_BCM7401CX is not set
+# CONFIG_MIPS_BCM7401CX_NAND is not set
+# CONFIG_MIPS_BCM97455CX is not set
+# CONFIG_MIPS_BCM97455CX_NAND is not set
+# CONFIG_MIPS_BCM97458AX is not set
+# CONFIG_MIPS_BCM97458AX_NAND is not set
+# CONFIG_MIPS_BCM7402S is not set
+# CONFIG_MIPS_BCM7402B0S is not set
+# CONFIG_MIPS_BCM7402A0 is not set
+# CONFIG_MIPS_BCM7402CX is not set
+# CONFIG_MIPS_BCM7402CX_NAND is not set
+# CONFIG_MIPS_BCM7403AX is not set
+# CONFIG_MIPS_BCM7451AX_SMB is not set
+# CONFIG_MIPS_BCM7403AX_NAND is not set
+# CONFIG_MIPS_BCM7452AX is not set
+# CONFIG_MIPS_BCM7452AX_NAND is not set
+# CONFIG_MIPS_BCM7440AX is not set
+# CONFIG_MIPS_BCM7440BX is not set
+# CONFIG_MIPS_BCM7440BX_NAND is not set
+# CONFIG_MIPS_BCM93730 is not set
+# CONFIG_MIPS_MTX1 is not set
+# CONFIG_MIPS_BOSPORUS is not set
+# CONFIG_MIPS_PB1000 is not set
+# CONFIG_MIPS_PB1100 is not set
+# CONFIG_MIPS_PB1500 is not set
+# CONFIG_MIPS_PB1550 is not set
+# CONFIG_MIPS_PB1200 is not set
+# CONFIG_MIPS_DB1000 is not set
+# CONFIG_MIPS_DB1100 is not set
+# CONFIG_MIPS_DB1500 is not set
+# CONFIG_MIPS_DB1550 is not set
+# CONFIG_MIPS_DB1200 is not set
+# CONFIG_MIPS_MIRAGE is not set
+# CONFIG_MIPS_COBALT is not set
+# CONFIG_MACH_DECSTATION is not set
+# CONFIG_MIPS_EV64120 is not set
+# CONFIG_MIPS_EV96100 is not set
+# CONFIG_MIPS_IVR is not set
+# CONFIG_MIPS_ITE8172 is not set
+# CONFIG_MACH_JAZZ is not set
+# CONFIG_LASAT is not set
+# CONFIG_MIPS_ATLAS is not set
+# CONFIG_MIPS_MALTA is not set
+# CONFIG_MIPS_SEAD is not set
+# CONFIG_MOMENCO_JAGUAR_ATX is not set
+# CONFIG_MOMENCO_OCELOT is not set
+# CONFIG_MOMENCO_OCELOT_3 is not set
+# CONFIG_MOMENCO_OCELOT_C is not set
+# CONFIG_MOMENCO_OCELOT_G is not set
+# CONFIG_MIPS_XXS1500 is not set
+# CONFIG_DDB5074 is not set
+# CONFIG_DDB5476 is not set
+# CONFIG_DDB5477 is not set
+# CONFIG_MACH_VR41XX is not set
+# CONFIG_PMC_YOSEMITE is not set
+# CONFIG_QEMU is not set
+# CONFIG_SGI_IP22 is not set
+# CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP32 is not set
+# CONFIG_SIBYTE_SWARM is not set
+# CONFIG_SIBYTE_SENTOSA is not set
+# CONFIG_SIBYTE_RHONE is not set
+# CONFIG_SIBYTE_CARMEL is not set
+# CONFIG_SIBYTE_PTSWARM is not set
+# CONFIG_SIBYTE_LITTLESUR is not set
+# CONFIG_SIBYTE_CRHINE is not set
+# CONFIG_SIBYTE_CRHONE is not set
+# CONFIG_SNI_RM200_PCI is not set
+# CONFIG_TOSHIBA_JMR3927 is not set
+# CONFIG_TOSHIBA_RBTX4927 is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_HAVE_DEC_LOCK=y
+CONFIG_DMA_NONCOHERENT=y
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_SYS_SUPPORTS_CPUFREQ=y
+CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
+CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
+CONFIG_IRQ_CPU=y
+CONFIG_MIPS_BRCM97XXX=y
+CONFIG_MIPS_BCM7400B0=y
+CONFIG_MIPS_BCM7400=y
+CONFIG_MIPS_BRCM=y
+# CONFIG_BRCM_7XXX_SERIAL is not set
+# CONFIG_LONG_LONG_SUPPORT is not set
+CONFIG_SERIAL=y
+CONFIG_MIPS_L1_CACHE_SHIFT=6
+
+#
+# Power management
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+CONFIG_CPU_FREQ_BRCM=y
+
+#
+# CPU selection
+#
+# CONFIG_CPU_MIPS32_R2 is not set
+CONFIG_CPU_MIPS32_R1=y
+# CONFIG_CPU_MIPS64_R1 is not set
+# CONFIG_CPU_R3000 is not set
+# CONFIG_CPU_TX39XX is not set
+# CONFIG_CPU_VR41XX is not set
+# CONFIG_CPU_R4300 is not set
+# CONFIG_CPU_R4X00 is not set
+# CONFIG_CPU_TX49XX is not set
+# CONFIG_CPU_R5000 is not set
+# CONFIG_CPU_R5432 is not set
+# CONFIG_CPU_R6000 is not set
+# CONFIG_CPU_NEVADA is not set
+# CONFIG_CPU_R8000 is not set
+# CONFIG_CPU_R10000 is not set
+# CONFIG_CPU_RM7000 is not set
+# CONFIG_CPU_RM9000 is not set
+# CONFIG_CPU_SB1 is not set
+CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
+CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
+
+#
+# Kernel type
+#
+CONFIG_MIPS32=y
+# CONFIG_MIPS64 is not set
+# CONFIG_64BIT is not set
+CONFIG_PAGE_SIZE_4KB=y
+# CONFIG_PAGE_SIZE_8KB is not set
+# CONFIG_PAGE_SIZE_16KB is not set
+# CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_CPU_HAS_PREFETCH=y
+# CONFIG_64BIT_PHYS_ADDR is not set
+# CONFIG_CPU_ADVANCED is not set
+CONFIG_CPU_HAS_LLSC=y
+CONFIG_CPU_HAS_SYNC=y
+# CONFIG_SMP is not set
+# CONFIG_PREEMPT is not set
+
+#
+# Bus options (PCI, PCMCIA, EISA, ISA, TC)
+#
+CONFIG_HW_HAS_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_LEGACY_PROC=y
+# CONFIG_PCI_NAMES is not set
+CONFIG_MMU=y
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+CONFIG_TRAD_SIGNALS=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+CONFIG_FW_LOADER=y
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_MTD_BLOCK_ROMBLOCK is not set
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+CONFIG_MTD_CFI_GEOMETRY=y
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_OTP is not set
+# CONFIG_MTD_CFI_INTELEXT is not set
+CONFIG_MTD_CFI_AMDSTD=y
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_BCM7XXX=y
+# CONFIG_MTD_MULTI_PHYSMAP is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_RAMTD is not set
+# CONFIG_MTD_BLKMTD is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+
+#
+# NAND Flash Device Drivers
+#
+CONFIG_MTD_NAND=y
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+CONFIG_MTD_NAND_DM8000=y
+# CONFIG_MTD_NAND_NANDSIM is not set
+
+#
+# OneNAND Flash Device Drivers
+#
+# CONFIG_MTD_ONENAND is not set
+
+#
+# Broadcom NAND Flash Device Drivers
+#
+# CONFIG_MTD_BRCMNAND is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_UB is not set
+# CONFIG_BLK_DEV_RAM is not set
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_LBD is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_AS is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_ATA_OVER_ETH=m
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+CONFIG_IDE=y
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+CONFIG_BLK_DEV_IDE_SATA=y
+CONFIG_BLK_DEV_IDEDISK=y
+CONFIG_IDEDISK_MULTI_MODE=y
+CONFIG_BLK_DEV_IDECD=y
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+# CONFIG_BLK_DEV_IDESCSI is not set
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=y
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_IDEPCI_SHARE_IRQ is not set
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_BLK_DEV_GENERIC=y
+# CONFIG_BLK_DEV_OPTI621 is not set
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+# CONFIG_BLK_DEV_CMD64X is not set
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_CY82C693 is not set
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+# CONFIG_BLK_DEV_HPT34X is not set
+# CONFIG_BLK_DEV_HPT366 is not set
+# CONFIG_BLK_DEV_SC1200 is not set
+# CONFIG_BLK_DEV_PIIX is not set
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+CONFIG_BLK_DEV_SVWKS=y
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+# CONFIG_IDE_ARM is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_IVB is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=m
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_CHR_DEV_SG=m
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI Transport Attributes
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_SCSI_SATA is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_IPR is not set
+# CONFIG_SCSI_QLOGIC_FC is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+CONFIG_SCSI_QLA2XXX=y
+# CONFIG_SCSI_QLA21XX is not set
+# CONFIG_SCSI_QLA22XX is not set
+# CONFIG_SCSI_QLA2300 is not set
+# CONFIG_SCSI_QLA2322 is not set
+# CONFIG_SCSI_QLA6312 is not set
+# CONFIG_SCSI_LPFC is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_NSP32 is not set
+CONFIG_SCSI_DEBUG=m
+
+#
+# Multi-device support (RAID and LVM)
+#
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID5=m
+CONFIG_MD_RAID6=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_EMC=m
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+
+#
+# Networking support
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_ARPD=y
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=y
+# CONFIG_IP_TCPDIAG_IPV6 is not set
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_IPV6_TUNNEL=m
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+# CONFIG_IP_NF_CT_ACCT is not set
+CONFIG_IP_NF_CONNTRACK_MARK=y
+CONFIG_IP_NF_CT_PROTO_SCTP=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_AMANDA=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_MAC=m
+CONFIG_IP_NF_MATCH_PKTTYPE=m
+CONFIG_IP_NF_MATCH_MARK=m
+CONFIG_IP_NF_MATCH_MULTIPORT=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH_ESP=m
+CONFIG_IP_NF_MATCH_LENGTH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_TCPMSS=m
+CONFIG_IP_NF_MATCH_HELPER=m
+CONFIG_IP_NF_MATCH_STATE=m
+CONFIG_IP_NF_MATCH_CONNTRACK=m
+CONFIG_IP_NF_MATCH_OWNER=m
+# CONFIG_IP_NF_MATCH_PHYSDEV is not set
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_SCTP=m
+CONFIG_IP_NF_MATCH_COMMENT=m
+CONFIG_IP_NF_MATCH_CONNMARK=m
+CONFIG_IP_NF_MATCH_HASHLIMIT=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_IP_NF_NAT_SNMP_BASIC=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_TFTP=m
+CONFIG_IP_NF_NAT_AMANDA=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_DSCP=m
+CONFIG_IP_NF_TARGET_MARK=m
+CONFIG_IP_NF_TARGET_CLASSIFY=m
+CONFIG_IP_NF_TARGET_CONNMARK=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_TARGET_NOTRACK=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_LIMIT=m
+CONFIG_IP6_NF_MATCH_MAC=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_MULTIPORT=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_MARK=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AHESP=m
+CONFIG_IP6_NF_MATCH_LENGTH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+# CONFIG_IP6_NF_MATCH_PHYSDEV is not set
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_MARK=m
+CONFIG_IP6_NF_RAW=m
+
+#
+# Bridge: Netfilter Configuration
+#
+# CONFIG_BRIDGE_NF_EBTABLES is not set
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+# CONFIG_SCTP_HMAC_SHA1 is not set
+CONFIG_SCTP_HMAC_MD5=y
+# CONFIG_ATM is not set
+CONFIG_BRIDGE=m
+CONFIG_VLAN_8021Q=m
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CLK_JIFFIES=y
+# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
+# CONFIG_NET_SCH_CLK_CPU is not set
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_NET_CLS_IND=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+CONFIG_NETPOLL=y
+CONFIG_NETPOLL_RX=y
+CONFIG_NETPOLL_TRAP=y
+CONFIG_NET_POLL_CONTROLLER=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIUSB=m
+CONFIG_BT_HCIUSB_SCO=y
+# CONFIG_BT_HCIUART is not set
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+# CONFIG_BT_HCIVHCI is not set
+CONFIG_NETDEVICES=y
+CONFIG_NETIF_DMA=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=m
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+CONFIG_BCMINTEMAC_7038=y
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_NET_VENDOR_3COM is not set
+
+#
+# Tulip family network device support
+#
+# CONFIG_NET_TULIP is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_PCI is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_R8169 is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2 is not set
+
+#
+# Ethernet (10000 Mbit)
+#
+# CONFIG_IXGB is not set
+# CONFIG_S2IO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+# CONFIG_STRIP is not set
+
+#
+# Wireless 802.11b ISA/PCI cards support
+#
+# CONFIG_HERMES is not set
+# CONFIG_ATMEL is not set
+
+#
+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
+#
+# CONFIG_PRISM54 is not set
+CONFIG_NET_WIRELESS=y
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+# CONFIG_SLIP is not set
+# CONFIG_NET_FC is not set
+# CONFIG_SHAPER is not set
+CONFIG_NETCONSOLE=m
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=m
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+# CONFIG_INPUT_TSDEV is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=m
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+CONFIG_INPUT_JOYSTICK=y
+# CONFIG_JOYSTICK_ANALOG is not set
+# CONFIG_JOYSTICK_A3D is not set
+# CONFIG_JOYSTICK_ADI is not set
+# CONFIG_JOYSTICK_COBRA is not set
+# CONFIG_JOYSTICK_GF2K is not set
+# CONFIG_JOYSTICK_GRIP is not set
+# CONFIG_JOYSTICK_GRIP_MP is not set
+# CONFIG_JOYSTICK_GUILLEMOT is not set
+# CONFIG_JOYSTICK_INTERACT is not set
+# CONFIG_JOYSTICK_SIDEWINDER is not set
+# CONFIG_JOYSTICK_TMDC is not set
+# CONFIG_JOYSTICK_IFORCE is not set
+# CONFIG_JOYSTICK_WARRIOR is not set
+# CONFIG_JOYSTICK_MAGELLAN is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_STINGER is not set
+# CONFIG_JOYSTICK_TWIDJOY is not set
+# CONFIG_JOYSTICK_JOYDUMP is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_PCSPKR is not set
+# CONFIG_INPUT_UINPUT is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+# CONFIG_SERIO_I8042 is not set
+# CONFIG_SERIO_SERPORT is not set
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=0
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_RTC is not set
+# CONFIG_GEN_RTC is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_DRM is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_I810 is not set
+# CONFIG_I2C_PIIX4 is not set
+# CONFIG_I2C_ISA is not set
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_PROSAVAGE is not set
+# CONFIG_I2C_SAVAGE4 is not set
+# CONFIG_SCx200_ACB is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+# CONFIG_I2C_VOODOO3 is not set
+# CONFIG_I2C_PCA_ISA is not set
+
+#
+# Hardware Sensors Chip support
+#
+# CONFIG_I2C_SENSOR is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ASB100 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_FSCHER is not set
+# CONFIG_SENSORS_FSCPOS is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83627HF is not set
+
+#
+# Other I2C Chip support
+#
+# CONFIG_SENSORS_DS1337 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_RTC8564 is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+CONFIG_DVB=y
+CONFIG_DVB_CORE=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+# CONFIG_DVB_AV7110 is not set
+# CONFIG_DVB_BUDGET is not set
+# CONFIG_DVB_BUDGET_CI is not set
+# CONFIG_DVB_BUDGET_AV is not set
+
+#
+# Supported USB Adapters
+#
+# CONFIG_DVB_TTUSB_BUDGET is not set
+# CONFIG_DVB_TTUSB_DEC is not set
+# CONFIG_DVB_DIBUSB is not set
+# CONFIG_DVB_CINERGYT2 is not set
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+# CONFIG_DVB_B2C2_FLEXCOP is not set
+# CONFIG_DVB_B2C2_SKYSTAR is not set
+
+#
+# Supported BT878 Adapters
+#
+
+#
+# Supported DVB Frontends
+#
+
+#
+# Customise DVB Frontends
+#
+
+#
+# DVB-S (satellite) frontends
+#
+CONFIG_DVB_STV0299=y
+# CONFIG_DVB_CX24110 is not set
+CONFIG_DVB_TDA8083=m
+# CONFIG_DVB_TDA80XX is not set
+CONFIG_DVB_MT312=m
+CONFIG_DVB_VES1X93=m
+
+#
+# DVB-T (terrestrial) frontends
+#
+# CONFIG_DVB_SP8870 is not set
+# CONFIG_DVB_SP887X is not set
+# CONFIG_DVB_CX22700 is not set
+# CONFIG_DVB_CX22702 is not set
+CONFIG_DVB_L64781=m
+# CONFIG_DVB_TDA1004X is not set
+# CONFIG_DVB_NXT6000 is not set
+# CONFIG_DVB_MT352 is not set
+# CONFIG_DVB_DIB3000MB is not set
+# CONFIG_DVB_DIB3000MC is not set
+
+#
+# DVB-C (cable) frontends
+#
+# CONFIG_DVB_ATMEL_AT76C651 is not set
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+# CONFIG_DVB_STV0297 is not set
+
+#
+# ATSC (North American/Korean Terresterial DTV) frontends
+#
+# CONFIG_DVB_NXT2002 is not set
+# CONFIG_DVB_OR51211 is not set
+# CONFIG_DVB_OR51132 is not set
+
+#
+# Graphics support
+#
+CONFIG_FB=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_SOFT_CURSOR=y
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON_OLD is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_SMIVGX is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_E1356 is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
+
+#
+# Logo configuration
+#
+# CONFIG_LOGO is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=y
+CONFIG_SND_PCM_OSS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# PCI devices
+#
+# CONFIG_SND_ALI5451 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AZT3328 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_EMU10K1 is not set
+# CONFIG_SND_EMU10K1X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_TRIDENT is not set
+# CONFIG_SND_YMFPCI is not set
+# CONFIG_SND_ALS4000 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_MAESTRO3 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_ICE1712 is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_HDA_INTEL is not set
+
+#
+# ALSA MIPS devices
+#
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB=y
+CONFIG_USB_DEBUG=y
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_BANDWIDTH is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD=y
+# CONFIG_USB_EHCI_SPLIT_ISO is not set
+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+CONFIG_USB_BRCM=y
+# CONFIG_USB_BRCM_PWR_CTL is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_AUDIO=m
+
+#
+# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem
+#
+CONFIG_USB_MIDI=m
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=y
+CONFIG_USB_STORAGE_FREECOM=y
+CONFIG_USB_STORAGE_ISD200=y
+CONFIG_USB_STORAGE_DPCM=y
+CONFIG_USB_STORAGE_USBAT=y
+CONFIG_USB_STORAGE_SDDR09=y
+CONFIG_USB_STORAGE_SDDR55=y
+CONFIG_USB_STORAGE_JUMPSHOT=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_USB_HIDINPUT=y
+# CONFIG_HID_FF is not set
+# CONFIG_USB_HIDDEV is not set
+
+#
+# USB HID Boot Protocol drivers
+#
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+CONFIG_USB_AIPTEK=m
+CONFIG_USB_WACOM=m
+CONFIG_USB_KBTAB=m
+CONFIG_USB_POWERMATE=m
+CONFIG_USB_MTOUCH=m
+CONFIG_USB_EGALAX=m
+CONFIG_USB_XPAD=m
+CONFIG_USB_ATI_REMOTE=m
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB Multimedia devices
+#
+CONFIG_USB_DABUSB=m
+
+#
+# Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_USB_ZD1201 is not set
+CONFIG_USB_MON=m
+
+#
+# USB port drivers
+#
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_AUERSWALD=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_PHIDGETKIT=m
+CONFIG_USB_PHIDGETSERVO=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_TEST is not set
+
+#
+# USB ATM/DSL drivers
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# InfiniBand support
+#
+# CONFIG_INFINIBAND is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=m
+# CONFIG_EXT2_FS_XATTR is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_REISERFS_FS_XATTR is not set
+# CONFIG_JFS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+
+#
+# XFS support
+#
+CONFIG_XFS_FS=m
+CONFIG_XFS_EXPORT=y
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_SECURITY is not set
+# CONFIG_XFS_POSIX_ACL is not set
+CONFIG_MINIX_FS=m
+# CONFIG_ROMFS_FS is not set
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=y
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+# CONFIG_ZISOFS is not set
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+CONFIG_CDFS_FS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+CONFIG_NTFS_DEBUG=y
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_SYSFS=y
+CONFIG_DEVFS_FS=y
+CONFIG_DEVFS_MOUNT=y
+# CONFIG_DEVFS_DEBUG is not set
+# CONFIG_DEVPTS_FS_XATTR is not set
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_XATTR is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+CONFIG_JFFS2_SUMMARY=y
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_SQUASHFS_VMALLOC is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+CONFIG_UFS_FS_WRITE=y
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_DIRECTIO is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_TCP=y
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_CIFS=y
+# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=y
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+# CONFIG_DEBUG_KERNEL is not set
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_CROSSCOMPILE=y
+CONFIG_CMDLINE="root=/dev/mtdblock3 rootfstype=jffs2 rw mem=128M console=null"
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+CONFIG_CRC_CCITT=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
--- /dev/null
+--- 2.6.12-5.1-org/arch/mips/Makefile 2008-03-19 16:22:29.000000000 +0100
++++ 2.6.12-5.1-patched/arch/mips/Makefile 2008-03-24 14:06:32.000000000 +0100
+@@ -876,10 +876,9 @@
+ core-$(CONFIG_MIPS_BCM7400A0) += arch/mips/brcmstb/common/
+ core-$(CONFIG_MIPS_BCM7400B0) += arch/mips/brcmstb/common/
+
+-ifdef CONFIG_SMP
+ cflags-$(CONFIG_MIPS_BCM7400A0) += -Iinclude/asm-mips/mach-brcmstb
+ cflags-$(CONFIG_MIPS_BCM7400B0) += -Iinclude/asm-mips/mach-brcmstb
+-endif
++
+ load-$(CONFIG_MIPS_BCM7400A0) := 0x80001000
+ load-$(CONFIG_MIPS_BCM7400B0) := 0x80001000
+
--- /dev/null
+--- stblinux-2.6.12.org/include/asm-mips/brcmstb/brcm97400b0/boardmap.h 2008-07-03 23:48:25.000000000 +0200
++++ stblinux-2.6.12/include/asm-mips/brcmstb/brcm97400b0/boardmap.h 2008-07-03 21:23:22.000000000 +0200
+@@ -69,7 +69,7 @@
+
+ #define PCI_1394_PHYS_MEM_WIN0_BASE 0xd0000000
+
+-#define PCI_DEVICE_ID_EXT 0x0d
++#define PCI_DEVICE_ID_EXT 1 /* 0x0d */
+ #define PCI_DEVICE_ID_1394 0x0e
+ #define PCI_DEVICE_ID_MINI 0x04
+ #define PCI_DEVICE_ID_SATA 0 /* On 2ndary PCI bus */
--- /dev/null
+--- stblinux-2.6.12/include/asm-mips/brcmstb/brcm97400b0/bcmintrnum.h 2008-07-25 13:55:08.000000000 +0200
++++ stblinux-2.6.12/include/asm-mips/brcmstb/brcm97400b0/bcmintrnum.h 2008-09-11 18:00:03.000000000 +0200
+@@ -106,7 +106,7 @@
+
+ #define BCM_LINUX_EXPANSION_SLOT (BCM_LINUX_EXT_PCI_IRQ)
+
+-#if 1
++#if 0
+ // IRQ lines for EHCI-1 and OHCI-0 are swapped on the 7400A0 chip.
+ #define BCM_LINUX_USB_EHCI_CPU_INTR (1+32+BCHP_HIF_CPU_INTR1_INTR_W1_STATUS_USB_EHCI_CPU_INTR_SHIFT)
+ #define BCM_LINUX_USB_EHCI_1_CPU_INTR (1+32+BCHP_HIF_CPU_INTR1_INTR_W1_STATUS_USB_OHCI_0_CPU_INTR_SHIFT)
--- /dev/null
+Index: stblinux-2.6.12/drivers/mtd/mtd_blkdevs.c
+===================================================================
+--- stblinux-2.6.12.orig/drivers/mtd/mtd_blkdevs.c 2007-07-26 00:55:00.000000000 +0200
++++ stblinux-2.6.12/drivers/mtd/mtd_blkdevs.c 2008-01-16 23:58:30.000000000 +0100
+@@ -21,6 +21,7 @@
+ #include <linux/init.h>
+ #include <asm/semaphore.h>
+ #include <asm/uaccess.h>
++#include <linux/devfs_fs_kernel.h>
+
+ static LIST_HEAD(blktrans_majors);
+
+@@ -302,6 +303,9 @@
+ snprintf(gd->disk_name, sizeof(gd->disk_name),
+ "%s%d", tr->name, new->devnum);
+
++ snprintf(gd->devfs_name, sizeof(gd->devfs_name),
++ "%s/%c", tr->name, (tr->part_bits?'a':'0') + new->devnum);
++
+ /* 2.5 has capacity in units of 512 bytes while still
+ having BLOCK_SIZE_BITS set to 10. Just to keep us amused. */
+ set_capacity(gd, (new->size * new->blksize) >> 9);
+@@ -418,6 +422,8 @@
+ return ret;
+ }
+
++ devfs_mk_dir(tr->name);
++
+ INIT_LIST_HEAD(&tr->devs);
+ list_add(&tr->list, &blktrans_majors);
+
+@@ -450,6 +456,7 @@
+ tr->remove_dev(dev);
+ }
+
++ devfs_remove(tr->name);
+ blk_cleanup_queue(tr->blkcore_priv->rq);
+ unregister_blkdev(tr->major, tr->name);
+
+Index: stblinux-2.6.12/drivers/mtd/mtdchar.c
+===================================================================
+--- stblinux-2.6.12.orig/drivers/mtd/mtdchar.c 2008-01-21 01:37:38.000000000 +0100
++++ stblinux-2.6.12/drivers/mtd/mtdchar.c 2008-01-21 01:37:40.000000000 +0100
+@@ -26,6 +26,8 @@
+
+ static struct class *mtd_class;
+
++#include <linux/devfs_fs_kernel.h>
++
+ static void mtd_notify_add(struct mtd_info* mtd)
+ {
+ if (!mtd)
+@@ -50,6 +52,12 @@
+ MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1),
+ NULL, "mtd%dro", mtd->index);
+ #endif
++
++ devfs_mk_cdev(MKDEV(MTD_CHAR_MAJOR, mtd->index*2),
++ S_IFCHR | S_IRUGO | S_IWUGO, "mtd/%d", mtd->index);
++
++ devfs_mk_cdev(MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1),
++ S_IFCHR | S_IRUGO, "mtd/%dro", mtd->index);
+ }
+
+ static void mtd_notify_remove(struct mtd_info* mtd)
+@@ -59,6 +67,9 @@
+
+ class_device_destroy(mtd_class, MKDEV(MTD_CHAR_MAJOR, mtd->index*2));
+ class_device_destroy(mtd_class, MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1));
++
++ devfs_remove("mtd/%d", mtd->index);
++ devfs_remove("mtd/%dro", mtd->index);
+ }
+
+ static struct mtd_notifier notifier = {
+@@ -66,6 +77,17 @@
+ .remove = mtd_notify_remove,
+ };
+
++static inline void mtdchar_devfs_init(void)
++{
++ devfs_mk_dir("mtd");
++}
++
++static inline void mtdchar_devfs_exit(void)
++{
++ devfs_remove("mtd");
++}
++
++
+ /*
+ * We use file->private_data to store a pointer to the MTDdevice.
+ * Since alighment is at least 32 bits, we have 2 bits free for OTP
+@@ -807,6 +829,7 @@
+ return PTR_ERR(mtd_class);
+ }
+
++ mtdchar_devfs_init();
+ register_mtd_user(¬ifier);
+ return 0;
+ }
+@@ -815,6 +838,7 @@
+ {
+ unregister_mtd_user(¬ifier);
+ class_destroy(mtd_class);
++ mtdchar_devfs_exit();
+ unregister_chrdev(MTD_CHAR_MAJOR, "mtd");
+ }
+
--- /dev/null
+Index: stblinux-2.6.12/drivers/mtd/nand/Kconfig
+===================================================================
+--- stblinux-2.6.12.orig/drivers/mtd/nand/Kconfig 2006-10-10 20:27:00.000000000 +0200
++++ stblinux-2.6.12/drivers/mtd/nand/Kconfig 2007-04-25 02:36:25.000000000 +0200
+@@ -199,6 +199,10 @@
+ help
+ Enables access to the Smart Media card interface on the AT91RM9200.
+
++config MTD_NAND_DM8000
++ bool "DM8000 NAND support"
++ depends on MTD_NAND
++
+ config MTD_NAND_NANDSIM
+ tristate "Support for NAND Flash Simulator"
+ depends on m && MTD_NAND && MTD_PARTITIONS
+Index: stblinux-2.6.12/drivers/mtd/nand/Makefile
+===================================================================
+--- stblinux-2.6.12.orig/drivers/mtd/nand/Makefile 2006-10-10 20:27:00.000000000 +0200
++++ stblinux-2.6.12/drivers/mtd/nand/Makefile 2007-04-25 02:36:25.000000000 +0200
+@@ -16,6 +16,7 @@
+ obj-$(CONFIG_MTD_NAND_AU1550) += au1550nd.o
+ obj-$(CONFIG_MTD_NAND_PPCHAMELEONEVB) += ppchameleonevb.o
+ obj-$(CONFIG_MTD_NAND_S3C2410) += s3c2410.o
++obj-$(CONFIG_MTD_NAND_DM8000) += dm8000.o
+ obj-$(CONFIG_MTD_NAND_DISKONCHIP) += diskonchip.o
+ obj-$(CONFIG_MTD_NAND_H1900) += h1910.o
+ obj-$(CONFIG_MTD_NAND_RTC_FROM4) += rtc_from4.o
+Index: stblinux-2.6.12/drivers/mtd/nand/dm8000.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ stblinux-2.6.12/drivers/mtd/nand/dm8000.c 2007-04-25 16:09:12.000000000 +0200
+@@ -0,0 +1,217 @@
++/*
++ * drivers/mtd/nand/dm8000.c
++ *
++ * Copyright (C) 2000 Steven J. Hill (sjhill@realitydiluted.com)
++ *
++ * Modified for Dreambox DM8000 by Felix Domke <tmbinc@elitedvb.net>
++ *
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * Overview:
++ * This is a device driver for the NAND flash device found on the
++ * DM8000 board.
++ *
++ */
++
++#include <linux/slab.h>
++#include <linux/module.h>
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/nand.h>
++#include <linux/mtd/partitions.h>
++#include <asm/io.h>
++
++static struct mtd_info *dm8000_mtd = NULL;
++/*
++ * Define partitions for flash device
++ */
++const static struct mtd_partition partition_info[] = {
++ {
++ .name = "complete",
++ .offset = 0,
++ .size = 256*1024*1024
++ },
++ {
++ .name = "loader",
++ .offset = 0,
++ .size = 1024*1024
++ },
++ {
++ .name = "boot partition",
++ .offset = 1024*1024,
++ .size = 3*1024*1024
++ },
++ {
++ .name = "root partition",
++ .offset = 4*1024*1024,
++ .size = 60*1024*1024
++ },
++ {
++ .name = "home partition",
++ .offset = 64*1024*1024,
++ .size = 64*1024*1024
++ },
++ {
++ .name = "unused partition",
++ .offset = 128*1024*1024,
++ .size = 120*1024*1024
++ },
++ {
++ .name = "preset partition",
++ .offset = 248*1024*1024,
++ .size = 8*1024*1024
++ }
++};
++#define NUM_PARTITIONS 7
++
++/*
++ * hardware specific access to control-lines
++ * our hardware logic handles the line according to the addresses.
++ */
++static void dm8000_hwcontrol(struct mtd_info *mtd, int cmd)
++{
++ struct nand_chip *this = mtd->priv;
++
++ switch(cmd){
++
++ case NAND_CTL_SETCLE: this->IO_ADDR_W = (void*)0xBF030000; break; // COMMAND
++ case NAND_CTL_CLRCLE: this->IO_ADDR_W = (void*)0xBF030004; break; // DATA
++
++ case NAND_CTL_SETALE: this->IO_ADDR_W = (void*)0xBF030002; break; // ADDRESS
++ case NAND_CTL_CLRALE: this->IO_ADDR_W = (void*)0xBF030004; break; // DATA
++
++ case NAND_CTL_SETNCE: break; // CE will automatically set on command
++ case NAND_CTL_CLRNCE: *(volatile unsigned char*)0xBF030003 = 0; break; // TERM
++ default:
++ BUG();
++ }
++}
++
++static void dm8000_nand_read_buf(struct mtd_info *mtd, u_char *buf, int len)
++{
++// struct nand_chip *this = mtd->priv;
++
++ *(volatile unsigned char*)0xBF030002;
++
++ while (len > 16)
++ {
++ *(long*)buf = *(volatile long*)(0xBF030004);
++ *(long*)(buf+4) = *(volatile long*)(0xBF030004);
++ *(long*)(buf+8) = *(volatile long*)(0xBF030004);
++ *(long*)(buf+12) = *(volatile long*)(0xBF030004);
++ buf += 16;
++ len -= 16;
++ }
++
++ while (len--)
++ *buf++ = *(volatile unsigned char*)(0xBF030004);
++}
++
++static int dm8000_dev_ready(struct mtd_info *mtd)
++{
++ *(volatile unsigned char*)0xBF030002;
++ return 1;
++}
++
++/*
++ * Main initialization routine
++ */
++int __init dm8000_init (void)
++{
++ struct nand_chip *this;
++ unsigned char probe[4];
++ int i, j;
++
++ /* Allocate memory for MTD device structure and private data */
++ dm8000_mtd = kmalloc (sizeof(struct mtd_info) + sizeof (struct nand_chip),
++ GFP_KERNEL);
++ if (!dm8000_mtd) {
++ printk ("Unable to allocate DM8000 NAND MTD device structure.\n");
++ return -ENOMEM;
++ }
++
++ /* Get pointer to private data */
++ this = (struct nand_chip *) (&dm8000_mtd[1]);
++
++ *(volatile unsigned char*)(0xBF030000) = 0x90;
++ *(volatile unsigned char*)(0xBF030002) = 0;
++ probe[0] = *(volatile unsigned char*)(0xBF030004);
++ probe[1] = *(volatile unsigned char*)(0xBF030004);
++ probe[2] = *(volatile unsigned char*)(0xBF030004);
++ probe[3] = *(volatile unsigned char*)(0xBF030004);
++ *(volatile unsigned char*)(0xBF030003) = 0; // term
++
++ j = jiffies;
++ for (i=0; i<1000*1000/4; ++i)
++ *(volatile unsigned long*)(0xBF030004);
++ printk("%ld kb/s\n", 1000 * HZ / (jiffies-j));
++
++ printk(" - NAND PROBE: %02x %02x %02x %02x\n",
++ probe[0], probe[1], probe[2], probe[3]);
++
++ /* Initialize structures */
++ memset((char *) dm8000_mtd, 0, sizeof(struct mtd_info));
++ memset((char *) this, 0, sizeof(struct nand_chip));
++
++ /* Link the private data with the MTD structure */
++ dm8000_mtd->priv = this;
++
++ /* Set address of NAND IO lines */
++ this->IO_ADDR_R = (void*)0xBF030004;
++ this->IO_ADDR_W = (void*)0xBF030004;
++
++ /* Set address of hardware control function */
++ this->hwcontrol = dm8000_hwcontrol;
++ this->read_buf = dm8000_nand_read_buf;
++ this->dev_ready = 0; // don't use dm8000_dev_ready
++ /* 15 us command delay time */
++ this->chip_delay = 15;
++ this->eccmode = NAND_ECC_SOFT;
++
++ /* Scan to find existence of the device */
++ if (nand_scan (dm8000_mtd, 1)) {
++ kfree (dm8000_mtd);
++ return -ENXIO;
++ }
++
++ /* Allocate memory for internal data buffer */
++ this->data_buf = kmalloc (sizeof(u_char) * (dm8000_mtd->oobblock + dm8000_mtd->oobsize), GFP_KERNEL);
++ if (!this->data_buf) {
++ printk ("Unable to allocate NAND data buffer for Dreambox.\n");
++ kfree (dm8000_mtd);
++ return -ENOMEM;
++ }
++
++ /* Register the partitions */
++ add_mtd_partitions(dm8000_mtd, partition_info, NUM_PARTITIONS);
++
++ /* Return happy */
++ return 0;
++}
++module_init(dm8000_init);
++
++/*
++ * Clean up routine
++ */
++#ifdef MODULE
++static void __exit dm8000_cleanup (void)
++{
++ struct nand_chip *this = (struct nand_chip *) &dm8000_mtd[1];
++
++ /* Unregister the device */
++ del_mtd_device (dm8000_mtd);
++
++ /* Free internal data buffer */
++ kfree (this->data_buf);
++
++ /* Free the MTD device structure */
++ kfree (dm8000_mtd);
++}
++module_exit(dm8000_cleanup);
++#endif
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Felix Domke <tmbinc@elitedvb.net>");
++MODULE_DESCRIPTION("Dream-Multimedia DM8000 NAND flash board glue");
--- /dev/null
+diff -Naur 2.6.12-5.0-org/arch/mips/kernel/reset.c 2.6.12-5.0-patched/arch/mips/kernel/reset.c
+--- 2.6.12-5.0-org/arch/mips/kernel/reset.c 2007-07-26 00:51:08.000000000 +0200
++++ 2.6.12-5.0-patched/arch/mips/kernel/reset.c 2007-12-11 12:34:52.000000000 +0100
+@@ -27,6 +27,7 @@
+ }
+
+ EXPORT_SYMBOL(machine_restart);
++EXPORT_SYMBOL(_machine_restart);
+
+ void machine_halt(void)
+ {
+@@ -34,6 +35,7 @@
+ }
+
+ EXPORT_SYMBOL(machine_halt);
++EXPORT_SYMBOL(_machine_halt);
+
+ void machine_power_off(void)
+ {
+@@ -41,3 +43,4 @@
+ }
+
+ EXPORT_SYMBOL(machine_power_off);
++EXPORT_SYMBOL(_machine_power_off);
+diff -Naur 2.6.12-5.0-org/drivers/video/Kconfig 2.6.12-5.0-patched/drivers/video/Kconfig
+--- 2.6.12-5.0-org/drivers/video/Kconfig 2007-07-26 00:54:49.000000000 +0200
++++ 2.6.12-5.0-patched/drivers/video/Kconfig 2007-12-11 12:34:52.000000000 +0100
+@@ -39,7 +39,7 @@
+ device-aware may cause unexpected results. If unsure, say N.
+
+ config FB_CFB_FILLRECT
+- tristate
++ tristate "FB_CFB_FILLRECT"
+ depends on FB
+ default n
+ ---help---
+@@ -48,7 +48,7 @@
+ (accelerated) version.
+
+ config FB_CFB_COPYAREA
+- tristate
++ tristate "FB_CFB_COPYAREA"
+ depends on FB
+ default n
+ ---help---
+@@ -57,7 +57,7 @@
+ version.
+
+ config FB_CFB_IMAGEBLIT
+- tristate
++ tristate "FB_CFB_IMAGEBLIT"
+ depends on FB
+ default n
+ ---help---
+@@ -66,7 +66,7 @@
+ (accelerated) version.
+
+ config FB_SOFT_CURSOR
+- tristate
++ tristate "FB_SOFT_CURSOR"
+ depends on FB
+ default n
+ ---help---
+diff -Naur 2.6.12-5.0-org/drivers/char/keyboard.c 2.6.12-5.0-patched/drivers/char/keyboard.c
+--- 2.6.12-5.0-org/drivers/char/keyboard.c 2007-07-26 00:53:29.000000000 +0200
++++ 2.6.12-5.0-patched/drivers/char/keyboard.c 2007-12-11 12:34:52.000000000 +0100
+@@ -1186,6 +1186,9 @@
+ for (i = KEY_RESERVED; i < BTN_MISC; i++)
+ if (test_bit(i, dev->keybit)) break;
+
++ if ( test_bit(EV_NO_CONSOLE, dev->evbit) )
++ return NULL;
++
+ if ((i == BTN_MISC) && !test_bit(EV_SND, dev->evbit))
+ return NULL;
+
+diff -Naur 2.6.12-5.0-org/include/linux/input.h 2.6.12-5.0-patched/include/linux/input.h
+--- 2.6.12-5.0-org/include/linux/input.h 2007-07-26 00:56:59.000000000 +0200
++++ 2.6.12-5.0-patched/include/linux/input.h 2007-12-11 12:34:52.000000000 +0100
+@@ -92,6 +92,7 @@
+ #define EV_FF 0x15
+ #define EV_PWR 0x16
+ #define EV_FF_STATUS 0x17
++#define EV_NO_CONSOLE 0x1e
+ #define EV_MAX 0x1f
+
+ /*
--- /dev/null
+Index: stblinux-2.6.12/arch/mips/kernel/vmlinux.lds.S
+===================================================================
+--- stblinux-2.6.12.orig/arch/mips/kernel/vmlinux.lds.S 2008-01-16 23:52:20.000000000 +0100
++++ stblinux-2.6.12/arch/mips/kernel/vmlinux.lds.S 2008-01-16 23:52:22.000000000 +0100
+@@ -145,8 +145,8 @@
+ . = ALIGN(4096);
+ __initramfs_start = .;
+ .init.ramfs : { *(.init.ramfs) }
+- . = ALIGN(4096);
+ __initramfs_end = .;
++ . = ALIGN(4096);
+
+ __bss_start = .; /* BSS */
+ .sbss : {
+Index: stblinux-2.6.12/drivers/net/brcmint7038/bcmemac.c
+===================================================================
+--- stblinux-2.6.12.orig/drivers/net/brcmint7038/bcmemac.c 2008-01-16 23:52:20.000000000 +0100
++++ stblinux-2.6.12/drivers/net/brcmint7038/bcmemac.c 2008-01-16 23:52:13.000000000 +0100
+@@ -2978,99 +2978,10 @@
+
+ static void bcmemac_getMacAddr(struct net_device* dev)
+ {
+- uint8 flash_eaddr[ETH_ALEN];
+- void *virtAddr;
+- uint16 word;
+- int i;
+-
+-#if !defined( CONFIG_BRCM_PCI_SLAVE) && !defined( CONFIG_MTD_BRCMNAND )
+-#if 1
+- virtAddr = (void*)FLASH_MACADDR_ADDR;
+-#else
+- //virtAddr = (void*) 0xBDFFF824; /* BCM97110 in-flash Ethernet MAC address */
+- virtAddr = (void*) KSEG1ADDR(getPhysFlashBase() + FLASH_MACADDR_OFFSET);
+-#endif
+-
+- /* It is a common problem that the flash and/or Chip Select are
+- * not initialized properly, so leave this printk on
+- */
+- printk("%s: Reading MAC address from %08lX, FLASH_BASE=%08lx\n",
+- dev->name,(uint32) virtAddr, (unsigned long) 0xA0000000L|getPhysFlashBase());
+-
+- word=0;
+- word=readw(virtAddr);
+- flash_eaddr[0]=(uint8) (word & 0x00FF);
+- flash_eaddr[1]=(uint8) ((word & 0xFF00) >> 8);
+- word=readw(virtAddr+2);
+- flash_eaddr[2]=(uint8) (word & 0x00FF);
+- flash_eaddr[3]=(uint8) ((word & 0xFF00) >> 8);
+- word=readw(virtAddr+4);
+- flash_eaddr[4]=(uint8) (word & 0x00FF);
+- flash_eaddr[5]=(uint8) ((word & 0xFF00) >> 8);
+-
+- printk("%s: MAC address %02X:%02X:%02X:%02X:%02X:%02X fetched from addr %lX\n",
+- dev->name,
+- flash_eaddr[0],flash_eaddr[1],flash_eaddr[2],
+- flash_eaddr[3],flash_eaddr[4],flash_eaddr[5],
+- (uint32) virtAddr);
+-
+-#elif defined( CONFIG_MTD_BRCMNAND )
+-{
+- extern int gNumHwAddrs;
+- extern unsigned char* gHwAddrs[];
+-
+- if (gNumHwAddrs >= 1) {
+- for (i=0; i < 6; i++) {
+- flash_eaddr[i] = (uint8) gHwAddrs[0][i];
+- }
+-
+- printk("%s: MAC address %02X:%02X:%02X:%02X:%02X:%02X fetched from bootloader\n",
+- dev->name,
+- flash_eaddr[0],flash_eaddr[1],flash_eaddr[2],
+- flash_eaddr[3],flash_eaddr[4],flash_eaddr[5]
+- );
+- }
+- else {
+- printk(KERN_ERR "%s: No MAC addresses defined\n", __FUNCTION__);
+- }
+-}
++ /* we rip the address set by the bootloader */
++ unsigned long addr[2] = { be32_to_cpu(*(unsigned int*)0xB008005C), be32_to_cpu(*(unsigned int*)0xB0080058)};
+
+-#else
+-/* PCI slave cannot access the EBI bus,
+- * and for now, same for NAND flash, until CFE supports it
+- */
+-/* Use hard coded value if Flash not properly initialized */
+- //if ((*flash_eaddr & 0xff) == 0xff)
+- {
+-//#ifdef USE_HARDCODED_MACADDR
+- flash_eaddr[0] = 0x00;
+- flash_eaddr[1] = 0xc0;
+- flash_eaddr[2] = 0xa8;
+- flash_eaddr[3] = 0x74;
+- flash_eaddr[4] = 0x3b;
+- flash_eaddr[5] = 0x51;
+- printk("%s: Default MAC address %02X:%02X:%02X:%02X:%02X:%02X used\n",
+- dev->name,
+- flash_eaddr[0],flash_eaddr[1],flash_eaddr[2],
+- flash_eaddr[3],flash_eaddr[4],flash_eaddr[5]);
+-//#else
+-// printk("%s: Cannot read EMAC address from flash. Please run EVAL codes\n", CARDNAME);
+-// return -ENODEV;
+-//#endif
+- }
+-#endif
+-
+- /* fill in the MAC address */
+- for (i = 0; i < 6; i++) {
+- dev->dev_addr[i] = flash_eaddr[i];
+- }
+-
+- /* print the Ethenet address */
+- printk("%s: MAC Address: ", dev->name);
+- for (i = 0; i < 5; i++) {
+- printk("%2.2X:", dev->dev_addr[i]);
+- }
+- printk("%2.2X\n", dev->dev_addr[i]);
++ memcpy(dev->dev_addr, ((unsigned char*)addr)+2, 6);
+ }
+
+
+Index: stblinux-2.6.12/arch/mips/brcmstb/common/setup.c
+===================================================================
+--- stblinux-2.6.12.orig/arch/mips/brcmstb/common/setup.c 2008-01-16 23:53:24.000000000 +0100
++++ stblinux-2.6.12/arch/mips/brcmstb/common/setup.c 2008-01-16 23:54:06.000000000 +0100
+@@ -136,13 +136,13 @@
+
+ static void brcm_machine_halt(void)
+ {
+- printk("Broadcom eval board halted.\n");
++ printk("Halted.\n");
+ while (1);
+ }
+
+ static void brcm_machine_power_off(void)
+ {
+- printk("Broadcom eval board halted. Please turn off power.\n");
++ printk("Halted. Please turn off power.\n");
+ while (1);
+ }
+
--- /dev/null
+diff -Naur stblinux-2.6.12-org/drivers/media/dvb/dvb-core/dvbdev.c stblinux-2.6.12/drivers/media/dvb/dvb-core/dvbdev.c
+--- stblinux-2.6.12-org/drivers/media/dvb/dvb-core/dvbdev.c 2008-07-17 23:14:00.000000000 +0200
++++ stblinux-2.6.12/drivers/media/dvb/dvb-core/dvbdev.c 2008-07-17 22:34:33.000000000 +0200
+@@ -52,9 +52,9 @@
+ };
+
+ #define DVB_MAX_ADAPTERS 8
+-#define DVB_MAX_IDS 4
+-#define nums2minor(num,type,id) ((num << 6) | (id << 4) | type)
+-#define MAX_DVB_MINORS (DVB_MAX_ADAPTERS*64)
++#define DVB_MAX_IDS 8
++#define nums2minor(num,type,id) ((num << 7) | (id << 4) | type)
++#define MAX_DVB_MINORS (DVB_MAX_ADAPTERS*128)
+
+ static struct class *dvb_class;
+
--- /dev/null
+Index: stblinux-2.6.12/arch/mips/kernel/setup.c
+===================================================================
+--- stblinux-2.6.12.orig/arch/mips/kernel/setup.c 2008-04-15 02:13:42.000000000 +0200
++++ stblinux-2.6.12/arch/mips/kernel/setup.c 2008-04-15 02:25:13.000000000 +0200
+@@ -472,11 +472,29 @@
+ */
+ unsigned long get_RAM_size(void);
+
++extern int *_prom_envp;
++#define prom_envp(index) ((char *)(long)_prom_envp[(index)])
++static char *prom_getenv(char *envname)
++{
++ int i, index=0;
++
++ i = strlen(envname);
++
++ while (prom_envp(index)) {
++ if ((strncmp(envname, prom_envp(index), i) == 0) && (prom_envp(index)[i] == '='))
++ return(prom_envp(index) + i + 1);
++ index++;
++ }
++
++ return NULL;
++}
++
+ static inline void brcm_default_boot_mem(void)
+ {
+ int ramSizeMB = get_RAM_size() >> 20;
+ int size;
+ char msg[40];
++ const char *memsize_str;
+
+ if (ramSizeMB <= 32)
+ {
+@@ -502,11 +520,20 @@
+ size = 32;
+ #endif
+ }
+- sprintf(msg, "Using %dMB for memory, overwrite by passing mem=xx\n",
+- size);
+- uart_puts(msg);
+- brcm_insert_ram_node(0, size<<20, BOOT_MEM_RAM, &brcm_bm);
+
++ memsize_str = prom_getenv("memsize");
++ if (memsize_str)
++ {
++ int memsize = simple_strtol(memsize_str, NULL, 0);
++ brcm_insert_ram_node(0, memsize<<20, BOOT_MEM_RAM, &brcm_bm);
++ printk("---> memsize from bootloader: %d\n", memsize);
++ } else
++ {
++ sprintf(msg, "Using %dMB for memory, overwrite by passing mem=xx\n",
++ size);
++ uart_puts(msg);
++ brcm_insert_ram_node(0, size<<20, BOOT_MEM_RAM, &brcm_bm);
++ }
+ }
+
+
--- /dev/null
+Index: stblinux-2.6.12/arch/mips/brcmstb/common/prom.c
+===================================================================
+--- stblinux-2.6.12.orig/arch/mips/brcmstb/common/prom.c 2008-01-16 00:14:31.000000000 +0100
++++ stblinux-2.6.12/arch/mips/brcmstb/common/prom.c 2008-01-16 00:23:08.000000000 +0100
+@@ -216,6 +216,29 @@
+ }
+
+
++int prom_argc;
++int *_prom_argv, *_prom_envp;
++
++void __init prom_init_cmdline(void)
++{
++ char *cp;
++ int actr;
++
++ actr = 1; /* Always ignore argv[0] */
++
++ cp = &(arcs_cmdline[0]);
++ while(actr < prom_argc) {
++ strcpy(cp, _prom_argv[actr]);
++ cp += strlen(_prom_argv[actr]);
++ *cp++ = ' ';
++ actr++;
++ }
++ if (cp != &(arcs_cmdline[0])) {
++ /* get rid of trailing space */
++ --cp;
++ *cp = '\0';
++ }
++}
+
+ void __init prom_init(void)
+ {
+@@ -731,23 +754,14 @@
+ uart_puts("Default command line = \n");
+ uart_puts(CONFIG_CMDLINE);
+ uart_puts("\n");
+- p = &arcs_cmdline[0];
+- while (p != NULL && *p != '\0') {
+- if (!isspace(*p))
+- break;
+- p++;
+- }
+- if (p == NULL || *p == '\0') {
+- uart_puts("Defaulting to boot from HD\n");
+- /* Default is to boot from HD */
+- strcpy(arcs_cmdline,
+- "root=/dev/hda1" DEFAULT_KARGS);
+- }
+- else if (appendConsoleNeeded) {
+- /* Make sure that the boot params specify a console */
+- appendConsoleArg(arcs_cmdline);
+- }
+
++ prom_argc = fw_arg0;
++ _prom_argv = (int *) fw_arg1;
++ _prom_envp = (int *) fw_arg2;
++ printk("%d %p %p\n", prom_argc, _prom_argv, _prom_envp);
++ prom_init_cmdline();
++
++
+ #else /* No CONFIG_CMDLINE, and not Initrd */
+ /* Default is to boot from HD */
+ strcpy(arcs_cmdline,
--- /dev/null
+Index: stblinux-2.6.12/Makefile
+===================================================================
+--- stblinux-2.6.12.orig/Makefile 2007-12-17 20:09:55.000000000 +0100
++++ stblinux-2.6.12/Makefile 2007-12-17 22:37:51.000000000 +0100
+@@ -2,7 +2,7 @@
+ PATCHLEVEL = 6
+ SUBLEVEL = 12
+ # STABLE_VERSION = .2
+-EXTRAVERSION =-5.1-brcmstb
++EXTRAVERSION =-5.1-brcmstb-dm8000
+ NAME=Woozy Numbat
+
+ # *DOCUMENTATION*
--- /dev/null
+diff -Naur 2.6.12-5.0-org/arch/mips/kernel/syscall.c 2.6.12-5.0-patched/arch/mips/kernel/syscall.c
+--- 2.6.12-5.0-org/arch/mips/kernel/syscall.c 2007-07-26 00:51:09.000000000 +0200
++++ 2.6.12-5.0-patched/arch/mips/kernel/syscall.c 2007-12-11 12:34:52.000000000 +0100
+@@ -405,6 +405,13 @@
+ }
+ }
+
++asmlinkage long mips_fadvise64(int fd,
++ unsigned int low_off, unsigned int high_off,
++ unsigned int len, int advice, unsigned int dummy)
++{
++ return sys_fadvise64_64(fd, (((u64)high_off) << 32) | low_off, (u64)len, advice);
++}
++
+ /*
+ * No implemented yet ...
+ */
+diff -Naur 2.6.12-5.0-org/arch/mips/kernel/scall32-o32.S 2.6.12-5.0-patched/arch/mips/kernel/scall32-o32.S
+--- 2.6.12-5.0-org/arch/mips/kernel/scall32-o32.S 2007-07-26 00:51:08.000000000 +0200
++++ 2.6.12-5.0-patched/arch/mips/kernel/scall32-o32.S 2007-12-11 12:34:52.000000000 +0100
+@@ -594,7 +594,7 @@
+ sys sys_remap_file_pages 5
+ sys sys_set_tid_address 1
+ sys sys_restart_syscall 0
+- sys sys_fadvise64_64 7
++ sys mips_fadvise64 7
+ sys sys_statfs64 3 /* 4255 */
+ sys sys_fstatfs64 2
+ sys sys_timer_create 3
--- /dev/null
+diff -Naur 2.6.12-5.0-org/include/asm-mips/futex.h 2.6.12-5.0-patched/include/asm-mips/futex.h
+--- 2.6.12-5.0-org/include/asm-mips/futex.h 1970-01-01 01:00:00.000000000 +0100
++++ 2.6.12-5.0-patched/include/asm-mips/futex.h 2007-12-11 12:34:52.000000000 +0100
+@@ -0,0 +1,134 @@
++#ifndef _ASM_FUTEX_H
++#define _ASM_FUTEX_H
++
++#ifdef __KERNEL__
++
++#include <linux/config.h>
++#include <linux/futex.h>
++#include <asm/errno.h>
++#include <asm/uaccess.h>
++#include <asm/war.h>
++
++#ifdef CONFIG_SMP
++#define __FUTEX_SMP_SYNC " sync \n"
++#else
++#define __FUTEX_SMP_SYNC
++#endif
++
++#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \
++{ \
++ if (cpu_has_llsc && R10000_LLSC_WAR) { \
++ __asm__ __volatile__( \
++ " .set push \n" \
++ " .set noat \n" \
++ " .set mips3 \n" \
++ "1: ll %1, %4 # __futex_atomic_op \n" \
++ " .set mips0 \n" \
++ " " insn " \n" \
++ " .set mips3 \n" \
++ "2: sc $1, %2 \n" \
++ " beqzl $1, 1b \n" \
++ __FUTEX_SMP_SYNC \
++ "3: \n" \
++ " .set pop \n" \
++ " .set mips0 \n" \
++ " .section .fixup,\"ax\" \n" \
++ "4: li %0, %6 \n" \
++ " j 2b \n" \
++ " .previous \n" \
++ " .section __ex_table,\"a\" \n" \
++ " "__UA_ADDR "\t1b, 4b \n" \
++ " "__UA_ADDR "\t2b, 4b \n" \
++ " .previous \n" \
++ : "=r" (ret), "=&r" (oldval), "=R" (*uaddr) \
++ : "0" (0), "R" (*uaddr), "Jr" (oparg), "i" (-EFAULT) \
++ : "memory"); \
++ } else if (cpu_has_llsc) { \
++ __asm__ __volatile__( \
++ " .set push \n" \
++ " .set noat \n" \
++ " .set mips3 \n" \
++ "1: ll %1, %4 # __futex_atomic_op \n" \
++ " .set mips0 \n" \
++ " " insn " \n" \
++ " .set mips3 \n" \
++ "2: sc $1, %2 \n" \
++ " beqz $1, 1b \n" \
++ __FUTEX_SMP_SYNC \
++ "3: \n" \
++ " .set pop \n" \
++ " .set mips0 \n" \
++ " .section .fixup,\"ax\" \n" \
++ "4: li %0, %6 \n" \
++ " j 2b \n" \
++ " .previous \n" \
++ " .section __ex_table,\"a\" \n" \
++ " "__UA_ADDR "\t1b, 4b \n" \
++ " "__UA_ADDR "\t2b, 4b \n" \
++ " .previous \n" \
++ : "=r" (ret), "=&r" (oldval), "=R" (*uaddr) \
++ : "0" (0), "R" (*uaddr), "Jr" (oparg), "i" (-EFAULT) \
++ : "memory"); \
++ } else \
++ ret = -ENOSYS; \
++}
++
++static inline int
++futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
++{
++ int op = (encoded_op >> 28) & 7;
++ int cmp = (encoded_op >> 24) & 15;
++ int oparg = (encoded_op << 8) >> 20;
++ int cmparg = (encoded_op << 20) >> 20;
++ int oldval = 0, ret;
++ if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
++ oparg = 1 << oparg;
++
++ if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int)))
++ return -EFAULT;
++
++ inc_preempt_count();
++
++ switch (op) {
++ case FUTEX_OP_SET:
++ __futex_atomic_op("move $1, %z5", ret, oldval, uaddr, oparg);
++ break;
++
++ case FUTEX_OP_ADD:
++ __futex_atomic_op("addu $1, %1, %z5",
++ ret, oldval, uaddr, oparg);
++ break;
++ case FUTEX_OP_OR:
++ __futex_atomic_op("or $1, %1, %z5",
++ ret, oldval, uaddr, oparg);
++ break;
++ case FUTEX_OP_ANDN:
++ __futex_atomic_op("and $1, %1, %z5",
++ ret, oldval, uaddr, ~oparg);
++ break;
++ case FUTEX_OP_XOR:
++ __futex_atomic_op("xor $1, %1, %z5",
++ ret, oldval, uaddr, oparg);
++ break;
++ default:
++ ret = -ENOSYS;
++ }
++
++ dec_preempt_count();
++
++ if (!ret) {
++ switch (cmp) {
++ case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break;
++ case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break;
++ case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break;
++ case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break;
++ case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break;
++ case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break;
++ default: ret = -ENOSYS;
++ }
++ }
++ return ret;
++}
++
++#endif
++#endif
+diff -Naur 2.6.12-5.0-org/include/linux/futex.h 2.6.12-5.0-patched/include/linux/futex.h
+--- 2.6.12-5.0-org/include/linux/futex.h 2007-07-26 00:57:03.000000000 +0200
++++ 2.6.12-5.0-patched/include/linux/futex.h 2007-12-11 12:34:52.000000000 +0100
+@@ -4,14 +4,40 @@
+ /* Second argument to futex syscall */
+
+
+-#define FUTEX_WAIT (0)
+-#define FUTEX_WAKE (1)
+-#define FUTEX_FD (2)
+-#define FUTEX_REQUEUE (3)
+-#define FUTEX_CMP_REQUEUE (4)
++#define FUTEX_WAIT 0
++#define FUTEX_WAKE 1
++#define FUTEX_FD 2
++#define FUTEX_REQUEUE 3
++#define FUTEX_CMP_REQUEUE 4
++#define FUTEX_WAKE_OP 5
+
+ long do_futex(unsigned long uaddr, int op, int val,
+ unsigned long timeout, unsigned long uaddr2, int val2,
+ int val3);
+
++#define FUTEX_OP_SET 0 /* *(int *)UADDR2 = OPARG; */
++#define FUTEX_OP_ADD 1 /* *(int *)UADDR2 += OPARG; */
++#define FUTEX_OP_OR 2 /* *(int *)UADDR2 |= OPARG; */
++#define FUTEX_OP_ANDN 3 /* *(int *)UADDR2 &= ~OPARG; */
++#define FUTEX_OP_XOR 4 /* *(int *)UADDR2 ^= OPARG; */
++
++#define FUTEX_OP_OPARG_SHIFT 8 /* Use (1 << OPARG) instead of OPARG. */
++
++#define FUTEX_OP_CMP_EQ 0 /* if (oldval == CMPARG) wake */
++#define FUTEX_OP_CMP_NE 1 /* if (oldval != CMPARG) wake */
++#define FUTEX_OP_CMP_LT 2 /* if (oldval < CMPARG) wake */
++#define FUTEX_OP_CMP_LE 3 /* if (oldval <= CMPARG) wake */
++#define FUTEX_OP_CMP_GT 4 /* if (oldval > CMPARG) wake */
++#define FUTEX_OP_CMP_GE 5 /* if (oldval >= CMPARG) wake */
++
++/* FUTEX_WAKE_OP will perform atomically
++ int oldval = *(int *)UADDR2;
++ *(int *)UADDR2 = oldval OP OPARG;
++ if (oldval CMP CMPARG)
++ wake UADDR2; */
++
++#define FUTEX_OP(op, oparg, cmp, cmparg) \
++ (((op & 0xf) << 28) | ((cmp & 0xf) << 24) \
++ | ((oparg & 0xfff) << 12) | (cmparg & 0xfff))
++
+ #endif
+diff -Naur 2.6.12-5.0-org/kernel/futex.c 2.6.12-5.0-patched/kernel/futex.c
+--- 2.6.12-5.0-org/kernel/futex.c 2007-07-26 00:57:20.000000000 +0200
++++ 2.6.12-5.0-patched/kernel/futex.c 2007-12-11 12:34:52.000000000 +0100
+@@ -40,6 +40,7 @@
+ #include <linux/pagemap.h>
+ #include <linux/syscalls.h>
+ #include <linux/signal.h>
++#include <asm/futex.h>
+
+ #define FUTEX_HASHBITS (CONFIG_BASE_SMALL ? 4 : 8)
+
+@@ -201,22 +202,6 @@
+ * for a rare case, so we simply fetch the page.
+ */
+
+- /*
+- * Do a quick atomic lookup first - this is the fastpath.
+- */
+- spin_lock(¤t->mm->page_table_lock);
+- page = follow_page(mm, uaddr, 0);
+- if (likely(page != NULL)) {
+- key->shared.pgoff =
+- page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT);
+- spin_unlock(¤t->mm->page_table_lock);
+- return 0;
+- }
+- spin_unlock(¤t->mm->page_table_lock);
+-
+- /*
+- * Do it the general way.
+- */
+ err = get_user_pages(current, mm, uaddr, 1, 0, 0, &page, NULL);
+ if (err >= 0) {
+ key->shared.pgoff =
+@@ -327,6 +312,123 @@
+ }
+
+ /*
++ * Wake up all waiters hashed on the physical page that is mapped
++ * to this virtual address:
++ */
++static int futex_wake_op(unsigned long uaddr1, unsigned long uaddr2, int nr_wake, int nr_wake2, int op)
++{
++ union futex_key key1, key2;
++ struct futex_hash_bucket *bh1, *bh2;
++ struct list_head *head;
++ struct futex_q *this, *next;
++ int ret, op_ret, attempt = 0;
++
++retryfull:
++ down_read(¤t->mm->mmap_sem);
++
++ ret = get_futex_key(uaddr1, &key1);
++ if (unlikely(ret != 0))
++ goto out;
++ ret = get_futex_key(uaddr2, &key2);
++ if (unlikely(ret != 0))
++ goto out;
++
++ bh1 = hash_futex(&key1);
++ bh2 = hash_futex(&key2);
++
++retry:
++ if (bh1 < bh2)
++ spin_lock(&bh1->lock);
++ spin_lock(&bh2->lock);
++ if (bh1 > bh2)
++ spin_lock(&bh1->lock);
++
++ op_ret = futex_atomic_op_inuser(op, (int __user *)uaddr2);
++ if (unlikely(op_ret < 0)) {
++ int dummy;
++
++ spin_unlock(&bh1->lock);
++ if (bh1 != bh2)
++ spin_unlock(&bh2->lock);
++
++ if (unlikely(op_ret != -EFAULT)) {
++ ret = op_ret;
++ goto out;
++ }
++
++ /* futex_atomic_op_inuser needs to both read and write
++ * *(int __user *)uaddr2, but we can't modify it
++ * non-atomically. Therefore, if get_user below is not
++ * enough, we need to handle the fault ourselves, while
++ * still holding the mmap_sem. */
++ if (attempt++) {
++ struct vm_area_struct * vma;
++ struct mm_struct *mm = current->mm;
++
++ ret = -EFAULT;
++ if (attempt >= 2 ||
++ !(vma = find_vma(mm, uaddr2)) ||
++ vma->vm_start > uaddr2 ||
++ !(vma->vm_flags & VM_WRITE))
++ goto out;
++
++ switch (handle_mm_fault(mm, vma, uaddr2, 1)) {
++ case VM_FAULT_MINOR:
++ current->min_flt++;
++ break;
++ case VM_FAULT_MAJOR:
++ current->maj_flt++;
++ break;
++ default:
++ goto out;
++ }
++ goto retry;
++ }
++
++ /* If we would have faulted, release mmap_sem,
++ * fault it in and start all over again. */
++ up_read(¤t->mm->mmap_sem);
++
++ ret = get_user(dummy, (int __user *)uaddr2);
++ if (ret)
++ return ret;
++
++ goto retryfull;
++ }
++
++ head = &bh1->chain;
++
++ list_for_each_entry_safe(this, next, head, list) {
++ if (match_futex (&this->key, &key1)) {
++ wake_futex(this);
++ if (++ret >= nr_wake)
++ break;
++ }
++ }
++
++ if (op_ret > 0) {
++ head = &bh2->chain;
++
++ op_ret = 0;
++ list_for_each_entry_safe(this, next, head, list) {
++ if (match_futex (&this->key, &key2)) {
++ wake_futex(this);
++ if (++op_ret >= nr_wake2)
++ break;
++ }
++ }
++ ret += op_ret;
++ }
++
++ spin_unlock(&bh1->lock);
++ if (bh1 != bh2)
++ spin_unlock(&bh2->lock);
++out:
++ up_read(¤t->mm->mmap_sem);
++ return ret;
++}
++
++/*
+ * Requeue all waiters hashed on one physical page to another
+ * physical page.
+ */
+@@ -740,6 +842,9 @@
+ case FUTEX_CMP_REQUEUE:
+ ret = futex_requeue(uaddr, uaddr2, val, val2, &val3);
+ break;
++ case FUTEX_WAKE_OP:
++ ret = futex_wake_op(uaddr, uaddr2, val, val2, val3);
++ break;
+ default:
+ ret = -ENOSYS;
+ }
+@@ -755,9 +860,11 @@
+ unsigned long timeout = MAX_SCHEDULE_TIMEOUT;
+ int val2 = 0;
+
+- if ((op == FUTEX_WAIT) && utime) {
++ if (utime && (op == FUTEX_WAIT)) {
+ if (copy_from_user(&t, utime, sizeof(t)) != 0)
+ return -EFAULT;
++ if (!timespec_valid(&t))
++ return -EINVAL;
+ timeout = timespec_to_jiffies(&t) + 1;
+ }
+ /*
--- /dev/null
+diff -Naur 2.6.12-5.0-org/include/asm-mips/uaccess.h 2.6.12-5.0-patched/include/asm-mips/uaccess.h
+--- 2.6.12-5.0-org/include/asm-mips/uaccess.h 2007-07-26 00:56:08.000000000 +0200
++++ 2.6.12-5.0-patched/include/asm-mips/uaccess.h 2007-12-11 12:34:52.000000000 +0100
+@@ -234,39 +234,72 @@
+
+ #define __get_user_nocheck(x,ptr,size) \
+ ({ \
+- __typeof(*(ptr)) __gu_val = (__typeof(*(ptr))) 0; \
+ long __gu_err = 0; \
+- \
+ might_sleep(); \
+ switch (size) { \
+- case 1: __get_user_asm("lb", ptr); break; \
+- case 2: __get_user_asm("lh", ptr); break; \
+- case 4: __get_user_asm("lw", ptr); break; \
+- case 8: __GET_USER_DW(ptr); break; \
++ case 1: { \
++ s8 __gu_val = (s8) 0; \
++ __get_user_asm("lb", ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
++ case 2: { \
++ s16 __gu_val = (s16) 0; \
++ __get_user_asm("lh", ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
++ case 4: { \
++ s32 __gu_val = (s32) 0; \
++ __get_user_asm("lw", ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
++ case 8: { \
++ s64 __gu_val = (s64) 0; \
++ __GET_USER_DW(ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
+ default: __get_user_unknown(); break; \
+ } \
+- (x) = (__typeof__(*(ptr))) __gu_val; \
+ __gu_err; \
+ })
+
+ #define __get_user_check(x,ptr,size) \
+ ({ \
+ const __typeof__(*(ptr)) __user * __gu_addr = (ptr); \
+- __typeof__(*(ptr)) __gu_val = 0; \
+ long __gu_err = -EFAULT; \
+- \
+ might_sleep(); \
+- \
+ if (likely(access_ok(VERIFY_READ, __gu_addr, size))) { \
+ switch (size) { \
+- case 1: __get_user_asm("lb", __gu_addr); break; \
+- case 2: __get_user_asm("lh", __gu_addr); break; \
+- case 4: __get_user_asm("lw", __gu_addr); break; \
+- case 8: __GET_USER_DW(__gu_addr); break; \
++ case 1: { \
++ s8 __gu_val = (s8) 0; \
++ __get_user_asm("lb", ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
++ case 2: { \
++ s16 __gu_val = (s16) 0; \
++ __get_user_asm("lh", ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
++ case 4: { \
++ s32 __gu_val = (s32) 0; \
++ __get_user_asm("lw", ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
++ case 8: { \
++ s64 __gu_val = (s64) 0; \
++ __GET_USER_DW(ptr); \
++ (x) = (__typeof__(*(ptr))) __gu_val; \
++ break; \
++ } \
+ default: __get_user_unknown(); break; \
+ } \
+ } \
+- (x) = (__typeof__(*(ptr))) __gu_val; \
+ __gu_err; \
+ })
+
--- /dev/null
+diff -Naur 2.6.12-5.0-org/arch/mips/kernel/gdb-low.S 2.6.12-5.0-patched/arch/mips/kernel/gdb-low.S
+--- 2.6.12-5.0-org/arch/mips/kernel/gdb-low.S 2007-07-26 00:51:07.000000000 +0200
++++ 2.6.12-5.0-patched/arch/mips/kernel/gdb-low.S 2007-12-11 12:34:52.000000000 +0100
+@@ -52,12 +52,14 @@
+ /*
+ * Called from user mode, go somewhere else.
+ */
+- lui k1, %hi(saved_vectors)
+ mfc0 k0, CP0_CAUSE
+ andi k0, k0, 0x7c
+- add k1, k1, k0
+- lw k0, %lo(saved_vectors)(k1)
+- jr k0
++
++#ifdef CONFIG_MIPS64
++ dsll k0, k0, 1
++#endif
++ lw k1, %lo(saved_vectors)(k0)
++ jr k1
+ nop
+ 1:
+ move k0, sp
--- /dev/null
+Index: madwifi-ng-r3314-20080131/ath/if_athvar.h
+===================================================================
+--- madwifi-ng-r3314-20080131.orig/ath/if_athvar.h 2008-06-12 03:19:30.000000000 +0200
++++ madwifi-ng-r3314-20080131/ath/if_athvar.h 2008-06-12 03:19:41.000000000 +0200
+@@ -522,7 +522,7 @@
+ atomic_t av_beacon_alloc; /* set to 1 when the next beacon needs
+ to be recomputed */
+ #else
+- unsigned int av_beacon_alloc;
++ unsigned long av_beacon_alloc;
+ #endif
+ };
+ #define ATH_VAP(_v) ((struct ath_vap *)(_v))
--- /dev/null
+Index: mjpegtools-1.9.0rc3/lavtools/Makefile.am
+===================================================================
+--- mjpegtools-1.9.0rc3.orig/lavtools/Makefile.am 2008-04-09 00:44:57.000000000 +0200
++++ mjpegtools-1.9.0rc3/lavtools/Makefile.am 2008-04-09 01:03:10.000000000 +0200
+@@ -2,7 +2,7 @@
+
+ MAINTAINERCLEANFILES = Makefile.in
+
+-AM_CPPFLAGS = -I$(top_srcdir) -I$(includedir) -I$(top_srcdir)/utils $(LIBQUICKTIME_CFLAGS)
++AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/utils $(LIBQUICKTIME_CFLAGS)
+
+ LIBMJPEGUTILS = $(top_builddir)/utils/libmjpegutils.la
+ if HAVE_ALTIVEC
+Index: mjpegtools-1.9.0rc3/yuvcorrect/Makefile.am
+===================================================================
+--- mjpegtools-1.9.0rc3.orig/yuvcorrect/Makefile.am 2008-04-09 01:01:15.000000000 +0200
++++ mjpegtools-1.9.0rc3/yuvcorrect/Makefile.am 2008-04-09 01:01:21.000000000 +0200
+@@ -2,7 +2,7 @@
+
+ MAINTAINERCLEANFILES = Makefile.in
+
+-AM_CPPFLAGS = -I$(top_srcdir) -I$(includedir) -I$(top_srcdir)/utils
++AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/utils
+
+ LIBMJPEGUTILS = $(top_builddir)/utils/libmjpegutils.la
+ if HAVE_ALTIVEC
+Index: mjpegtools-1.9.0rc3/yuvscaler/Makefile.am
+===================================================================
+--- mjpegtools-1.9.0rc3.orig/yuvscaler/Makefile.am 2008-04-09 01:01:43.000000000 +0200
++++ mjpegtools-1.9.0rc3/yuvscaler/Makefile.am 2008-04-09 01:01:50.000000000 +0200
+@@ -2,7 +2,7 @@
+
+ MAINTAINERCLEANFILES = Makefile.in
+
+-AM_CPPFLAGS = -I$(top_srcdir) -I$(includedir) -I$(top_srcdir)/utils
++AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/utils
+
+
+ LIBMJPEGUTILS = $(top_builddir)/utils/libmjpegutils.la
+Index: mjpegtools-1.9.0rc3/y4mdenoise/Makefile.am
+===================================================================
+--- mjpegtools-1.9.0rc3.orig/y4mdenoise/Makefile.am 2008-04-09 01:03:16.000000000 +0200
++++ mjpegtools-1.9.0rc3/y4mdenoise/Makefile.am 2008-04-09 01:03:25.000000000 +0200
+@@ -7,7 +7,7 @@
+ AM_CFLAGS = -DNDEBUG -finline-functions @PROGRAM_NOPIC@
+ AM_CXXFLAGS = -DNDEBUG -finline-functions @PROGRAM_NOPIC@
+
+-INCLUDES = -I$(top_srcdir) -I$(includedir) -I$(top_srcdir)/utils
++INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/utils
+
+ LIBMJPEGUTILS = $(top_builddir)/utils/libmjpegutils.la
+ if HAVE_ALTIVEC
+Index: mjpegtools-1.9.0rc3/y4mutils/Makefile.am
+===================================================================
+--- mjpegtools-1.9.0rc3.orig/y4mutils/Makefile.am 2008-04-09 01:03:43.000000000 +0200
++++ mjpegtools-1.9.0rc3/y4mutils/Makefile.am 2008-04-09 01:03:48.000000000 +0200
+@@ -3,7 +3,7 @@
+ MAINTAINERCLEANFILES = Makefile.in
+
+ AM_CFLAGS = @PROGRAM_NOPIC@
+-AM_CPPFLAGS = -I$(top_srcdir) -I$(includedir) -I$(top_srcdir)/utils
++AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/utils
+
+ LIBMJPEGUTILS = $(top_builddir)/utils/libmjpegutils.la
+ if HAVE_ALTIVEC
--- /dev/null
+Index: mjpegtools-1.9.0rc3/configure.ac
+===================================================================
+--- mjpegtools-1.9.0rc3.orig/configure.ac 2008-04-09 00:35:08.000000000 +0200
++++ mjpegtools-1.9.0rc3/configure.ac 2008-04-09 00:35:18.000000000 +0200
+@@ -275,10 +275,6 @@
+ dnl Check for the SDL library (for software playback)
+ dnl (defines SDL_CFLAGS and SDL_LIBS)
+ dnl ********************************************************************
+-AM_PATH_SDL(1.1.3,
+- [have_sdl=true
+- AC_DEFINE(HAVE_SDL, 1, [SDL library present]) ],
+- [have_sdl=false])
+ AM_CONDITIONAL(HAVE_SDL, test x$have_sdl = xtrue)
+
+ dnl ***
--- /dev/null
+Index: mjpegtools-1.9.0rc3/lavtools/Makefile.am
+===================================================================
+--- mjpegtools-1.9.0rc3.orig/lavtools/Makefile.am 2008-04-09 00:49:47.000000000 +0200
++++ mjpegtools-1.9.0rc3/lavtools/Makefile.am 2008-04-09 00:52:21.000000000 +0200
+@@ -59,9 +59,9 @@
+ liblavplay_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBDV_CFLAGS) $(X_CFLAGS)
+ liblavplay_la_LDFLAGS = $(LAV_ALL_LIB_OPTS)
+ liblavplay_la_LIBADD = liblavfile.la $(SDL_LIBS) liblavjpeg.la
+-if HAVE_V4L
+- liblavplay_la_LIBADD += ${X_LIBS} -lX11
+-endif
++#if !X_DISPLAY_MISSING
++# liblavplay_la_LIBADD += ${X_LIBS} -lX11
++#endif
+ liblavplay_la_DEPENDENCIES = liblavfile.la liblavjpeg.la
+
+ # *********************************************************************
--- /dev/null
+mjpegtools-remove-sdl-dependency.patch -p1
+mjpegtools-fix-include.patch
+mjpegtools-v4l-doesn-mean-x11.patch
--- /dev/null
+DESCRIPTION = "Mjpeg tools is a suite of programs which support video capture, editting, playback, and compression to MPEG of MJPEG video."
+LICENSE = "GPL"
+SECTION = "optional"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/mjpeg/mjpegtools-${PV}.tar.gz \
+ file://mjpegtools-fix-include.patch;patch=1;pnum=1 \
+ file://mjpegtools-remove-sdl-dependency.patch;patch=1;pnum=1 \
+ file://mjpegtools-v4l-doesnt-mean-x11.patch;patch=1;pnum=1"
+
+inherit autotools
+
+EXTRA_OECONF = "--without-x"
--- /dev/null
+diff -Naur mrouted-3.9-beta3.orig/Makefile mrouted-3.9-beta3.neu/Makefile
+--- mrouted-3.9-beta3.orig/Makefile 1998-03-01 04:09:11.000000000 +0100
++++ mrouted-3.9-beta3.neu/Makefile 2005-04-09 12:49:39.000000000 +0200
+@@ -24,22 +24,22 @@
+ #
+ # Uncomment the following three lines if you want to use RSRR (Routing
+ # Support for Resource Reservations), currently used by RSVP.
+-#RSRRDEF= -DRSRR
+-#RSRRC= rsrr.c
+-#RSRRO= rsrr.o
++RSRRDEF= -DRSRR
++RSRRC= rsrr.c
++RSRRO= rsrr.o
+ #
+ LDFLAGS=
+-CFLAGS= -O ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} ## SunOS, OSF1, FreeBSD, IRIX
++#CFLAGS= -O ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} ## SunOS, OSF1, FreeBSD, IRIX
+ #CFLAGS= -O ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} -DSYSV -DSUNOS5 ## Solaris 2.x
+ #LIB2=-lsocket -lnsl ## Solaris 2.x
+-#CFLAGS= -O ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} -D__BSD_SOURCE -DRAW_INPUT_IS_RAW -DRAW_OUTPUT_IS_RAW -DIOCTL_OK_ON_RAW_SOCKET ## Linux
++CFLAGS= -O ${MCAST_INCLUDE} ${SNMPDEF} ${RSRRDEF} -D__BSD_SOURCE -DRAW_INPUT_IS_RAW -DRAW_OUTPUT_IS_RAW -DIOCTL_OK_ON_RAW_SOCKET ## Linux
+ LIBS= ${SNMPLIBDIR} ${SNMPLIBS} ${LIB2}
+ LINTFLAGS= ${MCAST_INCLUDE}
+ IGMP_SRCS= igmp.c inet.c kern.c
+ IGMP_OBJS= igmp.o inet.o kern.o
+-ROUTER_SRCS= config.c cfparse.y main.c route.c vif.c prune.c callout.c \
++ROUTER_SRCS= config.c y.y main.c route.c vif.c prune.c callout.c \
+ icmp.c ipip.c ${SNMPC} ${RSRRC}
+-ROUTER_OBJS= config.o cfparse.o main.o route.o vif.o prune.o callout.o \
++ROUTER_OBJS= config.o y.o main.o route.o vif.o prune.o callout.o \
+ icmp.o ipip.o ${SNMPO} ${RSRRO}
+ MAPPER_SRCS= mapper.c
+ MAPPER_OBJS= mapper.o
+@@ -58,6 +58,8 @@
+
+ all: mrouted map-mbone mrinfo ${MSTAT}
+
++install:
++
+ mrouted: ${IGMP_OBJS} ${ROUTER_OBJS} vers.o ${CMULIBS}
+ rm -f $@
+ ${CC} ${LDFLAGS} -o $@ ${CFLAGS} ${IGMP_OBJS} ${ROUTER_OBJS} vers.o ${LIBS}
+@@ -79,7 +81,7 @@
+ ${CC} ${LDFLAGS} -o $@ ${CFLAGS} ${MSTAT_OBJS} -Lsnmplib -lsnmp
+
+ clean: FRC ${SNMPCLEAN}
+- rm -f ${OBJS} core mrouted map-mbone mrinfo mstat tags TAGS
++ rm -f ${OBJS} vers.o core mrouted map-mbone mrinfo mstat tags TAGS
+
+ snmpclean: FRC
+ -(cd snmpd; make clean)
+diff -Naur mrouted-3.9-beta3.orig/defs.h mrouted-3.9-beta3.neu/defs.h
+--- mrouted-3.9-beta3.orig/defs.h 1998-03-01 03:51:42.000000000 +0100
++++ mrouted-3.9-beta3.neu/defs.h 2005-04-09 11:52:46.000000000 +0200
+@@ -45,7 +45,7 @@
+ #undef rtentry
+ #endif
+ #endif
+-#include <netinet/ip_mroute.h>
++#include "netinet/ip_mroute.h"
+ #ifdef RSRR
+ #include <sys/un.h>
+ #endif /* RSRR */
+@@ -180,7 +180,7 @@
+ #if !(defined(BSD) && (BSD >= 199103))
+ extern int errno;
+ extern int sys_nerr;
+-extern char * sys_errlist[];
++/*extern char * sys_errlist[];*/
+ #endif
+
+ #ifdef OLD_KERNEL
+diff -Naur mrouted-3.9-beta3.orig/main.c mrouted-3.9-beta3.neu/main.c
+--- mrouted-3.9-beta3.orig/main.c 1998-03-01 02:49:00.000000000 +0100
++++ mrouted-3.9-beta3.neu/main.c 2005-04-09 11:52:46.000000000 +0200
+@@ -32,6 +32,8 @@
+ #include "snmp.h"
+ #endif
+
++#include <time.h>
++
+ #ifndef lint
+ static char rcsid[] = "@(#) $Id: \
+ main.c,v 3.8.4.29 1998/03/01 01:49:00 fenner Exp $";
+diff -Naur mrouted-3.9-beta3.orig/mrouted.conf mrouted-3.9-beta3.neu/mrouted.conf
+--- mrouted-3.9-beta3.orig/mrouted.conf 1995-11-29 23:40:47.000000000 +0100
++++ mrouted-3.9-beta3.neu/mrouted.conf 2005-04-09 11:52:46.000000000 +0200
+@@ -30,7 +30,7 @@
+ #
+ #
+ # Template tunnel for mcast_install
+-tunnel 128.4.0.77 128.4.0.8 metric 1 threshold 64 rate_limit 500 # <-- REPLACE
++#tunnel 128.4.0.77 128.4.0.8 metric 1 threshold 64 rate_limit 500 # <-- REPLACE
+ # boundary LOCAL
+ #
+ # You might want to specify a boundary on your tunnel to the outside world,
+diff -Naur mrouted-3.9-beta3.orig/netinet/ip_mroute.h mrouted-3.9-beta3.neu/netinet/ip_mroute.h
+--- mrouted-3.9-beta3.orig/netinet/ip_mroute.h 1970-01-01 01:00:00.000000000 +0100
++++ mrouted-3.9-beta3.neu/netinet/ip_mroute.h 2005-04-09 13:09:11.905210112 +0200
+@@ -0,0 +1,12 @@
++#ifndef __NETINET_IP_MROUTE_H
++#define __NETINET_IP_MROUTE_H
++
++#define _LINUX_IN_H
++
++#ifndef __u32
++#define __u32 unsigned long
++#endif
++
++#include <linux/mroute.h>
++
++#endif
+diff -Naur mrouted-3.9-beta3.orig/pathnames.h mrouted-3.9-beta3.neu/pathnames.h
+--- mrouted-3.9-beta3.orig/pathnames.h 1995-11-29 23:36:57.000000000 +0100
++++ mrouted-3.9-beta3.neu/pathnames.h 2005-04-09 11:52:46.000000000 +0200
+@@ -12,14 +12,14 @@
+
+ #define _PATH_MROUTED_CONF "/etc/mrouted.conf"
+
+-#if (defined(BSD) && (BSD >= 199103))
++/*#if (defined(BSD) && (BSD >= 199103))*/
+ #define _PATH_MROUTED_PID "/var/run/mrouted.pid"
+ #define _PATH_MROUTED_GENID "/var/run/mrouted.genid"
+ #define _PATH_MROUTED_DUMP "/var/tmp/mrouted.dump"
+ #define _PATH_MROUTED_CACHE "/var/tmp/mrouted.cache"
+-#else
++/*#else
+ #define _PATH_MROUTED_PID "/etc/mrouted.pid"
+ #define _PATH_MROUTED_GENID "/etc/mrouted.genid"
+ #define _PATH_MROUTED_DUMP "/usr/tmp/mrouted.dump"
+ #define _PATH_MROUTED_CACHE "/usr/tmp/mrouted.cache"
+-#endif
++#endif*/
+diff -Naur mrouted-3.9-beta3.orig/vers.c mrouted-3.9-beta3.neu/vers.c
+--- mrouted-3.9-beta3.orig/vers.c 1970-01-01 01:00:00.000000000 +0100
++++ mrouted-3.9-beta3.neu/vers.c 2005-04-09 11:52:46.000000000 +0200
+@@ -0,0 +1 @@
++char todaysversion[]="3.9-beta3";
--- /dev/null
+DESCRIPTION = "Mrouted daemon"
+PV = "3.9-beta3"
+PR = "r0"
+PN = "mrouted"
+PACKAGES = "mrouted"
+SRC_URI = "ftp://archive.debian.org/debian-archive/pool/non-free/m/mrouted/mrouted_${PV}.orig.tar.gz \
+ file://mrouted-3.9.diff;patch=1"
+
+S = "${WORKDIR}/mrouted-${PV}.orig"
+
+inherit autotools pkgconfig
+
+bindir = "/usr/bin"
+sbindir = "/usr/sbin"
+
+do_compile_prepend() {
+ if ! test -f ${S}/y.y; then \
+ mv ${S}/cfparse.y y.y; \
+ fi;
+}
+
+do_install_append() {
+ install -d ${D}/usr/bin
+ for i in mrinfo map-mbone mrouted; do \
+ install ${S}/$i ${D}/usr/bin; \
+ done;
+}
--- /dev/null
+DESCRIPTION = "neon is an HTTP and WebDAV client library, with a C interface."
+SECTION = "libs"
+LICENSE = "LGPL"
+DEPENDS = "zlib libxml2 expat time gnutls"
+PR = "r0"
+
+SRC_URI = "http://www.webdav.org/${PN}/${P}.tar.gz"
+
+inherit autotools binconfig lib_package pkgconfig
+
+EXTRA_OECONF = "--with-ssl=gnutls --with-libxml2 --with-expat --enable-shared"
+
+do_stage () {
+ autotools_stage_all
+}
--- /dev/null
+# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
+
+# The loopback interface
+auto lo
+iface lo inet loopback
+
+# Ethernet
+auto eth0
+iface eth0 inet dhcp
+
--- /dev/null
+# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
+
+# The loopback interface
+auto lo
+iface lo inet loopback
+
+# Ethernet
+auto eth0
+iface eth0 inet dhcp
+
--- /dev/null
+# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
+
+# The loopback interface
+auto lo
+iface lo inet loopback
+
+# Ethernet
+auto eth0
+iface eth0 inet dhcp
+
--- /dev/null
+# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
+
+# The loopback interface
+auto lo
+iface lo inet loopback
+
+# Ethernet
+auto eth0
+iface eth0 inet dhcp
+
--- /dev/null
+# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
+
+# The loopback interface
+auto lo
+iface lo inet loopback
+
+# Ethernet
+auto eth0
+iface eth0 inet dhcp
+
--- /dev/null
+# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
+
+# The loopback interface
+auto lo
+iface lo inet loopback
+
+# Ethernet
+auto eth0
+iface eth0 inet dhcp
+
--- /dev/null
+--- bla/inetd/servtab.c 2000-07-22 22:20:50.000000000 +0200
++++ bla/inetd/servtab.c 2006-03-01 15:26:46.000000000 +0100
+@@ -771,7 +771,7 @@
+ return;
+ }
+
+-#define SWAP(type, a, b) {type c=(type)a; (type)a=(type)b; (type)b=(type)c;}
++#define SWAP(type, a, b) {type c=(type)a; a=(type)b; b=(type)c;}
+
+ /*
+ * sep->se_wait may be holding the pid of a daemon
--- /dev/null
+# /etc/inetd.conf: see inetd(8) for further informations.
+#
+# Internet server configuration database
+#
+# If you want to disable an entry so it isn't touched during
+# package updates just comment it out with a single '#' character.
+#
+# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
+#
+#:INTERNAL: Internal services
+#echo stream tcp nowait root internal
+#echo dgram udp wait root internal
+#chargen stream tcp nowait root internal
+#chargen dgram udp wait root internal
+#discard stream tcp nowait root internal
+#discard dgram udp wait root internal
+#daytime stream tcp nowait root internal
+#daytime dgram udp wait root internal
+#time stream tcp nowait root internal
+#time dgram udp wait root internal
+ftp stream tcp nowait root /usr/sbin/vsftpd vsftpd
+telnet stream tcp nowait root /usr/sbin/telnetd telnetd
+31335 stream tcp nowait root /usr/sbin/streamsec streamsec
+31337 stream tcp nowait root /usr/sbin/streamts streamts -ps
+31338 stream tcp nowait root /usr/sbin/streampes streampes
+31339 stream tcp nowait root /usr/sbin/streamts streamts -ts
+31340 stream tcp nowait root /usr/sbin/udpstreampes udpstreampes
+31341 stream udp nowait root /usr/sbin/udpstreampes udpstreampes
+31342 stream tcp nowait root /usr/sbin/streamts streamts -tsfile
+31343 stream tcp nowait root /usr/sbin/streampes streames
+8001 stream tcp nowait root /usr/bin/streamproxy streamproxy
--- /dev/null
+diff -auNr opkg-r180/libopkg/opkg_conf.c opkg-r180+r196/libopkg/opkg_conf.c
+--- opkg-r180/libopkg/opkg_conf.c 2009-01-17 12:29:50.000000000 +0100
++++ opkg-r180+r196/libopkg/opkg_conf.c 2009-01-17 14:03:57.000000000 +0100
+@@ -646,22 +646,20 @@
+
+ int opkg_conf_write_status_files(opkg_conf_t *conf)
+ {
+- pkg_dest_list_elt_t *iter;
+ pkg_dest_t *dest;
+ pkg_vec_t *all;
+ pkg_t *pkg;
+ register int i;
+ int err;
++ FILE * status_file = NULL;
+
+ if (conf->noaction)
+ return 0;
+- for (iter = conf->pkg_dest_list.head; iter; iter = iter->next) {
+- dest = iter->data;
+- dest->status_file = fopen(dest->status_file_tmp_name, "w");
+- if (dest->status_file == NULL) {
+- fprintf(stderr, "%s: Can't open status file: %s for writing: %s\n",
+- __FUNCTION__, dest->status_file_name, strerror(errno));
+- }
++ dest = (pkg_dest_t *)(conf->pkg_dest_list.head)->data;
++ status_file = fopen(dest->status_file_tmp_name, "w");
++ if (status_file == NULL) {
++ fprintf(stderr, "%s: Can't open status file: %s for writing: %s\n",
++ __FUNCTION__, dest->status_file_tmp_name, strerror(errno));
+ }
+
+ all = pkg_vec_alloc();
+@@ -685,29 +683,25 @@
+ __FUNCTION__, pkg->name);
+ continue;
+ }
+- if (pkg->dest->status_file) {
+- pkg_print_status(pkg, pkg->dest->status_file);
++ if (status_file) {
++ pkg_print_status(pkg, status_file);
+ }
+ }
+
+ pkg_vec_free(all);
+
+- for (iter = conf->pkg_dest_list.head; iter; iter = iter->next) {
+- dest = iter->data;
+- if (dest->status_file) {
+- err = ferror(dest->status_file);
+- fclose(dest->status_file);
+- dest->status_file = NULL;
+- if (!err) {
+- file_move(dest->status_file_tmp_name, dest->status_file_name);
+- } else {
+- fprintf(stderr, "%s: ERROR: An error has occurred writing %s, "
+- "retaining old %s\n", __FUNCTION__,
+- dest->status_file_tmp_name, dest->status_file_name);
+- }
+- }
++ if (status_file) {
++ err = ferror(status_file);
++ fclose(status_file);
++ if (!err) {
++ file_move(dest->status_file_tmp_name, dest->status_file_name);
++ } else {
++ fprintf(stderr, "%s: ERROR: An error has occurred writing %s, "
++ "retaining old %s\n", __FUNCTION__,
++ dest->status_file_tmp_name, dest->status_file_name);
++ }
++ status_file = NULL;
+ }
+-
+ return 0;
+ }
+
--- /dev/null
+
+OBJS = ./net/sourceforge/dvb/projectx/xinput/FileType.o \
+ ./net/sourceforge/dvb/projectx/xinput/XInputDirectoryIF.o \
+ ./net/sourceforge/dvb/projectx/xinput/DirType.o \
+ ./net/sourceforge/dvb/projectx/xinput/XInputFile.o \
+ ./net/sourceforge/dvb/projectx/xinput/StreamInfo.o \
+ ./net/sourceforge/dvb/projectx/xinput/XInputFileIF.o \
+ ./net/sourceforge/dvb/projectx/xinput/XInputDirectory.o \
+ ./net/sourceforge/dvb/projectx/xinput/file/XInputDirectoryImpl.o \
+ ./net/sourceforge/dvb/projectx/xinput/file/XInputFileImpl.o \
+ ./net/sourceforge/dvb/projectx/xinput/XInputStream.o \
+ ./net/sourceforge/dvb/projectx/xinput/topfield_raw/RawReadIF.o \
+ ./net/sourceforge/dvb/projectx/xinput/topfield_raw/RawInterface.o \
+ ./net/sourceforge/dvb/projectx/xinput/topfield_raw/XInputDirectoryImpl.o \
+ ./net/sourceforge/dvb/projectx/xinput/topfield_raw/RawFileInputStream.o \
+ ./net/sourceforge/dvb/projectx/xinput/topfield_raw/XInputFileImpl.o \
+ ./net/sourceforge/dvb/projectx/net/WebInterface.o \
+ ./net/sourceforge/dvb/projectx/subtitle/Bitmap.o \
+ ./net/sourceforge/dvb/projectx/subtitle/Subpicture.o \
+ ./net/sourceforge/dvb/projectx/subtitle/DVBSubpicture.o \
+ ./net/sourceforge/dvb/projectx/subtitle/CharSet.o \
+ ./net/sourceforge/dvb/projectx/subtitle/BMP.o \
+ ./net/sourceforge/dvb/projectx/subtitle/UnicodeWriter.o \
+ ./net/sourceforge/dvb/projectx/subtitle/Teletext.o \
+ ./net/sourceforge/dvb/projectx/video/WSS.o \
+ ./net/sourceforge/dvb/projectx/video/PreviewObject.o \
+ ./net/sourceforge/dvb/projectx/video/Video.o \
+ ./net/sourceforge/dvb/projectx/video/Preview.o \
+ ./net/sourceforge/dvb/projectx/video/MpvDecoder.o \
+ ./net/sourceforge/dvb/projectx/audio/AudioFormatDTS.o \
+ ./net/sourceforge/dvb/projectx/audio/AudioFormat.o \
+ ./net/sourceforge/dvb/projectx/audio/AudioFormatWAV.o \
+ ./net/sourceforge/dvb/projectx/audio/MpaConverter.o \
+ ./net/sourceforge/dvb/projectx/audio/RIFFHeader.o \
+ ./net/sourceforge/dvb/projectx/audio/AudioFormatMPA.o \
+ ./net/sourceforge/dvb/projectx/audio/AudioFormatLPCM.o \
+ ./net/sourceforge/dvb/projectx/audio/MpaDecoder.o \
+ ./net/sourceforge/dvb/projectx/audio/AudioFormatAC3.o \
+ ./net/sourceforge/dvb/projectx/io/IDDBufferedOutputStream.o \
+ ./net/sourceforge/dvb/projectx/io/BitWalker.o \
+ ./net/sourceforge/dvb/projectx/io/StandardBuffer.o \
+ ./net/sourceforge/dvb/projectx/io/RawFile.o \
+ ./net/sourceforge/dvb/projectx/common/Settings.o \
+ ./net/sourceforge/dvb/projectx/common/GuiInterfaceIF.o \
+ ./net/sourceforge/dvb/projectx/common/GuiInterface.o \
+ ./net/sourceforge/dvb/projectx/common/Start.o \
+ ./net/sourceforge/dvb/projectx/common/Resource.o \
+ ./net/sourceforge/dvb/projectx/common/Common.o \
+ ./net/sourceforge/dvb/projectx/common/Keys.o \
+ ./net/sourceforge/dvb/projectx/common/JobProcessing.o \
+ ./net/sourceforge/dvb/projectx/common/JobCollection.o \
+ ./net/sourceforge/dvb/projectx/thirdparty/TS.o \
+ ./net/sourceforge/dvb/projectx/thirdparty/D2V.o \
+ ./net/sourceforge/dvb/projectx/thirdparty/Chapters.o \
+ ./net/sourceforge/dvb/projectx/thirdparty/Ifo.o \
+ ./net/sourceforge/dvb/projectx/parser/CommonParsing.o \
+ ./net/sourceforge/dvb/projectx/parser/Gop.o \
+ ./net/sourceforge/dvb/projectx/parser/GopArray.o \
+ ./net/sourceforge/dvb/projectx/parser/HpFix.o \
+ ./net/sourceforge/dvb/projectx/parser/MainProcess.o \
+ ./net/sourceforge/dvb/projectx/parser/Scan.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamBuffer.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamConverter.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamDemultiplexer.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamParser.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamParserBase.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamParserESAudio.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamParserESSubpicture.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamParserESVideo.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamParserPESPrimary.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamParserPESSecondary.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamParserPVA.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamParserTS.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamProcess.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamProcessAudio.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamProcessBase.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamProcessLPCMAudio.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamProcessSubpicture.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamProcessTeletext.o \
+ ./net/sourceforge/dvb/projectx/parser/StripAudio.o \
+ ./net/sourceforge/dvb/projectx/parser/StripRelook.o \
+ ./net/sourceforge/dvb/projectx/parser/VBI.o
+all: projectx
+
+projectx: $(OBJS)
+ $(CROSS_COMPILE)gcj $(JFLAGS) -c -o ac3.o --resource ac3.bin ../resources/ac3.bin
+ $(CROSS_COMPILE)gcj $(JFLAGS) -c -o pjxresources_en.o --resource pjxresources_en.properties ../resources/pjxresources_en.properties
+ $(CROSS_COMPILE)gcj $(JFLAGS) $(OBJS) pjxresources_en.o ac3.o -o projectx \
+ --main=net.sourceforge.dvb.projectx.common.Start \
+ -Djava.awt.headless=true $(LDFLAGS) $(GCJ_ARCHIVES)
+ $(CROSS_COMPILE)strip --strip-all projectx
+
+projectx-static: $(OBJS)
+ $(CROSS_COMPILE)gcj $(JFLAGS) -c -o ac3.o --resource ac3.bin ../resources/ac3.bin
+ $(CROSS_COMPILE)gcj $(JFLAGS) -c -o pjxresources_en.o --resource pjxresources_en.properties ../resources/pjxresources_en.properties
+ $(CROSS_COMPILE)gcj $(JFLAGS) $(OBJS) pjxresources_en.o ac3.o -Djava.awt.headless=true --main=net.sourceforge.dvb.projectx.common.Start -save-temps
+ $(CROSS_COMPILE)gcc -o projectx $(OBJS) pjxresources_en.o ac3.o ./net.sourceforge.dvb.projectx.common.Startmain.i \
+ -shared-libgcc -Wl,-non_shared -lgcj -Wl,-call_shared -lsupc++ -Wl,--as-needed -lgcc_s -lpthread -lc -lm -ldl -Wl,--no-as-needed
+ $(CROSS_COMPILE)strip --strip-all projectx
+
+clean:
+ rm -rf $(OBJS)
+ rm *.o *.i *.s
+ rm projectx
+
+%.o: %.java
+ $(CROSS_COMPILE)gcj $(JFLAGS) -c $< -o $@
--- /dev/null
+diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/common/Common.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/common/Common.java
+--- src/net/sourceforge/dvb/projectx/common/Common.java 2006-03-30 18:04:34.000000000 +0200
++++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/common/Common.java 2008-09-08 13:02:38.000000000 +0200
+@@ -233,9 +233,13 @@
+ {
+ StatusString = Resource.getString("run.status");
+
++ System.out.println("scan");
+ scan = new Scan();
+- subpicture = new Subpicture();
++ System.out.println("subtitle");
++// subpicture = new Subpicture();
++ System.out.println("mpv decoder");
+ mpvdecoder = new MpvDecoder();
++ System.out.println("color models");
+ subpicture_colormodels = loadColorModels();
+ }
+
+@@ -285,8 +289,8 @@
+ guiInterface = new GuiInterface(showGUI);
+
+ //load gui
+- if (showGUI())
+- getGuiInterface().loadGui();
++// if (showGUI())
++// getGuiInterface().loadGui();
+ }
+
+ /**
+@@ -1363,7 +1367,7 @@
+ {
+ List list = new ArrayList();
+
+- list.add("Java Environment");
++/* list.add("Java Environment");
+ list.add(getDateAndTime());
+ list.add(Resource.getString("javaev.java.version") + "\t" + System.getProperty("java.version"));
+ list.add(Resource.getString("javaev.java.vendor") + "\t" + System.getProperty("java.vendor"));
+@@ -1390,7 +1394,7 @@
+ list.add(Resource.getString("javaev.java.user.lang") + "\t" + Resource.getChosenLanguage());
+ list.add(Resource.getString("javaev.java.user.name") + "\t" + System.getProperty("user.name"));
+ list.add(Resource.getString("javaev.java.user.home") + "\t" + System.getProperty("user.home"));
+-
++*/
+ return list.toArray();
+ }
+
+@@ -1482,7 +1486,9 @@
+
+ ProcessedPercent = percent;
+
+- getGuiInterface().updateProgressBar(ProcessedPercent);
++ System.out.println("[PROGRESS] " + ProcessedPercent);
++
++// getGuiInterface().updateProgressBar(ProcessedPercent);
+ }
+
+ /**
+@@ -1493,7 +1499,8 @@
+ public static void updateProgressBar(String str)
+ {
+ setStatusString(str);
+- getGuiInterface().updateProgressBar(str);
++ System.out.println("[PROGRESS] " + str);
++// getGuiInterface().updateProgressBar(str);
+ }
+
+ /**
+diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/common/JobCollection.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/common/JobCollection.java
+--- src/net/sourceforge/dvb/projectx/common/JobCollection.java 2006-01-29 21:36:04.000000000 +0100
++++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/common/JobCollection.java 2006-12-16 14:28:58.000000000 +0100
+@@ -730,7 +730,7 @@
+ setDebugLogStream(getOutputDirectory() + getFileSeparator() + str + "_biglog.txt");
+ }
+
+- //settings übergeben!!
++ //settings bergeben!!
+ if (Common.getSettings().getBooleanProperty(Keys.KEY_NormalLog))
+ {
+ if (Common.getSettings().getBooleanProperty(Keys.KEY_ExternPanel_createVdrIndex) && Common.getSettings().getIntProperty(Keys.KEY_ConversionMode) == 1)
+diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/common/Keys.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/common/Keys.java
+--- src/net/sourceforge/dvb/projectx/common/Keys.java 2006-03-28 19:53:12.000000000 +0200
++++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/common/Keys.java 2006-12-16 14:30:19.000000000 +0100
+@@ -287,14 +287,14 @@
+ public final static String[] KEY_AudioPanel_replaceAc3withSilence = { "AudioPanel.replaceAc3withSilence", "0" }; //cbox[10]
+ public final static String[] KEY_AudioPanel_allowSpaces = { "AudioPanel.allowSpaces", "0" }; //cbox[69]
+ public final static String[] KEY_AudioPanel_addRiffToAc3 = { "AudioPanel.addRiffToAc3", "0" }; //cbox[12]
+- public final static String[] KEY_AudioPanel_addRiffToMpgAudio = { "AudioPanel.addRiffToMpgAudioL12", "0" }; //cbox[4] + rbutton[14] riff für layer1+2
++ public final static String[] KEY_AudioPanel_addRiffToMpgAudio = { "AudioPanel.addRiffToMpgAudioL12", "0" }; //cbox[4] + rbutton[14] riff fr layer1+2
+ public final static String[] KEY_AudioPanel_pitchAudio = { "AudioPanel.pitchAudio", "0" }; //cbox[51]
+ public final static String[] KEY_AudioPanel_Normalize = { "AudioPanel.decodeMpgAudio.Normalize", "0" }; //rbutton[2] + exefield[8] normalize
+ public final static String[] KEY_AudioPanel_Downmix = { "AudioPanel.decodeMpgAudio.Downmix", "0" }; //rbutton[3]
+ public final static String[] KEY_AudioPanel_changeByteorder = { "AudioPanel.decodeMpgAudio.changeByteorder", "0" }; //rbutton[4]
+ public final static String[] KEY_AudioPanel_addRiffHeader = { "AudioPanel.decodeMpgAudio.addRiffHeader", "1" }; //rbutton[5]
+ public final static String[] KEY_AudioPanel_addAiffHeader = { "AudioPanel.decodeMpgAudio.addAiffHeader", "0" }; //rbutton[9]
+- public final static String[] KEY_AudioPanel_addRiffToMpgAudioL3 = { "AudioPanel.addRiffToMpgAudioL3", "0" }; //cbox[4] + rbutton[15] riff für layer3
++ public final static String[] KEY_AudioPanel_addRiffToMpgAudioL3 = { "AudioPanel.addRiffToMpgAudioL3", "0" }; //cbox[4] + rbutton[15] riff fr layer3
+ public final static String[] KEY_AudioPanel_PitchValue = { "AudioPanel.PitchValue", "0" };
+ public final static String[] KEY_AudioPanel_NormalizeValue = { "AudioPanel.NormalizeValue", "98" };
+ public final static String[] KEY_AudioPanel_createDDWave = { "AudioPanel.createDDWave", "0" };
+@@ -446,7 +446,7 @@
+ "PES (incl. MPEG Video)",
+ "MPEG-1 PS/SS (PES Container)",
+ "MPEG-2 PS/SS (PES Container)",
+- "PVA (PES Container of TT®)",
++ "PVA (PES Container of TT)",
+ "TS (generic PES Container)",
+ "PES (MPEG Audio first)",
+ "PES (private stream 1 first)",
+diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/common/Start.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/common/Start.java
+--- src/net/sourceforge/dvb/projectx/common/Start.java 2005-12-30 15:32:52.000000000 +0100
++++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/common/Start.java 2008-08-21 11:23:56.000000000 +0200
+@@ -207,8 +207,10 @@
+ /**
+ * environment
+ */
++ System.out.println("getJAVAEv");
+ environment = Common.getJavaEV(Common.getSettings().getInifile());
+
++ System.out.println("print");
+ for (int i = 0; i < environment.length; i++)
+ System.out.println(environment[i].toString());
+
+@@ -251,11 +253,12 @@
+ /**
+ * planned to disable ftp only, if commons-net is missing
+ */
+- if ((str = Common.checkLibraryAccess()) != null)
++/* if ((str = Common.checkLibraryAccess()) != null)
+ {
+ throw new Exception(str);
+ //System.out.println(ret);
+ }
++*/
+
+ System.out.println("Loading AC3 frames...");
+
+@@ -296,10 +299,7 @@
+
+ else
+ {
+- if (!Common.getGuiInterface().isAvailable())
+- System.out.println("Stopped! Can't start GUI, Classes not available...");
+-
+- else if (!Common.isCollectionListEmpty())
++ if (!Common.isCollectionListEmpty())
+ {
+ Common.getGuiInterface().addCollectionAtEnd();
+ Common.getGuiInterface().showActiveCollection(0);
+diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/io/IDDBufferedOutputStream.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/io/IDDBufferedOutputStream.java
+--- src/net/sourceforge/dvb/projectx/io/IDDBufferedOutputStream.java 2006-03-25 16:40:42.000000000 +0100
++++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/io/IDDBufferedOutputStream.java 2006-12-16 14:28:39.000000000 +0100
+@@ -526,7 +526,7 @@
+
+ Common.renameTo(new File(aInfoName), nname);
+
+- // 2 Minuten - 120000ms (?) für CM dazuschummeln ;-)
++ // 2 Minuten - 120000ms (?) fr CM dazuschummeln ;-)
+ nname.setLastModified(nname.lastModified() + 120000);
+ }
+
+diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/parser/MainProcess.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/parser/MainProcess.java
+--- src/net/sourceforge/dvb/projectx/parser/MainProcess.java 2006-03-25 16:16:26.000000000 +0100
++++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/parser/MainProcess.java 2007-06-15 17:56:27.000000000 +0200
+@@ -1076,7 +1076,7 @@
+
+ job_processing.setSplitSize(splitsize);
+
+- Toolkit.getDefaultToolkit().beep();
++// Toolkit.getDefaultToolkit().beep();
+ }
+
+ }
+diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/parser/StreamConverter.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/parser/StreamConverter.java
+--- src/net/sourceforge/dvb/projectx/parser/StreamConverter.java 2006-01-22 16:59:24.000000000 +0100
++++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/parser/StreamConverter.java 2006-12-16 14:29:15.000000000 +0100
+@@ -829,7 +829,7 @@
+
+ switch (newID)
+ {
+- case 0xC0: //ändern
++ case 0xC0: //ndern
+ CommonParsing.setValue(PvaPacketHeader, 2, 1, !CommonParsing.BYTEREORDERING, PVA_MAINAUDIO);
+ CommonParsing.setValue(PvaPacketHeader, 3, 1, !CommonParsing.BYTEREORDERING, 0xFF & PacketCounter[PVA_MAINAUDIO]);
+ CommonParsing.setValue(PvaPacketHeader, 5, 1, !CommonParsing.BYTEREORDERING, 0x10);
+@@ -842,10 +842,10 @@
+
+ return;
+
+- default: //ändern
++ default: //ndern
+ switch (0xF0 & newID)
+ {
+- case 0x90: //ttx ändern
++ case 0x90: //ttx ndern
+ countID = newID - 0x8C;
+ break;
+
+@@ -1070,7 +1070,7 @@
+ time[0] = time[1];
+ }
+
+- switch (0xF0 & newID) //ändern
++ switch (0xF0 & newID) //ndern
+ {
+ case 0x80:
+ countID = newID - 0x6C;
+diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/parser/StreamProcessAudio.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/parser/StreamProcessAudio.java
+--- src/net/sourceforge/dvb/projectx/parser/StreamProcessAudio.java 2006-03-28 19:45:26.000000000 +0200
++++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/parser/StreamProcessAudio.java 2006-12-16 14:31:32.000000000 +0100
+@@ -744,7 +744,7 @@
+ double ms3 = precount - vptsval[v], ms4 = time_counter - vtime[v];
+
+ if (Debug)
+- System.out.println(" ö" + ms3 + "/" + ms4 + "/" + (ms4 - ms3));
++ System.out.println(" " + ms3 + "/" + ms4 + "/" + (ms4 - ms3));
+
+ if (!awrite && (double) Math.abs((time_counter - vtime[v]) - (precount - vptsval[v])) <= (double) audio.getFrameTimeLength() / 2.0 )
+ {
+@@ -756,7 +756,7 @@
+ Common.getGuiInterface().showAVOffset("" + (int)(ms1 / 90) + "/" + (int)(ms2 / 90) + "/" + (int)((ms2 - ms1) / 90));
+
+ if (Debug)
+- System.out.println(" ä" + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
++ System.out.println(" " + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
+ }
+ }
+
+@@ -775,7 +775,7 @@
+ Common.getGuiInterface().showAVOffset("" + (int)(ms1 / 90) + "/" + (int)(ms2 / 90) + "/" + (int)((ms2 - ms1) / 90));
+
+ if (Debug)
+- System.out.println(" ü" + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
++ System.out.println(" " + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
+ }
+
+ /**
+@@ -1073,7 +1073,7 @@
+ Common.getGuiInterface().showAVOffset("" + (int)(ms1 / 90) + "/" + (int)(ms2 / 90) + "/" + (int)((ms2 - ms1) / 90));
+
+ if (Debug)
+- System.out.println(" §" + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
++ System.out.println(" " + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
+
+ awrite = true;
+ v += 2;
+@@ -1090,7 +1090,7 @@
+ Common.getGuiInterface().showAVOffset("" + (int)(ms1 / 90) + "/" + (int)(ms2 / 90) + "/" + (int)((ms2 - ms1) / 90));
+
+ if (Debug)
+- System.out.println(" ß" + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
++ System.out.println(" " + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
+
+ awrite = true;
+ v += 2;
+@@ -1508,7 +1508,7 @@
+ double ms4 = time_counter - vtime[v];
+
+ if (Debug)
+- System.out.println(" ö" + ms3 + "/" + ms4 + "/" + (ms4 - ms3));
++ System.out.println(" " + ms3 + "/" + ms4 + "/" + (ms4 - ms3));
+
+ if (!awrite && (double) Math.abs((time_counter - vtime[v]) -
+ (precount - vptsval[v]) ) <= (double)audio.getFrameTimeLength() / 2.0 )
+@@ -1522,7 +1522,7 @@
+ Common.getGuiInterface().showAVOffset("" + (int)(ms1 / 90) + "/" + (int)(ms2 / 90) + "/" + (int)((ms2 - ms1) / 90));
+
+ if (Debug)
+- System.out.println(" ä" + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
++ System.out.println(" " + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
+ }
+ }
+
+@@ -1542,7 +1542,7 @@
+ Common.getGuiInterface().showAVOffset("" + (int)(ms1 / 90) + "/" + (int)(ms2 / 90) + "/" + (int)((ms2 - ms1) / 90));
+
+ if (Debug)
+- System.out.println(" ü" + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
++ System.out.println(" " + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
+ }
+
+ /**
+@@ -1928,7 +1928,6 @@
+ int padding_counter = 1; //count padding
+ long[] ins = { (long)time_counter, 0 };
+
+- // solange nächster ptsval minus nächster framebeginn ist größer der halben framezeit, füge stille ein
+ while (ptsval[x + 1] > (timeline - (audio.getFrameTimeLength() / 2.0)))
+ {
+ if (vptsdata && w < vptsval.length)
+@@ -1959,7 +1958,7 @@
+ Common.getGuiInterface().showAVOffset("" + (int)(ms1 / 90) + "/" + (int)(ms2 / 90) + "/" + (int)((ms2 - ms1) / 90));
+
+ if (Debug)
+- System.out.println(" §" + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
++ System.out.println(" " + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
+
+ awrite = true;
+ v += 2;
+@@ -1976,7 +1975,7 @@
+ Common.getGuiInterface().showAVOffset("" + (int)(ms1 / 90) + "/" + (int)(ms2 / 90) + "/" + (int)((ms2 - ms1) / 90));
+
+ if (Debug)
+- System.out.println(" ß" + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
++ System.out.println(" " + ms1 + "/" + ms2 + "/" + (ms2 - ms1));
+
+ awrite = true;
+ v += 2;
+diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/subtitle/Teletext.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/subtitle/Teletext.java
+--- src/net/sourceforge/dvb/projectx/subtitle/Teletext.java 2006-03-26 12:03:26.000000000 +0200
++++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/subtitle/Teletext.java 2006-12-16 14:29:26.000000000 +0100
+@@ -472,7 +472,7 @@
+ for (int s = 0; s < chars.length; s++)
+ test += (char)(chars[s]>>>8);
+
+- // ab 3 paritätsfehlern zeile droppen
++ // ab 3 parittsfehlern zeile droppen
+ if (checkParity && parity_error > 0)
+ {
+ String msg = "!> line " + row + ", parity check failed at " + parity_error + " of " + len + " characters: '" + test + "'";
+@@ -652,7 +652,7 @@
+ continue loopi;
+ }
+
+- // ab 3 paritätsfehlern zeile droppen
++ // ab 3 parittsfehlern zeile droppen
+ if (checkParity && parity_error > 0)
+ {
+ String msg = "!> line " + row + ", parity check failed at " + parity_error + " of " + len + " characters: '" + text + "'";
+diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/video/MpvDecoder.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/video/MpvDecoder.java
+--- src/net/sourceforge/dvb/projectx/video/MpvDecoder.java 2006-03-03 20:35:06.000000000 +0100
++++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/video/MpvDecoder.java 2006-12-20 23:45:39.000000000 +0100
+@@ -71,8 +71,8 @@
+
+ public class MpvDecoder extends Object {
+
+- private IDCTRefNative idct;
+- private IDCTSseNative idctsse;
++// private IDCTRefNative idct;
++// private IDCTSseNative idctsse;
+
+ private int[] pixels2 = new int[512 * 288];
+ private int[] pixels = new int[250]; //full pixel data
+@@ -107,14 +107,14 @@
+ {
+ Arrays.fill(pixels2, 0xFF505050);
+
+- idct = new IDCTRefNative();
+- idctsse = new IDCTSseNative();
++// idct = new IDCTRefNative();
++// idctsse = new IDCTSseNative();
+
+- if (IDCTRefNative.isLibraryLoaded())
+- idct.init();
++// if (IDCTRefNative.isLibraryLoaded())
++// idct.init();
+
+- if (IDCTRefNative.isLibraryLoaded() || IDCTSseNative.isLibraryLoaded())
+- acceleration = true;
++// if (IDCTRefNative.isLibraryLoaded() || IDCTSseNative.isLibraryLoaded())
++// acceleration = true;
+ }
+
+ /**
+@@ -149,35 +149,35 @@
+ private int ERROR_CODE1=0;
+
+ /* extension start code IDs */
+-final int SEQUENCE_EXTENSION_ID=1;
+-final int SEQUENCE_DISPLAY_EXTENSION_ID=2;
+-final int QUANT_MATRIX_EXTENSION_ID=3;
+-final int COPYRIGHT_EXTENSION_ID=4;
+-final int PICTURE_DISPLAY_EXTENSION_ID=7;
+-final int PICTURE_CODING_EXTENSION_ID=8;
+-final int ZIG_ZAG=0;
+-final int MB_WEIGHT=32;
+-final int MB_CLASS4=64;
+-final int MC_FIELD=1;
+-final int MC_FRAME=2;
+-final int MC_16X8=2;
+-final int MC_DMV=3;
+-final int MV_FIELD=0;
+-final int MV_FRAME=1;
+-final int I_TYPE=1;
+-final int P_TYPE=2;
+-final int B_TYPE=3;
+-final int TOP_FIELD=1;
+-final int BOTTOM_FIELD=2;
+-final int FRAME_PICTURE=3;
+-final int MACROBLOCK_INTRA=1;
+-final int MACROBLOCK_PATTERN=2;
+-final int MACROBLOCK_MOTION_BACKWARD=4;
+-final int MACROBLOCK_MOTION_FORWARD=8;
+-final int MACROBLOCK_QUANT=16;
+-final int CHROMA420=1;
+-final int CHROMA422=2;
+-final int CHROMA444=3;
++final byte SEQUENCE_EXTENSION_ID=1;
++final byte SEQUENCE_DISPLAY_EXTENSION_ID=2;
++final byte QUANT_MATRIX_EXTENSION_ID=3;
++final byte COPYRIGHT_EXTENSION_ID=4;
++final byte PICTURE_DISPLAY_EXTENSION_ID=7;
++final byte PICTURE_CODING_EXTENSION_ID=8;
++final byte ZIG_ZAG=0;
++final byte MB_WEIGHT=32;
++final byte MB_CLASS4=64;
++final byte MC_FIELD=1;
++final byte MC_FRAME=2;
++final byte MC_16X8=2;
++final byte MC_DMV=3;
++final byte MV_FIELD=0;
++final byte MV_FRAME=1;
++final byte I_TYPE=1;
++final byte P_TYPE=2;
++final byte B_TYPE=3;
++final byte TOP_FIELD=1;
++final byte BOTTOM_FIELD=2;
++final byte FRAME_PICTURE=3;
++final byte MACROBLOCK_INTRA=1;
++final byte MACROBLOCK_PATTERN=2;
++final byte MACROBLOCK_MOTION_BACKWARD=4;
++final byte MACROBLOCK_MOTION_FORWARD=8;
++final byte MACROBLOCK_QUANT=16;
++final byte CHROMA420=1;
++final byte CHROMA422=2;
++final byte CHROMA444=3;
+ final int IDCT_CLIP_TABLE_OFFSET=512;
+
+ private int q_scale_type=0; //1
+@@ -742,18 +742,18 @@
+ {-1,0},
+ {MACROBLOCK_MOTION_FORWARD,3},
+ {MACROBLOCK_PATTERN,2}, {MACROBLOCK_PATTERN,2},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,1},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,1},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,1},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,1}
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),1},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),1},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),1},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),1}
+ };
+
+ /* Table B-3, macroblock_type in P-pictures, codes 000001..00011x */
+ final byte PMBtab1[][] = {
+ {-1,0},
+- {MACROBLOCK_QUANT|MACROBLOCK_INTRA,6},
+- {MACROBLOCK_QUANT|MACROBLOCK_PATTERN,5}, {MACROBLOCK_QUANT|MACROBLOCK_PATTERN,5},
+- {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,5}, {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,5},
++ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_INTRA),6},
++ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_PATTERN),5}, {(byte)(MACROBLOCK_QUANT|MACROBLOCK_PATTERN),5},
++ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),5}, {(byte)(MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),5},
+ {MACROBLOCK_INTRA,5}, {MACROBLOCK_INTRA,5}
+ };
+
+@@ -761,32 +761,32 @@
+ final byte BMBtab0[][] = {
+ {-1,0},
+ {-1,0},
+- {MACROBLOCK_MOTION_FORWARD,4},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,4},
+- {MACROBLOCK_MOTION_BACKWARD,3},
+- {MACROBLOCK_MOTION_BACKWARD,3},
+- {MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,3},
+- {MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,3},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2}
++ {(byte)(MACROBLOCK_MOTION_FORWARD),4},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),4},
++ {(byte)(MACROBLOCK_MOTION_BACKWARD),3},
++ {(byte)(MACROBLOCK_MOTION_BACKWARD),3},
++ {(byte)(MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),3},
++ {(byte)(MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),3},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD),2},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD),2},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD),2},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD),2},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),2},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),2},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),2},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),2}
+ };
+
+ /* Table B-4, macroblock_type in B-pictures, codes 000001..00011x */
+ final byte BMBtab1[][] = {
+ {-1,0},
+- {MACROBLOCK_QUANT|MACROBLOCK_INTRA,6},
+- {MACROBLOCK_QUANT|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,6},
+- {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,6},
+- {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,5},
+- {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,5},
+- {MACROBLOCK_INTRA,5},
+- {MACROBLOCK_INTRA,5}
++ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_INTRA),6},
++ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),6},
++ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),6},
++ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),5},
++ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),5},
++ {(byte)(MACROBLOCK_INTRA),5},
++ {(byte)(MACROBLOCK_INTRA),5}
+ };
+
+ final double frame_rate_Table[] = {
+@@ -2202,33 +2202,33 @@
+ //form_predictions(bx, by, macroblock_type, motion_type, PMV, motion_vertical_field_select, dmvector);
+
+
+- if (IDCTSseNative.isLibraryLoaded())
+- {
+- /* copy or add block data into picture */
+- for (comp=0; comp<block_count; comp++)
+- {
+- /* ISO/IEC 13818-2 section Annex A: inverse DCT */
+- idctsse.referenceIDCT(block[comp]);
+-
+- /* ISO/IEC 13818-2 section 7.6.8: Adding prediction and coefficient data */
+- Add_Block(comp, bx, by, dct_type, (macroblock_type[0] & MACROBLOCK_INTRA)==0);
+- }
+- }
+-
+- else if (IDCTRefNative.isLibraryLoaded())
+- {
+- /* copy or add block data into picture */
+- for (comp=0; comp<block_count; comp++)
+- {
+- /* ISO/IEC 13818-2 section Annex A: inverse DCT */
+- idct.referenceIDCT(block[comp]);
+-
+- /* ISO/IEC 13818-2 section 7.6.8: Adding prediction and coefficient data */
+- Add_Block(comp, bx, by, dct_type, (macroblock_type[0] & MACROBLOCK_INTRA)==0);
+- }
+- }
+-
+- else
++// if (IDCTSseNative.isLibraryLoaded())
++// {
++// /* copy or add block data into picture */
++// for (comp=0; comp<block_count; comp++)
++// {
++// /* ISO/IEC 13818-2 section Annex A: inverse DCT */
++// idctsse.referenceIDCT(block[comp]);
++//
++// /* ISO/IEC 13818-2 section 7.6.8: Adding prediction and coefficient data */
++// Add_Block(comp, bx, by, dct_type, (macroblock_type[0] & MACROBLOCK_INTRA)==0);
++// }
++// }
++//
++// else if (IDCTRefNative.isLibraryLoaded())
++// {
++// /* copy or add block data into picture */
++// for (comp=0; comp<block_count; comp++)
++// {
++// /* ISO/IEC 13818-2 section Annex A: inverse DCT */
++// idct.referenceIDCT(block[comp]);
++//
++// /* ISO/IEC 13818-2 section 7.6.8: Adding prediction and coefficient data */
++// Add_Block(comp, bx, by, dct_type, (macroblock_type[0] & MACROBLOCK_INTRA)==0);
++// }
++// }
++//
++// else
+ {
+ /* copy or add block data into picture */
+ for (comp=0; comp<block_count; comp++)
+diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/xinput/DirType.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/xinput/DirType.java
+--- src/net/sourceforge/dvb/projectx/xinput/DirType.java 2005-12-17 16:14:56.000000000 +0100
++++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/xinput/DirType.java 2006-12-16 14:54:49.000000000 +0100
+@@ -45,8 +45,8 @@
+ /**
+ * Directory on a ftp server
+ */
+- public final static DirType FTP_DIR = new DirType(1, "FTP_DIR",
+- net.sourceforge.dvb.projectx.xinput.ftp.XInputDirectoryImpl.class);
++// public final static DirType FTP_DIR = new DirType(1, "FTP_DIR",
++// net.sourceforge.dvb.projectx.xinput.ftp.XInputDirectoryImpl.class);
+
+ /**
+ * Directory on a harddisk of a topfield receiver in raw format
+diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/xinput/FileType.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/xinput/FileType.java
+--- src/net/sourceforge/dvb/projectx/xinput/FileType.java 2005-12-17 16:15:02.000000000 +0100
++++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/xinput/FileType.java 2006-12-16 14:54:38.000000000 +0100
+@@ -45,8 +45,8 @@
+ /**
+ * File on a ftp server
+ */
+- public final static FileType FTP = new FileType(1, "FTP",
+- net.sourceforge.dvb.projectx.xinput.ftp.XInputFileImpl.class);
++// public final static FileType FTP = new FileType(1, "FTP",
++// net.sourceforge.dvb.projectx.xinput.ftp.XInputFileImpl.class);
+
+ /**
+ * File on a harddisk of a topfield receiver in raw format
+diff -bru --strip-trailing-cr src/net/sourceforge/dvb/projectx/xinput/XInputStream.java /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/xinput/XInputStream.java
+--- src/net/sourceforge/dvb/projectx/xinput/XInputStream.java 2006-03-19 12:13:54.000000000 +0100
++++ /dream/tools/ProjectX_Source_0.90.4_hack/src/net/sourceforge/dvb/projectx/xinput/XInputStream.java 2006-12-16 14:56:11.000000000 +0100
+@@ -31,8 +31,6 @@
+ import java.io.InputStream;
+ import java.io.BufferedInputStream;
+
+-import net.sourceforge.dvb.projectx.xinput.ftp.XInputFileImpl;
+-
+ import net.sourceforge.dvb.projectx.common.Common;
+ import net.sourceforge.dvb.projectx.common.Keys;
+
+@@ -42,7 +40,6 @@
+
+ private byte[] buffer = new byte[1];
+
+- private XInputFileImpl xInputFile = null;
+
+ /**
+ * Create stream, which is able to handle special needs of the xinput package.
+@@ -55,9 +52,6 @@
+ super(Common.getSettings().getBooleanProperty(Keys.KEY_additionalInputBuffer) ? new BufferedInputStream(aIs, 1048576) : aIs);
+ }
+
+- public void setFtpFile(XInputFileImpl aIf) {
+- xInputFile = aIf;
+- }
+
+ /**
+ * Takes care, that always the full amount of data is read (if possible).
+@@ -143,12 +137,6 @@
+ public final void close() throws IOException {
+ if (debug) System.out.println("Enter XInputStream.close()");
+
+- if (xInputFile != null)
+- {
+- xInputFile.randomAccessClose();
+- xInputFile = null;
+- }
+-
+ super.close();
+ if (debug) System.out.println("Leave XInputStream.close()");
+ }
--- /dev/null
+DESCRIPTION = "Handle & repair many DVB radio & television stream types."
+MAINTAINER = "Andreas Frisch <andreas.frisch@multimedia-labs.de>"
+LICENSE="GPL-2"
+SECTION = "optional"
+DEPENDS = ""
+RDEPENDS = ""
+PN = "projectx"
+PV = "0.90.4.00"
+PR = "r5"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project-x/ProjectX_Source_eng_${PV}.zip \
+ file://headless.patch;patch=1;pnum=0 \
+ file://Makefile"
+
+PRECOMPILED_N = "${PN}-mipsel-bin-20080908-${PV}.tar.bz2"
+PRECOMPILED_URI = "http://dreamboxupdate.com/download/opendreambox/${PRECOMPILED_N}"
+
+do_unpack_extra() {
+ mv ${WORKDIR}/ProjectX_Source_0.90.4 ${S}
+ for dir in ${S}/src/net/sourceforge/dvb/projectx/*; do
+ cd $dir
+ for x in *.java; do
+ echo "Converting DOS CR/LF to UNIX CR in $x"
+ tr -d '\015' < "$x" > "tmp.$x"
+ mv "tmp.$x" "$x"
+ done
+ done
+ mv ${WORKDIR}/Makefile ${S}/src
+}
+addtask unpack_extra after do_unpack before do_patch
+
+do_compile_prepend() {
+ export CROSS_LIBDIR="${CROSS_DIR}/${TARGET_SYS}/lib"
+ export GCJ_ARCH=""
+ for gcjarchives in libgcj.a libgij.a; do
+ if test -e ${CROSS_LIBDIR}/$gcjarchives; then
+ export GCJ_ARCHIVES="${GCJ_ARCHIVES} ${CROSS_LIBDIR}/$gcjarchives"
+ fi
+ done
+ if [ "${GCJ_ARCHIVES}" = "" ]; then
+ echo gcj not found, downloading statically linked binary
+ exit
+ else
+ echo ${GCJ_ARCHIVES} found, compiling...
+ fi
+}
+
+do_compile() {
+ export JFLAGS="-g0 -O3 -march=mips32"
+ export CROSS_COMPILE=${TARGET_PREFIX}
+ cd ${S}/src
+ make projectx
+}
+
+do_download_precompiled_binary() {
+ if ! test -e ${S}/src/projectx; then
+ cd ${S}/src
+ wget ${PRECOMPILED_URI}
+ tar -xjf ${PRECOMPILED_N}
+ fi
+}
+addtask download_precompiled_binary after do_compile before do_install
+
+do_install() {
+ install -d ${D}/${bindir}
+ install -m 755 ${S}/src/projectx ${D}/${bindir}/
+}
--- /dev/null
+--- configure.in.org 2008-05-01 12:40:58.000000000 +0200
++++ configure.in 2008-05-01 12:39:39.000000000 +0200
+@@ -998,7 +999,7 @@
+ # so we need to run a program to see whether it really made the
+ # function available.
+ AC_MSG_CHECKING(whether $CC accepts -pthread)
+-AC_CACHE_VAL(ac_cv_thread,
++AC_CACHE_VAL(ac_cv_pthread,
+ [ac_save_cc="$CC"
+ CC="$CC -pthread"
+ AC_TRY_RUN([
+@@ -1023,11 +1024,11 @@
+
+ # If we have set a CC compiler flag for thread support then
+ # check if it works for CXX, too.
+-ac_cv_cxx_thread=no
+ if test ! -z "$CXX"
+ then
+ AC_MSG_CHECKING(whether $CXX also accepts flags for thread support)
+-ac_save_cxx="$CXX"
++AC_CACHE_VAL(ac_cv_cxx_thread,
++[ac_save_cxx="$CXX"
+
+ if test "$ac_cv_kpthread" = "yes"
+ then
+@@ -1056,9 +1057,11 @@
+ fi
+ rm -fr conftest*
+ fi
++CXX="$ac_save_cxx"])
+ AC_MSG_RESULT($ac_cv_cxx_thread)
++else
++ ac_cv_cxx_thread=no
+ fi
+-CXX="$ac_save_cxx"
+
+ dnl # check for ANSI or K&R ("traditional") preprocessor
+ dnl AC_MSG_CHECKING(for C preprocessor type)
--- /dev/null
+diff -Naur Python-2.5.1-org/configure Python-2.5.1/configure
+--- Python-2.5.1-org/configure 2007-03-12 11:50:51.000000000 +0100
++++ Python-2.5.1/configure 2007-07-14 01:30:20.000000000 +0200
+@@ -10569,7 +10569,7 @@
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ if test "$cross_compiling" = yes; then
+- ac_cv_sizeof_off_t=4
++ ac_cv_sizeof_off_t=8
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h. */
+diff -Naur Python-2.5.1-org/configure.in Python-2.5.1/configure.in
+--- Python-2.5.1-org/configure.in 2007-03-12 11:50:51.000000000 +0100
++++ Python-2.5.1/configure.in 2007-07-14 01:29:32.000000000 +0200
+@@ -1223,7 +1223,7 @@
+ }],
+ ac_cv_sizeof_off_t=`cat conftestval`,
+ ac_cv_sizeof_off_t=0,
+-ac_cv_sizeof_off_t=4)
++ac_cv_sizeof_off_t=8)
+ ])
+ AC_MSG_RESULT($ac_cv_sizeof_off_t)
+ AC_DEFINE_UNQUOTED(SIZEOF_OFF_T, $ac_cv_sizeof_off_t,
--- /dev/null
+--- configure.in 2008-02-13 20:17:17.000000000 +0100
++++ configure.in 2008-10-21 22:45:31.000000000 +0200
+@@ -3369,27 +3369,9 @@
+ AC_MSG_RESULT(no)
+ )
+
+-AC_MSG_CHECKING(for /dev/ptmx)
++AC_CHECK_FILE(/dev/ptmx, AC_DEFINE(HAVE_DEV_PTMX, 1, [Define if we have /dev/ptmx.]))
+
+-if test -r /dev/ptmx
+-then
+- AC_MSG_RESULT(yes)
+- AC_DEFINE(HAVE_DEV_PTMX, 1,
+- [Define if we have /dev/ptmx.])
+-else
+- AC_MSG_RESULT(no)
+-fi
+-
+-AC_MSG_CHECKING(for /dev/ptc)
+-
+-if test -r /dev/ptc
+-then
+- AC_MSG_RESULT(yes)
+- AC_DEFINE(HAVE_DEV_PTC, 1,
+- [Define if we have /dev/ptc.])
+-else
+- AC_MSG_RESULT(no)
+-fi
++AC_CHECK_FILE(/dev/ptc, AC_DEFINE(HAVE_DEV_PTC, 1, [Define if we have /dev/ptc.]))
+
+ case $MACHDEP in
+ darwin)
--- /dev/null
+--- configure.in.org 2008-05-01 12:40:58.000000000 +0200
++++ configure.in 2008-05-01 12:39:39.000000000 +0200
+@@ -796,13 +796,14 @@
+ # pointer types. GCC may generate bad code as a result of that,
+ # so use -fno-strict-aliasing if supported.
+ AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing)
+- ac_save_cc="$CC"
++ AC_CACHE_VAL(ac_cv_no_strict_aliasing_ok,
++ [ac_save_cc="$CC"
+ CC="$CC -fno-strict-aliasing"
+ AC_TRY_RUN([int main() { return 0; }],
+ ac_cv_no_strict_aliasing_ok=yes,
+ ac_cv_no_strict_aliasing_ok=no,
+ ac_cv_no_strict_aliasing_ok=no)
+- CC="$ac_save_cc"
++ CC="$ac_save_cc"])
+ AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok)
+ if test $ac_cv_no_strict_aliasing_ok = yes
+ then
--- /dev/null
+DESCRIPTION = "Google Data API"
+AUTHOR = "Jeffrey Scudder"
+HOMEPAGE = "http://code.google.com/p/gdata-python-client/"
+SECTION = "network"
+PRIORITY = "optional"
+LICENSE = "Apache 2.0"
+PROVIDES = "python-gdata"
+DEPENDS = "python-native"
+
+inherit distutils
+
+PR = "r0"
+
+SRC_URI = "http://gdata-python-client.googlecode.com/files/gdata.py-${PV}.tar.gz;md5sum=8addbac38dabdc7e00701d7b60685d4d"
+
+S = "${WORKDIR}/gdata.py-${PV}"
+
+PACKAGES = "python-gdata"
+
+do_stage() {
+ distutils_stage_all
+}
--- /dev/null
+#!/bin/sh
+killall -9 smbd
+rm -rf /var/log/log.smbd
+killall -9 nmbd
+rm -rf /var/log/log.nmbd
--- /dev/null
+#!/bin/sh
+nmbd -D
+smbd -D
--- /dev/null
+[global]
+ load printers = no
+ guest account = root
+ log file = /tmp/smb.log
+ log level = 1
+ security = share
+ server string = DreamBOX %h network services
+ workgroup = Dream
+ netbios name = %h
+ case sensitive=yes
+ preserve case=yes
+ short preserve case=yes
+ socket options = TCP_NODELAY
+ preferred master = no ;(These stop the machine being master browser, which means that it doesn't waste time there.)
+
+[Configuration]
+ comment = Configuration files - take care!
+ path = /var
+ read only = no
+ public = yes
+ guest ok = yes
+
+[Harddisk]
+ comment = The harddisk
+ path = /hdd
+ read only = no
+ public = yes
+ guest ok = yes
--- /dev/null
+require samba.inc
+inherit update-rc.d
+
+PR = "r8"
+
+SRC_URI += "file://config-lfs.patch;patch=1 \
+ file://quota.patch;patch=1;pnum=0 \
+ file://init \
+ file://smb.conf \
+ "
+
+# file://cifs.patch;patch=1 \
+
+INITSCRIPT_NAME = "samba"
+# No dependencies, goes in at level 20 (NOTE: take care with the
+# level, later levels put the shutdown later too - see the links
+# in rc6.d, the shutdown must precede network shutdown).
+INITSCRIPT_PARAMS = "defaults"
+CONFFILES_${PN} = "${sysconfdir}/samba/smb.conf"
+CONFFILES_${PN}_opendreambox = ""
+
+# The file system settings --foodir=dirfoo and overridden unconditionally
+# in the samba config by --with-foodir=dirfoo - even if the --with is not
+# specified! Fix that here. Set the privatedir to /etc/samba/private.
+EXTRA_OECONF += "\
+ SMB_BUILD_CC_NEGATIVE_ENUM_VALUES=yes \
+ samba_cv_struct_timespec=yes \
+ --with-configdir=${sysconfdir}/samba \
+ --with-privatedir=${sysconfdir}/samba/private \
+ --with-lockdir=${localstatedir}/lock \
+ --with-piddir=${localstatedir}/run \
+ --with-logfilebase=${localstatedir}/log \
+ --with-libdir=${libdir} \
+ --with-mandir=${mandir} \
+ --with-swatdir=${datadir}/swat \
+ "
+
+do_install_append() {
+ install -d "${D}/var/log/samba"
+ install -d "${D}${sysconfdir}/init.d"
+ install -c -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/samba
+ install -d "${D}${sysconfdir}/samba"
+ install -c -m 644 ${WORKDIR}/smb.conf ${D}${sysconfdir}/samba/smb.conf
+ install -d ${D}/var/spool/samba
+}
+
+PACKAGES =+ "swat"
+
+FILES_swat = "${sbindir}/swat ${datadir}/swat ${libdir}/*.msg"
+FILES_${PN} += "${libdir}/vfs/*.so ${libdir}/charset/*.so ${libdir}/*.dat \
+ ${libdir}/auth/*.so ${libdir}/security/*.so"
+FILES_${PN}-dbg += "${libdir}/vfs/.debug/*.so ${libdir}/charset/.debug/*.so \
+ ${libdir}/auth/.debug/*.so ${libdir}/security/.debug/*.so"
+
+#
+# bug fix for samba.inc:
+FILES_cifs-doc += "${mandir}/man8/mount.cifs.8"
--- /dev/null
+require samba.inc
+inherit update-rc.d
+
+PR = "r8"
+
+SRC_URI += "file://config-lfs.patch;patch=1 \
+ file://quota.patch;patch=1;pnum=0 \
+ file://config-h.patch;patch=1 \
+ file://init \
+ file://smb.conf \
+ "
+
+# file://cifs.patch;patch=1 \
+
+INITSCRIPT_NAME = "samba"
+# No dependencies, goes in at level 20 (NOTE: take care with the
+# level, later levels put the shutdown later too - see the links
+# in rc6.d, the shutdown must precede network shutdown).
+INITSCRIPT_PARAMS = "defaults"
+CONFFILES_${PN} = "${sysconfdir}/samba/smb.conf"
+CONFFILES_${PN}_opendreambox = ""
+
+# The file system settings --foodir=dirfoo and overridden unconditionally
+# in the samba config by --with-foodir=dirfoo - even if the --with is not
+# specified! Fix that here. Set the privatedir to /etc/samba/private.
+EXTRA_OECONF += "\
+ SMB_BUILD_CC_NEGATIVE_ENUM_VALUES=yes \
+ samba_cv_CC_NEGATIVE_ENUM_VALUES=yes \
+ samba_cv_struct_timespec=yes \
+ linux_getgrouplist_ok=no \
+ samba_cv_HAVE_BROKEN_GETGROUPS=no \
+ samba_cv_HAVE_FTRUNCATE_EXTEND=yes \
+ ac_cv_path_KRB5CONFIG=no \
+ samba_cv_have_setresuid=yes \
+ samba_cv_have_setresgid=yes \
+ --with-configdir=${sysconfdir}/samba \
+ --with-privatedir=${sysconfdir}/samba/private \
+ --with-lockdir=${localstatedir}/lock \
+ --with-piddir=${localstatedir}/run \
+ --with-logfilebase=${localstatedir}/log \
+ --with-libdir=${libdir} \
+ --with-mandir=${mandir} \
+ --with-swatdir=${datadir}/swat \
+ "
+
+do_configure() {
+ oe_runconf
+}
+
+do_install_append() {
+ install -d "${D}/var/log/samba"
+ install -d "${D}${sysconfdir}/init.d"
+ install -c -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/samba
+ install -d "${D}${sysconfdir}/samba"
+ install -c -m 644 ${WORKDIR}/smb.conf ${D}${sysconfdir}/samba/smb.conf
+ install -d ${D}/var/spool/samba
+}
+
+PACKAGES =+ "swat"
+
+FILES_swat = "${sbindir}/swat ${datadir}/swat ${libdir}/*.msg"
+FILES_${PN} += "${libdir}/vfs/*.so ${libdir}/charset/*.so ${libdir}/*.dat \
+ ${libdir}/auth/*.so ${libdir}/security/*.so"
+FILES_${PN}-dbg += "${libdir}/vfs/.debug/*.so ${libdir}/charset/.debug/*.so \
+ ${libdir}/auth/.debug/*.so ${libdir}/security/.debug/*.so"
+
+#
+# bug fix for samba.inc:
+FILES_cifs-doc += "${mandir}/man8/mount.cifs.8"
--- /dev/null
+DESCRIPTION = "GEMBIRD SiS-PM control utility"
+AUTHOR = "Mondrian Nuessle <nuessle@uni-mannheim.de>"
+HOMEPAGE = "http://sispmctl.sourceforge.net/"
+LICENSE = "GPLv2"
+PRIORITY = "optional"
+
+PV = "2.7"
+PR = "r0"
+
+DEPENDS = "libusb"
+
+SRC_URI = "http://downloads.sourceforge.net/${PN}/${PN}-${PV}.tar.gz"
+
+FILES_${PN} = "/usr/bin "
+
+EXTRA_OECONF = " --enable-webless"
+inherit autotools
--- /dev/null
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:2:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+S:5:respawn:/sbin/getty tts/0 115200
--- /dev/null
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:2:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+S:5:respawn:/sbin/getty tts/0 115200
--- /dev/null
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:2:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+S:5:respawn:/sbin/getty tts/0 115200
--- /dev/null
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:3:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+S:5:respawn:/sbin/getty tts/0 115200
--- /dev/null
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:3:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+S:5:respawn:/sbin/getty tts/0 115200
--- /dev/null
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:3:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+S:5:respawn:/sbin/getty ttyS0 115200
+
--- /dev/null
+#!/bin/sh
+#
+# rcS Call all S??* scripts in /etc/rcS.d in
+# numerical/alphabetical order.
+#
+# Version: @(#)/etc/init.d/rcS 2.76 19-Apr-1999 miquels@cistron.nl
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+runlevel=S
+prevlevel=N
+umask 022
+export PATH runlevel prevlevel
+
+# Make sure proc is mounted
+#
+[ -d "/proc/1" ] || mount /proc
+
+#
+# See if system needs to be setup. This is ONLY meant to
+# be used for the initial setup after a fresh installation!
+#
+if [ -x /sbin/unconfigured.sh ]
+then
+ /sbin/unconfigured.sh
+fi
+
+#
+# Source defaults.
+#
+. /etc/default/rcS
+
+#
+# Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
+#
+trap ":" INT QUIT TSTP
+
+#
+# Do we have /proc/progress and set VERBOSE to "no" ?
+# If so, calculate the number of scripts and the incremental step
+#
+
+# HACK: progress needs LCD to create /proc device entry
+modprobe lcd
+
+if [ "$VERBOSE" = no ]; then
+ if [ -e /proc/progress ]; then
+ set `ls -1 /etc/rc$runlevel.d/S* | wc`
+ numscripts=$1
+ # bootup, the first script, increments until 25.
+ # the userspace then picks up at 50
+ PROGRESS_incstep=`expr 25 / $1`
+ PROGRESS_value=25
+ PROGRESS=yes
+ export PROGRESS_value PROGRESS_incstep
+ fi
+fi
+export VERBOSE PROGRESS
+
+#
+# Call all parts in order.
+#
+for i in /etc/rcS.d/S??*
+do
+ # Ignore dangling symlinks for now.
+ [ ! -f "$i" ] && continue
+
+ # Handle verbosity
+ [ "$VERBOSE" = very ] && echo "INIT: Running $i..."
+ if [ "$PROGRESS" = yes ]; then
+ export PROGRESS_value=`expr $PROGRESS_value + $PROGRESS_incstep`
+ echo "$PROGRESS_value Starting $i..." >/proc/progress
+ fi
+
+ case "$i" in
+ *.sh)
+ # Source shell script for speed.
+ (
+ trap - INT QUIT TSTP
+ set start
+ . $i
+ )
+ ;;
+ *)
+ # No sh extension, so fork subprocess.
+ $i start
+ ;;
+ esac
+
+ #
+ # Report status based on result code
+ #
+ result=$?
+ if [ "$PROGRESS" = yes ]; then
+ if [ "$result" = 0 ]; then
+ echo "=s" >/proc/progress
+ else
+ echo "=f" >/proc/progress
+ fi
+ fi
+done
+
+#
+# For compatibility, run the files in /etc/rc.boot too.
+#
+[ -d /etc/rc.boot ] && run-parts /etc/rc.boot
+
+#
+# Finish setup if needed. The comment above about
+# /sbin/unconfigured.sh applies here as well!
+#
+if [ -x /sbin/setup.sh ]
+then
+ /sbin/setup.sh
+fi
+
--- /dev/null
+DESCRIPTION = "OpenDreambox: Base Task for the OpenDreambox Distribution"
+SECTION = "opendreambox/base"
+LICENSE = "MIT"
+PR = "r0"
+
+inherit task
+
+#
+# task-opendreambox-base
+#
+DESCRIPTION_${PN} = "OpenDreambox: Basesystem utilities"
+RDEPENDS_${PN} = "\
+ autofs \
+ base-files-doc \
+ dreambox-bootlogo \
+ dreambox-compat \
+ dreambox-dccamd \
+ dreambox-feed-configs \
+ dreambox-keymaps \
+ dropbear \
+ dvbsnoop \
+ e2fsprogs-e2fsck \
+ e2fsprogs-mke2fs \
+ fakelocale \
+ gdbserver \
+ hddtemp \
+ joe \
+ mc \
+ module-init-tools-depmod \
+ mrouted \
+ netkit-base \
+ ncurses \
+ opkg-nogpg \
+ ppp \
+ smartmontools \
+ timezones-alternative \
+ tuxbox-common \
+ vsftpd \
+ util-linux-fdisk \
+ util-linux-sfdisk \
+"
+
--- /dev/null
+DESCRIPTION = "OpenDreambox: CD-Player Task for the OpenDreambox Distribution"
+SECTION = "opendreambox/base"
+LICENSE = "MIT"
+PR = "r0"
+
+inherit task
+
+#
+# task-opendreambox-cdplayer
+#
+DESCRIPTION_${PN} = "OpenDreambox: CD-Player Support"
+DEPENDS_${PN} = "enigma2-plugins"
+RDEPENDS_${PN} = "\
+ enigma2-plugin-extensions-cdinfo \
+ kernel-module-cdfs \
+ libcddb \
+ libcdio \
+"
+
--- /dev/null
+DESCRIPTION = "OpenDreambox: DVB API v2 Task for the OpenDreambox Distribution"
+SECTION = "opendreambox/base"
+LICENSE = "MIT"
+PR = "r0"
+
+inherit task
+
+PROVIDES = "\
+ task-opendreambox-dvbapi \
+ ${PACKAGES}\
+"
+
+#
+# task-opendreambox-dvbapi2
+#
+RPROVIDES_${PN} = "task-opendreambox-dvbapi"
+DESCRIPTION_${PN} = "OpenDreambox: DVB API v2 Dependencies"
+RDEPENDS_${PN} = "\
+ dreambox-dvb-tools \
+ tuxbox-stream \
+"
+
--- /dev/null
+DESCRIPTION = "OpenDreambox: DVB API v3 Task for the OpenDreambox Distribution"
+SECTION = "opendreambox/base"
+LICENSE = "MIT"
+PR = "r0"
+
+inherit task
+
+PROVIDES = "\
+ task-opendreambox-dvbapi \
+ ${PACKAGES}\
+"
+
+#
+# task-opendreambox-dvbapi3
+#
+RPROVIDES_${PN} = "task-opendreambox-dvbapi"
+DESCRIPTION_${PN} = "OpenDreambox: DVB API v3 Dependencies"
+RDEPENDS_${PN} = "\
+ dreambox-dvb-tools-v3 \
+ dvbtraffic \
+ sctzap \
+"
+
--- /dev/null
+DESCRIPTION = "OpenDreambox: DVD-Burn Task for the OpenDreambox Distribution"
+SECTION = "opendreambox/base"
+LICENSE = "MIT"
+PR = "r0"
+
+inherit task
+
+#
+# task-opendreambox-dvdburn
+#
+DESCRIPTION_${PN} = "OpenDreambox: DVD-Burning Support"
+DEPENDS_${PN} = "enigma2"
+RDEPENDS_${PN} = "\
+ cdrkit \
+ dvd+rw-tools \
+ dvdauthor \
+ enigma2-plugin-extensions-dvdburn \
+ mjpegtools \
+ projectx \
+ python-imaging \
+"
+
--- /dev/null
+DESCRIPTION = "OpenDreambox: DVD-Player Task for the OpenDreambox Distribution"
+SECTION = "opendreambox/base"
+LICENSE = "MIT"
+PR = "r0"
+
+inherit task
+
+#
+# task-opendreambox-dvdplayer
+#
+DESCRIPTION_${PN} = "OpenDreambox: DVD-Player Support"
+DEPENDS_${PN} = "enigma2
+RDEPENDS_${PN} = "\
+ enigma2-plugin-extensions-dvdplayer \
+"
+
--- /dev/null
+DESCRIPTION = "OpenDreambox: Enigma Task for the OpenDreambox Distribution"
+SECTION = "opendreambox/base"
+LICENSE = "MIT"
+PR = "r0"
+
+inherit task
+
+PROVIDES = "\
+ task-opendreambox-ui \
+ ${PACKAGES} \
+"
+
+PACKAGES = "\
+ task-opendreambox-enigma \
+ task-opendreambox-modem \
+"
+
+#
+# task-opendreambox-enigma
+#
+RPROVIDES_task-opendreambox-enigma = "task-opendreambox-ui"
+DESCRIPTION_task-opendreambox-enigma = "OpenDreambox: Enigma Dependencies"
+DEPENDS_task-opendreambox-enigma = "\
+ tuxbox-plugins \
+ tuxbox-plugins-enigma \
+ links-dream \
+"
+RDEPENDS_task-opendreambox-enigma = "\
+ enigma \
+ ipkgpl \
+ links-dream-plugin \
+ tuxbox-plugin-master \
+ tuxbox-plugin-mines \
+ tuxbox-plugin-pacman \
+ tuxbox-plugin-snake \
+ tuxbox-plugin-soko \
+ tuxbox-plugin-sol \
+ tuxbox-plugin-solitair \
+ tuxbox-plugin-tank \
+ tuxbox-plugin-tetris \
+ tuxbox-plugin-tuxcom \
+ tuxbox-plugin-tuxmail \
+ tuxbox-plugin-tuxtxt \
+ tuxbox-plugin-vierg \
+ tuxbox-plugin-yahtzee \
+ enigma-locale-cs enigma-locale-da \
+ enigma-locale-de enigma-locale-el enigma-locale-es enigma-locale-et \
+ enigma-locale-fi enigma-locale-fr enigma-locale-hr enigma-locale-hu \
+ enigma-locale-is enigma-locale-it enigma-locale-lt enigma-locale-nl \
+ enigma-locale-no enigma-locale-pl enigma-locale-pt enigma-locale-ro \
+ enigma-locale-ru enigma-locale-sk enigma-locale-sl \
+ enigma-locale-sv enigma-locale-tr \
+ task-opendreambox-modem \
+"
+
+# disabled languages: enigma-locale-ar enigma-locale-sr enigma-locale-ur
+
+RDEPENDS_task-opendreambox-enigma_append_dm7020 = "\
+ enigma-plugin-dreamdata \
+ tuxbox-plugin-lcdcirc \
+ tuxbox-plugin-satfind \
+"
+
+RDEPENDS_task-opendreambox-enigma_append_dm600pvr = "\
+ enigma-blindscan \
+ dreambox-blindscan-utils \
+"
+
+RDEPENDS_task-opendreambox-enigma_append_dm500plus = "\
+ enigma-blindscan \
+ dreambox-blindscan-utils \
+"
+
+PACKAGE_ARCH_task-opendreambox-enigma = "${MACHINE_ARCH}"
+
+#
+# task-opendreambox-modem
+#
+DESCRIPTION_task-opendreambox-modem = "OpenDreambox: Modem Support"
+RDEPENDS_task-opendreambox-modem = "\
+ enigma-modem \
+ kernel-module-crc-ccitt \
+ kernel-module-ppp-async \
+ kernel-module-ppp-generic \
+ kernel-module-slhc \
+ update-modules \
+"
+
--- /dev/null
+DESCRIPTION = "OpenDreambox: Enigma2 Task for the OpenDreambox Distribution"
+SECTION = "opendreambox/base"
+LICENSE = "MIT"
+PR = "r1"
+
+inherit task
+
+PROVIDES = "\
+ task-opendreambox-ui \
+ ${PACKAGES} \
+"
+
+PACKAGES = "\
+ task-opendreambox-enigma2 \
+"
+
+#
+# task-opendreambox-enigma2
+#
+RPROVIDES_task-opendreambox-enigma2 = "task-opendreambox-ui"
+DESCRIPTION_task-opendreambox-enigma2 = "OpenDreambox: Enigma2 Dependencies"
+RDEPENDS_task-opendreambox-enigma2 = "\
+ aio-grab \
+ dreambox-blindscan-utils \
+ enigma2 \
+ enigma2-defaultservices \
+ enigma2-plugin-extensions-cutlisteditor \
+ enigma2-plugin-extensions-graphmultiepg \
+ enigma2-plugin-extensions-mediaplayer \
+ enigma2-plugin-extensions-mediascanner \
+ enigma2-plugin-extensions-pictureplayer \
+ enigma2-plugin-systemplugins-frontprocessorupgrade \
+ enigma2-plugin-systemplugins-hotplug \
+ enigma2-plugin-systemplugins-networkwizard \
+ enigma2-plugin-systemplugins-positionersetup \
+ enigma2-plugin-systemplugins-satfinder \
+ enigma2-plugin-systemplugins-skinselector \
+ enigma2-plugin-systemplugins-softwaremanager \
+ enigma2-plugin-systemplugins-videotune \
+ enigma2-streamproxy \
+ ethtool \
+ hotplug-ng \
+ python-crypt \
+ python-netserver \
+ python-pickle \
+ python-pkgutil \
+ python-pycrypto \
+ python-twisted \
+ python-twisted-core \
+ python-twisted-protocols \
+ python-twisted-web \
+ ${@base_contains("MACHINE_FEATURES", "wifi", "task-opendreambox-wlan", "", d)} \
+"
+
+# enigma2-plugin-extensions-webinterface is disabled until we fixed it to use twisted-web instead of twisted-web2
+
+RDEPENDS_task-opendreambox-enigma2_append_dm800 = "\
+ enigma2-plugin-systemplugins-videomode \
+"
+
+RDEPENDS_task-opendreambox-enigma2_append_dm8000 = "\
+ enigma2-plugin-systemplugins-videomode \
+ task-opendreambox-cdplayer \
+ task-opendreambox-dvdplayer \
+ task-opendreambox-dvdburn \
+"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
--- /dev/null
+DESCRIPTION = "OpenDreambox: madwifi Task for the OpenDreambox Distribution"
+SECTION = "opendreambox/base"
+LICENSE = "MIT"
+PR = "r0"
+
+inherit task
+
+#
+# task-opendreambox-madwifi
+#
+DESCRIPTION_${PN} = "OpenDreambox: madwifi Support"
+DEPENDS_${PN} = "\
+ madwifi-ng \
+"
+RDEPENDS_${PN} = "\
+ madwifi-ng-modules \
+ madwifi-ng-tools \
+"
+
--- /dev/null
+DESCRIPTION = "OpenDreambox: W-LAN Task for the OpenDreambox Distribution"
+SECTION = "opendreambox/base"
+LICENSE = "MIT"
+PR = "r0"
+
+inherit task
+
+#
+# task-opendreambox-wlan
+#
+DESCRIPTION_${PN} = "OpenDreambox: W-LAN Support"
+DEPENDS_${PN} = "enigma2-plugins"
+RDEPENDS_${PN} = "\
+ enigma2-plugin-systemplugins-wirelesslan \
+ wireless-tools \
+ wlan-rt73 \
+ wpa-supplicant \
+ zd1211b \
+"
+
+RDEPENDS_${PN}_append_dm8000 = "\
+ task-opendreambox-madwifi \
+"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
--- /dev/null
+DESCRIPTION = "Timezone data, alternative"
+SECTION = "base"
+PRIORITY = "optional"
+MAINTAINER = "Felix Domke <tmbinc@elitedvb.net>"
+LICENSE = "GPL"
+
+PV = "2008i"
+PR = "r0"
+
+SRC_URI = "file://zoneinfo.tar.bz2"
+S = "${WORKDIR}/zoneinfo"
+
+FILES_${PN} = "usr/share/zoneinfo/[A-Z]*"
+PACKAGE_ARCH = "all"
+
+do_install() {
+ install -d ${D}/usr/share/zoneinfo/
+
+ for file in ${S}/*
+ do
+ [ -f $file ] && install -m 644 "$file" ${D}/usr/share/zoneinfo/
+ done;
+ true;
+}
--- /dev/null
+--- Tremor/configure.in 2006-09-03 01:19:30.000000000 +0200
++++ Tremor-fixed/configure.in 2006-09-03 12:13:33.339593728 +0200
+@@ -106,4 +106,4 @@
+ AC_SUBST(DEBUG)
+ AC_SUBST(PROFILE)
+
+-AC_OUTPUT(Makefile)
++AC_OUTPUT([Makefile vorbisidec.pc])
+--- Tremor/vorbisidec.pc.in 1970-01-01 01:00:00.000000000 +0100
++++ Tremor-fixed/vorbisidec.pc.in 2006-09-03 12:16:38.313473424 +0200
+@@ -0,0 +1,11 @@
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++libdir=@libdir@
++includedir=@includedir@
++
++Name: vorbisidec
++Description: Vorbis audio decoder
++Requires:
++Version: 20041119
++Libs: -L${libdir} -lvorbisidec
++Cflags: -I${includedir}
--- /dev/null
+DEPENDS = "dreambox-dvbincludes"
+DESCRIPTION = "DVBsnoop by rasc@users.sourceforge.net"
+MAINTAINER = "Felix Domke <tmbinc@elitdvb.net>"
+
+SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/dvb/dvbsnoop;method=ext \
+ file://acinclude.m4"
+
+SRCDATE = "20081001"
+PR = "r0"
+PV = "0.0+cvs${SRCDATE}"
+S = "${WORKDIR}/dvbsnoop"
+
+inherit autotools pkgconfig
+
+bindir = "/usr/bin"
+sbindir = "/usr/sbin"
+
+EXTRA_OECONF = "--with-target=cdk"
--- /dev/null
+Index: libs/libtuxtxt/libtuxtxt.c
+===================================================================
+RCS file: /cvs/tuxbox/apps/tuxbox/libs/libtuxtxt/libtuxtxt.c,v
+retrieving revision 1.11
+diff -u -r1.11 libtuxtxt.c
+--- libs/libtuxtxt/libtuxtxt.c 7 Sep 2008 18:17:34 -0000 1.11
++++ libs/libtuxtxt/libtuxtxt.c 29 Jan 2009 20:22:13 -0000
+@@ -7,6 +7,15 @@
+ * Info entnommen aus videotext-0.6.19991029, *
+ * Copyright (c) 1994-96 Martin Buck <martin-2.buck@student.uni-ulm.de> *
+ * *
++ * ported 2006 to Dreambox 7025 / 32Bit framebuffer *
++ * by Seddi <seddi@i-have-a-dreambox.com> *
++ * *
++ * ported 32Bit framebuffer to Tuxtxt v1.99 (2008) *
++ * by the PLi team (Sat-Turner) *
++ * *
++ * ported to 20090130 *
++ * by the PLi team (pieterg) *
++ * *
+ ******************************************************************************/
+
+ #ifdef DEBUG
+Index: libs/libtuxtxt/tuxtxt_common.h
+===================================================================
+RCS file: /cvs/tuxbox/apps/tuxbox/libs/libtuxtxt/tuxtxt_common.h,v
+retrieving revision 1.23
+diff -u -r1.23 tuxtxt_common.h
+--- libs/libtuxtxt/tuxtxt_common.h 29 Jan 2009 20:12:59 -0000 1.23
++++ libs/libtuxtxt/tuxtxt_common.h 29 Jan 2009 20:22:13 -0000
+@@ -627,6 +627,19 @@
+ aG3_70, aG3_71, aG3_72, aG3_73, aG3_74, aG3_75, aG3_76, aG3_77, aG3_78, aG3_79, aG3_7a, aG3_7b, aG3_7c, aG3_7d, aG3_7e
+ };
+
++/* 32bit colortable */
++unsigned char bgra[][4] = {
++"\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF",
++"\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF",
++"\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF",
++"\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF",
++"\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF",
++"\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF",
++"\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF",
++"\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xFF",
++"\0\0\0\xFF", "\0\0\0\xFF", "\0\0\0\xC0", "\0\0\0\x00",
++"\0\0\0\x33" };
++
+ tuxtxt_cache_struct tuxtxt_cache;
+ static pthread_mutex_t tuxtxt_cache_lock = PTHREAD_MUTEX_INITIALIZER;
+ int tuxtxt_get_zipsize(int p,int sp)
+@@ -3294,12 +3307,16 @@
+ void tuxtxt_FillRect(unsigned char *lfb, int xres, int x, int y, int w, int h, int color)
+ {
+ if (!lfb) return;
+- unsigned char *p = lfb + x + y * xres;
++ unsigned char *p = lfb + x*4 + y * xres;
++ int xtmp;
+
+ if (w > 0)
+ for ( ; h > 0 ; h--)
+ {
+- memset(p, color, w);
++ for (xtmp=0; xtmp<w; xtmp++)
++ {
++ memcpy(p+xtmp*4,bgra[color],4);
++ }
+ p += xres;
+ }
+ }
+@@ -3311,7 +3328,7 @@
+ unsigned char fgcolor, unsigned char bgcolor)
+ {
+ if (d == NULL) return;
+- int bit, x, y;
++ int bit, x, y, ltmp;
+ unsigned char *ay = ax + 13; /* array[0..10] of y-offsets for each pixel */
+
+ for (y = 0; y < 10; y++) /* 10*2 bytes a 6 pixels per char definition */
+@@ -3335,9 +3352,21 @@
+ for (i = 0; i < h; i++)
+ {
+ if (ax[x+1] > ax[x])
+- memset(d + ax[x], f1, ax[x+1] - ax[x]);
++ {
++// memset(d + ax[x], f1, ax[x+1] - ax[x]);
++ for (ltmp=0 ; ltmp < (ax[x+1]-ax[x]); ltmp++)
++ {
++ memcpy(d + ax[x]*4 +ltmp*4,bgra[f1],4);
++ }
++ }
+ if (ax[x+7] > ax[x+6])
+- memset(d + ax[x+6], f2, ax[x+7] - ax[x+6]); /* 2nd byte 6 pixels to the right */
++ {
++// memset(d + ax[x+6], f2, ax[x+7] - ax[x+6]); /* 2nd byte 6 pixels to the right */
++ for (ltmp=0 ; ltmp < (ax[x+7]-ax[x+6]); ltmp++)
++ {
++ memcpy(d + ax[x+6]*4 +ltmp*4,bgra[f2],4);
++ }
++ }
+ d += xres;
+ }
+ d -= h * xres;
+@@ -3350,20 +3379,26 @@
+ void tuxtxt_DrawVLine(unsigned char *lfb, int xres, int x, int y, int l, int color)
+ {
+ if (!lfb) return;
+- unsigned char *p = lfb + x + y * xres;
++ unsigned char *p = lfb + 4*x + y * xres;
+
+ for ( ; l > 0 ; l--)
+ {
+- *p = color;
++ memcpy(p,bgra[color],4);
+ p += xres;
+ }
+ }
+
+ void tuxtxt_DrawHLine(unsigned char* lfb,int xres,int x, int y, int l, int color)
+ {
++ int ltmp;
+ if (!lfb) return;
+ if (l > 0)
+- memset(lfb + x + y * xres, color, l);
++ {
++ for (ltmp=0; ltmp < l; ltmp++)
++ {
++ memcpy(lfb + x*4 + ltmp*4 + y * xres, bgra[color], 4);
++ }
++ }
+ }
+
+ void tuxtxt_FillRectMosaicSeparated(unsigned char *lfb, int xres,int x, int y, int w, int h, int fgcolor, int bgcolor, int set)
+@@ -3378,48 +3413,54 @@
+
+ void tuxtxt_FillTrapez(unsigned char *lfb, int xres,int x0, int y0, int l0, int xoffset1, int h, int l1, int color)
+ {
+- unsigned char *p = lfb + x0 + y0 * xres;
++ unsigned char *p = lfb + x0*4 + y0 * xres;
+ int xoffset, l;
+ int yoffset;
++ int ltmp;
+
+ for (yoffset = 0; yoffset < h; yoffset++)
+ {
+ l = l0 + ((l1-l0) * yoffset + h/2) / h;
+ xoffset = (xoffset1 * yoffset + h/2) / h;
+ if (l > 0)
+- memset(p + xoffset, color, l);
++ {
++ for (ltmp=0; ltmp < l; ltmp++)
++ {
++ memcpy(p + xoffset*4 +ltmp*4, bgra[color], 4);
++ }
++ }
+ p += xres;
+ }
+ }
+ void tuxtxt_FlipHorz(unsigned char *lfb, int xres,int x, int y, int w, int h)
+ {
+- unsigned char buf[w];
+- unsigned char *p = lfb + x + y * xres;
++ unsigned char buf[w*4];
++ unsigned char *p = lfb + x*4 + y * xres;
+ int w1,h1;
+
+ for (h1 = 0 ; h1 < h ; h1++)
+ {
+- memcpy(buf,p,w);
++ memcpy(buf,p,w*4);
+ for (w1 = 0 ; w1 < w ; w1++)
+ {
+- *(p+w1) = buf[w-(w1+1)];
++ memcpy(p+w1*4,buf+((w-w1)*4)-4,4);
+ }
+ p += xres;
+ }
+ }
+ void tuxtxt_FlipVert(unsigned char *lfb, int xres,int x, int y, int w, int h)
+ {
+- unsigned char buf[w];
+- unsigned char *p = lfb + x + y * xres, *p1, *p2;
++ unsigned char buf[w*4];
++ unsigned char *p = lfb + x*4 + y * xres, *p1, *p2;
+ int h1;
+
+ for (h1 = 0 ; h1 < h/2 ; h1++)
+ {
+ p1 = (p+(h1*xres));
+ p2 = (p+(h-(h1+1))*xres);
+- memcpy(buf,p1,w);
+- memcpy(p1,p2,w);
+- memcpy(p2,buf,w);
++ memcpy(buf,p1,w*4);
++ memcpy(p1,p2,w*4);
++ memcpy(p2,buf,w*4);
+ }
+ }
+
+@@ -3683,7 +3724,7 @@
+ if (lfb)
+ {
+ int x,y,f,c;
+- unsigned char* p = lfb + *pPosX + PosY* xres;
++ unsigned char* p = lfb + (*pPosX)*4 + PosY* xres;
+ for (y=0; y<fontheight;y++)
+ {
+ for (f=0; f<factor; f++)
+@@ -3691,7 +3732,7 @@
+ for (x=0; x<curfontwidth*xfactor;x++)
+ {
+ c = (y&4 ? (x/3)&1 :((x+3)/3)&1);
+- *(p+x) = (c ? fgcolor : bgcolor);
++ memcpy((p+x*4),bgra[(c ? fgcolor : bgcolor)],4);
+ }
+ p += xres;
+ }
+@@ -3729,7 +3770,7 @@
+ }
+ axdrcs[12] = curfontwidth; /* adjust last x-offset according to position, FIXME: double width */
+ tuxtxt_RenderDRCS(xres,p,
+- lfb + *pPosX + PosY * xres,
++ lfb + (*pPosX)*4 + PosY * xres,
+ axdrcs, fgcolor, bgcolor);
+ }
+ else
+@@ -3996,12 +4037,12 @@
+ void tuxtxt_FillBorder(tstRenderInfo* renderinfo, int color)
+ {
+ int ys = renderinfo->var_screeninfo.yres-renderinfo->var_screeninfo.yoffset;
+- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,0 , ys ,renderinfo->StartX ,renderinfo->var_screeninfo.yres ,color);
+- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->StartX, ys ,renderinfo->displaywidth,renderinfo->StartY ,color);
+- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->StartX, ys+renderinfo->StartY+25*renderinfo->fontheight,renderinfo->displaywidth,renderinfo->var_screeninfo.yres-(renderinfo->StartY+25*renderinfo->fontheight),color);
++ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,0 , ys ,renderinfo->StartX ,renderinfo->var_screeninfo.yres ,color);
++ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->StartX, ys ,renderinfo->displaywidth,renderinfo->StartY ,color);
++ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->StartX, ys+renderinfo->StartY+25*renderinfo->fontheight,renderinfo->displaywidth,renderinfo->var_screeninfo.yres-(renderinfo->StartY+25*renderinfo->fontheight),color);
+
+ if (renderinfo->screenmode == 0 )
+- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->StartX+renderinfo->displaywidth, ys,renderinfo->var_screeninfo.xres-(renderinfo->StartX+renderinfo->displaywidth),renderinfo->var_screeninfo.yres ,color);
++ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->StartX+renderinfo->displaywidth, ys,renderinfo->fix_screeninfo.line_length-(renderinfo->StartX+renderinfo->displaywidth),renderinfo->var_screeninfo.yres ,color);
+ }
+
+
+@@ -4037,12 +4078,12 @@
+ }
+ void tuxtxt_ClearBB(tstRenderInfo* renderinfo,int color)
+ {
+- memset(renderinfo->lfb + (renderinfo->var_screeninfo.yres-renderinfo->var_screeninfo.yoffset )*renderinfo->var_screeninfo.xres, color, renderinfo->var_screeninfo.xres*renderinfo->var_screeninfo.yres);
++ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,0, renderinfo->var_screeninfo.yres - renderinfo->var_screeninfo.yoffset, renderinfo->fix_screeninfo.line_length, renderinfo->var_screeninfo.yres, color);
+ }
+
+ void tuxtxt_ClearFB(tstRenderInfo* renderinfo,int color)
+ {
+- memset(renderinfo->lfb + renderinfo->var_screeninfo.xres*renderinfo->var_screeninfo.yoffset, color, renderinfo->var_screeninfo.xres*renderinfo->var_screeninfo.yres);
++ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,0, renderinfo->var_screeninfo.yoffset, renderinfo->fix_screeninfo.line_length, renderinfo->var_screeninfo.yres, color);
+ }
+
+ int tuxtxt_GetCurFontWidth(tstRenderInfo* renderinfo)
+@@ -4079,7 +4120,7 @@
+ renderinfo->PosX += t;
+ int curfontwidth2 = tuxtxt_GetCurFontWidth(renderinfo);
+ renderinfo->PosX -= t;
+- int alphachar = tuxtxt_RenderChar(renderinfo->lfb+(yoffset+renderinfo->StartY)*renderinfo->var_screeninfo.xres, renderinfo->var_screeninfo.xres,Char, &renderinfo->PosX, renderinfo->PosY-renderinfo->StartY, Attribute, zoom, curfontwidth, curfontwidth2, renderinfo->fontheight, renderinfo->transpmode,renderinfo->axdrcs, renderinfo->ascender);
++ int alphachar = tuxtxt_RenderChar(renderinfo->lfb+(yoffset+renderinfo->StartY)*renderinfo->fix_screeninfo.line_length, renderinfo->fix_screeninfo.line_length, Char, &renderinfo->PosX, renderinfo->PosY-renderinfo->StartY, Attribute, zoom, curfontwidth, curfontwidth2, renderinfo->fontheight, renderinfo->transpmode,renderinfo->axdrcs, renderinfo->ascender);
+ if (alphachar <= 0) return;
+
+ if (zoom && Attribute->doubleh)
+@@ -4112,7 +4153,7 @@
+ #if TUXTXT_DEBUG
+ printf("TuxTxt <FT_Get_Char_Index for Char %x \"%c\" failed\n", alphachar, alphachar);
+ #endif
+- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->PosX, renderinfo->PosY + yoffset, curfontwidth, factor*renderinfo->fontheight, bgcolor);
++ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->PosX, renderinfo->PosY + yoffset, curfontwidth, factor*renderinfo->fontheight, bgcolor);
+ renderinfo->PosX += curfontwidth;
+ return;
+ }
+@@ -4127,7 +4168,7 @@
+ printf("TuxTxt <FTC_SBitCache_Lookup: 0x%x> c%x a%x g%x w%d h%d x%d y%d\n",
+ error, alphachar, Attribute, glyph, curfontwidth, renderinfo->fontheight, renderinfo->PosX, renderinfo->PosY);
+ #endif
+- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->PosX, renderinfo->PosY + yoffset, curfontwidth, renderinfo->fontheight, bgcolor);
++ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->PosX, renderinfo->PosY + yoffset, curfontwidth, renderinfo->fontheight, bgcolor);
+ renderinfo->PosX += curfontwidth;
+ return;
+ }
+@@ -4188,13 +4229,13 @@
+ Row = 0;
+ }
+ else
+- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->PosX, renderinfo->PosY + yoffset, curfontwidth, Row, bgcolor); /* fill upper margin */
++ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->PosX, renderinfo->PosY + yoffset, curfontwidth, Row, bgcolor); /* fill upper margin */
+
+ if (renderinfo->ascender - renderinfo->sbit->top + renderinfo->TTFShiftY + he > renderinfo->fontheight)
+ he = renderinfo->fontheight - renderinfo->ascender + renderinfo->sbit->top - renderinfo->TTFShiftY; /* limit char height to defined/calculated fontheight */
+ if (he < 0) he = renderinfo->fontheight;
+
+- p = renderinfo->lfb + renderinfo->PosX + (yoffset + renderinfo->PosY + Row) * renderinfo->var_screeninfo.xres; /* running pointer into framebuffer */
++ p = renderinfo->lfb + renderinfo->PosX*4 + (yoffset + renderinfo->PosY + Row) * renderinfo->fix_screeninfo.line_length; /* running pointer into framebuffer */
+ for (Row = he; Row; Row--) /* row counts up, but down may be a little faster :) */
+ {
+ int pixtodo = (renderinfo->usettf ? renderinfo->sbit->width : curfontwidth);
+@@ -4203,8 +4244,8 @@
+ for (Bit = xfactor * (renderinfo->sbit->left + renderinfo->TTFShiftX); Bit > 0; Bit--) /* fill left margin */
+ {
+ for (f = factor-1; f >= 0; f--)
+- *(p + f*renderinfo->var_screeninfo.xres) = bgcolor;
+- p++;
++ memcpy((p + f*renderinfo->fix_screeninfo.line_length),bgra[bgcolor],4);/*bgcolor*/
++ p+=4;
+ if (!renderinfo->usettf)
+ pixtodo--;
+ }
+@@ -4224,14 +4265,14 @@
+ color = bgcolor;
+
+ for (f = factor-1; f >= 0; f--)
+- *(p + f*renderinfo->var_screeninfo.xres) = color;
+- p++;
++ memcpy((p + f*renderinfo->fix_screeninfo.line_length),bgra[color],4);
++ p+=4;
+
+ if (xfactor > 1) /* double width */
+ {
+ for (f = factor-1; f >= 0; f--)
+- *(p + f*renderinfo->var_screeninfo.xres) = color;
+- p++;
++ memcpy((p + f*renderinfo->fix_screeninfo.line_length),bgra[color],4);
++ p+=4;
+ if (!renderinfo->usettf)
+ pixtodo--;
+ }
+@@ -4242,17 +4283,17 @@
+ Bit > 0; Bit--) /* fill rest of char width */
+ {
+ for (f = factor-1; f >= 0; f--)
+- *(p + f*renderinfo->var_screeninfo.xres) = bgcolor;
+- p++;
++ memcpy((p + f*renderinfo->fix_screeninfo.line_length),bgra[bgcolor],4);
++ p+=4;
+ }
+
+- p = pstart + factor*renderinfo->var_screeninfo.xres;
++ p = pstart + factor*renderinfo->fix_screeninfo.line_length;
+ }
+
+ Row = renderinfo->ascender - renderinfo->sbit->top + he + renderinfo->TTFShiftY;
+- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->PosX, renderinfo->PosY + yoffset + Row*factor, curfontwidth, (renderinfo->fontheight - Row) * factor, bgcolor); /* fill lower margin */
++ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->PosX, renderinfo->PosY + yoffset + Row*factor, curfontwidth, (renderinfo->fontheight - Row) * factor, bgcolor); /* fill lower margin */
+ if (Attribute->underline)
+- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->PosX, renderinfo->PosY + yoffset + (renderinfo->fontheight-2)* factor, curfontwidth,2*factor, fgcolor); /* underline char */
++ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->PosX, renderinfo->PosY + yoffset + (renderinfo->fontheight-2)* factor, curfontwidth,2*factor, fgcolor); /* underline char */
+
+ renderinfo->PosX += curfontwidth;
+ renderinfo->TTFShiftY = backupTTFshiftY; // restore TTFShiftY
+@@ -4300,9 +4341,8 @@
+
+ void tuxtxt_SwitchScreenMode(tstRenderInfo* renderinfo,int newscreenmode)
+ {
+-#if HAVE_DVB_API_VERSION >= 3
+ struct v4l2_format format;
+-#endif
++
+ /* reset transparency mode */
+ if (renderinfo->transpmode)
+ renderinfo->transpmode = 0;
+@@ -4370,42 +4410,53 @@
+
+ tuxtxt_setfontwidth(renderinfo,fw);
+
+-#if HAVE_DVB_API_VERSION < 3
+- avia_pig_hide(renderinfo->pig);
+- avia_pig_set_pos(renderinfo->pig, tx, ty);
+- avia_pig_set_size(renderinfo->pig, tw, th);
+- avia_pig_set_stack(renderinfo->pig, 2);
+- avia_pig_show(renderinfo->pig);
+-#else
+- int sm = 0;
+- ioctl(renderinfo->pig, VIDIOC_OVERLAY, &sm);
+- sm = 1;
+- ioctl(renderinfo->pig, VIDIOC_G_FMT, &format);
+- format.type = V4L2_BUF_TYPE_VIDEO_OVERLAY;
+- format.fmt.win.w.left = tx;
+- format.fmt.win.w.top = ty;
+- format.fmt.win.w.width = tw;
+- format.fmt.win.w.height = th;
+- ioctl(renderinfo->pig, VIDIOC_S_FMT, &format);
+- ioctl(renderinfo->pig, VIDIOC_OVERLAY, &sm);
+-#endif
+- ioctl(renderinfo->avs, AVSIOSSCARTPIN8, &fncmodes[renderinfo->screen_mode2]);
+- ioctl(renderinfo->saa, SAAIOSWSS, &saamodes[renderinfo->screen_mode2]);
++ // Video picture scale/pos for e2
++ int i;
++ for (i=0; i<4; ++i)
++ {
++ char *targets[]={"left", "top", "width", "height"};
++ char filename[128];
++ snprintf(filename, 128, "/proc/stb/vmpeg/%d/dst_%s", 0, targets[i]);
++ FILE *f = fopen(filename, "w");
++ if (!f)
++ break;
++ int val = 0;
++ switch (i)
++ {
++ case 0: val = tx; break;
++ case 1: val = ty; break;
++ case 2: val = tw; break;
++ case 3: val = th; break;
++ }
++ fprintf(f, "%08x\n", val);
++ fclose(f);
++ }
++
++ writeproc("/proc/stb/avs/0/sb", fncmodes[renderinfo->screen_mode2]);
++ writeproc("/proc/stb/denc/0/wss", saamodes[renderinfo->screen_mode2]);
+ }
+ else /* not split */
+ {
+-#if HAVE_DVB_API_VERSION < 3
+- avia_pig_hide(renderinfo->pig);
+-#else
+- ioctl(renderinfo->pig, VIDIOC_OVERLAY, &renderinfo->screenmode);
+-#endif
++ // Video picture scale/pos for e2
++ int i;
++ for (i=0; i<4; ++i)
++ {
++ char *targets[]={"left", "top", "width", "height"};
++ char filename[128];
++ snprintf(filename, 128, "/proc/stb/vmpeg/%d/dst_%s", 0, targets[i]);
++ FILE *f = fopen(filename, "w");
++ if (!f)
++ break;
++ fprintf(f, "%08x\n", 0);
++ fclose(f);
++ }
+
+ tuxtxt_setfontwidth(renderinfo,renderinfo->fontwidth_normal);
+ renderinfo->displaywidth= (renderinfo->ex-renderinfo->sx);
+ renderinfo->StartX = renderinfo->sx; //+ (ex-sx - 40*fontwidth) / 2; /* center screen */
+
+- ioctl(renderinfo->avs, AVSIOSSCARTPIN8, &fncmodes[renderinfo->screen_mode1]);
+- ioctl(renderinfo->saa, SAAIOSWSS, &saamodes[renderinfo->screen_mode1]);
++ writeproc("/proc/stb/avs/0/sb", fncmodes[renderinfo->screen_mode1]);
++ writeproc("/proc/stb/denc/0/wss", saamodes[renderinfo->screen_mode1]);
+ }
+ }
+
+@@ -4431,7 +4482,7 @@
+ if (renderinfo->boxed)
+ {
+ renderinfo->PosX = renderinfo->StartX + column*width;
+- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->PosX, renderinfo->PosY+yoffset, renderinfo->displaywidth, renderinfo->fontheight, tuxtxt_color_transp);
++ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->PosX, renderinfo->PosY+yoffset, renderinfo->displaywidth, renderinfo->fontheight, tuxtxt_color_transp);
+ return;
+ }
+
+@@ -4442,7 +4493,7 @@
+
+ if (l > 9) /* smaller font, if no space for one half space at front and end */
+ tuxtxt_setfontwidth(renderinfo,oldfontwidth * 10 / (l+1));
+- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->PosX, renderinfo->PosY+yoffset, width+(renderinfo->displaywidth%4), renderinfo->fontheight, tuxtxt_atrtable[ATR_L250 + column].bg);
++ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->PosX, renderinfo->PosY+yoffset, width+(renderinfo->displaywidth%4), renderinfo->fontheight, tuxtxt_atrtable[ATR_L250 + column].bg);
+ renderinfo->PosX += ((width) - (l*renderinfo->fontwidth+l*renderinfo->fontwidth/abx))/2; /* center */
+ for (p = tuxtxt_cache.adip[linkpage]; *p; p++)
+ tuxtxt_RenderCharBB(renderinfo,*p, &tuxtxt_atrtable[ATR_L250 + column]);
+@@ -4451,7 +4502,7 @@
+ else /* display number */
+ {
+ renderinfo->PosX = renderinfo->StartX + column*width;
+- tuxtxt_FillRect(renderinfo->lfb,renderinfo->var_screeninfo.xres,renderinfo->PosX, renderinfo->PosY+yoffset, renderinfo->displaywidth+renderinfo->sx-renderinfo->PosX, renderinfo->fontheight, tuxtxt_atrtable[ATR_L250 + column].bg);
++ tuxtxt_FillRect(renderinfo->lfb,renderinfo->fix_screeninfo.line_length,renderinfo->PosX, renderinfo->PosY+yoffset, renderinfo->displaywidth+renderinfo->sx-renderinfo->PosX, renderinfo->fontheight, tuxtxt_atrtable[ATR_L250 + column].bg);
+ if (linkpage < tuxtxt_cache.page)
+ {
+ line[6] = '<';
+@@ -4620,7 +4671,7 @@
+ void tuxtxt_CopyBB2FB(tstRenderInfo* renderinfo)
+ {
+ unsigned char *src, *dst, *topsrc;
+- int fillcolor, i, screenwidth;
++ int fillcolor, i, screenwidth, swtmp;
+
+ /* line 25 */
+ if (!renderinfo->pagecatching)
+@@ -4636,8 +4687,8 @@
+ if (ioctl(renderinfo->fb, FBIOPAN_DISPLAY, &renderinfo->var_screeninfo) == -1)
+ perror("TuxTxt <FBIOPAN_DISPLAY>");
+
+- if (renderinfo->StartX > 0 && *renderinfo->lfb != *(renderinfo->lfb + renderinfo->var_screeninfo.xres * renderinfo->var_screeninfo.yres)) /* adapt background of backbuffer if changed */
+- tuxtxt_FillBorder(renderinfo,*(renderinfo->lfb + renderinfo->var_screeninfo.xres * renderinfo->var_screeninfo.yoffset));
++ if (renderinfo->StartX > 0 && *renderinfo->lfb != *(renderinfo->lfb + renderinfo->fix_screeninfo.line_length * renderinfo->var_screeninfo.yres)) /* adapt background of backbuffer if changed */
++ tuxtxt_FillBorder(renderinfo,*(renderinfo->lfb + renderinfo->fix_screeninfo.line_length * renderinfo->var_screeninfo.yoffset));
+ // ClearBB(*(lfb + renderinfo->var_screeninfo.xres * renderinfo->var_screeninfo.yoffset));
+
+ if (renderinfo->clearbbcolor >= 0)
+@@ -4648,18 +4699,18 @@
+ return;
+ }
+
+- src = dst = topsrc = renderinfo->lfb + renderinfo->StartY*renderinfo->var_screeninfo.xres;
++ src = dst = topsrc = renderinfo->lfb + renderinfo->StartY*renderinfo->fix_screeninfo.line_length;
+
+
+ if (renderinfo->var_screeninfo.yoffset)
+- dst += renderinfo->var_screeninfo.xres * renderinfo->var_screeninfo.yres;
++ dst += renderinfo->fix_screeninfo.line_length * renderinfo->var_screeninfo.yres;
+ else
+ {
+- src += renderinfo->var_screeninfo.xres * renderinfo->var_screeninfo.yres;
+- topsrc += renderinfo->var_screeninfo.xres * renderinfo->var_screeninfo.yres;
++ src += renderinfo->fix_screeninfo.line_length * renderinfo->var_screeninfo.yres;
++ topsrc += renderinfo->fix_screeninfo.line_length * renderinfo->var_screeninfo.yres;
+ }
+ if (!renderinfo->pagecatching )
+- memcpy(dst+(24*renderinfo->fontheight)*renderinfo->var_screeninfo.xres, src + (24*renderinfo->fontheight)*renderinfo->var_screeninfo.xres, renderinfo->var_screeninfo.xres*renderinfo->fontheight); /* copy line25 in normal height */
++ memcpy(dst+(24*renderinfo->fontheight)*renderinfo->fix_screeninfo.line_length, src + (24*renderinfo->fontheight)*renderinfo->fix_screeninfo.line_length, renderinfo->fix_screeninfo.line_length*renderinfo->fontheight); /* copy line25 in normal height */
+
+ if (renderinfo->transpmode)
+ fillcolor = tuxtxt_color_transp;
+@@ -4667,94 +4718,82 @@
+ fillcolor = tuxtxt_cache.FullScrColor;
+
+ if (renderinfo->zoommode == 2)
+- src += 12*renderinfo->fontheight*renderinfo->var_screeninfo.xres;
++ src += 12*renderinfo->fontheight*renderinfo->fix_screeninfo.line_length;
+
+ if (renderinfo->screenmode == 1) /* copy topmenu in normal height (since PIG also keeps dimensions) */
+ {
+ unsigned char *topdst = dst;
+
+- screenwidth = TV43STARTX;
++ screenwidth = (TV43STARTX) * 4;
+
+ topsrc += screenwidth;
+ topdst += screenwidth;
+ for (i=0; i < 24*renderinfo->fontheight; i++)
+ {
+ memcpy(topdst, topsrc,renderinfo->ex-screenwidth);
+- topdst += renderinfo->var_screeninfo.xres;
+- topsrc += renderinfo->var_screeninfo.xres;
++ topdst += renderinfo->fix_screeninfo.line_length;
++ topsrc += renderinfo->fix_screeninfo.line_length;
+ }
+ }
+ else if (renderinfo->screenmode == 2)
+- screenwidth = TV169FULLSTARTX;
++ screenwidth = (TV169FULLSTARTX) * 4;
+ else
+- screenwidth = renderinfo->var_screeninfo.xres;
++ screenwidth = renderinfo->fix_screeninfo.line_length;
+
+ for (i = renderinfo->StartY; i>0;i--)
+ {
+- memset(dst - i*renderinfo->var_screeninfo.xres, fillcolor, screenwidth);
++ for (swtmp=0; swtmp<screenwidth/4; swtmp++)
++ {
++ memcpy(dst - i*renderinfo->fix_screeninfo.line_length+swtmp*4, bgra[fillcolor], 4);
++ }
+ }
+
+ for (i = 12*renderinfo->fontheight; i; i--)
+ {
+ memcpy(dst, src, screenwidth);
+- dst += renderinfo->var_screeninfo.xres;
++ dst += renderinfo->fix_screeninfo.line_length;
+ memcpy(dst, src, screenwidth);
+- dst += renderinfo->var_screeninfo.xres;
+- src += renderinfo->var_screeninfo.xres;
++ dst += renderinfo->fix_screeninfo.line_length;
++ src += renderinfo->fix_screeninfo.line_length;
+ }
+
+ // if (!pagecatching )
+ // memcpy(dst, lfb + (StartY+24*fontheight)*renderinfo->var_screeninfo.xres, renderinfo->var_screeninfo.xres*fontheight); /* copy line25 in normal height */
+- for (i = renderinfo->var_screeninfo.yres - renderinfo->StartY - 25*renderinfo->fontheight; i >= 0;i--)
++ dst -= renderinfo->fix_screeninfo.line_length;
++ for (i = renderinfo->var_screeninfo.yres - renderinfo->StartY - 25 * renderinfo->fontheight; i >= 0;i--)
+ {
+- memset(dst + renderinfo->var_screeninfo.xres*(renderinfo->fontheight+i), fillcolor, screenwidth);
++ for (swtmp=0; swtmp < screenwidth/4;swtmp++)
++ {
++ memcpy(dst + renderinfo->fix_screeninfo.line_length*(renderinfo->fontheight+i)+swtmp*4, bgra[fillcolor], 4);
++ }
+ }
+ }
+
+ void tuxtxt_setcolors(tstRenderInfo* renderinfo,unsigned short *pcolormap, int offset, int number)
+ {
+- struct fb_cmap colormap_0 = {0, tuxtxt_color_SIZECOLTABLE, renderinfo->rd0, renderinfo->gn0, renderinfo->bl0, renderinfo->tr0};
+- int i, changed=0;
++ int i,trans_tmp;
+ int j = offset; /* index in global color table */
+
+- unsigned short t = renderinfo->tr0[tuxtxt_color_transp2];
+- renderinfo->tr0[tuxtxt_color_transp2] = (renderinfo->trans_mode+7)<<11 | 0x7FF;
+-#ifndef HAVE_DREAMBOX_HARDWARE
+- /* "correct" semi-transparent for Nokia (GTX only allows 2(?) levels of transparency) */
+- if (tuxbox_get_vendor() == TUXBOX_VENDOR_NOKIA)
+- renderinfo->tr0[tuxtxt_color_transp2] = 0xFFFF;
+-#endif
+- if (t != renderinfo->tr0[tuxtxt_color_transp2]) changed = 1;
++ trans_tmp=25-renderinfo->trans_mode;
++
++ bgra[tuxtxt_color_transp2][3]=((trans_tmp+7)<<11 | 0x7FF)>>8;
++
+ for (i = 0; i < number; i++)
+ {
+- int r = (pcolormap[i] << 12) & 0xf000;
+- int g = (pcolormap[i] << 8) & 0xf000;
+- int b = (pcolormap[i] << 4) & 0xf000;
+-
++ int r = (pcolormap[i] << 12 & 0xF000) >> 8;
++ int g = (pcolormap[i] << 8 & 0xF000) >> 8;
++ int b = (pcolormap[i] << 4 & 0xF000) >> 8;
+
+ r = (r * (0x3f+(renderinfo->color_mode<<3))) >> 8;
+ g = (g * (0x3f+(renderinfo->color_mode<<3))) >> 8;
+ b = (b * (0x3f+(renderinfo->color_mode<<3))) >> 8;
+- if (renderinfo->rd0[j] != r)
+- {
+- renderinfo->rd0[j] = r;
+- changed = 1;
+- }
+- if (renderinfo->gn0[j] != g)
+- {
+- renderinfo->gn0[j] = g;
+- changed = 1;
+- }
+- if (renderinfo->bl0[j] != b)
+- {
+- renderinfo->bl0[j] = b;
+- changed = 1;
+- }
++
++ bgra[j][2]=r;
++ bgra[j][1]=g;
++ bgra[j][0]=b;
++
+ j++;
+ }
+- if (changed)
+- if (ioctl(renderinfo->fb, FBIOPUTCMAP, &colormap_0) == -1)
+- perror("TuxTxt <FBIOPUTCMAP>");
+ }
+
+ /******************************************************************************
+@@ -4968,11 +5007,11 @@
+
+ for (row = 0; row < DRCSROWS; row++)
+ for (col = 0; col < DRCSCOLS; col++)
+- tuxtxt_RenderDRCS(renderinfo->var_screeninfo.xres,
++ tuxtxt_RenderDRCS(renderinfo->fix_screeninfo.line_length,
+ renderinfo->page_char + 20 * (DRCSCOLS * row + col + 2),
+ renderinfo->lfb
+- + (renderinfo->StartY + renderinfo->fontheight + DRCSYSPC * row + renderinfo->var_screeninfo.yres - renderinfo->var_screeninfo.yoffset) * renderinfo->var_screeninfo.xres
+- + renderinfo->StartX + DRCSXSPC * col,
++ + (renderinfo->StartY + renderinfo->fontheight + DRCSYSPC * row + renderinfo->var_screeninfo.yres - renderinfo->var_screeninfo.yoffset) * renderinfo->fix_screeninfo.line_length
++ + (renderinfo->StartX + DRCSXSPC * col)*4,
+ ax, tuxtxt_color_white, tuxtxt_color_black);
+
+ memset(renderinfo->page_char + 40, 0xff, 24*40); /* don't render any char below row 0 */
+@@ -5062,13 +5101,13 @@
+ renderinfo->pageinfo = p;
+ renderinfo->boxed = p->boxed;
+ }
++ if (tuxtxt_cache.colortable) /* as late as possible to shorten the time the old page is displayed with the new colors */
++ tuxtxt_setcolors(renderinfo,tuxtxt_cache.colortable, 16, 16); /* set colors for CLUTs 2+3 */
+ if (renderinfo->boxed || renderinfo->transpmode)
+ // tuxtxt_cache.FullScrColor = tuxtxt_color_transp;
+ tuxtxt_FillBorder(renderinfo,tuxtxt_color_transp);
+ else
+ tuxtxt_FillBorder(renderinfo,tuxtxt_cache.FullScrColor);
+- if (tuxtxt_cache.colortable) /* as late as possible to shorten the time the old page is displayed with the new colors */
+- tuxtxt_setcolors(renderinfo,tuxtxt_cache.colortable, 16, 16); /* set colors for CLUTs 2+3 */
+ }
+ else
+ startrow = 1;
+@@ -5408,39 +5447,6 @@
+ renderinfo->page_atrb[i].doublew = 0;
+ renderinfo->page_atrb[i].IgnoreAtBlackBgSubst = 0;
+ }
+- if (setTVFormat)
+- {
+- /* open avs */
+- if ((renderinfo->avs = open(AVS, O_RDWR)) == -1)
+- {
+- perror("TuxTxt <open AVS>");
+- FTC_Manager_Done(renderinfo->manager);
+- FT_Done_FreeType(renderinfo->library);
+- return 0;
+- }
+-
+- ioctl(renderinfo->avs, AVSIOGSCARTPIN8, &renderinfo->fnc_old);
+- ioctl(renderinfo->avs, AVSIOSSCARTPIN8, &fncmodes[renderinfo->screen_mode1]);
+- /* open saa */
+- if ((renderinfo->saa = open(SAA, O_RDWR)) == -1)
+- {
+- perror("TuxTxt <open SAA>");
+- FTC_Manager_Done(renderinfo->manager);
+- FT_Done_FreeType(renderinfo->library);
+- return 0;
+- }
+-
+- ioctl(renderinfo->saa, SAAIOGWSS, &renderinfo->saa_old);
+- ioctl(renderinfo->saa, SAAIOSWSS, &saamodes[renderinfo->screen_mode1]);
+- }
+- /* open pig */
+- if ((renderinfo->pig = open(PIG, O_RDWR)) == -1)
+- {
+- perror("TuxTxt <open PIG>");
+- FTC_Manager_Done(renderinfo->manager);
+- FT_Done_FreeType(renderinfo->library);
+- return 0;
+- }
+ return 1;
+ }
+ /******************************************************************************
+Index: libs/libtuxtxt/tuxtxt_def.h
+===================================================================
+RCS file: /cvs/tuxbox/apps/tuxbox/libs/libtuxtxt/tuxtxt_def.h,v
+retrieving revision 1.13
+diff -u -r1.13 tuxtxt_def.h
+--- libs/libtuxtxt/tuxtxt_def.h 29 Jan 2009 20:12:59 -0000 1.13
++++ libs/libtuxtxt/tuxtxt_def.h 29 Jan 2009 20:22:13 -0000
+@@ -72,8 +72,10 @@
+ #define hold_mosaic 0x1E
+ #define release_mosaic 0x1F
+
+-const int fncmodes[] = {AVS_FNCOUT_EXT43, AVS_FNCOUT_EXT169};
+-const int saamodes[] = {SAA_WSS_43F, SAA_WSS_169F};
++extern unsigned char bgra[][4];
++
++const char * fncmodes[] = {"12", "6"};
++const char * saamodes[] = {"4:3_full_format", "16:9_full_format"};
+
+ typedef enum /* object type */
+ {
--- /dev/null
+AC_DEFUN(TUXBOX_APPS,[
+AM_CONFIG_HEADER(config.h)
+AM_MAINTAINER_MODE
+
+INSTALL="$INSTALL -p"
+
+AC_GNU_SOURCE
+AC_SYS_LARGEFILE
+
+AC_ARG_WITH(target,
+ [ --with-target=TARGET target for compilation [[native,cdk]]],
+ [TARGET="$withval"],[TARGET="native"])
+
+AC_ARG_WITH(targetprefix,
+ [ --with-targetprefix=PATH prefix relative to target root (only applicable in cdk mode)],
+ [targetprefix="$withval"],[targetprefix="NONE"])
+
+AC_ARG_WITH(debug,
+ [ --without-debug disable debugging code],
+ [DEBUG="$withval"],[DEBUG="yes"])
+
+if test "$DEBUG" = "yes"; then
+ DEBUG_CFLAGS="-g3 -ggdb"
+ AC_DEFINE(DEBUG,1,[Enable debug messages])
+fi
+
+AC_MSG_CHECKING(target)
+
+if test "$TARGET" = "native"; then
+ AC_MSG_RESULT(native)
+
+ if test "$CFLAGS" = "" -a "$CXXFLAGS" = ""; then
+ CFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS"
+ CXXFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS"
+ fi
+ if test "$prefix" = "NONE"; then
+ prefix=/usr/local
+ fi
+ targetprefix=$prefix
+elif test "$TARGET" = "cdk"; then
+ AC_MSG_RESULT(cdk)
+
+ if test "$CC" = "" -a "$CXX" = ""; then
+ CC=powerpc-tuxbox-linux-gnu-gcc CXX=powerpc-tuxbox-linux-gnu-g++
+ fi
+ if test "$CFLAGS" = "" -a "$CXXFLAGS" = ""; then
+ CFLAGS="-Wall -Os -mcpu=823 -pipe $DEBUG_CFLAGS"
+ CXXFLAGS="-Wall -Os -mcpu=823 -pipe $DEBUG_CFLAGS"
+ fi
+ if test "$prefix" = "NONE"; then
+ AC_MSG_ERROR(invalid prefix, you need to specify one in cdk mode)
+ fi
+ if test "$targetprefix" = "NONE"; then
+ targetprefix=""
+ fi
+ if test "$host_alias" = ""; then
+ cross_compiling=yes
+ host_alias=powerpc-tuxbox-linux-gnu
+ fi
+else
+ AC_MSG_RESULT(none)
+ AC_MSG_ERROR([invalid target $TARGET, choose on from native,cdk]);
+fi
+
+AC_CANONICAL_BUILD
+AC_CANONICAL_HOST
+
+check_path () {
+ return $(perl -e "if(\"$1\"=~m#^/usr/(local/)?bin#){print \"0\"}else{print \"1\";}")
+}
+
+])
+
+AC_DEFUN(TUXBOX_APPS_DIRECTORY_ONE,[
+AC_ARG_WITH($1,[ $6$7 [[PREFIX$4$5]]],[
+ _$2=$withval
+ if test "$TARGET" = "cdk"; then
+ $2=`eval echo "${targetprefix}$withval"`
+ else
+ $2=$withval
+ fi
+],[
+ $2="\${$3}$5"
+ if test "$TARGET" = "cdk"; then
+ _$2=`eval echo "${target$3}$5"`
+ else
+ _$2=`eval echo "${$3}$5"`
+ fi
+])
+
+dnl automake <= 1.6 don't support this
+dnl AC_SUBST($2)
+AC_DEFINE_UNQUOTED($2,"$_$2",$7)
+])
+
+AC_DEFUN(TUXBOX_APPS_DIRECTORY,[
+AC_REQUIRE([TUXBOX_APPS])
+
+if test "$TARGET" = "cdk"; then
+ datadir="\${prefix}/share"
+ sysconfdir="\${prefix}/etc"
+ localstatedir="\${prefix}/var"
+ libdir="\${prefix}/lib"
+ targetdatadir="\${targetprefix}/share"
+ targetsysconfdir="\${targetprefix}/etc"
+ targetlocalstatedir="\${targetprefix}/var"
+ targetlibdir="\${targetprefix}/lib"
+fi
+
+TUXBOX_APPS_DIRECTORY_ONE(configdir,CONFIGDIR,sysconfdir,/etc,/tuxbox,
+ [--with-configdir=PATH ],[where to find the config files])
+
+TUXBOX_APPS_DIRECTORY_ONE(datadir,DATADIR,datadir,/share,/tuxbox,
+ [--with-datadir=PATH ],[where to find data])
+
+TUXBOX_APPS_DIRECTORY_ONE(fontdir,FONTDIR,datadir,/share,/fonts,
+ [--with-fontdir=PATH ],[where to find the fonts])
+
+TUXBOX_APPS_DIRECTORY_ONE(gamesdir,GAMESDIR,localstatedir,/etc,/tuxbox/games,
+ [--with-gamesdir=PATH ],[where games data is stored])
+
+TUXBOX_APPS_DIRECTORY_ONE(libdir,LIBDIR,libdir,/lib,/tuxbox,
+ [--with-libdir=PATH ],[where to find the internal libs])
+
+TUXBOX_APPS_DIRECTORY_ONE(plugindir,PLUGINDIR,libdir,/lib,/tuxbox/plugins,
+ [--with-plugindir=PATH ],[where to find the plugins])
+
+TUXBOX_APPS_DIRECTORY_ONE(ucodedir,UCODEDIR,localstatedir,/var,/tuxbox/ucodes,
+ [--with-ucodedir=PATH ],[where to find the ucodes])
+])
+
+dnl automake <= 1.6 needs this specifications
+AC_SUBST(CONFIGDIR)
+AC_SUBST(DATADIR)
+AC_SUBST(FONTDIR)
+AC_SUBST(GAMESDIR)
+AC_SUBST(LIBDIR)
+AC_SUBST(PLUGINDIR)
+AC_SUBST(UCODEDIR)
+dnl end workaround
+
+AC_DEFUN(TUXBOX_APPS_ENDIAN,[
+AC_CHECK_HEADERS(endian.h)
+AC_C_BIGENDIAN
+])
+
+AC_DEFUN(TUXBOX_APPS_DRIVER,[
+AC_ARG_WITH(driver,
+ [ --with-driver=PATH path for driver sources [[NONE]]],
+ [DRIVER="$withval"],[DRIVER=""])
+
+if test -d "$DRIVER/include"; then
+ AC_DEFINE(HAVE_DBOX2_DRIVER,1,[Define to 1 if you have the dbox2 driver sources])
+#else
+# AC_MSG_ERROR([can't find driver sources])
+fi
+
+AC_SUBST(DRIVER)
+
+CPPFLAGS="$CPPFLAGS -I$DRIVER/include"
+])
+
+AC_DEFUN([TUXBOX_APPS_DVB],[
+AC_ARG_WITH(dvbincludes,
+ [ --with-dvbincludes=PATH path for dvb includes [[NONE]]],
+ [DVBINCLUDES="$withval"],[DVBINCLUDES=""])
+
+if test "$DVBINCLUDES"; then
+ CPPFLAGS="$CPPFLAGS -I$DVBINCLUDES"
+fi
+
+AC_CHECK_HEADERS(ost/dmx.h,[
+ DVB_API_VERSION=1
+ AC_MSG_NOTICE([found dvb version 1])
+])
+
+if test -z "$DVB_API_VERSION"; then
+AC_CHECK_HEADERS(linux/dvb/version.h,[
+ AC_LANG_PREPROC_REQUIRE()
+ AC_REQUIRE([AC_PROG_EGREP])
+ AC_LANG_CONFTEST([AC_LANG_SOURCE([[
+#include <linux/dvb/version.h>
+version DVB_API_VERSION
+ ]])])
+ DVB_API_VERSION=`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | $EGREP "^version" | sed "s,version\ ,,"`
+ rm -f conftest*
+
+ AC_MSG_NOTICE([found dvb version $DVB_API_VERSION])
+])
+fi
+
+if test "$DVB_API_VERSION"; then
+ AC_DEFINE(HAVE_DVB,1,[Define to 1 if you have the dvb includes])
+ AC_DEFINE_UNQUOTED(HAVE_DVB_API_VERSION,$DVB_API_VERSION,[Define to the version of the dvb api])
+else
+ AC_MSG_ERROR([can't find dvb headers])
+fi
+])
+
+AC_DEFUN(_TUXBOX_APPS_LIB_CONFIG,[
+AC_PATH_PROG($1_CONFIG,$2,no)
+if test "$$1_CONFIG" != "no"; then
+ if test "$TARGET" = "cdk" && check_path "$$1_CONFIG"; then
+ AC_MSG_$3([could not find a suitable version of $2]);
+ else
+ $1_CFLAGS=$($$1_CONFIG --cflags)
+ $1_LIBS=$($$1_CONFIG --libs)
+ fi
+fi
+
+AC_SUBST($1_CFLAGS)
+AC_SUBST($1_LIBS)
+])
+
+AC_DEFUN(TUXBOX_APPS_LIB_CONFIG,[
+_TUXBOX_APPS_LIB_CONFIG($1,$2,ERROR)
+if test "$$1_CONFIG" = "no"; then
+ AC_MSG_ERROR([could not find $2]);
+fi
+])
+
+AC_DEFUN(TUXBOX_APPS_LIB_CONFIG_CHECK,[
+_TUXBOX_APPS_LIB_CONFIG($1,$2,WARN)
+])
+
+AC_DEFUN(TUXBOX_APPS_PKGCONFIG,[
+AC_PATH_PROG(PKG_CONFIG, pkg-config,no)
+if test "$PKG_CONFIG" = "no" ; then
+ AC_MSG_ERROR([could not find pkg-config]);
+fi
+])
+
+AC_DEFUN(_TUXBOX_APPS_LIB_PKGCONFIG,[
+AC_REQUIRE([TUXBOX_APPS_PKGCONFIG])
+PKG_CHECK_MODULES($1,$2)
+AC_SUBST($1_CFLAGS)
+AC_SUBST($1_LIBS)
+])
+
+AC_DEFUN(TUXBOX_APPS_LIB_PKGCONFIG,[
+_TUXBOX_APPS_LIB_PKGCONFIG($1,$2)
+if test -z "$$1_CFLAGS" ; then
+ AC_MSG_ERROR([could not find package $2]);
+fi
+])
+
+AC_DEFUN(TUXBOX_APPS_LIB_PKGCONFIG_CHECK,[
+_TUXBOX_APPS_LIB_PKGCONFIG($1,$2)
+])
+
+AC_DEFUN(_TUXBOX_APPS_LIB_SYMBOL,[
+AC_CHECK_LIB($2,$3,HAVE_$1="yes",HAVE_$1="no")
+if test "$HAVE_$1" = "yes"; then
+ $1_LIBS=-l$2
+fi
+
+AC_SUBST($1_LIBS)
+])
+
+AC_DEFUN(TUXBOX_APPS_LIB_SYMBOL,[
+_TUXBOX_APPS_LIB_SYMBOL($1,$2,$3,ERROR)
+if test "$HAVE_$1" = "no"; then
+ AC_MSG_ERROR([could not find $2]);
+fi
+])
+
+AC_DEFUN(TUXBOX_APPS_LIB_CONFIG_SYMBOL,[
+_TUXBOX_APPS_LIB_SYMBOL($1,$2,$3,WARN)
+])
+
+AC_DEFUN(TUXBOX_APPS_GETTEXT,[
+AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
+ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+ :)
+AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+
+AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [$ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
+ (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+ :)
+
+AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,[$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1],:)
+
+AC_MSG_CHECKING([whether NLS is requested])
+AC_ARG_ENABLE(nls,
+ [ --disable-nls do not use Native Language Support],
+ USE_NLS=$enableval, USE_NLS=yes)
+AC_MSG_RESULT($USE_NLS)
+AC_SUBST(USE_NLS)
+
+if test "$USE_NLS" = "yes"; then
+ AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,[
+ AC_TRY_LINK([
+ #include <libintl.h>
+ #ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+ #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+ #endif
+ extern int _nl_msg_cat_cntr;
+ extern int *_nl_domain_bindings;
+ ],[
+ bindtextdomain ("", "");
+ return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings;
+ ], gt_cv_func_gnugettext_libc=yes, gt_cv_func_gnugettext_libc=no
+ )]
+ )
+
+ if test "$gt_cv_func_gnugettext_libc" = "yes"; then
+ AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.])
+ gt_use_preinstalled_gnugettext=yes
+ else
+ USE_NLS=no
+ fi
+fi
+
+if test -f "$srcdir/po/LINGUAS"; then
+ ALL_LINGUAS=$(sed -e "/^#/d" "$srcdir/po/LINGUAS")
+fi
+
+POFILES=
+GMOFILES=
+UPDATEPOFILES=
+DUMMYPOFILES=
+for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+done
+INST_LINGUAS=
+if test -n "$ALL_LINGUAS"; then
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test -n "$LINGUAS"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ INST_LINGUAS="$INST_LINGUAS $presentlang"
+ fi
+ done
+fi
+CATALOGS=
+if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ done
+fi
+AC_SUBST(POFILES)
+AC_SUBST(GMOFILES)
+AC_SUBST(UPDATEPOFILES)
+AC_SUBST(DUMMYPOFILES)
+AC_SUBST(CATALOGS)
+])
+
+dnl backward compatiblity
+AC_DEFUN([AC_GNU_SOURCE],
+[AH_VERBATIM([_GNU_SOURCE],
+[/* Enable GNU extensions on systems that have them. */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif])dnl
+AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
+AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
+AC_DEFINE([_GNU_SOURCE])
+])
+
+AC_DEFUN([AC_PROG_EGREP],
+[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
+ [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+ then ac_cv_prog_egrep='grep -E'
+ else ac_cv_prog_egrep='egrep'
+ fi])
+ EGREP=$ac_cv_prog_egrep
+ AC_SUBST([EGREP])
+])
+
--- /dev/null
+diff -u libs/libtuxtxt_orig/libtuxtxt.c libs/libtuxtxt/libtuxtxt.c
+--- libs/libtuxtxt_orig/libtuxtxt.c 2009-01-29 21:21:08.000000000 +0100
++++ libs/libtuxtxt/libtuxtxt.c 2009-01-29 21:26:49.000000000 +0100
+@@ -65,6 +65,13 @@
+ tuxtxt_cache.thread_id = 0;
+ tuxtxt_cache.dmx = -1;
+ pthread_mutex_unlock(&tuxtxt_control_lock);
++
++#if HAVE_DVB_API_VERSION < 3
++ strcpy(tuxtxt_cache.demux, "/dev/dvb/card0/demux0");
++#else
++ strcpy(tuxtxt_cache.demux, "/dev/dvb/adapter0/demux0");
++#endif
++
+ return 1;//tuxtxt_init_demuxer();
+ }
+
+@@ -82,7 +89,7 @@
+ pthread_mutex_unlock(&tuxtxt_control_lock);
+ return res;
+ }
+-int tuxtxt_start(int tpid)
++int tuxtxt_start(int tpid, int demux)
+ {
+ int ret = 1;
+ pthread_mutex_lock(&tuxtxt_control_lock);
+@@ -92,10 +99,26 @@
+ tuxtxt_clear_cache();
+ tuxtxt_cache.page = 0x100;
+ tuxtxt_cache.vtxtpid = tpid;
++ if (demux >= 0)
++ {
++#if HAVE_DVB_API_VERSION < 3
++ snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/card0/demux%d", demux);
++#else
++ snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/adapter0/demux%d", demux);
++#endif
++ }
+ ret = tuxtxt_start_thread();
+ }
+ else if (!tuxtxt_cache.thread_starting && !tuxtxt_cache.receiving)
+ {
++ if (demux >= 0)
++ {
++#if HAVE_DVB_API_VERSION < 3
++ snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/card0/demux%d", demux);
++#else
++ snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/adapter0/demux%d", demux);
++#endif
++ }
+ ret = tuxtxt_start_thread();
+ }
+ pthread_mutex_unlock(&tuxtxt_control_lock);
+diff -u libs/libtuxtxt_orig/tuxtxt_common.h libs/libtuxtxt/tuxtxt_common.h
+--- libs/libtuxtxt_orig/tuxtxt_common.h 2009-01-29 21:24:32.000000000 +0100
++++ libs/libtuxtxt/tuxtxt_common.h 2009-01-29 21:26:49.000000000 +0100
+@@ -1751,9 +1751,9 @@
+ if (tuxtxt_cache.dmx != -1)
+ {
+ ioctl(tuxtxt_cache.dmx, DMX_STOP);
+-// close(tuxtxt_cache.dmx);
+- }
+-// tuxtxt_cache.dmx = -1;
++ close(tuxtxt_cache.dmx);
++ }
++ tuxtxt_cache.dmx = -1;
+ #if 1//DEBUG
+ printf("TuxTxt stopped service %x\n", tuxtxt_cache.vtxtpid);
+ #endif
+diff -u libs/libtuxtxt_orig/tuxtxt_def.h libs/libtuxtxt/tuxtxt_def.h
+--- libs/libtuxtxt_orig/tuxtxt_def.h 2009-01-29 21:19:23.000000000 +0100
++++ libs/libtuxtxt/tuxtxt_def.h 2009-01-29 21:26:49.000000000 +0100
+@@ -19,12 +19,12 @@
+ #define pes_type pesType
+ #define dmx_sct_filter_params dmxSctFilterParams
+ #include <ost/dmx.h>
+- #define DMX "/dev/dvb/card0/demux0"
+ #else
+ #include <linux/dvb/dmx.h>
+- #define DMX "/dev/dvb/adapter0/demux0"
+ #endif
+
++#define DMX tuxtxt_cache.demux
++
+ #include <ft2build.h>
+ #include FT_FREETYPE_H
+ #include FT_CACHE_H
+@@ -325,6 +325,7 @@
+ short flofpages[0x900][FLOFSIZE];
+ unsigned char adip[0x900][13];
+ unsigned char subpagetable[0x900];
++ char demux[64];
+ int dmx;
+ int vtxtpid;
+ int cached_pages, page, subpage, pageupdate,page_receiving, current_page[9], current_subpage[9];
--- /dev/null
+diff -u libs/libtuxtxt_orig/tuxtxt_common.h libs/libtuxtxt/tuxtxt_common.h
+--- libs/libtuxtxt_orig/tuxtxt_common.h 2009-01-29 21:26:49.000000000 +0100
++++ libs/libtuxtxt/tuxtxt_common.h 2009-01-29 21:28:12.000000000 +0100
+@@ -5501,7 +5501,7 @@
+ FT_Done_FreeType(renderinfo->library);
+ renderinfo->manager = 0;
+ renderinfo->library = 0;
+- tuxtxt_ClearFB(renderinfo,renderinfo->previousbackcolor);
++ memset(renderinfo->lfb, 0, renderinfo->fix_screeninfo.smem_len);
+ /* unmap framebuffer */
+ munmap(renderinfo->lfb, renderinfo->fix_screeninfo.smem_len);
+ printf("[TTX] Rendering ended\n");
--- /dev/null
+--- ~/Makefile.am~ 2005-06-26 17:19:00.000000000 +0200
++++ ~/Makefile.am 2008-09-03 19:59:00.000000000 +0200
+@@ -1,8 +1,5 @@
+ AUTOMAKE_OPTIONS = gnu
+
+ SUBDIRS = \
+- libavs \
+- liblcddisplay \
+- liblircdclient \
+ libtuxtxt
+
--- /dev/null
+--- libs/libtuxtxt/tuxbox-tuxtxt.pc.in.orig 2008-12-13 19:40:25.000000000 +0100
++++ libs/libtuxtxt/tuxbox-tuxtxt.pc.in 2008-12-13 19:40:35.000000000 +0100
+@@ -6,5 +6,5 @@
+ Name: tuxbox-tuxtxt
+ Description: tuxtxt
+ Version: @VERSION@
+-Libs: -L${libdir} -ltuxtxt @LIBTUXBOX_LIBS@ @FREETYPE_LIBS@
++Libs: -L${libdir} -ltuxtxt @FREETYPE_LIBS@
+ Cflags: -I${includedir} -I@DRIVER@/include
--- /dev/null
+diff -u libs/libtuxtxt_orig/tuxtxt_common.h libs/libtuxtxt/tuxtxt_common.h
+--- libs/libtuxtxt_orig/tuxtxt_common.h 2009-01-29 21:19:23.000000000 +0100
++++ libs/libtuxtxt/tuxtxt_common.h 2009-01-29 21:24:32.000000000 +0100
+@@ -5375,15 +5375,6 @@
+ ymosaic[0], ymosaic[1], ymosaic[2], renderinfo->StartX, renderinfo->StartY, renderinfo->ascender);
+ #endif
+
+- /* get fixed screeninfo */
+- if (ioctl(renderinfo->fb, FBIOGET_FSCREENINFO, &renderinfo->fix_screeninfo) == -1)
+- {
+- perror("TuxTxt <FBIOGET_FSCREENINFO>");
+- FTC_Manager_Done(renderinfo->manager);
+- FT_Done_FreeType(renderinfo->library);
+- return 0;
+- }
+-
+ /* get variable screeninfo */
+ if (ioctl(renderinfo->fb, FBIOGET_VSCREENINFO, &renderinfo->var_screeninfo) == -1)
+ {
+@@ -5393,6 +5384,12 @@
+ return 0;
+ }
+
++ /* change to PAL resolution */
++ if (renderinfo->var_screeninfo.xres != 720)
++ {
++ renderinfo->var_screeninfo.xres_virtual = renderinfo->var_screeninfo.xres = 720;
++ renderinfo->var_screeninfo.yres_virtual = renderinfo->var_screeninfo.yres = 576;
++ }
+
+ /* set variable screeninfo for double buffering */
+ renderinfo->var_screeninfo.yres_virtual = 2*renderinfo->var_screeninfo.yres;
+@@ -5407,6 +5404,15 @@
+ return 0;
+ }
+
++ /* get fixed screeninfo */
++ if (ioctl(renderinfo->fb, FBIOGET_FSCREENINFO, &renderinfo->fix_screeninfo) == -1)
++ {
++ perror("TuxTxt <FBIOGET_FSCREENINFO>");
++ FTC_Manager_Done(renderinfo->manager);
++ FT_Done_FreeType(renderinfo->library);
++ return 0;
++ }
++
+ #if TUXTXT_DEBUG
+ if (ioctl(fb, FBIOGET_VSCREENINFO, &renderinfo->var_screeninfo) == -1)
+ {
--- /dev/null
+DESCRIPTION = "libdvbsi++ by obi@saftware.de"
+DEPENDS = "dreambox-dvbincludes"
+MAINTAINER = "Felix Domke <tmbinc@elitdvb.net>"
+
+SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/dvb/libdvbsi++;method=ext"
+
+SRCDATE = "20081118"
+PR = "r0"
+PV = "0.0+cvs${SRCDATE}"
+
+S = "${WORKDIR}/libdvbsi++"
+
+inherit autotools pkgconfig
+
+do_stage_append() {
+ oe_runmake install prefix=${STAGING_DIR} \
+ bindir=${STAGING_BINDIR} \
+ includedir=${STAGING_INCDIR} \
+ libdir=${STAGING_LIBDIR} \
+ datadir=${STAGING_DATADIR}
+}
+
+EXTRA_OECONF = "--with-target=native"
--- /dev/null
+DESCRIPTION = "Tuxbox common files"
+LICENSE = "GPL"
+MAINTAINER = "Felix Domke <tmbinc@elitdvb.net>"
+
+PN = "tuxbox-common"
+PR = "r1"
+SRCDATE = "20090130"
+PV = "0.0+cvs${SRCDATE}"
+
+SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox/;module=cdk/root/share/tuxbox;method=ext;tag=dreambox;date=${SRCDATE} \
+ http://dreamboxupdate.com/download/opendreambox/tuxbox-common-r11.tar.gz"
+
+FILES_${PN} = "/"
+
+S = "${WORKDIR}/tuxbox-common-r11"
+
+TRANSPONDER_LISTS = "satellites.xml terrestrial.xml"
+
+#enigma1 need a cables.xml
+TRANSPONDER_LISTS_append_dm7020 = " cables.xml"
+TRANSPONDER_LISTS_append_dm500plus = " cables.xml"
+TRANSPONDER_LISTS_append_dm600pvr = " cables.xml"
+
+do_install() {
+ install -d ${D}/etc/init.d
+ install -d ${D}/etc/rcS.d
+ install -d ${D}/etc/tuxbox/
+ install -d ${D}/usr/share/tuxbox
+ install -m 0644 ${S}/scart.conf ${D}/etc/tuxbox/scart.conf
+
+ install -m 0644 ${S}/timezone.xml ${D}/etc/tuxbox/timezone.xml
+ ln -sf /etc/tuxbox/timezone.xml ${D}/etc/
+
+ ln -sf /usr/share ${D}/share
+
+ for i in ${TRANSPONDER_LISTS}; do
+ install -m 0644 ${WORKDIR}/tuxbox/$i ${D}/etc/tuxbox/$i
+ ln -sf /etc/tuxbox/$i ${D}/etc/;
+ ln -sf /etc/tuxbox/$i ${D}/usr/share/;
+ ln -sf /etc/tuxbox/$i ${D}/usr/share/tuxbox/;
+ done;
+}
--- /dev/null
+DESCRIPTION = "tuxbox libs"
+DEPENDS = "zlib dreambox-dvbincludes"
+MAINTAINER = "Felix Domke <tmbinc@elitdvb.net>"
+SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/misc/libs;method=ext \
+ file://acinclude.m4 \
+ file://fix_includes_gcc4.patch;patch=1"
+SRCDATE = "20040928"
+
+PR = "r2"
+
+PACKAGES_DYNAMIC = "libtuxbox-*"
+
+S = "${WORKDIR}/libs"
+
+EXTRA_OECONF = "--with-target=native"
+
+inherit autotools pkgconfig
+
+ALLOW_EMPTY = 1
+FILES_${PN} = ""
+FILES_${PN}-dev = "/usr/include/tuxbox"
+
+do_configure_prepend() {
+ install ${WORKDIR}/acinclude.m4 ${S}/acinclude.m4
+}
+
+python populate_packages_prepend () {
+ tuxbox_libdir = bb.data.expand('${libdir}', d)
+
+ do_split_packages(d, tuxbox_libdir, '^libtuxbox-(.*)\.so.*$', 'libtuxbox-%s', 'libtuxbox-%s')
+# do_split_packages(d, tuxbox_libdir, '^libtuxbox-(.*)\.l?a$', 'libtuxbox-%s-dev', 'libtuxbox-%s (development files)')
+}
+
+do_stage() {
+ install -d ${STAGING_INCDIR}/tuxbox
+ install -d ${STAGING_INCDIR}/tuxbox/connection
+ install -d ${STAGING_INCDIR}/tuxbox/xmltree
+ install -d ${STAGING_INCDIR}/tuxbox/mpegtools
+ install -m 0644 ${S}/libconfigfile/configfile.h ${STAGING_INCDIR}/tuxbox/
+ install -m 0644 ${S}/libconnection/basicclient.h ${STAGING_INCDIR}/tuxbox/connection/
+ install -m 0644 ${S}/libconnection/basicmessage.h ${STAGING_INCDIR}/tuxbox/connection/
+ install -m 0644 ${S}/libconnection/basicserver.h ${STAGING_INCDIR}/tuxbox/connection/
+ install -m 0644 ${S}/libconnection/basicsocket.h ${STAGING_INCDIR}/tuxbox/connection/
+ install -m 0644 ${S}/libconnection/messagetools.h ${STAGING_INCDIR}/tuxbox/connection/
+ install -m 0644 ${S}/libcramfs/libcramfs.h ${STAGING_INCDIR}/tuxbox/
+ install -m 0644 ${S}/libeventserver/eventserver.h ${STAGING_INCDIR}/tuxbox/
+ install -m 0644 ${S}/libmd5sum/libmd5sum.h ${STAGING_INCDIR}/tuxbox/
+ install -m 0644 ${S}/libmpegtools/ctools.h ${STAGING_INCDIR}/tuxbox/mpegtools/
+ install -m 0644 ${S}/libmpegtools/remux.h ${STAGING_INCDIR}/tuxbox/mpegtools/
+ install -m 0644 ${S}/libmpegtools/ringbuffy.h ${STAGING_INCDIR}/tuxbox/mpegtools/
+ install -m 0644 ${S}/libmpegtools/transform.h ${STAGING_INCDIR}/tuxbox/mpegtools/
+ install -m 0644 ${S}/libnet/libnet.h ${STAGING_INCDIR}/tuxbox/
+ install -m 0644 ${S}/libnet/network_interfaces.h ${STAGING_INCDIR}/tuxbox/
+ install -m 0644 ${S}/libucodes/libucodes.h ${STAGING_INCDIR}/tuxbox/
+ install -m 0644 ${S}/libxmltree/hashtab.h ${STAGING_INCDIR}/tuxbox/xmltree/
+ install -m 0644 ${S}/libxmltree/xmlparse.h ${STAGING_INCDIR}/tuxbox/xmltree/
+ install -m 0644 ${S}/libxmltree/xmlrole.h ${STAGING_INCDIR}/tuxbox/xmltree/
+ install -m 0644 ${S}/libxmltree/xmltimpl.h ${STAGING_INCDIR}/tuxbox/xmltree/
+ install -m 0644 ${S}/libxmltree/xmltok.h ${STAGING_INCDIR}/tuxbox/xmltree/
+ install -m 0644 ${S}/libxmltree/xmltree.h ${STAGING_INCDIR}/tuxbox/xmltree/
+
+ for d in configfile connection cramfs eventserver md5sum mpegtools net ucodes xmltree; do
+ oe_libinstall -C lib$d -so libtuxbox-$d ${STAGING_LIBDIR}
+ done;
+}
+
--- /dev/null
+diff -auNr libs/libconnection/basicsocket.h libs-gcc4/libconnection/basicsocket.h
+--- libs/libconnection/basicsocket.h 2003-02-24 22:14:15.000000000 +0100
++++ libs-gcc4/libconnection/basicsocket.h 2008-12-15 06:56:25.000000000 +0100
+@@ -27,6 +27,7 @@
+ #define __basicsocket__
+
+ #include <sys/time.h>
++#include <cstddef>
+
+ bool send_data(int fd, const void * data, const size_t size, const timeval timeout);
+ bool receive_data(int fd, void * data, const size_t size, const timeval timeout);
--- /dev/null
+DESCRIPTION = "tuxbox libtuxbox"
+DEPENDS = "dreambox-dvbincludes"
+MAINTAINER = "Felix Domke <tmbinc@elitdvb.net>"
+SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/tuxbox/libtuxbox;method=ext \
+ file://acinclude.m4"
+
+SRCDATE = "20040928"
+PN = "libtuxbox"
+PR = "r1"
+S = "${WORKDIR}/libtuxbox"
+EXTRA_OECONF = "--with-target=native"
+
+inherit autotools pkgconfig
+
+FILES_libtuxbox_append = " /usr/lib/libtuxbox.so"
+
+FILES_${PN}-dev = "/usr/lib/libtuxbox.la /usr/lib/libtuxbox.a \
+ /usr/lib/pkgconfig/tuxbox.pc /usr/include/tuxbox.h"
+
+python populate_packages_prepend () {
+ tuxbox_libdir = bb.data.expand('${libdir}', d)
+}
+
+do_configure_prepend() {
+ install ${WORKDIR}/acinclude.m4 ${S}/acinclude.m4
+}
+
+do_stage() {
+ install -m 0644 ${S}/tuxbox.h ${STAGING_INCDIR}
+ oe_libinstall -so libtuxbox ${STAGING_LIBDIR}
+}
--- /dev/null
+DESCRIPTION = "tuxbox libtuxtxt"
+DEPENDS = "dreambox-dvbincludes libpng freetype"
+MAINTAINER = "Felix Domke <tmbinc@elitdvb.net>"
+
+SRCDATE = "20090130"
+
+PN = "libtuxtxt"
+PV = "0.0+cvs${SRCDATE}"
+PR = "r0"
+
+SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/tuxbox/libs;method=ext \
+ file://acinclude.m4 \
+ file://ignorelibs.patch;patch=1 \
+ file://nolibtuxbox.diff;patch=1"
+
+SRC_URI_append_dm7025 = " \
+ file://32bpp.diff;patch=1 \
+ file://resize_framebuffer.diff;patch=1 \
+ file://allow_different_demux.diff;patch=1 \
+ file://fastclear.diff;patch=1"
+
+SRC_URI_append_dm800 = " \
+ file://32bpp.diff;patch=1 \
+ file://resize_framebuffer.diff;patch=1 \
+ file://allow_different_demux.diff;patch=1 \
+ file://fastclear.diff;patch=1"
+
+SRC_URI_append_dm8000 = " \
+ file://32bpp.diff;patch=1 \
+ file://resize_framebuffer.diff;patch=1 \
+ file://allow_different_demux.diff;patch=1 \
+ file://fastclear.diff;patch=1"
+
+S = "${WORKDIR}/libs"
+EXTRA_OECONF = "--with-target=native"
+
+CFLAGS_append = " -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
+
+inherit autotools pkgconfig
+
+FILES_libtuxtxt_append = " /usr/lib/libtuxtxt.so"
+
+FILES_${PN}-dev = "/usr/lib/libtuxtxt.la /usr/lib/pkgconfig/tuxbox-tuxtxt.pc"
+
+python populate_packages_prepend () {
+ tuxbox_libdir = bb.data.expand('${libdir}', d)
+}
+
+do_configure_prepend() {
+ install ${WORKDIR}/acinclude.m4 ${S}/acinclude.m4
+}
+
+do_stage() {
+ install -m 0644 ${S}/libtuxtxt/tuxtxt_*.h ${STAGING_INCDIR}
+ install -d ${STAGING_INCDIR}/tuxtxt
+ install -m 0644 ${S}/libtuxtxt/tuxtxt_*.h ${STAGING_INCDIR}/tuxtxt
+ cd libtuxtxt
+ oe_libinstall -so libtuxtxt ${STAGING_LIBDIR}
+ cd ..
+}
+
+do_install_prepend() {
+ cd libtuxtxt
+}
--- /dev/null
+DEPENDS = "enigma"
+DESCRIPTION = "tuxbox plugins (enigma)"
+MAINTAINER = "Felix Domke <tmbinc@elitdvb.net>"
+
+SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/tuxbox/plugins;method=ext \
+ file://disable_nonworking.diff;patch=1;pnum=1 \
+ file://fix_config_path.diff;patch=1;pnum=1 \
+ file://fix_install_weather_pics.diff;patch=1;pnum=1"
+
+SRCDATE = "20060112"
+PV = "0.0+cvs${SRCDATE}"
+PR = "r0"
+
+CFLAGS_append = " -I${STAGING_INCDIR}/enigma -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
+CXXFLAGS_append = " -I${STAGING_INCDIR}/enigma -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
+
+PACKAGES = "enigma-plugin-dreamdata enigma-plugin-dbswitch \
+ enigma-plugin-ngrabstart enigma-plugin-ngrabstop enigma-plugin-getset \
+ enigma-plugin-movieplayer enigma-plugin-script enigma-plugin-rss \
+ enigma-plugin-weather enigma-plugin-demo"
+
+FILES_enigma-plugin-dreamdata = "/usr/lib/tuxbox/plugins/dreamdata.so /usr/lib/tuxbox/plugins/dreamdata.cfg \
+ /etc/tuxbox/dreamdata.xml"
+FILES_enigma-plugin-dbswitch = "/usr/lib/tuxbox/plugins/dbswitch.so /usr/lib/tuxbox/plugins/dbswitch.cfg"
+FILES_enigma-plugin-ngrabstart = "/usr/lib/tuxbox/plugins/ngrabstart.so /usr/lib/tuxbox/plugins/ngrabstart.cfg"
+FILES_enigma-plugin-ngrabstop = "/usr/lib/tuxbox/plugins/ngrabstop.so /usr/lib/tuxbox/plugins/ngrabstop.cfg"
+FILES_enigma-plugin-getset = "/usr/lib/tuxbox/plugins/enigma_getset.so /usr/lib/tuxbox/plugins/enigma_getset.cfg"
+FILES_enigma-plugin-movieplayer = "/usr/lib/tuxbox/plugins/movieplayer.so /usr/lib/tuxbox/plugins/movieplayer.cfg"
+FILES_enigma-plugin-script = "/usr/lib/tuxbox/plugins/script.so /usr/lib/tuxbox/plugins/script.cfg"
+FILES_enigma-plugin-rss = "/usr/lib/tuxbox/plugins/rss.so /usr/lib/tuxbox/plugins/rss.cfg \
+ /etc/tuxbox/feeds.xml"
+FILES_enigma-plugin-weather = "/usr/lib/tuxbox/plugins/weather.so /usr/lib/tuxbox/plugins/weather.cfg \
+ /etc/tuxbox/weather.xml /usr/share/tuxbox/weather/*.png"
+FILES_enigma-plugin-demo = "/usr/lib/tuxbox/plugins/enigma_demo.so /usr/lib/tuxbox/plugins/enigma_demo.cfg"
+
+S = "${WORKDIR}/plugins"
+
+inherit autotools pkgconfig
+
+bindir = "/usr/bin"
+sbindir = "/usr/sbin"
+
+EXTRA_OECONF = "--with-target=native --with-boxtype=dm7020"
--- /dev/null
+diff -Naur plugins/configure.ac plugins_patched/configure.ac
+--- plugins/configure.ac 2005-06-28 15:20:19.000000000 +0200
++++ plugins_patched/configure.ac 2005-06-28 16:18:42.437757664 +0200
+@@ -23,7 +23,7 @@
+ TUXBOX_APPS_LIB_CONFIG(FREETYPE,freetype-config)
+ TUXBOX_APPS_LIB_PKGCONFIG(PNG,libpng)
+ TUXBOX_APPS_LIB_PKGCONFIG(SIGC,sigc++-1.2)
+-TUXBOX_APPS_LIB_PKGCONFIG(TUXBOX,tuxbox)
++#TUXBOX_APPS_LIB_PKGCONFIG(TUXBOX,tuxbox)
+ TUXBOX_APPS_LIB_PKGCONFIG(XMLTREE,tuxbox-xmltree)
+ TUXBOX_APPS_LIB_PKGCONFIG(CONFIGFILE,tuxbox-configfile)
+ #TUXBOX_APPS_LIB_PKGCONFIG(TUXTXT,tuxbox-tuxtxt)
--- /dev/null
+diff -Naur plugins_org/Makefile.am plugins/Makefile.am
+--- plugins_org/Makefile.am 2005-11-19 21:55:18.000000000 +0100
++++ plugins/Makefile.am 2006-01-12 01:26:06.000000000 +0100
+@@ -1,7 +1,7 @@
+ AUTOMAKE_OPTIONS = gnu
+
+ SUBDIRS = \
+- include tuxmail tuxtxt tuxcom fx2 vncviewer enigma
++ enigma
+
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = \
+diff -Naur plugins_org/enigma/Makefile.am plugins/enigma/Makefile.am
+--- plugins_org/enigma/Makefile.am 2005-11-19 19:31:51.000000000 +0100
++++ plugins/enigma/Makefile.am 2006-01-12 01:26:20.000000000 +0100
+@@ -1,2 +1,2 @@
+-SUBDIRS = demo dreamdata ngrabstart ngrabstop dslconnect dsldisconnect rss script weather dbswitch getset dreamflash movieplayer
++SUBDIRS = demo dreamdata ngrabstart ngrabstop dslconnect dsldisconnect rss script weather dbswitch getset movieplayer
+
--- /dev/null
+diff -Naur plugins_org/enigma/rss/rss.cpp plugins/enigma/rss/rss.cpp
+--- plugins/enigma/rss/rss.cpp 2006-01-11 16:59:35.000000000 +0100
++++ plugins/enigma/rss/rss.cpp 2006-01-11 17:00:55.000000000 +0100
+@@ -82,8 +82,7 @@
+
+ setFocus(theList);
+
+- if (!theConfigParser.parse("/var/tuxbox/config/feeds.xml"))
+- theConfigParser.parse(CONFIGDIR"/feeds.xml");
++ theConfigParser.parse(CONFIGDIR"/feeds.xml");
+
+ theRssFeed = new rssFeed();
+ theRssFeed->hide();
--- /dev/null
+diff -Naur plugins_org/enigma/weather/icons/Makefile.am plugins/enigma/weather/icons/Makefile.am
+--- plugins_org/enigma/weather/icons/Makefile.am 2005-09-21 08:30:19.000000000 +0200
++++ plugins/enigma/weather/icons/Makefile.am 2006-01-12 02:27:27.000000000 +0100
+@@ -1,6 +1,6 @@
+-installdir = $(DESTDIR)$(DATADIR)/weather
++install-exec-local:
++ install -d $(DESTDIR)$(DATADIR)/weather
++ install -m 0644 *.png $(DESTDIR)$(DATADIR)/weather
+
+-install_DATA = \
+- 1.png 4.png 5.png 7.png 8.png 10.png 11.png 12.png 13.png 14.png 15.png \
+- 16.png 18.png 19.png 20.png 21.png 23.png 25.png 26.png 28.png 30.png \
+- 32.png 36.png 37.png 38.png 39.png 43.png unknown.png
++uninstall-local:
++ -rm -R $(DESTDIR)$(DATADIR)/weather
--- /dev/null
+DEPENDS = "curl libpng freetype dreambox-dvbincludes libsigc++-1.2 libtuxtxt tuxbox-libs"
+DESCRIPTION = "tuxbox plugins"
+MAINTAINER = "Felix Domke <tmbinc@elitdvb.net>"
+
+SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/tuxbox/plugins;method=ext \
+ file://disable_nonworking.diff;patch=1;pnum=1 \
+ file://tuxtxt_include_fix.patch;patch=1;pnum=1 \
+ file://game_names.diff;patch=1;pnum=1"
+
+SRCDATE = "20061009"
+PV = "0.0+cvs${SRCDATE}"
+PR = "r0"
+
+CFLAGS_append = " -DOE"
+CFLAGS_append_dm7020 = " -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
+CFLAGS_append_dm600pvr = " -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
+CFLAGS_append_dm500plus = " -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
+CXXFLAGS_append = " -DOE"
+CXXFLAGS_append_dm7020 = " -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
+CXXFLAGS_append_dm600pvr = " -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
+CXXFLAGS_append_dm500plus = " -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
+
+PACKAGES = "tuxbox-plugins-dev tuxbox-plugin-tuxtxt tuxbox-plugin-tuxmail \
+ tuxbox-plugin-tuxcom tuxbox-plugin-mines tuxbox-plugin-pacman \
+ tuxbox-plugin-tetris tuxbox-plugin-snake tuxbox-plugin-yahtzee \
+ tuxbox-plugin-master tuxbox-plugin-tank tuxbox-plugin-lemmings \
+ tuxbox-plugin-lcdcirc tuxbox-plugin-satfind tuxbox-plugin-vierg \
+ tuxbox-plugin-soko tuxbox-plugin-solitair tuxbox-plugin-sol \
+ tuxbox-plugin-fx2 tuxbox-plugin-vnc"
+
+FILES_tuxbox-plugin-tuxtxt = "/usr/lib/tuxbox/plugins/tuxtxt.so /usr/lib/tuxbox/plugins/tuxtxt.cfg \
+ /usr/share/fonts/tuxtxt.ttf /usr/share/fonts/tuxtxt.otb /etc/tuxbox/tuxtxt"
+FILES_tuxbox-plugin-tuxmail = "/usr/lib/tuxbox/plugins/tuxmail.so /usr/lib/tuxbox/plugins/tuxmail.cfg \
+ /etc/tuxbox/tuxmail/tuxmail.conf /usr/bin/tuxmaild /etc/init.d/tuxmail"
+FILES_tuxbox-plugin-tuxcom = "/usr/lib/tuxbox/plugins/tuxcom.so /usr/lib/tuxbox/plugins/tuxcom.cfg"
+FILES_tuxbox-plugin-mines = "/usr/lib/tuxbox/plugins/mines.so /usr/lib/tuxbox/plugins/mines.cfg"
+FILES_tuxbox-plugin-pacman = "/usr/lib/tuxbox/plugins/pacman.so /usr/lib/tuxbox/plugins/pacman.cfg"
+FILES_tuxbox-plugin-tetris = "/usr/lib/tuxbox/plugins/tetris.so /usr/lib/tuxbox/plugins/tetris.cfg"
+FILES_tuxbox-plugin-snake = "/usr/lib/tuxbox/plugins/snake.so /usr/lib/tuxbox/plugins/snake.cfg"
+FILES_tuxbox-plugin-yahtzee = "/usr/lib/tuxbox/plugins/yahtzee.so /usr/lib/tuxbox/plugins/yahtzee.cfg"
+FILES_tuxbox-plugin-master = "/usr/lib/tuxbox/plugins/master.so /usr/lib/tuxbox/plugins/master.cfg"
+FILES_tuxbox-plugin-tank = "/usr/lib/tuxbox/plugins/tank.so /usr/lib/tuxbox/plugins/tank.cfg"
+FILES_tuxbox-plugin-lemmings = "/usr/lib/tuxbox/plugins/lemmings.so /usr/lib/tuxbox/plugins/lemmings.cfg"
+FILES_tuxbox-plugin-lcdcirc = "/usr/lib/tuxbox/plugins/lcdcirc.so /usr/lib/tuxbox/plugins/lcdcirc.cfg"
+FILES_tuxbox-plugin-satfind = "/usr/lib/tuxbox/plugins/satfind.so /usr/lib/tuxbox/plugins/satfind.cfg"
+FILES_tuxbox-plugin-vierg = "/usr/lib/tuxbox/plugins/vierg.so /usr/lib/tuxbox/plugins/vierg.cfg"
+FILES_tuxbox-plugin-soko = "/usr/lib/tuxbox/plugins/soko.so /usr/lib/tuxbox/plugins/soko.cfg \
+ /usr/share/tuxbox/sokoban/1.xsb /usr/share/tuxbox/sokoban/11.xsb /usr/share/tuxbox/sokoban/7.xsb \
+ /usr/share/tuxbox/sokoban/8.xsb /usr/share/tuxbox/sokoban/albe-01.xsb /usr/share/tuxbox/sokoban/albe-02.xsb \
+ /usr/share/tuxbox/sokoban/albe-03.xsb /usr/share/tuxbox/sokoban/albe-04.xsb /usr/share/tuxbox/sokoban/albe-05.xsb \
+ /usr/share/tuxbox/sokoban/albe-06.xsb /usr/share/tuxbox/sokoban/albe-07.xsb /usr/share/tuxbox/sokoban/albe-08.xsb \
+ /usr/share/tuxbox/sokoban/albe-09.xsb /usr/share/tuxbox/sokoban/albe-10.xsb /usr/share/tuxbox/sokoban/albe-12.xsb \
+ /usr/share/tuxbox/sokoban/albe-13.xsb"
+FILES_tuxbox-plugin-solitair = "/usr/lib/tuxbox/plugins/solitair.so /usr/lib/tuxbox/plugins/solitair.cfg"
+FILES_tuxbox-plugin-sol = "/usr/lib/tuxbox/plugins/sol.so /usr/lib/tuxbox/plugins/sol.cfg"
+FILES_tuxbox-plugin-fx2 = "/usr/lib/tuxbox/plugins/libfx2.so"
+FILES_tuxbox-plugin-vnc = "/usr/lib/tuxbox/plugins/vnc.so /usr/lib/tuxbox/plugins/vnc.cfg /etc/tuxbox/vnc.conf"
+
+S = "${WORKDIR}/plugins"
+
+inherit autotools pkgconfig
+
+bindir = "/usr/bin"
+sbindir = "/usr/sbin"
+
+EXTRA_OECONF = "--with-target=native"
+EXTRA_OECONF_append_dm7020 = " --with-boxtype=dm7020"
+# checkme!
+EXTRA_OECONF_append_dm600pvr = " --with-boxtype=dm7020"
+EXTRA_OECONF_append_dm500plus = " --with-boxtype=dm7020"
+
+do_install_append() {
+ install -d ${D}/etc/tuxbox/tuxtxt/
+ install -d ${D}/etc/init.d/
+ install ${S}/tuxmail/daemon/tuxmail ${D}/etc/init.d
+}
+
+do_stage() {
+ install -d ${STAGING_INCDIR}/tuxbox
+ install -m 0644 ${S}/include/plugin.h ${STAGING_INCDIR}/tuxbox/
+}
--- /dev/null
+diff -Naur plugins/configure.ac plugins_patched/configure.ac
+--- plugins/configure.ac 2005-06-28 15:20:19.000000000 +0200
++++ plugins_patched/configure.ac 2005-06-28 16:18:42.437757664 +0200
+@@ -23,7 +23,7 @@
+ TUXBOX_APPS_LIB_CONFIG(FREETYPE,freetype-config)
+ TUXBOX_APPS_LIB_PKGCONFIG(PNG,libpng)
+ TUXBOX_APPS_LIB_PKGCONFIG(SIGC,sigc++-1.2)
+-TUXBOX_APPS_LIB_PKGCONFIG(TUXBOX,tuxbox)
++#TUXBOX_APPS_LIB_PKGCONFIG(TUXBOX,tuxbox)
+ TUXBOX_APPS_LIB_PKGCONFIG(XMLTREE,tuxbox-xmltree)
+ TUXBOX_APPS_LIB_PKGCONFIG(CONFIGFILE,tuxbox-configfile)
+ #TUXBOX_APPS_LIB_PKGCONFIG(TUXTXT,tuxbox-tuxtxt)
--- /dev/null
+diff -Naur plugins_org/Makefile.am plugins/Makefile.am
+--- plugins_org/Makefile.am 2005-11-19 21:55:18.000000000 +0100
++++ plugins/Makefile.am 2006-01-12 01:24:26.000000000 +0100
+@@ -1,7 +1,7 @@
+ AUTOMAKE_OPTIONS = gnu
+
+ SUBDIRS = \
+- include tuxmail tuxtxt tuxcom tuxcal fx2 vncviewer enigma
++ include tuxmail tuxtxt tuxcom tuxcal fx2 vncviewer
+
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = \
--- /dev/null
+diff -Naur a/fx2/master/master.cfg b/fx2/master/master.cfg
+--- a/fx2/master/master.cfg 2004-07-11 12:23:21.000000000 +0200
++++ b/fx2/master/master.cfg 2005-01-17 13:08:39.000000000 +0100
+@@ -1,4 +1,4 @@
+-name=Mastermind
++name=Mindmaster
+ desc=food for brain
+ type=1
+ needfb=1
+diff -Naur a/fx2/mines/mines.cfg b/fx2/mines/mines.cfg
+--- a/fx2/mines/mines.cfg 2004-07-11 12:23:21.000000000 +0200
++++ b/fx2/mines/mines.cfg 2005-01-17 13:09:35.000000000 +0100
+@@ -1,5 +1,5 @@
+-name=Minesweeper
+-desc=classic minesweeper
++name=Sweepminer
++desc=classic Sweepminer
+ type=1
+ needfb=1
+ needrc=1
+diff -Naur a/fx2/pac/pacman.cfg b/fx2/pac/pacman.cfg
+--- a/fx2/pac/pacman.cfg 2001-11-08 15:47:45.000000000 +0100
++++ b/fx2/pac/pacman.cfg 2005-01-17 13:10:12.000000000 +0100
+@@ -1,6 +1,6 @@
+ pluginversion=1
+-name=Pacman
+-desc=The good old pacman in new dboxII generation
++name=Paccer
++desc=The good old paccer
+ depend=libfx2.so
+ type=1
+ needfb=1
+diff -Naur a/fx2/sokoban/soko.cfg b/fx2/sokoban/soko.cfg
+--- a/fx2/sokoban/soko.cfg 2005-01-17 13:19:02.000000000 +0100
++++ b/fx2/sokoban/soko.cfg 2005-01-17 13:19:16.000000000 +0100
+@@ -1,4 +1,4 @@
+-name=Sokoban
++name=Zokoban
+ desc=Push it, baby!
+ type=1
+ needfb=1
+diff -Naur a/fx2/solitair/solitair.cfg b/fx2/solitair/solitair.cfg
+--- a/fx2/solitair/solitair.cfg 2003-08-25 15:56:57.000000000 +0200
++++ b/fx2/solitair/solitair.cfg 2005-01-17 13:12:16.000000000 +0100
+@@ -1,5 +1,5 @@
+ pluginversion=1
+-name=Solitair
++name=Solitaer
+ desc=a card game
+ depend=libfx2.so
+ type=1
+diff -Naur a/fx2/tank/tank.cfg b/fx2/tank/tank.cfg
+--- a/fx2/tank/tank.cfg 2005-01-17 13:20:11.000000000 +0100
++++ b/fx2/tank/tank.cfg 2005-01-17 13:20:46.000000000 +0100
+@@ -1,4 +1,4 @@
+-name=TankWars
++name=WarTank
+ desc=stay cool
+ depend=libfx2.so
+ type=1
+diff -Naur a/fx2/tetris/tetris.cfg b/fx2/tetris/tetris.cfg
+--- a/fx2/tetris/tetris.cfg 2004-07-11 12:23:22.000000000 +0200
++++ b/fx2/tetris/tetris.cfg 2005-01-17 13:12:46.000000000 +0100
+@@ -1,6 +1,6 @@
+ pluginversion=1
+-name=Tetris
+-desc=i break together - tetris :)
++name=Blocktris
++desc=i break together - blocktris :)
+ type=1
+ needfb=1
+ needrc=1
+diff -Naur a/fx2/yahtzee/yahtzee.cfg b/fx2/yahtzee/yahtzee.cfg
+--- a/fx2/yahtzee/yahtzee.cfg 2005-01-17 13:20:20.000000000 +0100
++++ b/fx2/yahtzee/yahtzee.cfg 2005-01-17 13:20:37.000000000 +0100
+@@ -1,5 +1,5 @@
+ pluginversion=1
+-name=Yahtzee
++name=Yahtzea
+ desc=a game for 1-4 player
+ depend=libfx2.so
+ type=1
--- /dev/null
+diff -Naur tuxtxt/Makefile.am tuxtxt_patched/Makefile.am
+--- a/tuxtxt/Makefile.am 2006-10-05 13:17:15.000000000 +0200
++++ b/tuxtxt/Makefile.am 2007-02-07 22:59:43.000000000 +0100
+@@ -4,7 +4,7 @@
+ AM_CPPFLAGS = \
+ @FREETYPE_CFLAGS@ \
+ -I$(top_srcdir)/include \
+- -I$(includedir)/tuxbox/tuxtxt
++ -I$(prefix)/$(includedir)/tuxbox/tuxtxt
+
+ tuxtxt_la_LIBADD = \
+ @FREETYPE_LIBS@ \
--- /dev/null
+DEPENDS = "dreambox-dvbincludes tuxbox-libs"
+RDEPENDS = "libtuxbox-mpegtools0"
+DESCRIPTION = "tuxbox net streaming tools"
+MAINTAINER = "Felix Domke <tmbinc@elitdvb.net>"
+
+SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/dvb/tools/stream;method=ext \
+ file://acinclude.m4 \
+ file://enable_transform.diff;patch=1;pnum=1 \
+ file://add_configfiles.diff;patch=1;pnum=1"
+
+SRCDATE = "20050802"
+S = "${WORKDIR}/stream"
+PV = "1.0+${SRCDATE}"
+PR = "r1"
+
+inherit autotools pkgconfig
+
+bindir = "/usr/bin"
+sbindir = "/usr/sbin"
+
+EXTRA_OECONF = "--with-target=native --with-boxtype=${MACHINE}"
+
+CFLAGS_append = " -DHAVE_DREAMBOX_HARDWARE"
+
+do_configure_prepend() {
+ install ${WORKDIR}/acinclude.m4 ${S}/acinclude.m4
+}
+
+do_install_append() {
+ ln -s streampes ${D}/usr/sbin/streames
+}
--- /dev/null
+diff -Naur stream/AUTHORS stream_configure/AUTHORS
+--- stream/AUTHORS 1970-01-01 01:00:00.000000000 +0100
++++ stream_configure/AUTHORS 2004-09-17 17:47:12.000000000 +0200
+@@ -0,0 +1,22 @@
++In order of appearance in cvs:
++------------------------------------------------
++Felix Domke <tmbinc@berlios.de>
++Andreas Oberritter <obi@berlios.de>
++Steffen Hehn <mcclean@berlios.de>
++Andreas Monzner <ghostrider@berlios.de>
++Florian Roks <trh@berlios.de>
++Ronny Strutz <tripledes@berlios.de>
++Bastian Blank <waldi@berlios.de>
++Henning Heinold <woglinde@berlios.de>
++Rainer Scherg <rasc@berlios.de>
++Steffen Buehl <shadow@berlios.de>
++Wolfram Joost <wjoost@berlios.de>
++Thomas Herold <dertom@berlios.de>
++Stefan Pluecken <thedoc@berlios.de>
++Florian Schirmer <jolt@berlios.de>
++Christoph Ketzler <chkdesign@berlios.de>
++Bernhard Roth <bernroth@berlios.de>
++
++Also many thanks to everyone who supported development
++without having cvs write access
++
+diff -Naur stream/configure.ac stream_configure/configure.ac
+--- stream/configure.ac 1970-01-01 01:00:00.000000000 +0100
++++ stream_configure/configure.ac 2004-11-16 00:13:26.000000000 +0100
+@@ -0,0 +1,25 @@
++AC_INIT([tuxbox-stream],[1.0.0],[obi@tuxbox.org])
++AM_INIT_AUTOMAKE([dist-bzip2 no-define])
++
++TUXBOX_APPS
++TUXBOX_APPS_DIRECTORYY
++
++AC_PROG_CC
++AC_PROG_LIBTOOL
++AC_PROG_RANLIB
++
++TUXBOX_APPS_DVB
++TUXBOX_APPS_DRIVER
++
++TUXBOX_APPS_LIB_PKGCONFIG(MPEGTOOLS,tuxbox-mpegtools)
++
++AC_ARG_WITH(boxtype,
++ [ --with-boxtype=NAME dreambox/dbox2 [[dbox2,dreambox]]],
++ [BOXTYPE="$withval"],[BOXTYPE="dbox2"])
++AC_SUBST(BOXTYPE)
++AM_CONDITIONAL(BOXTYPE_DREAMBOX,test "$BOXTYPE" != "dbox2")
++AM_CONDITIONAL(BOXTYPE_DBOX2,test "$BOXTYPE" = "dbox2")
++
++AC_OUTPUT([
++Makefile
++])
--- /dev/null
+diff -Naur stream/Makefile.am stream_patched/Makefile.am
+--- stream/Makefile.am 2005-06-01 17:20:04.000000000 +0200
++++ stream_patched/Makefile.am 2005-08-08 14:03:02.000000000 +0200
+@@ -2,6 +2,8 @@
+ sbin_PROGRAMS = streampes streamts streamsec udpstreamts udpstreampes
+ udpstreampes_LDADD = -lpthread
+ udpstreampes_SOURCES = udpstreampes.cpp
++INCLUDES = @MPEGTOOLS_CFLAGS@
++streamts_LDADD = @MPEGTOOLS_LIBS@
+ else
+ sbin_PROGRAMS = streampes streamts streamsec udpstreamts streamfile fserver
+ INCLUDES = @MPEGTOOLS_CFLAGS@
+diff -Naur stream/streamts.c stream_patched/streamts.c
+--- stream/streamts.c 2005-08-02 23:32:31.000000000 +0200
++++ stream_patched/streamts.c 2005-08-08 17:02:14.000000000 +0200
+@@ -57,7 +57,7 @@
+ #ifdef HAVE_DREAMBOX_HARDWARE
+ #define DMXDEV "/dev/dvb/card0/demux1"
+ #define DVRDEV "/dev/dvb/card0/dvr1"
+- #undef TRANSFORM
++ #define TRANSFORM
+ #else
+ #define DMXDEV "/dev/dvb/card0/demux0"
+ #define DMXDEV "/dev/dvb/card0/dvr0"
--- /dev/null
+DEPENDS = "freetype"
+DESCRIPTION = "TuxCom for dreambox 8000/32bit framebuffer"
+MAINTAINER = "Sven Karschewski <seddi@i-have-a-dreambox.com>"
+
+SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/tuxbox/plugins/tuxcom;method=ext \
+ file://makefiles.diff;patch=1;pnum=1 \
+ file://add_font.diff;patch=1;pnum=1 \
+ file://32bpp.diff;patch=1;pnum=1 \
+ file://add_e2_plugin.diff;patch=1;pnum=1 \
+ file://add_advanced_rc.diff;patch=1;pnum=1 \
+ file://support_newer_freetype.patch;patch=1;pnum=1"
+
+SRCDATE = "20060123"
+PV = "0.0+cvs${SRCDATE}"
+PR = "r0"
+
+PACKAGES = "${PN}-dbg ${PN}"
+
+S = "${WORKDIR}/tuxcom"
+
+CFLAGS_append = " -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
+
+inherit autotools pkgconfig
+
+bindir = "/usr/bin"
+sbindir = "/usr/sbin"
+
+EXTRA_OECONF = "--with-target=native"
+
+do_configure_prepend() {
+ touch ${S}/python/__init__.py
+}
+
+do_install() {
+ install -d ${D}/etc/tuxcom
+ install -d ${D}/usr/plugins
+ install -d ${D}/usr/share/fonts
+ install -d ${D}/usr/lib/enigma2/python/Plugins/Extensions/Tuxcom
+
+ install -m 0755 ${S}/tuxcom ${D}/usr/plugins/tuxcom
+ install -m 0644 ${S}/tuxcom.cfg ${D}/etc/tuxcom/tuxcom.cfg
+ install -m 0644 ${S}/font/pakenham.ttf ${D}/usr/share/fonts/pakenham.ttf
+ install -m 0644 ${S}/python/__init__.py ${D}/usr/lib/enigma2/python/Plugins/Extensions/Tuxcom/__init__.py
+ install -m 0644 ${S}/python/plugin.py ${D}/usr/lib/enigma2/python/Plugins/Extensions/Tuxcom/plugin.py
+}
+
+FILES_${PN}-dbg ="/usr/plugins/.debug"
+FILES_${PN} = "/etc/tuxcom/tuxcom.cfg /usr/plugins/tuxcom /usr/share/fonts/pakenham.ttf /usr/lib/enigma2/python/Plugins/Extensions/Tuxcom/__init__.py \
+ /usr/lib/enigma2/python/Plugins/Extensions/Tuxcom/plugin.py"
--- /dev/null
+diff -u tuxcom_cvs/tuxcom.c tuxcom/tuxcom.c
+--- tuxcom_cvs/tuxcom.c 2008-11-03 13:15:00.000000000 +0100
++++ tuxcom/tuxcom.c 2006-06-29 23:44:21.000000000 +0200
+@@ -27,7 +27,7 @@
+ * GetRCCode (Code from Tuxmail)
+ ******************************************************************************/
+
+-#ifndef HAVE_DREAMBOX_HARDWARE
++
+
+ int GetRCCode(int mode)
+ {
+@@ -63,9 +63,9 @@
+ case KEY_GREEN: rccode = RC_GREEN; break;
+ case KEY_YELLOW: rccode = RC_YELLOW; break;
+ case KEY_BLUE: rccode = RC_BLUE; break;
+- case KEY_HELP: rccode = RC_HELP; break;
+- case KEY_SETUP: rccode = RC_DBOX; break;
+- case KEY_HOME: rccode = RC_HOME; break;
++ case KEY_INFO: rccode = RC_HELP; break;
++ case KEY_MENU: rccode = RC_DBOX; break;
++ case KEY_EXIT: rccode = RC_HOME; break;
+ case KEY_POWER: rccode = RC_STANDBY; break;
+ default:
+ if( ev.code > 0x7F )
+@@ -118,176 +118,94 @@
+ }
+ }
+
+- rccode = -1;
+- usleep(1000000/100);
+- return 0;
+-}
+-
+-#else
+-
+-int GetRCCode(int mode)
+-{
+- static int count = 0;
+- //get code
+- static unsigned short LastKey = -1;
+- static char LastKBCode = 0x00;
+- rccode = -1;
+- int bytesavail = 0;
+- int bytesread = read(rc, &rccode, 2);
+- unsigned short tmprc;
+- kbcode = 0;
+-
+- if (bytesread == 2)
+- {
+- if (read(rc, &tmprc, 2) == 2)
+- {
+- if (rccode == tmprc && count >= 0)
+- count++;
+- }
+- }
+-
+-
+- // Tastaturabfrage
+- ioctl(kb, FIONREAD, &bytesavail);
+- if (bytesavail>0)
+- {
+- char tch[100];
+- if (bytesavail > 99) bytesavail = 99;
+- read(kb,tch,bytesavail);
+- tch[bytesavail] = 0x00;
+- kbcode = tch[0];
+- LastKBCode = kbcode;
+- if (bytesavail == 1 && kbcode == 0x1b) { LastKey = RC_HOME ; rccode = -1 ; count = -1; return 1;} // ESC-Taste
+- if (bytesavail == 1 && kbcode == '\n') { LastKey = RC_OK ; rccode = -1 ; count = -1; return 1;} // Enter-Taste
+- if (bytesavail == 1 && kbcode == '+' ) { LastKey = RC_PLUS ; rccode = -1 ; count = -1; return 1;}
+- if (bytesavail == 1 && kbcode == '-' ) { LastKey = RC_MINUS; rccode = -1 ; count = -1; return 1;}
+- if (bytesavail >= 3 && tch[0] == 0x1b && tch[1] == 0x5b)
+- {
+- if (tch[2] == 0x41 ) { kbcode = LastKBCode = 0x00; rccode = RC_UP ; LastKey = rccode; count = -1; return 1; }// Cursortasten
+- if (tch[2] == 0x42 ) { kbcode = LastKBCode = 0x00; rccode = RC_DOWN ; LastKey = rccode; count = -1; return 1; }// Cursortasten
+- if (tch[2] == 0x43 ) { kbcode = LastKBCode = 0x00; rccode = RC_RIGHT ; LastKey = rccode; count = -1; return 1; }// Cursortasten
+- if (tch[2] == 0x44 ) { kbcode = LastKBCode = 0x00; rccode = RC_LEFT ; LastKey = rccode; count = -1; return 1; }// Cursortasten
+- if (tch[2] == 0x33 && tch[3] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_MINUS ; LastKey = rccode; count = -1; return 1; }// entf-Taste
+- if (tch[2] == 0x32 && tch[3] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_PLUS ; LastKey = rccode; count = -1; return 1; }// einf-Taste
+- if (tch[2] == 0x35 && tch[3] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_PLUS ; LastKey = rccode; count = -1; return 1; }// PgUp-Taste
+- if (tch[2] == 0x36 && tch[3] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_MINUS ; LastKey = rccode; count = -1; return 1; }// PgDn-Taste
+- if (tch[2] == 0x5b && tch[3] == 0x45) { kbcode = LastKBCode = 0x00; rccode = RC_RED ; LastKey = rccode; count = -1; return 1; }// F5-Taste
+- if (tch[2] == 0x31 && tch[3] == 0x37 && tch[4] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_GREEN ; LastKey = rccode; count = -1; return 1; }// F6-Taste
+- if (tch[2] == 0x31 && tch[3] == 0x38 && tch[4] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_YELLOW ; LastKey = rccode; count = -1; return 1; }// F7-Taste
+- if (tch[2] == 0x31 && tch[3] == 0x39 && tch[4] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_BLUE ; LastKey = rccode; count = -1; return 1; }// F8-Taste
+- if (tch[2] == 0x32 && tch[3] == 0x30 && tch[4] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_DBOX ; LastKey = rccode; count = -1; return 1; }// F9-Taste
+- if (tch[2] == 0x32 && tch[3] == 0x31 && tch[4] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_HELP ; LastKey = rccode; count = -1; return 1; }// F10-Taste
+- if (tch[2] == 0x32 && tch[3] == 0x33 && tch[4] == 0x7e) { kbcode = LastKBCode = 0x00; rccode = RC_MUTE ; LastKey = rccode; count = -1; return 1; }// F11-Taste
+- }
+- if (mode == RC_EDIT)
+- {
+-/*
+- char tmsg[100];
+- int i;
+- sprintf(tmsg,"KeyboardCode:avail:%d, char:%c, rccode:%x ",bytesavail,(kbcode == 0x00 ? '*' : kbcode ),rccode);
+- for (i = 0; i < bytesavail; i++) sprintf(tmsg,"%s%x",tmsg,tch[i]);
+- MessageBox(tmsg,"",NOBUTTON);
+-*/
+- LastKey = rccode;
+- count = -1;
+- switch (rccode)
+- {
+- case KEY_0:
+- case KEY_1:
+- case KEY_2:
+- case KEY_3:
+- case KEY_4:
+- case KEY_5:
+- case KEY_6:
+- case KEY_7:
+- case KEY_8:
+- case KEY_9:
+- // SMS-Style verhindern
+- rccode = -1;
+- break;
+- }
+- return 1;
+- }
+- else if (bytesread <= 0)
+- {
+- if (kbcode == '0') { kbcode = 0x00;rccode = RC_0 ; LastKey = rccode; return 1;}
+- if (kbcode == '1') { kbcode = 0x00;rccode = RC_1 ; LastKey = rccode; return 1;}
+- if (kbcode == '2') { kbcode = 0x00;rccode = RC_2 ; LastKey = rccode; return 1;}
+- if (kbcode == '3') { kbcode = 0x00;rccode = RC_3 ; LastKey = rccode; return 1;}
+- if (kbcode == '4') { kbcode = 0x00;rccode = RC_4 ; LastKey = rccode; return 1;}
+- if (kbcode == '5') { kbcode = 0x00;rccode = RC_5 ; LastKey = rccode; return 1;}
+- if (kbcode == '6') { kbcode = 0x00;rccode = RC_6 ; LastKey = rccode; return 1;}
+- if (kbcode == '7') { kbcode = 0x00;rccode = RC_7 ; LastKey = rccode; return 1;}
+- if (kbcode == '8') { kbcode = 0x00;rccode = RC_8 ; LastKey = rccode; return 1;}
+- if (kbcode == '9') { kbcode = 0x00;rccode = RC_9 ; LastKey = rccode; return 1;}
+- }
+- }
+- if (bytesread == 2)
++ count=0;
++ if(read(kb, &ev, sizeof(ev)) == sizeof(ev))
+ {
+- if (rccode == LastKey && LastKBCode != 0x00 && LastKBCode == kbcode)
+- {
+- return 1;
+- }
+- LastKBCode = 0x00;
+- if (rccode == LastKey)
++ if(ev.value)
+ {
+- if (count < REPEAT_TIMER)
++ if(ev.code == rc_last_key)
+ {
+- if (count >= 0)
++ if (count < REPEAT_TIMER)
++ {
+ count++;
+- rccode = -1;
+- return 1;
++ rccode = -1;
++ return 1;
++ }
+ }
+- }
+- else
+- count = 0;
+- LastKey = rccode;
+- if ((rccode & 0xFF00) == 0x5C00)
+- {
+- kbcode = 0;
+- switch(rccode)
++ else
++ count = 0;
++ rc_last_key = ev.code;
++ switch(ev.code)
+ {
+ case KEY_UP: rccode = RC_UP; break;
+ case KEY_DOWN: rccode = RC_DOWN; break;
+ case KEY_LEFT: rccode = RC_LEFT; break;
+ case KEY_RIGHT: rccode = RC_RIGHT; break;
+ case KEY_OK: rccode = RC_OK; break;
+- case KEY_0: rccode = RC_0; break;
+- case KEY_1: rccode = RC_1; break;
+- case KEY_2: rccode = RC_2; break;
+- case KEY_3: rccode = RC_3; break;
+- case KEY_4: rccode = RC_4; break;
+- case KEY_5: rccode = RC_5; break;
+- case KEY_6: rccode = RC_6; break;
+- case KEY_7: rccode = RC_7; break;
+- case KEY_8: rccode = RC_8; break;
+- case KEY_9: rccode = RC_9; break;
+ case KEY_RED: rccode = RC_RED; break;
+ case KEY_GREEN: rccode = RC_GREEN; break;
+ case KEY_YELLOW: rccode = RC_YELLOW; break;
+ case KEY_BLUE: rccode = RC_BLUE; break;
+- case KEY_VOLUMEUP: rccode = RC_PLUS; break;
+- case KEY_VOLUMEDOWN:rccode = RC_MINUS; break;
+- case KEY_MUTE: rccode = RC_MUTE; break;
+- case KEY_HELP: rccode = RC_HELP; break;
+- case KEY_SETUP: rccode = RC_DBOX; break;
+- case KEY_HOME: rccode = RC_HOME; break;
++ case KEY_INFO: rccode = RC_HELP; break;
++ case KEY_MENU: rccode = RC_DBOX; break;
++ case KEY_EXIT: rccode = RC_HOME; break;
+ case KEY_POWER: rccode = RC_STANDBY; break;
++ default:
++ if( ev.code > 0x7F )
++ {
++ rccode = 0;
++ if( ev.code == 0x110 )
++ {
++ rccode = RC_ON;
++ }
++ }
++ else
++ {
++ rccode = rctable[ev.code & 0x7F];
++ }
++ if( rc_last_code == RC_LSHIFT )
++ {
++ if( ev.code <= 0x56 ) //(sizeof(rcshifttable)/sizeof(int)-1)
++ {
++ rccode = rcshifttable[ev.code];
++ }
++ }
++ else if( rc_last_code == RC_ALTGR )
++ {
++ if( ev.code <= 0x56 ) //(sizeof(rcaltgrtable)/sizeof(int)-1)
++ {
++ rccode = rcaltgrtable[ev.code];
++ }
++ }
++ else if( rc_last_code == RC_ALT )
++ {
++ if((ev.code >=2) && ( ev.code <= 11 ))
++ {
++ rccode = (ev.code-1) | 0x0200;
++ }
++ }
++// if( !rccode )
++ {
++// rccode = -1;
++ }
++
+ }
++ rc_last_code = rccode;
+ return 1;
+ }
+ else
+ {
+- rccode &= 0x003F;
++ rccode = -1;
++ rc_last_key = KEY_RESERVED;
++ rc_last_code = KEY_RESERVED;
+ }
+- return 0;
+ }
+
+ rccode = -1;
+ usleep(1000000/100);
+ return 0;
+ }
+-#endif
++
+
+ /******************************************************************************
+ * MyFaceRequester
+@@ -316,6 +234,8 @@
+ FT_Vector kerning;
+ FT_Error error;
+
++ currentchar=currentchar & 0xFF;
++
+ if (currentchar == '\r') // display \r in windows edited files
+ {
+ if(color != -1)
+@@ -331,19 +251,15 @@
+ }
+ //load char
+
+- if(!(glyphindex = FT_Get_Char_Index(face, currentchar)))
++ if(!(glyphindex = FT_Get_Char_Index(face, (int)currentchar)))
+ {
+ printf("TuxCom <FT_Get_Char_Index for Char \"%c\" failed\n", (int)currentchar);
+ return 0;
+ }
+
+
+-#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR == 0
++
+ if((error = FTC_SBit_Cache_Lookup(cache, &desc, glyphindex, &sbit)))
+-#else
+- FTC_Node anode;
+- if((error = FTC_SBitCache_Lookup(cache, &desc, glyphindex, &sbit, &anode)))
+-#endif
+ {
+ printf("TuxCom <FTC_SBitCache_Lookup for Char \"%c\" failed with Errorcode 0x%.2X>\n", (int)currentchar, error);
+ return 0;
+@@ -376,7 +292,7 @@
+ {
+ if(pitch*8 + 7-bit >= sbit->width) break; /* render needed bits only */
+
+- if((sbit->buffer[row * sbit->pitch + pitch]) & 1<<bit) *(lbb + StartX + sx + sbit->left + kerning.x + x + var_screeninfo.xres*(StartY + sy - sbit->top + y)) = color;
++ if((sbit->buffer[row * sbit->pitch + pitch]) & 1<<bit) memcpy(lbb + StartX*4 + sx*4 + (sbit->left + kerning.x + x)*4 + fix_screeninfo.line_length*(StartY + sy - sbit->top + y),bgra[color],4);
+
+ x++;
+ }
+@@ -481,38 +397,36 @@
+ void RenderBox(int sx, int sy, int ex, int ey, int mode, int color)
+ {
+ int loop;
++ int tx;
+ if(mode == FILL)
+ {
+ for(; sy <= ey; sy++)
+ {
+- memset(lbb + StartX + sx + var_screeninfo.xres*(StartY + sy), color, ex-sx + 1);
++ for(tx=0; tx <= (ex-sx); tx++)
++ {
++ memcpy(lbb + StartX*4 + sx*4 + (tx*4) + fix_screeninfo.line_length*(StartY + sy),bgra[color],4);
++ }
+ }
+ }
+ else
+ {
+- //hor lines
+-
+- for(loop = sx; loop <= ex; loop++)
+- {
+- *(lbb + StartX+loop + var_screeninfo.xres*(sy+StartY)) = color;
+- *(lbb + StartX+loop + var_screeninfo.xres*(sy+1+StartY)) = color;
+-
+- *(lbb + StartX+loop + var_screeninfo.xres*(ey-1+StartY)) = color;
+- *(lbb + StartX+loop + var_screeninfo.xres*(ey+StartY)) = color;
+- }
+-
+- //ver lines
+-
+- for(loop = sy; loop <= ey; loop++)
+- {
+- *(lbb + StartX+sx + var_screeninfo.xres*(loop+StartY)) = color;
+- *(lbb + StartX+sx+1 + var_screeninfo.xres*(loop+StartY)) = color;
+-
+- *(lbb + StartX+ex-1 + var_screeninfo.xres*(loop+StartY)) = color;
+- *(lbb + StartX+ex + var_screeninfo.xres*(loop+StartY)) = color;
+- }
++ for(loop = sx; loop <= ex; loop++)
++ {
++ memcpy(lbb + StartX*4+loop*4 + fix_screeninfo.line_length*(sy+StartY), bgra[color], 4);
++ memcpy(lbb + StartX*4+loop*4 + fix_screeninfo.line_length*(sy+1+StartY), bgra[color], 4);
++ memcpy(lbb + StartX*4+loop*4 + fix_screeninfo.line_length*(ey-1+StartY), bgra[color], 4);
++ memcpy(lbb + StartX*4+loop*4 + fix_screeninfo.line_length*(ey+StartY), bgra[color], 4);
++ }
++ for(loop = sy; loop <= ey; loop++)
++ {
++ memcpy(lbb + StartX*4+sx*4 + fix_screeninfo.line_length*(loop+StartY), bgra[color], 4);
++ memcpy(lbb + StartX*4+(sx+1)*4 + fix_screeninfo.line_length*(loop+StartY), bgra[color], 4);
++ memcpy(lbb + StartX*4+(ex-1)*4 + fix_screeninfo.line_length*(loop+StartY), bgra[color], 4);
++ memcpy(lbb + StartX*4+ex*4 + fix_screeninfo.line_length*(loop+StartY), bgra[color], 4);
++ }
+ }
+ }
++
+ void SetLanguage()
+ {
+ if (langselect == BTN_AUTO)
+@@ -540,7 +454,7 @@
+ * plugin_exec *
+ ******************************************************************************/
+
+-void plugin_exec(PluginParam *par)
++int main()
+ {
+ FT_Error error;
+
+@@ -552,9 +466,67 @@
+ //get params
+
+
+- fb = rc = sx = ex = sy = ey = -1;
++ kb = fb = rc = sx = ex = sy = ey = -1;
++
++ /* open Framebuffer */
++ fb=open("/dev/fb/0", O_RDWR);
++
++ /* open Remote Control */
++ int cnt=0;
++ while(1)
++ {
++ struct stat s;
++ char tmp[128];
++ sprintf(tmp, "/dev/input/event%d", cnt);
++ if (stat(tmp, &s))
++ break;
++ /* open Remote Control */
++ if ((rc=open(tmp, O_RDONLY)) == -1)
++ {
++ perror("TuxCom <open remote control>");
++ return 0;
++ }
++ if (ioctl(rc, EVIOCGNAME(128), tmp) < 0)
++ perror("EVIOCGNAME failed");
++ if (strstr(tmp, "remote control"))
++ break;
++ close(rc);
++ rc=-1;
++ ++cnt;
++ }
++ fcntl(rc, F_SETFL, fcntl(rc, F_GETFL) | O_EXCL | O_NONBLOCK);
++
++ /* open dream ir keyboard */
++ cnt=0;
++ while(1)
++ {
++ struct stat s;
++ char tmp[128];
++ sprintf(tmp, "/dev/input/event%d", cnt);
++ if (stat(tmp, &s))
++ break;
++ /* open keyboard */
++ if ((kb=open(tmp, O_RDONLY)) == -1)
++ {
++ perror("TuxCom <open ir keyboard>");
++ return 0;
++ }
++ if (ioctl(kb, EVIOCGNAME(128), tmp) < 0)
++ perror("EVIOCGNAME failed");
++ if (strstr(tmp, "dreambox ir keyboard"))
++ break;
++ close(kb);
++ kb=-1;
++ ++cnt;
++ }
++ fcntl(kb, F_SETFL, fcntl(kb, F_GETFL) | O_EXCL | O_NONBLOCK);
++
++ sx = 50;
++ ex = 670;
++ sy = 50;
++ ey = 526;
+
+- for(; par; par = par->next)
++/* for(; par; par = par->next)
+ {
+ if (!strcmp(par->id, P_ID_FBUFFER)) fb = atoi(par->val);
+ else if (!strcmp(par->id, P_ID_RCINPUT)) rc = atoi(par->val);
+@@ -563,9 +535,7 @@
+ else if (!strcmp(par->id, P_ID_OFF_Y)) sy = atoi(par->val);
+ else if (!strcmp(par->id, P_ID_END_Y)) ey = atoi(par->val);
+ }
+-#ifdef HAVE_DREAMBOX_HARDWARE
+- kb=open("/dev/vc/0", O_RDONLY);
+-#endif
++*/
+
+ if(fb == -1 || rc == -1 || sx == -1 || ex == -1 || sy == -1 || ey == -1)
+ {
+@@ -643,17 +613,14 @@
+
+ use_kerning = FT_HAS_KERNING(face);
+
+-#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR == 0
++
+ desc.image_type = ftc_image_mono;
+-#else
+- desc.flags = FT_LOAD_MONOCHROME;
+-#endif
+
+
+
+ //init backbuffer
+
+- if(!(lbb = malloc(var_screeninfo.xres*var_screeninfo.yres)))
++ if(!(lbb = malloc(fix_screeninfo.line_length*var_screeninfo.yres)))
+ {
+ printf("TuxCom <allocating of Backbuffer failed>\n");
+ FTC_Manager_Done(manager);
+@@ -661,11 +628,11 @@
+ munmap(lfb, fix_screeninfo.smem_len);
+ return;
+ }
+- memset(lbb, 0, var_screeninfo.xres*var_screeninfo.yres);
++ memset(lbb, 0, fix_screeninfo.line_length*var_screeninfo.yres);
+ RenderBox(0,0,var_screeninfo.xres,var_screeninfo.yres,FILL,BLACK);
+
+ //open avs
+- if((avs = open(AVS, O_RDWR)) == -1)
++/* if((avs = open(AVS, O_RDWR)) == -1)
+ {
+ printf("TuxCom <open AVS>");
+ return;
+@@ -678,7 +645,7 @@
+ printf("TuxCom <open SAA>");
+ return;
+ }
+-
++*/
+
+
+ //init data
+@@ -723,19 +690,15 @@
+
+ SetLanguage();
+
+- ioctl(saa, SAAIOGWSS, &saa_old);
+- ioctl(saa, SAAIOSWSS, &saamodes[screenmode]);
++// ioctl(saa, SAAIOGWSS, &saa_old);
++// ioctl(saa, SAAIOSWSS, &saamodes[screenmode]);
+ // setup screen
+ RenderFrame(LEFTFRAME);
+ RenderFrame(RIGHTFRAME);
+- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
++ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
+ printf("TuxCom init successful\n");
+
+-#ifdef HAVE_DREAMBOX_HARDWARE
+- fcntl(rc, F_SETFL, O_NONBLOCK);
+-#else
+- fcntl(rc, F_SETFL, fcntl(rc, F_GETFL) &~ O_NONBLOCK);
+-#endif
++// fcntl(rc, F_SETFL, fcntl(rc, F_GETFL) &~ O_NONBLOCK);
+
+ int dosave = autosave;
+ int firstentry = 1;
+@@ -762,20 +725,11 @@
+ if (strcmp(szP,szPass) != 0) break;
+ RenderFrame(LEFTFRAME);
+ RenderFrame(RIGHTFRAME);
+- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
++ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
+ }
+ }
+ firstentry = 0;
+
+-#ifdef HAVE_DREAMBOX_HARDWARE
+- if (kbcode != 0)
+- {
+- if (kbcode == 0x09) // tab
+- {
+- rccode = (curframe == 1 ? RC_LEFT : RC_RIGHT);
+- }
+- }
+-#endif
+ switch(rccode)
+ {
+ case RC_HELP:
+@@ -1332,7 +1286,7 @@
+ finfo[curframe].first = finfo[curframe].selected - framerows+1;
+ RenderFrame(LEFTFRAME);
+ RenderFrame(RIGHTFRAME);
+- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
++ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
+
+ }while(rccode != RC_HOME);
+
+@@ -1348,12 +1302,14 @@
+ munmap(lfb, fix_screeninfo.smem_len);
+
+ //restore videoformat
+- ioctl(avs, AVSIOSSCARTPIN8, &fnc_old);
+- ioctl(saa, SAAIOSWSS, &saa_old);
+- close(avs);
+- close(saa);
+-
+- fcntl(rc, F_SETFL, O_NONBLOCK);
++// ioctl(avs, AVSIOSSCARTPIN8, &fnc_old);
++// ioctl(saa, SAAIOSWSS, &saa_old);
++// close(avs);
++// close(saa);
++
++// fcntl(rc, F_SETFL, O_NONBLOCK);
++ close(rc);
++ close(kb);
+
+ ClearEntries (LEFTFRAME );
+ ClearEntries (RIGHTFRAME);
+@@ -1361,9 +1317,6 @@
+ ClearMarker (RIGHTFRAME);
+ ClearZipEntries(LEFTFRAME );
+ ClearZipEntries(RIGHTFRAME);
+-#ifdef HAVE_DREAMBOX_HARDWARE
+- if (kb != -1) close(kb);
+-#endif
+ return;
+ }
+
+@@ -1415,7 +1368,7 @@
+ RenderString(colorline[colortool[i]*NUM_LANG+language], (viewx/COLORBUTTONS) *i , viewy- FONT_OFFSET_BIG , viewx/COLORBUTTONS, CENTER, SMALL , (i == 2 ? BLACK : WHITE));
+ }
+ if (refresh == YES)
+- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
++ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
+
+ }
+
+@@ -1701,7 +1654,7 @@
+
+ RenderBox(viewx/2 + 2* BORDERSIZE , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT , viewx/2 + 2* BORDERSIZE +BUTTONWIDTH ,viewy-(viewy-he)/2- 2* BORDERSIZE , GRID, (sel == 1 ? WHITE : GREEN));
+ RenderBox(viewx/2 + 2* BORDERSIZE +1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 + 2* BORDERSIZE +BUTTONWIDTH -1,viewy-(viewy-he)/2- 2* BORDERSIZE-1, GRID, (sel == 1 ? WHITE : GREEN));
+- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
++ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
+ break;
+ case 2:
+ RenderBox(viewx/2 - 4* BORDERSIZE - BUTTONWIDTH - BUTTONWIDTH/2 , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT , viewx/2 - 4* BORDERSIZE - BUTTONWIDTH/2 ,viewy-(viewy-he)/2- 2* BORDERSIZE , GRID, (sel == 0 ? WHITE : RED ));
+@@ -1712,7 +1665,7 @@
+
+ RenderBox(viewx/2 + 4* BORDERSIZE + BUTTONWIDTH/2 , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT , viewx/2 + 4* BORDERSIZE +BUTTONWIDTH + BUTTONWIDTH/2 ,viewy-(viewy-he)/2- 2* BORDERSIZE , GRID, (sel == 2 ? BLACK : YELLOW ));
+ RenderBox(viewx/2 + 4* BORDERSIZE + BUTTONWIDTH/2 +1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 + 4* BORDERSIZE +BUTTONWIDTH + BUTTONWIDTH/2-1,viewy-(viewy-he)/2- 2* BORDERSIZE-1, GRID, (sel == 2 ? BLACK : YELLOW ));
+- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
++ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
+ break;
+ case 4:
+ RenderBox(viewx/2 - 4* BORDERSIZE - BUTTONWIDTH - BUTTONWIDTH/2 , viewy-(viewy-he)/2 - 4*BORDERSIZE - 2*BUTTONHEIGHT , viewx/2 - 4* BORDERSIZE - BUTTONWIDTH/2 ,viewy-(viewy-he)/2- 4* BORDERSIZE - BUTTONHEIGHT , GRID, (sel == 0 ? WHITE : RED ));
+@@ -1729,7 +1682,7 @@
+
+ RenderBox(viewx/2 + 2* BORDERSIZE , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT , viewx/2 + 4* BORDERSIZE +BUTTONWIDTH + BUTTONWIDTH/2 ,viewy-(viewy-he)/2- 2* BORDERSIZE , GRID, (sel == 4 ? WHITE : BLUE2 ));
+ RenderBox(viewx/2 + 2* BORDERSIZE +1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 + 4* BORDERSIZE +BUTTONWIDTH + BUTTONWIDTH/2-1,viewy-(viewy-he)/2- 2* BORDERSIZE -1, GRID, (sel == 4 ? WHITE : BLUE2 ));
+- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
++ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
+ break;
+ }
+ drawsel = 0;
+@@ -1812,7 +1765,7 @@
+ RenderBox((viewx-BUTTONWIDTH)/2 , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT, viewx - (viewx-BUTTONWIDTH)/2,viewy-(viewy-he)/2 - 2*BORDERSIZE , GRID, WHITE);
+ break;
+ }
+- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
++ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
+ }
+
+ /******************************************************************************
+@@ -1953,7 +1906,7 @@
+ RenderBox(viewx/2 - 2* BORDERSIZE -BUTTONWIDTH+1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 - 2* BORDERSIZE -1,viewy-(viewy-he)/2- 2* BORDERSIZE-1, GRID, (sel == YES ? WHITE : RED ));
+ RenderBox(viewx/2 + 2* BORDERSIZE , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT , viewx/2 + 2* BORDERSIZE +BUTTONWIDTH ,viewy-(viewy-he)/2- 2* BORDERSIZE , GRID, (sel == NO ? WHITE : GREEN));
+ RenderBox(viewx/2 + 2* BORDERSIZE +1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 + 2* BORDERSIZE +BUTTONWIDTH-1,viewy-(viewy-he)/2- 2* BORDERSIZE-1, GRID, (sel == NO ? WHITE : GREEN));
+- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
++ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
+ drawsel = 0;
+ }
+
+@@ -2097,7 +2050,7 @@
+ RenderBox(viewx/2 - 2* BORDERSIZE -BUTTONWIDTH+1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 - 2* BORDERSIZE -1,viewy-(viewy-he)/2- 2* BORDERSIZE-1, GRID, (sel == YES ? WHITE : RED ));
+ RenderBox(viewx/2 + 2* BORDERSIZE , viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT , viewx/2 + 2* BORDERSIZE +BUTTONWIDTH ,viewy-(viewy-he)/2- 2* BORDERSIZE , GRID, (sel == NO ? WHITE : GREEN));
+ RenderBox(viewx/2 + 2* BORDERSIZE +1, viewy-(viewy-he)/2 - 2*BORDERSIZE - BUTTONHEIGHT+1, viewx/2 + 2* BORDERSIZE +BUTTONWIDTH-1,viewy-(viewy-he)/2- 2* BORDERSIZE-1, GRID, (sel == NO ? WHITE : GREEN));
+- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
++ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
+ drawsel = 0;
+ }
+ if (end == YES)
+@@ -2156,7 +2109,7 @@
+ }
+ RenderString(szEntry,(viewx-wi)/2+ BORDERSIZE , (viewy-he)/2 + BORDERSIZE + (i+1)*FONTHEIGHT_BIG-FONT_OFFSET , wi, CENTER, BIG, WHITE);
+ }
+- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
++ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
+ int drawsel = 0;
+ do{
+ GetRCCode(RC_NORMAL);
+@@ -2175,8 +2128,8 @@
+ return;
+ case 2:
+ screenmode = 1-screenmode;
+- ioctl(avs, AVSIOSSCARTPIN8, &fncmodes[screenmode]);
+- ioctl(saa, SAAIOSWSS, &saamodes[screenmode]);
++ //ioctl(avs, AVSIOSSCARTPIN8, &fncmodes[screenmode]);
++ //ioctl(saa, SAAIOSWSS, &saamodes[screenmode]);
+ return;
+ case 3:
+ SetPassword();
+@@ -2275,7 +2228,7 @@
+ }
+ RenderString(szEntry,(viewx-wi)/2+ BORDERSIZE , (viewy-he)/2 + BORDERSIZE + (i+1)*FONTHEIGHT_BIG-FONT_OFFSET , wi, CENTER, BIG, WHITE);
+ }
+- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
++ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
+ drawsel = 0;
+ }
+ }while(1);
+@@ -2372,7 +2325,7 @@
+ colortool[3] = (pass == NO ? ACTION_INSTEXT : ACTION_NOACTION);
+ RenderMenuLine(-1, EDIT);
+
+- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
++ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
+
+ do{
+ while (GetRCCode(RC_EDIT) == 0);
+@@ -2688,7 +2641,7 @@
+ colortool[3] = ACTION_NOACTION;
+ }
+ RenderMenuLine(-1, EDIT);
+- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
++ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
+ }while(1);
+
+ rccode = -1;
+@@ -3741,7 +3694,7 @@
+ p = p1+1;
+ }
+ pStop = p;
+- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
++ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
+ while (GetRCCode(RC_NORMAL) == 0);
+ switch (rccode)
+ {
+@@ -4160,7 +4113,7 @@
+ }
+ RenderBox( viewx/6 +3*BORDERSIZE, BORDERSIZE+FONTHEIGHT_BIG , viewx/6 + 4*BORDERSIZE, viewy-MENUSIZE , FILL, WHITE);
+ RenderBox( viewx/3 -2*BORDERSIZE, BORDERSIZE+FONTHEIGHT_BIG , viewx/3 - BORDERSIZE, viewy-MENUSIZE , FILL, WHITE);
+- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
++ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
+ while (GetRCCode(RC_NORMAL) == 0);
+ switch (rccode)
+ {
+@@ -4666,7 +4619,7 @@
+
+ if (row > framerows - 2)
+ {
+- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
++ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
+ while (1)
+ {
+ GetRCCode(RC_NORMAL);
+@@ -4687,7 +4640,7 @@
+ }
+ if (row>0)
+ {
+- memcpy(lfb, lbb, var_screeninfo.xres*var_screeninfo.yres);
++ memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
+ while (1)
+ {
+ GetRCCode(RC_NORMAL);
+@@ -4773,10 +4726,10 @@
+ finfo[LEFTFRAME].sort = SORT_UP;
+ finfo[RIGHTFRAME].sort = SORT_UP;
+
+- fp = fopen( CONFIGDIR "/tuxcom.conf", "r" );
++ fp = fopen( "/etc/tuxbox/tuxcom.conf", "r" );
+ if ( !fp )
+ {
+- printf("tuxcom: could not open " CONFIGDIR "/tuxcom.conf !!!\n");
++ printf("tuxcom: could not open /etc/tuxbox/tuxcom.conf !!!\n");
+ }
+ else
+ {
+@@ -4890,10 +4843,10 @@
+ FILE *fp;
+
+
+- fp = fopen( CONFIGDIR "/tuxcom.conf", "w" );
++ fp = fopen( "/etc/tuxbox/tuxcom.conf", "w" );
+ if ( !fp )
+ {
+- printf("tuxcom: could not open " CONFIGDIR "/tuxcom.conf !!!\n");
++ printf("tuxcom: could not open /etc/tuxbox/tuxcom.conf !!!\n");
+ }
+ else
+ {
+diff -u tuxcom_cvs/tuxcom.h tuxcom/tuxcom.h
+--- tuxcom_cvs/tuxcom.h 2008-11-03 13:15:00.000000000 +0100
++++ tuxcom/tuxcom.h 2006-06-29 23:44:25.000000000 +0200
+@@ -22,7 +22,7 @@
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA
+ */
+
+-#include <config.h>
++//#include <config.h>
+ #include <errno.h>
+ #include <locale.h>
+ #include <fcntl.h>
+@@ -37,10 +37,10 @@
+ #include <sys/mman.h>
+ #include <sys/dir.h>
+ #include <sys/stat.h>
+-#include <plugin.h>
++//#include <plugin.h>
+
+-#include <dbox/avs_core.h>
+-#include <dbox/saa7126_core.h>
++//#include <dbox/avs_core.h>
++//#include <dbox/saa7126_core.h>
+
+ #include <netinet/in.h>
+ #include <netdb.h>
+@@ -53,12 +53,10 @@
+ #include FT_CACHE_SMALL_BITMAPS_H
+
+
+-#ifndef HAVE_DREAMBOX_HARDWARE
+ #include <linux/input.h>
+-#endif
+
+-#define AVS "/dev/dbox/avs0"
+-#define SAA "/dev/dbox/saa0"
++//#define AVS "/dev/dbox/avs0"
++//#define SAA "/dev/dbox/saa0"
+
+ #define MENUROWS 10
+ #define MENUITEMS 10
+@@ -80,64 +78,6 @@
+ #define MSG_VERSION "Tuxbox Commander Version 1.13\n"
+ #define MSG_COPYRIGHT "© dbluelle 2004-2005"
+
+-#ifdef HAVE_DREAMBOX_HARDWARE
+-
+-//rc codes
+-#define KEY_0 0x5C00
+-#define KEY_1 0x5C01
+-#define KEY_2 0x5C02
+-#define KEY_3 0x5C03
+-#define KEY_4 0x5C04
+-#define KEY_5 0x5C05
+-#define KEY_6 0x5C06
+-#define KEY_7 0x5C07
+-#define KEY_8 0x5C08
+-#define KEY_9 0x5C09
+-#define KEY_POWER 0x5C0C
+-#define KEY_UP 0x5C0E
+-#define KEY_DOWN 0x5C0F
+-#define KEY_VOLUMEUP 0x5C16
+-#define KEY_VOLUMEDOWN 0x5C17
+-#define KEY_HOME 0x5C20
+-#define KEY_SETUP 0x5C27
+-#define KEY_MUTE 0x5C28
+-#define KEY_RED 0x5C2D
+-#define KEY_RIGHT 0x5C2E
+-#define KEY_LEFT 0x5C2F
+-#define KEY_OK 0x5C30
+-#define KEY_BLUE 0x5C3B
+-#define KEY_YELLOW 0x5C52
+-#define KEY_GREEN 0x5C55
+-#define KEY_HELP 0x5C82
+-
+-#define RC_0 0x00
+-#define RC_1 0x01
+-#define RC_2 0x02
+-#define RC_3 0x03
+-#define RC_4 0x04
+-#define RC_5 0x05
+-#define RC_6 0x06
+-#define RC_7 0x07
+-#define RC_8 0x08
+-#define RC_9 0x09
+-#define RC_RIGHT 0x0A
+-#define RC_LEFT 0x0B
+-#define RC_UP 0x0C
+-#define RC_DOWN 0x0D
+-#define RC_OK 0x0E
+-#define RC_MUTE 0x0F
+-#define RC_STANDBY 0x10
+-#define RC_GREEN 0x11
+-#define RC_YELLOW 0x12
+-#define RC_RED 0x13
+-#define RC_BLUE 0x14
+-#define RC_PLUS 0x15
+-#define RC_MINUS 0x16
+-#define RC_HELP 0x17
+-#define RC_DBOX 0x18
+-#define RC_HOME 0x1F
+-
+-#else
+ // rc codes
+ #define RC_0 '0'
+ #define RC_1 '1'
+@@ -247,12 +187,13 @@
+ #define KBC_PAGEDOWN 0x0C
+ #define KBC_RETURN 0x0D
+
+-#endif
++
+
+
+ //freetype stuff
+
+-#define FONT FONTDIR "/pakenham.ttf"
++//#define FONT "/usr/share/fonts/md_khmurabi_10.ttf"
++#define FONT "/usr/share/fonts/pakenham.ttf"
+ // if font is not in usual place, we look here:
+ #define FONT2 "/var/tuxbox/config/enigma/fonts/pakenham.ttf"
+
+@@ -265,11 +206,7 @@
+ FTC_Manager manager;
+ FTC_SBitCache cache;
+ FTC_SBit sbit;
+-#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR == 0
+ FTC_Image_Desc desc;
+-#else
+-FTC_ImageTypeRec desc;
+-#endif
+ FT_Face face;
+ FT_UInt prev_glyphindex;
+ FT_Bool use_kerning;
+@@ -296,6 +233,14 @@
+ struct fb_fix_screeninfo fix_screeninfo;
+ struct fb_var_screeninfo var_screeninfo;
+
++unsigned char bgra[][4] = {
++"\x00\x00\x00\x00", "\xFF\xFF\xFF\xFF", "\x00\x00\x00\xFF", "\x80\x00\x00\xFF",
++"\xFF\x80\x00\xFF", "\x00\xC0\xFF\xFF", "\x00\xD0\x00\xFF", "\x00\xE8\xE8\xFF",
++"\x00\x00\xFF\xFF", "\xB0\xB0\xB0\xFF", "\x00\xFF\x00\xFF", "\x50\x50\x50\xFF",
++"\x80\x00\x00\xC0", "\x50\x50\x50\xC0", "\xFF\x40\x00\xFf" };
++
++
++
+ unsigned short rd[] = {0xFF<<8, 0x00<<8, 0x00<<8, 0x00<<8, 0xFF<<8, 0x00<<8, 0xE8<<8, 0xFF<<8, 0xb0<<8, 0x00<<8, 0x50<<8, 0x00<<8, 0x50<<8, 0x00<<8};
+ unsigned short gn[] = {0xFF<<8, 0x00<<8, 0x00<<8, 0x80<<8, 0xC0<<8, 0xd0<<8, 0xE8<<8, 0x00<<8, 0xb0<<8, 0xff<<8, 0x50<<8, 0x00<<8, 0x50<<8, 0x40<<8};
+ unsigned short bl[] = {0xFF<<8, 0x00<<8, 0x80<<8, 0xFF<<8, 0x00<<8, 0x00<<8, 0x00<<8, 0x00<<8, 0xb0<<8, 0x00<<8, 0x50<<8, 0x80<<8, 0x50<<8, 0xff<<8};
+@@ -306,9 +251,7 @@
+ int trans_map [] = {BLUE1,BLUE_TRANSP,TRANSP};
+ int trans_map_mark[] = {GRAY2,GRAY_TRANSP,GRAY_TRANSP};
+
+-#ifndef HAVE_DREAMBOX_HARDWARE
+ struct input_event ev;
+-#endif
+
+ unsigned short rccode;
+ char kbcode;
+@@ -338,8 +281,8 @@
+ char szPass[20];
+ long commandsize;
+
+-int fncmodes[] = {AVS_FNCOUT_EXT43, AVS_FNCOUT_EXT169};
+-int saamodes[] = {SAA_WSS_43F, SAA_WSS_169F};
++//int fncmodes[] = {AVS_FNCOUT_EXT43, AVS_FNCOUT_EXT169};
++//int saamodes[] = {SAA_WSS_43F, SAA_WSS_169F};
+
+ FILE *conf;
+ int language, langselect, autosave;
--- /dev/null
+--- tuxcom/tuxcom.c 2006-06-29 23:44:21.000000000 +0200
++++ tuxcom/tuxcom.c 2008-10-22 22:34:16.000000000 +0200
+@@ -36,7 +36,8 @@
+ struct input_event ev;
+ static __u16 rc_last_key = KEY_RESERVED;
+ static __u16 rc_last_code = KEY_RESERVED;
+- if(read(rc, &ev, sizeof(ev)) == sizeof(ev))
++ if ((read(rc[0], &ev, sizeof(ev)) == sizeof(ev)) ||
++ (rc[1] != -1 && read(rc[1], &ev, sizeof(ev)) == sizeof(ev)))
+ {
+ if(ev.value)
+ {
+@@ -466,14 +467,16 @@
+ //get params
+
+
+- kb = fb = rc = sx = ex = sy = ey = -1;
++ kb = fb = sx = ex = sy = ey = -1;
+
+ /* open Framebuffer */
+ fb=open("/dev/fb/0", O_RDWR);
+
+ /* open Remote Control */
+- int cnt=0;
+- while(1)
++ int cnt=0, rc_num=0;
++ rc[0]=rc[1]=-1;
++
++ while(rc_num < 2)
+ {
+ struct stat s;
+ char tmp[128];
+@@ -481,20 +484,20 @@
+ if (stat(tmp, &s))
+ break;
+ /* open Remote Control */
+- if ((rc=open(tmp, O_RDONLY)) == -1)
++ if ((rc[rc_num]=open(tmp, O_RDONLY | O_EXCL | O_NONBLOCK)) == -1)
+ {
+ perror("TuxCom <open remote control>");
+ return 0;
+ }
+- if (ioctl(rc, EVIOCGNAME(128), tmp) < 0)
++ if (ioctl(rc[rc_num], EVIOCGNAME(128), tmp) < 0)
+ perror("EVIOCGNAME failed");
+- if (strstr(tmp, "remote control"))
+- break;
+- close(rc);
+- rc=-1;
++ if (!strstr(tmp, "remote control"))
++ close(rc[rc_num]);
++ else
++ ++rc_num;
+ ++cnt;
+ }
+- fcntl(rc, F_SETFL, fcntl(rc, F_GETFL) | O_EXCL | O_NONBLOCK);
++// fcntl(rc, F_SETFL, fcntl(rc, F_GETFL) | O_EXCL | O_NONBLOCK);
+
+ /* open dream ir keyboard */
+ cnt=0;
+@@ -1308,7 +1311,10 @@
+ // close(saa);
+
+ // fcntl(rc, F_SETFL, O_NONBLOCK);
+- close(rc);
++ if (rc[0] != -1)
++ close(rc[0]);
++ if (rc[1] != -1)
++ close(rc[1]);
+ close(kb);
+
+ ClearEntries (LEFTFRAME );
+--- tuxcom/tuxcom.h 2006-06-29 23:44:25.000000000 +0200
++++ tuxcom/tuxcom.h 2008-10-22 22:29:15.000000000 +0200
+@@ -259,7 +259,7 @@
+ //some data
+
+ int avs, saa, fnc_old, saa_old, screenmode;
+-int rc, fb, kb;
++int rc[2], fb, kb;
+ int sx, ex, sy, ey;
+ int PosX, PosY, StartX, StartY, FrameWidth, NameWidth, SizeWidth;
+ int curframe, cursort, curvisibility;
--- /dev/null
+diff -Naur tuxcom_cvs/configure.ac tuxcom/configure.ac
+--- tuxcom/configure.ac 2008-11-03 14:19:50.000000000 +0100
++++ tuxcom/configure.ac 2008-11-03 14:20:00.329914467 +0100
+@@ -16,3 +16,4 @@
+
+ AC_OUTPUT(Makefile)
+ AC_OUTPUT(font/Makefile)
++AC_OUTPUT(python/Makefile)
+--- tuxcom/Makefile.am 2008-11-03 14:18:28.000000000 +0100
++++ tuxcom/Makefile.am 2008-11-03 14:18:52.353917804 +0100
+@@ -1,6 +1,6 @@
+ INCLUDES = -I$(top_srcdir)/include
+
+-SUBDIRS = font
++SUBDIRS = font python
+
+ bin_PROGRAMS = tuxcom
+
+diff -Naur tuxcom_cvs/python/Makefile.am tuxcom/python/Makefile.am
+--- tuxcom_cvs/python/Makefile.am 1970-01-01 01:00:00.000000000 +0100
++++ tuxcom/python/Makefile.am 2008-11-03 13:56:54.425916639 +0100
+@@ -0,0 +1,5 @@
++installdir = $(LIBDIR)/enigma2/python/Plugins/Extensions/Tuxcom
++
++install_DATA = \
++ plugin.py \
++ __init__.py
+diff -Naur tuxcom_cvs/python/plugin.py tuxcom/python/plugin.py
+--- tuxcom_cvs/python/plugin.py 1970-01-01 01:00:00.000000000 +0100
++++ tuxcom/python/plugin.py 2008-11-03 14:22:15.705918505 +0100
+@@ -0,0 +1,35 @@
++from enigma import *
++from Screens.Screen import Screen
++from Plugins.Plugin import PluginDescriptor
++
++class TuxComStarter(Screen):
++ skin = """
++ <screen position="1,1" size="1,1" title="TuxCom" >
++ </screen>"""
++
++ def __init__(self, session, args = None):
++ self.skin = TuxComStarter.skin
++ Screen.__init__(self, session)
++ self.container=eConsoleAppContainer()
++ self.container.appClosed.append(self.finished)
++ self.runapp()
++
++ def runapp(self):
++ eDBoxLCD.getInstance().lock()
++ eRCInput.getInstance().lock()
++ fbClass.getInstance().lock()
++ if self.container.execute("/usr/plugins/tuxcom"):
++ self.finished(-1)
++
++ def finished(self,retval):
++ fbClass.getInstance().unlock()
++ eRCInput.getInstance().unlock()
++ eDBoxLCD.getInstance().unlock()
++ self.close()
++
++def main(session, **kwargs):
++ session.open(TuxComStarter)
++
++def Plugins(**kwargs):
++ return PluginDescriptor(name="TuxCom", description="TuxBox Commander", where = PluginDescriptor.WHERE_PLUGINMENU, fnc=main)
++
--- /dev/null
+--- tuxcom_cvs/Makefile.am 2008-11-03 15:29:58.993914127 +0100
++++ tuxcom/Makefile.am 2008-11-03 15:32:42.677915776 +0100
+@@ -1,22 +1,15 @@
++INCLUDES = -I$(top_srcdir)/include
+
+-AM_CPPFLAGS = \
+- @FREETYPE_CFLAGS@ \
+- -I$(top_srcdir)/include
++SUBDIRS = font
+
+-noinst_LTLIBRARIES = tuxcom.la
++bin_PROGRAMS = tuxcom
+
+-#tuxcom_la_CFLAGS = -DDREAMBOX
++tuxcom_SOURCES = tuxcom.c
+
+-tuxcom_la_SOURCES = tuxcom.c
++tuxcom_LDADD = @FREETYPE_LIBS@
+
+-tuxcom_la_LIBADD = \
+- @FREETYPE_LIBS@
+-
++install_DATA = tuxcom.cfg
+
+-tuxcom_la_LDFLAGS = -rpath $(PLUGINDIR) -module -avoid-version
++AM_CFLAGS=$(CFLAGS) @FREETYPE_CFLAGS@
+
+-install-exec-local:
+- install -d $(DESTDIR)$(PLUGINDIR)
+- install -d $(DESTDIR)$(CONFIGDIR)
+- $(LIBTOOL) --mode=install install tuxcom.la $(DESTDIR)$(PLUGINDIR)
+- install -m 0644 $(srcdir)/tuxcom.cfg $(DESTDIR)$(PLUGINDIR)
++installdir = $(CONFIGDIR)/tuxcom
+--- tuxcom_cvs/acinclude.m4 1970-01-01 01:00:00.000000000 +0100
++++ tuxcom/acinclude.m4 2006-03-04 02:45:15.000000000 +0100
+@@ -0,0 +1,434 @@
++AC_DEFUN(TUXBOX_APPS,[
++AM_CONFIG_HEADER(config.h)
++AM_MAINTAINER_MODE
++
++INSTALL="$INSTALL -p"
++
++AC_GNU_SOURCE
++AC_SYS_LARGEFILE
++
++AC_ARG_WITH(target,
++ [ --with-target=TARGET target for compilation [[native,cdk]]],
++ [TARGET="$withval"],[TARGET="native"])
++
++AC_ARG_WITH(targetprefix,
++ [ --with-targetprefix=PATH prefix relative to target root (only applicable in cdk mode)],
++ [targetprefix="$withval"],[targetprefix="NONE"])
++
++AC_ARG_WITH(debug,
++ [ --without-debug disable debugging code],
++ [DEBUG="$withval"],[DEBUG="yes"])
++
++if test "$DEBUG" = "yes"; then
++ DEBUG_CFLAGS="-g3 -ggdb"
++ AC_DEFINE(DEBUG,1,[Enable debug messages])
++fi
++
++AC_MSG_CHECKING(target)
++
++if test "$TARGET" = "native"; then
++ AC_MSG_RESULT(native)
++
++ if test "$CFLAGS" = "" -a "$CXXFLAGS" = ""; then
++ CFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS"
++ CXXFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS"
++ fi
++ if test "$prefix" = "NONE"; then
++ prefix=/usr/local
++ fi
++ targetprefix=$prefix
++elif test "$TARGET" = "cdk"; then
++ AC_MSG_RESULT(cdk)
++
++ if test "$CC" = "" -a "$CXX" = ""; then
++ CC=powerpc-tuxbox-linux-gnu-gcc CXX=powerpc-tuxbox-linux-gnu-g++
++ fi
++ if test "$CFLAGS" = "" -a "$CXXFLAGS" = ""; then
++ CFLAGS="-Wall -Os -mcpu=823 -pipe $DEBUG_CFLAGS"
++ CXXFLAGS="-Wall -Os -mcpu=823 -pipe $DEBUG_CFLAGS"
++ fi
++ if test "$prefix" = "NONE"; then
++ AC_MSG_ERROR(invalid prefix, you need to specify one in cdk mode)
++ fi
++ if test "$targetprefix" = "NONE"; then
++ targetprefix=""
++ fi
++ if test "$host_alias" = ""; then
++ cross_compiling=yes
++ host_alias=powerpc-tuxbox-linux-gnu
++ fi
++else
++ AC_MSG_RESULT(none)
++ AC_MSG_ERROR([invalid target $TARGET, choose on from native,cdk]);
++fi
++
++AC_CANONICAL_BUILD
++AC_CANONICAL_HOST
++
++check_path () {
++ return $(perl -e "if(\"$1\"=~m#^/usr/(local/)?bin#){print \"0\"}else{print \"1\";}")
++}
++
++])
++
++AC_DEFUN(TUXBOX_APPS_DIRECTORY_ONE,[
++AC_ARG_WITH($1,[ $6$7 [[PREFIX$4$5]]],[
++ _$2=$withval
++ if test "$TARGET" = "cdk"; then
++ $2=`eval echo "${targetprefix}$withval"`
++ else
++ $2=$withval
++ fi
++],[
++ $2="\${$3}$5"
++ if test "$TARGET" = "cdk"; then
++ _$2=`eval echo "${target$3}$5"`
++ else
++ _$2=`eval echo "${$3}$5"`
++ fi
++])
++
++dnl automake <= 1.6 don't support this
++dnl AC_SUBST($2)
++AC_DEFINE_UNQUOTED($2,"$_$2",$7)
++])
++
++AC_DEFUN(TUXBOX_APPS_DIRECTORY,[
++AC_REQUIRE([TUXBOX_APPS])
++
++if test "$TARGET" = "cdk"; then
++ datadir="\${prefix}/share"
++ tuxboxdatadir="\${prefix}/share/tuxbox"
++ zoneinfodir="\${datadir}/zoneinfo"
++ sysconfdir="\${prefix}/etc"
++ localstatedir="\${prefix}/var"
++ localedir="\${prefix}/var"
++ libdir="\${prefix}/lib"
++ targetdatadir="\${targetprefix}/share"
++ targetsysconfdir="\${targetprefix}/etc"
++ targetlocalstatedir="\${targetprefix}/var"
++ targetlibdir="\${targetprefix}/lib"
++fi
++
++TUXBOX_APPS_DIRECTORY_ONE(configdir,CONFIGDIR,sysconfdir,/etc,,
++ [--with-configdir=PATH ],[where to find the config files])
++
++TUXBOX_APPS_DIRECTORY_ONE(datadir,DATADIR,datadir,/share,,
++ [--with-datadir=PATH ],[where to find data])
++
++TUXBOX_APPS_DIRECTORY_ONE(localedir,LOCALEDIR,datadir,/share,/locale,
++ [--with-localedir=PATH ],[where to find locales])
++
++TUXBOX_APPS_DIRECTORY_ONE(fontdir,FONTDIR,datadir,/share,/fonts,
++ [--with-fontdir=PATH ],[where to find the fonts])
++
++TUXBOX_APPS_DIRECTORY_ONE(gamesdir,GAMESDIR,localstatedir,/var,/tuxbox/games,
++ [--with-gamesdir=PATH ],[where games data is stored])
++
++TUXBOX_APPS_DIRECTORY_ONE(libdir,LIBDIR,libdir,/lib,,
++ [--with-libdir=PATH ],[where to find the internal libs])
++
++TUXBOX_APPS_DIRECTORY_ONE(plugindir,PLUGINDIR,libdir,/lib,/tuxbox/plugins,
++ [--with-plugindir=PATH ],[where to find the plugins])
++
++TUXBOX_APPS_DIRECTORY_ONE(tuxboxdatadir,TUXBOXDATADIR,datadir,/share,,
++ [--with-tuxboxdatadir=PATH],[where to find tuxbox data])
++
++TUXBOX_APPS_DIRECTORY_ONE(zoneinfodir,ZONEINFODIR,datadir,/share,/zoneinfo,
++ [--with-zoneinfodir=PATH ],[where to find zoneinfo db])
++])
++
++dnl automake <= 1.6 needs this specifications
++AC_SUBST(CONFIGDIR)
++AC_SUBST(DATADIR)
++AC_SUBST(ZONEINFODIR)
++AC_SUBST(FONTDIR)
++AC_SUBST(GAMESDIR)
++AC_SUBST(LIBDIR)
++AC_SUBST(LOCALEDIR)
++AC_SUBST(PLUGINDIR)
++AC_SUBST(TUXBOXDATADIR)
++dnl end workaround
++
++AC_DEFUN(TUXBOX_APPS_ENDIAN,[
++AC_CHECK_HEADERS(endian.h)
++AC_C_BIGENDIAN
++])
++
++AC_DEFUN(TUXBOX_APPS_DRIVER,[
++#AC_ARG_WITH(driver,
++# [ --with-driver=PATH path for driver sources [[NONE]]],
++# [DRIVER="$withval"],[DRIVER=""])
++#
++#if test -d "$DRIVER/include"; then
++# AC_DEFINE(HAVE_DBOX2_DRIVER,1,[Define to 1 if you have the dbox2 driver sources])
++#else
++# AC_MSG_ERROR([can't find driver sources])
++#fi
++
++#AC_SUBST(DRIVER)
++
++#CPPFLAGS="$CPPFLAGS -I$DRIVER/include"
++])
++
++AC_DEFUN([TUXBOX_APPS_DVB],[
++AC_ARG_WITH(dvbincludes,
++ [ --with-dvbincludes=PATH path for dvb includes [[NONE]]],
++ [DVBINCLUDES="$withval"],[DVBINCLUDES=""])
++
++if test "$DVBINCLUDES"; then
++ CPPFLAGS="$CPPFLAGS -I$DVBINCLUDES"
++fi
++
++AC_CHECK_HEADERS(ost/dmx.h,[
++ DVB_API_VERSION=1
++ AC_MSG_NOTICE([found dvb version 1])
++])
++
++if test -z "$DVB_API_VERSION"; then
++AC_CHECK_HEADERS(linux/dvb/version.h,[
++ AC_LANG_PREPROC_REQUIRE()
++ AC_REQUIRE([AC_PROG_EGREP])
++ AC_LANG_CONFTEST([AC_LANG_SOURCE([[
++#include <linux/dvb/version.h>
++version DVB_API_VERSION
++ ]])])
++ DVB_API_VERSION=`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | $EGREP "^version" | sed "s,version\ ,,"`
++ rm -f conftest*
++
++ AC_MSG_NOTICE([found dvb version $DVB_API_VERSION])
++])
++fi
++
++if test "$DVB_API_VERSION"; then
++ AC_DEFINE(HAVE_DVB,1,[Define to 1 if you have the dvb includes])
++ AC_DEFINE_UNQUOTED(HAVE_DVB_API_VERSION,$DVB_API_VERSION,[Define to the version of the dvb api])
++else
++ AC_MSG_ERROR([can't find dvb headers])
++fi
++])
++
++AC_DEFUN(_TUXBOX_APPS_LIB_CONFIG,[
++AC_PATH_PROG($1_CONFIG,$2,no)
++if test "$$1_CONFIG" != "no"; then
++ if test "$TARGET" = "cdk" && check_path "$$1_CONFIG"; then
++ AC_MSG_$3([could not find a suitable version of $2]);
++ else
++ $1_CFLAGS=$($$1_CONFIG --cflags)
++ $1_LIBS=$($$1_CONFIG --libs)
++ fi
++fi
++
++AC_SUBST($1_CFLAGS)
++AC_SUBST($1_LIBS)
++])
++
++AC_DEFUN(TUXBOX_APPS_LIB_CONFIG,[
++_TUXBOX_APPS_LIB_CONFIG($1,$2,ERROR)
++if test "$$1_CONFIG" = "no"; then
++ AC_MSG_ERROR([could not find $2]);
++fi
++])
++
++AC_DEFUN(TUXBOX_APPS_LIB_CONFIG_CHECK,[
++_TUXBOX_APPS_LIB_CONFIG($1,$2,WARN)
++])
++
++AC_DEFUN(TUXBOX_APPS_PKGCONFIG,[
++AC_PATH_PROG(PKG_CONFIG, pkg-config,no)
++if test "$PKG_CONFIG" = "no" ; then
++ AC_MSG_ERROR([could not find pkg-config]);
++fi
++])
++
++AC_DEFUN(_TUXBOX_APPS_LIB_PKGCONFIG,[
++PKG_CHECK_MODULES($1,$2)
++AC_SUBST($1_CFLAGS)
++AC_SUBST($1_LIBS)
++])
++
++AC_DEFUN(TUXBOX_APPS_LIB_PKGCONFIG,[
++_TUXBOX_APPS_LIB_PKGCONFIG($1,$2)
++if test -z "$$1_CFLAGS" ; then
++ AC_MSG_ERROR([could not find package $2]);
++fi
++])
++
++AC_DEFUN(TUXBOX_APPS_LIB_PKGCONFIG_CHECK,[
++_TUXBOX_APPS_LIB_PKGCONFIG($1,$2)
++])
++
++AC_DEFUN(_TUXBOX_APPS_LIB_SYMBOL,[
++AC_CHECK_LIB($2,$3,HAVE_$1="yes",HAVE_$1="no")
++if test "$HAVE_$1" = "yes"; then
++ $1_LIBS=-l$2
++fi
++
++AC_SUBST($1_LIBS)
++])
++
++AC_DEFUN(TUXBOX_APPS_LIB_SYMBOL,[
++_TUXBOX_APPS_LIB_SYMBOL($1,$2,$3,ERROR)
++if test "$HAVE_$1" = "no"; then
++ AC_MSG_ERROR([could not find $2]);
++fi
++])
++
++AC_DEFUN(TUXBOX_APPS_LIB_CONFIG_SYMBOL,[
++_TUXBOX_APPS_LIB_SYMBOL($1,$2,$3,WARN)
++])
++
++AC_DEFUN(TUXBOX_APPS_GETTEXT,[
++AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
++ [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
++ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
++ :)
++AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
++
++AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
++ [$ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
++ (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
++ :)
++
++AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,[$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1],:)
++
++AC_MSG_CHECKING([whether NLS is requested])
++AC_ARG_ENABLE(nls,
++ [ --disable-nls do not use Native Language Support],
++ USE_NLS=$enableval, USE_NLS=yes)
++AC_MSG_RESULT($USE_NLS)
++AC_SUBST(USE_NLS)
++
++if test "$USE_NLS" = "yes"; then
++ AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,[
++ AC_TRY_LINK([
++ #include <libintl.h>
++ #ifndef __GNU_GETTEXT_SUPPORTED_REVISION
++ #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
++ #endif
++ extern int _nl_msg_cat_cntr;
++ extern int *_nl_domain_bindings;
++ ],[
++ bindtextdomain ("", "");
++ return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings;
++ ], gt_cv_func_gnugettext_libc=yes, gt_cv_func_gnugettext_libc=no
++ )]
++ )
++
++ if test "$gt_cv_func_gnugettext_libc" = "yes"; then
++ AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.])
++ gt_use_preinstalled_gnugettext=yes
++ else
++ USE_NLS=no
++ fi
++fi
++
++if test -f "$srcdir/po/LINGUAS"; then
++ ALL_LINGUAS=$(sed -e "/^#/d" "$srcdir/po/LINGUAS")
++fi
++
++POFILES=
++GMOFILES=
++UPDATEPOFILES=
++DUMMYPOFILES=
++for lang in $ALL_LINGUAS; do
++ POFILES="$POFILES $srcdirpre$lang.po"
++ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
++ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
++ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
++done
++INST_LINGUAS=
++if test -n "$ALL_LINGUAS"; then
++ for presentlang in $ALL_LINGUAS; do
++ useit=no
++ if test -n "$LINGUAS"; then
++ desiredlanguages="$LINGUAS"
++ else
++ desiredlanguages="$ALL_LINGUAS"
++ fi
++ for desiredlang in $desiredlanguages; do
++ case "$desiredlang" in
++ "$presentlang"*) useit=yes;;
++ esac
++ done
++ if test $useit = yes; then
++ INST_LINGUAS="$INST_LINGUAS $presentlang"
++ fi
++ done
++fi
++CATALOGS=
++if test -n "$INST_LINGUAS"; then
++ for lang in $INST_LINGUAS; do
++ CATALOGS="$CATALOGS $lang.gmo"
++ done
++fi
++AC_SUBST(POFILES)
++AC_SUBST(GMOFILES)
++AC_SUBST(UPDATEPOFILES)
++AC_SUBST(DUMMYPOFILES)
++AC_SUBST(CATALOGS)
++])
++
++dnl backward compatiblity
++AC_DEFUN([AC_GNU_SOURCE],
++[AH_VERBATIM([_GNU_SOURCE],
++[/* Enable GNU extensions on systems that have them. */
++#ifndef _GNU_SOURCE
++# undef _GNU_SOURCE
++#endif])dnl
++AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
++AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
++AC_DEFINE([_GNU_SOURCE])
++])
++
++AC_DEFUN([AC_PROG_EGREP],
++[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
++ [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
++ then ac_cv_prog_egrep='grep -E'
++ else ac_cv_prog_egrep='egrep'
++ fi])
++ EGREP=$ac_cv_prog_egrep
++ AC_SUBST([EGREP])
++])
++
++AC_DEFUN([AC_PYTHON_DEVEL],[
++ #
++ # should allow for checking of python version here...
++ #
++ AC_REQUIRE([AM_PATH_PYTHON])
++
++ # Check for Python include path
++ AC_MSG_CHECKING([for Python include path])
++ python_path=`echo $PYTHON | sed "s,/bin.*$,,"`
++ for i in "$python_path/include/python$PYTHON_VERSION/" "$python_path/include/python/" "$python_path/" ; do
++ python_path=`find $i -type f -name Python.h -print | sed "1q"`
++ if test -n "$python_path" ; then
++ break
++ fi
++ done
++ python_path=`echo $python_path | sed "s,/Python.h$,,"`
++ AC_MSG_RESULT([$python_path])
++ if test -z "$python_path" ; then
++ AC_MSG_ERROR([cannot find Python include path])
++ fi
++ AC_SUBST([PYTHON_CPPFLAGS],[-I$python_path])
++
++ # Check for Python library path
++ AC_MSG_CHECKING([for Python library path])
++ python_path=`echo $PYTHON | sed "s,/bin.*$,,"`
++ for i in "$python_path/lib/python$PYTHON_VERSION/config/" "$python_path/lib/python$PYTHON_VERSION/" "$python_path/lib/python/config/" "$python_path/lib/python/" "$python_path/" ; do
++ python_path=`find $i -type f -name libpython$PYTHON_VERSION.* -print | sed "1q"`
++ if test -n "$python_path" ; then
++ break
++ fi
++ done
++ python_path=`echo $python_path | sed "s,/libpython.*$,,"`
++ AC_MSG_RESULT([$python_path])
++ if test -z "$python_path" ; then
++ AC_MSG_ERROR([cannot find Python library path])
++ fi
++ AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -lpython$PYTHON_VERSION"])
++ #
++ python_site=`echo $python_path | sed "s/config/site-packages/"`
++ AC_SUBST([PYTHON_SITE_PKG],[$python_site])
++])
+--- tuxcom_cvs/configure.ac 1970-01-01 01:00:00.000000000 +0100
++++ tuxcom/configure.ac 2008-11-03 14:05:20.449916344 +0100
+@@ -0,0 +1,18 @@
++# -*- Autoconf -*-
++# Process this file with autoconf to produce a configure script.
++
++AC_INIT(tuxbox-tuxcom-32bpp,1.13)
++AM_INIT_AUTOMAKE(tuxbox-tuxcom-32bpp,1.13)
++
++TUXBOX_APPS
++TUXBOX_APPS_DIRECTORY
++TUXBOX_APPS_DVB
++
++# Checks for programs.
++AC_PROG_CXX
++AC_PROG_CC
++
++TUXBOX_APPS_LIB_CONFIG(FREETYPE,freetype-config)
++
++AC_OUTPUT(Makefile)
++AC_OUTPUT(font/Makefile)
+diff -Naur tuxcom_cvs/font/Makefile.am tuxcom/font/Makefile.am
+--- tuxcom_cvs/font/Makefile.am 1970-01-01 01:00:00.000000000 +0100
++++ tuxcom/font/Makefile.am 2008-11-03 13:56:11.917916738 +0100
+@@ -0,0 +1,4 @@
++installdir = $(FONTDIR)
++
++install_DATA = \
++ pakenham.ttf
--- /dev/null
+diff -auNr tuxcom/tuxcom.c tuxcom-freetype/tuxcom.c
+--- tuxcom/tuxcom.c 2008-12-27 16:54:07.000000000 +0100
++++ tuxcom-freetype/tuxcom.c 2008-12-27 16:59:35.000000000 +0100
+@@ -322,9 +322,15 @@
+
+ switch (size)
+ {
++#if ((defined(FREETYPE_MAJOR)) && (((FREETYPE_MAJOR == 2) && (((FREETYPE_MINOR == 1) && (FREETYPE_PATCH >= 9)) || (FREETYPE_MINOR > 1))) || (FREETYPE_MAJOR > 2)))
++ case VERY_SMALL: desc.width = desc.height = FONTHEIGHT_VERY_SMALL; break;
++ case SMALL : desc.width = desc.height = FONTHEIGHT_SMALL ; break;
++ case BIG : desc.width = desc.height = FONTHEIGHT_BIG ; break;
++#else
+ case VERY_SMALL: desc.font.pix_width = desc.font.pix_height = FONTHEIGHT_VERY_SMALL; break;
+ case SMALL : desc.font.pix_width = desc.font.pix_height = FONTHEIGHT_SMALL ; break;
+ case BIG : desc.font.pix_width = desc.font.pix_height = FONTHEIGHT_BIG ; break;
++#endif
+ }
+
+ //reset kerning
+@@ -354,9 +360,15 @@
+
+ switch (size)
+ {
++#if ((defined(FREETYPE_MAJOR)) && (((FREETYPE_MAJOR == 2) && (((FREETYPE_MINOR == 1) && (FREETYPE_PATCH >= 9)) || (FREETYPE_MINOR > 1))) || (FREETYPE_MAJOR > 2)))
++ case VERY_SMALL: desc.width = desc.height = FONTHEIGHT_VERY_SMALL; break;
++ case SMALL : desc.width = desc.height = FONTHEIGHT_SMALL ; break;
++ case BIG : desc.width = desc.height = FONTHEIGHT_BIG ; break;
++#else
+ case VERY_SMALL: desc.font.pix_width = desc.font.pix_height = FONTHEIGHT_VERY_SMALL; break;
+ case SMALL : desc.font.pix_width = desc.font.pix_height = FONTHEIGHT_SMALL ; break;
+ case BIG : desc.font.pix_width = desc.font.pix_height = FONTHEIGHT_BIG ; break;
++#endif
+ }
+
+ //set alignment
+@@ -608,17 +620,26 @@
+ return;
+ }
+ else
++#if ((defined(FREETYPE_MAJOR)) && (((FREETYPE_MAJOR == 2) && (((FREETYPE_MINOR == 1) && (FREETYPE_PATCH >= 9)) || (FREETYPE_MINOR > 1))) || (FREETYPE_MAJOR > 2)))
++ desc.face_id = FONT2;
++#else
+ desc.font.face_id = FONT2;
++#endif
+ }
+ else
++#if ((defined(FREETYPE_MAJOR)) && (((FREETYPE_MAJOR == 2) && (((FREETYPE_MINOR == 1) && (FREETYPE_PATCH >= 9)) || (FREETYPE_MINOR > 1))) || (FREETYPE_MAJOR > 2)))
++ desc.face_id = FONT;
++#else
+ desc.font.face_id = FONT;
+-
++#endif
+
+ use_kerning = FT_HAS_KERNING(face);
+
+-
++#if ((defined(FREETYPE_MAJOR)) && (((FREETYPE_MAJOR == 2) && (((FREETYPE_MINOR == 1) && (FREETYPE_PATCH >= 9)) || (FREETYPE_MINOR > 1))) || (FREETYPE_MAJOR > 2)))
++ desc.flags = FT_LOAD_MONOCHROME;
++#else
+ desc.image_type = ftc_image_mono;
+-
++#endif
+
+
+ //init backbuffer
+diff -auNr tuxcom/tuxcom.h tuxcom-freetype/tuxcom.h
+--- tuxcom/tuxcom.h 2008-12-27 16:54:07.000000000 +0100
++++ tuxcom-freetype/tuxcom.h 2008-12-27 16:55:23.000000000 +0100
+@@ -191,6 +191,9 @@
+
+
+ //freetype stuff
++#if ((defined(FREETYPE_MAJOR)) && (((FREETYPE_MAJOR == 2) && (((FREETYPE_MINOR == 1) && (FREETYPE_PATCH >= 9)) || (FREETYPE_MINOR > 1))) || (FREETYPE_MAJOR > 2)))
++typedef FTC_ImageTypeRec FTC_Image_Desc;
++#endif
+
+ //#define FONT "/usr/share/fonts/md_khmurabi_10.ttf"
+ #define FONT "/usr/share/fonts/pakenham.ttf"
--- /dev/null
+DEPENDS = "freetype dreambox-dvbincludes libtuxtxt"
+DESCRIPTION = "tuxbox tuxtxt for 32bit framebuffer"
+MAINTAINER = "Sven Karschewski <seddi@i-have-a-dreambox.com>"
+
+SRCDATE = "20090130"
+PV = "0.0+cvs${SRCDATE}"
+PR = "r0"
+
+SRC_URI = "cvs://anoncvs@cvs.tuxbox.org/cvs/tuxbox;module=apps/tuxbox/plugins/tuxtxt;method=ext \
+ file://makefiles.diff;patch=1;pnum=1 \
+ file://nonblocking.diff;patch=1 \
+ file://32bpp.diff;patch=1;pnum=1 \
+ file://add_new_default_conf.diff;patch=1;pnum=1 \
+ file://add_advanced_rc.diff;patch=1 \
+ file://makelib.diff;patch=1 \
+ file://allow_different_demux.diff;patch=1 \
+ file://plugin.py"
+
+FILES_${PN} = "/usr/lib/libtuxtxt32bpp.so* /usr/share/fonts /usr/lib/enigma2/python/Plugins/Extensions/Tuxtxt /etc/tuxtxt"
+
+S = "${WORKDIR}/tuxtxt"
+
+CFLAGS_append = " -DHAVE_DREAMBOX_HARDWARE -DDREAMBOX"
+
+inherit autotools pkgconfig
+
+bindir = "/usr/bin"
+sbindir = "/usr/sbin"
+
+EXTRA_OECONF = "--with-target=native"
+
+do_configure_prepend() {
+ touch ${S}/python/__init__.py
+ install -m 0644 ${WORKDIR}/plugin.py ${S}/python
+}
+
+do_stage() {
+ oe_libinstall -so -C .libs libtuxtxt32bpp ${STAGING_LIBDIR}
+ install -m 0644 tuxtxt.h ${STAGING_INCDIR}/
+}
--- /dev/null
+diff -u tuxtxt_orig/tuxtxt.c tuxtxt/tuxtxt.c
+--- tuxtxt_orig/tuxtxt.c 2009-01-29 21:36:31.000000000 +0100
++++ tuxtxt/tuxtxt.c 2009-01-29 21:38:42.000000000 +0100
+@@ -7,12 +7,43 @@
+ * and DBLuelle <dbluelle@blau-weissoedingen.de> *
+ * russian and arabic support by Leonid Protasov <Lprot@mail.ru> *
+ * *
++ * ported 2006 to Dreambox 7025 / 32Bit framebuffer *
++ * by Seddi <seddi@i-have-a-dreambox.com> *
++ * *
++ * ported 32Bit framebuffer to Tuxtxt v1.99 (2008) *
++ * by the PLi team (Sat-Turner) *
++ * *
++ * ported to 20090130 *
++ * by the PLi team (pieterg) *
++ * *
+ ******************************************************************************/
+
+
+
+ #include "tuxtxt.h"
+
++static char saved_wss[32];
++static char saved_pin8[32];
++
++void readproc(const char* source, char *dest)
++{
++ FILE *f=fopen(source, "rt");
++ if(f)
++ {
++ fgets(dest, 255, f);
++ fclose(f);
++ }
++}
++
++void writeproc(const char* dest, const char *value)
++{
++ FILE *f=fopen(dest, "w");
++ if (f)
++ {
++ fwrite(value, strlen(value), 1, f);
++ fclose(f);
++ }
++}
+
+ int getIndexOfPageInHotlist()
+ {
+@@ -137,10 +168,11 @@
+ * plugin_exec *
+ ******************************************************************************/
+
+-void plugin_exec(PluginParam *par)
++int main(int argc, char **argv)
+ {
+ char cvs_revision[] = "$Revision: 1.108 $";
+
++ int cnt=0;
+ #if !TUXTXT_CFG_STANDALONE
+ int initialized = tuxtxt_init();
+ if ( initialized )
+@@ -150,31 +182,71 @@
+ /* show versioninfo */
+ sscanf(cvs_revision, "%*s %s", versioninfo);
+ printf("TuxTxt %s\n", versioninfo);
++ printf("for 32bpp framebuffer\n");
+
+ tuxtxt_SetRenderingDefaults(&renderinfo);
+ /* get params */
+ tuxtxt_cache.vtxtpid = renderinfo.fb = lcd = rc = renderinfo.sx = renderinfo.ex = renderinfo.sy = renderinfo.ey = -1;
++ if (argc==1)
++ {
++ printf("\nUSAGE: tuxtxt vtpid\n");
++ printf("No PID given, so scanning for PIDs ...\n\n");
++ tuxtxt_cache.vtxtpid=0;
++ }
++ else
++ {
++ tuxtxt_cache.vtxtpid = atoi(argv[1]);
++ }
++
++ /* open Framebuffer */
++ if ((renderinfo.fb=open("/dev/fb/0", O_RDWR)) == -1)
++ {
++ perror("TuxTxt <open /dev/fb/0>");
++ return 0;
++ }
++ rc=-1;
++ while(1)
++ {
++ struct stat s;
++ char tmp[128];
++ sprintf(tmp, "/dev/input/event%d", cnt);
++ if (stat(tmp, &s))
++ break;
++ /* open Remote Control */
++ if ((rc=open(tmp, O_RDONLY)) == -1)
++ {
++ perror("TuxTxt <open remote control>");
++ return 0;
++ }
++ if (ioctl(rc, EVIOCGNAME(128), tmp) < 0)
++ perror("EVIOCGNAME failed");
++ if (strstr(tmp, "remote control"))
++ break;
++ close(rc);
++ rc=-1;
++ ++cnt;
++ }
++
++ if (rc == -1)
++ {
++ printf("couldnt find correct input device!!!\n");
++ return -1;
++ }
+
+- for (; par; par = par->next)
++ /* open LCD */
++ if ((lcd=open("/dev/dbox/lcd0", O_RDWR)) == -1)
+ {
+- if (!strcmp(par->id, P_ID_VTXTPID))
+- tuxtxt_cache.vtxtpid = atoi(par->val);
+- else if (!strcmp(par->id, P_ID_FBUFFER))
+- renderinfo.fb = atoi(par->val);
+- else if (!strcmp(par->id, P_ID_LCD))
+- lcd = atoi(par->val);
+- else if (!strcmp(par->id, P_ID_RCINPUT))
+- rc = atoi(par->val);
+- else if (!strcmp(par->id, P_ID_OFF_X))
+- renderinfo.sx = atoi(par->val);
+- else if (!strcmp(par->id, P_ID_END_X))
+- renderinfo.ex = atoi(par->val);
+- else if (!strcmp(par->id, P_ID_OFF_Y))
+- renderinfo.sy = atoi(par->val);
+- else if (!strcmp(par->id, P_ID_END_Y))
+- renderinfo.ey = atoi(par->val);
++ perror("TuxTxt <open /dev/dbox/lcd0>");
++ return 0;
+ }
+
++ renderinfo.previousbackcolor = tuxtxt_color_transp;
++ renderinfo.zoommode = 0;
++ renderinfo.sx = 80;
++ renderinfo.ex = 620;
++ renderinfo.sy = 30;
++ renderinfo.ey = 555;
++
+ if (tuxtxt_cache.vtxtpid == -1 || renderinfo.fb == -1 || rc == -1 || renderinfo.sx == -1 || renderinfo.ex == -1 || renderinfo.sy == -1 || renderinfo.ey == -1)
+ {
+ printf("TuxTxt <Invalid Param(s)>\n");
+@@ -242,6 +314,7 @@
+ int vendor = 3; /* values unknown, rely on requested values */
+ #endif
+
++#if 0
+ if (vendor < 3) /* scart-parameters only known for 3 dboxes, FIXME: order must be like in info.h */
+ {
+ for (i = 0; i < 6; i++) /* FIXME: FBLK seems to cause troubles */
+@@ -274,6 +347,7 @@
+ perror("TuxTxt <ioctl(avs)>");
+ }
+ }
++#endif
+ continue; /* otherwise ignore exit key */
+ }
+ default:
+@@ -487,6 +561,14 @@
+ dumpl25 = ival & 1;
+ else if (1 == sscanf(line, "UseTTF %i", &ival))
+ renderinfo.usettf = ival & 1;
++ else if (1 == sscanf(line, "StartX %i", &ival))
++ renderinfo.sx = ival;
++ else if (1 == sscanf(line, "EndX %i", &ival))
++ renderinfo.ex = ival;
++ else if (1 == sscanf(line, "StartY %i", &ival))
++ renderinfo.sy = ival;
++ else if (1 == sscanf(line, "EndY %i", &ival))
++ renderinfo.ey = ival;
+ }
+ fclose(conf);
+ }
+@@ -534,6 +616,12 @@
+ #endif
+
+
++ readproc("/proc/stb/denc/0/wss", saved_wss);
++ writeproc("/proc/stb/denc/0/wss", saamodes[renderinfo.screen_mode1]);
++
++ readproc("/proc/stb/avs/0/sb", saved_pin8);
++ writeproc("/proc/stb/avs/0/sb", fncmodes[renderinfo.screen_mode1]);
++
+ /* setup rc */
+ ioctl(rc, RC_IOCTL_BCODES, 1);
+
+@@ -568,8 +656,6 @@
+ if (tuxtxt_cache.dmx != -1)
+ close(tuxtxt_cache.dmx);
+ tuxtxt_cache.dmx = -1;
+-#else
+- tuxtxt_stop();
+ #endif
+
+ if (restoreaudio)
+@@ -579,6 +665,7 @@
+ #else
+ int vendor = 3; /* values unknown, rely on requested values */
+ #endif
++#if 0
+ if (vendor < 3) /* scart-parameters only known for 3 dboxes, FIXME: order must be like in info.h */
+ {
+ for (i = 1; i < 6; i += 2) /* restore dvb audio */
+@@ -588,9 +675,17 @@
+ perror("TuxTxt <ioctl(avs)>");
+ }
+ }
++#endif
+ }
+
++ /* close lcd */
++ close(lcd);
++
++ /* close rc */
++ close(rc);
+
++ lcd = rc = -1;
++
+ if (hotlistchanged)
+ savehotlist();
+
+@@ -623,10 +718,20 @@
+ fprintf(conf, "ShowLevel2p5 %d\n", renderinfo.showl25);
+ fprintf(conf, "DumpLevel2p5 %d\n", dumpl25);
+ fprintf(conf, "UseTTF %d\n", renderinfo.usettf);
++ fprintf(conf, "StartX %d\n", renderinfo.sx);
++ fprintf(conf, "EndX %d\n", renderinfo.ex);
++ fprintf(conf, "StartY %d\n", renderinfo.sy);
++ fprintf(conf, "EndY %d\n", renderinfo.ey);
+ fclose(conf);
+ }
+ }
+ tuxtxt_EndRendering(&renderinfo);
++
++ /* close framebuffer */
++ close(renderinfo.fb);
++
++ writeproc("/proc/stb/avs/0/sb", saved_pin8);
++ writeproc("/proc/stb/denc/0/wss", saved_wss);
+ }
+ /******************************************************************************
+ * GetTeletextPIDs *
+@@ -1308,6 +1413,7 @@
+ memset(&menu[Menu_Width*MenuLine[M_COL] + 3+renderinfo.color_mode ], 0x20,24-renderinfo.color_mode);
+ Menu_HighlightLine(menu, MenuLine[menuitem], 1);
+ tuxtxt_setcolors(&renderinfo,(unsigned short *)tuxtxt_defaultcolors, 0, tuxtxt_color_SIZECOLTABLE);
++ Menu_Init(menu, current_pid, menuitem, hotindex);
+ break;
+ case M_TRA:
+ saveconfig = 1;
+@@ -1319,6 +1425,7 @@
+ memset(&menu[Menu_Width*MenuLine[M_TRA] + 3+renderinfo.trans_mode ], 0x20,24-renderinfo.trans_mode);
+ Menu_HighlightLine(menu, MenuLine[menuitem], 1);
+ tuxtxt_setcolors(&renderinfo,(unsigned short *)tuxtxt_defaultcolors, 0, tuxtxt_color_SIZECOLTABLE);
++ Menu_Init(menu, current_pid, menuitem, hotindex);
+ break;
+ case M_PID:
+ {
+@@ -1421,6 +1528,7 @@
+ memset(&menu[Menu_Width*MenuLine[M_COL] + 3+renderinfo.color_mode ], 0x20,24-renderinfo.color_mode);
+ Menu_HighlightLine(menu, MenuLine[menuitem], 1);
+ tuxtxt_setcolors(&renderinfo,(unsigned short *)tuxtxt_defaultcolors, 0, tuxtxt_color_SIZECOLTABLE);
++ Menu_Init(menu, current_pid, menuitem, hotindex);
+ break;
+ case M_TRA:
+ saveconfig = 1;
+@@ -1432,6 +1540,7 @@
+ memset(&menu[Menu_Width*MenuLine[M_TRA] + 3+renderinfo.trans_mode ], 0x20,24-renderinfo.trans_mode);
+ Menu_HighlightLine(menu, MenuLine[menuitem], 1);
+ tuxtxt_setcolors(&renderinfo,(unsigned short *)tuxtxt_defaultcolors, 0, tuxtxt_color_SIZECOLTABLE);
++ Menu_Init(menu, current_pid, menuitem, hotindex);
+ break;
+ case M_PID:
+ if (!getpidsdone)
+@@ -1731,8 +1840,8 @@
+ memcpy(&menu[Menu_Width*MenuLine[M_SC1] + Menu_Width - 5], &configonoff[menulanguage][renderinfo.screen_mode1 ? 3 : 0], 3);
+ Menu_HighlightLine(menu, MenuLine[menuitem], 1);
+
+- ioctl(renderinfo.avs, AVSIOSSCARTPIN8, &fncmodes[renderinfo.screen_mode1]);
+- ioctl(renderinfo.saa, SAAIOSWSS, &saamodes[renderinfo.screen_mode1]);
++ writeproc("/proc/stb/avs/0/sb", fncmodes[renderinfo.screen_mode1]);
++ writeproc("/proc/stb/denc/0/wss", saamodes[renderinfo.screen_mode1]);
+
+ break;
+
+@@ -1857,7 +1966,8 @@
+ }
+
+ /* generate pagenumber */
+- temp_page |= Number << renderinfo.inputcounter*4;
++ if (renderinfo.inputcounter >= 0)
++ temp_page |= Number << renderinfo.inputcounter*4;
+
+ renderinfo.inputcounter--;
+
+@@ -2318,8 +2428,8 @@
+ else if (renderinfo.transpmode == 1) /* semi-transparent BG with FG text */
+ {
+ /* restore videoformat */
+- ioctl(renderinfo.avs, AVSIOSSCARTPIN8, &renderinfo.fnc_old);
+- ioctl(renderinfo.saa, SAAIOSWSS, &renderinfo.saa_old);
++ writeproc("/proc/stb/avs/0/sb", saved_pin8);
++ writeproc("/proc/stb/denc/0/wss", saved_wss);
+
+ tuxtxt_ClearBB(&renderinfo,tuxtxt_color_transp);
+ tuxtxt_cache.pageupdate = 1;
+@@ -2327,8 +2437,8 @@
+ else /* TV mode */
+ {
+ /* restore videoformat */
+- ioctl(renderinfo.avs, AVSIOSSCARTPIN8, &renderinfo.fnc_old);
+- ioctl(renderinfo.saa, SAAIOSWSS, &renderinfo.saa_old);
++ writeproc("/proc/stb/avs/0/sb", saved_pin8);
++ writeproc("/proc/stb/denc/0/wss", saved_wss);
+
+ tuxtxt_ClearFB(&renderinfo,tuxtxt_color_transp);
+ renderinfo.clearbbcolor = tuxtxt_cache.FullScrColor;
+@@ -2765,8 +2875,8 @@
+ case KEY_VOLUMEDOWN: RCCode = RC_MINUS; break;
+ case KEY_MUTE: RCCode = RC_MUTE; break;
+ case KEY_HELP: RCCode = RC_HELP; break;
+- case KEY_SETUP: RCCode = RC_DBOX; break;
+- case KEY_HOME: RCCode = RC_HOME; break;
++ case KEY_MENU: RCCode = RC_DBOX; break;
++ case KEY_EXIT: RCCode = RC_HOME; break;
+ case KEY_POWER: RCCode = RC_STANDBY; break;
+ }
+ return 1;
+@@ -2794,10 +2904,3 @@
+
+ return 0;
+ }
+-/* Local Variables: */
+-/* indent-tabs-mode:t */
+-/* tab-width:3 */
+-/* c-basic-offset:3 */
+-/* comment-column:0 */
+-/* fill-column:120 */
+-/* End: */
+diff -u tuxtxt_orig/tuxtxt.h tuxtxt/tuxtxt.h
+--- tuxtxt_orig/tuxtxt.h 2008-12-26 19:41:28.000000000 +0100
++++ tuxtxt/tuxtxt.h 2009-01-29 21:38:18.000000000 +0100
+@@ -1,3 +1,6 @@
++#ifndef __tuxtxt_h__
++#define __tuxtxt_h__
++
+ /******************************************************************************
+ * <<< TuxTxt - Teletext Plugin >>> *
+ * *
+@@ -7,7 +10,16 @@
+ * and DBLuelle <dbluelle@blau-weissoedingen.de> *
+ * russian and arabic support by Leonid Protasov <Lprot@mail.ru> *
+ * *
+- ******************************************************************************/
++ * ported 2006 to Dreambox 7025 / 32Bit framebuffer *
++ * by Seddi <seddi@i-have-a-dreambox.com> *
++ * *
++ * ported 32Bit framebuffer to Tuxtxt v1.99 (2008) *
++ * by the PLi team (Sat-Turner) *
++ * *
++ * ported to 1.106 (2008) *
++ * by the PLi team (pieterg) *
++ * *
++******************************************************************************/
+
+ #define TUXTXT_CFG_STANDALONE 0 // 1:plugin only 0:use library
+ #define TUXTXT_DEBUG 0
+@@ -37,7 +49,6 @@
+ #include <sys/mman.h>
+
+ #include <dbox/fp.h>
+-#include <plugin.h>
+ #include <dbox/lcd-ks0713.h>
+
+
+@@ -1091,3 +1102,5 @@
+ /* comment-column:0 */
+ /* fill-column:120 */
+ /* End: */
++
++#endif
--- /dev/null
+diff -u tuxtxt_orig/tuxtxt.c tuxtxt/tuxtxt.c
+--- tuxtxt_orig/tuxtxt.c 2009-01-29 21:38:42.000000000 +0100
++++ tuxtxt/tuxtxt.c 2009-01-29 21:44:29.000000000 +0100
+@@ -173,6 +173,7 @@
+ char cvs_revision[] = "$Revision: 1.108 $";
+
+ int cnt=0;
++ int rc_num = 0;
+ #if !TUXTXT_CFG_STANDALONE
+ int initialized = tuxtxt_init();
+ if ( initialized )
+@@ -186,7 +187,7 @@
+
+ tuxtxt_SetRenderingDefaults(&renderinfo);
+ /* get params */
+- tuxtxt_cache.vtxtpid = renderinfo.fb = lcd = rc = renderinfo.sx = renderinfo.ex = renderinfo.sy = renderinfo.ey = -1;
++ tuxtxt_cache.vtxtpid = renderinfo.fb = lcd = renderinfo.sx = renderinfo.ex = renderinfo.sy = renderinfo.ey = -1;
+ if (argc==1)
+ {
+ printf("\nUSAGE: tuxtxt vtpid\n");
+@@ -204,8 +205,8 @@
+ perror("TuxTxt <open /dev/fb/0>");
+ return 0;
+ }
+- rc=-1;
+- while(1)
++ rc[0] = rc[1] =-1;
++ while(rc_num < 2)
+ {
+ struct stat s;
+ char tmp[128];
+@@ -213,23 +214,26 @@
+ if (stat(tmp, &s))
+ break;
+ /* open Remote Control */
+- if ((rc=open(tmp, O_RDONLY)) == -1)
++ if ((rc[rc_num]=open(tmp, O_RDONLY)) == -1)
+ {
+ perror("TuxTxt <open remote control>");
+ return 0;
+ }
+- if (ioctl(rc, EVIOCGNAME(128), tmp) < 0)
++ if (ioctl(rc[rc_num], EVIOCGNAME(128), tmp) < 0)
+ perror("EVIOCGNAME failed");
+- if (strstr(tmp, "remote control"))
+- break;
+- close(rc);
+- rc=-1;
++ if (!strstr(tmp, "remote control"))
++ {
++ close(rc[rc_num]);
++ rc[rc_num] = -1;
++ }
++ else
++ ++rc_num;
+ ++cnt;
+ }
+
+- if (rc == -1)
++ if (rc[0] == -1)
+ {
+- printf("couldnt find correct input device!!!\n");
++ printf("couldnt find usable input device!!!\n");
+ return -1;
+ }
+
+@@ -247,7 +251,7 @@
+ renderinfo.sy = 30;
+ renderinfo.ey = 555;
+
+- if (tuxtxt_cache.vtxtpid == -1 || renderinfo.fb == -1 || rc == -1 || renderinfo.sx == -1 || renderinfo.ex == -1 || renderinfo.sy == -1 || renderinfo.ey == -1)
++ if (tuxtxt_cache.vtxtpid == -1 || renderinfo.fb == -1 || renderinfo.sx == -1 || renderinfo.ex == -1 || renderinfo.sy == -1 || renderinfo.ey == -1)
+ {
+ printf("TuxTxt <Invalid Param(s)>\n");
+ return;
+@@ -623,7 +627,8 @@
+ writeproc("/proc/stb/avs/0/sb", fncmodes[renderinfo.screen_mode1]);
+
+ /* setup rc */
+- ioctl(rc, RC_IOCTL_BCODES, 1);
++ if (rc[0] >= 0) ioctl(rc[0], RC_IOCTL_BCODES, 1);
++ if (rc[1] >= 0) ioctl(rc[1], RC_IOCTL_BCODES, 1);
+
+
+
+@@ -682,9 +687,12 @@
+ close(lcd);
+
+ /* close rc */
+- close(rc);
++ if (rc[0] >= 0)
++ close(rc[0]);
++ if (rc[1] >= 0)
++ close(rc[1]);
+
+- lcd = rc = -1;
++ lcd = rc[0] = rc[1] = -1;
+
+ if (hotlistchanged)
+ savehotlist();
+@@ -2819,20 +2827,28 @@
+ timeout.tv_sec = 0;
+ timeout.tv_usec = 100000;
+ /* get code */
+- if (rc >= 0)
++ if (rc[0] >= 0)
++ {
++ FD_SET(rc[0], &rset);
++ if (rc[0] > maxfd)
++ {
++ maxfd = rc[0];
++ }
++ }
++ if (rc[1] >= 0)
+ {
+- FD_SET(rc, &rset);
+- if (rc > maxfd)
++ FD_SET(rc[1], &rset);
++ if (rc[1] > maxfd)
+ {
+- maxfd = rc;
++ maxfd = rc[1];
+ }
+ }
+ if (select(maxfd + 1, &rset, NULL, NULL, &timeout) > 0)
+ {
+- if (rc >= 0 && FD_ISSET(rc, &rset))
++ if (rc[0] >= 0 && FD_ISSET(rc[0], &rset))
+ {
+ #if HAVE_DVB_API_VERSION < 3
+- read(rc, &RCCode, 2);
++ read(rc[0], &RCCode, 2);
+ }
+ if (RCCode != LastKey)
+ {
+@@ -2842,7 +2858,11 @@
+ {
+ switch (RCCode)
+ #else
+- read(rc, &ev, sizeof(ev));
++ read(rc[0], &ev, sizeof(ev));
++ }
++ else if (rc[1] >= 0 && FD_ISSET(rc[1], &rset))
++ {
++ read(rc[1], &ev, sizeof(ev));
+ }
+ if (ev.value)
+ {
+Only in tuxtxt_orig/: tuxtxt.c.orig
+diff -u tuxtxt_orig/tuxtxt.h tuxtxt/tuxtxt.h
+--- tuxtxt_orig/tuxtxt.h 2009-01-29 21:38:18.000000000 +0100
++++ tuxtxt/tuxtxt.h 2009-01-29 21:44:29.000000000 +0100
+@@ -209,7 +209,7 @@
+ int hotlist[10];
+ int maxhotlist;
+
+-int rc, lcd;
++int rc[2], lcd;
+ int lastpage;
+ int savedscreenmode;
+ char dumpl25;
--- /dev/null
+diff -Naur tuxtxt_org/tuxtxt2.conf tuxtxt_32bpp/tuxtxt2.conf
+--- tuxtxt/tuxtxt2.conf 1970-01-01 01:00:00.000000000 +0100
++++ tuxtxt/tuxtxt2.conf 2006-03-10 22:07:15.000000000 +0100
+@@ -0,0 +1,23 @@
++ScreenMode16x9Normal 1
++ScreenMode16x9Divided 1
++Brightness 16
++MenuLanguage 1
++AutoNational 1
++NationalSubset 5
++SwapUpDown 0
++ShowHexPages 0
++Transparency 0xA
++TTFWidthFactor16 28
++TTFHeightFactor16 16
++TTFShiftX 0
++TTFShiftY 0
++Screenmode 0
++ShowFLOF 1
++Show39 1
++ShowLevel2p5 1
++DumpLevel2p5 0
++UseTTF 0
++StartX 50
++EndX 670
++StartY 30
++EndY 555
+diff -Naur tuxtxt_org/tuxtxt.conf tuxtxt_32bpp/tuxtxt.conf
+--- tuxtxt/tuxtxt.conf 2006-03-10 22:13:26.000000000 +0100
++++ tuxtxt/tuxtxt.conf 1970-01-01 01:00:00.000000000 +0100
+@@ -1,5 +0,0 @@
+-ScreenMode16x9Normal 0
+-ScreenMode16x9Divided 0
+-ColorDimmed 1
+-AutoNational 1
+-NationalSubset 4
--- /dev/null
+diff -u tuxtxt_orig/tuxtxt.c tuxtxt/tuxtxt.c
+--- tuxtxt_orig/tuxtxt.c 2009-01-29 21:52:19.000000000 +0100
++++ tuxtxt/tuxtxt.c 2009-01-29 21:54:31.000000000 +0100
+@@ -168,7 +168,7 @@
+ * plugin_exec *
+ ******************************************************************************/
+
+-int tuxtxt_run_ui(int pid)
++int tuxtxt_run_ui(int pid, int demux)
+ {
+ char cvs_revision[] = "$Revision: 1.108 $";
+
+@@ -180,6 +180,12 @@
+ tuxtxt_cache.page = 0x100;
+ #endif
+
++#if HAVE_DVB_API_VERSION < 3
++ snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/card0/demux%d", demux);
++#else
++ snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/adapter0/demux%d", demux);
++#endif
++
+ /* show versioninfo */
+ sscanf(cvs_revision, "%*s %s", versioninfo);
+ printf("TuxTxt %s\n", versioninfo);
+@@ -612,7 +618,7 @@
+ tuxtxt_init_demuxer();
+ tuxtxt_start_thread();
+ #else
+- tuxtxt_start(tuxtxt_cache.vtxtpid);
++ tuxtxt_start(tuxtxt_cache.vtxtpid, -1);
+ #endif
+
+
+@@ -1817,7 +1823,7 @@
+ tuxtxt_cache.vtxtpid = pid_table[current_pid].vtxt_pid;
+ tuxtxt_start_thread();
+ #else
+- tuxtxt_start(pid_table[current_pid].vtxt_pid);
++ tuxtxt_start(pid_table[current_pid].vtxt_pid, -1);
+ #endif
+ }
+ // tuxtxt_cache.pageupdate = 1;
+diff -u tuxtxt_orig/tuxtxt.h tuxtxt/tuxtxt.h
+--- tuxtxt_orig/tuxtxt.h 2009-01-29 21:44:29.000000000 +0100
++++ tuxtxt/tuxtxt.h 2009-01-29 21:54:31.000000000 +0100
+@@ -63,7 +63,7 @@
+ extern tstPageAttr tuxtxt_atrtable[];
+ extern int tuxtxt_init();
+ extern void tuxtxt_close();
+-extern int tuxtxt_start(int tpid); // Start caching
++extern int tuxtxt_start(int tpid, int demux); // Start caching
+ extern int tuxtxt_stop(); // Stop caching
+ extern void tuxtxt_next_dec(int *i); /* skip to next decimal */
+ extern void tuxtxt_prev_dec(int *i); /* counting down */
--- /dev/null
+diff -Naur tuxtxt_org/AUTHORS tuxtxt/AUTHORS
+--- tuxtxt_org/AUTHORS 1970-01-01 01:00:00.000000000 +0100
++++ tuxtxt/AUTHORS 2006-12-28 12:08:57.000000000 +0100
+@@ -0,0 +1,25 @@
++In order of appearance in cvs:
++------------------------------------------------
++Felix Domke <tmbinc@berlios.de>
++Andreas Oberritter <obi@berlios.de>
++Steffen Hehn <mcclean@berlios.de>
++Andreas Monzner <ghostrider@berlios.de>
++Florian Roks <trh@berlios.de>
++Ronny Strutz <tripledes@berlios.de>
++Bastian Blank <waldi@berlios.de>
++Henning Heinold <woglinde@berlios.de>
++Rainer Scherg <rasc@berlios.de>
++Steffen Buehl <shadow@berlios.de>
++Wolfram Joost <wjoost@berlios.de>
++Thomas Herold <dertom@berlios.de>
++Stefan Pluecken <thedoc@berlios.de>
++Florian Schirmer <jolt@berlios.de>
++Christoph Ketzler <chkdesign@berlios.de>
++Bernhard Roth <bernroth@berlios.de>
++Roland Meier <RolandMeier@Siemens.com>
++DBLuelle <dbluelle@blau-weissoedingend.de>
++
++
++Also many thanks to everyone who supported development
++without having cvs write access
++
+diff -Naur tuxtxt_org/Makefile.am tuxtxt/Makefile.am
+--- tuxtxt_org/Makefile.am 2006-12-28 12:10:01.000000000 +0100
++++ tuxtxt/Makefile.am 2006-12-28 12:10:27.000000000 +0100
+@@ -1,37 +1,18 @@
+-SUBDIRS = font
++installdir = $(CONFIGDIR)/tuxtxt
+
+-if BOXTYPE_DREAMBOX
+-AM_CPPFLAGS = \
+- @FREETYPE_CFLAGS@ \
+- -I$(top_srcdir)/include \
+- -I$(includedir)/tuxbox/tuxtxt
++SUBDIRS = font python
+
+-tuxtxt_la_LIBADD = \
+- @FREETYPE_LIBS@ \
+- @TUXTXT_LIBS@
+-else
+ AM_CPPFLAGS = \
+- @TUXBOX_CFLAGS@ \
+ @FREETYPE_CFLAGS@ \
++ -funsigned-char \
+ -I$(top_srcdir)/include \
+- -I$(includedir)/tuxbox/tuxtxt
++ -I$(prefix)/$(includedir)/tuxbox/tuxtxt
+
+-tuxtxt_la_LIBADD = \
+- @TUXBOX_LIBS@ \
++bin_PROGRAMS = tuxtxt
++tuxtxt_LDADD = -lpthread -lz \
+ @FREETYPE_LIBS@ \
+- @TUXTXT_LIBS@
+-endif
+-
+-noinst_LTLIBRARIES = tuxtxt.la
+-
+-tuxtxt_la_SOURCES = tuxtxt.c
++ @TUXTXT_LIBS@
+
+-tuxtxt_la_LDFLAGS = -rpath $(PLUGINDIR) -module -avoid-version
++tuxtxt_SOURCES = tuxtxt.c
+
+-install-exec-local:
+- install -d $(DESTDIR)$(PLUGINDIR)
+- install -d $(DESTDIR)$(CONFIGDIR)
+- install -d $(DESTDIR)$(CONFIGDIR)/tuxtxt
+- $(LIBTOOL) --mode=install install tuxtxt.la $(DESTDIR)$(PLUGINDIR)
+- install -m 0644 $(srcdir)/tuxtxt.cfg $(DESTDIR)$(PLUGINDIR)
+- install -m 0644 $(srcdir)/tuxtxt.conf $(DESTDIR)$(CONFIGDIR)/tuxtxt
++install_DATA = tuxtxt2.conf
+diff -Naur tuxtxt_org/acinclude.m4 tuxtxt/acinclude.m4
+--- tuxtxt_org/acinclude.m4 1970-01-01 01:00:00.000000000 +0100
++++ tuxtxt/acinclude.m4 2006-12-28 12:08:57.000000000 +0100
+@@ -0,0 +1,434 @@
++AC_DEFUN(TUXBOX_APPS,[
++AM_CONFIG_HEADER(config.h)
++AM_MAINTAINER_MODE
++
++INSTALL="$INSTALL -p"
++
++AC_GNU_SOURCE
++AC_SYS_LARGEFILE
++
++AC_ARG_WITH(target,
++ [ --with-target=TARGET target for compilation [[native,cdk]]],
++ [TARGET="$withval"],[TARGET="native"])
++
++AC_ARG_WITH(targetprefix,
++ [ --with-targetprefix=PATH prefix relative to target root (only applicable in cdk mode)],
++ [targetprefix="$withval"],[targetprefix="NONE"])
++
++AC_ARG_WITH(debug,
++ [ --without-debug disable debugging code],
++ [DEBUG="$withval"],[DEBUG="yes"])
++
++if test "$DEBUG" = "yes"; then
++ DEBUG_CFLAGS="-g3 -ggdb"
++ AC_DEFINE(DEBUG,1,[Enable debug messages])
++fi
++
++AC_MSG_CHECKING(target)
++
++if test "$TARGET" = "native"; then
++ AC_MSG_RESULT(native)
++
++ if test "$CFLAGS" = "" -a "$CXXFLAGS" = ""; then
++ CFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS"
++ CXXFLAGS="-Wall -O2 -pipe $DEBUG_CFLAGS"
++ fi
++ if test "$prefix" = "NONE"; then
++ prefix=/usr/local
++ fi
++ targetprefix=$prefix
++elif test "$TARGET" = "cdk"; then
++ AC_MSG_RESULT(cdk)
++
++ if test "$CC" = "" -a "$CXX" = ""; then
++ CC=powerpc-tuxbox-linux-gnu-gcc CXX=powerpc-tuxbox-linux-gnu-g++
++ fi
++ if test "$CFLAGS" = "" -a "$CXXFLAGS" = ""; then
++ CFLAGS="-Wall -Os -mcpu=823 -pipe $DEBUG_CFLAGS"
++ CXXFLAGS="-Wall -Os -mcpu=823 -pipe $DEBUG_CFLAGS"
++ fi
++ if test "$prefix" = "NONE"; then
++ AC_MSG_ERROR(invalid prefix, you need to specify one in cdk mode)
++ fi
++ if test "$targetprefix" = "NONE"; then
++ targetprefix=""
++ fi
++ if test "$host_alias" = ""; then
++ cross_compiling=yes
++ host_alias=powerpc-tuxbox-linux-gnu
++ fi
++else
++ AC_MSG_RESULT(none)
++ AC_MSG_ERROR([invalid target $TARGET, choose on from native,cdk]);
++fi
++
++AC_CANONICAL_BUILD
++AC_CANONICAL_HOST
++
++check_path () {
++ return $(perl -e "if(\"$1\"=~m#^/usr/(local/)?bin#){print \"0\"}else{print \"1\";}")
++}
++
++])
++
++AC_DEFUN(TUXBOX_APPS_DIRECTORY_ONE,[
++AC_ARG_WITH($1,[ $6$7 [[PREFIX$4$5]]],[
++ _$2=$withval
++ if test "$TARGET" = "cdk"; then
++ $2=`eval echo "${targetprefix}$withval"`
++ else
++ $2=$withval
++ fi
++],[
++ $2="\${$3}$5"
++ if test "$TARGET" = "cdk"; then
++ _$2=`eval echo "${target$3}$5"`
++ else
++ _$2=`eval echo "${$3}$5"`
++ fi
++])
++
++dnl automake <= 1.6 don't support this
++dnl AC_SUBST($2)
++AC_DEFINE_UNQUOTED($2,"$_$2",$7)
++])
++
++AC_DEFUN(TUXBOX_APPS_DIRECTORY,[
++AC_REQUIRE([TUXBOX_APPS])
++
++if test "$TARGET" = "cdk"; then
++ datadir="\${prefix}/share"
++ tuxboxdatadir="\${prefix}/share/tuxbox"
++ zoneinfodir="\${datadir}/zoneinfo"
++ sysconfdir="\${prefix}/etc"
++ localstatedir="\${prefix}/var"
++ localedir="\${prefix}/var"
++ libdir="\${prefix}/lib"
++ targetdatadir="\${targetprefix}/share"
++ targetsysconfdir="\${targetprefix}/etc"
++ targetlocalstatedir="\${targetprefix}/var"
++ targetlibdir="\${targetprefix}/lib"
++fi
++
++TUXBOX_APPS_DIRECTORY_ONE(configdir,CONFIGDIR,sysconfdir,/etc,,
++ [--with-configdir=PATH ],[where to find the config files])
++
++TUXBOX_APPS_DIRECTORY_ONE(datadir,DATADIR,datadir,/share,,
++ [--with-datadir=PATH ],[where to find data])
++
++TUXBOX_APPS_DIRECTORY_ONE(localedir,LOCALEDIR,datadir,/share,/locale,
++ [--with-localedir=PATH ],[where to find locales])
++
++TUXBOX_APPS_DIRECTORY_ONE(fontdir,FONTDIR,datadir,/share,/fonts,
++ [--with-fontdir=PATH ],[where to find the fonts])
++
++TUXBOX_APPS_DIRECTORY_ONE(gamesdir,GAMESDIR,localstatedir,/var,/tuxbox/games,
++ [--with-gamesdir=PATH ],[where games data is stored])
++
++TUXBOX_APPS_DIRECTORY_ONE(libdir,LIBDIR,libdir,/lib,,
++ [--with-libdir=PATH ],[where to find the internal libs])
++
++TUXBOX_APPS_DIRECTORY_ONE(plugindir,PLUGINDIR,libdir,/lib,/tuxbox/plugins,
++ [--with-plugindir=PATH ],[where to find the plugins])
++
++TUXBOX_APPS_DIRECTORY_ONE(tuxboxdatadir,TUXBOXDATADIR,datadir,/share,,
++ [--with-tuxboxdatadir=PATH],[where to find tuxbox data])
++
++TUXBOX_APPS_DIRECTORY_ONE(zoneinfodir,ZONEINFODIR,datadir,/share,/zoneinfo,
++ [--with-zoneinfodir=PATH ],[where to find zoneinfo db])
++])
++
++dnl automake <= 1.6 needs this specifications
++AC_SUBST(CONFIGDIR)
++AC_SUBST(DATADIR)
++AC_SUBST(ZONEINFODIR)
++AC_SUBST(FONTDIR)
++AC_SUBST(GAMESDIR)
++AC_SUBST(LIBDIR)
++AC_SUBST(LOCALEDIR)
++AC_SUBST(PLUGINDIR)
++AC_SUBST(TUXBOXDATADIR)
++dnl end workaround
++
++AC_DEFUN(TUXBOX_APPS_ENDIAN,[
++AC_CHECK_HEADERS(endian.h)
++AC_C_BIGENDIAN
++])
++
++AC_DEFUN(TUXBOX_APPS_DRIVER,[
++#AC_ARG_WITH(driver,
++# [ --with-driver=PATH path for driver sources [[NONE]]],
++# [DRIVER="$withval"],[DRIVER=""])
++#
++#if test -d "$DRIVER/include"; then
++# AC_DEFINE(HAVE_DBOX2_DRIVER,1,[Define to 1 if you have the dbox2 driver sources])
++#else
++# AC_MSG_ERROR([can't find driver sources])
++#fi
++
++#AC_SUBST(DRIVER)
++
++#CPPFLAGS="$CPPFLAGS -I$DRIVER/include"
++])
++
++AC_DEFUN([TUXBOX_APPS_DVB],[
++AC_ARG_WITH(dvbincludes,
++ [ --with-dvbincludes=PATH path for dvb includes [[NONE]]],
++ [DVBINCLUDES="$withval"],[DVBINCLUDES=""])
++
++if test "$DVBINCLUDES"; then
++ CPPFLAGS="$CPPFLAGS -I$DVBINCLUDES"
++fi
++
++AC_CHECK_HEADERS(ost/dmx.h,[
++ DVB_API_VERSION=1
++ AC_MSG_NOTICE([found dvb version 1])
++])
++
++if test -z "$DVB_API_VERSION"; then
++AC_CHECK_HEADERS(linux/dvb/version.h,[
++ AC_LANG_PREPROC_REQUIRE()
++ AC_REQUIRE([AC_PROG_EGREP])
++ AC_LANG_CONFTEST([AC_LANG_SOURCE([[
++#include <linux/dvb/version.h>
++version DVB_API_VERSION
++ ]])])
++ DVB_API_VERSION=`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | $EGREP "^version" | sed "s,version\ ,,"`
++ rm -f conftest*
++
++ AC_MSG_NOTICE([found dvb version $DVB_API_VERSION])
++])
++fi
++
++if test "$DVB_API_VERSION"; then
++ AC_DEFINE(HAVE_DVB,1,[Define to 1 if you have the dvb includes])
++ AC_DEFINE_UNQUOTED(HAVE_DVB_API_VERSION,$DVB_API_VERSION,[Define to the version of the dvb api])
++else
++ AC_MSG_ERROR([can't find dvb headers])
++fi
++])
++
++AC_DEFUN(_TUXBOX_APPS_LIB_CONFIG,[
++AC_PATH_PROG($1_CONFIG,$2,no)
++if test "$$1_CONFIG" != "no"; then
++ if test "$TARGET" = "cdk" && check_path "$$1_CONFIG"; then
++ AC_MSG_$3([could not find a suitable version of $2]);
++ else
++ $1_CFLAGS=$($$1_CONFIG --cflags)
++ $1_LIBS=$($$1_CONFIG --libs)
++ fi
++fi
++
++AC_SUBST($1_CFLAGS)
++AC_SUBST($1_LIBS)
++])
++
++AC_DEFUN(TUXBOX_APPS_LIB_CONFIG,[
++_TUXBOX_APPS_LIB_CONFIG($1,$2,ERROR)
++if test "$$1_CONFIG" = "no"; then
++ AC_MSG_ERROR([could not find $2]);
++fi
++])
++
++AC_DEFUN(TUXBOX_APPS_LIB_CONFIG_CHECK,[
++_TUXBOX_APPS_LIB_CONFIG($1,$2,WARN)
++])
++
++AC_DEFUN(TUXBOX_APPS_PKGCONFIG,[
++AC_PATH_PROG(PKG_CONFIG, pkg-config,no)
++if test "$PKG_CONFIG" = "no" ; then
++ AC_MSG_ERROR([could not find pkg-config]);
++fi
++])
++
++AC_DEFUN(_TUXBOX_APPS_LIB_PKGCONFIG,[
++PKG_CHECK_MODULES($1,$2)
++AC_SUBST($1_CFLAGS)
++AC_SUBST($1_LIBS)
++])
++
++AC_DEFUN(TUXBOX_APPS_LIB_PKGCONFIG,[
++_TUXBOX_APPS_LIB_PKGCONFIG($1,$2)
++if test -z "$$1_CFLAGS" ; then
++ AC_MSG_ERROR([could not find package $2]);
++fi
++])
++
++AC_DEFUN(TUXBOX_APPS_LIB_PKGCONFIG_CHECK,[
++_TUXBOX_APPS_LIB_PKGCONFIG($1,$2)
++])
++
++AC_DEFUN(_TUXBOX_APPS_LIB_SYMBOL,[
++AC_CHECK_LIB($2,$3,HAVE_$1="yes",HAVE_$1="no")
++if test "$HAVE_$1" = "yes"; then
++ $1_LIBS=-l$2
++fi
++
++AC_SUBST($1_LIBS)
++])
++
++AC_DEFUN(TUXBOX_APPS_LIB_SYMBOL,[
++_TUXBOX_APPS_LIB_SYMBOL($1,$2,$3,ERROR)
++if test "$HAVE_$1" = "no"; then
++ AC_MSG_ERROR([could not find $2]);
++fi
++])
++
++AC_DEFUN(TUXBOX_APPS_LIB_CONFIG_SYMBOL,[
++_TUXBOX_APPS_LIB_SYMBOL($1,$2,$3,WARN)
++])
++
++AC_DEFUN(TUXBOX_APPS_GETTEXT,[
++AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
++ [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
++ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
++ :)
++AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
++
++AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
++ [$ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
++ (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
++ :)
++
++AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,[$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1],:)
++
++AC_MSG_CHECKING([whether NLS is requested])
++AC_ARG_ENABLE(nls,
++ [ --disable-nls do not use Native Language Support],
++ USE_NLS=$enableval, USE_NLS=yes)
++AC_MSG_RESULT($USE_NLS)
++AC_SUBST(USE_NLS)
++
++if test "$USE_NLS" = "yes"; then
++ AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,[
++ AC_TRY_LINK([
++ #include <libintl.h>
++ #ifndef __GNU_GETTEXT_SUPPORTED_REVISION
++ #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
++ #endif
++ extern int _nl_msg_cat_cntr;
++ extern int *_nl_domain_bindings;
++ ],[
++ bindtextdomain ("", "");
++ return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings;
++ ], gt_cv_func_gnugettext_libc=yes, gt_cv_func_gnugettext_libc=no
++ )]
++ )
++
++ if test "$gt_cv_func_gnugettext_libc" = "yes"; then
++ AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.])
++ gt_use_preinstalled_gnugettext=yes
++ else
++ USE_NLS=no
++ fi
++fi
++
++if test -f "$srcdir/po/LINGUAS"; then
++ ALL_LINGUAS=$(sed -e "/^#/d" "$srcdir/po/LINGUAS")
++fi
++
++POFILES=
++GMOFILES=
++UPDATEPOFILES=
++DUMMYPOFILES=
++for lang in $ALL_LINGUAS; do
++ POFILES="$POFILES $srcdirpre$lang.po"
++ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
++ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
++ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
++done
++INST_LINGUAS=
++if test -n "$ALL_LINGUAS"; then
++ for presentlang in $ALL_LINGUAS; do
++ useit=no
++ if test -n "$LINGUAS"; then
++ desiredlanguages="$LINGUAS"
++ else
++ desiredlanguages="$ALL_LINGUAS"
++ fi
++ for desiredlang in $desiredlanguages; do
++ case "$desiredlang" in
++ "$presentlang"*) useit=yes;;
++ esac
++ done
++ if test $useit = yes; then
++ INST_LINGUAS="$INST_LINGUAS $presentlang"
++ fi
++ done
++fi
++CATALOGS=
++if test -n "$INST_LINGUAS"; then
++ for lang in $INST_LINGUAS; do
++ CATALOGS="$CATALOGS $lang.gmo"
++ done
++fi
++AC_SUBST(POFILES)
++AC_SUBST(GMOFILES)
++AC_SUBST(UPDATEPOFILES)
++AC_SUBST(DUMMYPOFILES)
++AC_SUBST(CATALOGS)
++])
++
++dnl backward compatiblity
++AC_DEFUN([AC_GNU_SOURCE],
++[AH_VERBATIM([_GNU_SOURCE],
++[/* Enable GNU extensions on systems that have them. */
++#ifndef _GNU_SOURCE
++# undef _GNU_SOURCE
++#endif])dnl
++AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
++AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
++AC_DEFINE([_GNU_SOURCE])
++])
++
++AC_DEFUN([AC_PROG_EGREP],
++[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
++ [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
++ then ac_cv_prog_egrep='grep -E'
++ else ac_cv_prog_egrep='egrep'
++ fi])
++ EGREP=$ac_cv_prog_egrep
++ AC_SUBST([EGREP])
++])
++
++AC_DEFUN([AC_PYTHON_DEVEL],[
++ #
++ # should allow for checking of python version here...
++ #
++ AC_REQUIRE([AM_PATH_PYTHON])
++
++ # Check for Python include path
++ AC_MSG_CHECKING([for Python include path])
++ python_path=`echo $PYTHON | sed "s,/bin.*$,,"`
++ for i in "$python_path/include/python$PYTHON_VERSION/" "$python_path/include/python/" "$python_path/" ; do
++ python_path=`find $i -type f -name Python.h -print | sed "1q"`
++ if test -n "$python_path" ; then
++ break
++ fi
++ done
++ python_path=`echo $python_path | sed "s,/Python.h$,,"`
++ AC_MSG_RESULT([$python_path])
++ if test -z "$python_path" ; then
++ AC_MSG_ERROR([cannot find Python include path])
++ fi
++ AC_SUBST([PYTHON_CPPFLAGS],[-I$python_path])
++
++ # Check for Python library path
++ AC_MSG_CHECKING([for Python library path])
++ python_path=`echo $PYTHON | sed "s,/bin.*$,,"`
++ for i in "$python_path/lib/python$PYTHON_VERSION/config/" "$python_path/lib/python$PYTHON_VERSION/" "$python_path/lib/python/config/" "$python_path/lib/python/" "$python_path/" ; do
++ python_path=`find $i -type f -name libpython$PYTHON_VERSION.* -print | sed "1q"`
++ if test -n "$python_path" ; then
++ break
++ fi
++ done
++ python_path=`echo $python_path | sed "s,/libpython.*$,,"`
++ AC_MSG_RESULT([$python_path])
++ if test -z "$python_path" ; then
++ AC_MSG_ERROR([cannot find Python library path])
++ fi
++ AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -lpython$PYTHON_VERSION"])
++ #
++ python_site=`echo $python_path | sed "s/config/site-packages/"`
++ AC_SUBST([PYTHON_SITE_PKG],[$python_site])
++])
+diff -Naur tuxtxt_org/configure.ac tuxtxt/configure.ac
+--- tuxtxt_org/configure.ac 1970-01-01 01:00:00.000000000 +0100
++++ tuxtxt/configure.ac 2006-12-28 12:08:58.000000000 +0100
+@@ -0,0 +1,17 @@
++AC_INIT(tuxbox-tuxtxt-32bpp,1.96)
++AM_INIT_AUTOMAKE(tuxbox-tuxtxt-32bpp,1.96)
++
++TUXBOX_APPS
++TUXBOX_APPS_DIRECTORY
++TUXBOX_APPS_DVB
++TUXBOX_APPS_DRIVER
++
++# Checks for programs.
++AC_PROG_CC
++
++TUXBOX_APPS_LIB_CONFIG(FREETYPE,freetype-config)
++TUXBOX_APPS_LIB_PKGCONFIG(TUXTXT,tuxbox-tuxtxt)
++
++AC_OUTPUT(Makefile)
++AC_OUTPUT(font/Makefile)
++AC_OUTPUT(python/Makefile)
+diff -Naur tuxtxt_32bpp/python/Makefile.am tuxtxt/python/Makefile.am
+--- tuxtxt/python/Makefile.am 1970-01-01 01:00:00.000000000 +0100
++++ tuxtxt/python/Makefile.am 2006-03-10 21:43:45.000000000 +0100
+@@ -0,0 +1,5 @@
++installdir = $(LIBDIR)/enigma2/python/Plugins/Extensions/Tuxtxt
++
++install_DATA = \
++ plugin.py \
++ __init__.py
--- /dev/null
+diff -u tuxtxt_orig/Makefile.am tuxtxt/Makefile.am
+--- tuxtxt_orig/Makefile.am 2009-01-29 21:36:10.000000000 +0100
++++ tuxtxt/Makefile.am 2009-01-29 21:52:19.000000000 +0100
+@@ -6,13 +6,14 @@
+ @FREETYPE_CFLAGS@ \
+ -funsigned-char \
+ -I$(top_srcdir)/include \
+- -I$(prefix)/$(includedir)/tuxbox/tuxtxt
++ -I$(prefix)/$(includedir)/tuxbox/tuxtxt
+
+-bin_PROGRAMS = tuxtxt
+-tuxtxt_LDADD = -lpthread -lz \
++libtuxtxt32bpp_la_LIBADD = -lpthread -lz \
+ @FREETYPE_LIBS@ \
+ @TUXTXT_LIBS@
+
+-tuxtxt_SOURCES = tuxtxt.c
++lib_LTLIBRARIES = libtuxtxt32bpp.la
++
++libtuxtxt32bpp_la_SOURCES = tuxtxt.c
+
+ install_DATA = tuxtxt2.conf
+diff -u tuxtxt_orig/configure.ac tuxtxt/configure.ac
+--- tuxtxt_orig/configure.ac 2009-01-29 21:36:10.000000000 +0100
++++ tuxtxt/configure.ac 2009-01-29 21:52:19.000000000 +0100
+@@ -1,5 +1,9 @@
+-AC_INIT(tuxbox-tuxtxt-32bpp,1.96)
+-AM_INIT_AUTOMAKE(tuxbox-tuxtxt-32bpp,1.96)
++AC_INIT(libtuxtxt32bpp,1.96)
++AM_INIT_AUTOMAKE(libtuxtxt32bpp,1.96)
++
++AM_PROG_LIBTOOL
++
++AC_DISABLE_STATIC
+
+ TUXBOX_APPS
+ TUXBOX_APPS_DIRECTORY
+diff -u tuxtxt_orig/tuxtxt.c tuxtxt/tuxtxt.c
+--- tuxtxt_orig/tuxtxt.c 2009-01-29 21:44:29.000000000 +0100
++++ tuxtxt/tuxtxt.c 2009-01-29 21:52:19.000000000 +0100
+@@ -168,7 +168,7 @@
+ * plugin_exec *
+ ******************************************************************************/
+
+-int main(int argc, char **argv)
++int tuxtxt_run_ui(int pid)
+ {
+ char cvs_revision[] = "$Revision: 1.108 $";
+
+@@ -187,17 +187,8 @@
+
+ tuxtxt_SetRenderingDefaults(&renderinfo);
+ /* get params */
+- tuxtxt_cache.vtxtpid = renderinfo.fb = lcd = renderinfo.sx = renderinfo.ex = renderinfo.sy = renderinfo.ey = -1;
+- if (argc==1)
+- {
+- printf("\nUSAGE: tuxtxt vtpid\n");
+- printf("No PID given, so scanning for PIDs ...\n\n");
+- tuxtxt_cache.vtxtpid=0;
+- }
+- else
+- {
+- tuxtxt_cache.vtxtpid = atoi(argv[1]);
+- }
++ renderinfo.fb = lcd = renderinfo.sx = renderinfo.ex = renderinfo.sy = renderinfo.ey = -1;
++ tuxtxt_cache.vtxtpid = pid;
+
+ /* open Framebuffer */
+ if ((renderinfo.fb=open("/dev/fb/0", O_RDWR)) == -1)
+@@ -462,11 +453,13 @@
+
+
+ //page_atrb[32] = transp<<4 | transp;
+-
+- for (magazine = 1; magazine < 9; magazine++)
++ if (!tuxtxt_cache.thread_starting && !tuxtxt_cache.receiving)
+ {
+- tuxtxt_cache.current_page [magazine] = -1;
+- tuxtxt_cache.current_subpage [magazine] = -1;
++ for (magazine = 1; magazine < 9; magazine++)
++ {
++ tuxtxt_cache.current_page [magazine] = -1;
++ tuxtxt_cache.current_subpage [magazine] = -1;
++ }
+ }
+ #if TUXTXT_CFG_STANDALONE
+ /* init data */
+@@ -489,13 +482,16 @@
+ tuxtxt_cache.page = 0x100;
+ #endif
+ lastpage = tuxtxt_cache.page;
+- tuxtxt_cache.subpage = tuxtxt_cache.subpagetable[tuxtxt_cache.page];
+- if (tuxtxt_cache.subpage == 0xff)
+- tuxtxt_cache.subpage = 0;
+-
+- tuxtxt_cache.pageupdate = 0;
++ if (!tuxtxt_cache.thread_starting && !tuxtxt_cache.receiving)
++ {
++ tuxtxt_cache.subpage = tuxtxt_cache.subpagetable[tuxtxt_cache.page];
++ if (tuxtxt_cache.subpage == 0xff)
++ tuxtxt_cache.subpage = 0;
+
+- tuxtxt_cache.zap_subpage_manual = 0;
++ tuxtxt_cache.pageupdate = 0;
++
++ tuxtxt_cache.zap_subpage_manual = 0;
++ }
+
+ /* init lcd */
+ UpdateLCD();
--- /dev/null
+diff -u tuxtxt_orig/tuxtxt.c tuxtxt/tuxtxt.c
+--- tuxtxt_orig/tuxtxt.c 2008-12-26 19:41:28.000000000 +0100
++++ tuxtxt/tuxtxt.c 2009-01-29 21:36:31.000000000 +0100
+@@ -535,7 +535,6 @@
+
+
+ /* setup rc */
+- fcntl(rc, F_SETFL, O_NONBLOCK);
+ ioctl(rc, RC_IOCTL_BCODES, 1);
+
+
+@@ -1214,7 +1213,7 @@
+
+ void ConfigMenu(int Init)
+ {
+- int val, menuitem = M_Start;
++ int menuitem = M_Start;
+ int current_pid = 0;
+ int hotindex;
+ int oldscreenmode;
+@@ -1257,10 +1256,6 @@
+ renderinfo.clearbbcolor = tuxtxt_color_black;
+ Menu_Init(menu, current_pid, menuitem, hotindex);
+
+- /* set blocking mode */
+- val = fcntl(rc, F_GETFL);
+- fcntl(rc, F_SETFL, val &~ O_NONBLOCK);
+-
+ /* loop */
+ do {
+ if (GetRCCode() == 1)
+@@ -1721,7 +1716,6 @@
+ current_service = current_pid;
+ // RenderMessage(ShowServiceName);
+
+- fcntl(rc, F_SETFL, O_NONBLOCK);
+ RCCode = -1;
+ if (oldscreenmode)
+ tuxtxt_SwitchScreenMode(&renderinfo,oldscreenmode); /* restore divided screen */
+@@ -1792,8 +1786,6 @@
+ UpdateLCD(); /* update number of cached pages */
+ } while ((RCCode != RC_HOME) && (RCCode != RC_DBOX) && (RCCode != RC_MUTE));
+
+- /* reset to nonblocking mode */
+- fcntl(rc, F_SETFL, O_NONBLOCK);
+ tuxtxt_cache.pageupdate = 1;
+ RCCode = -1;
+ if (oldscreenmode)
+@@ -2013,7 +2005,7 @@
+ void PageCatching()
+ {
+ int active_national_subset=tuxtxt_cache.national_subset;
+- int val, byte;
++ int byte;
+ int oldzoommode = renderinfo.zoommode;
+
+ renderinfo.pagecatching = 1;
+@@ -2046,10 +2038,6 @@
+ return;
+ }
+
+- /* set blocking mode */
+- val = fcntl(rc, F_GETFL);
+- fcntl(rc, F_SETFL, val &~ O_NONBLOCK);
+-
+ /* loop */
+ do {
+ GetRCCode();
+@@ -2088,7 +2076,6 @@
+ case RC_HOME:
+ case RC_HELP:
+ case RC_MUTE:
+- fcntl(rc, F_SETFL, O_NONBLOCK);
+ tuxtxt_cache.pageupdate = 1;
+ renderinfo.pagecatching = 0;
+ RCCode = -1;
+@@ -2112,9 +2099,6 @@
+ tuxtxt_cache.subpage = subp;
+ else
+ tuxtxt_cache.subpage = 0;
+-
+- /* reset to nonblocking mode */
+- fcntl(rc, F_SETFL, O_NONBLOCK);
+ }
+
+ /******************************************************************************
+@@ -2712,16 +2696,34 @@
+
+ int GetRCCode()
+ {
++ int maxfd = 0;
++ fd_set rset;
++ struct timeval timeout;
+ #if HAVE_DVB_API_VERSION < 3
+ static unsigned short LastKey = -1;
+ #else
+ struct input_event ev;
+ static __u16 rc_last_key = KEY_RESERVED;
+ #endif
++ FD_ZERO(&rset);
++ timeout.tv_sec = 0;
++ timeout.tv_usec = 100000;
+ /* get code */
+-#if HAVE_DVB_API_VERSION < 3
+- if (read(rc, &RCCode, 2) == 2)
++ if (rc >= 0)
++ {
++ FD_SET(rc, &rset);
++ if (rc > maxfd)
++ {
++ maxfd = rc;
++ }
++ }
++ if (select(maxfd + 1, &rset, NULL, NULL, &timeout) > 0)
+ {
++ if (rc >= 0 && FD_ISSET(rc, &rset))
++ {
++#if HAVE_DVB_API_VERSION < 3
++ read(rc, &RCCode, 2);
++ }
+ if (RCCode != LastKey)
+ {
+ LastKey = RCCode;
+@@ -2730,8 +2732,8 @@
+ {
+ switch (RCCode)
+ #else
+- if (read(rc, &ev, sizeof(ev)) == sizeof(ev))
+- {
++ read(rc, &ev, sizeof(ev));
++ }
+ if (ev.value)
+ {
+ if (ev.code != rc_last_key)
+@@ -2789,7 +2791,6 @@
+ }
+
+ RCCode = -1;
+- usleep(1000000/100);
+
+ return 0;
+ }
--- /dev/null
+from enigma import eTuxtxtApp
+from Plugins.Plugin import PluginDescriptor
+
+def main(session, **kwargs):
+ eTuxtxtApp.getInstance().startUi()
+
+def Plugins(**kwargs):
+ return PluginDescriptor(name="TuxTXT", description="Videotext", where = PluginDescriptor.WHERE_TELETEXT, fnc=main)
--- /dev/null
+PR = "r1"
+PARALLEL_MAKE = ""
+
+require unionfs-modules.inc
+
+KERNEL_MAJMIN = "${@base_read_file('${STAGING_KERNEL_DIR}/kernel-abiversion')[:3]}"
+
+do_compile() {
+ unset LDFLAGS
+ oe_runmake unionfs.ko
+#${KERNEL_MAJMIN}
+}
--- /dev/null
+require unionfs-utils.inc
+
--- /dev/null
+diff -auNr ushare-1.1a/src/mime.c ushare-1.1a-ts/src/mime.c
+--- ushare-1.1a/src/mime.c 2008-12-29 20:09:47.000000000 +0100
++++ ushare-1.1a-ts/src/mime.c 2008-12-29 20:10:04.000000000 +0100
+@@ -54,7 +54,7 @@
+ { "m4v", UPNP_VIDEO, "http-get:*:video/mp4:"},
+ { "m4p", UPNP_VIDEO, "http-get:*:video/mp4:"},
+ { "mp4ps", UPNP_VIDEO, "http-get:*:video/x-nerodigital-ps:"},
+- { "ts", UPNP_VIDEO, "http-get:*:video/mpeg2:"},
++ { "ts", UPNP_VIDEO, "http-get:*:video/ts:"},
+ { "ogm", UPNP_VIDEO, "http-get:*:video/mpeg:"},
+ { "mkv", UPNP_VIDEO, "http-get:*:video/mpeg:"},
+ { "rmvb", UPNP_VIDEO, "http-get:*:video/mpeg:"},
--- /dev/null
+# /etc/ushare.conf
+# Configuration file for uShare
+
+# uShare UPnP Friendly Name (default is 'uShare').
+USHARE_NAME=
+
+# Interface to listen to (default is eth0).
+# Ex : USHARE_IFACE=eth1
+USHARE_IFACE=
+
+# Port to listen to (default is random from IANA Dynamic Ports range)
+# Ex : USHARE_PORT=49200
+USHARE_PORT=
+
+# Directories to be shared (space or CSV list).
+# Ex: USHARE_DIR=/dir1,/dir2
+USHARE_DIR=/media/hdd
+
+# Use to override what happens when iconv fails to parse a file name.
+# The default uShare behaviour is to not add the entry in the media list
+# This option overrides that behaviour and adds the non-iconv'ed string into
+# the media list, with the assumption that the renderer will be able to
+# handle it. Devices like Noxon 2 have no problem with strings being passed
+# as is. (Umlauts for all!)
+#
+# Options are TRUE/YES/1 for override and anything else for default behaviour
+USHARE_OVERRIDE_ICONV_ERR=YES
+
+USHARE_OPTIONS=
\ No newline at end of file
--- /dev/null
+#!/bin/sh
+#
+# start/stop ushare
+
+if ! [ -x /usr/bin/ushare ]; then
+ exit 0
+fi
+
+CONFIGFILE=/etc/ushare.conf
+if [ -r "$CONFIGFILE" ]; then
+ . $CONFIGFILE
+fi
+
+case "$1" in
+ start)
+ echo -n "Starting ushare: "
+ start-stop-daemon -S -x /usr/bin/ushare -- -D -n `/bin/hostname` $USHARE_OPTIONS -f $CONFIGFILE
+ echo "done."
+ ;;
+ stop)
+ echo -n "Stopping ushare: "
+ start-stop-daemon -K -x /usr/bin/ushare
+ echo "done."
+ ;;
+ restart|reload)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart}"
+ exit 1
+ ;;
+esac
+
+exit 0
+
--- /dev/null
+Index: util-linux-2.12r/fdisk/sfdisk.c
+===================================================================
+--- util-linux-2.12r.orig/fdisk/sfdisk.c 2009-01-12 17:00:24.000000000 +0100
++++ util-linux-2.12r/fdisk/sfdisk.c 2009-01-12 17:04:27.000000000 +0100
+@@ -1951,6 +1951,7 @@
+ delta = 0;
+
+ if (delta < 0) {
++#if 0 /*@@@@@*/
+ p->start -= delta;
+ p->size += delta;
+ if (is_extended(p->p.sys_type) && boxes == ONESECTOR)
+@@ -1959,6 +1960,17 @@
+ warn(_("no room for partition descriptor\n"));
+ return 0;
+ }
++#else
++ unsigned long old_size = p->size;
++ p->start -= delta;
++ p->size += delta;
++ if (is_extended(p->p.sys_type) && boxes == ONESECTOR)
++ p->size = inc;
++ else if ( old_size <= -delta ) {
++ warn(_("no room for partition descriptor\n"));
++ return 0;
++ }
++#endif
+ }
+ base = (!ep ? 0
+ : (is_extended(p->p.sys_type) ?
--- /dev/null
+# Opendreambox /etc/vsftpd.conf
+#
+# Please see vsftpd.conf.5 for all compiled in defaults.
+#
+# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
+# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
+# capabilities.
+#
+# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
+anonymous_enable=NO
+#
+# Uncomment this to allow local users to log in.
+local_enable=YES
+#
+# Uncomment this to enable any form of FTP write command.
+write_enable=YES
+#
+# Default umask for local users is 077. You may wish to change this to 022,
+# if your users expect that (022 is used by most other ftpd's)
+#local_umask=022
+#
+# Uncomment this to allow the anonymous FTP user to upload files. This only
+# has an effect if the above global write enable is activated. Also, you will
+# obviously need to create a directory writable by the FTP user.
+#anon_upload_enable=YES
+#
+# Uncomment this if you want the anonymous FTP user to be able to create
+# new directories.
+#anon_mkdir_write_enable=YES
+#
+# Activate directory messages - messages given to remote users when they
+# go into a certain directory.
+dirmessage_enable=YES
+#
+# Activate logging of uploads/downloads.
+#xferlog_enable=YES
+#
+# Make sure PORT transfer connections originate from port 20 (ftp-data).
+connect_from_port_20=YES
+#
+# If you want, you can arrange for uploaded anonymous files to be owned by
+# a different user. Note! Using "root" for uploaded files is not
+# recommended!
+#chown_uploads=YES
+#chown_username=whoever
+#
+# You may override where the log file goes if you like. The default is shown
+# below.
+#xferlog_file=/var/log/vsftpd.log
+#
+# If you want, you can have your log file in standard ftpd xferlog format
+#xferlog_std_format=YES
+#
+# You may change the default value for timing out an idle session.
+#idle_session_timeout=600
+#
+# You may change the default value for timing out a data connection.
+#data_connection_timeout=120
+#
+# It is recommended that you define on your system a unique user which the
+# ftp server can use as a totally isolated and unprivileged user.
+#nopriv_user=ftpsecure
+#
+# Enable this and the server will recognise asynchronous ABOR requests. Not
+# recommended for security (the code is non-trivial). Not enabling it,
+# however, may confuse older FTP clients.
+async_abor_enable=YES
+#
+# By default the server will pretend to allow ASCII mode but in fact ignore
+# the request. Turn on the below options to have the server actually do ASCII
+# mangling on files when in ASCII mode.
+# Beware that turning on ascii_download_enable enables malicious remote parties
+# to consume your I/O resources, by issuing the command "SIZE /big/file" in
+# ASCII mode.
+# These ASCII options are split into upload and download because you may wish
+# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),
+# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be
+# on the client anyway..
+#ascii_upload_enable=YES
+#ascii_download_enable=YES
+#
+# You may fully customise the login banner string:
+ftpd_banner=Welcome to the OpenDreambox FTP service.
+#
+# You may specify a file of disallowed anonymous e-mail addresses. Apparently
+# useful for combatting certain DoS attacks.
+#deny_email_enable=YES
+# (default follows)
+#banned_email_file=/etc/vsftpd.banned_emails
+#
+# You may specify an explicit list of local users to chroot() to their home
+# directory. If chroot_local_user is YES, then this list becomes a list of
+# users to NOT chroot().
+#chroot_list_enable=YES
+# (default follows)
+#chroot_list_file=/etc/vsftpd.chroot_list
+#
+# You may activate the "-R" option to the builtin ls. This is disabled by
+# default to avoid remote users being able to cause excessive I/O on large
+# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
+# the presence of the "-R" option, so there is a strong case for enabling it.
+ls_recurse_enable=YES
+#
+secure_chroot_dir=/dev/shm
+local_root=/
--- /dev/null
+--- Module/rtmp_main.c_orig 2008-05-06 07:26:44.000000000 +0200
++++ Module/rtmp_main.c 2008-08-12 09:19:55.000000000 +0200
+@@ -987,7 +987,7 @@
+
+ for (i = 0; i < 8; i++)
+ {
+- sprintf(slot_name, "rausb%d", i);
++ sprintf(slot_name, "wlan%d", i);
+
+ read_lock_bh(&dev_base_lock); // avoid multiple init
+ //Benson modify -->
+@@ -1010,7 +1010,7 @@
+ return NULL;
+ }
+
+- sprintf(pAd->net_dev->name, "rausb%d", i);
++ sprintf(pAd->net_dev->name, "wlan%d", i);
+ DBGPRINT(RT_DEBUG_ERROR, "usb device name %s\n",pAd->net_dev->name);
+
+ /* get Max Packet Size from usb_dev endpoint */
+@@ -1191,7 +1191,7 @@
+
+ for (i = 0; i < 8; i++)
+ {
+- sprintf(slot_name, "rausb%d", i);
++ sprintf(slot_name, "wlan%d", i);
+
+ #if 1
+ //--> Benson add 20080505, for Linux_kernel > 2,6,24
+@@ -1231,7 +1231,7 @@
+ return res;
+ }
+
+- sprintf(pAd->net_dev->name, "rausb%d", i);
++ sprintf(pAd->net_dev->name, "wlan%d", i);
+ DBGPRINT(RT_DEBUG_ERROR, "usb device name %s\n", pAd->net_dev->name);
+
+
--- /dev/null
+--- Module/Makefile 2008-05-06 07:58:14.000000000 +0200
++++ Module/Makefile 2008-08-04 15:08:58.000000000 +0200
+@@ -14,6 +14,8 @@
+ #Support Block Net-If during TxSw queue full.
+ HAS_BLOCK_NET_IF=y
+
++VERSION := $(shell uname -r)
++MODPATH := /lib/modules/$(VERSION)
+
+ WFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs
+
+@@ -35,7 +37,7 @@
+ EXTRA_CFLAGS += $(WFLAGS)
+
+ ifeq ($(PLATFORM),PC)
+-LINUX_SRC =/lib/modules/$(shell uname -r)/build
++LINUX_SRC ?= $(MODPATH)/source
+ endif
+ ifeq ($(PLATFORM),CMPC)
+ LINUX_SRC = /home/fonchi/vendor/kernel-default-2.6.21/linux-2.6.21
--- /dev/null
+DESCRIPTION = "Driver for Ralink rt73 USB 802.11b/g WiFi sticks"
+HOMEPAGE = "http://www.ralinktech.com.tw"
+SECTION = "kernel/modules"
+LICENSE = "GPL"
+
+PR = "r3"
+
+SRC_URI = "http://www.ralinktech.com.tw/data/drivers/2008_0506_RT73_Linux_STA_Drv1.1.0.1.tar.bz2 \
+ file://make.patch;patch=1 \
+ file://changeiface.patch;patch=1"
+RDEPEND = "wireless-tools"
+
+inherit module
+
+FILES_${PN} += " /lib/firmware/rt73.bin"
+
+S = "${WORKDIR}/2008_0506_RT73_Linux_STA_Drv1.1.0.1/Module/"
+EXTRA_OEMAKE = "KERNDIR=${STAGING_KERNEL_DIR}"
+
+do_compile () {
+ unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS CC LD CPP
+ oe_runmake 'MODPATH={D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net' \
+ 'KERNEL_SOURCE=${STAGING_KERNEL_DIR}' \
+ 'LINUX_SRC=${STAGING_KERNEL_DIR}' \
+ 'KDIR=${STAGING_KERNEL_DIR}' \
+ 'KERNDIR=${STAGING_KERNEL_DIR}' \
+ 'KERNEL_VERSION=${KERNEL_VERSION}' \
+ 'CC=${KERNEL_CC}' \
+ 'LD=${KERNEL_LD}'
+}
+
+do_install() {
+ install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net
+ install -m 0644 rt73${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net/
+ install -d ${D}/lib/firmware
+ install -m 0644 rt73.bin ${D}/lib/firmware/
+}
+
--- /dev/null
+diff -NaurEbB wpa_supplicant-0.5.10/Makefile wpa_supplicant-0.5.10_RALINK/Makefile
+--- wpa_supplicant-0.5.10/Makefile 2008-12-05 01:45:50.000000000 +0100
++++ wpa_supplicant-0.5.10_RALINK/Makefile 2008-12-05 01:36:46.000000000 +0100
+@@ -31,6 +31,7 @@
+ echo CONFIG_DRIVER_WEXT=y >> .config
+ echo CONFIG_WIRELESS_EXTENSION=y >> .config
+ echo CONFIG_DRIVER_ZYDAS=y >> .config
++ echo CONFIG_DRIVER_RALINK=y >> .config
+
+ install: all
+ mkdir -p $(DESTDIR)/usr/local/sbin/
+@@ -145,6 +146,11 @@
+ CONFIG_WIRELESS_EXTENSION=y
+ endif
+
++ifdef CONFIG_DRIVER_RALINK
++CFLAGS += -DCONFIG_DRIVER_RALINK
++OBJS_d += driver_ralink.o
++endif
++
+ ifdef CONFIG_DRIVER_BSD
+ CFLAGS += -DCONFIG_DRIVER_BSD
+ OBJS_d += driver_bsd.o
+diff -NaurEbB wpa_supplicant-0.5.10/driver.h wpa_supplicant-0.5.10_RALINK/driver.h
+--- wpa_supplicant-0.5.10/driver.h 2007-03-25 04:09:49.000000000 +0200
++++ wpa_supplicant-0.5.10_RALINK/driver.h 2008-12-05 01:36:46.000000000 +0100
+@@ -581,6 +581,10 @@
+ */
+ void (*poll)(void *priv);
+
++#ifdef CONFIG_DRIVER_RALINK
++ void (*poll_ralink)(void *priv, void *ctx);
++#endif
++
+ /**
+ * get_ifname - Get interface name
+ * @priv: private driver interface data
+diff -NaurEbB wpa_supplicant-0.5.10/driver_ralink.c wpa_supplicant-0.5.10_RALINK/driver_ralink.c
+--- wpa_supplicant-0.5.10/driver_ralink.c 1970-01-01 01:00:00.000000000 +0100
++++ wpa_supplicant-0.5.10_RALINK/driver_ralink.c 2008-12-05 01:36:46.000000000 +0100
+@@ -0,0 +1,1502 @@
++/*
++ ***************************************************************************
++ * Ralink Tech Inc.
++ * 5F, No. 36 Taiyuan St.
++ * Jhubei City
++ * Hsinchu County 302, Taiwan, R.O.C.
++ *
++ * (c) Copyright 2002-2008, Ralink Technology, Inc.
++ *
++ * This program is free software; you can redistribute it and/or modify *
++ * it under the terms of the GNU General Public License as published by *
++ * the Free Software Foundation; either version 2 of the License, or *
++ * (at your option) any later version. *
++ * *
++ * This program is distributed in the hope that it will be useful, *
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
++ * GNU General Public License for more details. *
++ * *
++ * You should have received a copy of the GNU General Public License *
++ * along with this program; if not, write to the *
++ * Free Software Foundation, Inc., *
++ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
++ * *
++ ************************************************************************/
++/*
++ * WPA Supplicant - driver interaction with Ralink rt73.o driver
++ */
++
++#include <stdlib.h>
++#include <stdio.h>
++#include <unistd.h>
++#include <string.h>
++#include <sys/ioctl.h>
++#include <errno.h>
++#include <sys/socket.h>
++#include <net/if_arp.h>
++
++#include <linux/if_packet.h>
++#include <linux/if_ether.h> /* The L2 protocols */
++#include <netinet/in.h>
++//#include <linux/wireless.h>
++#include "wireless_copy.h"
++
++#include "common.h"
++#include "driver.h"
++#include "l2_packet.h"
++#include "eloop.h"
++#include "wpa_supplicant.h"
++#include "priv_netlink.h"
++#include "wpa.h"
++#include "driver_ralink.h"
++#include "wpa_supplicant_i.h"
++#include "config_ssid.h"
++#include "config.h"
++
++static int scanning_done = 1;
++
++struct wpa_driver_ralink_data {
++ void *ctx;
++ int ioctl_sock;
++ int event_sock;
++ char ifname[IFNAMSIZ + 1];
++ u8 *assoc_req_ies;
++ size_t assoc_req_ies_len;
++ u8 *assoc_resp_ies;
++ size_t assoc_resp_ies_len;
++ int no_of_pmkid;
++ struct ndis_pmkid_entry *pmkid;
++ int we_version_compiled;
++};
++
++static int ralink_set_oid(struct wpa_driver_ralink_data *drv, unsigned short oid,
++ char *data, int len)
++{
++ char *buf;
++ struct iwreq iwr;
++
++ buf = os_malloc(len);
++ if (buf == NULL)
++ return -1;
++ memset(buf, 0,len);
++ memset(&iwr, 0, sizeof(iwr));
++ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
++ iwr.u.data.flags = oid;
++ iwr.u.data.flags |= OID_GET_SET_TOGGLE;
++
++ if (data)
++ memcpy(buf, data, len);
++
++ iwr.u.data.pointer = (caddr_t) buf;
++ iwr.u.data.length = len;
++
++ if (ioctl(drv->ioctl_sock, RT_PRIV_IOCTL, &iwr) < 0)
++ {
++ wpa_printf(MSG_DEBUG, "%s: oid=0x%x len (%d) failed",
++ __func__, oid, len);
++ os_free(buf);
++ return -1;
++ }
++ os_free(buf);
++ return 0;
++}
++
++static int wpa_driver_ralink_get_bssid(void *priv, u8 *bssid)
++{
++ struct wpa_driver_ralink_data *drv = priv;
++ struct iwreq iwr;
++ int ret = 0;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ memset(&iwr, 0, sizeof(iwr));
++ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
++
++ if (ioctl(drv->ioctl_sock, SIOCGIWAP, &iwr) < 0)
++ {
++ perror("ioctl[SIOCGIWAP]");
++ ret = -1;
++ }
++ memcpy(bssid, iwr.u.ap_addr.sa_data, ETH_ALEN);
++
++ return ret;
++}
++
++static int wpa_driver_ralink_get_ssid(void *priv, u8 *ssid)
++{
++ struct wpa_driver_ralink_data *drv = priv;
++ struct wpa_supplicant *wpa_s = drv->ctx;
++ struct wpa_ssid *entry;
++ int ssid_len;
++ u8 bssid[ETH_ALEN];
++ u8 ssid_str[MAX_SSID_LEN];
++ struct iwreq iwr;
++ int result = 0;
++ int ret = 0;
++ BOOLEAN ieee8021x_mode = FALSE;
++ BOOLEAN ieee8021x_required_key = FALSE;
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ memset(&iwr, 0, sizeof(iwr));
++ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
++ iwr.u.essid.pointer = (caddr_t) ssid;
++ iwr.u.essid.length = 32;
++
++ if (ioctl(drv->ioctl_sock, SIOCGIWESSID, &iwr) < 0)
++ {
++ perror("ioctl[SIOCGIWESSID]");
++ ret = -1;
++ } else
++ ret = iwr.u.essid.length;
++
++ if(ret <= 0)
++ return ret;
++
++ ssid_len = ret;
++ memset(ssid_str, 0, MAX_SSID_LEN);
++ memcpy(ssid_str, ssid, ssid_len);
++
++ if(wpa_s->conf->ap_scan == 0)
++ {
++ // Read BSSID form driver
++ if (wpa_driver_ralink_get_bssid(priv, bssid) < 0)
++ {
++ wpa_printf(MSG_WARNING, "Could not read BSSID from driver.");
++ return ret;
++ }
++
++ entry = wpa_s->conf->ssid;
++ while (entry)
++ {
++ if (!entry->disabled && ssid_len == entry->ssid_len && memcmp(ssid_str, entry->ssid, ssid_len) == 0 &&
++ (!entry->bssid_set || memcmp(bssid, entry->bssid, ETH_ALEN) == 0))
++ {
++ // match the config of driver
++ result = 1;
++ break;
++ }
++ entry = entry->next;
++ }
++
++ if(result)
++ {
++ wpa_printf(MSG_DEBUG, "Ready to set 802.1x mode and ieee_required_keys parameters to driver");
++
++ // set 802.1x mode and ieee_required_keys parameter
++ if(entry->key_mgmt == WPA_KEY_MGMT_IEEE8021X_NO_WPA)
++ {
++ if ((entry->eapol_flags & (EAPOL_FLAG_REQUIRE_KEY_UNICAST | EAPOL_FLAG_REQUIRE_KEY_BROADCAST)))
++ ieee8021x_required_key = TRUE;
++
++ ieee8021x_mode = TRUE;
++ }
++
++ if (ralink_set_oid(drv, OID_802_11_SET_IEEE8021X, (char *) &ieee8021x_mode, sizeof(BOOLEAN)) < 0)
++ {
++ wpa_printf(MSG_DEBUG, "RALINK: Failed to set OID_802_11_SET_IEEE8021X(%d)", (int) ieee8021x_mode);
++ }
++ else
++ {
++ wpa_printf(MSG_DEBUG, "ieee8021x_mode is %s", ieee8021x_mode ? "TRUE" : "FALSE");
++ }
++
++
++ if (ralink_set_oid(drv, OID_802_11_SET_IEEE8021X_REQUIRE_KEY, (char *) &ieee8021x_required_key, sizeof(BOOLEAN)) < 0)
++ {
++ wpa_printf(MSG_DEBUG, "ERROR: Failed to set OID_802_11_SET_IEEE8021X_REQUIRE_KEY(%d)", (int) ieee8021x_required_key);
++ }
++ else
++ {
++ wpa_printf(MSG_DEBUG, "ieee8021x_required_key is %s and eapol_flag(%d)", ieee8021x_required_key ? "TRUE" : "FALSE",
++ entry->eapol_flags);
++ }
++ }
++ }
++
++ return ret;
++}
++
++static int wpa_driver_ralink_set_ssid(struct wpa_driver_ralink_data *drv,
++ const u8 *ssid, size_t ssid_len)
++{
++ NDIS_802_11_SSID *buf;
++ int ret = 0;
++ struct iwreq iwr;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ buf = (NDIS_802_11_SSID *)os_malloc(sizeof(NDIS_802_11_SSID));
++ if (buf == NULL)
++ return -1;
++ memset(buf, 0, sizeof(buf));
++ buf->SsidLength = ssid_len;
++ memcpy(buf->Ssid, ssid, ssid_len);
++ memset(&iwr, 0, sizeof(iwr));
++ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
++
++ iwr.u.data.flags = OID_802_11_SSID;
++ iwr.u.data.flags |= OID_GET_SET_TOGGLE;
++ iwr.u.data.pointer = (caddr_t) buf;
++ iwr.u.data.length = sizeof(NDIS_802_11_SSID);
++
++ if (ioctl(drv->ioctl_sock, RT_PRIV_IOCTL, &iwr) < 0)
++ {
++ perror("ioctl[RT_PRIV_IOCTL] -- OID_802_11_SSID");
++ ret = -1;
++ }
++ os_free(buf);
++ return ret;
++}
++
++static void wpa_driver_ralink_event_pmkid(struct wpa_driver_ralink_data *drv,
++ const u8 *data, size_t data_len)
++{
++ NDIS_802_11_PMKID_CANDIDATE_LIST *pmkid;
++ int i;
++ union wpa_event_data event;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ if (data_len < 8)
++ {
++ wpa_printf(MSG_DEBUG, "RALINK: Too short PMKID Candidate List "
++ "Event (len=%d)", data_len);
++ return;
++ }
++ pmkid = (NDIS_802_11_PMKID_CANDIDATE_LIST *) data;
++ wpa_printf(MSG_DEBUG, "RALINK: PMKID Candidate List Event - Version %d "
++ "NumCandidates %d",
++ (int) pmkid->Version, (int) pmkid->NumCandidates);
++
++ if (pmkid->Version != 1)
++ {
++ wpa_printf(MSG_DEBUG, "RALINK: Unsupported PMKID Candidate List "
++ "Version %d", (int) pmkid->Version);
++ return;
++ }
++
++ if (data_len < 8 + pmkid->NumCandidates * sizeof(PMKID_CANDIDATE))
++ {
++ wpa_printf(MSG_DEBUG, "RALINK: PMKID Candidate List underflow");
++
++ return;
++ }
++
++
++
++ memset(&event, 0, sizeof(event));
++ for (i = 0; i < pmkid->NumCandidates; i++)
++ {
++ PMKID_CANDIDATE *p = &pmkid->CandidateList[i];
++ wpa_printf(MSG_DEBUG, "RALINK: %d: " MACSTR " Flags 0x%x",
++ i, MAC2STR(p->BSSID), (int) p->Flags);
++ memcpy(event.pmkid_candidate.bssid, p->BSSID, ETH_ALEN);
++ event.pmkid_candidate.index = i;
++ event.pmkid_candidate.preauth =
++ p->Flags & NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED;
++ wpa_supplicant_event(drv->ctx, EVENT_PMKID_CANDIDATE,
++ &event);
++ }
++}
++
++static int wpa_driver_ralink_set_pmkid(struct wpa_driver_ralink_data *drv)
++{
++ int len, count, i, ret;
++ struct ndis_pmkid_entry *entry;
++ NDIS_802_11_PMKID *p;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ count = 0;
++ entry = drv->pmkid;
++ while (entry)
++ {
++ count++;
++ if (count >= drv->no_of_pmkid)
++ break;
++ entry = entry->next;
++ }
++ len = 8 + count * sizeof(BSSID_INFO);
++ p = os_malloc(len);
++ if (p == NULL)
++ return -1;
++ memset(p, 0, len);
++ p->Length = len;
++ p->BSSIDInfoCount = count;
++ entry = drv->pmkid;
++ for (i = 0; i < count; i++)
++ {
++ memcpy(&p->BSSIDInfo[i].BSSID, entry->bssid, ETH_ALEN);
++ memcpy(&p->BSSIDInfo[i].PMKID, entry->pmkid, 16);
++ entry = entry->next;
++ }
++ wpa_hexdump(MSG_MSGDUMP, "NDIS: OID_802_11_PMKID", (const u8 *) p, len);
++ ret = ralink_set_oid(drv, OID_802_11_PMKID, (char *) p, len);
++ os_free(p);
++ return ret;
++}
++
++static int wpa_driver_ralink_add_pmkid(void *priv, const u8 *bssid,
++ const u8 *pmkid)
++{
++ struct wpa_driver_ralink_data *drv = priv;
++ struct ndis_pmkid_entry *entry, *prev;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ if (drv->no_of_pmkid == 0)
++ return 0;
++
++ prev = NULL;
++ entry = drv->pmkid;
++ while (entry)
++ {
++ if (memcmp(entry->bssid, bssid, ETH_ALEN) == 0)
++ break;
++ prev = entry;
++ entry = entry->next;
++ }
++
++ if (entry)
++ {
++ /* Replace existing entry for this BSSID and move it into the
++ * beginning of the list. */
++ memcpy(entry->pmkid, pmkid, 16);
++ if (prev)
++ {
++ prev->next = entry->next;
++ entry->next = drv->pmkid;
++ drv->pmkid = entry;
++ }
++ }
++ else
++ {
++ entry = os_malloc(sizeof(*entry));
++ if (entry)
++ {
++ memcpy(entry->bssid, bssid, ETH_ALEN);
++ memcpy(entry->pmkid, pmkid, 16);
++ entry->next = drv->pmkid;
++ drv->pmkid = entry;
++ }
++ }
++
++ return wpa_driver_ralink_set_pmkid(drv);
++}
++
++
++static int wpa_driver_ralink_remove_pmkid(void *priv, const u8 *bssid,
++ const u8 *pmkid)
++{
++ struct wpa_driver_ralink_data *drv = priv;
++ struct ndis_pmkid_entry *entry, *prev;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ if (drv->no_of_pmkid == 0)
++ return 0;
++
++ entry = drv->pmkid;
++ prev = NULL;
++ drv->pmkid = NULL;
++ while (entry)
++ {
++ if (memcmp(entry->bssid, bssid, ETH_ALEN) == 0 &&
++ memcmp(entry->pmkid, pmkid, 16) == 0)
++ {
++ if (prev)
++ prev->next = entry->next;
++ else
++ drv->pmkid = entry->next;
++ os_free(entry);
++ break;
++ }
++ prev = entry;
++ entry = entry->next;
++ }
++ return wpa_driver_ralink_set_pmkid(drv);
++}
++
++
++static int wpa_driver_ralink_flush_pmkid(void *priv)
++{
++ struct wpa_driver_ralink_data *drv = priv;
++ NDIS_802_11_PMKID p;
++ struct ndis_pmkid_entry *pmkid, *prev;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ if (drv->no_of_pmkid == 0)
++ return 0;
++
++ pmkid = drv->pmkid;
++ drv->pmkid = NULL;
++ while (pmkid)
++ {
++ prev = pmkid;
++ pmkid = pmkid->next;
++ os_free(prev);
++ }
++
++ memset(&p, 0, sizeof(p));
++ p.Length = 8;
++ p.BSSIDInfoCount = 0;
++ wpa_hexdump(MSG_MSGDUMP, "NDIS: OID_802_11_PMKID (flush)",
++ (const u8 *) &p, 8);
++ return ralink_set_oid(drv, OID_802_11_PMKID, (char *) &p, 8);
++}
++
++static void
++wpa_driver_ralink_event_wireless_custom(struct wpa_driver_ralink_data *drv,
++ void *ctx, char *custom)
++{
++ union wpa_event_data data;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ wpa_printf(MSG_DEBUG, "Custom wireless event: '%s'", custom);
++
++ memset(&data, 0, sizeof(data));
++ /* Host AP driver */
++ if (strncmp(custom, "MLME-MICHAELMICFAILURE.indication", 33) == 0)
++ {
++ //receive a MICFAILURE report
++ data.michael_mic_failure.unicast =
++ strstr(custom, " unicast ") != NULL;
++ /* TODO: parse parameters(?) */
++ wpa_supplicant_event(ctx, EVENT_MICHAEL_MIC_FAILURE, &data);
++ }
++ else if (strncmp(custom, "ASSOCINFO_ReqIEs=", 17) == 0)
++ {
++ //receive assoc. req. IEs
++ char *spos;
++ int bytes;
++
++ spos = custom + 17;
++ //get IE's length
++ //bytes = strlen(spos);
++ bytes = drv->assoc_req_ies_len + drv->assoc_resp_ies_len;
++
++ if (!bytes)
++ return;
++
++
++ data.assoc_info.req_ies = os_malloc(bytes);
++ if (data.assoc_info.req_ies == NULL)
++ return;
++
++ data.assoc_info.req_ies_len = bytes;
++ memcpy(data.assoc_info.req_ies, spos, bytes);
++
++ //skip the '\0' byte
++ spos += bytes + 1;
++
++ data.assoc_info.resp_ies = NULL;
++ data.assoc_info.resp_ies_len = 0;
++
++ if (strncmp(spos, " RespIEs=", 9) == 0)
++ {
++ //receive assoc. resp. IEs
++ spos += 9;
++ //get IE's length
++ bytes = strlen(spos);
++ if (!bytes)
++ goto done;
++
++
++ data.assoc_info.resp_ies = os_malloc(bytes);
++ if (data.assoc_info.resp_ies == NULL)
++ goto done;
++
++ data.assoc_info.resp_ies_len = bytes;
++ memcpy(data.assoc_info.resp_ies, spos, bytes);
++ }
++
++ wpa_supplicant_event(ctx, EVENT_ASSOCINFO, &data);
++
++ //free allocated memory
++ done:
++ if(data.assoc_info.resp_ies != NULL)
++ os_free(data.assoc_info.resp_ies);
++ if(data.assoc_info.req_ies != NULL)
++ os_free(data.assoc_info.req_ies);
++ }
++}
++
++static void wpa_driver_ralink_event_wireless(struct wpa_driver_ralink_data *drv,
++ void *ctx, char *data, int len)
++{
++ struct iw_event iwe_buf, *iwe = &iwe_buf;
++ char *pos, *end, *custom, *buf, *assoc_info_buf, *info_pos;
++ struct wpa_supplicant *wpa_s = ctx;
++ BOOLEAN ieee8021x_required_key = FALSE;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ assoc_info_buf = info_pos = NULL;
++ pos = data;
++ end = data + len;
++
++ while (pos + IW_EV_LCP_LEN <= end)
++ {
++ /* Event data may be unaligned, so make a local, aligned copy
++ * before processing. */
++ memcpy(&iwe_buf, pos, IW_EV_LCP_LEN);
++ wpa_printf(MSG_DEBUG, "Wireless event: cmd=0x%x len=%d",
++ iwe->cmd, iwe->len);
++ if (iwe->len <= IW_EV_LCP_LEN)
++ return;
++
++ custom = pos + IW_EV_POINT_LEN;
++
++ if (drv->we_version_compiled > 18 &&
++ (iwe->cmd == IWEVCUSTOM))
++ {
++ /* WE-19 removed the pointer from struct iw_point */
++ char *dpos = (char *) &iwe_buf.u.data.length;
++ int dlen = dpos - (char *) &iwe_buf;
++ memcpy(dpos, pos + IW_EV_LCP_LEN,
++ sizeof(struct iw_event) - dlen);
++ }
++ else
++ {
++ memcpy(&iwe_buf, pos, sizeof(struct iw_event));
++ custom += IW_EV_POINT_OFF;
++ }
++
++ switch (iwe->cmd)
++ {
++
++ case IWEVCUSTOM:
++ if (custom + iwe->u.data.length > end)
++ return;
++ buf = os_malloc(iwe->u.data.length + 1);
++ if (buf == NULL)
++ return;
++ memcpy(buf, custom, iwe->u.data.length);
++ buf[iwe->u.data.length] = '\0';
++
++ if (wpa_s->conf->ap_scan == 1)
++ {
++ if ((iwe->u.data.flags == RT_ASSOC_EVENT_FLAG) || (iwe->u.data.flags == RT_REQIE_EVENT_FLAG) ||
++ (iwe->u.data.flags == RT_RESPIE_EVENT_FLAG) || (iwe->u.data.flags == RT_ASSOCINFO_EVENT_FLAG))
++ {
++ if (scanning_done == 0)
++ {
++ //free(buf); //<--carella modify
++ //return; //-->
++ }
++ }
++ }
++
++ if (iwe->u.data.flags == RT_ASSOC_EVENT_FLAG)
++ {
++ wpa_printf(MSG_DEBUG, "Custom wireless event: receive ASSOCIATED_EVENT !!!");
++ wpa_drv_get_bssid(wpa_s, wpa_s->bssid);
++ // determine whether the dynamic-WEP is used or not
++ if(wpa_s && wpa_s->current_ssid && wpa_s->current_ssid->key_mgmt == WPA_KEY_MGMT_IEEE8021X_NO_WPA)
++ {
++ if ((wpa_s->current_ssid->eapol_flags &
++ (EAPOL_FLAG_REQUIRE_KEY_UNICAST | EAPOL_FLAG_REQUIRE_KEY_BROADCAST)))
++ {
++ //wpa_printf(MSG_DEBUG, "The current ssid - (%s), eapol_flag = %d.\n",
++ // wpa_ssid_txt(wpa_s->current_ssid->ssid, wpa_s->current_ssid->ssid_len),wpa_s->current_ssid->eapol_flags);
++ ieee8021x_required_key = TRUE;
++ }
++
++ if (ralink_set_oid(drv, OID_802_11_SET_IEEE8021X_REQUIRE_KEY, (char *) &ieee8021x_required_key, sizeof(BOOLEAN)) < 0)
++ {
++ wpa_printf(MSG_DEBUG, "ERROR: Failed to set OID_802_11_SET_IEEE8021X_REQUIRE_KEY(%d)",
++ (int) ieee8021x_required_key);
++ }
++
++ wpa_printf(MSG_DEBUG, "ieee8021x_required_key is %s and eapol_flag(%d).\n", ieee8021x_required_key ? "TRUE" : "FALSE",
++ wpa_s->current_ssid->eapol_flags);
++ }
++
++ wpa_supplicant_event(ctx, EVENT_ASSOC, NULL);
++ }
++ else if (iwe->u.data.flags == RT_REQIE_EVENT_FLAG)
++ {
++ wpa_printf(MSG_DEBUG, "Custom wireless event: receive ReqIEs !!!");
++ drv->assoc_req_ies = os_malloc(iwe->u.data.length);
++
++ if (drv->assoc_req_ies == NULL)
++ return;
++
++ drv->assoc_req_ies_len = iwe->u.data.length;
++ memcpy(drv->assoc_req_ies, custom, iwe->u.data.length);
++ }
++ else if (iwe->u.data.flags == RT_RESPIE_EVENT_FLAG)
++ {
++ wpa_printf(MSG_DEBUG, "Custom wireless event: receive RespIEs !!!");
++ drv->assoc_resp_ies = os_malloc(iwe->u.data.length);
++
++ if (drv->assoc_resp_ies == NULL)
++ {
++ if (drv->assoc_req_ies != NULL)
++ os_free(drv->assoc_req_ies);
++ return;
++ }
++
++ drv->assoc_resp_ies_len = iwe->u.data.length;
++ memcpy(drv->assoc_resp_ies, custom, iwe->u.data.length);
++ }
++ else if (iwe->u.data.flags == RT_ASSOCINFO_EVENT_FLAG)
++ {
++ wpa_printf(MSG_DEBUG, "Custom wireless event: receive ASSOCINFO_EVENT !!!");
++ assoc_info_buf = os_malloc(drv->assoc_req_ies_len + drv->assoc_resp_ies_len + 1);
++
++ if (assoc_info_buf == NULL)
++ {
++ if (drv->assoc_req_ies != NULL)
++ os_free(drv->assoc_req_ies);
++ if (drv->assoc_resp_ies != NULL)
++ os_free(drv->assoc_resp_ies);
++ os_free(buf);
++ return;
++ }
++
++ memcpy(assoc_info_buf, drv->assoc_req_ies, drv->assoc_req_ies_len);
++ info_pos = assoc_info_buf + drv->assoc_req_ies_len;
++ memcpy(info_pos , drv->assoc_resp_ies, drv->assoc_resp_ies_len);
++ assoc_info_buf[drv->assoc_req_ies_len + drv->assoc_resp_ies_len] = '\0';
++ wpa_driver_ralink_event_wireless_custom(drv, ctx, assoc_info_buf);
++ os_free(drv->assoc_req_ies);
++ os_free(drv->assoc_resp_ies);
++ os_free(assoc_info_buf);
++ }
++ else if (iwe->u.data.flags == RT_DISASSOC_EVENT_FLAG)
++ {
++ wpa_printf(MSG_DEBUG, "Custom wireless event: receive DISASSOCIATED_EVENT !!!");
++ wpa_supplicant_event(ctx, EVENT_DISASSOC, NULL);
++ }
++ else if (iwe->u.data.flags == RT_PMKIDCAND_FLAG)
++ {
++ wpa_printf(MSG_DEBUG, "Custom wireless event: receive PMKIDCAND_EVENT !!!");
++ wpa_driver_ralink_event_pmkid(drv, (const u8 *)custom, iwe->u.data.length);
++ }
++ else
++ {
++ wpa_driver_ralink_event_wireless_custom(drv, ctx, buf);
++ }
++ os_free(buf);
++ break;
++
++ }
++
++ pos += iwe->len;
++ }
++}
++
++static void wpa_driver_ralink_event_rtm_newlink(struct wpa_driver_ralink_data *drv,
++ void *ctx, struct nlmsghdr *h,
++ int len)
++{
++ struct ifinfomsg *ifi;
++ int attrlen, nlmsg_len, rta_len;
++ struct rtattr * attr;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ if (len < sizeof(*ifi))
++ return;
++
++ ifi = NLMSG_DATA(h);
++ wpa_hexdump(MSG_DEBUG, "ifi: ", (u8 *)ifi, sizeof(struct ifinfomsg));
++
++ nlmsg_len = NLMSG_ALIGN(sizeof(struct ifinfomsg));
++
++ attrlen = h->nlmsg_len - nlmsg_len;
++ printf("attrlen=%d\n",attrlen);
++ if (attrlen < 0)
++ return;
++
++ attr = (struct rtattr *) (((char *) ifi) + nlmsg_len);
++ wpa_hexdump(MSG_DEBUG, "attr1: ", (u8 *)attr,sizeof(struct rtattr));
++ rta_len = RTA_ALIGN(sizeof(struct rtattr));
++ wpa_hexdump(MSG_DEBUG, "attr2: ", (u8 *)attr,rta_len);
++ while (RTA_OK(attr, attrlen))
++ {
++ printf("rta_type=%02x\n",attr->rta_type);
++ if (attr->rta_type == IFLA_WIRELESS)
++ {
++ wpa_driver_ralink_event_wireless(drv, ctx, ((char *) attr) + rta_len, attr->rta_len - rta_len);
++ }
++ attr = RTA_NEXT(attr, attrlen);
++ wpa_hexdump(MSG_DEBUG, "attr3: ", (u8 *)attr,sizeof(struct rtattr));
++ }
++}
++
++static void wpa_driver_ralink_event_receive(int sock, void *ctx,
++ void *sock_ctx)
++{
++ char buf[8192];
++ int left;
++ struct sockaddr_nl from;
++ socklen_t fromlen;
++ struct nlmsghdr *h;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ fromlen = sizeof(from);
++ left = recvfrom(sock, buf, sizeof(buf), MSG_DONTWAIT, (struct sockaddr *) &from, &fromlen);
++
++ if (left < 0)
++ {
++ if (errno != EINTR && errno != EAGAIN)
++ perror("recvfrom(netlink)");
++ return;
++ }
++
++ h = (struct nlmsghdr *) buf;
++ wpa_hexdump(MSG_DEBUG, "h: ", (u8 *)h, h->nlmsg_len);
++
++ while (left >= sizeof(*h))
++ {
++ int len, plen;
++
++ len = h->nlmsg_len;
++ plen = len - sizeof(*h);
++ if (len > left || plen < 0)
++ {
++ wpa_printf(MSG_DEBUG, "Malformed netlink message: "
++ "len=%d left=%d plen=%d", len, left, plen);
++ break;
++ }
++
++ switch (h->nlmsg_type)
++ {
++ case RTM_NEWLINK:
++ wpa_driver_ralink_event_rtm_newlink(ctx, sock_ctx, h, plen);
++ break;
++ }
++
++ len = NLMSG_ALIGN(len);
++ left -= len;
++ h = (struct nlmsghdr *) ((char *) h + len);
++ }
++
++ if (left > 0)
++ {
++ wpa_printf(MSG_DEBUG, "%d extra bytes in the end of netlink "
++ "message", left);
++ }
++
++}
++
++static int
++ralink_get_we_version_compiled(struct wpa_driver_ralink_data *drv)
++{
++ struct iwreq iwr;
++ UINT we_version_compiled = 0;
++
++ memset(&iwr, 0, sizeof(iwr));
++ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
++ iwr.u.data.pointer = (caddr_t) &we_version_compiled;
++ iwr.u.data.flags = RT_OID_WE_VERSION_COMPILED;
++
++ if (ioctl(drv->ioctl_sock, RT_PRIV_IOCTL, &iwr) < 0)
++ {
++ wpa_printf(MSG_DEBUG, "%s: failed", __func__);
++ return -1;
++ }
++
++ drv->we_version_compiled = we_version_compiled;
++
++ return 0;
++}
++
++static int
++ralink_set_iface_flags(void *priv, int dev_up)
++{
++ struct wpa_driver_ralink_data *drv = priv;
++ struct ifreq ifr;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ if (drv->ioctl_sock < 0)
++ return -1;
++
++ memset(&ifr, 0, sizeof(ifr));
++ snprintf(ifr.ifr_name, IFNAMSIZ, "%s", drv->ifname);
++
++ if (ioctl(drv->ioctl_sock, SIOCGIFFLAGS, &ifr) != 0)
++ {
++ perror("ioctl[SIOCGIFFLAGS]");
++ return -1;
++ }
++
++ if (dev_up)
++ ifr.ifr_flags |= IFF_UP;
++ else
++ ifr.ifr_flags &= ~IFF_UP;
++
++ if (ioctl(drv->ioctl_sock, SIOCSIFFLAGS, &ifr) != 0)
++ {
++ perror("ioctl[SIOCSIFFLAGS]");
++ return -1;
++ }
++
++ return 0;
++}
++
++static void * wpa_driver_ralink_init(void *ctx, const char *ifname)
++{
++ int s;
++ struct wpa_driver_ralink_data *drv;
++ struct ifreq ifr;
++ struct sockaddr_nl local;
++ BOOLEAN enable_wpa_supplicant;
++ struct wpa_supplicant *wpa_s = NULL;
++ struct wpa_ssid *entry;
++ int prio;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ /* open socket to kernel */
++ if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
++ {
++ perror("socket");
++ return NULL;
++ }
++ /* do it */
++ strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
++
++ if (ioctl(s, SIOCGIFINDEX, &ifr) < 0)
++ {
++ perror(ifr.ifr_name);
++ return NULL;
++ }
++
++
++ drv = os_malloc(sizeof(*drv));
++
++ if (drv == NULL)
++ return NULL;
++
++ memset(drv, 0, sizeof(*drv));
++ drv->ctx = ctx;
++ strncpy(drv->ifname, ifname, sizeof(drv->ifname));
++ drv->ioctl_sock = s;
++
++ //use netlink like this
++
++ s = socket(PF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
++
++ if (s < 0)
++ {
++ perror("socket(PF_NETLINK,SOCK_RAW,NETLINK_ROUTE)");
++ close(drv->ioctl_sock);
++ os_free(drv);
++ return NULL;
++ }
++
++ memset(&local, 0, sizeof(local));
++ local.nl_family = AF_NETLINK;
++ local.nl_groups = RTMGRP_LINK;
++
++ if (bind(s, (struct sockaddr *) &local, sizeof(local)) < 0)
++ {
++ perror("bind(netlink)");
++ close(s);
++ close(drv->ioctl_sock);
++ os_free(drv);
++ return NULL;
++ }
++
++ eloop_register_read_sock(s, wpa_driver_ralink_event_receive, drv, ctx);
++ drv->event_sock = s;
++ drv->no_of_pmkid = 4; // Number of PMKID saved supporte
++
++ ralink_set_iface_flags(drv, 1); /* mark up during setup */
++ ralink_get_we_version_compiled(drv);
++ wpa_driver_ralink_flush_pmkid(drv);
++
++ enable_wpa_supplicant = TRUE;
++ // trigger driver support wpa_supplicant
++ if (ralink_set_oid(drv, RT_OID_WPA_SUPPLICANT_SUPPORT, (char *) &enable_wpa_supplicant, sizeof(BOOLEAN)) < 0)
++ {
++ wpa_printf(MSG_DEBUG, "RALINK: Failed to set "
++ "RT_OID_WPA_SUPPLICANT_SUPPORT(%d)",
++ (int) enable_wpa_supplicant);
++ }
++
++ wpa_s = drv->ctx;
++
++ if (wpa_s->conf->ap_scan == 1)
++ scanning_done = 0;
++
++ for(prio=0; prio<wpa_s->conf->num_prio; prio++)
++ {
++ for(entry=wpa_s->conf->pssid[prio]; entry; entry=entry->next)
++ {
++ if(entry->disabled)
++ continue;
++ wpa_driver_ralink_set_ssid(drv, entry->ssid, entry->ssid_len);
++ prio = wpa_s->conf->num_prio + 1;
++ break;
++ }
++ }
++ return drv;
++}
++
++static void wpa_driver_ralink_deinit(void *priv)
++{
++ struct wpa_driver_ralink_data *drv = priv;
++ BOOLEAN enable_wpa_supplicant;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ enable_wpa_supplicant = FALSE;
++
++ // trigger driver disable wpa_supplicant support
++ if (ralink_set_oid(drv, RT_OID_WPA_SUPPLICANT_SUPPORT, (char *) &enable_wpa_supplicant, sizeof(BOOLEAN)) < 0)
++ {
++ wpa_printf(MSG_DEBUG, "RALINK: Failed to set "
++ "RT_OID_WPA_SUPPLICANT_SUPPORT(%d)",
++ (int) enable_wpa_supplicant);
++ }
++
++ wpa_driver_ralink_flush_pmkid(drv);
++ sleep(1);
++ ralink_set_iface_flags(drv, 0);
++
++ eloop_unregister_read_sock(drv->event_sock);
++ close(drv->event_sock);
++ close(drv->ioctl_sock);
++ os_free(drv);
++}
++
++static void wpa_driver_ralink_scan_timeout(void *eloop_ctx,
++ void *timeout_ctx)
++{
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ wpa_printf(MSG_DEBUG, "Scan timeout - try to get results");
++ wpa_supplicant_event(timeout_ctx, EVENT_SCAN_RESULTS, NULL);
++
++ scanning_done = 1;
++
++}
++
++static int wpa_driver_ralink_scan(void *priv, const u8 *ssid,
++ size_t ssid_len)
++{
++ struct wpa_driver_ralink_data *drv = priv;
++ struct iwreq iwr;
++ int ret = 0;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ if (ssid_len > IW_ESSID_MAX_SIZE) {
++ wpa_printf(MSG_DEBUG, "%s: too long SSID (%lu)",
++ __FUNCTION__, (unsigned long) ssid_len);
++ return -1;
++ }
++
++ wpa_driver_ralink_set_ssid(drv, ssid, ssid_len);
++
++ memset(&iwr, 0, sizeof(iwr));
++ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
++
++ if (ioctl(drv->ioctl_sock, SIOCSIWSCAN, &iwr) < 0)
++ {
++ perror("ioctl[SIOCSIWSCAN]");
++ ret = -1;
++ }
++
++ /* Not all drivers generate "scan completed" wireless event, so try to
++ * read results after a timeout. */
++ eloop_register_timeout(4, 0, wpa_driver_ralink_scan_timeout, drv, drv->ctx);
++
++ scanning_done = 0;
++
++ return ret;
++}
++
++static int
++wpa_driver_ralink_get_scan_results(void *priv,
++ struct wpa_scan_result *results,
++ size_t max_size)
++{
++ struct wpa_driver_ralink_data *drv = priv;
++ UCHAR *buf = NULL;
++ //NDIS_802_11_BSSID_LIST_EX *wsr = (NDIS_802_11_BSSID_LIST_EX *) buf; //<--carella modify
++ NDIS_802_11_BSSID_LIST_EX *wsr = NULL; //-->carella
++ NDIS_WLAN_BSSID_EX *wbi;
++ struct iwreq iwr;
++ int ap_num;
++ u8 *pos,*end;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ buf = (UCHAR *) os_malloc(RT_MAX_802_11_BSSID_LIST_EX);
++ if (buf == NULL)
++ return -1;
++
++ memset(buf, 0, RT_MAX_802_11_BSSID_LIST_EX);
++
++ wsr = (NDIS_802_11_BSSID_LIST_EX *) buf;
++
++ wsr->NumberOfItems = 0;
++ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
++ iwr.u.data.pointer = (caddr_t) buf;
++ iwr.u.data.flags = OID_802_11_BSSID_LIST;
++
++ if (ioctl(drv->ioctl_sock, RT_PRIV_IOCTL, &iwr) < 0)
++ {
++ os_free(buf);
++ return -1;
++ }
++
++ memset(results, 0, max_size * sizeof(struct wpa_scan_result));
++
++ for (ap_num = 0, wbi = wsr->Bssid; ap_num < wsr->NumberOfItems; ++ap_num)
++ {
++ memcpy(results[ap_num].bssid, &wbi->MacAddress, ETH_ALEN);
++ memcpy(results[ap_num].ssid, wbi->Ssid.Ssid, wbi->Ssid.SsidLength);
++ results[ap_num].ssid_len = wbi->Ssid.SsidLength;
++ results[ap_num].freq = (wbi->Configuration.DSConfig / 1000);
++
++ /* get ie's */
++ wpa_hexdump(MSG_DEBUG, "RALINK: AP IEs",
++ (u8 *) wbi + sizeof(*wbi) - 1, wbi->IELength);
++
++ pos = (u8 *) wbi + sizeof(*wbi) - 1;
++ end = (u8 *) wbi + sizeof(*wbi) + wbi->IELength;
++
++ if (wbi->IELength < sizeof(NDIS_802_11_FIXED_IEs))
++ break;
++
++ pos += sizeof(NDIS_802_11_FIXED_IEs) - 2;
++ memcpy(&results[ap_num].caps, pos, 2);
++ pos += 2;
++
++ while (pos + 1 < end && pos + 2 + pos[1] <= end)
++ {
++ u8 ielen = 2 + pos[1];
++
++ if (ielen > SSID_MAX_WPA_IE_LEN)
++ {
++ pos += ielen;
++ continue;
++ }
++
++ if (pos[0] == GENERIC_INFO_ELEM && pos[1] >= 4 &&
++ memcmp(pos + 2, "\x00\x50\xf2\x01", 4) == 0)
++ {
++ memcpy(results[ap_num].wpa_ie, pos, ielen);
++ results[ap_num].wpa_ie_len = ielen;
++ }
++ else if (pos[0] == RSN_INFO_ELEM)
++ {
++ memcpy(results[ap_num].rsn_ie, pos, ielen);
++ results[ap_num].rsn_ie_len = ielen;
++ }
++ pos += ielen;
++ }
++
++ wbi = (NDIS_WLAN_BSSID_EX *) ((u8 *) wbi + wbi->Length);
++ }
++
++ os_free(buf);
++ return ap_num;
++}
++
++static int ralink_set_auth_mode(struct wpa_driver_ralink_data *drv, NDIS_802_11_AUTHENTICATION_MODE mode)
++{
++ NDIS_802_11_AUTHENTICATION_MODE auth_mode = mode;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ if (ralink_set_oid(drv, OID_802_11_AUTHENTICATION_MODE,
++ (char *) &auth_mode, sizeof(auth_mode)) < 0)
++ {
++ wpa_printf(MSG_DEBUG, "RALINK: Failed to set "
++ "OID_802_11_AUTHENTICATION_MODE (%d)",
++ (int) auth_mode);
++ return -1;
++ }
++ return 0;
++}
++
++static int wpa_driver_ralink_remove_key(struct wpa_driver_ralink_data *drv,
++ int key_idx, const u8 *addr,
++ const u8 *bssid, int pairwise)
++{
++ NDIS_802_11_REMOVE_KEY rkey;
++ NDIS_802_11_KEY_INDEX index;
++ int res, res2;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ memset(&rkey, 0, sizeof(rkey));
++
++ rkey.Length = sizeof(rkey);
++ rkey.KeyIndex = key_idx;
++
++ if (pairwise)
++ rkey.KeyIndex |= 1 << 30;
++
++ memcpy(rkey.BSSID, bssid, ETH_ALEN);
++
++ res = ralink_set_oid(drv, OID_802_11_REMOVE_KEY, (char *) &rkey,
++ sizeof(rkey));
++
++//AlbertY@20060210 removed it
++ if(0)//if (!pairwise)
++ {
++ res2 = ralink_set_oid(drv, OID_802_11_REMOVE_WEP,
++ (char *) &index, sizeof(index));
++ }
++ else
++ res2 = 0;
++
++ if (res < 0 && res2 < 0)
++ return res;
++ return 0;
++}
++
++static int wpa_driver_ralink_add_wep(struct wpa_driver_ralink_data *drv,
++ int pairwise, int key_idx, int set_tx,
++ const u8 *key, size_t key_len)
++{
++ NDIS_802_11_WEP *wep;
++ size_t len;
++ int res;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ len = 12 + key_len;
++ wep = os_malloc(len);
++
++ if (wep == NULL)
++ return -1;
++
++ memset(wep, 0, len);
++ wep->Length = len;
++ wep->KeyIndex = key_idx;
++
++ if (set_tx)
++ wep->KeyIndex |= 1 << 31;
++#if 0 /* Setting bit30 does not seem to work with some NDIS drivers */
++ if (pairwise)
++ wep->KeyIndex |= 1 << 30;
++#endif
++ wep->KeyLength = key_len;
++ memcpy(wep->KeyMaterial, key, key_len);
++
++ wpa_hexdump_key(MSG_MSGDUMP, "RALINK: OID_802_11_ADD_WEP",
++ (const u8 *) wep, len);
++ res = ralink_set_oid(drv, OID_802_11_ADD_WEP, (char *) wep, len);
++
++ os_free(wep);
++
++ return res;
++}
++
++static int wpa_driver_ralink_set_key(void *priv, wpa_alg alg, const u8 *addr,
++ int key_idx, int set_tx,
++ const u8 *seq, size_t seq_len,
++ const u8 *key, size_t key_len)
++{
++ struct wpa_driver_ralink_data *drv = priv;
++ size_t len;
++ NDIS_802_11_KEY *nkey;
++ int i, res, pairwise;
++ u8 bssid[ETH_ALEN];
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ if (addr == NULL || memcmp(addr, "\xff\xff\xff\xff\xff\xff",
++ ETH_ALEN) == 0)
++ {
++ /* Group Key */
++ pairwise = 0;
++ wpa_driver_ralink_get_bssid(drv, bssid);
++ }
++ else
++ {
++ /* Pairwise Key */
++ pairwise = 1;
++ memcpy(bssid, addr, ETH_ALEN);
++ }
++
++ if (alg == WPA_ALG_NONE || key_len == 0)
++ {
++ return wpa_driver_ralink_remove_key(drv, key_idx, addr, bssid,
++ pairwise);
++ }
++
++ if (alg == WPA_ALG_WEP)
++ {
++ return wpa_driver_ralink_add_wep(drv, pairwise, key_idx, set_tx,
++ key, key_len);
++ }
++
++ len = 12 + 6 + 6 + 8 + key_len;
++
++ nkey = os_malloc(len);
++
++ if (nkey == NULL)
++ return -1;
++
++ memset(nkey, 0, len);
++
++ nkey->Length = len;
++ nkey->KeyIndex = key_idx;
++
++ if (set_tx)
++ nkey->KeyIndex |= 1 << 31;
++
++ if (pairwise)
++ nkey->KeyIndex |= 1 << 30;
++
++ if (seq && seq_len)
++ nkey->KeyIndex |= 1 << 29;
++
++ nkey->KeyLength = key_len;
++ memcpy(nkey->BSSID, bssid, ETH_ALEN);
++
++ if (seq && seq_len)
++ {
++ for (i = 0; i < seq_len; i++)
++ nkey->KeyRSC |= seq[i] << (i * 8);
++ }
++ if (alg == WPA_ALG_TKIP && key_len == 32)
++ {
++ memcpy(nkey->KeyMaterial, key, 16);
++ memcpy(nkey->KeyMaterial + 16, key + 24, 8);
++ memcpy(nkey->KeyMaterial + 24, key + 16, 8);
++ }
++ else
++ {
++ memcpy(nkey->KeyMaterial, key, key_len);
++ }
++
++ wpa_hexdump_key(MSG_MSGDUMP, "RALINK: OID_802_11_ADD_KEY",
++ (const u8 *) nkey, len);
++ res = ralink_set_oid(drv, OID_802_11_ADD_KEY, (char *) nkey, len);
++ os_free(nkey);
++
++ return res;
++}
++
++static int wpa_driver_ralink_disassociate(void *priv, const u8 *addr,
++ int reason_code)
++{
++ struct wpa_driver_ralink_data *drv = priv;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++ if (ralink_set_oid(drv, OID_802_11_DISASSOCIATE,
++ " ", 4) < 0)
++ {
++ wpa_printf(MSG_DEBUG, "RALINK: Failed to set "
++ "OID_802_11_DISASSOCIATE");
++ }
++
++ return 0;
++}
++
++static int wpa_driver_ralink_deauthenticate(void *priv, const u8 *addr,
++ int reason_code)
++{
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++ return wpa_driver_ralink_disassociate(priv, addr, reason_code);
++}
++
++static int
++wpa_driver_ralink_associate(void *priv,
++ struct wpa_driver_associate_params *params)
++{
++ struct wpa_driver_ralink_data *drv = priv;
++
++ NDIS_802_11_NETWORK_INFRASTRUCTURE mode;
++ NDIS_802_11_AUTHENTICATION_MODE auth_mode;
++ NDIS_802_11_WEP_STATUS encr, group;
++ BOOLEAN ieee8021xMode;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ if (params->mode == IEEE80211_MODE_IBSS)
++ mode = Ndis802_11IBSS;
++ else
++ mode = Ndis802_11Infrastructure;
++
++ if (ralink_set_oid(drv, OID_802_11_INFRASTRUCTURE_MODE,
++ (char *) &mode, sizeof(mode)) < 0)
++ {
++ wpa_printf(MSG_DEBUG, "RALINK: Failed to set "
++ "OID_802_11_INFRASTRUCTURE_MODE (%d)",
++ (int) mode);
++ /* Try to continue anyway */
++ }
++
++ if (params->wpa_ie == NULL || params->wpa_ie_len == 0)
++ {
++ if (params->auth_alg & AUTH_ALG_SHARED_KEY)
++ {
++ if (params->auth_alg & AUTH_ALG_OPEN_SYSTEM)
++ auth_mode = Ndis802_11AuthModeAutoSwitch;
++ else
++ auth_mode = Ndis802_11AuthModeShared;
++ }
++ else
++ auth_mode = Ndis802_11AuthModeOpen;
++ }
++ else if (params->wpa_ie[0] == RSN_INFO_ELEM)
++ {
++ if (params->key_mgmt_suite == KEY_MGMT_PSK)
++ auth_mode = Ndis802_11AuthModeWPA2PSK;
++ else
++ auth_mode = Ndis802_11AuthModeWPA2;
++ }
++ else
++ {
++ if (params->key_mgmt_suite == KEY_MGMT_WPA_NONE)
++ auth_mode = Ndis802_11AuthModeWPANone;
++ else if (params->key_mgmt_suite == KEY_MGMT_PSK)
++ auth_mode = Ndis802_11AuthModeWPAPSK;
++ else
++ auth_mode = Ndis802_11AuthModeWPA;
++ }
++
++ switch (params->pairwise_suite)
++ {
++ case CIPHER_CCMP:
++ encr = Ndis802_11Encryption3Enabled;
++ break;
++ case CIPHER_TKIP:
++ encr = Ndis802_11Encryption2Enabled;
++ break;
++ case CIPHER_WEP40:
++ case CIPHER_WEP104:
++ encr = Ndis802_11Encryption1Enabled;
++ break;
++ case CIPHER_NONE:
++ if (params->group_suite == CIPHER_CCMP)
++ encr = Ndis802_11Encryption3Enabled;
++ else if (params->group_suite == CIPHER_TKIP)
++ encr = Ndis802_11Encryption2Enabled;
++ else
++ encr = Ndis802_11EncryptionDisabled;
++ break;
++ default:
++ encr = Ndis802_11EncryptionDisabled;
++ };
++
++ ralink_set_auth_mode(drv, auth_mode);
++
++ // notify driver that IEEE8021x mode is enabled
++ if(params->key_mgmt_suite == KEY_MGMT_802_1X_NO_WPA)
++ ieee8021xMode = TRUE;
++ else
++ ieee8021xMode = FALSE;
++
++ if (ralink_set_oid(drv, OID_802_11_SET_IEEE8021X, (char *) &ieee8021xMode, sizeof(BOOLEAN)) < 0)
++ {
++ wpa_printf(MSG_DEBUG, "RALINK: Failed to set "
++ "OID_802_11_SET_IEEE8021X(%d)",
++ (int) ieee8021xMode);
++ }
++
++ if (ralink_set_oid(drv, OID_802_11_WEP_STATUS,
++ (char *) &encr, sizeof(encr)) < 0) {
++ wpa_printf(MSG_DEBUG, "RALINK: Failed to set "
++ "OID_802_11_WEP_STATUS(%d)",
++ (int) encr);
++ }
++
++ return wpa_driver_ralink_set_ssid(drv, params->ssid, params->ssid_len);
++}
++
++static int wpa_driver_ralink_get_associnfo(struct wpa_driver_ralink_data *drv)
++{
++ NDIS_802_11_ASSOCIATION_INFORMATION *buf;
++ int ret = 0;
++ struct iwreq iwr;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ buf = (NDIS_802_11_ASSOCIATION_INFORMATION *)os_malloc(sizeof(NDIS_802_11_ASSOCIATION_INFORMATION));
++ if (buf == NULL)
++ return -1;
++ memset(buf, 0, sizeof(buf));
++ memset(&iwr, 0, sizeof(iwr));
++ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
++
++ iwr.u.data.flags = OID_802_11_STATE;
++ iwr.u.data.flags |= OID_GET_SET_TOGGLE;
++ iwr.u.data.pointer = (caddr_t) buf;
++ iwr.u.data.length = sizeof(NDIS_802_11_ASSOCIATION_INFORMATION);
++
++ if (ioctl(drv->ioctl_sock, RT_PRIV_IOCTL, &iwr) < 0)
++ {
++ perror("ioctl[RT_PRIV_IOCTL] -- OID_802_11_SSID");
++ ret = -1;
++ }
++
++ if(((NDIS_802_11_ASSOCIATION_INFORMATION *)iwr.u.data.pointer)->AssociateResponseToMe)
++ {
++ printf("wpa_driver_ralink_get_associnfo: association success\n");
++ ret = 1;
++ }
++ else
++ printf("wpa_driver_ralink_get_associnfo: association fail\n");
++ os_free(buf);
++ return ret;
++}
++
++static int wpa_driver_ralink_poll_timeout(void *eloop_ctx, void *ctx)
++{
++ struct wpa_driver_ralink_data *drv = eloop_ctx;
++ struct wpa_supplicant *wpa_s = ctx;
++ u8 bssid[ETH_ALEN];
++
++ if (wpa_driver_ralink_get_bssid(drv, bssid)) {
++ /* Disconnected */
++ wpa_printf(MSG_DEBUG, "%s: Disconnected!!", __FUNCTION__);
++ } else {
++ /* Connected */
++
++ if(wpa_driver_ralink_get_associnfo(drv) == 1)
++ {
++ wpa_printf(MSG_DEBUG, "%s: Connected!!", __FUNCTION__);
++ wpa_drv_get_bssid(wpa_s, wpa_s->bssid);
++ wpa_s->associate_state = 1;
++ wpa_supplicant_event(ctx, EVENT_ASSOC, NULL);
++ }
++ else
++ wpa_s->associate_state = 0;
++ }
++}
++
++static void wpa_driver_ralink_poll(void *priv, void *ctx)
++{
++ struct wpa_driver_ralink_data *drv = priv;
++ struct wpa_supplicant *wpa_s = ctx;
++
++ if(wpa_s->wpa_state < WPA_ASSOCIATED)
++ wpa_driver_ralink_poll_timeout(drv, ctx);
++}
++
++const struct wpa_driver_ops wpa_driver_ralink_ops = {
++ .name = "ralink",
++ .desc = "Ralink rt73 driver",
++ .get_bssid = wpa_driver_ralink_get_bssid,
++ .get_ssid = wpa_driver_ralink_get_ssid,
++ .set_key = wpa_driver_ralink_set_key,
++ .init = wpa_driver_ralink_init,
++ .deinit = wpa_driver_ralink_deinit,
++ .scan = wpa_driver_ralink_scan,
++ .get_scan_results = wpa_driver_ralink_get_scan_results,
++ .deauthenticate = wpa_driver_ralink_deauthenticate,
++ .disassociate = wpa_driver_ralink_disassociate,
++ .associate = wpa_driver_ralink_associate,
++ .add_pmkid = wpa_driver_ralink_add_pmkid,
++ .remove_pmkid = wpa_driver_ralink_remove_pmkid,
++ .flush_pmkid = wpa_driver_ralink_flush_pmkid,
++ .poll_ralink = wpa_driver_ralink_poll,
++};
+diff -NaurEbB wpa_supplicant-0.5.10/driver_ralink.h wpa_supplicant-0.5.10_RALINK/driver_ralink.h
+--- wpa_supplicant-0.5.10/driver_ralink.h 1970-01-01 01:00:00.000000000 +0100
++++ wpa_supplicant-0.5.10_RALINK/driver_ralink.h 2008-12-05 01:36:46.000000000 +0100
+@@ -0,0 +1,394 @@
++/*
++ ***************************************************************************
++ * Ralink Tech Inc.
++ * 5F, No. 36 Taiyuan St.
++ * Jhubei City
++ * Hsinchu County 302, Taiwan, R.O.C.
++ *
++ * (c) Copyright 2002-2008, Ralink Technology, Inc.
++ *
++ * This program is free software; you can redistribute it and/or modify *
++ * it under the terms of the GNU General Public License as published by *
++ * the Free Software Foundation; either version 2 of the License, or *
++ * (at your option) any later version. *
++ * *
++ * This program is distributed in the hope that it will be useful, *
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
++ * GNU General Public License for more details. *
++ * *
++ * You should have received a copy of the GNU General Public License *
++ * along with this program; if not, write to the *
++ * Free Software Foundation, Inc., *
++ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
++ * *
++ ************************************************************************/
++
++/*
++ * WPA Supplicant - driver interaction with Ralink rt73 driver driver
++ *
++ *
++ *
++ */
++
++//#include <linux/wireless.h>
++
++// Ralink defined OIDs
++#if WIRELESS_EXT <= 11
++#ifndef SIOCDEVPRIVATE
++#define SIOCDEVPRIVATE 0x8BE0
++#endif
++#define SIOCIWFIRSTPRIV SIOCDEVPRIVATE
++#endif
++
++#define RT_PRIV_IOCTL (SIOCIWFIRSTPRIV + 0x0E)
++#define RTPRIV_IOCTL_SET (SIOCIWFIRSTPRIV + 0x02)
++
++// IEEE 802.11 OIDs & Ralink defined OIDs ******
++
++// (RaConfig Set/QueryInform) ==>
++#define OID_GET_SET_TOGGLE 0x8000
++
++#define OID_802_11_ADD_WEP 0x0112
++#define OID_802_11_REMOVE_WEP 0x0113
++#define OID_802_11_DISASSOCIATE 0x0114
++#define OID_802_11_PRIVACY_FILTER 0x0118
++#define OID_802_11_ASSOCIATION_INFORMATION 0x011E
++#define OID_802_11_BSSID_LIST_SCAN 0x0508
++#define OID_802_11_SSID 0x0509
++#define OID_802_11_BSSID 0x050A
++#define OID_802_11_WEP_STATUS 0x0510
++#define OID_802_11_AUTHENTICATION_MODE 0x0511
++#define OID_802_11_INFRASTRUCTURE_MODE 0x0512
++#define OID_802_11_TX_POWER_LEVEL 0x0517
++#define OID_802_11_REMOVE_KEY 0x0519
++#define OID_802_11_ADD_KEY 0x0520
++#define OID_802_11_BSSID_LIST 0x0609
++#define OID_802_3_CURRENT_ADDRESS 0x060A
++#define OID_SET_COUNTERMEASURES 0x0616
++#define OID_802_11_SET_IEEE8021X 0x0617 // For IEEE8021x mode
++#define OID_802_11_SET_IEEE8021X_REQUIRE_KEY 0x0618 // For DynamicWEP in IEEE802.1x mode
++#define OID_802_11_PMKID 0x0620
++#define RT_OID_WPA_SUPPLICANT_SUPPORT 0x0621 // for trigger driver enable/disable wpa_supplicant support
++#define RT_OID_WE_VERSION_COMPILED 0x0622
++#define OID_802_11_STATE 0x0623
++
++#define PACKED __attribute__ ((packed))
++
++//wpa_supplicant event flags
++#define RT_ASSOC_EVENT_FLAG 0x0101
++#define RT_DISASSOC_EVENT_FLAG 0x0102
++#define RT_REQIE_EVENT_FLAG 0x0103
++#define RT_RESPIE_EVENT_FLAG 0x0104
++#define RT_ASSOCINFO_EVENT_FLAG 0x0105
++#define RT_PMKIDCAND_FLAG 0x0106
++
++#define RT_MAX_802_11_BSSID_LIST_EX 16384
++//
++// IEEE 802.11 Structures and definitions
++//
++// new types for Media Specific Indications
++
++#ifndef ULONG
++#define CHAR char
++#define INT int
++#define SHORT int
++#define UINT u32
++#define ULONG u32
++#define USHORT u16
++#define UCHAR u8
++
++#define uint32 u32
++#define uint8 u8
++
++
++#define BOOLEAN u8
++//#define LARGE_INTEGER s64
++#define VOID void
++#define LONG int
++#define LONGLONG s64
++#define ULONGLONG u64
++typedef VOID *PVOID;
++typedef CHAR *PCHAR;
++typedef UCHAR *PUCHAR;
++typedef USHORT *PUSHORT;
++typedef LONG *PLONG;
++typedef ULONG *PULONG;
++
++typedef union _LARGE_INTEGER {
++ struct {
++ ULONG LowPart;
++ LONG HighPart;
++ }vv;
++ struct {
++ ULONG LowPart;
++ LONG HighPart;
++ } u;
++ s64 QuadPart;
++} LARGE_INTEGER;
++
++#endif
++
++#define NDIS_802_11_LENGTH_SSID 32
++#define NDIS_802_11_LENGTH_RATES 8
++#define NDIS_802_11_LENGTH_RATES_EX 16
++#define MAX_LEN_OF_SSID 32
++#define MAC_ADDR_LEN 6
++
++typedef UCHAR NDIS_802_11_MAC_ADDRESS[6];
++
++// mask for authentication/integrity fields
++#define NDIS_802_11_AUTH_REQUEST_AUTH_FIELDS 0x0f
++
++#define NDIS_802_11_AUTH_REQUEST_REAUTH 0x01
++#define NDIS_802_11_AUTH_REQUEST_KEYUPDATE 0x02
++#define NDIS_802_11_AUTH_REQUEST_PAIRWISE_ERROR 0x06
++#define NDIS_802_11_AUTH_REQUEST_GROUP_ERROR 0x0E
++
++// Added new types for OFDM 5G and 2.4G
++typedef enum _NDIS_802_11_NETWORK_TYPE
++{
++ Ndis802_11FH,
++ Ndis802_11DS,
++ Ndis802_11OFDM5,
++ Ndis802_11OFDM24,
++ Ndis802_11Automode,
++ Ndis802_11NetworkTypeMax // not a real type, defined as an upper bound
++} NDIS_802_11_NETWORK_TYPE, *PNDIS_802_11_NETWORK_TYPE;
++
++//
++// Received Signal Strength Indication
++//
++typedef LONG NDIS_802_11_RSSI; // in dBm
++
++typedef struct _NDIS_802_11_CONFIGURATION_FH
++{
++ ULONG Length; // Length of structure
++ ULONG HopPattern; // As defined by 802.11, MSB set
++ ULONG HopSet; // to one if non-802.11
++ ULONG DwellTime; // units are Kusec
++} NDIS_802_11_CONFIGURATION_FH, *PNDIS_802_11_CONFIGURATION_FH;
++
++typedef struct _NDIS_802_11_CONFIGURATION
++{
++ ULONG Length; // Length of structure
++ ULONG BeaconPeriod; // units are Kusec
++ ULONG ATIMWindow; // units are Kusec
++ ULONG DSConfig; // Frequency, units are kHz
++ NDIS_802_11_CONFIGURATION_FH FHConfig;
++} NDIS_802_11_CONFIGURATION, *PNDIS_802_11_CONFIGURATION;
++
++typedef ULONG NDIS_802_11_KEY_INDEX;
++typedef ULONGLONG NDIS_802_11_KEY_RSC;
++
++// Key mapping keys require a BSSID
++typedef struct PACKED _NDIS_802_11_KEY
++{
++ ULONG Length; // Length of this structure
++ ULONG KeyIndex;
++ ULONG KeyLength; // length of key in bytes
++ NDIS_802_11_MAC_ADDRESS BSSID;
++ NDIS_802_11_KEY_RSC KeyRSC;
++ UCHAR KeyMaterial[1]; // variable length depending on above field
++} NDIS_802_11_KEY, *PNDIS_802_11_KEY;
++
++typedef struct _NDIS_802_11_REMOVE_KEY
++{
++ ULONG Length; // Length of this structure
++ ULONG KeyIndex;
++ NDIS_802_11_MAC_ADDRESS BSSID;
++} NDIS_802_11_REMOVE_KEY, *PNDIS_802_11_REMOVE_KEY;
++
++typedef struct PACKED _NDIS_802_11_WEP
++{
++ ULONG Length; // Length of this structure
++ ULONG KeyIndex; // 0 is the per-client key, 1-N are the
++ // global keys
++ ULONG KeyLength; // length of key in bytes
++ UCHAR KeyMaterial[1];// variable length depending on above field
++} NDIS_802_11_WEP, *PNDIS_802_11_WEP;
++
++
++typedef enum _NDIS_802_11_NETWORK_INFRASTRUCTURE
++{
++ Ndis802_11IBSS,
++ Ndis802_11Infrastructure,
++ Ndis802_11AutoUnknown,
++ Ndis802_11InfrastructureMax // Not a real value, defined as upper bound
++} NDIS_802_11_NETWORK_INFRASTRUCTURE, *PNDIS_802_11_NETWORK_INFRASTRUCTURE;
++
++// PMKID Structures
++typedef UCHAR NDIS_802_11_PMKID_VALUE[16];
++
++typedef struct _BSSID_INFO
++{
++ NDIS_802_11_MAC_ADDRESS BSSID;
++ NDIS_802_11_PMKID_VALUE PMKID;
++} BSSID_INFO, *PBSSID_INFO;
++
++typedef struct _NDIS_802_11_PMKID
++{
++ ULONG Length;
++ ULONG BSSIDInfoCount;
++ BSSID_INFO BSSIDInfo[1];
++} NDIS_802_11_PMKID, *PNDIS_802_11_PMKID;
++
++//Added new types for PMKID Candidate lists.
++typedef struct _PMKID_CANDIDATE {
++ NDIS_802_11_MAC_ADDRESS BSSID;
++ ULONG Flags;
++} PMKID_CANDIDATE, *PPMKID_CANDIDATE;
++
++typedef struct _NDIS_802_11_PMKID_CANDIDATE_LIST
++{
++ ULONG Version; // Version of the structure
++ ULONG NumCandidates; // No. of pmkid candidates
++ PMKID_CANDIDATE CandidateList[1];
++} NDIS_802_11_PMKID_CANDIDATE_LIST, *PNDIS_802_11_PMKID_CANDIDATE_LIST;
++
++//Flags for PMKID Candidate list structure
++#define NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED 0x01
++
++// Add new authentication modes
++typedef enum _NDIS_802_11_AUTHENTICATION_MODE
++{
++ Ndis802_11AuthModeOpen,
++ Ndis802_11AuthModeShared,
++ Ndis802_11AuthModeAutoSwitch,
++ Ndis802_11AuthModeWPA,
++ Ndis802_11AuthModeWPAPSK,
++ Ndis802_11AuthModeWPANone,
++ Ndis802_11AuthModeWPA2,
++ Ndis802_11AuthModeWPA2PSK,
++ Ndis802_11AuthModeMax // Not a real mode, defined as upper bound
++} NDIS_802_11_AUTHENTICATION_MODE, *PNDIS_802_11_AUTHENTICATION_MODE;
++
++typedef UCHAR NDIS_802_11_RATES[NDIS_802_11_LENGTH_RATES]; // Set of 8 data rates
++typedef UCHAR NDIS_802_11_RATES_EX[NDIS_802_11_LENGTH_RATES_EX]; // Set of 16 data rates
++
++typedef struct PACKED _NDIS_802_11_SSID
++{
++ ULONG SsidLength; // length of SSID field below, in bytes;
++ // this can be zero.
++ UCHAR Ssid[NDIS_802_11_LENGTH_SSID]; // SSID information field
++} NDIS_802_11_SSID, *PNDIS_802_11_SSID;
++
++
++typedef struct PACKED _NDIS_WLAN_BSSID
++{
++ ULONG Length; // Length of this structure
++ NDIS_802_11_MAC_ADDRESS MacAddress; // BSSID
++ UCHAR Reserved[2];
++ NDIS_802_11_SSID Ssid; // SSID
++ ULONG Privacy; // WEP encryption requirement
++ NDIS_802_11_RSSI Rssi; // receive signal
++ // strength in dBm
++ NDIS_802_11_NETWORK_TYPE NetworkTypeInUse;
++ NDIS_802_11_CONFIGURATION Configuration;
++ NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode;
++ NDIS_802_11_RATES SupportedRates;
++} NDIS_WLAN_BSSID, *PNDIS_WLAN_BSSID;
++
++typedef struct PACKED _NDIS_802_11_BSSID_LIST
++{
++ ULONG NumberOfItems; // in list below, at least 1
++ NDIS_WLAN_BSSID Bssid[1];
++} NDIS_802_11_BSSID_LIST, *PNDIS_802_11_BSSID_LIST;
++
++// Added Capabilities, IELength and IEs for each BSSID
++typedef struct PACKED _NDIS_WLAN_BSSID_EX
++{
++ ULONG Length; // Length of this structure
++ NDIS_802_11_MAC_ADDRESS MacAddress; // BSSID
++ UCHAR Reserved[2];
++ NDIS_802_11_SSID Ssid; // SSID
++ ULONG Privacy; // WEP encryption requirement
++ NDIS_802_11_RSSI Rssi; // receive signal
++ // strength in dBm
++ NDIS_802_11_NETWORK_TYPE NetworkTypeInUse;
++ NDIS_802_11_CONFIGURATION Configuration;
++ NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode;
++ NDIS_802_11_RATES_EX SupportedRates;
++ ULONG IELength;
++ UCHAR IEs[1];
++} NDIS_WLAN_BSSID_EX, *PNDIS_WLAN_BSSID_EX;
++
++typedef struct _NDIS_802_11_BSSID_LIST_EX
++{
++ ULONG NumberOfItems; // in list below, at least 1
++ NDIS_WLAN_BSSID_EX Bssid[1];
++} NDIS_802_11_BSSID_LIST_EX, *PNDIS_802_11_BSSID_LIST_EX;
++
++typedef struct _NDIS_802_11_FIXED_IEs
++{
++ UCHAR Timestamp[8];
++ USHORT BeaconInterval;
++ USHORT Capabilities;
++} NDIS_802_11_FIXED_IEs, *PNDIS_802_11_FIXED_IEs;
++
++// Added new encryption types
++// Also aliased typedef to new name
++typedef enum _NDIS_802_11_WEP_STATUS
++{
++ Ndis802_11WEPEnabled,
++ Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled,
++ Ndis802_11WEPDisabled,
++ Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled,
++ Ndis802_11WEPKeyAbsent,
++ Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent,
++ Ndis802_11WEPNotSupported,
++ Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported,
++ Ndis802_11Encryption2Enabled,
++ Ndis802_11Encryption2KeyAbsent,
++ Ndis802_11Encryption3Enabled,
++ Ndis802_11Encryption3KeyAbsent
++} NDIS_802_11_WEP_STATUS, *PNDIS_802_11_WEP_STATUS,
++ NDIS_802_11_ENCRYPTION_STATUS, *PNDIS_802_11_ENCRYPTION_STATUS;
++
++typedef enum _NDIS_802_11_RELOAD_DEFAULTS
++{
++ Ndis802_11ReloadWEPKeys
++} NDIS_802_11_RELOAD_DEFAULTS, *PNDIS_802_11_RELOAD_DEFAULTS;
++
++#define NDIS_802_11_AI_REQFI_CAPABILITIES 1
++#define NDIS_802_11_AI_REQFI_LISTENINTERVAL 2
++#define NDIS_802_11_AI_REQFI_CURRENTAPADDRESS 4
++
++#define NDIS_802_11_AI_RESFI_CAPABILITIES 1
++#define NDIS_802_11_AI_RESFI_STATUSCODE 2
++#define NDIS_802_11_AI_RESFI_ASSOCIATIONID 4
++
++typedef struct _NDIS_802_11_AI_REQFI
++{
++ USHORT Capabilities;
++ USHORT ListenInterval;
++ NDIS_802_11_MAC_ADDRESS CurrentAPAddress;
++} NDIS_802_11_AI_REQFI, *PNDIS_802_11_AI_REQFI;
++
++typedef struct _NDIS_802_11_AI_RESFI
++{
++ USHORT Capabilities;
++ USHORT StatusCode;
++ USHORT AssociationId;
++} NDIS_802_11_AI_RESFI, *PNDIS_802_11_AI_RESFI;
++
++typedef struct _NDIS_802_11_ASSOCIATION_INFORMATION
++{
++ ULONG Length;
++ USHORT AvailableRequestFixedIEs;
++ NDIS_802_11_AI_REQFI RequestFixedIEs;
++ ULONG RequestIELength;
++ ULONG OffsetRequestIEs;
++ USHORT AvailableResponseFixedIEs;
++ NDIS_802_11_AI_RESFI ResponseFixedIEs;
++ ULONG ResponseIELength;
++ ULONG OffsetResponseIEs;
++ ULONG AssociateResponseToMe;
++} NDIS_802_11_ASSOCIATION_INFORMATION, *PNDIS_802_11_ASSOCIATION_INFORMATION;
++
++struct ndis_pmkid_entry {
++ struct ndis_pmkid_entry *next;
++ u8 bssid[ETH_ALEN];
++ u8 pmkid[16];
++};
++
+diff -NaurEbB wpa_supplicant-0.5.10/drivers.c wpa_supplicant-0.5.10_RALINK/drivers.c
+--- wpa_supplicant-0.5.10/drivers.c 2008-12-05 01:45:50.000000000 +0100
++++ wpa_supplicant-0.5.10_RALINK/drivers.c 2008-12-05 01:36:46.000000000 +0100
+@@ -57,7 +57,9 @@
+ #ifdef CONFIG_DRIVER_TEST
+ extern struct wpa_driver_ops wpa_driver_test_ops; /* driver_test.c */
+ #endif /* CONFIG_DRIVER_TEST */
+-
++#ifdef CONFIG_DRIVER_RALINK
++extern struct wpa_driver_ops wpa_driver_ralink_ops; /* driver_ralink.c */
++#endif /* CONFIG_DRIVER_RALINK */
+
+ struct wpa_driver_ops *wpa_supplicant_drivers[] =
+ {
+@@ -103,5 +105,8 @@
+ #ifdef CONFIG_DRIVER_TEST
+ &wpa_driver_test_ops,
+ #endif /* CONFIG_DRIVER_TEST */
++#ifdef CONFIG_DRIVER_RALINK
++ &wpa_driver_ralink_ops,
++#endif /* CONFIG_DRIVER_RALINK */
+ NULL
+ };
+diff -NaurEbB wpa_supplicant-0.5.10/events.c wpa_supplicant-0.5.10_RALINK/events.c
+--- wpa_supplicant-0.5.10/events.c 2007-11-29 03:49:08.000000000 +0100
++++ wpa_supplicant-0.5.10_RALINK/events.c 2008-12-05 01:40:05.000000000 +0100
+@@ -283,11 +283,14 @@
+ break;
+ }
+
++/* carella modify */
++#ifndef CONFIG_DRIVER_RALINK
+ if (!(ie.group_cipher & ssid->group_cipher)) {
+ wpa_printf(MSG_DEBUG, " skip RSN IE - GTK cipher "
+ "mismatch");
+ break;
+ }
++#endif
+
+ if (!(ie.key_mgmt & ssid->key_mgmt)) {
+ wpa_printf(MSG_DEBUG, " skip RSN IE - key mgmt "
+@@ -327,11 +330,14 @@
+ break;
+ }
+
++/* carella modify */
++#ifndef CONFIG_DRIVER_RALINK
+ if (!(ie.group_cipher & ssid->group_cipher)) {
+ wpa_printf(MSG_DEBUG, " skip WPA IE - GTK cipher "
+ "mismatch");
+ break;
+ }
++#endif
+
+ if (!(ie.key_mgmt & ssid->key_mgmt)) {
+ wpa_printf(MSG_DEBUG, " skip WPA IE - key mgmt "
+@@ -391,9 +397,10 @@
+ wpa_printf(MSG_DEBUG, " skip - disabled");
+ continue;
+ }
+- if (bss->ssid_len != ssid->ssid_len ||
++ //if (bss->ssid_len != ssid->ssid_len || <--carella modify
++ if (bss->ssid_len && (bss->ssid_len != ssid->ssid_len || //-->carella
+ os_memcmp(bss->ssid, ssid->ssid,
+- bss->ssid_len) != 0) {
++ bss->ssid_len) != 0)) {
+ wpa_printf(MSG_DEBUG, " skip - "
+ "SSID mismatch");
+ continue;
+@@ -439,8 +447,10 @@
+ wpa_printf(MSG_DEBUG, " skip - disabled");
+ continue;
+ }
++
+ if (ssid->ssid_len != 0 &&
+- (bss->ssid_len != ssid->ssid_len ||
++ // (bss->ssid_len != ssid->ssid_len || <--carella modify
++ bss->ssid_len && (bss->ssid_len != ssid->ssid_len ||//-->carella
+ os_memcmp(bss->ssid, ssid->ssid,
+ bss->ssid_len) != 0)) {
+ wpa_printf(MSG_DEBUG, " skip - "
+@@ -684,9 +694,12 @@
+ wpa_clear_keys(wpa_s, bssid);
+ }
+ if (wpa_supplicant_select_config(wpa_s) < 0) {
++/* carell modfy */
++#if 0
+ wpa_supplicant_disassociate(wpa_s,
+ REASON_DEAUTH_LEAVING);
+ return;
++#endif
+ }
+ }
+
+diff -NaurEbB wpa_supplicant-0.5.10/wpa_supplicant.c wpa_supplicant-0.5.10_RALINK/wpa_supplicant.c
+--- wpa_supplicant-0.5.10/wpa_supplicant.c 2008-02-17 19:42:02.000000000 +0100
++++ wpa_supplicant-0.5.10_RALINK/wpa_supplicant.c 2008-12-05 01:42:07.000000000 +0100
+@@ -35,6 +35,7 @@
+ #include "pmksa_cache.h"
+ #include "wpa_ctrl.h"
+ #include "mlme.h"
++#include "wpa_i.h"
+
+ const char *wpa_supplicant_version =
+ "wpa_supplicant v" VERSION_STR "\n"
+@@ -111,6 +112,9 @@
+ extern int wpa_debug_timestamp;
+
+ static void wpa_supplicant_scan(void *eloop_ctx, void *timeout_ctx);
++#ifdef CONFIG_DRIVER_RALINK
++static void wpa_supplicant_poll(void *wpa_s);
++#endif
+
+ #if defined(IEEE8021X_EAPOL) || !defined(CONFIG_NO_WPA)
+ static u8 * wpa_alloc_eapol(const struct wpa_supplicant *wpa_s, u8 type,
+@@ -519,11 +523,20 @@
+ bssid = wpa_s->pending_bssid;
+ wpa_msg(wpa_s, MSG_INFO, "Authentication with " MACSTR " timed out.",
+ MAC2STR(bssid));
++
++/* carella modify */
++#ifdef CONFIG_DRIVER_RALINK
++ wpa_s->wpa_state = WPA_SCANNING;
++ wpa_supplicant_poll(wpa_s);
++ if(!wpa_s->associate_state)
++#endif
++ {
+ wpa_blacklist_add(wpa_s, bssid);
+ wpa_sm_notify_disassoc(wpa_s->wpa);
+ wpa_supplicant_disassociate(wpa_s, REASON_DEAUTH_LEAVING);
+ wpa_s->reassociate = 1;
+ wpa_supplicant_req_scan(wpa_s, 0, 0);
++ }
+ }
+
+
+@@ -1178,14 +1191,18 @@
+
+ if (bss && bss->rsn_ie_len && (ssid->proto & WPA_PROTO_RSN) &&
+ wpa_parse_wpa_ie(bss->rsn_ie, bss->rsn_ie_len, &ie) == 0 &&
++#ifndef CONFIG_DRIVER_RALINK
+ (ie.group_cipher & ssid->group_cipher) &&
++#endif
+ (ie.pairwise_cipher & ssid->pairwise_cipher) &&
+ (ie.key_mgmt & ssid->key_mgmt)) {
+ wpa_msg(wpa_s, MSG_DEBUG, "RSN: using IEEE 802.11i/D9.0");
+ proto = WPA_PROTO_RSN;
+ } else if (bss && bss->wpa_ie_len && (ssid->proto & WPA_PROTO_WPA) &&
+ wpa_parse_wpa_ie(bss->wpa_ie, bss->wpa_ie_len, &ie) == 0 &&
++#ifndef CONFIG_DRIVER_RALINK
+ (ie.group_cipher & ssid->group_cipher) &&
++#endif
+ (ie.pairwise_cipher & ssid->pairwise_cipher) &&
+ (ie.key_mgmt & ssid->key_mgmt)) {
+ wpa_msg(wpa_s, MSG_DEBUG, "WPA: using IEEE 802.11i/D3.0");
+@@ -1232,7 +1249,11 @@
+ bss ? bss->rsn_ie_len : 0))
+ return -1;
+
++#ifndef CONFIG_DRIVER_RALINK
+ sel = ie.group_cipher & ssid->group_cipher;
++#else
++ sel = ie.group_cipher;
++#endif
+ if (sel & WPA_CIPHER_CCMP) {
+ wpa_s->group_cipher = WPA_CIPHER_CCMP;
+ wpa_msg(wpa_s, MSG_DEBUG, "WPA: using GTK CCMP");
+@@ -1879,6 +1900,13 @@
+ {
+ return wpa_drv_remove_pmkid(wpa_s, bssid, pmkid);
+ }
++
++#ifdef CONFIG_DRIVER_RALINK
++static void wpa_supplicant_poll(void *wpa_s)
++{
++ wpa_drv_poll(wpa_s);
++}
++#endif
+ #endif /* CONFIG_NO_WPA */
+
+
+@@ -1919,6 +1947,14 @@
+ {
+ struct wpa_supplicant *wpa_s = ctx;
+
++// if(wpa_s->wpa_state < WPA_ASSOCIATED) //<--carella modify
++ if((wpa_s->wpa->proto == WPA_PROTO_RSN && wpa_s->wpa->pmksa == NULL && wpa_s->wpa_state < WPA_ASSOCIATED) || //<--carella modify
++ (wpa_s->wpa->proto != WPA_PROTO_RSN && wpa_s->wpa_state < WPA_ASSOCIATED))
++ {
++ printf("wpa_supplicant_rx_eapol: wpa_s->wpa_state[%d] < WPA_ASSOCIATED\n", wpa_s->wpa_state);
++ return; //-->carella
++ }
++
+ wpa_printf(MSG_DEBUG, "RX EAPOL from " MACSTR, MAC2STR(src_addr));
+ wpa_hexdump(MSG_MSGDUMP, "RX EAPOL", buf, len);
+
+diff -NaurEbB wpa_supplicant-0.5.10/wpa_supplicant_i.h wpa_supplicant-0.5.10_RALINK/wpa_supplicant_i.h
+--- wpa_supplicant-0.5.10/wpa_supplicant_i.h 2007-12-28 01:50:15.000000000 +0100
++++ wpa_supplicant-0.5.10_RALINK/wpa_supplicant_i.h 2008-12-05 01:36:46.000000000 +0100
+@@ -342,6 +342,10 @@
+
+ struct wpa_client_mlme mlme;
+ int use_client_mlme;
++
++#ifdef CONFIG_DRIVER_RALINK
++ int associate_state;
++#endif
+ };
+
+
+@@ -577,9 +581,15 @@
+
+ static inline void wpa_drv_poll(struct wpa_supplicant *wpa_s)
+ {
++#ifdef CONFIG_DRIVER_RALINK
++ if (wpa_s->driver->poll_ralink) {
++ wpa_s->driver->poll_ralink(wpa_s->drv_priv, wpa_s);
++ }
++#else
+ if (wpa_s->driver->poll) {
+ wpa_s->driver->poll(wpa_s->drv_priv);
+ }
++#endif
+ }
+
+ static inline const char * wpa_drv_get_ifname(struct wpa_supplicant *wpa_s)
--- /dev/null
+diff -Naur wpa_supplicant-0.5.8.orig/Makefile wpa_supplicant-0.5.8/Makefile
+--- wpa_supplicant-0.5.8.orig/Makefile 2007-05-29 04:08:48.000000000 +0200
++++ wpa_supplicant-0.5.8/Makefile 2008-08-07 11:49:38.000000000 +0200
+@@ -30,6 +30,7 @@
+ echo CONFIG_DRIVER_HOSTAP=y >> .config
+ echo CONFIG_DRIVER_WEXT=y >> .config
+ echo CONFIG_WIRELESS_EXTENSION=y >> .config
++ echo CONFIG_DRIVER_ZYDAS=y >> .config
+
+ install: all
+ mkdir -p $(DESTDIR)/usr/local/sbin/
+@@ -87,6 +88,11 @@
+ OBJS += config_none.o
+ endif
+
++ifdef CONFIG_DRIVER_ZYDAS
++CFLAGS += -DCONFIG_DRIVER_ZYDAS
++OBJS_d += driver_zydas.o
++endif
++
+ ifdef CONFIG_DRIVER_HOSTAP
+ CFLAGS += -DCONFIG_DRIVER_HOSTAP
+ OBJS_d += driver_hostap.o
+diff -Naur wpa_supplicant-0.5.8.orig/common.h wpa_supplicant-0.5.8/common.h
+--- wpa_supplicant-0.5.8.orig/common.h 2007-05-29 04:08:48.000000000 +0200
++++ wpa_supplicant-0.5.8/common.h 2008-08-07 12:03:15.000000000 +0200
+@@ -486,7 +486,7 @@
+
+ const char * wpa_ssid_txt(u8 *ssid, size_t ssid_len);
+
+-typedef u32 __be32;
+-typedef u64 __be64;
++//typedef u32 __be32;
++//typedef u64 __be64;
+
+ #endif /* COMMON_H */
+diff -Naur wpa_supplicant-0.5.8.orig/driver_zydas.c wpa_supplicant-0.5.8/driver_zydas.c
+--- wpa_supplicant-0.5.8.orig/driver_zydas.c 1970-01-01 01:00:00.000000000 +0100
++++ wpa_supplicant-0.5.8/driver_zydas.c 2006-11-28 09:09:34.000000000 +0100
+@@ -0,0 +1,597 @@
++/*
++ * WPA Supplicant - driver interaction with MADWIFI 802.11 driver
++ * Copyright (c) 2004, Sam Leffler <sam@errno.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * Alternatively, this software may be distributed under the terms of BSD
++ * license.
++ *
++ * See README and COPYING for more details.
++ */
++
++#include <stdlib.h>
++#include <stdio.h>
++#include <unistd.h>
++#include <string.h>
++#include <sys/ioctl.h>
++#include <errno.h>
++
++#include "common.h"
++#include "driver.h"
++#include "driver_wext.h"
++#include "eloop.h"
++#include "wpa_supplicant.h"
++#include "wpa.h"
++
++#include "zydas_common.h"
++
++#include <net/if_arp.h>
++#include <linux/wireless.h>
++
++struct wpa_driver_zydas_data {
++ void *wext; /* private data for driver_wext */
++ void *ctx;
++ char ifname[IFNAMSIZ + 1];
++ int sock;
++};
++
++static int zydas_ioctl(struct wpa_driver_zydas_data *drv, struct zydas_wlan_param *param,
++ int len, int show_err)
++{
++ int s;
++ struct iwreq iwr;
++
++ s = socket(PF_INET, SOCK_DGRAM, 0);
++ if (s < 0) {
++ perror("socket");
++ return -1;
++ }
++ memset(&iwr, 0, sizeof(iwr));
++ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
++ iwr.u.data.pointer = (caddr_t) param;
++ iwr.u.data.length = len;
++
++ if (ioctl(s, ZD_IOCTL_WPA, &iwr) < 0) {
++ int ret;
++ close(s);
++ ret = errno;
++ if (show_err)
++ perror("ioctl[ZD_IOCTL_WPA]");
++ return ret;
++ }
++ close(s);
++
++ return 0;
++}
++
++static int
++zydas_set_param(struct wpa_driver_zydas_data *drv, int op, int arg, int show_err)
++{
++ struct iwreq iwr;
++ int *i, s, ret = 0;
++
++ s = socket(PF_INET, SOCK_DGRAM, 0);
++ if (s < 0) {
++ perror("socket[PF_INET,SOCK_DGRAM]");
++ return -1;
++ }
++
++ memset(&iwr, 0, sizeof(iwr));
++ strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
++ i = (int *) iwr.u.name;
++ *i++ = op;
++ *i++ = arg;
++ if (op == ZD_PARAM_WPA)
++ {
++ wpa_printf(MSG_DEBUG, "ZD_PARAM_WPA: arg:%d\n", arg);
++ }
++ if (ioctl(s, ZD_IOCTL_PARAM, &iwr) < 0) {
++ perror("ioctl[ZD_IOCTL_PARAM]");
++ ret = -1;
++ }
++ close(s);
++
++ return ret;
++}
++#if 0
++static int
++getifflags(const char *ifname, int *flags)
++{
++ struct ifreq ifr;
++ int s;
++
++ s = socket(PF_INET, SOCK_DGRAM, 0);
++ if (s < 0) {
++ perror("socket");
++ return -1;
++ }
++
++ memset(&ifr, 0, sizeof(ifr));
++ strncpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
++ if (ioctl(s, SIOCGIFFLAGS, (caddr_t)&ifr) < 0) {
++ perror("SIOCGIFFLAGS");
++ return errno;
++ }
++ *flags = ifr.ifr_flags & 0xffff;
++ return 0;
++}
++
++static int
++setifflags(const char *ifname, int flags)
++{
++ struct ifreq ifr;
++ int s;
++
++ s = socket(PF_INET, SOCK_DGRAM, 0);
++ if (s < 0) {
++ perror("socket");
++ return -1;
++ }
++
++ memset(&ifr, 0, sizeof(ifr));
++ strncpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
++ ifr.ifr_flags = flags & 0xffff;
++ if (ioctl(s, SIOCSIFFLAGS, (caddr_t)&ifr) < 0) {
++ perror("SIOCSIFFLAGS");
++ return errno;
++ }
++ return 0;
++}
++#endif
++static int
++wpa_driver_zydas_set_wpa_ie(struct wpa_driver_zydas_data *drv,
++ const char *wpa_ie, size_t wpa_ie_len)
++{
++
++
++ struct zydas_wlan_param *param;
++ int res;
++ size_t blen = ZD_GENERIC_ELEMENT_HDR_LEN + wpa_ie_len;
++ if (blen < sizeof(*param))
++ blen = sizeof(*param);
++
++ param = (struct zydas_wlan_param *) malloc(blen);
++ if (param == NULL)
++ return -1;
++
++ memset(param, 0, blen);
++ param->cmd = ZD_CMD_SET_GENERIC_ELEMENT;
++ param->u.generic_elem.len = wpa_ie_len;
++ memcpy(param->u.generic_elem.data, wpa_ie, wpa_ie_len);
++ res = zydas_ioctl(drv, param, blen, 1);
++
++ free(param);
++
++ return res;
++}
++
++static int
++wpa_driver_zydas_set_wpa(void *priv, int enabled)
++{
++ struct wpa_driver_zydas_data *drv = priv;
++ int ret = 0;
++
++ wpa_printf(MSG_DEBUG, "%s: enabled=%d", __FUNCTION__, enabled);
++
++ if (!enabled && wpa_driver_zydas_set_wpa_ie(drv, NULL, 0) < 0)
++ ret = -1;
++ if (zydas_set_param(drv, ZD_PARAM_ROAMING, enabled, 1) < 0)
++ ret = -1;
++ if (zydas_set_param(drv, ZD_PARAM_PRIVACY, enabled, 1) < 0)
++ ret = -1;
++ if (zydas_set_param(drv, ZD_PARAM_WPA, enabled, 1) < 0)
++ ret = -1;
++
++ return ret;
++}
++
++static int
++wpa_driver_zydas_set_key(void *priv, wpa_alg alg,
++ const u8 *addr, int key_idx, int set_tx,
++ const u8 *seq, size_t seq_len,
++ const u8 *key, size_t key_len)
++{
++ struct wpa_driver_zydas_data *drv = priv;
++ struct zydas_wlan_param *param;
++ u8 *buf;
++ size_t blen;
++ int ret = 0;
++ char *alg_name;
++ switch (alg) {
++ case WPA_ALG_NONE:
++ alg_name = "NONE";
++ break;
++ case WPA_ALG_WEP:
++ alg_name = "WEP";
++ break;
++ case WPA_ALG_TKIP:
++ alg_name = "TKIP";
++ break;
++ case WPA_ALG_CCMP:
++ alg_name = "CCMP";
++ break;
++ default:
++ return -1;
++ }
++
++ wpa_printf(MSG_DEBUG, "%s: alg=%s key_idx=%d set_tx=%d seq_len=%d "
++ "key_len=%d", __FUNCTION__, alg_name, key_idx, set_tx,
++ seq_len, key_len);
++
++ if (seq_len > 8)
++ return -2;
++
++ blen = sizeof(*param) + key_len;
++ buf = malloc(blen);
++ if (buf == NULL)
++ return -1;
++ memset(buf, 0, blen);
++
++ param = (struct zydas_wlan_param *) buf;
++ param->cmd = ZD_CMD_SET_ENCRYPT_KEY;
++ /* TODO: In theory, STA in client mode can use five keys; four default
++ * keys for receiving (with keyidx 0..3) and one individual key for
++ * both transmitting and receiving (keyidx 0) _unicast_ packets. Now,
++ * keyidx 0 is reserved for this unicast use and default keys can only
++ * use keyidx 1..3 (i.e., default key with keyidx 0 is not supported).
++ * This should be fine for more or less all cases, but for completeness
++ * sake, the driver could be enhanced to support the missing key. */
++#if 1
++ if (addr == NULL)
++ memset(param->sta_addr, 0xff, ETH_ALEN);
++ else
++ memcpy(param->sta_addr, addr, ETH_ALEN);
++#else
++ if (addr != NULL)
++ memcpy(param->sta_addr, addr, ETH_ALEN);
++#endif
++ strncpy(param->u.crypt.alg, alg_name, ZD_CRYPT_ALG_NAME_LEN);
++ param->u.crypt.flags = set_tx ? ZD_FLAG_SET_TX_KEY : 0;
++ param->u.crypt.idx = key_idx;
++ memcpy(param->u.crypt.seq, seq, seq_len);
++ param->u.crypt.key_len = key_len;
++ memcpy((u8 *) param->u.crypt.key, key, key_len);
++
++ /* Dump key context */
++#if 0
++ if(alg != WPA_ALG_NONE) {
++ int ii;
++
++ wpa_printf(MSG_DEBUG, "Key Context:");
++ for(ii = 0; ii < key_len; ) {
++ printf("0x%02x ", key[ii]);
++
++ if((++ii % 16) == 0)
++ printf("\n");
++ }
++
++ printf("\n");
++ }
++#endif
++ if (zydas_ioctl(drv, param, blen, 1)) {
++ wpa_printf(MSG_WARNING, "Failed to set encryption.");
++ //show_set_key_error(param);
++ ret = -1;
++ }
++ free(buf);
++
++ return ret;
++}
++
++static int
++wpa_driver_zydas_set_countermeasures(void *priv, int enabled)
++{
++ struct wpa_driver_zydas_data *drv = priv;
++
++ /* Enable the countermeasure */
++ wpa_printf(MSG_DEBUG, "%s: enabled=%d", __FUNCTION__, enabled);
++ return zydas_set_param(drv, ZD_PARAM_COUNTERMEASURES, enabled, 1);
++}
++
++static int
++wpa_driver_zydas_set_drop_unencrypted(void *priv, int enabled)
++{
++ struct wpa_driver_zydas_data *drv = priv;
++ /* Enable the countermeasure */
++ wpa_printf(MSG_DEBUG, "%s: enabled=%d", __FUNCTION__, enabled);
++ return zydas_set_param(drv, ZD_PARAM_DROPUNENCRYPTED, enabled, 1);
++}
++
++static int
++wpa_driver_zydas_deauthenticate(void *priv, const u8 *addr, int reason_code)
++{
++ struct wpa_driver_zydas_data *drv = priv;
++ struct zydas_wlan_param *param;
++ int blen;
++ int ret;
++
++ blen = sizeof(*param);
++ param = (struct zydas_wlan_param *) malloc(blen);
++ if (param == NULL)
++ return -1;
++
++ memset(param, 0, blen);
++ param->cmd = ZD_CMD_SET_MLME;
++ param->u.mlme.cmd = MLME_STA_DEAUTH;
++ param->u.mlme.reason_code = reason_code;
++ memcpy(param->sta_addr, addr, ETH_ALEN);
++ ret = zydas_ioctl(drv, param, blen, 1);
++ usleep(100000);
++ free(param);
++ return ret;
++}
++
++static int
++wpa_driver_zydas_disassociate(void *priv, const u8 *addr, int reason_code)
++{
++ struct wpa_driver_zydas_data *drv = priv;
++ struct zydas_wlan_param *param;
++ int blen;
++ int ret;
++
++ blen = sizeof(*param);
++ param = (struct zydas_wlan_param *) malloc(blen);
++ if (param == NULL)
++ return -1;
++
++ memset(param, 0, blen);
++ param->cmd = ZD_CMD_SET_MLME;
++ param->u.mlme.cmd = MLME_STA_DISASSOC;
++ param->u.mlme.reason_code = reason_code;
++ memcpy(param->sta_addr, addr, ETH_ALEN);
++ ret = zydas_ioctl(drv, param, blen, 1);
++ free(param);
++ return ret;
++}
++
++static int
++wpa_driver_zydas_associate(void *priv,
++ struct wpa_driver_associate_params *params)
++/*static int
++wpa_driver_zydas_associate(const char *ifname, const char *bssid,
++ const char *ssid, size_t ssid_len,
++ int freq,
++ const char *wpa_ie, size_t wpa_ie_len,
++ wpa_cipher pairwise_suite,
++ wpa_cipher group_suite,
++ wpa_key_mgmt key_mgmt_suite)*/
++{
++ struct wpa_driver_zydas_data *drv = priv;
++
++ int ret = 0, privacy=1;
++
++ wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
++
++ /* Because there might be the case, two or more APs with the same
++ * SSID, in order to identify them, we need to set the BSSID. */
++ if (wpa_driver_zydas_set_wpa_ie(drv, params->wpa_ie, params->wpa_ie_len) < 0)
++ ret = -1;
++
++ if (params->pairwise_suite == CIPHER_NONE &&
++ params->group_suite == CIPHER_NONE &&
++ params->key_mgmt_suite == KEY_MGMT_NONE &&
++ params->wpa_ie_len == 0)
++ privacy = 0;
++
++ if (zydas_set_param(drv, ZD_PARAM_PRIVACY, privacy, 1) < 0)
++ ret = -1;
++ if (params->key_mgmt_suite == KEY_MGMT_NONE && params->wpa_ie_len == 0)
++ {
++ zydas_set_param(drv, ZD_PARAM_WPA, 0, 1);
++ }
++ wpa_printf(MSG_DEBUG, "%s:wpaIeLen:%d, KeyMgmt:%d", __FUNCTION__, params->wpa_ie_len, params->key_mgmt_suite);
++ if (params->wpa_ie_len &&
++ zydas_set_param(drv, ZD_PARAM_WPA,
++ params->wpa_ie[0] == RSN_INFO_ELEM ? 2 : 1, 1) < 0)
++ ret = -1;
++
++ if (params->bssid == NULL) {
++ /* ap_scan=0 or 2 mode - driver takes care of AP selection and
++ * roaming */
++ /* FIX: this does not seem to work; would probably need to
++ * change something in the driver */
++ if (zydas_set_param(drv, ZD_PARAM_ROAMING, 0, 1) < 0)
++ ret = -1;
++ // if (wpa_driver_wext_set_ssid(drv->wext, params->ssid, params->ssid_len) < 0)
++ // ret = -1;
++ }
++
++ if (wpa_driver_wext_set_ssid(drv->wext, params->ssid, params->ssid_len) < 0)
++ ret = -1;
++
++ // Mark for test
++ //if (wpa_driver_wext_set_bssid(ifname, bssid) < 0)
++ // ret = -1;
++ if (params->bssid)
++ {
++ wpa_printf(MSG_DEBUG, "wpa_supplicant initiates scan and AP selection\n");
++ if (zydas_set_param(drv, ZD_PARAM_ROAMING, 1, 1) < 0)
++ ret = -1;
++ if (wpa_driver_wext_set_bssid(drv->wext, params->bssid) < 0)
++ ret = -1;
++ }
++
++
++#if 0
++ /* Allow unencrypted EAPOL messages even if pairwise keys are set when
++ * not using WPA. IEEE 802.1X specifies that these frames are not
++ * encrypted, but WPA encrypts them when pairwise keys are in use. */
++ if (key_mgmt_suite == KEY_MGMT_802_1X ||
++ key_mgmt_suite == KEY_MGMT_PSK)
++ allow_unencrypted_eapol = 0;
++ else
++ allow_unencrypted_eapol = 1;
++
++ if (prism2param(ifname, PRISM2_PARAM_IEEE_802_1X,
++ allow_unencrypted_eapol) < 0) {
++ wpa_printf(MSG_DEBUG, "hostap: Failed to configure "
++ "ieee_802_1x param");
++ /* Ignore this error.. driver_hostap.c can also be used with
++ * other drivers that do not support this prism2_param. */
++ }
++#endif
++
++ return ret;
++}
++
++static int
++wpa_driver_zydas_scan(void *priv, const u8 *ssid, size_t ssid_len)
++{
++ struct wpa_driver_zydas_data *drv=priv;
++ struct zydas_wlan_param param;
++ int ret;
++
++ if (ssid == NULL) {
++ /* Use standard Linux Wireless Extensions ioctl if possible
++ * because some drivers using hostap code in wpa_supplicant
++ * might not support Host AP specific scan request (with SSID
++ * info). */
++ return wpa_driver_wext_scan(drv->wext, ssid, ssid_len);
++ }
++
++ if (ssid_len > 32)
++ ssid_len = 32;
++
++ memset(¶m, 0, sizeof(param));
++ param.cmd = ZD_CMD_SCAN_REQ;
++ param.u.scan_req.ssid_len = ssid_len;
++ memcpy(param.u.scan_req.ssid, ssid, ssid_len);
++ ret = zydas_ioctl(drv, ¶m, sizeof(param), 1);
++
++ /* Not all drivers generate "scan completed" wireless event, so try to
++ * read results after a timeout. */
++ eloop_register_timeout(3, 0, wpa_driver_wext_scan_timeout, NULL, drv->ctx);
++
++ return ret;
++}
++
++static int wpa_driver_zydas_set_auth_alg(void *priv, int auth_alg)
++{
++ struct wpa_driver_zydas_data *drv=priv;
++ int algs = 0;
++
++ if (auth_alg & AUTH_ALG_OPEN_SYSTEM)
++ algs = 0;
++ if (auth_alg & AUTH_ALG_SHARED_KEY)
++ algs = 1;
++
++ return zydas_set_param(drv, ZD_PARAM_AUTH_ALGS, algs, 1);
++}
++static int wpa_driver_zydas_get_bssid(void *priv, u8 *bssid)
++{
++ struct wpa_driver_zydas_data *drv=priv;
++ return wpa_driver_wext_get_bssid(drv->wext, bssid);
++}
++
++static int wpa_driver_zydas_get_ssid(void *priv, u8 *ssid)
++{
++ struct wpa_driver_zydas_data *drv=priv;
++ return wpa_driver_wext_get_ssid(drv->wext, ssid);
++}
++static void * wpa_driver_zydas_init(void *ctx, const char *ifname)
++{
++ struct wpa_driver_zydas_data *drv;
++ drv = malloc(sizeof(*drv));
++ if (drv == NULL)
++ return NULL;
++ memset(drv, 0, sizeof(*drv));
++ drv->wext = wpa_driver_wext_init(ctx, ifname);
++ if (drv->wext == NULL)
++ goto fail;
++
++ drv->ctx = ctx;
++ strncpy(drv->ifname, ifname, sizeof(drv->ifname));
++ drv->sock = socket(PF_INET, SOCK_DGRAM, 0);
++ if (drv->sock < 0)
++ goto fail2;
++
++ if (zydas_set_param(drv, ZD_PARAM_ROAMING, 0, 1) < 0) {
++ wpa_printf(MSG_DEBUG, "%s: failed to set wpa_supplicant-based "
++ "roaming", __FUNCTION__);
++ goto fail3;
++ }
++
++ if (zydas_set_param(drv, ZD_PARAM_WPA, 3, 1) < 0) {
++ wpa_printf(MSG_DEBUG, "%s: failed to enable WPA/WPA2 support",
++ __FUNCTION__);
++ goto fail3;
++ }
++
++ return drv;
++
++fail3:
++ close(drv->sock);
++fail2:
++ wpa_driver_wext_deinit(drv->wext);
++fail:
++ free(drv);
++ return NULL;
++}
++
++
++static void wpa_driver_zydas_deinit(void *priv)
++{
++ struct wpa_driver_zydas_data *drv = priv;
++
++ if (wpa_driver_zydas_set_wpa_ie(drv, NULL, 0) < 0) {
++ wpa_printf(MSG_DEBUG, "%s: failed to clear WPA IE",
++ __FUNCTION__);
++ }
++ if (zydas_set_param(drv, ZD_PARAM_ROAMING, 0, 1) < 0) {
++ wpa_printf(MSG_DEBUG, "%s: failed to enable driver-based "
++ "roaming", __FUNCTION__);
++ }
++ if (zydas_set_param(drv, ZD_PARAM_PRIVACY, 0, 1) < 0) {
++ wpa_printf(MSG_DEBUG, "%s: failed to disable forced Privacy "
++ "flag", __FUNCTION__);
++ }
++ if (zydas_set_param(drv, ZD_PARAM_WPA, 0, 1) < 0) {
++ wpa_printf(MSG_DEBUG, "%s: failed to disable WPA",
++ __FUNCTION__);
++ }
++
++ wpa_driver_wext_deinit(drv->wext);
++
++ close(drv->sock);
++ free(drv);
++}
++#if 0
++static void
++wpa_driver_zydas_cleanup(const char *ifname)
++{
++ int flags;
++
++ /* NB: mark interface down */
++ if (getifflags(ifname, &flags) == 0)
++ (void) setifflags(ifname, flags &~ IFF_UP);
++}
++#endif
++static int wpa_driver_zydas_get_scan_results(void *priv,
++ struct wpa_scan_result *results,
++ size_t max_size)
++{
++ struct wpa_driver_zydas_data *drv = priv;
++ return wpa_driver_wext_get_scan_results(drv->wext, results, max_size);
++}
++struct wpa_driver_ops wpa_driver_zydas_ops = {
++ .name = "zydas",
++ .desc = "ZyDAS 802.11 WPA support interface",
++ .get_bssid = wpa_driver_zydas_get_bssid,
++ .get_ssid = wpa_driver_zydas_get_ssid,
++// .set_wpa = wpa_driver_zydas_set_wpa,
++ .set_key = wpa_driver_zydas_set_key,
++ .init = wpa_driver_zydas_init,
++ .deinit = wpa_driver_zydas_deinit,
++ .set_countermeasures = wpa_driver_zydas_set_countermeasures,
++ .set_drop_unencrypted = wpa_driver_zydas_set_drop_unencrypted,
++ .scan = wpa_driver_zydas_scan,
++ .get_scan_results = wpa_driver_zydas_get_scan_results,
++ .deauthenticate = wpa_driver_zydas_deauthenticate,
++ .disassociate = wpa_driver_zydas_disassociate,
++ .associate = wpa_driver_zydas_associate,
++ .set_auth_alg = wpa_driver_zydas_set_auth_alg,
++};
++
+diff -Naur wpa_supplicant-0.5.8.orig/drivers.c wpa_supplicant-0.5.8/drivers.c
+--- wpa_supplicant-0.5.8.orig/drivers.c 2007-03-25 04:09:50.000000000 +0200
++++ wpa_supplicant-0.5.8/drivers.c 2008-08-07 11:46:26.000000000 +0200
+@@ -14,7 +14,9 @@
+
+ #include "includes.h"
+
+-
++#ifdef CONFIG_DRIVER_ZYDAS
++extern struct wpa_driver_ops wpa_driver_zydas_ops; /* driver_zydas.c */
++#endif /* CONFIG_DRIVER_ZYDAS */
+ #ifdef CONFIG_DRIVER_WEXT
+ extern struct wpa_driver_ops wpa_driver_wext_ops; /* driver_wext.c */
+ #endif /* CONFIG_DRIVER_WEXT */
+@@ -59,6 +61,9 @@
+
+ struct wpa_driver_ops *wpa_supplicant_drivers[] =
+ {
++#ifdef CONFIG_DRIVER_ZYDAS
++ &wpa_driver_zydas_ops,
++#endif /* CONFIG_DRIVER_ZYDAS */
+ #ifdef CONFIG_DRIVER_WEXT
+ &wpa_driver_wext_ops,
+ #endif /* CONFIG_DRIVER_WEXT */
+diff -Naur wpa_supplicant-0.5.8.orig/zydas_common.h wpa_supplicant-0.5.8/zydas_common.h
+--- wpa_supplicant-0.5.8.orig/zydas_common.h 1970-01-01 01:00:00.000000000 +0100
++++ wpa_supplicant-0.5.8/zydas_common.h 2006-01-09 04:30:42.000000000 +0100
+@@ -0,0 +1,73 @@
++#ifndef ZYDAS_COMMON_H
++#define ZYDAS_COMMON_H
++
++#define ZD_IOCTL_WPA (SIOCDEVPRIVATE + 1)
++#define ZD_IOCTL_PARAM (SIOCDEVPRIVATE + 2)
++#define ZD_IOCTL_GETWPAIE (SIOCDEVPRIVATE + 3)
++#define ZD_PARAM_ROAMING 0x0001
++#define ZD_PARAM_PRIVACY 0x0002
++#define ZD_PARAM_WPA 0x0003
++#define ZD_PARAM_COUNTERMEASURES 0x0004
++#define ZD_PARAM_DROPUNENCRYPTED 0x0005
++#define ZD_PARAM_AUTH_ALGS 0x0006
++
++#define ZD_CMD_SET_ENCRYPT_KEY 0x0001
++#define ZD_CMD_SET_MLME 0x0002
++#define ZD_CMD_SCAN_REQ 0x0003
++#define ZD_CMD_SET_GENERIC_ELEMENT 0x0004
++#define ZD_CMD_GET_TSC 0x0005
++
++#define ZD_FLAG_SET_TX_KEY 0x0001
++
++#define ZD_GENERIC_ELEMENT_HDR_LEN \
++((int) (&((struct zydas_wlan_param *) 0)->u.generic_elem.data))
++
++#define ZD_CRYPT_ALG_NAME_LEN 16
++#define ZD_MAX_KEY_SIZE 32
++#define ZD_MAX_GENERIC_SIZE 64
++
++#define IEEE80211_ADDR_LEN 6
++#define IEEE80211_MAX_IE_SIZE 256
++
++/* structure definition */
++
++struct zydas_wlan_param {
++ u32 cmd;
++ u8 sta_addr[ETH_ALEN];
++ union {
++ struct {
++ u8 alg[ZD_CRYPT_ALG_NAME_LEN];
++ u32 flags;
++ u32 err;
++ u8 idx;
++ u8 seq[8]; /* sequence counter (set: RX, get: TX) */
++ u16 key_len;
++ u8 key[ZD_MAX_KEY_SIZE];
++ } crypt;
++ struct {
++ u32 flags_and;
++ u32 flags_or;
++ } set_flags_sta;
++ struct {
++ u8 len;
++ u8 data[ZD_MAX_GENERIC_SIZE];
++ } generic_elem;
++ struct {
++#define MLME_STA_DEAUTH 0
++#define MLME_STA_DISASSOC 1
++ u16 cmd;
++ u16 reason_code;
++ } mlme;
++ struct {
++ u8 ssid_len;
++ u8 ssid[32];
++ } scan_req;
++ } u;
++};
++
++struct ieee80211req_wpaie {
++ u8 wpa_macaddr[IEEE80211_ADDR_LEN];
++ u8 wpa_ie[IEEE80211_MAX_IE_SIZE];
++};
++#endif
++
--- /dev/null
+diff -Naur org/Makefile patched/Makefile
+--- org/Makefile 2008-08-19 12:45:17.000000000 +0200
++++ patched/Makefile 2008-08-19 12:44:55.000000000 +0200
+@@ -4,9 +4,11 @@
+ #\r
+ #\r
+ \r
+-HOST=\r
+-CC=$(HOST)gcc\r
+-LD=$(HOST)ld\r
++#HOST=\r
++#CC=$(HOST)gcc\r
++#LD=$(HOST)ld\r
++VERSION := $(shell uname -r)\r
++MODPATH := /lib/modules/$(VERSION)\r
+ KERN_VER=$(shell uname -r | cut -b1-3;)\r
+ KDIR := /lib/modules/$(shell uname -r)/build\r
+ PWD := $(shell pwd)\r
+@@ -17,15 +19,17 @@
+ \r
+ ifeq ($(KERN_VER), 2.6) \r
+ KERN_26=y\r
+- KERNEL_SOURCE=/usr/src/linux-2.6.9\r
++ KERNEL_SOURCE ?= $(MODPATH)/source\r
+ else \r
+ KERN_24=y\r
+ KERNEL_SOURCE=/usr/src/linux-2.4\r
+ endif\r
+ \r
+ SRC_DIR=src\r
+-DEFINES=-D__KERNEL__ -DMODULE=1\r
++DEFINES ?= -D__KERNEL__ -DMODULE=1\r
+ \r
++# set to 1 for zd1211b\r
++ZD1211REV_B=1\r
+ \r
+ KERNRELEASE := $(shell uname -r;)\r
+ MODPATH := /lib/modules/$(KERNRELEASE)\r
+@@ -362,14 +366,14 @@
+ /bin/sh scripts/Menuconfig\r
+ \r
+ debug:\r
+- gcc -o apdbg apdbg.c\r
+- chmod +x apdbg\r
+- cp ./apdbg /sbin/apdbg \r
+- make -C Menudbg\r
+- mv Menudbg/menudbg .\r
+- chmod +x menudbg\r
+- cp ./menudbg /sbin\r
+- gcc -DPKT_SEND_FUNCTION -o winevl_iface Winevl_iface/pkt_send.c Winevl_iface/winevl_bridge.c\r
++ #gcc -o apdbg apdbg.c\r
++ #chmod +x apdbg\r
++ #cp ./apdbg /sbin/apdbg \r
++ #make -C Menudbg\r
++ #mv Menudbg/menudbg .\r
++ #chmod +x menudbg\r
++ #cp ./menudbg /sbin\r
++ #gcc -DPKT_SEND_FUNCTION -o winevl_iface Winevl_iface/pkt_send.c Winevl_iface/winevl_bridge.c\r
+ \r
+ clean:\r
+ rm -rf .tmp_versions .*.cmd *.ko *.mod.c *.mod.o *.o $(SRC_DIR)/*.o $(SRC_DIR)/.*.o.cmd menudbg apdbg winevl_iface\r
--- /dev/null
+diff -Naur org/src/zdusb.c patched/src/zdusb.c
+--- org/src/zdusb.c 2007-11-06 13:06:36.000000000 +0100
++++ patched/src/zdusb.c 2008-08-19 12:44:48.000000000 +0200
+@@ -371,6 +371,8 @@
+ g_dev = net; //save this for CBs use\r
+ //macp = net->priv; //kernel 2.4\r
+ net->priv = macp; //kernel 2.6\r
++ /* ath_desc: use /dev/wlanX as device node */\r
++ strcpy(net->name, "wlan%d"); \r
+ macp->device = net;\r
+ macp->usb = dev;\r
+ SET_MODULE_OWNER(net);\r
--- /dev/null
+--- zd1211-driver-r85/Makefile 2006-07-09 11:59:42.000000000 +0200
++++ zd1211-driver-r85/Makefile 2008-05-22 09:03:08.000000000 +0200
+@@ -4,10 +4,10 @@
+ #
+ #
+
+-CC=gcc
+-CPP=g++
+-LD=ld
+-rM=rm -f -r
++#CC=gcc
++#CPP=g++
++#LD=ld
++#rM=rm -f -r
+
+ VERSION := $(shell uname -r)
+ MODPATH := /lib/modules/$(VERSION)
+@@ -15,14 +15,14 @@
+ # if the kernel is 2.6.x, turn on this
+ KERN_26=y
+
+-KERNEL_SOURCE=$(MODPATH)/source
++KERNEL_SOURCE ?= $(MODPATH)/source
+ #KERNEL_SOURCE=/usr/src/linux
+
+ # set to 1 for zd1211b
+-ZD1211REV_B=0
++ZD1211REV_B=1
+
+ SRC_DIR=src
+-DEFINES=-D__KERNEL__ -DMODULE=1
++DEFINES ?= -D__KERNEL__ -DMODULE=1
+
+
+
+@@ -228,9 +228,9 @@
+ depmod -a $(VERSION)
+
+ #for apdbg
+- gcc -o apdbg apdbg.c
+- chmod +x apdbg
+- cp ./apdbg /sbin/apdbg
++# gcc -o apdbg apdbg.c
++# chmod +x apdbg
++# cp ./apdbg /sbin/apdbg
+
+ clean:
+ rm -rf .tmp_versions .*.cmd *.ko *.mod.c *.mod.o *.o $(SRC_DIR)/*.o $(SRC_DIR)/.*.o.cmd
--- /dev/null
+DESCRIPTION = "Driver for zd1211b family of wireless USB Dongles"
+HOMEPAGE = "http://zd1211.ath.cx/"
+SECTION = "kernel/modules"
+PRIORITY = "optional"
+MAINTAINER = "Oyvind Repvik <nail@nslu2-linux.org>"
+LICENSE = "GPL"
+RDEPENDS = "wireless-tools"
+PR = "r0"
+
+SRC_URI = "http://www.reactivated.net/software/zd1211-vendor/releases/ZD1211LnxDrv_2_22_0_0.tar.gz \
+ file://ZD1211LnxDrv_2_22_0_0.patch;patch=1 \
+ file://zdiface.patch;patch=1"
+
+S = "${WORKDIR}/ZD1211LnxDrv_2_22_0_0"
+
+inherit module
+
+do_compile () {
+ unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS CC LD CPP
+ oe_runmake 'MODPATH={D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net' \
+ 'KERNEL_SOURCE=${STAGING_KERNEL_DIR}' \
+ 'KDIR=${STAGING_KERNEL_DIR}' \
+ 'KERNEL_VERSION=${KERNEL_VERSION}' \
+ 'CC=${KERNEL_CC}' \
+ 'LD=${KERNEL_LD}'
+}
+
+do_install() {
+ install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net
+ install -m 0644 ${S}/zd1211*${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net
+}
--- /dev/null
+DESCRIPTION = "Driver for zd1211b family of wireless USB Dongles"
+HOMEPAGE = "http://zd1211.ath.cx/"
+SECTION = "kernel/modules"
+PRIORITY = "optional"
+MAINTAINER = "Oyvind Repvik <nail@nslu2-linux.org>"
+LICENSE = "GPL"
+RDEPENDS = "wireless-tools"
+PR = "r1"
+
+SRC_URI = "http://downloads.openwrt.org/sources/zd1211-driver-${PV}.tgz \
+ file://zd1211b.patch;patch=1"
+
+S = "${WORKDIR}/zd1211-driver-${PV}"
+
+inherit module
+
+do_compile () {
+ unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS CC LD CPP
+ oe_runmake 'MODPATH={D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net' \
+ 'KERNEL_SOURCE=${STAGING_KERNEL_DIR}' \
+ 'KDIR=${STAGING_KERNEL_DIR}' \
+ 'KERNEL_VERSION=${KERNEL_VERSION}' \
+ 'CC=${KERNEL_CC}' \
+ 'LD=${KERNEL_LD}'
+}
+
+do_install() {
+ install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net
+ install -m 0644 ${S}/zd1211*${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net
+}
--- /dev/null
+include python-zopeinterface_${PV}.bb
+inherit native
+DEPENDS = "python-native"
+
+do_stage() {
+ BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
+ ${STAGING_BINDIR}/python setup.py install --prefix=${STAGING_BINDIR}/.. --install-data=${STAGING_DATADIR}
+}
--- /dev/null
+DESCRIPTION = "zope.interface is provides Zope 3-styled interface definitions \
+for python"
+SECTION = "devel/python"
+PRIORITY = "optional"
+LICENSE = "ZPL"
+SRCNAME = "zope.interface"
+
+SRC_URI = "http://www.zope.org/Products/ZopeInterface/${PV}/${SRCNAME}-${PV}.tar.gz"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools